vBulletin , vBSEO , PHP , CSS ve Fenerbahçe üzerine tuttuğum kişisel bloğum.
vBulletin Query Optimasyonu
Bu başlık altında vBulletin içerisinde bulunan ve yok ederek kurtulabileceğiniz her türlü query'i yazıcam.
vBulletin içerisinde gelen Announcements yani Duyuru sistemini global olarak deaktif edemiyorsunuz. Birçok site bu sistemi kullansada ben açıkçası duyuru sistemini fazlasıyla gereksiz bulmaktayım. Çok değişik sistemde takip ettim ve duyuruların okunmadığını gördüm. Kullanmadığımız bir sistemin boş yere query kullanmasına gerek olmadığından dolayı bu ekstra query den kurtulmak için forumdisplay.php'yi açıyoruz ve aşağıdaki kodu silip kaydedip tekrar serverımıza upload ediyoruz.
vBulletin içerisinde gelen Announcements yani Duyuru sistemini global olarak deaktif edemiyorsunuz. Birçok site bu sistemi kullansada ben açıkçası duyuru sistemini fazlasıyla gereksiz bulmaktayım. Çok değişik sistemde takip ettim ve duyuruların okunmadığını gördüm. Kullanmadığımız bir sistemin boş yere query kullanmasına gerek olmadığından dolayı bu ekstra query den kurtulmak için forumdisplay.php'yi açıyoruz ve aşağıdaki kodu silip kaydedip tekrar serverımıza upload ediyoruz.
Code:
// get announcements
$announcebits = '';
if ($show['threadicons'] AND $show['inlinemod'])
{
$announcecolspan = 6;
}
else if (!$show['threadicons'] AND !$show['inlinemod'])
{
$announcecolspan = 4;
}
else
{
$announcecolspan = 5;
}
$mindate = TIMENOW - 2592000; // 30 days
$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"));
while ($announcement = $db->fetch_array($announcements))
{
fetch_musername($announcement);
$announcement['postdate'] = vbdate($vbulletin->options['dateformat'], $announcement['startdate']);
if ($announcement['readannounce'] OR $announcement['startdate'] <= $mindate)
{
$announcement['statusicon'] = 'old';
}
else
{
$announcement['statusicon'] = 'new';
}
$announcement['views'] = vb_number_format($announcement['views']);
$announcementidlink = iif(!$vbulletin->options['oneannounce'] , "&a=$announcement[announcementid]");
($hook = vBulletinHook::fetch_hook('forumdisplay_announcement')) ? eval($hook) : false;
eval('$announcebits .= "' . fetch_template('threadbit_announcement') . '";');
}
Toplam Trackbacks 0














