Forum. MyNuke.ru

Forum. MyNuke.ru (http://forum.mynuke.ru/index.php)
-   Настройка и Изменение (http://forum.mynuke.ru/forumdisplay.php?f=11)
-   -   Обсуждение темы "Оптимизация PHP-NUKE" (http://forum.mynuke.ru/showthread.php?t=1273)

typus 09.11.2006 01:47

еще раз,добрый вечер вам всем.
попробовал переделать все,как тут кто-то предлагал, по шагам,в принципе,разобрался,где глюки,не понял пока только,как поправить.
п.1) и п.2)появляются как косяки после выполнения шага 2
Цитата 2. Изменим вызов конфиг файла и подключение к бд, находим:

Собственно,понятно,в этой версии кусок кода,который предлагается оптимизировать,выглядит так:
PHP код:
 if (defined('FORUM_ADMIN')) {
        require_once(
"../../../config.php");
        require_once(
"../../../db/db.php");
           @include_once(
"../../../includes/nukesentinel.php");
} elseif (
defined('INSIDE_MOD')) {
        require_once(
"../../config.php");
        require_once(
"../../db/db.php");
          @include_once(
"../../../includes/nukesentinel.php"); 
} else {
        require_once(
"config.php");
        require_once(
"db/db.php");
           @include_once(
"includes/nukesentinel.php");
        
// FOLLOWING TWO LINES ARE DEPRECATED BUT ARE HERE FOR OLD MODULES COMPATIBILITY
        //PLEASE START USING THE NEW SQL ABSTRACTION LAYER. SEE MODULES DOC FOR DETAILS
        
require_once("includes/sql_layer.php");
        
$dbi sql_connect($dbhost$dbuname$dbpass$dbname); 

Т.е.я пока не вкурил, куда надо воткнуть эту строку -
PHP код:
 @include_once("../../includes/nukesentinel.php"); 

Кто-то же уже делал эту операцию с версией от шкурок,вроде успешно?Подскажите,если несложно,буду признателен.
По п.3)глюк начинается после
Цитата Откорректируем index.php, находим:
-где тут копать - вообще ума не приложу.
В принципе,все бы ничего,но я заметил,что эти два шага убирают огромное число запросов,сейчас у меня на главной осталось 165(было 383),вроде сильно уменьшилось, и без глюков, но вот когда проделываю эти два пункта - остается меньше ста!Но вышеописанные глюки.Хотелось бы,конечно,уменьшить,ясно,что надо тот модуль последних новостей, что на главной вместо news оптимизировать - если кому есть что сказать - буду благодарен

whitepanther 11.11.2006 03:23

PHP код:
 if (defined('FORUM_ADMIN')) {
define('NUKE_PATH''../../../');
} elseif (
defined('INSIDE_MOD')) {
define('NUKE_PATH''../../');
} else {
define('NUKE_PATH''./');
 
/* FOLLOWING TWO LINES ARE DEPRECATED BUT ARE HERE FOR OLD MODULES COMPATIBILITY */
/* PLEASE START USING THE NEW SQL ABSTRACTION LAYER. SEE MODULES DOC FOR DETAILS */
require_once("includes/sql_layer.php");
$dbi sql_connect($dbhost$dbuname$dbpass$dbname);
}
require_once(
NUKE_PATH."config.php");
require_once(
NUKE_PATH."db/db.php");
@require_once(
NUKE_PATH."includes/nukesentinel.php"); 


Причем строчки
PHP код:
 /* FOLLOWING TWO LINES ARE DEPRECATED BUT ARE HERE FOR OLD MODULES COMPATIBILITY */
/* PLEASE START USING THE NEW SQL ABSTRACTION LAYER. SEE MODULES DOC FOR DETAILS */
require_once("includes/sql_layer.php");
$dbi sql_connect($dbhost$dbuname$dbpass$dbname); 

желательно удалить, но быть готовым к тому, что могут появиться проблемы у старых модулей или блоков, которые используют другой тип подключения к БД.

typus 11.11.2006 12:46

спасибо, так и получается,при удалении этих строк пропадает не только один блок, но и вообще вся нижняя часть страницы,вместе с копирайтами и счетчиком обращений к базе.
а если из не удалять - нет никакого смысла менять код - число обращений к базе на главной не меняется.ну ладно.

whitepanther 12.11.2006 18:18

ну это может происходить и из-за одного блока, когда вся страница просто съезжает...
включите вывод ошибок и посмотрите в каком блоке ошибка возникает. а далее - просто измените в нем тип подключения к бд...

typus 13.11.2006 16:49

Спасибо,не могу пока все-таки догнать,образование хромает.
Вот этот блок, он у меня стоит на главной внизу,выводит последние сообщения с форума , последние файлы,ссылки и юзеры.
PHP код:
<?php
if( eregi"block-Rus_Center.php",$PHP_SELF ) )
{
   
Header("Location: index.php");
   die();
}

global 
$prefix$dbi$sitename$bgcolor1$bgcolor2;

$HideViewReadOnly 1;

$Last_New_Topics  10;

$IconPath         "images/icon_mini_message.gif";

$border 1;
$cellspacing 1;


$result sql_query"SELECT * FROM ".$prefix."_bbtopics"$dbi );
$Amount_Of_Topics sql_num_rows$result );


$result sql_query"SELECT * FROM ".$prefix."_bbposts"$dbi );
$Amount_Of_Posts sql_num_rows$result );


$Amount_Of_Topic_Views 0;
$result sql_query"SELECT topic_views FROM ".$prefix."_bbtopics"$dbi );
while( list( 
$topic_views ) = sql_fetch_row$result$dbi ) )
{
   
$Amount_Of_Topic_Views $Amount_Of_Topic_Views $topic_views;
}

$Amount_Of_Topic_Replies 0;
$result sql_query"SELECT topic_replies FROM ".$prefix."_bbtopics"$dbi );
while( list( 
$topic_replies ) = sql_fetch_row$result$dbi ) )
{
   
$Amount_Of_Topic_Replies $Amount_Of_Topic_Replies $topic_replies;
}


$result sql_query"SELECT * FROM ".$prefix."_users"$dbi );
$Amount_Of_Members sql_num_rows$result );

$Count_Topics 0;
$Topic_Buffer "";
$result1 sql_query"SELECT topic_id, forum_id, topic_last_post_id, topic_title, topic_poster, topic_views, topic_replies, topic_moved_id FROM ".$prefix."_bbtopics ORDER BY topic_last_post_id DESC"$dbi );
while( list( 
$topic_id$forum_id$topic_last_post_id$topic_title$topic_poster$topic_views$topic_replies$topic_moved_id ) = sql_fetch_row$result1$dbi ) )
{
   
$skip_display 0;
   if( 
$HideViewReadOnly == )
   {
      
$result5 sql_query"SELECT auth_view, auth_read FROM ".$prefix."_bbforums where forum_id = '$forum_id'"$dbi );
      list( 
$auth_view$auth_read ) = sql_fetch_row$result5$dbi );
      if( ( 
$auth_view != ) or ( $auth_read != ) ) { $skip_display 1; }
   }

   if( 
$topic_moved_id != )
   {
      
// Shadow Topic !!
      
$skip_display 1;
   }

   if( 
$skip_display == )
   {
      
$Count_Topics += 1;
      
$result2 sql_query"SELECT topic_id, poster_id, FROM_UNIXTIME( post_time,'%d/%m/%Y') as post_time FROM ".$prefix."_bbposts where post_id = '$topic_last_post_id'"$dbi );
      list( 
$topic_id$poster_id$post_time ) = sql_fetch_row$result2$dbi );

      
$result3 sql_query"SELECT username, user_id FROM ".$prefix."_users where user_id='$poster_id'"$dbi );
      list( 
$username$user_id ) = sql_fetch_row$result3$dbi );
      
$LastPoster "<A class=block2 HREF=\"modules.php?name=Forums&file=profile&mode=viewprofile&u=$user_id\"STYLE=\"text-decoration: none\"> $username </a>";

      
$result4 sql_query"SELECT username, user_id FROM ".$prefix."_users where user_id='$topic_poster'"$dbi );
      list( 
$username$user_id ) = sql_fetch_row$result4$dbi );
      
$OrigPoster "<A class=block2 HREF=\"modules.php?name=Forums&file=profile&mode=viewprofile&u=$user_id\"STYLE=\"text-decoration: none\"> $username </a>";


      
$TopicTitleShow "<a CLASS=block2 href=\"modules.php?name=Forums&amp;file=viewtopic&amp;p=$topic_la  st_post_id#$topic_last_post_id\"STYLE=\"text-decoration: none\">$topic_title</a>";

      
$Topic_Buffer .= "<tr><td bgcolor=\"$bgcolor1\">&nbsp;$TopicTitleShow</td><td bgcolor=\"$bgcolor1\"><div align=\"center\"><font class=block>$OrigPoster</font></div></td><td bgcolor=\"$bgcolor1\"><div align=\"center\"><font class=block><b>$topic_views</b></font></div></td><td bgcolor=\"$bgcolor1\"><div align=\"center\"><font class=block><b>$topic_replies</b></font></div></td><td align=\"center\" bgcolor=\"$bgcolor1\"><font class=block>$LastPoster  $post_time</font></td></tr>";
   }

   if( 
$Last_New_Topics == $Count_Topics ) { break 1; }

}

$content  "<table width=\"100%\" border=\"0\"  cellspacing=\"1\"  cellpadding=\"1\"bgcolor=\"$bgcolor2\">";
$content .= "<tr><td width=\"100%\" height=\"18\" colspan=\"5\" align=\"center\" bgcolor=\"ff9900\"><font class=block><b>Последние сообщения на форуме</b></font></td></tr>";
$content .= "<tr><td align=\"center\" bgcolor=\"#eeeee4\" height=\"18\"><font class=block><b>Последние темы</b></font></td><td align=\"center\" bgcolor=\"#eeeee4\"><font class=block><b>Открыл</b></font></td><td align=\"center\" bgcolor=\"#eeeee4\"><font class=block><b>Просмотров</b></font></td><td align=\"center\" bgcolor=\"#eeeee4\"><font class=block><b>Ответов</b></font></td><td align=\"center\" bgcolor=\"#eeeee4\"><font class=block><b>Последний</b></font></td></tr>";
$content .= "$Topic_Buffer";

$content .= "</table><br>";

$strip "20";    // how many characters to show
$viewdot "<img src=\"images/link.gif\" border=\"0\" alt=\"\">&nbsp;&nbsp;";
$viewdot2 "<img src=\"images/down.gif\" border=\"0\" alt=\"\">&nbsp;&nbsp;";
$viewdot3 "<img src=\"images/user.gif\" border=\"0\" alt=\"\">&nbsp;";

$content .="<table width=\"100%\" border=\"0\"  cellspacing=\"1\"  cellpadding=\"1\"bgcolor=\"$bgcolor2\">";
$content .= "<tr><td width=\"33%\" height=\"18\" align=\"center\" bgcolor=\"ff9900\"><font class=block><b>Новые ссылки</b></font></td>";
$content .= "<td width=\"34%\" height=\"18\" align=\"center\" bgcolor=\"ff9900\"><font class=block><b>Новые файлы</b></font></td>";
$content .= "<td width=\"33%\" height=\"18\" align=\"center\" bgcolor=\"ff9900\"><font class=block><b>Наши пользователи</b></font></td>";
$content .="</tr>";
$content .="<tr>";


$content .="<td valign=\"top\" bgcolor=\"$bgcolor1\">";
$result sql_query("select lid, title from $prefix"._links_links." order by lid DESC limit 0,4"$dbi);
while(list(
$lid$title) = sql_fetch_row($result$dbi)) {
$linkstrip4 stripslashes($title);
        if(
strlen($linkstrip4) > $strip) {
            
$linkstrip4 substr($linkstrip40$strip);
            
$linkstrip4 .= "...";
        }
$content .= "$viewdot<a CLASS=block2  href=\"modules.php?name=Web_Links&amp;l_op=viewlinkdetails&amp;li  d=$lid&amp;title=$title\" STYLE=\"text-decoration: none\">$linkstrip4</a><br>";
}
$result=sql_query("select * from $prefix"._links_links.""$dbi);
$numrowsl sql_num_rows($result$dbi);
$content .= "<hr size=\"1\" color=\"#C0C0C0\" width=\"99%\">$viewdot <font class=block>Всего: <b> $numrowsl</b></font>\n";
$content .="</td>";


$content .="<td valign=\"top\" bgcolor=\"#FFFFFF\">";
$dbi);
$result sql_query("select cid, lid, title from $prefix"._files." order by lid DESC limit 0,4"$dbi);
while(list(
$cid$lid$title) = sql_fetch_row($result$dbi)) {
$linkstrip5 stripslashes($title);
        if(
strlen($linkstrip5) > $strip) {
            
$linkstrip5 substr($linkstrip5,0,$strip);
            
$linkstrip5 .= "...";
        }
$content .= "$viewdot2<a CLASS=block2 href=\"modules.php?name=files&amp;d_op=viewdownloaddetails&amp;li  d=$lid&amp;title=$title\"  STYLE=\"text-decoration: none\">$linkstrip5</a><br>";

}
$result=sql_query("select * from $prefix"._files.""$dbi);
$numrowsf sql_num_rows($result$dbi);
$content .= "<hr size=\"1\" width=\"99%\">$viewdot2 <font class=block>Всего: <b> $numrowsf</b></font>\n";
$content .="</td>";


$content .="<td valign=\"top\" bgcolor=\"$bgcolor1\">";


global 
$user$cookie$prefix$user_prefix$db$anonymous;

cookiedecode($user);
$uname $cookie[1];

$sql "SELECT username, user_id FROM $user_prefix"._users." ORDER BY user_id DESC LIMIT 0,1";
$result $db->sql_query($sql);
$row $db->sql_fetchrow($result);
$lastuser $row[username];
$iduser $row[user_id];
$numrows $db->sql_numrows($db->sql_query("SELECT user_id FROM $user_prefix"._users.""));


$Today getdate();

$month $Today['month'];
$mday $Today['mday'];
$year $Today['year'];

$pmonth $Today['month'];
$pmday $Today['mday'];
$pmday $mday-1;
$pyear $Today['year'];

if (
$pmonth=="January") { $pmonth=1; } else
if (
$pmonth=="February") { $pmonth=2; } else
if (
$pmonth=="March") { $pmonth=3; } else
if (
$pmonth=="April") { $pmonth=4; } else
if (
$pmonth=="May") { $pmonth=5; } else
if (
$pmonth=="June") { $pmonth=6; } else
if (
$pmonth=="July") { $pmonth=7; } else
if (
$pmonth=="August") { $pmonth=8; } else
if (
$pmonth=="September") { $pmonth=9; } else
if (
$pmonth=="October") { $pmonth=10; } else
if (
$pmonth=="November") { $pmonth=11; } else
if (
$pmonth=="December") { $pmonth=12; };
$test mktime (0,0,0,$pmonth,$pmday,$pyear,1);


$curDate2 "%".$month[0].$month[1].$month[2]."%".$mday."%".$year."%";
$preday strftime ("%d",$test);
$premonth strftime ("%B",$test);
$preyear strftime ("%Y",$test);
$curDateP "%".$premonth[0].$premonth[1].$premonth[2]."%".$preday."%".$preyear."%";


$sql "SELECT COUNT(user_id) AS userCount FROM $user_prefix"._users." WHERE user_regdate LIKE '$curDate2'";
$result $db->sql_query($sql);
$row $db->sql_fetchrow($result);
$userCount $row[userCount];



$sql "SELECT COUNT(user_id) AS userCount FROM $user_prefix"._users." WHERE user_regdate LIKE '$curDateP'";
$result $db->sql_query($sql);
$row $db->sql_fetchrow($result);
$userCount2 $row[userCount];


$content .= "$viewdot3 <font class=block>Зарегистрировались:<br>\n";
$content .= "$viewdot3 Последний: <A HREF=\"modules.php?name=Forums&file=profile&mode=viewprofile&u=$iduser\"><b>$lastuser</b></a><br>\n";
$content .= "$viewdot3 Сегодня: <b>$userCount</b><br>\n";
$content .= "$viewdot3 Вчера: <b>$userCount2</b><br>\n";
$content .= "<hr size=\"1\" width=\"99%\">$viewdot3 Всего: <b> $numrows</b>\n";

$content .="</td></tr></table>";

?>


Во-первых,понимаю,что сам этот блок - block-Rus_Center- надо бы оптимизировать,да,вот видел тут же,в этой теме на 2 странице этой темы - http://forum.mynuke.ru/showthread.p...73&page=2&pp=10
вот этот block-alls - очень близкий,вот он представлен тут уже оптимизированный или еще нет?Я не пойму, с одной стороны,у меня,если я свой нижний блок просто на этот меняю,на 32 запроса меньше становится,но мне мой block-Rus_Center больше нравится.Ну если block-alls уже оптимизированный,я как - нибудь по аналогии может и сделаю,или подскажет тот,кто его делал,если не очень затруднит.
Во-вторых,что касается постов выше,именно этот блок и не виден,если провести изменения по совету whitepanther,стало быть там в нем и надо изменять тип подключения к базе?Если кто видит это,ткните носом,а то ну не вижу...
И еще момент,о чем писал выше,на главной у меня вот этот блок,последние новости,вместо новостей,как на шкурках или PHP-Nuke по-русски.
PHP код:
<?php
//Проверка запрета прямого обращения к файлу модуля
if (!defined('MODULE_FILE')) {
die (
"You can't access this file directly...");
}
//Определим глобальные переменные для работы с базой
global $db$prefix;
//Инклюдим файл mainfile.php
require_once("mainfile.php");
//Определяем переменную, содержащую имя модуля, ее можно использовать для построения внутренних ссылок
$module_name basename(dirname(__FILE__));
//Определяем языковые данные
get_lang($module_name);
//Переменная $index = 1 определяет наличие правых блоков, без нее их не будет.
define('INDEX_FILE'true);
//Вставляем шапку сайта и открываем таблицу для вывода данных.
include("header.php");
OpenTable();
//Ниже будет содержание вашего модуля
//Значения _HOME_TITLE, _HOME_COMENT, _HOME_COMENT2, _HOME_VIEW, _HOME_VIEW2 определяются в файле lang-russian.php
echo "<center><h3>"._HOME_TITLE."</h3></center><br>";
echo 
"<table>";
$a=0;
//Читаем из базы 15 последних статей.
$result4 $db->sql_query("SELECT sid, title, UNIX_TIMESTAMP(time) as formatted, hometext, comments, counter FROM ".$prefix."_stories ORDER BY sid DESC LIMIT 0,15");
while (
$row4 $db->sql_fetchrow($result4)) {
$s_id intval($row4['sid']);
$title_s $row4['title'];
$text_s $row4[hometext];
$s_data date("d.m.Y"$row4["formatted"]);
if(
$a <= 2) {
//Первые три статьи выводим в расширенном режиме.
echo "<tr><td width=\"100%\" colspan=6>
<br><img border=\"0\" src=\"themes/RusNuke2003/images/topics/phpnuke.gif\"width=\"24\" height=\"24\"> 
$s_data
<a class=storytitle href=\"modules.php?name=News&file=article&sid=
$s_id\">$title_s</a><br>$text_s";
echo 
"<br><font color=\"#003063\"><b>"._HOME_COMENT." </b></font>(".$row4[comments].")<font color=\"#003063\">
<b> "
._HOME_VIEW." </b></font>(".$row4[counter].")";
echo 
"</td></tr><tr><td colspan=6><hr></td></tr>";
} else {
//Остальные статьи выводим в сроку ссылкой.
echo "<tr><td><img border=\"0\" src=\"themes/RusNuke2003/images/topics/phpnuke.gif\" width=\"24\" height=\"24\"> $s_data</td>
<td width=\"70%\"><a class=noline href=\"modules.php?name=News&file=article&sid=
$s_id\">$title_s</a></td>
<td><font color=\"#003063\"><b>"
._HOME_COMENT2."</b></font></td><td>(".$row4[comments].")</td>
<td><font color=\"#003063\"><b>"
._HOME_VIEW2."</b></font></td><td>(".$row4[counter].")</td></tr>";
}
$a++;
}
echo 
"</table>";
//Закрываем таблицу и вставляем нижнюю часть сайта.
CloseTable();
include(
"footer.php");
?>

Модуль неоптимизирован,если вместо него включаю снова новости - запросов существенно меньше.Просил на обоих тех форумах, ну не может быть,чтобы этот модуль никто не оптимизировал,он там у них обоих на главной стоит,и видно,сколько у них запросов.Но там пока никто не отозвался, может,позже откликнутся,или тут кто это делал уже,по времени у меня большого напряга нет, а по сути делать надо.
Заранее всем спасибо.

whitepanther 13.11.2006 20:33

Цитата: Сообщение от typus
Спасибо,не могу пока все-таки догнать,образование хромает.
Вот этот блок, он у меня стоит на главной внизу,выводит последние сообщения с форума , последние файлы,ссылки и юзеры.


Есть небольшая проблема... В форуме стоит ограничение на длину слова... Поэтому код изначально "битый"...
Работать будет, но некоторые ссылки сейчас изуродованы...
Прикрепите файл к сообщению...

typus 13.11.2006 21:27

Вложений: 2
вроде бы я убрал только комменты в первом коде, и его пропустили...вкладываю...
блок... и модуль...
Спасибо!

whitepanther 13.11.2006 22:36

Вложений: 1
Цитата: Сообщение от typus
вроде бы я убрал только комменты в первом коде, и его пропустили...вкладываю...
блок... и модуль...
Спасибо!


Исправил (не оптимизировал) Ваш блок сообщений+ссылок+файлов+зарегистрированных пользователей...от РусЦентра:)
Только есть один вопрос... Вы изначально, кликнув по названию любого последнего файла, попадаете на его описание или нет? У меня работа с модулем Files реализована чуть-чуть по-другому:)

P.S.:
С новостями работать не буду, т.к. раньше этот код не видел и перелопачивать его я не хочу.

typus 13.11.2006 23:16

Спасибо.Попадаю не на описание файла,а на начало раздела files.
зы:проделал,то что вы мне посоветовали выше с измененым файлом,все корректно,но запрсов стало вместо 161 - 160.В любом случае,спасибо,а мне придется копать дальше.

whitepanther 13.11.2006 23:40

Вложений: 1
а сделать вам, чтобы сразу к описанию файла ссылка была?

typus 14.11.2006 00:29

Спасибо,вот сейчас еще заметил,после изменений (верхних) в mainfile.php - перестали отображаться опросы,кроме текущего.Так что копать,в смысле,оптимизировать,надо в этих блоке и модуле,кое-где еще порыл,под админом 154,под юзером - 113 запросов.
p.s.не получается - вернее,выводит на файл только под админом,под юзером - извините,этот модуль не активен.
p.p.s.Скорее всего,что-то в оптимизации задействовал,теперь не могу найти, и в моем варианте стало так же

whitepanther 14.11.2006 01:09

Это уже в настройках самого модуля "files" смотрите, а не на блок пеняйте...

typus 14.11.2006 01:17

Нет,ну к вам кроме спасибо никаких проблем и претензий не приведи господь.А модуль files открыт для всех,видимый в т.ч. для анонимов, и из блока пользователя доступен без проблем.И я конечно могу ошибиться,но как будто до того как начал с этим модулем мудрить,то в прошлом варианте были файлы доступны из этого модуля всем.Просто есть привычка,после любых изменений проверять все под админом и под юзером.Хотя...Видимо,где-то все-таки проверить это забыл.

whitepanther 14.11.2006 01:30

посмотрите как выглядит под пользователем адрес страницы для любого из последних файлов и как выглядит ссылка на главной тоже под пользователем...
сравнивайте также регистр знаков (большие/маленькие).

typus 14.11.2006 01:46

С этим все,спасибо еще раз,и правда,все дело в одной букве -F или f в названии модуля.Так что это все поправил,иду дальше.

whitepanther 14.11.2006 01:51

У Вас изначально был с маленькой буквы, что меня удивило...
А модуль голосований у Вас какой?
Стандартный Surveys или Voting?

typus 14.11.2006 02:11

Surveys

whitepanther 14.11.2006 02:23

Он тоже жрет нехило ресурсов:(
Можно заменить на Voting:
http://rus-phpnuke.com/modules.php?...ew_file&lid=285

Что касается работоспособности оптимизации:
Оптимизировать саму нюку по этой инструкции желательно полностью, тогда будет законченный вариант. Глюки при проверках после каждой замены весьма вероятны, т.к. код частично оптимизирован, а некоторые связанные с оптимизированными кусками функции могут работать некорректно до полной оптимизации.
Но я ни в коем случае не отговариваю от проверок.

typus 14.11.2006 02:47

спасибо,попробую завтра.в принципе,что касается оптимизации,то по инструкции -то практически все и провел,первый раз - полностью все, а потом пошагово с проверками,чтобы определить,где глючит.так и нашел.с новостями тоже все провел,вроде корректно все,вот осталось как я думаю вот этот блок и этот модуль,ну да начну завтра.

typus 14.11.2006 23:45

Заменил модуль опросов,не очень легко получилось,отписался на рус-нюке,в двух словах:на оптимизированную нюку ставится с ошибками,пришлось ставить на неоптимизированную, а потом накатывать по новой обработанные файлы.Почти день убил - результат - минус почти 30 запросов.Теперь осталось только блок форума от рус-центра оптимизировать,я смотрю,для вывода каждой темы требуется 4 запроса.Т.е.если я хочу последние 10 - 40 запросов.Пробую разобраться с похожими вариантами блоков,которые используют меньше запросов,например,тот блок,all,что упоминался на 2 странице этой темы,или блок - форумс,что можно скачать на каждом из русских нюке-сайтов(про который в комментах стоит,что он делает один запрос) - было бы замечательно,но не получается пока,что-то где-то ошибку делаю.То все нормально вроде,но ссылки на сообщения не ведут куда надо,то вдруг(с блок-форумсом)начинает съезжать страница,и вбок, и вниз,недопонимаю пока.В принципе,я не сомневаюсь,что разберусь рано или поздно,тогда выложу этот блок оптимизированный,может кому пригодится.Ну а если кто-то захочет глянуть и мне помочь,блок я приаттачил в сообщениях выше,буду очень признателен.

Alex_71 24.11.2006 16:02

Сразу прошу прощения!
У меня на локалке стоит PHP-Nuke 8.0 русифицированная. Под администратором на главной 110 запросов, а при входе в раздел администрации - 164. Можно ли оптимизировать мою версию по Вашей методике и если нет то может подскажете что можно сделать. У меня стоят следующие модули: Advertising, FAQ, Feedback, Files, News, Pages, Private_Messages, Recommend_Us, Search, Stories_Archive, Submit_News, Topics, Voting, Web_Links, Your_Account. Может можно еще что-то удалить (хотя и так уже оставил только то что необходимо) или заменить на другие модули?

Забыл сказать: Форум интегрированный

Alexander-V-Sh 24.11.2006 17:52

Alex_71
Делайте пошагово.
Одну часть изменили, дошли до точки (когда в статье закончилось изменение какой то части).
Проверьте что получилось - работает или нет. Посмотрите на запросы.
Если все ок, приступайте дальше.

Если что то не открылось или не работает, проверяйте, не ошиблись ли где. И так постепенно что то да получится. Если нет, спрашивайте.

И не забывайте делать копии всего что изменяете. Чтобы что то не сломать.

LostPage 25.11.2006 11:46

Эта ошибка появлялась в этой теме, но на не никто не ответил.:
Цитата Warning: fopen(NUKE_PATHcache/config) [function.fopen]: failed to open stream: No such file or directory in /usr/home/xxx/domains/mysite/public_html/mainfile.php on line 294

Warning: fwrite(): supplied argument is not a valid stream resource in /usr/home/xxx/domains/mysite/public_html/mainfile.php on line 295

Warning: fclose(): supplied argument is not a valid stream resource in /usr/home/xxx/domains/mysite/public_html/mainfile.php on line 296

Warning: fopen(NUKE_PATHcache/.htaccess) [function.fopen]: failed to open stream: No such file or directory in /usr/home/xxx/domains/mysite/public_html/mainfile.php on line 299

Warning: fwrite(): supplied argument is not a valid stream resource in /usr/home/xxx/domains/mysite/public_html/mainfile.php on line 300

Warning: fclose(): supplied argument is not a valid stream resource in /usr/home/xxx/domains/mysite/public_html/mainfile.php on line 301


Это после оптимизации. Добавлена папка cashe. Что не так? Скажите пожалуйста. Это уже спрашивали.
Все работает, но если включить показ ошибок, она показывается. Спасибо огромное за вашу работу!

whitepanther 26.11.2006 02:44

Цитата: Сообщение от LostPage
Эта ошибка появлялась в этой теме, но на не никто не ответил.:


Это после оптимизации. Добавлена папка cashe. Что не так? Скажите пожалуйста. Это уже спрашивали.
Все работает, но если включить показ ошибок, она показывается. Спасибо огромное за вашу работу!


Похоже, что NUKE_PATH не задан...

LostPage 27.11.2006 19:07

сделал как написано в пункте 4.

whitepanther 27.11.2006 19:44

а 2-й пункт?

LostPage 29.11.2006 18:06

нет этого не сделал. у меня 8 версия. чуть другой код. как мне правильно изменить и нужно ли это делать? подскажите пожалуйста.

ко второму пункту. у меня вот так:

// Define the INCLUDE PATH
if(defined('FORUM_ADMIN')) {
define('INCLUDE_PATH', '../../../');
} elseif(defined('INSIDE_MOD')) {
define('INCLUDE_PATH', '../../');
} else {
define('INCLUDE_PATH', './');
}

// Include the required files
@require_once(INCLUDE_PATH."config.php");

if (file_exists( 'config.php' ) && filesize( 'config.php' ) == 0) {
die("<br><br><center><img src=images/logo.gif><br><br><b>Есть мнение, что PHP-Nuke пока не установлена :) <br>Чтобы приступить к инсталяции PHP-Nuke нажмите на <a href='install/index.php'>эту ссылку.</a></center></b>");
}

@require_once(INCLUDE_PATH."db/db.php");

/* FOLLOWING TWO LINES ARE DEPRECATED BUT ARE HERE FOR OLD MODULES COMPATIBILITY */
/* PLEASE START USING THE NEW SQL ABSTRACTION LAYER. SEE MODULES DOC FOR DETAILS */
//@require_once(INCLUDE_PATH."includes/sql_layer.php");
//$dbi = sql_connect($dbhost, $dbuname, $dbpass, $dbname);

@require_once(INCLUDE_PATH."includes/ipban.php");
if (file_exists(INCLUDE_PATH."includes/custom_files/custom_mainfile.php")) {
@include_once(INCLUDE_PATH."includes/custom_files/custom_mainfile.php");
}

Alex_71 29.11.2006 18:29

Цитата: Сообщение от LostPage
нет этого не сделал. у меня 8 версия. чуть другой код. как мне правильно изменить и нужно ли это делать? подскажите пожалуйста.

ко второму пункту. у меня вот так:

// Define the INCLUDE PATH
if(defined('FORUM_ADMIN')) {
define('INCLUDE_PATH', '../../../');
} elseif(defined('INSIDE_MOD')) {
define('INCLUDE_PATH', '../../');
} else {
define('INCLUDE_PATH', './');
}

// Include the required files
@require_once(INCLUDE_PATH."config.php");

if (file_exists( 'config.php' ) && filesize( 'config.php' ) == 0) {
die("<br><br><center><img src=images/logo.gif><br><br><b>Есть мнение, что PHP-Nuke пока не установлена :) <br>Чтобы приступить к инсталяции PHP-Nuke нажмите на <a href='install/index.php'>эту ссылку.</a></center></b>");
}

@require_once(INCLUDE_PATH."db/db.php");

/* FOLLOWING TWO LINES ARE DEPRECATED BUT ARE HERE FOR OLD MODULES COMPATIBILITY */
/* PLEASE START USING THE NEW SQL ABSTRACTION LAYER. SEE MODULES DOC FOR DETAILS */
//@require_once(INCLUDE_PATH."includes/sql_layer.php");
//$dbi = sql_connect($dbhost, $dbuname, $dbpass, $dbname);

@require_once(INCLUDE_PATH."includes/ipban.php");
if (file_exists(INCLUDE_PATH."includes/custom_files/custom_mainfile.php")) {
@include_once(INCLUDE_PATH."includes/custom_files/custom_mainfile.php");
}



Делай как в инструкции, только вместо NUKE_PATH укажи INCLUDE_PATH

LostPage 29.11.2006 18:59

:) я извиняюсь. что-то не догнал.

whitepanther 29.11.2006 20:54

Цитата: Сообщение от LostPage
:) я извиняюсь. что-то не догнал.

Проще говоря, у Вас два пути:
1. INCLUDE_PATH во втором шаге заменить на NUKE_PATH.
2. Или в и шагах выполнять замену с учетом того, что NUKE_PATH в них должна быть заменена на INCLUDE_PATH.

ИМХО, лучше 2-й вариант... Т.е. при каждой замене (шаги: 4, 18, 19) вместо NUKE_PATH писать INCLUDE_PATH. 2-й шаг не нужно выполнять, т.к. он уже выполнен...

LostPage 02.12.2006 21:54

понял. :) спасибо. ошибок больше нет.

Astrix 22.01.2007 01:06

Вложений: 1
Сегодня решил попробовать самостоятельно оптимизировать файл admin.php (версия 7.9.0 + 3.2.20)

Результат в прикрепленном файле. Прошу оценить и высказать свое мнение!

Удалось уменьшить число запросов в админке (на главной странице) со 122 до 89.

Я выделил все изменения.
Чтобы вернуть скрипту первозданный вид, достаточно удалить или закомментировать все, что находится между //Astrix--> и //<--Astrix и раскомментировать все остальное.

Жду ваших ответов!

в дальнейшем хочу попытаться переделать весь движок. заодно получше Php изучу, да и нюк буду знать вдоль и поперек!
по ходу дела буду делиться результатами...

Astrix 22.01.2007 17:56

Покопался в mainfile.php...
Количество запросов уменьшилось до 71 в админке
37 запросов для гостя/52 для пользователя на главной странице.
Едем дальше...

Alexander-V-Sh 24.01.2007 01:14

Astrix
Покопай с ненужными функциями: Бан, Рефералы, Центральные Блоки, Сообщения на главной, Сессии.

Если совсем удалять нехочется, можно сделать выключатели. В конфиге полно ненужной фигни, можно эти переменные использовать под нужды, либо добавить новые.

Astrix 24.01.2007 12:33

Alexander-V-Sh Спасибо за совет. Обязательно учту!

BrejneV 25.01.2007 10:34

Astrix вот тебе еще ссылочка по оптимизации http://lkrotish.narod.ru/optimize.html

да я скачал твой файл админки оптимизированной, запросов по натре меньше, а ошибок я смотрел вроде нигде не выдает! так что удачи те!+)))

Astrix 25.01.2007 15:41

BrejneV Стараемсь ))

genix 28.01.2007 13:09

сделал все по статье на форуме. первые четыре попытки были неудачными (то белый экран, то зацикливание - все аналогичные проблемы уже здесь у кого-то были), на пятый раз делал все пошагово, после каждого раза проверял, исправлял и все получилось. делал не на локале, а из фтп менеджера сразу на сайте.
там странности возникали.. про рендер_блокс - делал все вместе - белый экран или блоки не показываются. по очереди менял фнкции - если по порядку, т.е. рендер_блокс перед самой блокс, не пашет, а вот если сначала блокс, потом рендер - все ништяк... не знаю почему так.

было запросов 120 (я еще раньше сам поотключал всякие ультрамоды, статистику и ипбан), сейчас стало 80. буду оптимизировать дальше. теперь я уже думаю что сам запросто смогу оптимизировать какой-нибудь блок, убрав из него ненужные обращения =))

genix 28.01.2007 14:28

только что сменил модуль опросов и отредактировал под себя измененный модуль навигации (использующий скрипты для картинок изм-щий яркость), в итоге получилось под админом 29 запросов, под юзером - 18.
и это после того что позавчера было 120

Astrix 28.01.2007 17:18

Мой Нюк на данный момент выполняет для Гостя, Юзера, Админа соответственно 22,23,27 запросов.
Из них 7 запросов делает NukeSentinel
Я вот думаю, стоит ли пожертвовать 7-ю запросами ради безопасности или удалить сентинель и сэкономить 7 запросов? Етественно, при этом придется просмотреть все модули вручную в поисках уязвимостей.

Кто что посоветует?


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

Copyright © 2005 by Soniks