Афиша, Views & node reference

Главные вкладки

Аватар пользователя sk2 sk2 18 сентября 2009 в 13:17

Уважаемые гуру, подскажите пожалуйста,
делаю Афишу для сайта.
есть тип материала Кинотеатр (Киномакс, Синема, Родина)
и тип материала Фильм, где есть ССК-поле node reference, где я выбираю Кинотеатр.
Дак вот задача, как мне вывести в ноде Кинотеатр, список фильмов которые указаны через node reference.

Знаю что нужно делать через Views и снипетом вставлять код вьюса в node-kinoteatr.tpl.php, но вот как настроить Views и что за код писать ума не прилажу, и это ещё без сеансов.

спасибо.

Комментарии

Аватар пользователя agent-000 agent-000 18 сентября 2009 в 13:58

если просто список то можно и без Вьювса, а если как в моей задаче, то ждем ответа.

ОТветит хоть кто нибудь? или эта тема табу?

А на счет сеансов... это становится интересно)) бгг (один фильм, много кинотеатров, и у всех разное время показов)

Аватар пользователя Dan Dan 18 сентября 2009 в 14:58

Сущности:
* кинотеатр
* фильм
* сеанс

Связи
* фильм -> кинотеатр
* сеанс -> фильм, кинотеатр

В теле ноды (если не охота руки кодом марать) views можно вывести модулем views_attach.

При отображении списка фильмов в кинотеатре, нужно создать view с аргументом "Содержимое: Кинотеатр (node_reference)" и при просмотре кинотеатра туда вставлять ноду это самого кинотеатра.

Для списка сеансов при просмотре ноды фильма (или кинотеатра, что аналогично), нужно выводить список сеансов с аргументом "Фильм" ("Кинотеатр") и группировкой по кинотеатру (фильму).

Пипец запутанно написал, но должно работать Smile

Если охота поместить views в ноду программно, то спрашивайте, приведу пример кода.

Аватар пользователя sk2 sk2 18 сентября 2009 в 16:57

Dan wrote:
Сущности:
* кинотеатр
* фильм
* сеанс

Связи
* фильм -> кинотеатр
* сеанс -> фильм, кинотеатр

В теле ноды (если не охота руки кодом марать) views можно вывести модулем views_attach.

При отображении списка фильмов в кинотеатре, нужно создать view с аргументом "Содержимое: Кинотеатр (node_reference)" и при просмотре кинотеатра туда вставлять ноду это самого кинотеатра.

Для списка сеансов при просмотре ноды фильма (или кинотеатра, что аналогично), нужно выводить список сеансов с аргументом "Фильм" ("Кинотеатр") и группировкой по кинотеатру (фильму).

Пипец запутанно написал, но должно работать Smile

Если охота поместить views в ноду программно, то спрашивайте, приведу пример кода.

Будте любезны, приведите пример кода, что у вас интересно будет попробовать.
спс

Аватар пользователя boodooboo boodooboo 18 сентября 2009 в 16:40

Dan, Вы можете привести пример, где все вышесказанное фунциклирует? Может на конкретном примере будет более понятно.

Аватар пользователя agent-000 agent-000 18 сентября 2009 в 18:03

Говорил с Даном. Что касается моего случая когда есть нод референс из Мероприятия ссылающегося на Участника, то в Мероприятии вывести через вьювс Участников не получится. Это становится реальным если поменять направление связи от Участника к Мероприятию.

Не пробовал, но как сделаю - напишу.

Аватар пользователя yurgon yurgon 18 сентября 2009 в 20:23

Я сделаю 3 типа: Фильм и Афиша и наверно ещё Кинотеатр

Те. я создаю сначала фильм с множеством полей, затем создаю Афишу для этого фильма , где через node_reference вы выбираю сам фильм и Кинотеатр, так же в этой афише я прописываю сеансы (как показала практика сеансы обычно одинаковые на каждый сеанс и думаю и таким образом все сеансы просто хранятся в текстовом поле CCK через запятую).

Ну а потом естественно views , но создаем views именно для вывода кинотеатра и сеанса. Как сделали подобную вьюшку и идем в темизацию фильма и в нужном месте её вызываем, например так

$view = views_get_view('afisha_event');
$display = $view->execute_display('block_4');
$display1['content'];

Хотя тут очень много не досказано.

Аватар пользователя Dan Dan 18 сентября 2009 в 20:40

"yurgon" wrote:
Хотя тут очень много не досказано.

Да, например про аргументы Smile Либо их поместите в код:
$display = $view->execute_display('block_4', array($node->nid)); или не забудьте указать во views что брать из URL.