Как сделать, чтоб высвечивалась не одна последняя новость на главной странице форума от Invision Power Board, а например 4?
Стандартными средствами этого не сделать. Так же не встречал модов для этого. Единственный вариант — ручками :3
Что менять?
Открываем файл admin/applications/forums/modules_public/forums/boards.php и находим в нём:
$news_data = array( 'forum_id' => $this->settings['news_forum_id'], 'title' => stripslashes($this->registry->getClass( 'class_forums')->forum_by_id[ $this->settings['news_forum_id'] ]['newest_title']), 'seo_title' => $this->registry->getClass( 'class_forums')->forum_by_id[ $this->settings['news_forum_id'] ]['seo_last_title'], 'id' => $this->registry->getClass( 'class_forums')->forum_by_id[ $this->settings['news_forum_id'] ]['newest_id'] );Меняем этот код на:
$this->DB->build( array( 'select' => 't.tid, t.title, t.title_seo, t.start_date',
'from' => array( 'topics' => 't' ),
'where' => 't.approved=1 AND t.forum_id = '.$this->settings['news_forum_id'],
'order' => 'start_date desc',
'limit' => array( 0, 4 )
)
);
$this->DB->execute();
while ( $topic = $this->DB->fetch() )
{
$news_data[] = array(
'forum_id' => $this->settings['news_forum_id'],
'title' => stripslashes($topic['title']),
'seo_title' => $topic['title_seo'],
'date' => $this->registry->getClass( 'class_localization')->getDate( $topic['start_date'], 'manual{%d %B}' ),
'id' => $topic['tid']
);
}
Ну и и в шаблоне boardIndexTemplate это выглядит так:
<if test="latestNews:|:is_array($news_data) AND count($news_data)">
<div id='latest_news'>
<strong>{$this->lang->words['newslink']}</strong>
<foreach loop="news:$news_data as $_news">
<span>{$_news['date']}</span> — <a href='{parse url="showtopic={$_news['id']}" template="showtopic" seotitle="{$_news['seo_title']}" base="public"}' title='{$this->lang->words['newslink']}'>{$_news['title']}</a>
</foreach>
</div>
</if>
Собственно, вот и всё. Сам внешний вид выводимых новостей уже настраивайте в шаблоне.