|
12.02.2006, 18:38
Теперь внесем небольшое изменение в админ файлы настроек системы и модулей.
Открываем файл /admin/modules/settings.php
Находим:
PHP код:
Header("Location: ".$admin_file.".php?op=Configure");
И выше добавляем:
PHP код:
//Copyright Soniks http://mynuke.ru $result = $db->sql_query("SELECT * FROM ".$prefix."_config LIMIT 1"); $sett ="<?php\n\n"; $sett .="if(!defined('NUKE_FILE'))\n{\n die();\n}\n"; foreach(mysql_fetch_assoc($result) as $key => $value){ $$key = $value; $sett .="$".$key." = \"".str_replace('"','\"',$value)."\";\n"; } $sett .="\n?>"; if($sett !=""){ $fp = fopen (NUKE_PATH."cache/config", "wb"); fwrite($fp, $sett); fclose($fp); } if(!file_exists(NUKE_PATH."cache/.htaccess")){ $sett2 ="deny from all"; $fp2 = fopen (NUKE_PATH."cache/.htaccess", "wb"); fwrite($fp2, $sett2); fclose($fp2); }
Открываем файл /admin/modules/modules.php
Находим:
PHP код:
$res = $db->sql_query("update " . $prefix . "_main set main_module='$title'"); $res2 = $db->sql_query("update " . $prefix . "_modules set active='$active', view='$view' where mid='$mid'");
Ниже добавляем:
PHP код:
//Copyright Soniks http://mynuke.ru $sett ="<?php\n\n"; $sett .="if(!defined('NUKE_FILE'))\n{\n die();\n}\n"; $sett .= '$main_module = "'.$title.'";'; $sett .="\n?>"; $fp = fopen (NUKE_PATH."cache/main", "wb"); fwrite($fp, $sett); fclose($fp); if(!file_exists(NUKE_PATH."cache/.htaccess")){ $sett2 ="deny from all"; $fp2 = fopen (NUKE_PATH."cache/.htaccess", "wb"); fwrite($fp2, $sett2); fclose($fp2); }
Вносим новую переменную в конфиг, окрываем config.php
Находим:
и ниже добавляем:
PHP код:
$group_use = 1; // использование групп: 1-да | 0-нет
Если вы пользуетесь группами для пользователей в php-nuke (не в форуме), то ставим 1, а если вам не нужны заработанные балы пользователей на сайте и сами группы, то ставим 0 - это уменьшит количество запросов на сайте.
Откорректируем modules.php, находим:
PHP код:
$result = $db->sql_query("SELECT active, view FROM ".$prefix."_modules WHERE title='$name'"); $row = $db->sql_fetchrow($result); $mod_active = intval($row['active']); $view = intval($row['view']);
Заменяем на:
PHP код:
$mod_active = intval($modules_info[$name]['active']); $view = intval($modules_info[$name]['view']);
Находим:
PHP код:
$result2 = $db->sql_query("SELECT mod_group FROM ".$prefix."_modules WHERE title='$name'"); $row2 = $db->sql_fetchrow($result2); if ($row2[mod_group] != 0) { $result3 = $db->sql_query("SELECT name FROM ".$prefix."_groups WHERE id='$row2[mod_group]'"); $row3 = $db->sql_fetchrow($result3); echo ""._ADDITIONALYGRP.": <b>$row3[name]</b><br><br>"; }
Заменяем на:
PHP код:
if ($modules_info[$name]['mod_group'] != 0) { $result = $db->sql_query("SELECT name FROM ".$prefix."_groups WHERE id='".$modules_info[$name]['mod_group']."'"); $row = $db->sql_fetchrow($result); echo ""._ADDITIONALYGRP.": <b>".$row['name']."</b><br><br>"; }
Откорректируем index.php, находим:
PHP код:
$row = $db->sql_fetchrow($db->sql_query("SELECT main_module from ".$prefix."_main")); $name = $row['main_module'];
Заменяем на:
PHP код:
// GET MAIN MODULE if(file_exists("./cache/main")){ include_once("./cache/main"); }else{ $row = $db->sql_fetchrow($db->sql_query("SELECT main_module from ".$prefix."_main")); $name = $row['main_module']; $sett ="<?php\n\n"; $sett .="if(!defined('NUKE_FILE'))\n{\n die();\n}\n"; $sett .= '$main_module = "'.$row['main_module'].'";'; $sett .="\n?>"; $fp = fopen ("./cache/main", "wb"); fwrite($fp, $sett); fclose($fp); if(!file_exists("./cache/.htaccess")){ $sett2 ="deny from all"; $fp2 = fopen ("./cache/.htaccess", "wb"); fwrite($fp2, $sett2); fclose($fp2); } } $name = $main_module;
Упростим немного систему бана, открываем includes/ipban.php
Находим:
PHP код:
$numrow = $db->sql_numrows($db->sql_query("SELECT id FROM ".$prefix."_banned_ip WHERE ip_address='$ip'")); if ($numrow != 0) { echo "<br><br><center><img src='images/admin/ipban.gif'><br><br><b>You has been banned by the administrator</b></center>"; die(); } $ip_class = explode(".", $ip); $ip = "$ip_class[0].$ip_class[1].$ip_class[2].*"; $row = $db->sql_fetchrow($db->sql_query("SELECT ip_address FROM ".$prefix."_banned_ip WHERE ip_address='$ip'")); $ip_class_banned = explode(".", $row[ip_address]); if ($ip_class_banned[3] == "*") { if ($ip_class[0] == $ip_class_banned[0] && $ip_class[1] == $ip_class_banned[1] && $ip_class[2] == $ip_class_banned[2]) { echo "<br><br><center><img src='images/admin/ipban.gif'><br><br><b>You has been banned by the administrator</b></center>"; die(); } }
Заменяем на:
PHP код:
$ip_class = explode(".", $ip); $ip2 = "$ip_class[0].$ip_class[1].$ip_class[2].*"; //ADD $numrow = $db->sql_numrows($db->sql_query("SELECT id FROM ".$prefix."_banned_ip WHERE ip_address='$ip' OR ip_address='$ip2'")); if ($numrow != 0) { echo "<br><br><center><img src='images/admin/ipban.gif'><br><br><b>You has been banned by the administrator</b></center>"; die(); }
И последнее изменение в ядре системы, но очень весомое.
Открываем header.php
Если вы используете сторонние системы безопасности php-nuke или же вам не нужна система бана пользователей, то удаляем строчку:
PHP код:
include("includes/ipban.php");
Настоятельно рекомендую избавиться от стандартной статистики посещаемости, она ну уж слишком много запросов делает к БД, да и обычные счетчики типа http://top.mail.ru/ куда информативнее.
Если решились, то находим и удаляем строчку:
PHP код:
include("includes/counter.php");
Так же надо убрать теперь не нужные нам таблицы, для этого выполним SQL-запрос:
Код:
DROP TABLE `nuke_counter`, `nuke_stats_date`, `nuke_stats_hour`, `nuke_stats_month`, `nuke_stats_year`;
*не забываем заменить префикс nuke_ на свой
Так же удаляем теперь не нужные нам файлы:
includes/counter.php и папку modules/Statistics/
В результате проведенных выше изменений над ядром системы количество запросов снизилось до ~8, это с учетом всех включенных возможностей php-nuke.
|
|