Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 General Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #2  
Old 06-16-2011, 04:06 PM
Sarteck's Avatar
Sarteck Sarteck is offline
 
Join Date: Mar 2008
Posts: 304
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

On the hook fetch_musername, you could use something like:
PHP Code:
if (is_member_of($user$special_group))
{
  
$user['musername'] = '<span style="color:'.$my_special_color.'">'.$user['username'].'</span>';

If you had a special User Field that you created (Admin CP -> User Profile Fields -> Add User Profile Field), you could use that value for the colour like so:

PHP Code:
if (is_member_of($user$special_group))
{
  
$my_special_color $user['fieldXX'];
  
$user['musername'] = '<span style="color:'.$my_special_color.'">'.$user['username'].'</span>';

In some areas there fetch_musername() is called, it doesn't send the UserFields along with the UserInfo. So you might want to check to make sure the field exists on the array, first.

PHP Code:
if (is_member_of($user$special_group))
{
  if (!
array_key_exists('fieldXX'$user)) {$user fetch_userinfo($user['userid']);}
  
$my_special_color $user['fieldXX'];
  
$user['musername'] = '<span style="color:'.$my_special_color.'">'.$user['username'].'</span>';

(Note that if a User's Info is already in the userinfo cache, it will just fetch what's in the cache, but you probably won't run into that problem. If you do, that can be gotten around with an extra line or two of code, to unset that User's $usercache entry. Just post back if you have problems.)

You can specify a Default colour, in case one is not yet set for the user.

PHP Code:
if (is_member_of($user$special_group))
{
  if (!
array_key_exists('fieldXX'$user)) {$user fetch_userinfo($user['userid']);}
  
$my_special_color = ($user['fieldXX']) ? $user['fieldXX'] : $my_default_color;
  
$user['musername'] = '<span style="color:'.$my_special_color.'">'.$user['username'].'</span>';


Note, of course, that you will have to change fieldXX to whatever your field is, and set a value for $special_group. I do recommend that you use a User Profile Field, too, although you CAN make an extra field right on the user table. (That's actually what I did myself before I found out about user Profile Fields and felt dumb for doing so, heh.)

Post back if you have any questions or run into any problems.

--------------- Added [DATE]1308244982[/DATE] at [TIME]1308244982[/TIME] ---------------

Oh, as for that marquee, I have something similar, but it was a rainbow text I programmed for my members who want to act all gay.

Use the fetch_musername hook again, and this code:

PHP Code:
    $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>'

That Random String bit is important because each place a name occurs has to have a random ID. Don't worry, though--it doesn't take a lot of processing power, even though it looks kind of complicated. XD

ALSO, you must enter the following javaScript into your headinclude template:

HTML Code:
<script type="text/javascript">

function set_as_spastic(el,name)
{
  var randid = 0;
  randid = Math.floor(Math.random() * 102400);
  //randid = randint(12);
  el.id = 'spastic_username_container_' + randid;
  spastic_Timer[randid] = 0;
  spastic_index[randid] = 0;
  spastic_letters[randid] = name.split("");
  setInterval("spastic_username("+randid+")", 50); 
}


function randint(len)
{
  var chars = "0123456789";
  if (!len) {len=8;}
  var randomstring = '';
  for (var i=0; i<len; i++)
  {
    var rnum = Math.floor(Math.random() * chars.length);
    randomstring += chars.substring(rnum,rnum+1);
  }
  return randomstring;
}


var spastic_Timer = new Array();
var spastic_index = new Array();
var spastic_letters = new Array();

function spastic_username(idstring)
{
  var colors = new Array('ff00ff', 'ff0099', 'ff0000', 'ff9900', 'ffff00', '99ff00', '00ff00', '00ff99', '00ffff', '0099ff', '0000ff', '9900ff');
  var bgcolors = new Array('880088', '880033', '880000', '883300', '888800', '338800', '008800', '008833', '008888', '003388', '000088', '330088');
  spastic_index[idstring]++;
  if (spastic_index[idstring] > colors.length-1) {spastic_index[idstring] = 0;}
  var temp_index = spastic_index[idstring];
  var output = '';
  for (var i=0; i<spastic_letters[idstring].length; i++)
  {
    if (temp_index > colors.length-1) {temp_index = 0;}
    output += '<span style="color:#'+colors[temp_index]+'; background-color:#'+bgcolors[temp_index]+';">' + spastic_letters[idstring][i] + '</span>';
    temp_index++;
  }
  document.getElementById('spastic_username_container_'+idstring).innerHTML = output;
}
</script>
Just change the values in the colors and bgcolors array in the JavaScript to however you want. The values I have in there now are rainbow-ish, but you can set them however you want. Tinker around with it and see how you like it.

--------------- Added [DATE]1308245060[/DATE] at [TIME]1308245060[/TIME] ---------------

Oh! One more thing... When you put that Script into your headinclude template, you might have to wrap <vb:literal></vb:literal> tags around it, due to the curly braces.
Reply With Quote
 


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 07:09 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04550 seconds
  • Memory Usage 2,656KB
  • Queries Executed 12 (?)
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)bbcode_html
  • (9)bbcode_php
  • (4)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (9)post_thanks_box
  • (9)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (9)post_thanks_postbit_info
  • (9)postbit
  • (9)postbit_onlinestatus
  • (9)postbit_wrapper
  • (1)showthread_list
  • (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_threadedmode.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_threaded
  • showthread_threaded_construct_link
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete