Не выводится блок самописного модуля

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

Аватар пользователя pavlov888 pavlov888 3 июня 2021 в 1:38

Изучаю тему создания модулей на друпал 7, делал все по урокам, через хуки добавил вывод модуля в блоке, в итоге сам модуль появился в настройках блоков а когда включаешь его то ничего не выводится, при чем в самый первый раз когда его включил он отобразился до первого обновления страницы и потом пропал.
Помогите разобраться плиз!

Лучший ответ

Аватар пользователя pavlov888 pavlov888 3 июня 2021 в 19:03

Разобрался, извините за беспокойство и за мою невнимательность, вместо item_list написал items_list

Комментарии

Аватар пользователя pavlov888 pavlov888 3 июня 2021 в 12:02

<?php

function newposts_help($path, $arg) {
switch ($path) {
case 'admin/help#newposts':
return '' . t("Показывает ссылки на недавние ноды") . '';
break;
}
}

function newposts_block_info() {
$blocks['newposts'] = array(
// Имя модуля появится в списке блоков.
'info' => t('Недавние записи'),
// Стандартная настройка кэша
'cache' => DRUPAL_CACHE_PER_ROLE,

);
return $blocks;
}

function newposts_contents() {
// Получаем текущую дату
$today = getdate();

// Расчитываем дату, которая была неделю назад
$start_time = mktime(0, 0, 0, $today['mon'], ($today['mday'] -7), $today['year']);
// Задаем текущую дату
$end_time = time();

// Используем Database API чтобы получить заданные ноды.
$query = db_select('node', 'n')
->fields('n', array('nid', 'title', 'created'))
->condition('status', 1) // Опубликованы.
->condition('created', array($start_time, $end_time), 'BETWEEN')
->orderBy('created', 'DESC') // Новые сверху
->execute();

return $query;
}

function newposts_block_view($delta = '') {
switch ($delta) {
case 'newposts':
$blocks['subject'] = t('Новое на сайте');
if (user_access('access content')) {
// Используем функцию получения данных
$result = newposts_contents();
// Массив будет содержать данные для рендеринга в блок
$items = array();
// Проходим по выборке и генерируем ссылки
foreach ($result as $node) {
$items[] = array(
'data' => l($node->title, 'node/' . $node->nid),
);
}
// За последнюю неделю ничего нет
if (empty($items)) {
$blocks['content'] = t('За последнюю неделю ничего нет.');
}
else {
// Отправляем данные в функцию theme.
$blocks['content'] = theme('items_list', array(
'items' => $items));
}
}

return $blocks;
}
}