Drupal. Выводим последние несколько записей нод определенного типа сниппетом

Как вывести последние несколько записей нод определенного типа сниппетом.

Конечно, можно использвать Views. Но зачем утяжелять? Приведу сниппет на примере вывода новостей.

Создаем блок для вывода. В коде блока пишем:

<?php
function cutString($string, $maxlen) {
$len = (mb_strlen($string) > $maxlen)? mb_strripos(mb_substr($string, 0, $maxlen), ' '): $maxlen;
$cutStr = mb_substr($string, 0, $len);
return (mb_strlen($string) > $maxlen) ? $cutStr . '...' : $cutStr;
}
$maxlen = 100; //максимальная длина текста
$type='_news'; // Нужный тип
$lim='2'; // Количество нод на страницу
$select=db_select('node', 'n')
->fields('n', array('nid', 'created'))
->condition('status', 1)
->condition('type', $type)
->orderby('created', 'desc')
->extend('PagerDefault')
->limit($lim)
->execute();
print('<div><ul>');
foreach ($select as $row) {
$node = node_view(node_load($row->nid),'body');
$body = $node['body'];
//получим путь к ноде (алиас)
$system_path = 'node/'.$row->nid;
$current_path = drupal_get_path_alias($system_path);
//заголовок в виде даты со ссылкой на ноду
print('<h5><li>');
print('<a href="'.$current_path.'">'.date('j.n.Y G:i:s',$body['#object']->created).'</a>');
print('</h5>');
$string = $body['#object']->body['und'][0]['value'];
print(cutString($string, $maxlen));
print('</li>');
}
print('</ul></div>');
?>

На забываем ставить вывод "PHP Code".
Справедливо для Drupal 7.

Рекомендовать в Социальных сетях:
 

Один комментарий на “Drupal. Выводим последние несколько записей нод определенного типа сниппетом

  1. Pingback: Drupal. Выводим последние несколько записей нод определенного типа сниппетом – 2 | Заметки Айтишника

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *