Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
  #1  
Old 10-31-2005, 10:35 PM
TJFweb TJFweb is offline
 
Join Date: Dec 2001
Posts: 191
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default 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)
(Not really important) This later gets used in the postbit by way of:
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" />
*** Anyway, back to the main hook code. I'm quite confused about defining $WWU002cashcount=$vbulletin->userinfo[points];

$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>
Shouldn't that define $vbulletin->userinfo['points'] globally so it can be used anywhere (i.e. in hooks as well)?

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!
Reply With Quote
  #2  
Old 11-01-2005, 02:47 PM
WetWired's Avatar
WetWired WetWired is offline
 
Join Date: Jun 2002
Location: Texas
Posts: 669
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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.
Reply With Quote
  #3  
Old 11-02-2005, 04:55 AM
TJFweb TJFweb is offline
 
Join Date: Dec 2001
Posts: 191
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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)
Could I ask one last favor? If it doesn't require a heap of extra work, is it possible to insert a line or two of code so that a $ sign gif (given by element 'ds') can appear just before a non zero element (in place of the first 's' element) in the array (i.e. $icon_cashd[xxx]='ds')? My digits show perfectly, but it would be nice to have a preceding dollar sign too.

Thanks a lot, WetWired. You've been a great help.
Reply With Quote
  #4  
Old 11-02-2005, 09:17 PM
WetWired's Avatar
WetWired WetWired is offline
 
Join Date: Jun 2002
Location: Texas
Posts: 669
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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)
And yes, the // starts a comment, so vB doesn't care about the stuff after it.
Reply With Quote
  #5  
Old 11-02-2005, 11:38 PM
TJFweb TJFweb is offline
 
Join Date: Dec 2001
Posts: 191
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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.
Attached Images
File Type: gif postbit.gif (15.3 KB, 0 views)
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:02 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04091 seconds
  • Memory Usage 2,226KB
  • Queries Executed 14 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (5)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (1)postbit_attachment
  • (5)postbit_onlinestatus
  • (5)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • postbit_attachment
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete