РЕШЕНО! 3 предыдущих новостей, которые были опубликованы ранее.

Главные вкладки

Аватар пользователя rmо rmо 27 марта 2014 в 1:17

Собсвенно задача от Seo-шника

Сделать перелинковку между новостными материалами.
На странице каждой новости внизу нужно сделать блочек с названием “Советуем прочитать” и выводить названия-ссылки
3 предыдущих новостей, которые были опубликованы ранее.

Выводим предшествующие 3 материла того, который открываем

как бы такое замутить на views ?

Комментарии

Аватар пользователя rmо rmо 28 марта 2014 в 0:42

"Garin33" wrote:

Хорошо, исключим из вывода ноду на которой сейчас находимся, а как вывести предшествующие ноды?

Аватар пользователя EvgenySorokin EvgenySorokin 28 марта 2014 в 0:46

views, выводите нужные поля, настраиваете сортировку по дате добавления, фильтрацию по типу материала. про аргументы по приведенным ссылкам сказано все.

проблем никаких нет, стоит только попробовать.

Аватар пользователя rmо rmо 28 марта 2014 в 14:13

"Garin33" wrote:
Garin33

я понимаю

тут суть задачи в нет что бы вывести любые предидущие значение

а именно 3 предидущих,
те если новость опубилкована сегодня
и вчера 3 новости опубликовано

то будут показаны эти вчерашние 3, те они предшествуют сегодняшней

Аватар пользователя drupby drupby 28 марта 2014 в 15:21

если вьюсом это выводить , то надо добавлять контекстный фильтр по дате создания материала и в php коде определять нужные даты ,которые меньше даты текущей ноды
но если нужно вывести только заголовки , то лучше сделать программно

if (arg(0) == 'node' && ctype_digit(arg(1)) && $node = node_load(arg(1))) {
 
  $query = db_select('node','n')
    ->fields('n')
    ->condition('created', $node->created, '<')
    ->condition('type', 'news') // выбираем только ноды типа news
    ->orderBy('created', 'DESC')
    ->range(0, 3);
  $result = $query->execute();
  $node_title_list = node_title_list($result, NULL);
  print render($node_title_list);
 
}

если нужно , то оформить все это дело в блок

$block[content] = $node_title_list;