File size: 4.39Kb
<?php
defined('DCMS') or die;
global $cache,$user,$dcms;
if (false ===($new_posts = $cache -> get('forum.new_posts.'.$user->group)))
{
$new_posts = mysql_result(mysql_query("SELECT COUNT(DISTINCT(`msg`.`id_theme`))
FROM `forum_messages` AS `msg`
LEFT JOIN `forum_themes` AS `th` ON `th`.`id` = `msg`.`id_theme`
LEFT JOIN `forum_topics` AS `tp` ON `tp`.`id` = `th`.`id_topic`
LEFT JOIN `forum_categories` AS `cat` ON `cat`.`id` = `th`.`id_category`
WHERE `th`.`group_show` <= '{$user -> group}'
AND `tp`.`group_show` <= '{$user -> group}'
AND `cat`.`group_show` <= '{$user -> group}'
AND `msg`.`group_show` <= '{$user -> group}'
AND `msg`.`time` > '".NEW_TIME."'"),0);
$cache -> set('forum.new_posts.'.$user->group,$new_posts,60);
}
if (false ===($new_themes = $cache -> get('forum.new_themes.'.$user->group)))
{
$new_themes = mysql_result(mysql_query("SELECT COUNT(*)
FROM `forum_themes` AS `th`
LEFT JOIN `forum_topics` AS `tp` ON `tp`.`id` = `th`.`id_topic`
LEFT JOIN `forum_categories` AS `cat` ON `cat`.`id` = `th`.`id_category`
WHERE `th`.`group_show` <= '{$user -> group}'
AND `tp`.`group_show` <= '{$user -> group}'
AND `cat`.`group_show` <= '{$user -> group}'
AND `th`.`time_create` > '".NEW_TIME."'"),0);
$cache -> set('forum.new_themes.'.$user->group,$new_themes,60);
}
$tem = mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_themes`"), 0);
$msgss = mysql_result(mysql_query("SELECT COUNT(*) FROM `forum_messages`"), 0);
$users = mysql_result(mysql_query("SELECT COUNT(*) FROM `users_online` WHERE `request` LIKE '/forum/%'"),0);
echo "<img src='/sys/images/icons/forum.png' alt='' /> <a href='/forum/'>Форум</a> ($tem";
if ($new_themes)
echo "<a href='/forum/last.themes.php'><font color='red'>+$new_themes</font></a>";
echo "/$msgss";
if ($new_posts)
echo "<a href='/forum/last.posts.php'><font color='red'>+$new_posts</font></a>";
echo ")";
if ($users)
echo "<br />$users ".misc::number($users,'человек','человека','человек');
echo '<br/>Последние сообщения на форуме:';
$posts = array();
$pages = new pages;
$pages->posts = mysql_result(mysql_query("SELECT COUNT(DISTINCT(`msg`.`id_theme`))
FROM `forum_messages` AS `msg`
LEFT JOIN `forum_themes` AS `th` ON `th`.`id` = `msg`.`id_theme`
LEFT JOIN `forum_topics` AS `tp` ON `tp`.`id` = `th`.`id_topic`
LEFT JOIN `forum_categories` AS `cat` ON `cat`.`id` = `th`.`id_category`
WHERE `th`.`group_show` <= '{$user -> group}'
AND `tp`.`group_show` <= '{$user -> group}'
AND `cat`.`group_show` <= '{$user -> group}'
AND `msg`.`group_show` <= '{$user -> group}'
AND `msg`.`time` > '".NEW_TIME."'"), 0); // количество категорий форума
$pages->this_page(); // получаем текущую страницу
$q = mysql_query("SELECT `th`.* , `tp`.`name` AS `topic_name`, `cat`.`name` AS `category_name`, COUNT(`msg`.`id`) AS `count`
FROM `forum_messages` AS `msg`
LEFT JOIN `forum_themes` AS `th` ON `th`.`id` = `msg`.`id_theme`
LEFT JOIN `forum_topics` AS `tp` ON `tp`.`id` = `th`.`id_topic`
LEFT JOIN `forum_categories` AS `cat` ON `cat`.`id` = `th`.`id_category`
WHERE `th`.`group_show` <= '{$user -> group}'
AND `tp`.`group_show` <= '{$user -> group}'
AND `cat`.`group_show` <= '{$user -> group}'
AND `msg`.`group_show` <= '{$user -> group}'
AND `msg`.`time` > '".NEW_TIME."'
GROUP BY `msg`.`id_theme`
ORDER BY MAX(`msg`.`time`) DESC LIMIT {$pages->my_start()}, {$pages->items_per_page}");
while ($themes=mysql_fetch_assoc($q)) {
$is_top=$themes['top'];
$is_open=(int)($themes['group_write']<=1);
$i=array('size'=>'small','src'=>"/sys/images/icons/forum.theme.$is_top.$is_open.png");
$t="<a href='/forum/theme.php?id={$themes['id']}'>$themes[name]</a> ($themes[count] new)";
$t.=" <a href='/forum/theme.php?id={$themes['id']}&page=end'>>></a>";
$autor=new user($themes['id_autor']);
$last_msg=new user($themes['id_last']);
$p=($autor->id!=$last_msg->id?$autor->nick.'/'.$last_msg->nick:$autor->nick).' ('.vremja($themes['time_last']).')<br />';
$posts[]=array('title'=>$t,'icon'=>$i,'post'=>$p);
}
if (!$posts)$posts[]=array('icon'=>array('size'=>'small','src'=>'/sys/images/icons/empty.png'),'title'=>'Сегодня небыло написано ни одного сообщения');
$show = new design();
$show->assign('post',$posts);
$show->display('design.listing.tpl');
$pages->listing('?'); // вывод страниц
?>