Несколько последних новостей на главной странице форума Invision Power Board

Последние новости

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

Собственно, вот и всё. Сам внешний вид выводимых новостей уже настраивайте в шаблоне.

  Категории: 3.0.x и 3.1.x, Invision Power Board, php