RedFoxy |
06-04-2010 10:00 PM |
[How-TO vB 4] Don't show duplicate smilies in quickreply and new thread list
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 https://vborg.vbsupport.ru/external/2010/12/15.gif can be called by :) :-) and :smile: or https://vborg.vbsupport.ru/external/2010/06/13.gif :( :-( :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/".
Open: includes/class_wysiwygparser.php
Search for:
PHP Code:
$getsmilies = $this->registry->db->query_read_slave("SELECT smilieid, smilietext FROM " . TABLE_PREFIX . "smilie");
Replace with
PHP Code:
$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
");
Save & close
Open: includes/functions_wysiwyg.php
Search for:
PHP Code:
$getsmilies = $vbulletin->db->query_read_slave("SELECT smilieid, smilietext FROM " . TABLE_PREFIX . "smilie");
Replace with:
PHP Code:
$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
");
Save & close
And that's all, enjoy it!
Sorry for bad english
|