еще раз,добрый вечер вам всем.
попробовал переделать все,как тут кто-то предлагал, по шагам,в принципе,разобрался,где глюки,не понял пока только,как поправить.
п.1) и п.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)глюк начинается после
-где тут копать - вообще ума не приложу.
В принципе,все бы ничего,но я заметил,что эти два шага убирают огромное число запросов,сейчас у меня на главной осталось 165(было 383),вроде сильно уменьшилось, и без глюков, но вот когда проделываю эти два пункта - остается меньше ста!Но вышеописанные глюки.Хотелось бы,конечно,уменьшить,ясно,что надо тот модуль последних новостей, что на главной вместо news оптимизировать - если кому есть что сказать - буду благодарен
/* 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);
желательно удалить, но быть готовым к тому, что могут появиться проблемы у старых модулей или блоков, которые используют другой тип подключения к БД.
спасибо, так и получается,при удалении этих строк пропадает не только один блок, но и вообще вся нижняя часть страницы,вместе с копирайтами и счетчиком обращений к базе.
а если из не удалять - нет никакого смысла менять код - число обращений к базе на главной не меняется.ну ладно.
ну это может происходить и из-за одного блока, когда вся страница просто съезжает...
включите вывод ошибок и посмотрите в каком блоке ошибка возникает. а далее - просто измените в нем тип подключения к бд...
Спасибо,не могу пока все-таки догнать,образование хромает.
Вот этот блок, он у меня стоит на главной внизу,выводит последние сообщения с форума , последние файлы,ссылки и юзеры.
Во-первых,понимаю,что сам этот блок - 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:40.
Исправил (не оптимизировал) Ваш блок сообщений+ссылок+файлов+зарегистрированных пользователей...от РусЦентра:)
Только есть один вопрос... Вы изначально, кликнув по названию любого последнего файла, попадаете на его описание или нет? У меня работа с модулем Files реализована чуть-чуть по-другому:)
P.S.:
С новостями работать не буду, т.к. раньше этот код не видел и перелопачивать его я не хочу.
Спасибо.Попадаю не на описание файла,а на начало раздела files.
зы:проделал,то что вы мне посоветовали выше с измененым файлом,все корректно,но запрсов стало вместо 161 - 160.В любом случае,спасибо,а мне придется копать дальше.
Последний раз редактировалось typus, 13.11.2006 в 23:26.