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

Аватар пользователя VooDoo_pro
+1
0
-1

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

Версия: 

Аватар пользователя kalabro
+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
+1
+1
-1

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

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

Вопрос: