Количество тем и сообщений подфорумов InstantCMS

30 января 2011

Один из моих проектов стоит на InstantCMS. Система очень даже ничего, плюс есть дополнительные качественные модули. Например карта или магазин. Но сейчас не об этом. На днях заметил что на главной странице компонента Форум, неправильно, точнее не совсем корректно отображаются количество тем и сообщений. Если форум имеет подфорумы с темами и сообщениями, а сам в свою очередь не имеет тем, то напротив него написано что тем нет и сообщений тоже. И тут же рядом отображается последнее сообщение одного из подфорумов. Может это и было так задуманно, но я решил что неплохо было бы отображать сумму тем и сообщений, включая подфорумы. Благо движок открытый и внеся небольшие изменения в код я подучил требуемый результат. Просто меняем функцию forumMessages на нашу. Функция расположена в файле /components/forum/includes/forumcore.php примерно на 13 строке.
Вот функция для замены

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function forumMessages($forum_id){
     $inCore = cmsCore::getInstance();
     $inDB   = cmsDatabase::getInstance();
     $html = '';
     global $_LANG;
     $groupsql = forumUserAuthSQL();
     $subforums_sq = "SELECT * FROM cms_forums WHERE published = 1 AND parent_id = $forum_id      $groupsql ORDER BY ordering";
     $subforums_result = $inDB->query($subforums_sql);
     $subforums_count = $inDB->num_rows($subforums_result);
     $subforums = array();
     if ($subforums_count){
          while ($subforum = $inDB->fetch_assoc($subforums_result)){
               $inner_forums = '';
               $inner_sql = "SELECT id, title FROM cms_forums WHERE parent_id = {$subforum['id']} ORDER BY title";
               $suballsql = "SELECT 1 FROM cms_forum_threads WHERE forum_id = ".$subforum['id'];
               $result = $inDB->query($suballsql) ;
               if ($inDB->num_rows($result)) $allth = $allth  + $inDB->num_rows($result);
               $tsuballsql = "SELECT p.id FROM cms_forum_threads t LEFT JOIN cms_forum_posts p ON p.thread_id = t.id WHERE t.forum_id = ".$subforum['id'];
               $tresultsub = $inDB->query($tsuballsql);
               if ($inDB->num_rows($tresultsub)) $tallth = $tallth  + $inDB->num_rows($tresultsub);
          }
     }
     $sql = "SELECT 1 FROM cms_forum_threads WHERE forum_id = $forum_id";
     $result = $inDB->query($sql);
     if ($inDB->num_rows($result)){
          $html .= '<strong>'.$_LANG['THREADS'].':</strong> '.($inDB-&gt;num_rows($result) + $allth);
     } else {
          if($allth &gt; 0) $html .= '<strong>'.$_LANG['THREADS'].':</strong> '.$allth;
          else $html .= $_LANG['NOT_THREADS'];
     }
     $tsql = "SELECT p.id FROM cms_forum_threads t LEFT JOIN cms_forum_posts p ON p.thread_id = t.id WHERE t.forum_id = $forum_id";
     $tresult = $inDB-&gt;query($tsql);
     if ($inDB-&gt;num_rows($tresult)) $html .= '<strong>'.$_LANG['MESSAGES'].':</strong>'.($inDB-&gt;num_rows($tresult) + $tallth);
     else $html .= '<strong>'.$_LANG['MESSAGES'].':</strong> '.(int)$tallth;
     return $html;
}

Категории: InstantsCMS

Tags: , , ,


 RSS feed | Trackback URI

Комментарии »

Еще нет комментариев.

Имя (обязательно)
E-mail (обязательно - нигде не публикуется)
URI
Subscribe to comments via email
Ваш комментарий (smaller size | larger size)
Вы можете использовать следующие теги в ваших комментариях: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> .

Подпишись

Облачко тегов

    AllSubmitter (1)
    Counter Strike (1)
    Datalife Engine (1)
    eBay (2)
    InstantsCMS (1)
    MSI (7)
    PR (1)
    SEO софт (2)
    VPS/VDS (1)
    WebAsyst (1)
    в Туле (1)
    Взлом WiFi (1)
    Дешёвые домены (1)
    Искусство (1)
    Кеи для доров (1)
    КПК (1)
    Мой миллион (53)
    Мой мозг (32)
    Обзоры сайтов (10)
    Остаться в живых (18)
    Пишем на PHP (6)
    Полезное (20)
    Праздники (2)
    Сателлиты (2)
    ТИЦ (5)
    ФинСтриптиз (11)

    WP Cumulus Flash tag cloud by Roy Tanck requires Flash Player 9 or better.

Ссылки

Галерея





Rambler's Top100

Яндекс цитирования

Google PageRank



Рейтинг блогов

Рейтинг блогов

Я - на Карте






BlogMemes.ru

Рейтинг блогов. Заработок в интернете

Рейтинг блогов

Позиция в конкурсе

    Кнопка

Календарь

    Январь 2011
    Пн Вт Ср Чт Пт Сб Вс
    « Март   Апр »
     12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31  

Активный месяц

Поиск по сайту

Партнёры

Рейтинговые посты











Copyright © 2008 - 2012 Гришкин SEO Блог. Тема от WebGO. Карта сайта. Каталог ссылок.