Создание представления, которое показывает все события, и пользователей, которые подписались на каждое событие
Вопрос
Я использую Подписаться Module, и я хочу создать представление, которое показывает все события и аватары (поле пользователя Drupal по умолчанию) пользователей, которые подписались на каждое событие.
Вот макет того, чего я пытаюсь достичь. У меня есть все, кроме аватаров до сих пор.
Решение
Делать что -то вроде этого - это толкать взгляды на его пределы. Вы хотите получить много данных и группировать их по идентификатору узла. Я не уверен, что все это возможно через интерфейс Views, хотя я считаю, что это будет возможно с помощью двигателя, который работает.
Вместо того, чтобы пытаться достичь этого довольно сложного взгляда, который может стать чем -то, это трудно изменить, вы можете сделать это довольно легко, используя больше и более простые запросы. Такое простое решение может выглядеть так:
- Вы можете создать простое представление, которое отображает всю информацию, кроме регистрации. (Заголовок узла и т. Д.)
- Запись уже имеет представление, которое будет отображать людей, которые подписались на мероприятие. С небольшим количеством модификации, вы можете заставить его показать аватар пользователей, который подписался на мероприятие. Затем вы могли бы встроить это представление в функцию предварительного обработки и/или шаблон для представления, который вы создали на шаге 1.
- Ты закончил.
А идеал Дело в том, чтобы создать все это в одном взгляде, но иногда вам приходится думать о том, что будет сравниваться с достижениями. Я сомневаюсь, что вы сможете измерить какие -либо различия в производительности, если вы не перечислите сотни, если узлы с регистрациями. Но время, которое вы сэкономите, так много, довольно много.
Это то же самое с самими взглядами, оно неэффективно, но ничего важного (для большинства сайтов), и это позволяет нам сэкономить много времени, а не кодировать запросы, функции темы и т. Д.
Обновлять:
Внедрить представление с аргументами (например, идентификатор узла) довольно просто:
$html = views_embed_view($name, $display_id, $arguments)
Или в вашем случае
$html = views_embed_view('signup_user_list', 'default', array('nid' => $nid));
Другие советы
Создайте «группу» по имени «Событие». Вам не нужно устанавливать все модули OG, лишь несколько. Вам не нужно создавать тип контента группы: вам просто нужно «событие».
Люди создают события и присоединяются к событиям. Перейдите в групповые разрешения по умолчанию и сделайте группу публичной, позволяя людям присоединиться к событию без подписки.
Возможно, вы захотите использовать модуль «Заменить строку», чтобы легко настроить некоторые язык по своему вкусу или переоценить функции темы группы. «Замена строки» проста и быстрая, но может быть слишком универсальным (это зависит от вас). Любой может помочь сделать язык присоединения, чтобы быть таким, как вы хотите. Заполнение шаблона позволит вам внести дополнительные изменения в пользовательский интерфейс.
Используйте представление и пользовательский шаблон.tpl.php! Сделанный! Это быстрый, легкий вес и легкий. Пользователи никогда не узнают, что они присоединяются к «группе», и результаты, которые вы получаете, точно соответствуют тому, что вы хотите. Проще простого!
Добавьте пользовательский ссылку на свой тип контента, если он еще не включает один, и включите его в свое мнение с отношениями.