РЕШЕНО | Как сделать сайт-фотоальбом для нескольких пользователей

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

Аватар пользователя denserdv denserdv 7 февраля 2014 в 16:35

Здравствуйте!

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

Собственно, сложность для меня вот в чем - если я создаю тип материала, то могу вывесть вьюсой как надо. Но пользователь вынужден загружать по одной фотографии (т.е. на каждую фотографию создает новый материал) - неудобно пользователю.
Может есть какой-то модуль для таких "общественных фотоальбомов" - чтобы все могли загружать, но удалять только свои фотки?

Решение:
подошел модуль https://drupal.org/project/bulk_file_nodes - ниже в комментах его описание (http://www.drupal.ru/node/107515#comment-598859).

Комментарии

Аватар пользователя whiesam whiesam 7 февраля 2014 в 21:48

Может кто и подскажет. Но данная тема тут была не однократно. И ответа насколько я помню, не было.
Могу предложить в ноду загружать сколько влезет файлов, но оперировать именно файлами а не нодами. Приделать кнопки типа: удалить (которая на саомм деле относится к файлу)

Аватар пользователя roman-yrv roman-yrv 9 февраля 2014 в 18:18

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

Аватар пользователя whiesam whiesam 9 февраля 2014 в 18:33

"roman-yrv" wrote:
А почему не сделать так, чтобы данные хранились по принципу "одна нода - одна фотография" ?
В этом случае впоследствии можно будет к фотке привязать и лайки, и комментарии, и многое другое.
Для тем можно использовать таксономию.

Я так понял тут стояла задача удобной загрузки большого кол-ва фоток. Ясен пень что лучше делать 1нода-1фотка, но вот загружать это дело...

Аватар пользователя roman-yrv roman-yrv 9 февраля 2014 в 18:59

whiesam wrote:
Я так понял тут стояла задача удобной загрузки большого кол-ва фоток. Ясен пень что лучше делать 1нода-1фотка, но вот загружать это дело...

Думаю, тут руками надо будет всё делать.

А перед этим хорошо продумать и точно определиться, каким образом эта загрузка будет вообще делаться.
Например, что делать с названием фотки.
Или можно ли вводить одним потоком фотки с разными тэгами.

Потом берешь, например, вот это решение http://www.plupload.com/ и внедряешь его у себя на сайте.
Там есть свои events, с их помощью аяксом создаешь ноды с фотками и всё.

Аватар пользователя whiesam whiesam 9 февраля 2014 в 20:07

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

"roman-yrv" wrote:
Потом берешь, например, вот это решение http://www.plupload.com/ и внедряешь его у себя на сайте.

Ооо, класс, даже модуль для дру есть. https://drupal.org/project/plupload

Аватар пользователя roman-yrv roman-yrv 9 февраля 2014 в 20:20

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

Думаю, в сумме проще и легче будет взять какое-нибудь JQuery-решение и интегрировать его на сайт. Документация там, как правило, есть.

Но опять же, этот вариант будет работать, если человек твердо решил это делать и у него, в случае чего, найдется время и(или) деньги, чтобы это всё реализовать.

Аватар пользователя denserdv denserdv 9 февраля 2014 в 22:15

Да, фотка == нода - это было бы лучше всего..

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

Аватар пользователя roman-yrv roman-yrv 9 февраля 2014 в 22:28

Так а что там придумывать ?

Берете готовое решение на JQuery, которое может подгружать несколько фоток.

У этого решения должно вызываться свое событие (event), когда очередная фотка загрузится.

В этом событии будет в том числе и имя загруженного файла.

Далее, на это событие вешаете свою AJAX-функцию, которая будет принимать параметром название файла и создавать ноду, у которой файл такой-то.

Это описание работы в общих чертах.

Аватар пользователя denserdv denserdv 9 февраля 2014 в 22:40

Кстати, как сформулировался вопрос, поиск дал варианты. Вот здесь обсуждается подобная тема:
http://www.drupal.ru/node/100966

и как варианты решений там предлагаются (кроме прочего обсуждения) вот такие модули:
https://drupal.org/project/node_gallery
https://drupal.org/project/bulk_file_nodes
https://drupal.org/project/bulk_media_upload

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

Аватар пользователя denserdv denserdv 11 февраля 2014 в 14:28

По поводу модуля https://drupal.org/project/bulk_file_nodes
- работает интересно - после установки модуля ничего внешне не изменилось Smile
Надо создать тип материала (или взять существующий), в этом материале создать поле Изображение. Сохранить. Затем в настройках этого типа материала (первая вкладка Правка) в настройке
Bulk Photo Node Settings
выбрать созданное поле Изображение. Сохранить.

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

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

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

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

Аватар пользователя denserdv denserdv 11 февраля 2014 в 14:56

А с этим модулем https://drupal.org/project/node_gallery что-то не пошло у меня.

Во-первых, как я понял, надо создавать отдельно галереи и отдельно картинки, выбирая при создании в какую галерею их относить.
Во-вторых - потребовалось поставить еще два модуля, которых в моей сборке небыло и все подглючивало - в типах материала "галерея" и "галерея items" - которые создал сам модуль появились разные дополнительные табы типа "сортировка материалов", "управления материалами" и т.п. - при переходе на них - белый экран.
Вывести галерею с картинками - так сходу - не удалось. Делаю выбор в пользу https://drupal.org/project/bulk_file_nodes Smile

Аватар пользователя roman-yrv roman-yrv 11 февраля 2014 в 15:34

Так это Вы планируете делать проект, чтобы в дальнейшем его развивать ?
Или это будет сайт для внутреннего употребления.

Если первое, то тут еще подумайте, как будете всё это интегрировать с нормальным дизайном. Чтобы с этим потом смогли работать и обычные посетители сайта.

Аватар пользователя denserdv denserdv 18 февраля 2014 в 13:19

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

МОжет какие еще идеи есть?

Аватар пользователя whiesam whiesam 18 февраля 2014 в 19:05

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

Выход есть такой ставим модуль Entityreference prepopulate, включаем его в поле с таксой, ставим настройку что если поле заполнено сразу то Hide field + Edit, то есть и при редактировании будет скрыто. Убираем кнопарь добавить фотографии. Добавляем ссылку в каждый альбом типа "Добавить в этот альбом фотки" и урлы типа: site.ru/add/foto?field_foto=12 (ну смысл понятен, 12-это tid таксы, тем более там есть доки, в синтаксисе я мог ошибиться). Этот модуль get запросом заполняет сразу поле и скрывает его от редактирования если нужно. Только вот тут есть одна трабла, её надо протестить: я не знаю как это будет работать с модулем bulk_file_nodes, так как у него настройки поля идут только на 2й странице...

Аватар пользователя denserdv denserdv 18 февраля 2014 в 19:21

whiesam wrote:
Чёт я так и не догнал, что будет если поле обязательное и выставить в общих настройках?

- на второй странице заливки изображений, страница поделена на две части - в левой всписок всех заливаемых фоток и у каждой обязательное поле "название", поле описание и выбор каталога.
А в правой части - общие настройки сразу для всех фоток.
Так вот, если в материале поле Каталог сделать обязательным, то оно становится обязательным не в правой части (где общие настройки), а в левой - у каждой фотографии придется выбирать каталог.
Только что пробовал заливать альбомы по 80 фоток - ес-но неудобно каждой выставлять одно и тоже.

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