vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.6 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=194)
-   -   Board Optimization - (Forumdisplay) Turn off announcements & save 1 query (https://vborg.vbsupport.ru/showthread.php?t=136134)

ThorstenA 01-09-2007 10:00 PM

(Forumdisplay) Turn off announcements & save 1 query
 
(Forumdisplay) Turn off announcements & save 1 query




What does this product do?

This very easy to use product turns off announcements in forumdisplay and saves a whole query each time forumdisplay is presented. Therefore it improves forum speed. There is a discussion in suggestion forum of vbulletin.com to only search for new announcements once a day instead of searching for new announcements each time forumdisplay is presented.

Installation information
  • Files edited: 1
  • Templates edited: 0
  • Files to upload: 0
  • DB Tables changed: 0
  • Additional queries: 0
  • Changed queries: 0
  • Time to install: 60 seconds max

Installation
  1. Open forumdisplay.php
  2. Search for
    Code:

    $announcements = $db->query_read_slave("
                    SELECT
                            announcement.announcementid, startdate, title, announcement.views,
                            user.username, user.userid, user.usertitle, user.customtitle, user.usergroupid,
                            IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid
                            " . (($vbulletin->userinfo['userid']) ? ", NOT ISNULL(announcementread.announcementid) AS readannounce" : "") . "
                    FROM " . TABLE_PREFIX . "announcement AS announcement
                    " . (($vbulletin->userinfo['userid']) ? "LEFT JOIN " . TABLE_PREFIX . "announcementread AS announcementread ON (announcementread.announcementid = announcement.announcementid AND announcementread.userid = " . $vbulletin->userinfo['userid'] . ")" : "") . "
                    LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = announcement.userid)
                    WHERE startdate <= " . TIMENOW . "
                            AND enddate >= " . TIMENOW . "
                            AND " . fetch_forum_clause_sql($foruminfo['forumid'], 'forumid') . "
                    ORDER BY startdate DESC, announcement.announcementid DESC
                    " . iif($vbulletin->options['oneannounce'], "LIMIT 1"));

  3. Delete this code
  4. Save forumdisplay.php


Flagged for future version
  • Put an IF { } statement around this, and create a new setting in vBulletin Options to control whether the Announcement is on or off in Forumdisplay.

Please click Install if you installed this product. So you can get information if product improves. Thank you.



This hack may not be copied, reproduced or published elswhere without my permission.
Please take attention: I take no responsibility for anything of what this product could do anywhere (forum, other software, server ...).

ThorstenA 01-10-2007 09:00 PM

Reserved for future posts.

thincom2000 01-10-2007 09:12 PM

I think it may be better to put an IF { } statement around this, and create a new setting in vBulletin Options to control whether the Announcement is on or off in Forumdisplay. That way you can actually use them if you need to, instead of deleting it entirely from the file.

projectego 01-10-2007 10:54 PM

Nice work, ThorstonA. Thanks. :)

Just curious though - does implementing this have any negative side-effects?

ThorstenA 01-11-2007 06:14 AM

Quote:

Originally Posted by thincom2000 (Post 1155775)
I think it may be better to put an IF { } statement around this, and create a new setting in vBulletin Options to control whether the Announcement is on or off in Forumdisplay. That way you can actually use them if you need to, instead of deleting it entirely from the file.

Flagged for future version
Quote:

Originally Posted by projectego (Post 1155839)
Nice work, ThorstonA. Thanks. :)

Just curious though - does implementing this have any negative side-effects?

You do not see announcements on forumdisplay. That's the only effect and it saves one query ;)

JohnBee 02-05-2007 04:41 PM

I did this MOD, I had 10 queries before I added the mod and I had 10 queries after the edit.
No effect that I can see.

ThorstenA 03-08-2007 08:59 AM

Quote:

Originally Posted by JohnBee (Post 1175305)
I did this MOD, I had 10 queries before I added the mod and I had 10 queries after the edit.
No effect that I can see.

It is removing 1 query:
Code:

SELECT
                        announcement.announcementid, startdate, title, announcement.views,
                        user.username, user.userid, user.usertitle, user.customtitle, user.usergroupid,
                        IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid
                        " . (($vbulletin->userinfo['userid']) ? ", NOT ISNULL(announcementread.announcementid) AS readannounce" : "") . "
                FROM " . TABLE_PREFIX . "announcement AS announcement
                " . (($vbulletin->userinfo['userid']) ? "LEFT JOIN " . TABLE_PREFIX . "announcementread AS announcementread ON (announcementread.announcementid = announcement.announcementid AND announcementread.userid = " . $vbulletin->userinfo['userid'] . ")" : "") . "
                LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = announcement.userid)
                WHERE startdate <= " . TIMENOW . "
                        AND enddate >= " . TIMENOW . "
                        AND " . fetch_forum_clause_sql($foruminfo['forumid'], 'forumid') . "
                ORDER BY startdate DESC, announcement.announcementid DESC
                " . iif($vbulletin->options['oneannounce'], "LIMIT 1")


Zia 03-16-2007 04:06 PM

any vb developer has anything to say about it?

ThorstenA 03-22-2007 08:54 AM

Quote:

Originally Posted by Zia (Post 1204942)
any vb developer has anything to say about it?

vb Team is looking forward to put this query into datastore (or something like that) and just run this query once a day instead of every time forumdisplay is presented to user. Could be integrated into next smaller vbulletin update.

Fenriz 08-04-2009 11:28 PM

Quote:

vb Team is looking forward to put this query into datastore (or something like that) and just run this query once a day instead of every time forumdisplay is presented to user. Could be integrated into next smaller vbulletin update.
Has that been done in 3.7.x?


All times are GMT. The time now is 06:42 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01123 seconds
  • Memory Usage 1,744KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code_printable
  • (5)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete