Forum. MyNuke.ru

Forum. MyNuke.ru (http://forum.mynuke.ru/index.php)
-   Настройка и Изменение (http://forum.mynuke.ru/forumdisplay.php?f=11)
-   -   оптимизация нюки!!! (http://forum.mynuke.ru/showthread.php?t=1122)

kor 14.01.2006 22:00

оптимизация нюки!!!
 
ребят!!! давайте делиться способами оптимизации нюки а то ни на одном форуме нет аткого топика !!!!!!
многим хочеться чтобы у них нюка была как слайд))))
что вы об этом думаете?

пожалуй я начну!!! вот ссылка на статью где вы можете убрать очень сного запросов у своего сайта!!! до 20 запросов сделать можете

http://lkrotish.narod.ru/optimize.html

kor 15.01.2006 01:04

короче установил я все кроме blocks($side) и на главной нюка грузит 49 запросов!!!
под админком и пользователем всего 60 запросов вместо 200!!!

помогите установить то что несмог установить!!! скажите что в этом нето

function blocks($side) {
global $storynum, $prefix, $multilingual, $currentlang, $db, $admin, $user;
if ($multilingual == 1) {
$querylang = "AND (blanguage='$currentlang' OR blanguage='')";
} else {
$querylang = "";
}
if (strtolower($side[0]) == "l") {
$pos = "l";
} elseif (strtolower($side[0]) == "r") {
$pos = "r";
} elseif (strtolower($side[0]) == "c") {
$pos = "c";
} elseif (strtolower($side[0]) == "d") {
$pos = "d";
}
$side = $pos;
global $edogs_blocks;
if(empty($edogs_blocks)) {
$sql = "SELECT bid, bkey, title, content, url, blockfile, view, expire, action, subion, bposition FROM ".$prefix."_blocks WHERE active='1' $querylang ORDER BY weight ASC";
$result = $db->sql_query($sql);
while($row_z = $db->sql_fetchrow($result)) {
$edogs_blocks[]=$row_z;
}
}
foreach($edogs_blocks as $k=>$row) {
if($row['bposition']!=$pos) continue;
$bid = intval($row['bid']);
$title = stripslashes(check_html($row['title'], "nohtml"));
$content = stripslashes($row['content']);
$url = stripslashes($row['url']);
$blockfile = $row['blockfile'];
$view = intval($row['view']);
$expire = intval($row['expire']);
$action = $row['action'];
$action = substr("$action", 0,1);
$now = time();
$sub = intval($row['subion']);
if ($sub == 0 OR ($sub == 1 AND !paid())) {
if ($expire != 0 AND $expire <= $now) {
if ($action == "d") {
$db->sql_query("UPDATE ".$prefix."_blocks SET active='0', expire='0' WHERE bid='$bid'");
return;
} elseif ($action == "r") {
$db->sql_query("DELETE FROM ".$prefix."_blocks WHERE bid='$bid'");
return;
}
}
if ($row[bkey] == admin) {
adminblock();
} elseif ($row[bkey] == userbox) {
userblock();
} elseif ($row[bkey] == "") {
if ($view == 0) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
} elseif ($view == 1 AND is_user($user) || is_admin($admin)) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
} elseif ($view == 2 AND is_admin($admin)) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
} elseif ($view == 3 AND !is_user($user) || is_admin($admin)) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
}
}
}
}
}

это потимизация мне дала - 15 на главной и в админке было раньше 200 а щас 60

Andruha 15.01.2006 21:40

Мне данная инструкция помогла опуститься на несколько запросов, спасибо.
function blocks($side) - тоже не работает

kor 16.01.2006 00:50

ты смеешься? у меня убрал 15 запросов а админка стала грузиться не 200 запросов а 60!! теперь у меня всего 49 запросов

Soniks 16.01.2006 04:51

kor
Цитата помогите установить то что несмог установить!!! скажите что в этом нето

так а что требуется то?

kor 16.01.2006 08:58

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

function blocks($side) {
global $storynum, $prefix, $multilingual, $currentlang, $db, $admin, $user;
if ($multilingual == 1) {
$querylang = "AND (blanguage='$currentlang' OR blanguage='')";
} else {
$querylang = "";
}
if (strtolower($side[0]) == "l") {
$pos = "l";
} elseif (strtolower($side[0]) == "r") {
$pos = "r";
} elseif (strtolower($side[0]) == "c") {
$pos = "c";
} elseif (strtolower($side[0]) == "d") {
$pos = "d";
}
$side = $pos;
global $edogs_blocks;
if(empty($edogs_blocks)) {
$sql = "SELECT bid, bkey, title, content, url, blockfile, view, expire, action, subion, bposition FROM ".$prefix."_blocks WHERE active='1' $querylang ORDER BY weight ASC";
$result = $db->sql_query($sql);
while($row_z = $db->sql_fetchrow($result)) {
$edogs_blocks[]=$row_z;
}
}
foreach($edogs_blocks as $k=>$row) {
if($row['bposition']!=$pos) continue;
$bid = intval($row['bid']);
$title = stripslashes(check_html($row['title'], "nohtml"));
$content = stripslashes($row['content']);
$url = stripslashes($row['url']);
$blockfile = $row['blockfile'];
$view = intval($row['view']);
$expire = intval($row['expire']);
$action = $row['action'];
$action = substr("$action", 0,1);
$now = time();
$sub = intval($row['subion']);
if ($sub == 0 OR ($sub == 1 AND !paid())) {
if ($expire != 0 AND $expire <= $now) {
if ($action == "d") {
$db->sql_query("UPDATE ".$prefix."_blocks SET active='0', expire='0' WHERE bid='$bid'");
return;
} elseif ($action == "r") {
$db->sql_query("DELETE FROM ".$prefix."_blocks WHERE bid='$bid'");
return;
}
}
if ($row[bkey] == admin) {
adminblock();
} elseif ($row[bkey] == userbox) {
userblock();
} elseif ($row[bkey] == "") {
if ($view == 0) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
} elseif ($view == 1 AND is_user($user) || is_admin($admin)) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
} elseif ($view == 2 AND is_admin($admin)) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
} elseif ($view == 3 AND !is_user($user) || is_admin($admin)) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
}
}
}
}
}

Master 16.01.2006 11:47

Тут же взято почти все ядро от EdogsNuke :(

kor Новости кстати тоже можно переделать чтобы он делали не по 2 запроса на новость а все в 1

kor 16.01.2006 11:48

почти ты грустишь что взять от едогса? как сделать меньше запросов в нвоостях?

и подскажие может ты еще что нить знаешь как оптимизировать?

Master 16.01.2006 11:57

kor Вобщем вот берем модуль новостей от нюки 76 на других не пробывал находим там вот это :

if (isset($new_topic)) {
$new_topic = intval($new_topic);
} else {
$new_topic == 0;
}
if (isset($userinfo['setstorynum']) AND $user_news == 1) {
$storynum = $userinfo['setstorynum'];
} else {
$storynum = $storyhome;
}
if ($new_topic == 0) {
$qdb = "WHERE (ihome='0' OR catid='0')";
$home_msg = "";
} else {
$qdb = "WHERE topic='$new_topic'";
$result_a = $db->sql_query("SELECT topictext FROM ".$prefix."_topics WHERE topicid='$new_topic'");
$row_a = $db->sql_fetchrow($result_a);
$numrows_a = $db->sql_numrows($result_a);
$topic_title = stripslashes(check_html($row_a['topictext'], "nohtml"));

Заменяем на это:

if (isset($new_topic)) {
$new_topic = intval($new_topic);
} else {
$new_topic == 0;
}
if (isset($cookie[3]) AND $user_news == 1) {
$storynum = $cookie[3];
} else {
$storynum = $storyhome;
}
if ($new_topic == 0) {
$qdb = "WHERE (ihome='0' OR s.catid='0') AND s.time <= NOW()";
$home_msg = "";
} else {
$qdb = "WHERE topic='$new_topic' AND s.time <= NOW()";
$result_a = $db->sql_query("SELECT topictext FROM ".$prefix."_topics WHERE topicid='$new_topic'");
$row_a = $db->sql_fetchrow($result_a);
$numrows_a = $db->sql_numrows($result_a);
$topic_title = stripslashes(check_html($row_a['topictext'], "nohtml"));

Дальше находим:

$result = $db->sql_query("SELECT sid, catid, aid, title, time, hometext, bodytext, comments, counter, topic, informant, notes, acomm, score, ratings FROM ".$prefix."_stories $qdb $querylang ORDER BY sid DESC limit $storynum");
while ($row = $db->sql_fetchrow($result)) {
$s_sid = intval($row['sid']);
$catid = intval($row['catid']);
$aid = stripslashes($row['aid']);
$title = stripslashes(check_html($row['title'], "nohtml"));
$time = $row['time'];
$hometext = stripslashes($row['hometext']);
$bodytext = stripslashes($row['bodytext']);
$comments = stripslashes($row['comments']);
$counter = intval($row['counter']);
$topic = intval($row['topic']);
$informant = stripslashes($row['informant']);
$notes = stripslashes($row['notes']);
$acomm = intval($row['acomm']);
$score = intval($row['score']);
$ratings = intval($row['ratings']);
if ($catid > 0) {
$row2 = $db->sql_fetchrow($db->sql_query("SELECT title FROM ".$prefix."_stories_cat WHERE catid='$catid'"));
$cattitle = stripslashes(check_html($row2['title'], "nohtml"));
}
getTopics($s_sid);
formatTimestamp($time);

заменяем на это:

if ($pagenum == "") { $pagenum = 1; }
$offset = ($pagenum-1) * $storynum;
$offset = intval($offset);
$storynum = intval($storynum);
$sql = "SELECT sid, s.catid, s.aid, s.title, s.time, s.hometext, s.bodytext, s.comments, s.counter, s.topic, s.informant, s.notes, s.acomm, s.score, s.ratings, c.title, t.topicid, t.topicname, t.topicimage, t.topictext, a.email, a.url FROM ".$prefix."_stories AS s LEFT JOIN ".$prefix."_stories_cat AS c on (s.catid=c.catid) LEFT JOIN ".$prefix."_topics AS t on (s.topic=t.topicid) LEFT JOIN ".$prefix."_authors AS a on (s.aid=a.aid) $qdb $querylang ORDER BY s.time DESC LIMIT $offset, $storynum";
$result = $db->sql_query($sql);
while (list( $s_sid , $catid, $aid, $title, $time, $hometext, $bodytext, $comments, $counter, $topic, $informant, $notes, $acomm, $score, $ratings, $ctitle, $topicid, $topicname, $topicimage, $topictext, $aemail, $aurl)=$db->sql_fetchrow($result)) {
if ($catid > 0) {
$cattitle = $ctitle;
}
formatTimestamp($time);

все!

Правда тут еще использован кусоек кода от хака pagenum но все впринципе работает я думаю если он кому то мешает то не составит труда вырезать из данного кода лишнее!

kor 16.01.2006 12:00

праивльно я понял что это надо изменять в модули news index.php

Master 16.01.2006 12:01

все эти фишки разработаны не мой просто выкладываю то то у меня есть но придумывал все это не я

kor да

kor 16.01.2006 12:05

не занешь мне стремно что то делать у меня 40% от этого кода несовпадает!!!! я сам нерешусь прикручивать от 76 нюки на 79

Master 16.01.2006 12:08

kor а как насчет зделать бекап старого файла? и попробывать?

kor 16.01.2006 12:15

вот теб пример первого изменения и скажи что мне тут менять если из всего тока две строчик совпадает

function theindex($new_topic="0") {
global $db, $storyhome, $topicname, $topicimage, $topictext, $datetime, $user, $cookie, $nukeurl, $prefix, $multilingual, $currentlang, $articlecomm, $sitename, $user_news, $pagenum, $module_name;
$new_topic = intval($new_topic);
$storynum = 10;
if ($multilingual == 1) {
$querylang = "AND (alanguage='$currentlang' OR alanguage='')";
} else {
$querylang = "";
}

include("header.php");
if (isset($cookie[3])) {
$storynum = $cookie[3];
}


if ($pagenum == "") { $pagenum = 1;}
$offset = ($pagenum-1) * $storynum;

Master 16.01.2006 12:24

Вот это:

if ($new_topic == 0) {
$qdb = "WHERE (ihome='0' OR catid='0')";
$home_msg = "";
} else {
$qdb = "WHERE topic='$new_topic'";
$result_a = $db->sql_query("SELECT topictext FROM ".$prefix."_topics WHERE topicid='$new_topic'");
$row_a = $db->sql_fetchrow($result_a);
$numrows_a = $db->sql_numrows($result_a);
$topic_title = filter($row_a['topictext'], nohtml);

На это

if ($new_topic == 0) {
$qdb = "WHERE (ihome='0' OR s.catid='0') AND s.time <= NOW()";
$home_msg = "";
} else {
$qdb = "WHERE topic='$new_topic' AND s.time <= NOW()";
$result_a = $db->sql_query("SELECT topictext FROM ".$prefix."_topics WHERE topicid='$new_topic'");
$row_a = $db->sql_fetchrow($result_a);
$numrows_a = $db->sql_numrows($result_a);
$topic_title = stripslashes(check_html($row_a['topictext'], "nohtml"));

kor 16.01.2006 13:29

поставил и все новости пропали!!!

Master 16.01.2006 13:38

kor значит не так поставил скорее всего у теб вывод ошибок на экран включен?

kor 16.01.2006 13:46

диагностику ошибок выклбчил выкладываю тебе index.php модуля новостей помоги мне пожалуйста

<?php

/************************************************** **********************/
/* PHP-NUKE: Web Portal System */
/* =========================== */
/* */
/* Copyright (c) 2005 by Francisco Burzi */
/* http://phpnuke.org */
/* */
/* This program is free software. You can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License. */
/************************************************** **********************/

if (!defined('MODULE_FILE')) {
die ("You can't access this file directly...");
}

$index = 1;
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);

function theindex($new_topic="0") {
global $db, $storyhome, $topicname, $topicimage, $topictext, $datetime, $user, $cookie, $nukeurl, $prefix, $multilingual, $currentlang, $articlecomm, $sitename, $user_news, $pagenum, $module_name;
$new_topic = intval($new_topic);
$storynum = 10;
if ($multilingual == 1) {
$querylang = "AND (alanguage='$currentlang' OR alanguage='')";
} else {
$querylang = "";
}

include("header.php");
if (isset($cookie[3])) {
$storynum = $cookie[3];
}


if ($pagenum == "") { $pagenum = 1;}
$offset = ($pagenum-1) * $storynum;

if ($new_topic == 0) {
$qdb = "WHERE (ihome='0' OR catid='0')";
} else {
$qdb = "WHERE topic='$new_topic'";
}
$sql_pn = "select COUNT(*) AS pn from ".$prefix."_stories $qdb" ;
$result_pn = $db->sql_query($sql_pn);
$row = $db->sql_fetchrow($result_pn);
$numstories = $row['pn'];
$numpages = ceil($numstories / $storynum);


automated_news();
if (isset($cookie[3]) AND $user_news == 1) {
$storynum = $cookie[3];
} else {
$storynum = $storyhome;
}
if ($new_topic == 0) {
$qdb = "WHERE (ihome='0' OR catid='0')";
$home_msg = "";
} else {
$qdb = "WHERE topic='$new_topic'";
$result_a = $db->sql_query("SELECT topictext FROM ".$prefix."_topics WHERE topicid='$new_topic'");
$row_a = $db->sql_fetchrow($result_a);
$numrows_a = $db->sql_numrows($result_a);
$topic_title = filter($row_a['topictext'], nohtml);
OpenTable();
if ($numrows_a == 0) {
echo "<center><font class=\"title\">$sitename</font><br><br>"._NOINFO4TOPIC."<br><br>[ <a href=\"modules.php?name=News\">"._GOTONEWSINDEX."</a> | <a href=\"modules.php?name=Topics\">"._SELECTNEWTOPIC."</a> ]</center>";
} else {
$db->sql_query("UPDATE ".$prefix."_topics SET counter=counter+1");
echo "<center><font class=\"title\">$sitename: $topic_title</font><br><br>"
."<form action=\"modules.php?name=Search\" method=\"post\">"
."<input type=\"hidden\" name=\"topic\" value=\"$new_topic\">"
.""._SEARCHONTOPIC.": <input type=\"name\" name=\"query\" size=\"30\">&nbsp;&nbsp;"
."<input type=\"submit\" value=\""._SEARCH."\">"
."</form>"
."[ <a href=\"index.php\">"._GOTOHOME."</a> | <a href=\"modules.php?name=Topics\">"._SELECTNEWTOPIC."</a> ]</center>";
}
CloseTable();
echo "<br>";
}
$result = $db->sql_query("SELECT sid, catid, aid, title, time, hometext, bodytext, comments, counter, topic, informant, notes, acomm, score, ratings FROM ".$prefix."_stories $qdb $querylang ORDER BY sid DESC limit $offset, $storynum");
while ($row = $db->sql_fetchrow($result)) {
$s_sid = intval($row['sid']);
$catid = intval($row['catid']);
$aid = filter($row['aid'], nohtml);
$title = filter($row['title'], nohtml);
$time = $row['time'];
$hometext = filter($row['hometext']);
$bodytext = filter($row['bodytext']);
$comments = intval($row['comments']);
$counter = intval($row['counter']);
$topic = intval($row['topic']);
$informant = filter($row['informant'], nohtml);
$notes = filter($row['notes']);
$acomm = intval($row['acomm']);
$score = intval($row['score']);
$ratings = intval($row['ratings']);
if ($catid > 0) {
$row2 = $db->sql_fetchrow($db->sql_query("SELECT title FROM ".$prefix."_stories_cat WHERE catid='$catid'"));
$cattitle = stripslashes(check_html($row2['title'], "nohtml"));
}
getTopics($s_sid);
formatTimestamp($time);
$subject = filter($subject, nohtml);
$introcount = strlen($hometext);
$fullcount = strlen($bodytext);
$totalcount = $introcount + $fullcount;
$c_count = $comments;
$r_options = "";
if (isset($cookie[4])) { $r_options .= "&amp;mode=$cookie[4]"; }
if (isset($cookie[5])) { $r_options .= "&amp;order=$cookie[5]"; }
if (isset($cookie[6])) { $r_options .= "&amp;thold=$cookie[6]"; }
$story_link = "<a href=\"modules.php?name=News&amp;file=article&amp;sid=$s_sid$r_op tions\">";
$morelink = "(";
if ($fullcount > 0 OR $c_count > 0 OR $articlecomm == 0 OR $acomm == 1) {
$morelink .= "$story_link<b>"._READMORE."</b></a> | ";
} else {
$morelink .= "";
}
if ($fullcount > 0) { $morelink .= "$totalcount "._BYTESMORE." | "; }
if ($articlecomm == 1 AND $acomm == 0) {
if ($c_count == 0) { $morelink .= "$story_link"._COMMENTSQ."</a>"; } elseif ($c_count == 1) { $morelink .= "$story_link$c_count "._COMMENT."</a>"; } elseif ($c_count > 1) { $morelink .= "$story_link$c_count "._COMMENTS."</a>"; }
}
$sid = intval($s_sid);
if ($catid != 0) {
$row3 = $db->sql_fetchrow($db->sql_query("SELECT title FROM ".$prefix."_stories_cat WHERE catid='$catid'"));
$title1 = filter($row3['title'], nohtml);
$title = "<a href=\"modules.php?name=News&amp;file=categories&amp;op=newindex&amp; catid=$catid\"><font class=\"storycat\">$title1</font></a>: $title";
$morelink .= " | <a href=\"modules.php?name=News&amp;file=categories&amp;op=newindex&amp; catid=$catid\">$title1</a>";
}
if ($score != 0) {
$rated = substr($score / $ratings, 0, 4);
} else {
$rated = 0;
}
$morelink .= " | "._SCORE." $rated";
$morelink .= ")";
$morelink = str_replace(" | | ", " | ", $morelink);
themeindex($aid, $informant, $datetime, $title, $counter, $topic, $hometext, $notes, $morelink, $topicname, $topicimage, $topictext);
}

// ¤®Ў*ў«пҐ¬ бва**ЁзЄЁ
if ($numpages > 1) {
echo "<br>";
opentable();
echo "<center>" ;
if ($pagenum > 1) {
$prevpage = $pagenum - 1 ;
$leftarrow = "images/left.gif" ;
if ($new_topic==0){
echo "<a href=\"modules.php?name=$module_name&pagenum=$prevpage\">";
}else{
echo "<a href=\"modules.php?name=$module_name&new_topic=$new_topic&pagenum=$prevpage\">";
}
echo "<img src=\"$leftarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>";
}

echo "[ " ;
for ($i=1; $i < $numpages+1; $i++) {
if ($i == $pagenum) {
echo "<b>$i</b>";
} else {
if ($new_topic==0){
echo "<a href=\"modules.php?name=$module_name&pagenum=$i\">$i</a>";
} else {
echo "<a href=\"modules.php?name=$module_name&new_topic=$new_topic&pagenum=$i\">$i</a>";
}
}
if ($i < $numpages) { echo " | "; } else { echo " ]"; }
}

if ($pagenum < $numpages) {
$nextpage = $pagenum + 1 ;
$rightarrow = "images/right.gif" ;
if ($new_topic==0){
echo "<a href=\"modules.php?name=$module_name&pagenum=$nextpage\">";
} else {
echo "<a href=\"modules.php?name=$module_name&new_topic=$new_topic&pagenum=$nextpage\">";
}
echo "<img src=\"$rightarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>";
}
echo "</center>";
closetable();
}
// * вгв §*Є®*зЁ«Ё ¤®Ў*ў«пвм!

include("footer.php");
}

function rate_article($sid, $score, $random_num="0", $gfx_check) {
global $prefix, $db, $ratecookie, $sitename, $r_options, $sitekey, $gfx_chk, $module_name;
if (isset($random_num)) {
$datekey = date("F j");
$rcode = hexdec(md5($_SERVER[HTTP_USER_AGENT] . $sitekey . $random_num . $datekey));
$code = substr($rcode, 2, 3);
if (extension_loaded("gd") AND $code != $gfx_check AND $gfx_chk != 0) {
mt_srand ((double)microtime()*1000000);
$maxran = 1000000;
$random_num = mt_rand(0, $maxran);
include("header.php");
title("$sitename: "._ARTICLERATING."");
OpenTable();
$row = $db->sql_fetchrow($db->sql_query("SELECT title FROM ".$prefix."_stories WHERE sid='$sid'"));
$row[title] = filter($row[title], nohtml);
echo "<center><a href=\"modules.php?name=$module_name&file=article&sid=$sid$r_options\"><b>$row[title]</b></a><br>"._ARTICLERATING.": <img src=\"images/articles/stars-$score.gif\" border=\"0\" alt=\"$score/5\" title=\"$score/5\"> ($score/5)<br><br>";
echo ""._TOFINISHRATINGERROR."<br><br>";
echo "<form action=\"modules.php?name=$module_name\" method=\"post\">";
echo ""._SECURITYCODE.":<br><img src='?gfx=gfx_little&random_num=$random_num' border='1' alt='"._SECURITYCODE."' title='"._SECURITYCODE."'><br><br>\n";
echo ""._TYPESECCODE.":<br><input type=\"text\" NAME=\"gfx_check\" SIZE=\"3\" MAXLENGTH=\"3\"><br>\n";
echo "<input type=\"hidden\" name=\"random_num\" value=\"$random_num\"><br>\n";
echo "<input type=\"hidden\" name=\"score\" value=\"$score\"><br>\n";
echo "<input type=\"hidden\" name=\"sid\" value=\"$sid\">\n";
echo "<input type=\"hidden\" name=\"op\" value=\"rate_article\">";
echo "<input type=\"submit\" value=\""._CASTMYVOTE."\"></font></center></form>";
CloseTable();
include("footer.php");
die();
} else {
$score = intval($score);
$sid = intval($sid);
if ($score) {
if ($score > 5) { $score = 5; }
if ($score < 1) { $score = 1; }
if ($score != 1 AND $score != 2 AND $score != 3 AND $score != 4 AND $score != 5) {
Header("Location: index.php");
die();
}
$ip = $_SERVER["REMOTE_ADDR"];
$num = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_stories WHERE sid='$sid' AND rating_ip='$ip'"));
if ($num != 0) {
Header("Location: modules.php?name=News&op=rate_complete&sid=$sid&rated=1");
die();
}
if (isset($ratecookie)) {
$rcookie = base64_decode($ratecookie);
$rcookie = addslashes($rcookie);
$r_cookie = explode(":", $rcookie);
}
for ($i=0; $i < sizeof($r_cookie); $i++) {
if ($r_cookie[$i] == $sid) {
$a = 1;
}
}
if ($a == 1) {
Header("Location: modules.php?name=News&op=rate_complete&sid=$sid&rated=1");
die();
} else {
$ip = $_SERVER["REMOTE_ADDR"];
$result = $db->sql_query("update ".$prefix."_stories set score=score+$score, ratings=ratings+1, rating_ip='$ip' where sid='$sid'");
$info = base64_encode("$rcookie$sid:");
setcookie("ratecookie","$info",time()+86400);
update_points(7);
Header("Location: modules.php?name=News&op=rate_complete&sid=$sid&score=$score");
}
} else {
include("header.php");
title("$sitename: "._ARTICLERATING."");
OpenTable();
echo "<center>"._DIDNTRATE."<br><br>"
.""._GOBACK."</center>";
CloseTable();
include("footer.php");
}
}
} else {
mt_srand ((double)microtime()*1000000);
$maxran = 1000000;
$random_num = mt_rand(0, $maxran);
if (extension_loaded("gd") AND $gfx_chk != 0 ) {
include("header.php");
title("$sitename: "._ARTICLERATING."");
OpenTable();
$row = $db->sql_fetchrow($db->sql_query("SELECT title FROM ".$prefix."_stories WHERE sid='$sid'"));
echo "<center><a href=\"modules.php?name=$module_name&file=article&sid=$sid$r_options\"><b>$row[title]</b></a><br>"._ARTICLERATING.": <img src=\"images/articles/stars-$score.gif\" border=\"0\" alt=\"$score/5\" title=\"$score/5\"> ($score/5)<br><br>";
echo ""._TOFINISHRATING."<br><br>";
echo "<form action=\"modules.php?name=$module_name\" method=\"post\">";
echo ""._SECURITYCODE.":<br><img src='?gfx=gfx_little&random_num=$random_num' border='1' alt='"._SECURITYCODE."' title='"._SECURITYCODE."'><br><br>\n";
echo ""._TYPESECCODE.":<br><input type=\"text\" NAME=\"gfx_check\" SIZE=\"3\" MAXLENGTH=\"3\"><br>\n";
echo "<input type=\"hidden\" name=\"random_num\" value=\"$random_num\"><br>\n";
echo "<input type=\"hidden\" name=\"score\" value=\"$score\"><br>\n";
echo "<input type=\"hidden\" name=\"sid\" value=\"$sid\">\n";
echo "<input type=\"hidden\" name=\"op\" value=\"rate_article\">";
echo "<input type=\"submit\" value=\""._CASTMYVOTE."\"></font></center></form>";
CloseTable();
include("footer.php");
} else {
$random_num = "$random_num";
$gfx_check = "$code";
Header("Location: modules.php?name=$module_name&op=rate_article&sid=$sid&score=$score&random_num=$random_num");
}
}
}

function rate_complete($sid, $rated=0, $score) {
global $sitename, $user, $cookie, $module_name;
$r_options = "";
if (is_user($user)) {
if (isset($cookie[4])) { $r_options .= "&amp;mode=$cookie[4]"; }
if (isset($cookie[5])) { $r_options .= "&amp;order=$cookie[5]"; }
if (isset($cookie[6])) { $r_options .= "&amp;thold=$cookie[6]"; }
}
include("header.php");
title("$sitename: "._ARTICLERATING."");
OpenTable();
if ($rated == 0) {
$row = $db->sql_fetchrow($db->sql_query("SELECT title FROM ".$prefix."_stories WHERE sid='$sid'"));
$row[title] = filter($row[title], nohtml);
echo "<center><a href=\"modules.php?name=$module_name&file=article&sid=$sid$r_options\"><b>$row[title]</b></a><br>"._YOURATEDARTICLE.": <img src=\"images/articles/stars-$score.gif\" border=\"0\" alt=\"$score/5\" title=\"$score/5\"> ($score/5)<br><br>";
echo "<center>"._THANKSVOTEARTICLE."<br><br>"
."[ <a href=\"modules.php?name=$module_name&amp;file=article&amp;sid=$si d$r_options\">"._BACKTOARTICLEPAGE."</a> ]</center>";
} elseif ($rated == 1) {
echo "<center>"._ALREADYVOTEDARTICLE."<br><br>"
."[ <a href=\"modules.php?name=$module_name&amp;file=article&amp;sid=$si d$r_options\">"._BACKTOARTICLEPAGE."</a> ]</center>";
}
CloseTable();
include("footer.php");
}

switch ($op) {

default:
theindex($new_topic);
break;

case "rate_article":
rate_article($sid, $score, $random_num, $gfx_check);
break;

case "rate_complete":
rate_complete($sid, $rated, $score);
break;

}

?>

Master 16.01.2006 13:59

нц ты включи диагностику ошибок и посмотри то там есть или нет ты оба куска кода заменял как я тебе показывал?

kor 16.01.2006 14:09

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

Master 16.01.2006 14:22

ты мне лучше дай имсходник файла где ты уже внес изменения ая посмотрю где не так

kor 16.01.2006 14:28

что внисить в файл....
я могу только внести вот это поменять!!! а другое слишком многого нехвататет

Master 16.01.2006 14:38

kor так а тоже ты тогда хочешь стоб были новости у тебя менять нужно оба куска кода которые я тебе давал

kor 16.01.2006 14:39

посомтри на другой кусок там он никак несовпадает с моим файлом

Master 16.01.2006 14:47

Вот это

$result = $db->sql_query("SELECT sid, catid, aid, title, time, hometext, bodytext, comments, counter, topic, informant, notes, acomm, score, ratings FROM ".$prefix."_stories $qdb $querylang ORDER BY sid DESC limit $offset, $storynum");
while ($row = $db->sql_fetchrow($result)) {
$s_sid = intval($row['sid']);
$catid = intval($row['catid']);
$aid = filter($row['aid'], nohtml);
$title = filter($row['title'], nohtml);
$time = $row['time'];
$hometext = filter($row['hometext']);
$bodytext = filter($row['bodytext']);
$comments = intval($row['comments']);
$counter = intval($row['counter']);
$topic = intval($row['topic']);
$informant = filter($row['informant'], nohtml);
$notes = filter($row['notes']);
$acomm = intval($row['acomm']);
$score = intval($row['score']);
$ratings = intval($row['ratings']);
if ($catid > 0) {
$row2 = $db->sql_fetchrow($db->sql_query("SELECT title FROM ".$prefix."_stories_cat WHERE catid='$catid'"));
$cattitle = stripslashes(check_html($row2['title'], "nohtml"));
}
getTopics($s_sid);
formatTimestamp($time);

Заменить на это

if ($pagenum == "") { $pagenum = 1; }
$offset = ($pagenum-1) * $storynum;
$offset = intval($offset);
$storynum = intval($storynum);
$sql = "SELECT sid, s.catid, s.aid, s.title, s.time, s.hometext, s.bodytext, s.comments, s.counter, s.topic, s.informant, s.notes, s.acomm, s.score, s.ratings, c.title, t.topicid, t.topicname, t.topicimage, t.topictext FROM ".$prefix."_stories AS s LEFT JOIN ".$prefix."_stories_cat AS c on (s.catid=c.catid) LEFT JOIN ".$prefix."_topics AS t on (s.topic=t.topicid) $qdb $querylang ORDER BY s.time DESC LIMIT $offset, $storynum";
$result = $db->sql_query($sql);
while (list($s_sid , $catid, $aid, $title, $time, $hometext, $bodytext, $comments, $counter, $topic, $informant, $notes, $acomm, $score, $ratings, $ctitle, $topicid, $topicname, $topicimage, $topictext) = $db->sql_fetchrow($result)) {
if ($catid > 0) {
$cattitle = $ctitle;
}
formatTimestamp($time);

Все вот все сложности не ленитесь!

kor 16.01.2006 14:54

все спасибо что помогли тугодуму настроить все!!!! теперь докладываю!!!! было 49 запросов стало 35!!!! большое спасибо!!!

P.s. интересно а что еще можно сделать чтобы добиться 30 запросов или чуть меньше?

Andruha 16.01.2006 18:25

У меня вообще совершенно другие функции.
PhpNuke 7.3 Patched 3.1

kor 16.01.2006 18:43

Andruha как ты видишь из нашей тут переписки то что мне master вообще подал код от нюки 76 но вместе мы довели до 79!!! посомтри весь пост

Andruha 16.01.2006 20:32

Вот мой index модуля новостей.
if (isset($new_topic)) - совсем нету т.е. есть но совсем не то.
Код:
<?php if (!eregi("modules.php", $_SERVER['PHP_SELF'])) { die ("You can't access this file directly..."); } $index = 1; require_once("mainfile.php"); $module_name = basename(dirname(__FILE__)); get_lang($module_name); function theindex($new_topic=0) { # Page Numbers added $pagenum global $db, $storyhome, $topicname, $topicimage, $topictext, $datetime, $user, $cookie, $nukeurl, $prefix, $multilingual, $currentlang, $articlecomm, $sitename, $user_news, $pagenum; if ($multilingual == 1) { $querylang = "AND (alanguage='$currentlang' OR alanguage='')"; } else { $querylang = ""; } include("header.php"); automated_news(); if (isset($cookie[3]) AND $user_news == 1) { $storynum = $cookie[3]; } else { $storynum = $storyhome; } if ($new_topic == 0) { $qdb = "WHERE (ihome='0' OR catid='0')"; $home_msg = ""; } else { $qdb = "WHERE topic='$new_topic'"; $sql_a = "SELECT topictext FROM ".$prefix."_topics WHERE topicid='$new_topic'"; $result_a = $db->sql_query($sql_a); $row_a = $db->sql_fetchrow($result_a); $numrows_a = $db->sql_numrows($result_a); $topic_title = $row_a[topictext]; OpenTable(); if ($numrows == 0) { echo "<center><font class=\"title\">$sitename</font><br><br>"._NOINFO4TOPIC."<br><br>[ <a href=\"modules.php?name=News\">"._GOTONEWSINDEX."</a> | <a href=\"modules.php?name=Topics\">"._SELECTNEWTOPIC."</a> ]</center>"; } else { echo "<center><font class=\"title\">$sitename: $topic_title</font><br><br>" ."<form action=\"modules.php?name=Search\" method=\"post\">" ."<input type=\"hidden\" name=\"topic\" value=\"$new_topic\">" .""._SEARCHONTOPIC.": <input type=\"name\" name=\"query\" size=\"30\">&nbsp;&nbsp;" ."<input type=\"submit\" value=\""._SEARCH."\">" ."</form>" ."[ <a href=\"index.php\">"._GOTOHOME."</a> | <a href=\"modules.php?name=Topics\">"._SELECTNEWTOPIC."</a> ]</center>"; } CloseTable(); echo "<br>"; } # START Page Numbers if ($pagenum == "") { $pagenum = 1 ; } $offset = ($pagenum-1) * $storynum ; $sql = "SELECT sid, catid, aid, title, time, hometext, bodytext, comments, counter, topic, informant, notes, acomm, score, ratings FROM ".$prefix."_stories $qdb $querylang ORDER BY sid DESC limit $offset, $storynum"; # END Page Numbers $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $s_sid = $row['sid']; $catid = $row[catid]; $aid = $row[aid]; $title = $row[title]; $time = $row[time]; $hometext = $row[hometext]; $bodytext = $row[bodytext]; $comments = $row[comments]; $counter = $row[counter]; $topic = $row[topic]; $informant = $row[informant]; $notes = $row[notes]; $acomm = $row[acomm]; $score = $row[score]; $ratings = $row[ratings]; if ($catid > 0) { $sql2 = "SELECT title FROM ".$prefix."_stories_cat WHERE catid='$catid'"; $result2 = $db->sql_query($sql2); $row2 = $db->sql_fetchrow($result2); $cattitle = $row2[title]; } getTopics($s_sid); formatTimestamp($time); $subject = stripslashes($subject); $hometext = stripslashes($hometext); $notes = stripslashes($notes); $introcount = strlen($hometext); $fullcount = strlen($bodytext); $totalcount = $introcount + $fullcount; $c_count = $comments; $r_options = ""; if (isset($cookie[4])) { $r_options .= "&amp;mode=$cookie[4]"; } if (isset($cookie[5])) { $r_options .= "&amp;order=$cookie[5]"; } if (isset($cookie[6])) { $r_options .= "&amp;thold=$cookie[6]"; } if (is_user($user)) { $the_icons = " | <a href=\"modules.php?name=News&amp;file=print&amp;sid=$s_sid\"><img src=\"images/print.gif\" border=\"0\" alt=\""._PRINTER."\" title=\""._PRINTER."\" width=\"16\" height=\"11\"></a>&nbsp;&nbsp;<a href=\"modules.php?name=News&amp;file=friend&amp;op=FriendSend&amp;si d=$s_sid\"><img src=\"images/friend.gif\" border=\"0\" alt=\""._FRIEND."\" title=\""._FRIEND."\" width=\"16\" height=\"11\"></a>"; } else { $the_icons = ""; } $story_link = "<a href=\"modules.php?name=News&amp;file=article&amp;sid=$s_sid$r_op tions\">"; $morelink = "("; if ($fullcount > 0 OR $c_count > 0 OR $articlecomm == 0 OR $acomm == 1) { $morelink .= "$story_link<b>"._READMORE."</b></a> | "; } else { $morelink .= ""; } if ($fullcount > 0) { $morelink .= "$totalcount "._BYTESMORE." | "; } if ($articlecomm == 1 AND $acomm == 0) { if ($c_count == 0) { $morelink .= "$story_link"._COMMENTSQ."</a>"; } elseif ($c_count == 1) { $morelink .= "$story_link$c_count "._COMMENT."</a>"; } elseif ($c_count > 1) { $morelink .= "$story_link$c_count "._COMMENTS."</a>"; } } $morelink .= "$the_icons"; $sid = $s_sid; if ($catid != 0) { $sql3 = "SELECT title FROM ".$prefix."_stories_cat WHERE catid='$catid'"; $result3 = $db->sql_query($sql3); $row3 = $db->sql_fetchrow($result3); $title1 = $row3[title]; $title = "<a href=\"modules.php?name=News&amp;file=categories&amp;op=newindex&amp; catid=$catid\"><font class=\"storycat\">$title1</font></a>: $title"; $morelink .= " | <a href=\"modules.php?name=News&amp;file=categories&amp;op=newindex&amp; catid=$catid\">$title1</a>"; } if ($score != 0) { $rated = substr($score / $ratings, 0, 4); } else { $rated = 0; } $morelink .= " | "._SCORE." $rated"; $morelink .= ")"; $morelink = str_replace(" | | ", " | ", $morelink); themeindex($aid, $informant, $datetime, $title, $counter, $topic, $hometext, $notes, $morelink, $topicname, $topicimage, $topictext); } # START Page Numbers # Uncomment this next line and change 100 to whatever for number of stories in news and topics for Page Numbers section #$limitpn = "limit 100"; # limit number of stories $sql_pn = "select * from ".$prefix."_stories $qdb $querylang $limitpn"; $result_pn = $db->sql_query($sql_pn); $numstories = $db->sql_numrows($result_pn); $numpages = ceil($numstories / $storynum); #if ($numpages > 1 and $new_topic == 0) { if ($numpages > 1) { opentable(); echo "<center>$numstories "._STORIES." ($numpages "._PAGES.", $storynum "._PERPAGE.")<br>" ; if ($pagenum > 1) { $prevpage = $pagenum - 1 ; $leftarrow = "images/left.gif" ; if(isset($new_topic)) { echo "<a href=\"modules.php?name=News&amp;new_topic=$new_topic&amp;pagenum =$prevpage\">"; echo "<img src=\"$leftarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>"; } else { echo "<a href=\"modules.php?name=News&amp;pagenum=$prevpage\">"; echo "<img src=\"$leftarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>"; } } echo "[ " ; for ($i=1; $i < $numpages+1; $i++) { if ($i == $pagenum) { echo "<b>$i</b>"; } else { if(isset($new_topic)) { echo "<a href=\"modules.php?name=News&amp;new_topic=$new_topic&amp;pagenum =$i\">$i</a>"; } else { echo "<a href=\"modules.php?name=News&amp;pagenum=$i\">$i</a>"; } } if ($i < $numpages) { echo " | "; } else { echo " ]"; } } if ($pagenum < $numpages) { $nextpage = $pagenum + 1 ; $rightarrow = "images/right.gif" ; if(isset($new_topic)) { echo "<a href=\"modules.php?name=News&amp;new_topic=$new_topic&amp;pagenum =$nextpage\">"; echo "<img src=\"$rightarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>"; } else { echo "<a href=\"modules.php?name=News&amp;pagenum=$nextpage\">"; echo "<img src=\"$rightarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>"; } } echo "</center>" ; closetable(); } # END Page Numbers in news and topics include("footer.php"); } function rate_article($sid, $score) { global $prefix, $dbi, $ratecookie, $sitename, $r_options; $score = intval($score); if ($score) { if ($score > 5) { $score = 5; } if ($score < 1) { $score = 1; } if ($score != 1 AND $score != 2 AND $score != 3 AND $score != 4 AND $score != 5) { Header("Location: index.php"); die(); } if (isset($ratecookie)) { $rcookie = base64_decode($ratecookie); $r_cookie = explode(":", $rcookie); } for ($i=0; $i < sizeof($r_cookie); $i++) { if ($r_cookie[$i] == $sid) { $a = 1; } } if ($a == 1) { Header("Location: modules.php?name=News&op=rate_complete&sid=$sid&rated=1"); } else { $result = sql_query("update ".$prefix."_stories set score=score+$score, ratings=ratings+1 where sid='$sid'", $dbi); $info = base64_encode("$rcookie$sid:"); setcookie("ratecookie","$info",time()+3600); update_points(7); Header("Location: modules.php?name=News&op=rate_complete&sid=$sid$r_options"); } } else { include("header.php"); title("$sitename: "._ARTICLERATING.""); OpenTable(); echo "<center>"._DIDNTRATE."<br><br>" .""._GOBACK."</center>"; CloseTable(); include("footer.php"); } } ............ Обрезал .......... ?>

Master 17.01.2006 00:01

Народ мне кажется вы просто ленитесь вот же эти 2 куска кода которые нужно менять

кусок 1

if ($new_topic == 0) {
$qdb = "WHERE (ihome='0' OR catid='0')";
$home_msg = "";
} else {
$qdb = "WHERE topic='$new_topic'";
$sql_a = "SELECT topictext FROM ".$prefix."_topics WHERE topicid='$new_topic'";
$result_a = $db->sql_query($sql_a);
$row_a = $db->sql_fetchrow($result_a);
$numrows_a = $db->sql_numrows($result_a);
$topic_title = $row_a[topictext];

кусок 2

if ($pagenum == "") { $pagenum = 1 ; }
$offset = ($pagenum-1) * $storynum ;
$sql = "SELECT sid, catid, aid, title, time, hometext, bodytext, comments, counter, topic, informant, notes, acomm, score, ratings FROM ".$prefix."_stories $qdb $querylang ORDER BY sid DESC limit $offset, $storynum";
# END Page Numbers

$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) {
$s_sid = $row['sid'];
$catid = $row[catid];
$aid = $row[aid];
$title = $row[title];
$time = $row[time];
$hometext = $row[hometext];
$bodytext = $row[bodytext];
$comments = $row[comments];
$counter = $row[counter];
$topic = $row[topic];
$informant = $row[informant];
$notes = $row[notes];
$acomm = $row[acomm];
$score = $row[score];
$ratings = $row[ratings];
if ($catid > 0) {
$sql2 = "SELECT title FROM ".$prefix."_stories_cat WHERE catid='$catid'";
$result2 = $db->sql_query($sql2);
$row2 = $db->sql_fetchrow($result2);
$cattitle = $row2[title];
}
getTopics($s_sid);
formatTimestamp($time);

все заменяешь эти куски из твоегофайла теми что я постил!

Andruha 17.01.2006 00:13

Master спасибо тебе.
Просто не разобрался до конца. Теперь всё работает, но нумерация страниц пропала.

kor 17.01.2006 00:16

мастер!!!! есть проблема!!!! короче все поставил но в админке исчезло блок ждут проверки!!! как исправить?

Andruha 17.01.2006 00:55

ага, у меня так же !
вот только что заметил.

Master 17.01.2006 11:54

Andruha возьми хак pagenum и подгони его под этот код возможно просто гдето переменная пропала поновой воткни под мой код этот хак и все!

Andruha Насче пропал блок ждут проверки это совсем не изза моего кода сам посуди какие мы редактировали файлы и откуда грузится блок ждут проверки! блок ждут проверки загружается из mainfile а ты правил чисто индексный файл модуля новостей я тут что то не какой связи не вижу между этим :) вспоминай что ты делал до этого какие изменени вносил до моего кода изза чего мог пропасть блок ждут проверки!

kor 17.01.2006 15:55

у меня тоже пропало блок ждут проверки я до этого сделал твою оптиизацию+ http://lkrotish.narod.ru/optimize.html можешь глянуть что тут неполучаеться!!! пробую это поставить в mainfile.php заменяя тот что стоит и вообще все пропадает все блоки с главной!!!

и можешь помочь: в этом файле говориться что сделать чтоб оптимизировать нюку но у меня там неполучаеться одна вещь...

помогите установить то что несмог установить!!! скажите что в этом нето

function blocks($side) {
global $storynum, $prefix, $multilingual, $currentlang, $db, $admin, $user;
if ($multilingual == 1) {
$querylang = "AND (blanguage='$currentlang' OR blanguage='')";
} else {
$querylang = "";
}
if (strtolower($side[0]) == "l") {
$pos = "l";
} elseif (strtolower($side[0]) == "r") {
$pos = "r";
} elseif (strtolower($side[0]) == "c") {
$pos = "c";
} elseif (strtolower($side[0]) == "d") {
$pos = "d";
}
$side = $pos;
global $edogs_blocks;
if(empty($edogs_blocks)) {
$sql = "SELECT bid, bkey, title, content, url, blockfile, view, expire, action, subion, bposition FROM ".$prefix."_blocks WHERE active='1' $querylang ORDER BY weight ASC";
$result = $db->sql_query($sql);
while($row_z = $db->sql_fetchrow($result)) {
$edogs_blocks[]=$row_z;
}
}
foreach($edogs_blocks as $k=>$row) {
if($row['bposition']!=$pos) continue;
$bid = intval($row['bid']);
$title = stripslashes(check_html($row['title'], "nohtml"));
$content = stripslashes($row['content']);
$url = stripslashes($row['url']);
$blockfile = $row['blockfile'];
$view = intval($row['view']);
$expire = intval($row['expire']);
$action = $row['action'];
$action = substr("$action", 0,1);
$now = time();
$sub = intval($row['subion']);
if ($sub == 0 OR ($sub == 1 AND !paid())) {
if ($expire != 0 AND $expire <= $now) {
if ($action == "d") {
$db->sql_query("UPDATE ".$prefix."_blocks SET active='0', expire='0' WHERE bid='$bid'");
return;
} elseif ($action == "r") {
$db->sql_query("DELETE FROM ".$prefix."_blocks WHERE bid='$bid'");
return;
}
}
if ($row[bkey] == admin) {
adminblock();
} elseif ($row[bkey] == userbox) {
userblock();
} elseif ($row[bkey] == "") {
if ($view == 0) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
} elseif ($view == 1 AND is_user($user) || is_admin($admin)) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
} elseif ($view == 2 AND is_admin($admin)) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
} elseif ($view == 3 AND !is_user($user) || is_admin($admin)) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
}
}
}
}
}

это потимизация мне дала - 15 на главной и в админке было раньше 200 а щас 60

Master 17.01.2006 22:19

Вот это лучше используйте!

function blocks($side) {
global $storynum, $prefix, $multilingual, $currentlang, $db, $admin, $user;
static $barr;
if ($multilingual == 1) {
$querylang = "AND (blanguage='$currentlang' OR blanguage='')";
} else {
$querylang = "";
}
if (strtolower($side[0]) == "l") {
$pos = "l";
} elseif (strtolower($side[0]) == "r") {
$pos = "r";
} elseif (strtolower($side[0]) == "c") {
$pos = "c";
} elseif (strtolower($side[0]) == "d") {
$pos = "d";
}
$side = $pos;
if (!isset($barr)) {
$sql = "SELECT bid, bkey, title, content, url, blockfile, view, expire, action, subscription, bposition FROM ".$prefix."_blocks WHERE active='1' $querylang ORDER BY weight ASC";
$result = $db->sql_query($sql);
while(list($bid, $bkey, $title, $content, $url, $blockfile, $view, $expire, $action, $subscription, $bposition) = $db->sql_fetchrow($result)) {
$bid = intval($bid);
$view = intval($view);
$barr[]= array($bid, $bkey, $title, $content, $url, $blockfile, $view, $expire, $action, $subscription, $bposition);
}
}
for ($i=0; $i<sizeof($barr); $i++){
list ($bid, $bkey, $title, $content, $url, $blockfile, $view, $expire, $action, $subscription, $bposition)=$barr[$i];
if ($bposition==$side){
$now = time();
$sub = intval($subscription);
if ($sub == 0 OR ($sub == 1 AND !paid())) {
if ($expire != 0 AND $expire <= $now) {
if ($action == "d") {
$db->sql_query("UPDATE ".$prefix."_blocks SET active='0', expire='0' WHERE bid='$bid'");
return;
} elseif ($action == "r") {
$db->sql_query("DELETE FROM ".$prefix."_blocks WHERE bid='$bid'");
return;
}
}
if ($bkey == "admin") {
adminblock();
} elseif ($bkey == "userbox") {
userblock();
} elseif ($bkey == "") {
if ($view == 0) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
} elseif ($view == 1 AND is_user($user) || is_admin($admin)) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
} elseif ($view == 2 AND is_admin($admin)) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
} elseif ($view == 3 AND !is_user($user) || is_admin($admin)) {
render_blocks($side, $blockfile, $title, $content, $bid, $url);
}
}
}
}
}
$db->sql_freeresult($result);
}

kor 17.01.2006 23:21

поставил и запросы остались на прежнем месте!! но появился блок ждут проверки !!! как говориться запросы неизменились зато все встало на свои места!!!

спасибо тебе благодаря тебе я добился 28 запросов!!!!!!
если нетрудно подскажи что нить еще !!! и глядишь слайд обгоним)))

p.s. я вот хочу убрать новости с главной но немогу белый экран....

Master 18.01.2006 03:30

kor В админке в модулх выбири какой тебе надо модуль и нажми напротив него ссылку установить на главной и будет другой модуль на гланой а новости будут как просто обыный модуль в менюшке отображаться

mczik 01.01.2007 03:21

у меня на главной 60 запросов, это очень много?

Alexander-V-Sh 01.01.2007 04:10

это много имхо.
хотя конечно зависит от хоста и кол-ва посетитлей.
это лучше чем 200, но хуже чем 10. (и то и то на нюке бывает)


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

Copyright © 2005 by Soniks