Вывод топиков по отметке "принудительно вывести на главную"

Хочу в определенный блок вывести лишь материалы с указанной админом меткой. Т.к. социальная составляющая хорошо, но и featured требуется иметь. Последние N по дате топиков из запроса
SELECT * FROM `topic` WHERE `topic_publish_index` = 1
требуется обрабатывать и подставлять в нужный мне div.

Подскажите как это сделать?
По идее раз поле есть у топика, значит и обработчик должен быть.

10 комментариев

avatar
Формируем фильтр
$aFilter=array(
   'topic_publish' => 1,
);

Если нужен список топиков с постраничностью:
$aResult = $this->GetTopicsByFilter($aFilter,$iPage,$iPerPage);
$aTopics = $aResult['collection'];

Если без:
$aResult = $this->GetTopicsByFilter($aFilter);
$aTopics = $aResult['collection'];
avatar
увидел ту же логику в Topic.class.php — мне необходимо в этом файле также создать свою функцию по аналогу с, например, public function GetTopicsLast? я не программист… :)
avatar
ну и, наверное, в Topic.mapper.class.php
avatar
Нет. Только в акшне
avatar
Смотря где вы хотите вывести эти топики
avatar
на главной
avatar
а как называется action?
avatar
ActionIndex.class.php

Тут есть 2 варианта:

Вариант 1:

Файл: ActionIndex.class.php
Найти:
$aResult=$this->Topic_GetTopicsGood($iPage,Config::Get('module.topic.per_page'));
Заменить на:
$aFilter=array(
   'topic_publish' => 1,
);
$aResult = $this->GetTopicsByFilter($aFilter);


Вариант 2:

Файл: Topic.class.php
Найти: функцию GetTopicsGood и заменить в ней $aFilter на тот, что представлен выше
avatar
Простите, про постраничность забыл:
$aResult = $this->GetTopicsByFilter($aFilter,$iPage,Config::Get('module.topic.per_page'));
avatar
А как указать количество выводимых топиков не подскажите? Т.е. например у меня есть блок который выводит самые рейтинговые топики, но в этот блок хочется не их выводить, а отмеченные админом.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.