The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
#1
|
|||
|
|||
Variables question (should be extremely easy for vB coders with minimal experience)
Hi,
I have the following code that gets executed in a hook at postbit_display_start, courtesy of Wetwired who has a GREAT Activity hack: Code:
//Separate out cashcount $WWU002cashcount=$vbulletin->userinfo[points]; if($WWU002cashcount<1){ $WWU002_cashd=array(1=>'s',2=>'s',3=>'s',4=>'s',5=>'s',6=>'s',7=>'s',8=>'s',9=>'0'); }else{//($WWU002cashcount<1) for($i=9;$i>0;$i--){ $WWU002digit=$WWU002cashcount%10; $WWU002cashcount=floor($WWU002cashcount/10); if(($WWU002digit==0)&&($WWU002cashcount==0)){ $WWU002_cashd[$i]='s'; }else{//(($WWU002digit==0)&&($WWU002cashcount==0)) $WWU002_cashd[$i]=$WWU002digit; }//endif(($WWU002digit==0)&&($WWU002cashcount==0)) }//endfor($i=9;$i>0;$i++) }//endif($WWU002cashcount<1) Code:
<img src="$stylevar[imgdir_misc]/activity/posts$WWU002_cashd[1].gif" class="il" /><img src="$stylevar[imgdir_misc]/activity/posts$WWU002_cashd[2].gif" class="im" /><img src="$stylevar[imgdir_misc]/activity/posts$WWU002_cashd[3].gif" class="im" /><img src="$stylevar[imgdir_misc]/activity/posts$WWU002_cashd[4].gif" class="im" /><img src="$stylevar[imgdir_misc]/activity/posts$WWU002_cashd[5].gif" class="im" /><img src="$stylevar[imgdir_misc]/activity/posts$WWU002_cashd[6].gif" class="im" /><img src="$stylevar[imgdir_misc]/activity/posts$WWU002_cashd[7].gif" class="im" /><img src="$stylevar[imgdir_misc]/activity/posts$WWU002_cashd[8].gif" class="im" /><img src="$stylevar[imgdir_misc]/activity/posts$WWU002_cashd[9].gif" class="ir" /> $vbulletin->userinfo[points] is meant to give the number of (uCash) points that a user possesses. In the postbit, the point count can be called simply by using $post[points]. However, I think that a different value is necessary when retrieving this value outside of the postbit (i.e. in hooks like this one) as defining $WWU002cashcount as $vbulletin->userinfo[points] or $post[points] doesn't work. I noticed that uCash has this hook at global_start: Code:
// ## <ucash> require_once(DIR . '/includes/functions_ucs_shared.php'); if ($vbulletin->options['ucash_enablesystem'] == 1) { // It's enabled! Yay! $vbulletin->userinfo['points'] = ucash_number_format($vbulletin->userinfo[$vbulletin->options['ucash_pointsfield']], true); } $show['ucash'] = true; // ## </ucs> Please inform me if I haven't provided enough information as my knowledge is pretty basic in this area. Thanks for any help in advance! |
#2
|
||||
|
||||
Well, the userinfo variable applys to the current logged in user, not the user with the post. Also, WWU002 is a prefix to denote variables used by the plugin uniquely identified by 'WWU002' (activity modification); no reason to keep it for your own plugin.
You should probably be using $post['points'], as this seems to be the variable for the posting user's points. Also, if uCash allows a negative ballance or if $post['points'] has a decimal point, the code will need to be modified. For figuring out what's going on in your code, I suggest enabling debug mode, and using calls to devdebug() with the variable you want to see the value of, which will put it in a dropdown box that will appear at the bottom of the page. |
#3
|
|||
|
|||
Awesome, I got it working using the $post[points] variable.
I just had to hook the plugin to postbit_display_complete as it must have been executing before the uCash hook was (which is also in postbit_display_complete). I hacked the uCash global file to not insert commas and now everything displays very nicely alongside my activity stats. COOL I renamed the variables and added it as its own plugin. It looks like this (I take it that I can remove the // and anything that comes after it in each line?): Code:
//Separate out cashcount $icon_cashcount=$post[points]; if($icon_cashcount<1){ $icon_cashd=array(1=>'s',2=>'s',3=>'s',4=>'s',5=>'s',6=>'s',7=>'s',8=>'s',9=>'0'); }else{//($icon_cashcount<1) for($i=9;$i>0;$i--){ $icon_cashdigit=$icon_cashcount%10; $icon_cashcount=floor($icon_cashcount/10); if(($icon_cashdigit==0)&&($icon_cashcount==0)){ $icon_cashd[$i]='s'; }else{//(($icon_cashdigit==0)&&($icon_cashcount==0)) $icon_cashd[$i]=$icon_cashdigit; }//endif(($icon_cashdigit==0)&&($icon_cashcount==0)) }//endfor($i=9;$i>0;$i++) }//endif($icon_cashcount<1) Thanks a lot, WetWired. You've been a great help. |
#4
|
||||
|
||||
Code:
//Separate out cashcount $icon_doonce=1; $icon_cashcount=$post[points]; if($icon_cashcount<1){ $icon_cashd=array(1=>'s',2=>'s',3=>'s',4=>'s',5=>'s',6=>'s',7=>'s',8=>'s',9=>'0'); }else{//($icon_cashcount<1) for($i=9;$i>0;$i--){ $icon_cashdigit=$icon_cashcount%10; $icon_cashcount=floor($icon_cashcount/10); if(($icon_cashdigit==0)&&($icon_cashcount==0)){ if($icon_doonce){ $icon_doonce=0; $icon_cashd[$i]='ds'; }else{//($icon_doonce) $icon_cashd[$i]='s'; }//endif($icon_doonce) }else{//(($icon_cashdigit==0)&&($icon_cashcount==0)) $icon_cashd[$i]=$icon_cashdigit; }//endif(($icon_cashdigit==0)&&($icon_cashcount==0)) }//endfor($i=9;$i>0;$i++) }//endif($icon_cashcount<1) |
#5
|
|||
|
|||
Thanks so much! It worked like a charm.
Activity Modification 2.5.0 for hack of the month Here's what my postbit looks like now... Much less vertical space usage due to the Activity Mod layout. |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|