Показать сообщение отдельно
Alexander-V-Sh вне форума      Старый #98  
Аватара для Alexander-V-Sh
Alexander-V-Sh
Бывалый
Регистрация: 19.04.2006
Сообщения: 352


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Alexander-V-Sh Посетить домашнюю страницу Alexander-V-Sh Найти все сообщения от Alexander-V-Sh Добавить Alexander-V-Sh в список друзей  
06.06.2006, 12:14

Оптимизация Stories_Archive
Находим:
PHP код:
 $result $db->sql_query("SELECT sid, catid, title, time, comments, counter, topic, alanguage, score, ratings from ".$prefix."_stories WHERE time >= '$year-$month-01 00:00:00' AND time <= '$year-$month-31 23:59:59' order by sid DESC"); 

Заменяем на:
PHP код:
 $result $db->sql_query("SELECT s.*, c.title as title1 FROM ".$prefix."_stories AS s LEFT JOIN ".$prefix."_stories_cat AS c ON( c.catid=s.catid and s.catid>0) WHERE time >= '$year-$month-01 00:00:00' AND time <= '$year-$month-31 23:59:59' ORDER BY s.sid DESC"); 

Находим:
PHP код:
 if ($catid == 0) {
            
$title "<a href=\"modules.php?name=News&amp;file=article&amp;sid=$sid$r_opti  ons\">$title</a>";
        } elseif (
$catid != 0) {
            
$row_res $db->sql_fetchrow($db->sql_query("SELECT title from ".$prefix."_stories_cat where catid='$catid'"));
            
$cat_title filter($row_res['title'], "nohtml");
            
$title "<a href=\"modules.php?name=News&amp;file=categories&amp;op=newindex&amp;  catid=$catid\"><i>$cat_title</i></a>: <a href=\"modules.php?name=News&amp;file=article&amp;sid=$sid$r_opti  ons\">$title</a>";
        } 

Заменяем на:
PHP код:
 if ($catid == 0) {
            
$title "<a href=\"modules.php?name=News&amp;file=article&amp;sid=$sid$r_opti  ons\">$title</a>";
        } elseif (
$catid != 0) {
            
$cat_title filter($row['title1'], "nohtml");
            
$title "<a href=\"modules.php?name=News&amp;file=categories&amp;op=newindex&amp;  catid=$catid\"><b>$cat_title</b></a>: <a href=\"modules.php?name=News&amp;file=article&amp;sid=$sid$r_opti  ons\">$title</a>";
        } 

Находим:
PHP код:
 $result $db->sql_query("SELECT sid, catid, title, time, comments, counter, topic, alanguage, score, ratings from ".$prefix."_stories order by sid DESC limit $min,$max");
    
$numrows $db->sql_numrows($db->sql_query("select * from ".$prefix."_stories")); 

Заменяем на:
PHP код:
 $result $db->sql_query("SELECT s.*, c.title as title1 FROM ".$prefix."_stories AS s LEFT JOIN ".$prefix."_stories_cat AS c ON( c.catid=s.catid and s.catid>0) ORDER BY s.sid DESC limit $min,$max"); 

Находим:
PHP код:
 if ($catid == 0) {
            
$title "<a href=\"modules.php?name=News&amp;file=article&amp;sid=$sid$r_opti  ons\">$title</a>";
        } elseif (
$catid != 0) {
            
$row_res $db->sql_fetchrow($db->sql_query("SELECT title from ".$prefix."_stories_cat where catid='$catid'"));
            
$cat_title filter($row_res['title'], "nohtml");
            
$title "<a href=\"modules.php?name=News&amp;file=categories&amp;op=newindex&amp;  catid=$catid\"><i>$cat_title</i></a>: <a href=\"modules.php?name=News&amp;file=article&amp;sid=$sid$r_opti  ons\">$title</a>";
        } 

Заменяем на:
PHP код:
 if ($catid == 0) {
            
$title "<a href=\"modules.php?name=News&amp;file=article&amp;sid=$sid$r_opti  ons\">$title</a>";
        } elseif (
$catid != 0) {
            
$cat_title filter($row['title1'], "nohtml");
            
$title "<a href=\"modules.php?name=News&amp;file=categories&amp;op=newindex&amp;  catid=$catid\"><b>$cat_title</b></a>: <a href=\"modules.php?name=News&amp;file=article&amp;sid=$sid$r_opti  ons\">$title</a>";
        } 


Вроде все тут. Делал по аналогии с оптимизацией новостей. У меня работает все.

Вопрос - зачем нужен код?
PHP код:
 if(is_user($user)) {
      
getusrinfo($user);
          if (!isset(
$mode) OR empty($mode)) {
            if(isset(
$userinfo['umode'])) {
              
$mode $userinfo['umode'];
            } else {
              
$mode "thread";
            }
          }
          if (!isset(
$order) OR empty($order)) {
            if(isset(
$userinfo['uorder'])) {
              
$order $userinfo['uorder'];
            } else {
              
$order 0;
            }
          }
          if (!isset(
$thold) OR empty($thold)) {
            if(isset(
$userinfo['thold'])) {
              
$thold $userinfo['thold'];
            } else {
              
$thold 0;
            }
          }
        } 

Причем тут пользователь в архиве статей? Если код удалить - разницы не заметил никакой.

Оптимизация модуля Ecyclopedia
Тут ничего впринципе не делал, просто изменил запрос в БД для алфавита. Убрал проверку на наличие терминов на каждую букву. (раньше ссылка на букве была не активной, если нет таких терминов, сейчас все ссылки активны).
Находим функцию: function alpha($eid)
И меняем ее полностью на:

PHP код:
 function alpha($eid) {
    global 
$module_name$prefix$db;
    echo 
"<center>Выберите букву для получения терминов:</center><br>";

    
$alphabet = array ("А","Б","В","Г","Д","Е","Ж","З","И","К","Л","М","Н",
               
"О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Э","Ю","Я");
    
$num count($alphabet) - 1;
    echo 
"<center>-";
    
$counter 0;
    
$eid intval($eid);
    while (list(, 
$ltr) = each($alphabet)) {
$ltr substr("$ltr"0,1);
echo 
"<a href=\"modules.php?name=$module_name&amp;op=terms&amp;eid=$eid&amp;lt  r=$ltr\"><b>$ltr</b></a>";

echo 
"-";
        
        
$counter++;
    }    
echo 
"</center>\n\n\n";    
echo 
"<br>";
encysearch($eid);



Стало меньше на 28 запросов.