I added vbchat to my board, it worked except the smileys, they didn't show in the chat window. I have some other hacks installed but anyway, Resis Is Futile, one of my support members and good scripter had a look at it and tweaked it to make it work. Since it can help some others, I take the freedom to copy his changes here.
"
To make the smilies work I just changed to things. I removed the code in the smilie-bar generating section to make them appear in random order, and added a smilie-parser for the display of messages. I changed these two parts:
PHP Code:
if($Chat_Options['d_smilequery'] != 1){ // Total Amount Of Smilies $total = sizeof($smiliecache); $smilie_select = array(); for($x=0;$x<$Chat_Options['d_smilieamount'];$x++){ $smilie_select[] = $smiliecache[rand(1,$total)]; } } else { // Your getting red x's, so instead of using cached data lets query the database $smilies = $DB_site->query(" SELECT smilieid, smilietext, smiliepath, smilie.title, imagecategory.title AS category FROM " . TABLE_PREFIX . "smilie AS smilie LEFT JOIN " . TABLE_PREFIX . "imagecategory AS imagecategory USING(imagecategoryid) ORDER BY imagecategory.displayorder, smilie.displayorder "); $stotal = 0; while($gSmile = $DB->fetch_array($smilies)){ $allsmilies[] = $gSmile; $stotal++; } for($x=0;$x<$Chat_Options['d_smilieamount'];$x++){ $smilie_select[] = $allsmilies[rand(1,$stotal)]; }
to
PHP Code:
if($Chat_Options['d_smilequery'] != 1){ // Total Amount Of Smilies $total = sizeof($smiliecache); $smilie_select = array(); for($x=0;$x<$Chat_Options['d_smilieamount'];$x++){ $smilie_select[] = $smiliecache[$x]; } } else { // Your getting red x's, so instead of using cached data lets query the database $smilies = $DB_site->query(" SELECT smilieid, smilietext, smiliepath, smilie.title, imagecategory.title AS category FROM " . TABLE_PREFIX . "smilie AS smilie LEFT JOIN " . TABLE_PREFIX . "imagecategory AS imagecategory USING(imagecategoryid) ORDER BY imagecategory.displayorder, smilie.displayorder "); $stotal = 0; while($gSmile = $DB->fetch_array($smilies)){ $allsmilies[] = $gSmile; $stotal++; } for($x=0;$x<$Chat_Options['d_smilieamount'];$x++){ $smilie_select[] = $allsmilies[$x]; }
and
PHP Code:
if($Chat_Options['d_allowbbcode'] == "yes"){ // URL Parse Then BBCode Parse? $ThisMSG['s_message'] = convert_url_to_bbcode($ThisMSG['s_message']); $ThisMSG['s_message'] = parse_bbcode($ThisMSG['s_message'], 'nonforum'); } else { $ThisMSG['s_message'] = htmlspecialchars_uni($ThisMSG['s_message']); } // Check Status if($ThisMSG['vbchat_pref_status'] == ""){ $ThisMSG['vbchat_pref_status'] = "<i>None</i>"; }
to
PHP Code:
if($Chat_Options['d_allowbbcode'] == "yes"){ // URL Parse Then BBCode Parse? $ThisMSG['s_message'] = convert_url_to_bbcode($ThisMSG['s_message']); $ThisMSG['s_message'] = parse_bbcode($ThisMSG['s_message'], 'nonforum'); } else { $ThisMSG['s_message'] = htmlspecialchars_uni($ThisMSG['s_message']); } if($Chat_Options['d_smiliedisplay'] == 1){ // Your getting red x's, so instead of using cached data lets query the database $smilies = $DB_site->query(" SELECT smilieid, smilietext, smiliepath, smilie.title, imagecategory.title AS category FROM " . TABLE_PREFIX . "smilie AS smilie LEFT JOIN " . TABLE_PREFIX . "imagecategory AS imagecategory USING(imagecategoryid) ORDER BY imagecategory.displayorder, smilie.displayorder "); while($smiliegot = $DB->fetch_array($smilies)){ $ThisMSG['s_message'] = str_replace($smiliegot['smilietext'], "<img src='{$smiliegot['smiliepath']}' alt='{$smiliegot['title']}' />", $ThisMSG['s_message']); } } // Check Status if($ThisMSG['vbchat_pref_status'] == ""){ $ThisMSG['vbchat_pref_status'] = "<i>None</i>"; }
Once again thanks Resis and I hope this can help others that have the same problem