Sarteck |
07-28-2012 01:19 AM |
Not sure if you wanted something like this, but this is what I've got.
On a fetch_musername hook, I've got a plugin with the following (more or less):
PHP Code:
if (!function_exists('zebra_text')) {function zebra_text($text) { $ret = ''; $white = true; $textlength = strlen($text); for ($i=0;$i<$textlength;$i++) {$fgc = ($white)?'#FFFFFF':'#000000'; $bgc = (!$white)?'#FFFFFF':'#000000'; $white = !$white; $ret .= '<span style="color:'.$fgc.';background-color:'.$bgc.'">'.$text[$i].'</span>';} return $ret; }}
if (!function_exists('spastic_rainbow_text')) {function spastic_rainbow_text($text) { $text = str_replace("'","\'",$text); $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)];} $output = ' <span id="spastic_rainbow_container_'.$randstr.'">'.$text.'</span> <script type="text/javascript"> set_as_spastic(document.getElementById(\'spastic_username_container_'.$randstr.'\'),\''.$text.'\'); </script>'; return $output; }}
if (!function_exists('rainbow_text')) {function rainbow_text($text) { $ret = ''; $colors = array('ff00ff', 'ff0099', 'ff0000', 'ff9900', 'ffff00', '99ff00', '00ff00', '00ff99', '00ffff', '0099ff', '0000ff', '9900ff'); $i = 0; $pattern = '/(&[^\s]*;|.)/'; preg_match_all($pattern, $text, $matches); $textarray = $matches[1]; $textlength = strlen($text); while($i<=$textlength) {foreach($colors as $value) {if ($textarray[$i] != "") {$ret .= '<span style="color:#'.$value.';">'.$textarray[$i]."</span>";} $i++;}} return $ret; }}
if ($some_condition_about_the_user) { $user['musername'] = zebra_text($user['username']); /// Could also put the Rainbow or Spastic Rainbow in here. }
(Note: For the "Spastic" Rainbow username, which is a moving rainbow, I added the following to my headinclude template:)
HTML Code:
<script type="text/javascript">
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;}
function set_as_spastic(el,name,idstring)
{
var randid = 0;
if (idstring) {randid = idstring;} else {randid = Math.floor(Math.random() * 102400);}
el.id = 'spastic_username_container_' + randid;
spastic_Timer[randid] = 0;
spastic_Names[randid] = name;
if (!idstring) {spastic_index[randid] = 0;}
spastic_letters[randid] = name.split("");
spastic_Timers[randid] = setInterval("spastic_username("+randid+")", 50);
}
var spastic_Names = new Array();
var spastic_Timer = new Array();
var spastic_Timers = 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;
document.getElementById('spastic_username_container_'+idstring).onmouseover = new Function('pauseSpastic('+idstring+')');
document.getElementById('spastic_username_container_'+idstring).onmouseout = new Function('unpauseSpastic('+idstring+')');
}
function pauseSpastic(idstring) {clearInterval(spastic_Timers[idstring]);}
function unpauseSpastic(idstring) {set_as_spastic(document.getElementById('spastic_username_container_' + idstring),spastic_Names[idstring],idstring);}
</script>
|