Go Back   vb.org Archive > Community Discussions > Modification Requests/Questions (Unpaid)
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 11-27-2011, 06:17 AM
AK Houston's Avatar
AK Houston AK Houston is offline
 
Join Date: Jan 2011
Location: Texas
Posts: 35
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default could someone take a look at this script?

can someone look at this script and explain or show why the Gold member users only see the default color in the postbit?

Code:
global $vbulletin; 

/// NOTE - Make sure that the $user information includes the MembergroupIDs 
if (!array_key_exists('membergroupids', $user) || !array_key_exists('usergroupid', $user)) 
{ 
    global $vbulletin; 
    $tempuser = $vbulletin->db->query_first(sprintf("SELECT usergroupid,membergroupids FROM " . TABLE_PREFIX . "user WHERE userid=%d",$user['userid'])); 
    $user['membergroupids'] = $tempuser['membergroupids']; 
    $user['membergroupids'] .= ','.$tempuser['usergroupid']; 
} 
else 
{ 
    $user['membergroupids'] .= ','.$user['usergroupid']; 
} 


if (in_array(24,explode(',',$user['membergroupids']))) 
{ 
  /// NOTE - Make sure that the $user information includes the field we are checking for 
  if (!array_key_exists('field16', $user)) 
  { 
    global $vbulletin; 
    $tempuserfield = $vbulletin->db->query_first(sprintf("SELECT field16 FROM " . TABLE_PREFIX . "userfield WHERE userid=%d",$user['userid'])); 
    $user['field16'] = $tempuserfield['field16']; 
  } 
  $my_special_color = ($user['field16']) ? $user['field16'] : 'olive'; 
  $user['musername'] = '<span style="display:-moz-inline-stack;display:inline-block;font-weight:bold;color:'.$my_special_color.';">'.$user['username'].'</span>'; 
  if (strtolower($my_special_color) == 'rainbow') 
  { 
    $len = 16; 
    $base='123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 
    $max=strlen($base)-1; 
    $randstr=''; 
    mt_srand((double)microtime()*1000000); 
    while (strlen($randstr)<$len+1) {$randstr .= $base[mt_rand(0,$max)];} 
    $user['musername'] = ' 
  <span id="spastic_username_container_'.$randstr.'">' . $user['username'] . '</span> 
  <script type="text/javascript"> 
  set_as_spastic(document.getElementById(\'spastic_username_container_'.$randstr.'\'),\''.$user['username'].'\'); 
  </script>';   
  } 
}
administrators see everyones name correctly the way the color should be. on the other hand, gold members and registered users, etc. users that dont have an admincp or modcp see the username with the people with the plugin as the default color. in this case "olive" and gold member usergroup id "24"
and i get a database error on the "who's online" page for those users
and the product "vsa - advanced forum statistics" does not show up for those users.

could someone help me?

thanks, Houston
Reply With Quote
  #2  
Old 12-01-2011, 10:30 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I can't see anything wrong in what's posted - is this a plugin? Which hook?
Reply With Quote
  #3  
Old 12-01-2011, 10:37 PM
AK Houston's Avatar
AK Houston AK Houston is offline
 
Join Date: Jan 2011
Location: Texas
Posts: 35
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kh99 View Post
I can't see anything wrong in what's posted - is this a plugin? Which hook?

yes its a hook. its a fetch_musername
Reply With Quote
  #4  
Old 12-01-2011, 11:06 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK, looks like the problem is that you're changing $user['membergroupids'] and messing up some stuff that tries to use it later (a reference is passed to the function so any changes will affect the variable that's passed to fetch_musername() even after it returns).

So I would make these changes (lines in blue added, lines in red can be deleted):

Code:
global $vbulletin; 

/// NOTE - Make sure that the $user information includes the MembergroupIDs 
if (!array_key_exists('membergroupids', $user) || !array_key_exists('usergroupid', $user)) 
{ 
    global $vbulletin; 
    $tempuser = $vbulletin->db->query_first(sprintf("SELECT usergroupid,membergroupids FROM " . TABLE_PREFIX . "user WHERE userid=%d",$user['userid'])); 
    $user['membergroupids'] = $tempuser['membergroupids']; 
    $user['usergroupid'] = $tempuser['usergroupid']; 
    //$user['membergroupids'] .= ','.$tempuser['usergroupid']; 
} 
//else 
//{ 
//    $user['membergroupids'] .= ','.$user['usergroupid']; 
//} 


//if (in_array(24,explode(',',$user['membergroupids']))) 
if (is_member_of($user, 24)) 
{

but I'm not sure that fixes everything. I noticed "rainbow" didn't seem to work, and I don't know why the problems only happened with non-admin or mod users.
Reply With Quote
Благодарность от:
Max Taxable
  #5  
Old 12-02-2011, 09:53 PM
AK Houston's Avatar
AK Houston AK Houston is offline
 
Join Date: Jan 2011
Location: Texas
Posts: 35
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kh99 View Post
OK, looks like the problem is that you're changing $user['membergroupids'] and messing up some stuff that tries to use it later (a reference is passed to the function so any changes will affect the variable that's passed to fetch_musername() even after it returns).

So I would make these changes (lines in blue added, lines in red can be deleted):

Code:
global $vbulletin; 

/// NOTE - Make sure that the $user information includes the MembergroupIDs 
if (!array_key_exists('membergroupids', $user) || !array_key_exists('usergroupid', $user)) 
{ 
    global $vbulletin; 
    $tempuser = $vbulletin->db->query_first(sprintf("SELECT usergroupid,membergroupids FROM " . TABLE_PREFIX . "user WHERE userid=%d",$user['userid'])); 
    $user['membergroupids'] = $tempuser['membergroupids']; 
    $user['usergroupid'] = $tempuser['usergroupid']; 
    //$user['membergroupids'] .= ','.$tempuser['usergroupid']; 
} 
//else 
//{ 
//    $user['membergroupids'] .= ','.$user['usergroupid']; 
//} 


//if (in_array(24,explode(',',$user['membergroupids']))) 
if (is_member_of($user, 24)) 
{

but I'm not sure that fixes everything. I noticed "rainbow" didn't seem to work, and I don't know why the problems only happened with non-admin or mod users.
well that fixes that problem

now its just that in the post bit, if I'm a regular member, i see all the people who have a colored name just the default color. 'olive'

how do i make it where they can see everyones individual color?
Reply With Quote
  #6  
Old 12-02-2011, 10:37 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by AK Houston View Post
how do i make it where they can see everyones individual color?
I don't have that problem on my test forum - admins and Registered Users are able to see special colors, as long as the user with the color is a member of the special group. You're going to have to put in some debug lines to see if you can figure out what's going on (like maybe echo() some values to an html comment and then view the page source to see them).
Reply With Quote
Reply


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 02:21 AM.


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.04141 seconds
  • Memory Usage 2,231KB
  • Queries Executed 13 (?)
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
  • (3)bbcode_code
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (6)post_thanks_box
  • (1)post_thanks_box_bit
  • (6)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (6)post_thanks_postbit_info
  • (6)postbit
  • (6)postbit_onlinestatus
  • (6)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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete