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