xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Сниппет вывода последних материалов

Опубликовано в

Сниппет выводит ссылки на 5 последних добавленных материалов типа article:

<?php
$nodes = db_select('node', 'n')
  ->fields('n', array('nid', 'title'))
  ->condition('n.type', 'article')
  ->condition('n.status', NODE_PUBLISHED)
  ->orderBy('n.created', 'DESC')
  ->range(0, 5)
  ->execute();
$titles = node_title_list($nodes);
echo drupal_render($titles);
?>

Что такое сниппет и как им воспользоваться.

Написанное актуально для Drupal 7
Похожие записи

Комментарии RSS

Можно ещё тэг добавить: ->addTag('node_access');

На php 5.3 код работает, но возвращает ошибку:
Strict warning: Only variables should be passed by reference в функции eval() (строка ... в файле /path/to/drupal/modules/php/php.module(80) : eval()'d code).

исправил

Спасибо! Работает. Восхищен. Оперативность решения 2 минуты. Время к 3-м часам ночи

xandeadx, подскажите, пожалуйста, как этот сниппет модифицировать, чтобы кроме заголовка выводился бы краткий анонс ноды (ну, символов 300)? спасибо.

Да тоже очень интересует вопрос о выводе кроткого анонса ноды

Добрый вечер.
Во первых спасибо за пример, и за блог в целом!
Во вторых, возможно ли вы вместо заголовка ноды, вывести определенное поле?
Сам слабоват в пхп, навоял такое:

<?php
$nodes = db_select('node', 'n');
$nodes->join('field_data_field_city', 'city', 'n.nid = city.entity_id');
$nodes
  ->fields('city',array('field_city_value'))
  ->condition('n.type', 'order')
  ->condition('n.status', NODE_PUBLISHED)
  ->orderBy('n.created', 'DESC')
  ->range(0, 2)
  ->execute();
$titles = node_title_list($nodes);
echo drupal_render($titles);
?>

но это не работает :(

foreach ($nodes as $node) {
  echo $node->field_city_value . '<br />';
}

Здравствуйте. А как вывести определенного типа материалов?

добавил условие

Огромное спасибо :)

Подскажи, как модифицировать чтобы выводились только помеченные термином (терминами) текущей ноды?

Добрый день, огромное спасибо за ваши труды, все просто великолепно. У меня трудность есть такая, хочу в заголовке блока, созданном в views для последних записей в блоге, вывести количество записей всех блогов за сегодня.

Подскажите пожалуйста, как это можно организовать?

альтерните блок, сделайте запрос в базу, выведите в заголовке блока

Не будете столь любезны набрасать код данной операции, или хотя бы примерно показать как это можно сделать. Не силен как Вы в этом, познаю все в процессе работы.

С уважением, Евгений

Есть сниппет который считает количество материала для 7-ки, но есть вопрос один:

 $query = db_select('node', 'n')
          ->condition('n.type', 'article');
    $query->addExpression('COUNT(*)');
    $count = $query->execute()->fetchField();
        print 'Статей: ' . $count;

Как добавить условие проверки за промежуток времени, за 24 часа?

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании