Еще один пост о киноафише

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

Аватар пользователя Megajack Megajack 17 января 2012 в 2:29

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

У меня есть тип контента "Фильмы". В этом типе контента я добавил поле Node Reference, которое залинковал на тип контента "Кинотеатры", и еще одно поле Node Reference, залинкованное на Сеансы с типом контента Date (модуль Date).
В идеале, хочу повторить такой функционал. И все бы хорошо, выводятся фильмы с сеансами в разных кинотеатрах, но вот вывести кинотеатры с фильмами и сеансами никак не получается. 3 дня и 3 ночи вдоль и поперек ковыряю Views, перечитал кучу похожих постов, как на друпал.ру так и на друпал.орг, но правильный вывод так и не выходит. Как сделать эту "обратную совместимость", чтоб кинотеатры "видели", что в них сейчас идет и в какое время?

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

Помогите, пожалуйста, решить проблему.

Комментарии

Аватар пользователя VasyOK VasyOK 17 января 2012 в 2:42

Читая это пост подумал что один чел уже в кино снимается.

"Megajack" wrote:
Только вот не смог добавить поле сеансов фильма, когда находишься в каком-либо из кинотеатров.

Поподробнее пожалуйста.

Аватар пользователя Megajack Megajack 17 января 2012 в 3:00

VasyOK wrote:
Поподробнее пожалуйста.

Вьюсом сделан вывод фильмов и всей инфы к ним, включая названия кинотеатров и сеансы. Названия кинотеатров сделаны ссылкой, которая ведет на страницу кинотеатра в таксономии. А это ж по сути как категория и показывает она, все что в ней находится, то есть посты (с заголовком и боди) типа "фильмы" которые сейчас идут. А вот остальные поля фильма, оно не показывает, в частности сеансы, и я не могу найти где их можно добавить.

Аватар пользователя Megajack Megajack 17 января 2012 в 2:44

Во втором варинте, Вьюсом сделал вывод фильмов со всеми нужными полями. В поле кинотеатры, названия выводятся ссылками, которые ведут собственно на таксономию кинотеатра. Вот тут то как раз и не могу добавить сеансы.

Хотя пока писал пост, в голову пришла одна идея, если получится, обязательно отпишусь.

Аватар пользователя ydv ydv 17 января 2012 в 9:43

скорей всего вам нужно добавить relationship со всеми полями где node_reference, хотя может я что-то не так понял

Аватар пользователя Megajack Megajack 25 января 2012 в 1:57

Решил идти путем таксономии. И проблема с выводом полей решилась очень просто. Дело в том, что заходя на страницу кинотеатра (напомню, что это термин словаря "Кинотеатры"), он помимо заданных полей, выводит тизер фильмов, которые "присвоены" данному кинотеатру (ну то есть посты, грубо говоря с тегом или категорией кинотеатра). А в тизере по умолчанию, из полей был только "body". Я как-то сразу не обратил на это внимание, соотвественно проблема решилась просто добавлением нужных полей типе контента "фильмы" для отображения teaser.

Но теперь столкнулся с новой задачей. Хочу сделать вывод списка всех 4-х кинотеатров на страницу и чтоб под каждым выводились названия фильмов которые сейчас идут и их сеансы. Ну собственно все как тут.
Уже пару дней кручу Вьюс, но все никак. Я создаю вьюс с фильтром по словарю с именем "Кинотеатры", в полях добавляю вывод терминов словаря (названия кинотетров) и тут подвисаю. Пробовал добавить relationship (Taxonomy term: Representative node), но максимум чего удалось добиться это вывести по одному фильму каждому кинотеатру, а все вывести - никак не получается. Что я делаю не так?

Аватар пользователя demetr demetr 21 марта 2012 в 11:07

Я тоже озадачился афишей.
Решил это дело с помощью Views, cck, date.
Типы нод:
- Кинотеатр
- Фильм
- Сеанс. В нем два поля date. Одно - основное, для сортировки.
Второе с неограниченным числом вариантов, где и вписываются даты и время сеансов.

Результат http://chelnyclick.ru/cinema

Только у меня не список кинотеатров выводится, а список фильмов, рядом с которыми дата и время сеансов.

Аватар пользователя reMaster reMaster 14 мая 2012 в 16:26

Реализовать хорошую афишу просто средствами друпала пока не представляется возможности из-за универсальности самой CMS. Выше описанные варианты при большой нагрузке сразу положат на лопатки даже приличный сервер.

Опыт реализации Афиши:
Заведение, событие - типы материала
Дальше вступает в бой кастомный модуль и две таблицы:
"Афиша" - связь события и заведения
"Таймлайн" - связь к таблице "афиша" по ключу, дата начала, дата окончания, время проведения.

Реализация не заняла много времени и позволило избавиться от тяжёлых views/cck

Аватар пользователя Megajack Megajack 14 мая 2012 в 16:40

Может оно и так, но нужно еще дорасти до большой нагрузки Smile у меня пока всего пара десятков в день, с этим пока справляемся на отлично.

Аватар пользователя VasyOK VasyOK 14 мая 2012 в 18:19

"reMaster" wrote:

Реализовать хорошую афишу просто средствами друпала пока не представляется возможности из-за универсальности самой CMS.

Конкретные примеры плз.

Аватар пользователя Павел2 Павел2 1 июня 2012 в 9:16

Подскажите! Уже 4-й день мучаюсь с этой афишой кинотеатров. У меня ничего не получается связать. Создал тип материалов "фильмы" и через нод референс залинковал их на "кинотеатры", чтобы указывать где он будет идти, это самое простое. Но как привязать расписание? Создал тип материалов Сеансы, но так и не пойму что конкретно он должен содержать и как это все связать, чтобы в материалах "фильмы" рядом с кинотеатрами отображались сеансы. И как, соответственно, затем создать вьюху как во всё том же .

Вроде пролистал весь друпал.ру, везде кратко описано, что надо использовать views+nodereference+date+cck и 3 типа материала: кинотеатр, фильм, сеанс. Но я кикак не могу понять подробности.

Аватар пользователя VasyOK VasyOK 1 июня 2012 в 12:23

Я бы сделал поле время показа.
А вот в коком типе материала его сделать так сходу не скажу. По любому думать надо.

Аватар пользователя Павел2 Павел2 5 июня 2012 в 13:37

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

Аватар пользователя Megajack Megajack 8 июня 2012 в 13:34

Павел2, я сделал типы контента с сеансами (в них я просто указываю время сеансов и кинотеатр) для каждого из кинотеатров и залинковал их на тип контента с фильмами. При создании/редактировании поста с фильмом, я просто выбираю конкретный пост с сеансами. Не уверен что это идеальный вариант, но так как у меня всего 4 кинотеатра, то пока терпимо, хотя через месяц ручного заполнения захотелось автоматизации и упрощения Smile
По поводу сеансов в одну строку, VasyOK правильно сказал - средствами CSS. Если кроме сеансов еще что-то сползает, используйте наследование.

Аватар пользователя Orion76 Orion76 8 июня 2012 в 13:50

Ох уж этот бедный-бедный views...-((
Вообще-то это дурной тон - генерировать каждый раз заново контент, который меняется пару раз в день(ну может немного чаще)..

Аватар пользователя Megajack Megajack 8 июня 2012 в 19:04

Не понял о чем вы. Сеансы меняются раз в неделю, а для новых фильмов создаются новые посты с сеансами. Тоже самое с фильмами, один раз фильм создался и каждую следующую неделю меняются 2-3 параметра/поля.

Аватар пользователя Павел2 Павел2 8 июня 2012 в 21:41

Спасибо, Megajack. Я вроде так пробовал, уже даже забыл что получилось, бардак в голове. Но зато теперь знаю куда надо идти. Буду пробовать. Благодарю!

Аватар пользователя Orion76 Orion76 9 июня 2012 в 1:46

"Megajack" wrote:
Не понял о чем вы. Сеансы меняются раз в неделю, а для новых фильмов создаются новые посты с сеансами. Тоже самое с фильмами, один раз фильм создался и каждую следующую неделю меняются 2-3 параметра/поля.

Ну я не совсем вам, а к сведению, на реплику одного, выше высказавшегося, товарища на тему о "тяжелости" модулей views и cck..
у друпала есть функции, например один раз в неделю , для формирования некоторого блока html-вывода(блок, регион или даже страница целиком) выболнить несколько десятков запросов к БД, сформировать вывод, используюя несколько десятков файлов-шаблонов, выполнив при этом несколько десятков тысяч строк кода... и сохранить результат этой работы цкликом в базу данных... и при следующем запросе этого блока практически одним запросом к БД достать его и отдать пользователю..
И модули, такие как вьюс, при правильной настройке довольно активно это используют... поэтому не надо ругать их за тяжелость и ограничиваться в их использовании... зачастую, сниппет в десяток строк кода для вывода количества нод термина, сжирает больше ресурсов сервера, чем весь модуль вьюс, при выводе закешированного контента.

Аватар пользователя baimer baimer 15 сентября 2013 в 13:14

для своей киноафишы я создал материал "сеанс", в нем 2 словаря "кинотеатр" и "название фильма", еще использовал модуль doublefield для поля время-цена. в будущем планирую в словарь с названиями фильмов добавить поля с постером, жанром, актерами и т.д. Вывожу все через views))
вот сам сайт: http://uukino.ru/