Как я могу показать определенный тип содержимого на указанной странице с Drupal 7 - PullRequest
0 голосов
/ 12 марта 2011

Когда я создаю тип контента, я хочу показать все посты этого типа контента на странице, я должен использовать модуль просмотра. Мне это не нравится.

Могу ли я просто указать страницу и URL при создании типа контента?

Но есть только один вариант, только первая страница. Могу ли я это изменить? Надеюсь, вы, ребята, можете сказать мне.

Ответы [ 2 ]

0 голосов
/ 14 марта 2011

Я согласен с тем, что просмотры - это мощный инструмент, который вы не должны учитывать , Модуль таксономии уже имеет список стилей представлений для каждого термина, я использовал его для достижения чего-то похожего на то, что вы ищете:

Установите словарь, термины которого соответствуют типам вашего узла, и обратите внимание на vid

добавьте hook_node_insert в файл модуля:

mymodulename_node_insert($node){
  $terms=taxonomy_get_tree($my_vid); //where $my_vid == the vid of your vocabulary.
  foreach($terms as $term){
   if(strtolower($node->type)==strtolower($term->name)){
      $items=array((array)$term);
      $field['storage']['type']='field_sql_storage';
      taxonomy_field_insert('node', $node, $field, null, null, $items);
    }
  }
}

После этого вам просто нужно добавить ссылки меню, указывающие на вашу страницу таксономии. В качестве примечания я отображаю все свои списки, для которых я не использую представления, с моими собственными пользовательскими функциями, поэтому я не уверен, какие ограничения может представлять этот метод.

0 голосов
/ 12 марта 2011

Модуль views является одной из самых убойных функций Drupal, вы можете пересмотреть возможность его полного списания.

В любом случае, если вы хотите отобразить все узлы типа, вам придется кодировать это самостоятельно впользовательский модуль.Это означает, что вам придется написать немного SQL, загрузить узлы и отобразить их в виде списка.В этом примере вы можете использовать класс EntityFieldQuery для построения запроса вместо того, чтобы писать SQL самостоятельно.

Конечный результат не будет сильно отличаться от того, что будут делать для вас представления, единственное отличие состоит в том, что вы будетенеобходимо создать все это с помощью кода в модуле, а не просто настроить его в пользовательском интерфейсе Views.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...