[Помощь] Последние обсуждения или активные темы

Статус
В этой теме нельзя размещать новые ответы.

Ardis

Профессор
Регистрация
26 Мар 2008
Сообщения
209
Реакции
42
Последние обсуждения или активные темы кто как называет...
у меня в сборке ( Для просмотра ссылки Войди или Зарегистрируйся ) стоит IP Dynamic Lite (портал), в этом портале есть колонка "Последние обсуждения (Последние созданные темы)" посмотреть можно тут Для просмотра ссылки Войди или Зарегистрируйся
Вопрос 1: Как сделать такую же колонку и на самом форуме?
Я нашел как сделать саму колонку но как в нее воткнуть именно колонку "Последние обсуждения"
Код правой колонки на самом форуме
PHP:
<table width="100%" cellspacing="0" sellpadding="0" border="0">
  <tr> <td><% BOARD %></td>  
    <td width="15px"><!-- no content --></td>
    <td width="15%" valign="top">
      <div class="borderwrap">
        <div class="maintitle"><p>Последние обсуждения</p></div>
        <div class="tablepad">
<br />
<div class='tableborder'>
содержание правой колонки
</div>
</div>
      </div></td>
  </tr>
</table>
Код Последние обсуждения
PHP:
         //---------------------------------------------------
         // Latest Posts
         //---------------------------------------------------

         function _show_latestposts()
         {
                 global $ibforums, $DB, $std, $print;

                 if ( ! $ibforums->vars['csite_discuss_on'] )
                 {
                         return;
                 }

                 $html  = "";
                 $limit = $ibforums->vars['csite_discuss_max'] ? $ibforums->vars['csite_discuss_max'] : 5;

                 if ( count($this->bad_forum) > 0 )
            {
                    $qe = " AND forum_id NOT IN(".implode(',', $this->bad_forum ).") ";
            }

                 $DB->query("SELECT tid, title, posts, starter_id as member_id, starter_name as member_name, start_date as post_date, views
                             FROM ibf_topics
                             WHERE state!='closed' AND approved=1 AND (moved_to IS NULL or moved_to='') $qe
                             ORDER BY start_date DESC LIMIT 0,$limit");

                 while ( $row = $DB->fetch_row() )
                 {
                         $html .= $this->_tmpl_format_topic($row, $ibforums->vars['csite_discuss_len']);
                 }

                 return $this->html->tmpl_latestposts($html);
         }
Вопрос 2:
как сделать что бы вместо Последних тем отображались темы где только что ответили а не создали?
я сделал так но работает криво... отображается одна и тажа тема раз 5... т.е. если в той теме ответили 5 раз то она и будет 5 раз подрят отображаться!
вот это:
PHP:
				if ( count($this->bad_forum) > 0 )
            {
                    $qe = " AND forum_id NOT IN(".implode(',', $this->bad_forum ).") ";
            }

                 $DB->query("SELECT tid, title, posts, starter_id as member_id, starter_name as member_name, start_date as post_date, views
                             FROM ibf_topics
                             WHERE state!='closed' AND approved=1 AND (moved_to IS NULL or moved_to='') $qe
                             ORDER BY start_date DESC LIMIT 0,$limit");
заменил на:
PHP:
				if ( count($this->bad_forum) > 0 )
            {
                    $qe = " AND t.forum_id NOT IN(".implode(',', $this->bad_forum ).") ";
            }
$DB->query("select t.tid, t.title, t.posts, p.author_id as member_id, p.author_name as member_name, post_date as post_date, views from ibf_topics t 
LEFT JOIN ibf_posts p ON (p.topic_id=t.tid)
where t.approved=1  and t.state != 'closed' and (t.moved_to is null or t.moved_to = '') 
$qe order by t.posts DESC
limit  0, $limit");
 
нашел мод Last x Topics Для просмотра ссылки Войди или Зарегистрируйся
установил, все работает!
Сам мод отображается внизу форума (там где Статистика)!
Как сделать что бы я мог воткнуть в любое место форума?
Например в правую колонку с помощью кода
PHP:
<table width="100%" cellspacing="0" sellpadding="0" border="0">
  <tr> <td><% BOARD %></td>  
    <td width="15px"><!-- no content --></td>
    <td width="15%" valign="top">
      <div class="borderwrap">
        <div class="maintitle"><p>Правая колонка</p></div>
        <div class="tablepad">
<br />
<div class='tableborder'>

содержание МОДА Last x Topics

</div>
</div>
      </div></td>
  </tr>
</table>
 
  • Заблокирован
  • #3
Ardis
ну найди в шаблоне тот момент который отвечает за правую колонку и лепи туда код отвечающий за отображение Last x Topics.
 
<table width="100%" cellspacing="0" sellpadding="0" border="0">
<tr> <td><% BOARD %></td>
<td width="15px"><!-- no content --></td>
<td width="15%" valign="top">
<div class="borderwrap">
<div class="maintitle"><p>Правая колонка</p></div>
<div class="tablepad">
<br />
<div class='tableborder'>
if ($ibforums->vars['show_lasttopics'])
{

$DB->query("SELECT * FROM `ibf_topics` ORDER BY `tid` DESC LIMIT ".$ibforums->vars['show_x_topics']."");
$stats_html .= $this->html->ShowLastTopicsTOP();
while ($stats = $DB->fetch_row()) {
$stats_html .= $this->html->ShowLastTopics($stats);
}
$stats_html .= $this->html->ShowLastTopicsBOTTOM();

}

</div>
</div>
</div></td>
</tr>
</table>
Так должно работать,за статистику отвечает файл /sources/Boards.php,вот вместо него добавляй содержание
if ($ibforums->vars['show_lasttopics'])
{

$DB->query("SELECT * FROM `ibf_topics` ORDER BY `tid` DESC LIMIT ".$ibforums->vars['show_x_topics']."");
$stats_html .= $this->html->ShowLastTopicsTOP();
while ($stats = $DB->fetch_row()) {
$stats_html .= $this->html->ShowLastTopics($stats);
}
$stats_html .= $this->html->ShowLastTopicsBOTTOM();

}
куда хочешь.
 
$iD
бугага я не настолько тупой если б можно было сделать так то сделал и не писал тут!
Cepera-exp
нельзя php код вставлять в шаблон напрямую!
---------------------------------
нужно сделать что бы код отвечающий за отображение Last x Topics
был вида
<% BOARD HEADER %>
<% NAVIGATION %>
это как я понимаю надо прописывать в functions.php а вот как это сделать незнаю!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху