Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 4 Articles
[How-TO vB 4] Don't show duplicate smilies in quickreply and new thread list
RedFoxy's Avatar
RedFoxy
Join Date: Sep 2007
Posts: 179

 

Italy
Show Printable Version Email this Page Subscription
RedFoxy RedFoxy is offline 06-04-2010, 10:00 PM

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/".

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
Reply With Quote
  #2  
Old 06-09-2010, 05:31 AM
as7apcool as7apcool is offline
 
Join Date: Feb 2009
Posts: 194
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks alot 4 your work
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 03:45 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04769 seconds
  • Memory Usage 2,229KB
  • Queries Executed 17 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (12)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_article
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (1)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete