Drupal 7: Добавить ссылки предыдущий / следующий к ноде
Автор: Саша → 16.08.2017
Для перехода на следующую ноду добавляются ссылки предыдущая, следующая. Например, это актуально в новостях, да и для SEO полезно.
/** * Previous / Next function for nodes, ordered by node creation date * * @param $current_node: node object or node id * @param $node_types: array of node types to query * * @return array * */ function MODULENAME_prev_next_node($current_node = NULL, $node_types = array()) { // если передан параметр nid, то грузим ноду if (!is_object($current_node)) { $current_node = node_load($current_node->nid); } // делаем массив, если передана строка if (!is_array($node_types)) { $node_types = array($node_types); } // previous $prev = db_select('node', 'n') ->fields('n',array('nid', 'title', 'created')) ->condition('n.status', 1, '=') ->condition('n.type', $node_types, 'IN') ->condition('n.created', $current_node->created, '<') ->orderBy('created', 'DESC') ->range(0,1) ->execute() ->fetchAssoc(); // next or false if none $next = db_select('node', 'n') ->fields('n',array('nid', 'title', 'created')) ->condition('n.status', 1, '=') ->condition('n.type', $node_types, 'IN') ->condition('n.created', $current_node->created, '>') ->orderBy('created', 'ASC') ->range(0,1) ->execute() ->fetchAssoc(); return array('prev' => $prev, 'next' => $next); }
Немного затемизируем и получается так:
Раздел:
Тэги:
Оставить комментарий