|
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&file=article&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&file=categories&op=newindex& catid=$catid\"><i>$cat_title</i></a>: <a href=\"modules.php?name=News&file=article&sid=$sid$r_opti ons\">$title</a>";
}
Заменяем на:
PHP код:
if ($catid == 0) {
$title = "<a href=\"modules.php?name=News&file=article&sid=$sid$r_opti ons\">$title</a>";
} elseif ($catid != 0) {
$cat_title = filter($row['title1'], "nohtml");
$title = "<a href=\"modules.php?name=News&file=categories&op=newindex& catid=$catid\"><b>$cat_title</b></a>: <a href=\"modules.php?name=News&file=article&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&file=article&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&file=categories&op=newindex& catid=$catid\"><i>$cat_title</i></a>: <a href=\"modules.php?name=News&file=article&sid=$sid$r_opti ons\">$title</a>";
}
Заменяем на:
PHP код:
if ($catid == 0) {
$title = "<a href=\"modules.php?name=News&file=article&sid=$sid$r_opti ons\">$title</a>";
} elseif ($catid != 0) {
$cat_title = filter($row['title1'], "nohtml");
$title = "<a href=\"modules.php?name=News&file=categories&op=newindex& catid=$catid\"><b>$cat_title</b></a>: <a href=\"modules.php?name=News&file=article&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&op=terms&eid=$eid&lt r=$ltr\"><b>$ltr</b></a>";
echo "-";
$counter++;
}
echo "</center>\n\n\n";
echo "<br>";
encysearch($eid);
}
Стало меньше на 28 запросов.
|
|