Понадобилось настроить панель смайлов под формой ввода. Чтобы можно было выбрать какие смайлы туда выводить и в каком порядке. Написал этот хак:
в БД необходимо выполнить такой запрос:
Код:
ALTER TABLE `e_xoops_smiles` ADD `in_form` INT( 2 ) DEFAULT '0' NOT NULL ;
возможно нужно будет изменить префикс у таблицы e_xoops_ на тот который используется у вас
в
misc.php ищем
PHP код:
if ( $getsmiles = $db->query("SELECT code, emotion, smile_url FROM ".$db->prefix("smiles")) ) {
и весь код после этой строчки до
break; меняем на этот:
PHP код:
while ( $smile = $db->fetch_array($getsmiles) ) {
$rcolor = ( $rcolor == 'bg1' ) ? 'bg2' : 'bg1';
echo "<tr class='$rcolor'><td>".$smile['code']."</td><td>".$smile['emotion']."</td><td><a href='javascript: justReturn()' onclick='doSmilie(\" ".$smile['code']." \");'><img src='".formatURL(XOOPS_URL."/images/smilies/", $smile['smile_url'])."' alt='' /></a></td></tr>";
}
} else {
echo "Could not retrieve data from the database.";
}
echo "</table>";
в
formdhtmltextarea.php находим функцию
renderSmileys и меняем ее на эту:
PHP код:
function renderSmileys() {
Global $db;
$sql = "SELECT code, smile_url, emotion FROM ".$db->prefix("smiles")." WHERE in_form>0 ORDER BY in_form ASC";
if($res = $db->query($sql)){
$smileyPath = XOOPS_URL."/images/smilies";
$ret = "";
while(list($code, $smile_url, $emotion) = $db->fetch_row($res)){
$ret .= "<img src='".$smileyPath."/".$smile_url."' border='0' alt='".$code.
"' title='".$emotion."' onclick='xoopsCodeSmilie(\"".
$this->getName()."\", \" ".$code." \");' style='cursor:hand;'/>\n";
}
}
$ret .= " [<a href='javascript:openWithSelfMain(\"".XOOPS_URL.
"/misc.php?action=showpopups&type=smilies&target=".
$this->getName()."\",\"smilies\", 300, 430);'>"._MORE."</a>]";
return $ret;
}
и последнее: распакуйте содержимое аттача в корень вашего сайта (предварительно советую сохранить старые файлы)