Hi all!
Have you a lot of Smilies in your forum? Maybe you have some duplicated smilies just because you call same smilie with different keywords, for example can be called by :-) and :smile: or :-( :sad:
If you do that, like me, you'll have duplicate smilies in your smilies lists and that's bad...
To fix it, I wrote a simple hack.
PAY ATTENTIONS!
You do that modification at your own risk!
We must edit a group of files:
includes/class_wysiwygparser.php
includes/class_bbcode.php
includes/functions_wysiwyg.php
includes/functions_editor.php
misc.php
Note:
If you have installed plugins with smilies list, you must search in their files looking for TABLE_PREFIX . "smilie and add at the end of the query and before Order By that piece of query GROUP BY smiliepath NEVER EDIT FILES UNDER "admincp/".
$getsmilies = $this->registry->db->query_read_slave("SELECT smilieid, smilietext FROM " . TABLE_PREFIX . "smilie GROUP BY smiliepath");
Save & close
Open: includes/class_bbcode.php
Search for:
PHP Code:
$smilies = $this->registry->db->query_read("
SELECT *, LENGTH(smilietext) AS smilielen
FROM " . TABLE_PREFIX . "smilie
ORDER BY smilielen DESC
");
Replace with:
PHP Code:
$smilies = $this->registry->db->query_read("
SELECT *, LENGTH(smilietext) AS smilielen
FROM " . TABLE_PREFIX . "smilie
GROUP BY smiliepath
ORDER BY smilielen DESC
");
$getsmilies = $vbulletin->db->query_read_slave("SELECT smilieid, smilietext FROM " . TABLE_PREFIX . "smilie GROUP BY smiliepath");
Save & close
Open: includes/functions_editor.php
Search for:
PHP Code:
$smilies = $vbulletin->db->query_read_slave("
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, imagecategory.title, smilie.displayorder
");
Replace with:
PHP Code:
$smilies = $vbulletin->db->query_read_slave("
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)
GROUP BY smiliepath
ORDER BY imagecategory.displayorder, imagecategory.title, smilie.displayorder
");
Save & close
Open: misc.php
Search for:
PHP Code:
$result = $db->query_read_slave("
SELECT smilietext AS text, smiliepath AS path, smilie.title, smilieid,
imagecategory.title AS category
FROM " . TABLE_PREFIX . "smilie AS smilie
LEFT JOIN " . TABLE_PREFIX . "imagecategory AS imagecategory USING(imagecategoryid)
ORDER BY imagecategory.displayorder, imagecategory.title, smilie.displayorder
");
Replace with:
PHP Code:
$result = $db->query_read_slave("
SELECT smilietext AS text, smiliepath AS path, smilie.title, smilieid,
imagecategory.title AS category
FROM " . TABLE_PREFIX . "smilie AS smilie
LEFT JOIN " . TABLE_PREFIX . "imagecategory AS imagecategory USING(imagecategoryid)
GROUP BY smiliepath
ORDER BY imagecategory.displayorder, imagecategory.title, smilie.displayorder
");
Search for:
PHP Code:
$smilies = $db->query_read_slave("
SELECT 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, imagecategory.title, smilie.displayorder
");
Replace with:
PHP Code:
$smilies = $db->query_read_slave("
SELECT smilietext,smiliepath,smilie.title,imagecategory.title AS category
FROM " . TABLE_PREFIX . "smilie AS smilie
LEFT JOIN " . TABLE_PREFIX . "imagecategory AS imagecategory USING(imagecategoryid)
GROUP BY smiliepath
ORDER BY imagecategory.displayorder, imagecategory.title, smilie.displayorder
");