Сортировка материалов в "Последние записи"

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

Аватар пользователя Demontager Demontager 3 ноября 2012 в 7:28

Как можно сделать сортировку вывода последних материалов по дате создания ? Только не на самих материалах, а в блоке последние записи. У меня получается так, если я изменяю какую-то статью, то в блоке последних материалов эта статья показывается первой, т.е. срабатывает сортировка по последнему изменению.

Комментарии

Аватар пользователя ser_house ser_house 3 ноября 2012 в 18:50

Чтобы не было скучно:

function MY_THEME_query_node_access_alter(QueryAlterableInterface $query) {
  $query_fields = $query->getFields();
  if (1 == count($query_fields) && 'nid' == key($query_fields)) {
    $order_by =& $query->getOrderBy();

    if (isset($order_by['n.changed']) && 'DESC' == $order_by['n.changed']) {
      $tables = $query->getTables();
      if (1 == count($tables) && 'n' == key($tables)) {
//        dpm($query->__toString(), 'before');
//        before => SELECT n.nid AS nid
//        FROM
//        {node} n
//        ORDER BY n.changed DESC
//        LIMIT 10 OFFSET 0
        $order_by['n.created'] = 'ASC';
        unset($order_by['n.changed']);
//        dpm($query->__toString(), 'after');
//        after => SELECT n.nid AS nid
//        FROM
//        {node} n
//        ORDER BY n.created ASC
//        LIMIT 10 OFFSET 0
      }
    }
  }
}

Для простоты я засунул это в template.php темы, но можно и в модуль запихать.

Примечание: теоретически существует вероятность, что такой запрос используется ещё где-нибудь.

Аватар пользователя Demontager Demontager 3 ноября 2012 в 19:14

Про views я сразу и подумал, только вот как конкретно там это сделать ?
ser_house Спасибо! Попробую прикрутить это на локалхосте и испытать.

Аватар пользователя HydroBlast HydroBlast 3 ноября 2012 в 19:20

Создайте views блок , там достаточно просто найти сортировку .
Ну и останется заменить существующий блок новым .