Как сделать, чтоб высвечивалась не одна последняя новость на главной странице форума от 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>
Собственно, вот и всё. Сам внешний вид выводимых новостей уже настраивайте в шаблоне.