|
|
|
|
|
|
|
22.02.2006, 04:39
Оптимизируем модуль Новостей
Открываем modules/News/article.php
Находим:
PHP код:
require_once("mainfile.php");
Выше добавляем:
PHP код:
$show_related = 1; // 1 - Показывать блок "Связанные ссылки" | 0 - не показывать $show_ratings = 1; // 1 - Показывать блок "Рейтинг статьи " | 0 - не показывать $show_option = 1; // 1 - Показывать блок "Опции " | 0 - не показывать (Админ все равно будет видить этот блок)
То, что мы сейчас добавили, является настраиваемой частью скрипта, вы можете выключить не нужные вам блоки.
Находим:
Заменяем на:
PHP код:
$sid = intval($_GET['sid']);
Находим:
PHP код:
$result = $db->sql_query("select catid, aid, time, title, hometext, bodytext, topic, informant, notes, acomm, haspoll, pollID, score, ratings FROM ".$prefix."_stories where sid='$sid'");
Заменяем на:
PHP код:
$result = $db->sql_query("SELECT s.*, t.*, c.title as title1 FROM ".$prefix."_stories AS s LEFT JOIN ".$prefix."_topics AS t ON(t.topicid=s.topic) LEFT JOIN ".$prefix."_stories_cat AS c ON( c.catid=s.catid and s.catid>0) WHERE s.sid='$sid'");
Находим:
Заменяем на:
PHP код:
$topicid = intval($row['topicid']); $topicname = filter($row['topicname'], nohtml); $topicimage = filter($row['topicimage'], nohtml); $topictext = filter($row['topictext'], nohtml);
Находим:
PHP код:
if ($catid != 0) { $row2 = $db->sql_fetchrow($db->sql_query("select title from ".$prefix."_stories_cat where catid='$catid'")); $title1 = filter($row2['title'], nohtml);
Заменяем на:
PHP код:
if($title1 = filter($row['title1'], nohtml)){
Это мы оптимизировали вывод самих новостей, а теперь займемся выводом блоков, которые выводятся с права от новости.
Находим:
PHP код:
$row3 = $db->sql_fetchrow($db->sql_query("SELECT pollTitle, voters FROM ".$prefix."_poll_desc WHERE pollID='$pollID'"));
Заменяем на:
PHP код:
$row3 = $db->sql_fetchrow($db->sql_query("SELECT d.pollTitle, d.voters, COUNT(c.tid) AS ctid FROM ".$prefix."_poll_desc AS d LEFT JOIN ".$prefix."_pollcomments AS c ON(c.pollID='$pollID') WHERE d.pollID='$pollID' GROUP BY d.pollTitle"));
Находим:
PHP код:
for($i = 1; $i <= 12; $i++) { $result4 = $db->sql_query("SELECT pollID, optionText, optionCount, voteID FROM ".$prefix."_poll_data WHERE (pollID='$pollID') AND (voteID='$i')"); $row4 = $db->sql_fetchrow($result4); $numrows = $db->sql_numrows($result4); if($numrows != 0) { $optionText = $row4['optionText']; if($optionText != "") { $boxContent .= "<tr><td valign=\"top\"><input type=\"radio\" name=\"voteID\" value=\"".$i."\"></td><td width=\"100%\"><font class=\"content\">$optionText</font></td></tr>\n"; } } }
Заменяем на:
PHP код:
$result4 = $db->sql_query("SELECT pollID, optionText, optionCount, voteID FROM ".$prefix."_poll_data WHERE pollID='$pollID' ORDER BY voteID "); $numrows = $db->sql_numrows($result4); if($numrows != 0) { while($row4 = $db->sql_fetchrow($result4)){ $optionText = $row4['optionText']; if($optionText != "") { $boxContent .= "<tr><td valign=\"top\"><input type=\"radio\" name=\"voteID\" value=\"".$row4['voteID']."\"></td><td width=\"100%\"><font class=\"content\">$optionText</font></td></tr>\n"; } } }
Находим и удаляем:
PHP код:
for($i = 0; $i < 12; $i++) { $row5 = $db->sql_fetchrow($db->sql_query("SELECT optionCount FROM ".$prefix."_poll_data WHERE (pollID='$pollID') AND (voteID='$i')")); $optionCount = $row5['optionCount']; $sum = (int)$sum+$optionCount; }
Находим:
PHP код:
if ($pollcomm) { $result6 = $db->sql_query("select * from ".$prefix."_pollcomments where pollID='$pollID'"); $numcom = $db->sql_numrows($result6); $boxContent .= "<br>"._VOTES.": <b>$sum</b><br>"._PCOMMENTS." <b>$numcom</b>\n\n"; } else { $boxContent .= "<br>"._VOTES." <b>$sum</b>\n\n"; }
Заменяем на:
PHP код:
if ($pollcomm) { $boxContent .= "<br>"._VOTES.": <b>$voters</b><br>"._PCOMMENTS." <b>".$row3['ctid']."</b>\n\n"; } else { $boxContent .= "<br>"._VOTES." <b>$voters</b>\n\n"; }
Находим:
PHP код:
$row7 = $db->sql_fetchrow($db->sql_query("select title, content, active, bposition from ".$prefix."_blocks where blockfile='block-Login.php' $querylang"));
Выше добавляем (изменено):
PHP код:
global $block_info; $show_login = false; if($block_info){ if($block_info['r']){ foreach($block_info['r'] as $value){ if($value['blockfile'] =='block-Login.php'){ $show_login = true; break; } } } }else{
Находим:
PHP код:
if (($active == 1) AND ($position == "r") AND (!is_user($user))) { loginbox(); }
Заменяем на:
PHP код:
if (($active == 1) AND ($position == "r")) $show_login = true; } if(!is_user($user) and $show_login) loginbox();
Находим:
PHP код:
$boxtitle = ""._RELATED."";
Выше добавляем:
Находим:
PHP код:
$boxstuff .= "<a href=\"modules.php?name=$module_name&file=article&sid=$topstory\">$ttitle</a></font></center><br>\n"; themesidebox($boxtitle, $boxstuff);
Ниже добавляем:
Находим:
Выше добавляем:
Находим:
PHP код:
$ratecontent .= "<center><input type=\"submit\" value=\""._CASTMYVOTE."\"></center></form>"; themesidebox($ratetitle, $ratecontent);
Ниже добавляем:
Находим:
PHP код:
$optiontitle = ""._OPTIONS."";
Выше добавляем:
PHP код:
if($show_option==1 or is_admin($admin)){
Находим (изменено):
PHP код:
echo "</td></tr></table>\n";
Выше добавляем:
В результате, при прочтение полной версии новости, модуль делает 2 запроса без блоков и 6 с блоками (2-опрос, 2-ссылки). Это без вывода ассоциаций и комментариев (ими займемся позже).
На сегодня хватит
Последний раз редактировалось Soniks, 06.03.2006 в 01:46.
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
|
|
|
|
|
|
06.03.2006, 02:16
Предыдущий пост был подправлен!
Оптимизируем модуль Новостей
Открываем modules/News/associates.php
Находим и удаляем:
PHP код:
require_once("mainfile.php"); $module_name = basename(dirname(__FILE__)); get_lang($module_name); $sid = intval($sid); $arow = $db->sql_fetchrow($db->sql_query("SELECT associated FROM ".$prefix."_stories WHERE sid='$sid'"));
Находим:
PHP код:
if ($arow[associated] != "") { OpenTable(); echo "<center><b>"._ASSOTOPIC."</b><br><br>"; $asso_t = explode("-",$arow[associated]); for ($i=0; $i<sizeof($asso_t); $i++) { if ($asso_t[$i] != "") { $atop = $db->sql_fetchrow($db->sql_query("SELECT topicimage, topictext from ".$prefix."_topics WHERE topicid='$asso_t[$i]'")); $atop[topictext] = filter($atop[topictext], nohtml); echo "<a href=\"modules.php?name=$module_name&new_topic=$asso_t[$i]\"><img src=\"$tipath$atop[topicimage]\" border=\"0\" hspace=\"10\" alt=\"$atop[topictext]\" title=\"$atop[topictext]\"></a>"; } }
Заменяем на:
PHP код:
global $tipath, $row; if ($row['associated'] != "") { OpenTable(); echo "<center><b>"._ASSOTOPIC."</b><br><br>"; if(substr($row['associated'], -1)=="-") $row['associated'] = substr($row['associated'], 0, -1); $asso_t = explode("-",$row['associated']); $asso_t = implode(",", $asso_t); $aresult = $db->sql_query("SELECT topicid, topicimage, topictext FROM ".$prefix."_topics WHERE topicid IN($asso_t)"); while($atop = $db->sql_fetchrow($aresult)){ $atop['topictext'] = filter($atop['topictext'], nohtml); echo "<a href=\"modules.php?name=$module_name&new_topic=".$atop['topicid']."\"><img src=\"".$tipath.$atop['topicimage']."\" border=\"0\" hspace=\"10\" alt=\"".$atop['topictext']."\" title=\"".$atop['topictext']."\"></a>"; }
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
|
|
|
|
|
|
04.04.2006, 03:23
Оптимизируем модуль Новостей
Открываем modules/News/categories.php
Находим:
PHP код:
$result = $db->sql_query("SELECT sid, aid, title, time, hometext, bodytext, comments, counter, topic, informant, notes, acomm, score, ratings FROM ".$prefix."_stories where catid='$catid' $querylang ORDER BY sid DESC limit $storynum");
Заменяем на:
PHP код:
$result = $db->sql_query("SELECT s.*, t.*, c.title as title1 FROM ".$prefix."_stories AS s LEFT JOIN ".$prefix."_topics AS t ON(t.topicid=s.topic) LEFT JOIN ".$prefix."_stories_cat AS c ON(c.catid=s.catid) WHERE s.catid='$catid' $querylang ORDER BY s.sid DESC LIMIT $storynum");
Находим:
Заменяем на:
PHP код:
$topicid = intval($row['topicid']); $topicname = filter($row['topicname'], nohtml); $topicimage = filter($row['topicimage'], nohtml); $topictext = filter($row['topictext'], nohtml);
Находим:
PHP код:
$row2 = $db->sql_fetchrow($db->sql_query("select title from ".$prefix."_stories_cat where catid='$catid'")); $title1 = filter($row2['title'], "nohtml");
Заменяем на:
PHP код:
$title1 = filter($row['title1'], "nohtml");
Открываем modules/News/print.php
Находим:
PHP код:
$row = $db->sql_fetchrow($db->sql_query("SELECT title, time, hometext, bodytext, topic, notes FROM ".$prefix."_stories WHERE sid='$sid'"));
Заменяем на:
PHP код:
$row = $db->sql_fetchrow($db->sql_query("SELECT s.*, t.topictext FROM ".$prefix."_stories AS s LEFT JOIN ".$prefix."_topics AS t ON(t.topicid=s.topic) WHERE s.sid='$sid'"));
Находим:
PHP код:
$row2 = $db->sql_fetchrow($db->sql_query("SELECT topictext FROM ".$prefix."_topics WHERE topicid='$topic'")); $topictext = filter($row2['topictext'], nohtml);
Заменяем на:
PHP код:
$topictext = filter($row['topictext'], nohtml);
|
|
|
|
|
|
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть". |
|
|
|
|
|
|
|
|
|
|
|
Опции темы |
Поиск в этой теме |
|
|
Опции просмотра |
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:04.
|
|
|
|
|
|
|
|
|
|
|
|
|