PDA

View Full Version : Yahoo Smilies hack. Need help!


mtha
02-23-2003, 01:55 AM
If you want to add some Yahoo_like smilies, there will be some problems:

if you add :)) , it will display as :) and )

See picture:
https://vborg.vbsupport.ru/external/2003/02/1.php?attachmentid=4744


FIX:

in function.php, look for


if($dosmilies) {
$bbcode=str_replace("&gt", "> )", $bbcode);
$bbcode=str_replace("&lt", "< )", $bbcode);
if(!isset($smilies)) {
$smilies=$DB_site->query("SELECT smilietext,smiliepath FROM smilie" );
} else {
$DB_site->data_seek(0,$smilies);
}
while ($smilie=$DB_site->fetch_array($smilies)) {
if(trim($smilie[smilietext])!="" ) {
$bbcode=str_replace(trim($smilie[smilietext]),"<img src=\"$smilie[smiliepath]\" border=\"0\" alt=\"\">",$bbcode);
}
}
}


Replaced by


if($dosmilies) {
$bbcode=str_replace("&gt", "&gt; )", $bbcode);
$bbcode=str_replace("&lt", "&lt; )", $bbcode);
if(!isset($smilies)) {
$smilies=$DB_site->query("SELECT smilietext,smiliepath FROM smilie ORDER BY LENGTH( `smilietext` ) DESC" );
} else {
$DB_site->data_seek(0,$smilies);
}
while ($smilie=$DB_site->fetch_array($smilies)) {
if(trim($smilie[smilietext])!="" ) {
$smilie[smilietext]=str_replace("<","&lt;",$smilie[smilietext]);
$smilie[smilietext]=str_replace(">","&gt;",$smilie[smilietext]);
$bbcode=str_replace(trim($smilie[smilietext]),"<img src=\"$smilie[smiliepath]\" border=\"0\" alt=\"\">",$bbcode);
}
}
}



All YIM smilies will be displayed fine.



However, there'll be one problem in the popup_smilies function

- with :"> the "> will stop the html command in vbcode_popup_smiliesbits template, it's not clickable either.

<td bgcolor="$backcolor"><a href="javascript:smilie('$smilie[text]')"><img src="$smilie[path]" border="0" alt="$smilie[title]"></a></td>
<td bgcolor="$backcolor"><normalfont>$smilie[text]</normalfont></td>

- with \:-D/ , when you click on the smilie, it will only display :-D/ ; the \ gone


Anyone know how to fix this problem