PDA

View Full Version : Registring a variable.


Seductor
09-07-2012, 08:41 PM
Hello:

I'm trying to register a variable. It will need to check whenever a visitor belong to the poster buddy list, so...


$new_buddylist = array();
$new_buddylist = explode(' ', $bbuserinfo['buddylist']);
$templater = vB_Template::create('postbit_legacy');
$templater->register('my_var', $new_buddylist);
$templatevalues['my_buddylist'] = $templater->render();
vB_Template::preRegister('postbit_legacy', $templatevalues);

I did a plugin hooked to postbit_display_complete.

Now, I think I will do something like this:
<vb:if condition="in_array($post[userid], $new_buddylist)">
$post[email]
</vb:if>

Am I doing it right? How could I call to my $new_buddylist? Should it be my_buddylist or my_var?

Thanks.

kh99
09-07-2012, 08:46 PM
The code you posted is both rendering the postbit_legacy template and preRegistering your variable to it. You don't need to do both. I think you probably just need the preRegister part, like:
$new_buddylist = explode(' ', $bbuserinfo['buddylist']);
$templatevalues['my_buddylist'] = $new_buddylist;
vB_Template::preRegister('postbit_legacy', $templatevalues);



Then you'd use $my_buddylist in template postbit_legacy.

Seductor
09-07-2012, 09:00 PM
Thanks kh99. Then, I do:

<vb:if condition="in_array($post[userid], $my_buddylist)">
$post[email] asd
</vb:if>

But it doesn't seem to work. The condition seems to be always false. How could I debug it?

$test = in_array($post[userid], $new_buddylist);
var_dump($test);
returns: bool(false)

$new_buddylist is:
array(1) { [0]=> string(0) "" }
Why?

kh99
09-07-2012, 09:07 PM
Did you check $bbuserinfo['buddylist']? To be honest I can't remember if you can use $bbuserinfo in a plugin, you might have to use $vbulletin->userinfo instead.

Seductor
09-07-2012, 09:13 PM
Did you check $bbuserinfo['buddylist']? To be honest I can't remember if you can use $bbuserinfo in a plugin, you might have to use $vbulletin->userinfo instead.

Of course, that was the problem. Thanks a lot, it works.