Сортировка main content

VooDoo_pro's picture
+1
0
-1

Дорогие Drupalцы ))) Как можно встроенными средствами(без view ) сделать отбор, чтобы новости в MainContent выводились определенных категорий?

Версия: 

kalabro's picture

+1
+1
-1

Вообще конечно это сделать можно. Самый простой — альтернуть запрос к базе. Но я бы так делать никогда не стала, потому что это извращенство.

/**
 * Implements hook_query_TAG_alter().
 */
function YOURMODULE_query_node_access_alter(QueryAlterableInterface $query) {
  // Идентификаторы терминов.
  $tids = array(8, 11);

  // TRUE, если нужно отображать все ноды независимо от флага promote.
  $remove_promote_condition = FALSE;

  $tables = $query->getTables();

  if (in_array(current_path(), array('node', 'rss.xml'))
      && isset($tables['n']) && $tables['n']['table'] == 'node'
      && !$query->hasTag('YOURMODULE_front')) {

    if ($remove_promote_condition) {
      $conditions = &$query->conditions();
      foreach ($conditions as $key => $condition) {
        if ($condition['field'] == 'n.promote') {
          unset($conditions[$key]);
        }
      }
    }

    $query->join('taxonomy_index', 't', 'n.nid = t.nid');
    $query->condition('t.tid', $tids, 'IN');

    $query->addTag('YOURMODULE_front');

    // Только для отладки.
    if (function_exists('dpq')) {
      //dpq($query);
    }

  }

Другой способ — реализовать свой hook_menu со своим запросом. В этом случае нужно будет самому заботиться о рендере, кешировании, RSS и ещё о чём-то, о чём я забыла.

Надеюсь, я отбила у вас охоту не использовать Views.

Konstantin Komelin's picture

+1
+1
-1

выводились определенных категорий

Я подумал тебе на главной надо бить контент по категориям. Для этого Views в самый раз.
Включаешь Frontend вьюху (выключена по умолчанию) и настраиваешь группировку по полям таксономии.

VooDoo_pro's picture

+1
0
-1

Все проще) при создании ноды ставить убрать галочку помещено на главную страницу) а через Views шикарно выводятся новостные ленты! http://vk.com/videos-25880726?z=video-25880726_161038873%2Fclub25880726 и там же второе видео

Konstantin Komelin's picture

+1
+2
-1

Либо ты осваиваешь нормальный путь (Views) как можно раньше, либо потом страдаешь дольше.