Forum. MyNuke.ru
Forum. MyNuke.ruСообщения за сегодняПерсональные сообщения

Навигация  
Вернуться   Forum. MyNuke.ru > PHP-NUKE > Настройка и Изменение
Ник
Пароль
Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
Soniks вне форума      Старый News (часть2) #11  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


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

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
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 $_GET['sid']; 

Заменяем на:
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 код:
 getTopics($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_loginloginbox(); 

Находим:
PHP код:
 $boxtitle ""._RELATED.""

Выше добавляем:
PHP код:
 if($show_related==1){ 

Находим:
PHP код:
 $boxstuff .= "<a href=\"modules.php?name=$module_name&file=article&sid=$topstory\">$ttitle</a></font></center><br>\n";
themesidebox($boxtitle$boxstuff); 

Ниже добавляем:
PHP код:
 

Находим:
PHP код:
 if ($ratings != 0) { 

Выше добавляем:
PHP код:
 if($show_ratings==1){ 

Находим:
PHP код:
 $ratecontent .= "<center><input type=\"submit\" value=\""._CASTMYVOTE."\"></center></form>";
themesidebox($ratetitle$ratecontent); 

Ниже добавляем:
PHP код:
 

Находим:
PHP код:
 $optiontitle ""._OPTIONS.""

Выше добавляем:
PHP код:
 if($show_option==or is_admin($admin)){ 

Находим (изменено):
PHP код:
 echo "</td></tr></table>\n"

Выше добавляем:
PHP код:
 

В результате, при прочтение полной версии новости, модуль делает 2 запроса без блоков и 6 с блоками (2-опрос, 2-ссылки). Это без вывода ассоциаций и комментариев (ими займемся позже).
На сегодня хватит

Последний раз редактировалось Soniks, 06.03.2006 в 01:46.
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".


Soniks вне форума      Старый News (часть2) #12  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


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

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
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>";
 } 
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".


Soniks вне форума      Старый News (часть3) #13  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


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

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
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 код:
 getTopics($s_sid); 

Заменяем на:
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); 
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".


Закрытая тема


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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



Часовой пояс GMT +4, время: 13:24.


На Верх
Рейтинг@Mail.ru