Показать сообщение отдельно
typus вне форума      Старый #126  
typus
Частый Гость
Регистрация: 18.09.2006
Сообщения: 39


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

Посмотреть профиль Отправить персональное сообщение для typus Посетить домашнюю страницу typus Найти все сообщения от typus Добавить 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");
?>

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