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

Как вывести последние несколько записей нод определенного типа сниппетом. Такая статья уже была, но тут выводим только title со ссылкой на ноду и всё. По идее можно было и не писать про это, но пусть будет).

Приведу сниппет на примере вывода списка альбомов из галелеи.

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

<?php

$maxlen = 100; //максимальная длина текста
$type='_gallery'; // Нужный тип
$lim='3'; // 

Читать

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

Собрала функции для получения текущего адреса. Буду дополнять если что.

Получить алиас ноды (синоним ноды):

drupal_get_path_alias($path, $path_language = '').

Функция возвращает синоним, к внутреннему пути друпала.

Параметры:

$path Внутренний путь друпала.

$path_language Не обязательный код языка, для которого выполняется поиск.
Возвращаемое значение

Синоним пути, если был найден или исходный путь, если синоним не был найден.

 

Пример:

//получим путь к ноде (алиас)
$system_path = 'node/'.$node->nid;
$current_path = drupal_get_path_alias($system_path);

&nb
Читать