Связь между полем CCK и представлением - PullRequest
4 голосов
/ 15 марта 2010

Я хочу использовать представление для выбора узлов в поле типа контента.Это представление должно получить аргумент, который является другим полем типа содержимого.Может кто-нибудь объяснить мне, как передать аргумент из поля в представление?

Извините, мой плохой английский

Ответы [ 3 ]

2 голосов
/ 22 марта 2010

Возможно, вы сможете использовать модуль Views Arguments Extras . Это позволит аргументу представления прийти из поля cck. Еще несколько подробностей об этом модуле (со страницы его проекта):

Этот модуль содержит группу обработчиков представления и плагинов, которые добавляют следующие параметры:

  • Аргумент по умолчанию Текущий узел CCK

    допускает загрузку значений полей cck текущего узла в качестве аргументов по умолчанию

  • Аргумент Параметры запроса по умолчанию

    позволяет получать и публиковать параметры в качестве значений по умолчанию

  • Аргумент Сортировка заказа

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

0 голосов
/ 17 марта 2010

Если вы просто хотите изменить отображаемое представление в зависимости от значения поля CCK, самый простой способ, который я нашел, - встроить представление в шаблон, используя views_embed_view().Что-то вроде этого в вашем файле шаблона будет работать, я думаю:

//Use the dsm function to print out your $node object
//to get the name of the field you want to pass as an arg
//like this: dsm($node); 
//Assuming that the value of that field is in $node->cck_field['0']:
print views_embed_view('name_of_view', 'name_of_display', $node->cck_field['0'];

views_embed_view() для работы нужен только первый аргумент - имя представленияОн вернет HTML для отображения по умолчанию именованного представления.Мы передаем это конкретное отображение в качестве второго аргумента.Все, что находится после второго аргумента, передается в представление в качестве аргумента, поэтому мы передаем значение поля в качестве аргумента для представления.См. эту ссылку для некоторой документации о том, как работает функция.

0 голосов
/ 16 марта 2010

Я полагаю, что вы можете использовать проверку аргумента для проверки аргумента, и в этот момент вы можете изменить значение аргумента $ handler-> до его передачи в представления.

...