Архив со списком всех материалов, сгруппированных по месяцам, без помощи Views

/**
 * Реализация hook_menu()
 */
function mymodule_menu()
{
    $items['archive'] = array(
        'title' => 'Archive',
        'page callback' => 'mymodule_archive_page',
        'access arguments' => array('access content'),
        'type' => MENU_CALLBACK,
    );
 
    return $items;
}
 
/**
 * Page callback
 */
function mymodule_archive_page()
{
    // получаем список всех материалов
    $nodes = db_query("
        SELECT n.nid, n.title, n.created, ncs.comment_count FROM {node} n
        LEFT JOIN {node_comment_statistics} ncs ON n.nid = ncs.nid
        WHERE n.status = 1
        ORDER BY n.created DESC
    ");
 
    $groupedNodes = array();
    $output = '';
 
    // группируем по месяцу создания
    while ($node = db_fetch_object($nodes))
    {
        $groupedNodes[format_date($node->created, 'custom', 'Y, F')][] = l($node->title, 'node/' . $node->nid) . ' (' . $node->comment_count . ')';
    }
 
    // выводим сгруппированный список
    foreach ($groupedNodes as $date => $nodesForMonths)
    {
        $output .= theme('item_list', $nodesForMonths, $date);
    }
 
    return $output;
}

В отличии от Views, работает довольно шустро и без кэширования.

Написанное актуально для
Drupal 6.x
Теги:
Архив материалов
Добавлено: 26 Июля 2018 21:55:56 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...