Сайт сообщества | Клуб пользователей | О проекте

Имя
Пароль
ПравилаРегистрацияСправка
Сообщения за деньПоиск

Вернуться   Клуб пользователей портальной системы RUNCMS > Опен Ресурс > Разработчикам > Оптимизация

Ответ
 
Опции темы Опции просмотра
Michael-XIII вне форума Michael-XIII
Стар я для всего этого

Аватар для Michael-XIII

| Цитировать Старый #1 01-27-2006, 08:26

Сегодня сделал хорошую оптимизация для своей версии Banner 1.02 которая с приоритетами. Как результат - на странице с блоком из 3 баннером кол-во запросом модуля сократилось с 8 до 4(то есть в 2 раза!). Соответственно это на каждой странице.

Заменить файл include/functions.php файлом сос следующим кодом (старый на всякий случай забэкапьте)


Код:
<?php
//----------------------------------------------------------------------------------------//
/**
* Function to display banners in all pages
* PARAMS: $display="N" - type 
*         $number=1 - numbers of banners to shown
*/
function show_banner($display="N", $ban_number=1) 
{
global $db, $myts, $xoopsUser, $xoopsConfig;
if ($xoopsConfig["banners"]) 
{
$display = strtoupper($display);
switch($display) 
{
case "N":
$extra = "AND display='N'";
break;
case "A":
$extra = "";
break;
case "BA":
$extra = "AND display != 'N'";
break;
case "SR":
$extra = "AND (display='SR' OR display='BA' OR display='A')";
break;
case "SL":
$extra = "AND (display='SL' OR display='BA' OR display='A')";
break;
case "SLR":
$extra = "AND (display='SL' OR display='SR' OR display='SLR' OR display='BA' OR display='A')";
break;
case "CL":
$extra = "AND (display='CL' OR display='BA' OR display='A')";
break;
case "CR":
$extra = "AND (display='CR' OR display='BA' OR display='A')";
break;
case "CLR":
$extra = "AND (display='CL' OR display='CR' OR display='CLR' OR display='BA' OR display='A')";
break;
case "CC":
$extra = "AND (display='CC' OR display='BA' OR display='A')";
break;
case "CA":
$extra = "AND (display='CL' OR display='CR' OR display='CLR' OR display='CC' OR display='CA' OR display='BA' OR display='A')";
break;
default:
$extra = "AND display='$display'";
break;
}
// Bug in mysql? need to call query to a same table twice to get a rand()
$query = $db->query("SELECT COUNT(*) FROM ".$db->prefix("banner_items")." WHERE dateend < 1 $extra");
list($numrows) = $db->fetch_row($query);
if ($numrows > 0)  /* this type of banners exist */
{
$aPriority = array();
$aBanners = array();
$query = $db->query("SELECT bid, priority FROM ".$db->prefix("banner_items")." WHERE dateend < 1 $extra");
$nCount = 0;
while($r = $db->fetch_object($query))
{
for($i = $nCount; $i <= $nCount + $r->priority; $i++)
$aPriority[$i] = $r->bid;
$nCount += $r->priority;
}
/****** formin aBanners array based on a aPriority *********/
$i = 0;        
$sql_temp ="";
while( $i < $ban_number )
{
$temp_current = $aPriority[rand(0, $nCount)];
$ch = FALSE; /* check of banners present */
foreach ($aBanners as $banner_current)
{
if( $banner_current==$temp_current )
$ch = TRUE;
}
if($i == 0 || $ch == FALSE) /* if banner not present - save it */
{
$aBanners[$i] = $temp_current;
if ($sql_temp != "")
{
$sql_temp .= " OR";
}
$sql_temp .= " bid=$temp_current";               
$i++;
}
} 
/*        foreach ($aBanners as $banner_current)
echo "$banner_current, ";*/
$query = $db->query("SELECT bid, imptotal, impmade, imageurl, imagealt, clickurl, display, custom FROM ".$db->prefix("banner_items")." WHERE $sql_temp;");
while ($r = $db->fetch_object($query))
{          
if ( ($r->imptotal != 0) && ($r->imptotal == $r->impmade) ) 
{
$db->query("UPDATE ".$db->prefix("banner_items")." SET dateend=".time()." WHERE bid=$r->bid");
}
if ($r->custom) 
{
echo $r->custom;
} 
else 
{
$r->imagealt = $myts->makeTboxData4Show($r->imagealt);
echo "<a href='".XOOPS_URL."/modules/banners/click.php?op=click&amp;bid=$r->bid' target='_blank'><img class='banner' src='".formatURL(XOOPS_URL . "/modules/banners/cache/banners/", $r->imageurl)."' alt='$r->imagealt' /></a>";
//echo "</iframe>";         Where starting IFRAME??
}
}
if($sql_temp != "")
$db->query("UPDATE ".$db->prefix("banner_items")." SET impmade=impmade+1 WHERE $sql_temp");
}
}
}
?>


"А почему в RunCMS глючит ... ?"
"Глупые винят других. Умные – себя. А мудрые идут вперед". (С)
Посетить домашнюю страницу Michael-XIII
  Сообщения: 1,313 c 18.07.2005 | Репутация: 93
Stock Soul вне форума Stock Soul
Младший участник

Аватар для Stock Soul

| Цитировать Старый #2 01-30-2006, 19:18

Странно, у меня кол-во запросов не изменилось :-/

  Сообщения: 82 c 04.11.2005 | Репутация: 1
Michael-XIII вне форума Michael-XIII
Стар я для всего этого

Аватар для Michael-XIII

| Цитировать Старый #3 01-31-2006, 08:21

Если баннер один - не изменится, чем больше баннеров в одном блоке ("ушки" например) тем больше будет улучшение


"А почему в RunCMS глючит ... ?"
"Глупые винят других. Умные – себя. А мудрые идут вперед". (С)
Посетить домашнюю страницу Michael-XIII
  Сообщения: 1,313 c 18.07.2005 | Репутация: 93
Stock Soul вне форума Stock Soul
Младший участник

Аватар для Stock Soul

| Цитировать Старый #4 02-27-2006, 09:44

3 ушки___ странно...

Последний раз редактировалось Stock Soul, 02-27-2006 в 09:50

  Сообщения: 82 c 04.11.2005 | Репутация: 1
Michael-XIII вне форума Michael-XIII
Стар я для всего этого

Аватар для Michael-XIII

| Цитировать Старый #5 02-27-2006, 12:22

Цитата:
Сообщение от Stock Soul
3 ушки___ странно...
??? Не понял


"А почему в RunCMS глючит ... ?"
"Глупые винят других. Умные – себя. А мудрые идут вперед". (С)
Посетить домашнюю страницу Michael-XIII
  Сообщения: 1,313 c 18.07.2005 | Репутация: 93
Stock Soul вне форума Stock Soul
Младший участник

Аватар для Stock Soul

| Цитировать Старый #6 02-27-2006, 14:16

3 ушки крутятся кол-во запросов не изменилось

  Сообщения: 82 c 04.11.2005 | Репутация: 1
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Рейтинг@Mail.ru Хостинг провайдер Majordomo. Powered by: vBulletin Version 3.0
Copyright ©2000-2024, Jelsoft Enterprises Ltd.
Все разделы прочитаны - Руководство форума - Архив - Вверх
Rambler's Top100
Output: 63.04 Kb. compressed to 57.24 Kb. by saving 5.80 Kb. (9.20%)
Page generated in 0.08415 seconds with 10 queries