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 | Заметки Айтишника

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

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

Партнер сайта: Портал ЗаймыOnline.ru - когда нужен выгодный займ до зарплаты!