РЕШЕНО: Создание динамической фотогалереи на views

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

Аватар пользователя W_A_S_A_B_I W_A_S_A_B_I 20 мая 2014 в 0:54

Прошу помочь решить проблему. Дайте рабочую инструкцию.
Нужно создать галерею фотографий. Есть два типа материалов: фотография и фотоальбом.
Создаем альбом. Создаем фотографии, которые как-то надо прикрепить к фотоальбому.
Следующее: нужно создать вьюв(представление) для отображения альбомов, при клике на которые должно отображаться представление с фотографиями принадлежащими данному альбому, а не другим!!! Цель, сделать так, чтобы не создавать каждый раз новое представление для отображения фотографий альбома, а чтобы вьювсов (представлений) было всего два!!! Я слышал, что это делается при помощи таксономии,но ничего вразумительного не нашел, может есть и другие способы. Но все таки желательно чтобы с минмальным количеством плагинов, в идеале вообще views и taxonomy, без referense.
И просьба, если уж знаете как это сделать и решили написать гайд, то пишите по пунктам как для идиота, потому как новичку сложно понять ваши выкрутасы, а судя по комментам здесь на сайте больше вопросов , чем нормальных внятных ответов.

Пытался разобраться в следующей статье, но видимо не хватает знаний
http://aszh.com/post/17

Заранее спасибо.


РЕШЕНИЕ:

Разобрался в статье http://aszh.com/post/17
Но в силу того что там тоже всё написано для "PRO", здесь распишу подробнее.

Создание фото-галереи при помощи Colorbox и Views 3

Задача: минимальными усилиями собрать фотогалерею.

Необходимые модули:
Drupal 7.15
Colorbox 1.3
Entity Reference 1.0-rc5
Views 3.5

Функционал галереи:
Два типа материала — фотоальбом и фото. Фото при загрузке прикрепляется к определённому альбому.

Устанавливаем и включаем модуль Entity Reference
Для его работы необходимо включить модуль Entity API. Также нужно будет включить модуль Entity Reference Behavior Example

Создаём тип материала "Фотоальбом"

Делаем новый тип материала photoalbum «фотоальбом». Стандартный тип материала, только добавим ещё одно поле fileld_album_cover типа image «Обложка». Настраиваем обрезку загруженной обложки до 150×150 (admin/structure/types/manage/photoalbum/fields/field_album_cover). Это, конечно не обязательно, но, на мой взгляд, эстетичнее, что ли.

Создаём тип материала "Фотография"

Делаем новый тип материала photo «фото». Добавляем поля фото field_photo_photo это будет поле, отвечающее за саму фотографию. Сделаем его типа image. Обрезку настройте под себя, но я бы рекомендовал настроить обрезку до 800×600.
Дальше нам надо сделать ссылку на альбом. Делаем поле field_photo_album «Альбом» типа Entity Reference, виджет "выбор из списка"

Сохраняем.

В настройках поля тип материала — материал, режим views: filter by an entity reference view и прямо оттуда у нас будет ссылка на создание views.

Но сохранить у нас не получится, потому что специальное представление (т.е. view) не создано.
Поэтому идём создавать.

--------------------------------------------------------
Делаем представление "Фотоальбом"

Формат:
1)Неформатированный список | настройки
2)Содержимое | анонс

Критерии фильтрации:
1)Опубликовано (Да)
2)Выбираем добавить: Содержимое:тип, затем тип (материала): фотоальбом

Сортировка
Заголовок: по убыванию

Добавляем новый display (тип вывода) Entity Reference (это важно, без него вьюшка не подхватится виджетом)

ФОРМАТ
Формат:Entity Reference list | Настройки (здесь в настройках обязательно выбираем Search fields*:фото. Иначе представление не сохранится)
Показать:Inline fields | Настройки

FIELDS
Содержимое: Заголовок
Содержимое: фото (фото)


Еще в display - Page в PAGE SETTINGS путь: /album

Покажу вам скрины обоих дисплеев (Page & Entity Reference):


Сохраняем и указываем эту вьюшку в предыдущем шаге.

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

--------------------------------------------------------
Список фотоальбомов пользователя:

Делаем views "my_photoalbums"

Формат — сетка, по 2 или 3 столбца (группировка по полю «альбом»)
Показывать поля
Это нам даст страницу со списком альбомов текущего пользователя. На странице будут обложки альбомов с названиями этих альбомов. Щелчок по названию или картинке будет вести в альбом.

Поля:
Содержимое: nid (сразу исключаем из вывода)
Содержимое: заголовок (убираем вывод метки. Перезаписываем путь ссылки на album/[nid])
Содержимое: обложка (аналогично настройкам заголовка)

Формат

Фильтры

Опубликовано
Тип — фотоальбом
Текущий пользователь

Вот скрин дисплея Page:

--------------------------------------------------------
Выводим альбом (view_photoalbums)

Тип дисплея — страница
Формат — сетка, 2-3 столбца

Поля:

Заголовок (исключён из вывода)
Фото (вывод через colorbox, группировка в галерею по желанию)
Альбом (указываем поле field_photo_album)

Настройки страницы

Путь — /album/%

Контекстные фильтры
Содержимое: альбом (Если значения фильтра НЕТ в URL-вывести текст ничего не найдено, проверка — тип материала — фотоальбом)

Что это нам дало

На выводе фотоальбомов (my_photoalbums) мы сформировали путь album/[nid], где nid — указатель на альбом. Вьюшка view_photoalbums оперирует как раз этим путём, для этого мы указывали путь albums/%
Контекстный фильтр берёт из URL id альбома и отфильтровывает по этому альбому.

Комментарии

Аватар пользователя ihappy ihappy 20 мая 2014 в 1:21

Зачем два типа материалов?
Почему нода не может быть фотогалереей, где хоть миллион фотографий?
Вьюха тут нужна, только чтобы вывести тизеры фотогалереи и не более. В ноде, выводишь фотки, хоть colorbox, хоть gallery formater и другие.
Зачем сложности городить?

Аватар пользователя W_A_S_A_B_I W_A_S_A_B_I 20 мая 2014 в 12:02

iHappy wrote:
Зачем два типа материалов?
Почему нода не может быть фотогалереей, где хоть миллион фотографий?
Вьюха тут нужна, только чтобы вывести тизеры фотогалереи и не более. В ноде, выводишь фотки, хоть colorbox, хоть gallery formater и другие.
Зачем сложности городить?

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

Аватар пользователя ihappy ihappy 20 мая 2014 в 17:15

"W_A_S_A_B_I" wrote:
Дело в том, что мне нужно темизировать галерею.

Ваабще без проблем.
есть модуль для добавления полям классы css.

"W_A_S_A_B_I" wrote:
Нужно чтобы выводилась фотка обернутая в div с определенным классом, также чтобы выводились поля материала "автор" и "год".

В чем проблема? Дата публикации и автор ноды уже не катит?

"W_A_S_A_B_I" wrote:
Для этого всего скрипт написан чтобы с эффектами отображалось.

Геморой сам свой решай.

"W_A_S_A_B_I" wrote:
А вот как редактировать вывод в ноде ... я не знаю.

Ты старался?

Аватар пользователя W_A_S_A_B_I W_A_S_A_B_I 20 мая 2014 в 22:51

iHappy wrote:
"W_A_S_A_B_I" wrote:
Дело в том, что мне нужно темизировать галерею.

Ваабще без проблем.
есть модуль для добавления полям классы css.

"W_A_S_A_B_I" wrote:
Нужно чтобы выводилась фотка обернутая в div с определенным классом, также чтобы выводились поля материала "автор" и "год".

В чем проблема? Дата публикации и автор ноды уже не катит?

"W_A_S_A_B_I" wrote:
Для этого всего скрипт написан чтобы с эффектами отображалось.

Геморой сам свой решай.

"W_A_S_A_B_I" wrote:
А вот как редактировать вывод в ноде ... я не знаю.

Ты старался?

Что за модуль?

Аватар пользователя W_A_S_A_B_I W_A_S_A_B_I 21 мая 2014 в 10:36

iHappy wrote:
"W_A_S_A_B_I" wrote:
Дело в том, что мне нужно темизировать галерею.

Ваабще без проблем.
есть модуль для добавления полям классы css.

Что за модуль?

Аватар пользователя W_A_S_A_B_I W_A_S_A_B_I 23 мая 2014 в 17:25

kosHta wrote:
"W_A_S_A_B_I" wrote:
сложно понять ваши выкрутасы

Уэлком то Джоомла.

Джумла лесом. Как начал работать с drupal, так про джумлу и вспоминать не хочу.

Аватар пользователя ihappy ihappy 28 мая 2014 в 14:30

"W_A_S_A_B_I" wrote:
Джумла лесом. Как начал работать с drupal, так про джумлу и вспоминать не хочу.

Тогда учись сам решать элементарные вещи.

Аватар пользователя W_A_S_A_B_I W_A_S_A_B_I 28 мая 2014 в 16:28

iHappy wrote:
"W_A_S_A_B_I" wrote:
Джумла лесом. Как начал работать с drupal, так про джумлу и вспоминать не хочу.

Тогда учись сам решать элементарные вещи.

Научился.

Аватар пользователя W_A_S_A_B_I W_A_S_A_B_I 10 ноября 2015 в 11:49

Разобрался в статье http://aszh.com/post/17
Но в силу того что там тоже всё написано для "PRO", здесь распишу подробнее.

Создание фото-галереи при помощи Colorbox и Views 3

Задача: минимальными усилиями собрать фотогалерею.

Необходимые модули:
Drupal 7.15
Colorbox 1.3
Entity Reference 1.0-rc5
Views 3.5

Функционал галереи:
Два типа материала — фотоальбом и фото. Фото при загрузке прикрепляется к определённому альбому.

Устанавливаем и включаем модуль Entity Reference
Для его работы необходимо включить модуль Entity API. Также нужно будет включить модуль Entity Reference Behavior Example

Создаём тип материала "Фотоальбом"

Делаем новый тип материала photoalbum «фотоальбом». Стандартный тип материала, только добавим ещё одно поле fileld_album_cover типа image «Обложка». Настраиваем обрезку загруженной обложки до 150×150 (admin/structure/types/manage/photoalbum/fields/field_album_cover). Это, конечно не обязательно, но, на мой взгляд, эстетичнее, что ли.

Создаём тип материала "Фотография"

Делаем новый тип материала photo «фото». Добавляем поля фото field_photo_photo это будет поле, отвечающее за саму фотографию. Сделаем его типа image. Обрезку настройте под себя, но я бы рекомендовал настроить обрезку до 800×600.
Дальше нам надо сделать ссылку на альбом. Делаем поле field_photo_album «Альбом» типа Entity Reference, виджет "выбор из списка"

Сохраняем.

В настройках поля тип материала — материал, режим views: filter by an entity reference view и прямо оттуда у нас будет ссылка на создание views.

Но сохранить у нас не получится, потому что специальное представление (т.е. view) не создано.
Поэтому идём создавать.

--------------------------------------------------------
Делаем представление "Фотоальбом"

Формат:
1)Неформатированный список | настройки
2)Содержимое | анонс

Критерии фильтрации:
1)Опубликовано (Да)
2)Выбираем Содержимое:тип, затем тип (материала): фотоальбом

Сортировка
Заголовок: по убыванию

Добавляем новый display (тип вывода) Entity Reference (это важно, без него вьюшка не подхватится виджетом)

ФОРМАТ
Формат:Entity Reference list | Настройки (здесь в настройках обязательно выбираем Search fields*:фото. Иначе представление не сохранится)
Показать:Inline fields | Настройки

FIELDS
Содержимое: Заголовок
Содержимое: фото (фото)


Еще в display - Page в PAGE SETTINGS путь: /album

Покажу вам скрины обоих дисплеев (Page & Entity Reference):


Сохраняем и указываем эту вьюшку в предыдущем шаге.

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

--------------------------------------------------------
Список фотоальбомов пользователя:

Делаем views "my_photoalbums"

Формат — сетка, по 2 или 3 столбца (группировка по полю «альбом»)
Показывать поля
Это нам даст страницу со списком альбомов текущего пользователя. На странице будут обложки альбомов с названиями этих альбомов. Щелчок по названию или картинке будет вести в альбом.

Поля:
Содержимое: nid (сразу исключаем из вывода)
Содержимое: заголовок (убираем вывод метки. Перезаписываем путь ссылки на album/[nid])
Содержимое: обложка (аналогично настройкам заголовка)

Формат

Фильтры

Опубликовано
Тип — фотоальбом
Текущий пользователь

Вот скрин дисплея Page:

--------------------------------------------------------
Выводим альбом (view_photoalbums)

Тип дисплея — страница
Формат — сетка, 2-3 столбца

Поля:

Заголовок (исключён из вывода)
Фото (вывод через colorbox, группировка в галерею по желанию)
Альбом (указываем поле field_photo_album)

Настройки страницы

Путь — /album/%

Контекстные фильтры
Содержимое: альбом (Если значения фильтра НЕТ в URL-вывести текст ничего не найдено, проверка — тип материала — фотоальбом)

Что это нам дало

На выводе фотоальбомов (my_photoalbums) мы сформировали путь album/[nid], где nid — указатель на альбом. Вьюшка view_photoalbums оперирует как раз этим путём, для этого мы указывали путь albums/%
Контекстный фильтр берёт из URL id альбома и отфильтровывает по этому альбому.

Аватар пользователя Psde Psde 3 июля 2017 в 15:12

Зделал по статье альбомы, /album/% по этому адресу пишет 400 Bad Request. В чем может быть ошибка? Или я неправильный адрес смотрю? По адресу /my-photoalbums показываются альбомы но у них нет ссылки на фотки. В добавлении фотографий есть списки где выбирается альбом.Colorbox неустановил.