Всем привет.Недавно присоединился к сообществу drupal.как всегда поставили задачу,изучай
Много перечитал всего,вроде понятно по работе модулей,но в тоже время каша при релизации.Прошу просто дать направление и где я не прав.
Задача: есть набор информации по организациям - наименование,адрес,оборудование,настройки оборудования и т.д., стандартные меню - главная,контакты,новости... характеристики оборудования.
как я вижу реализацию (в этом и загвоздка возникла)- меню реализовано через таксономию,создан словарь "управление" ,в нем часть меню ссылки,часть другие словари. создан словарь терминов "организации",данные для терминов заносятся в материалах,отображение во вьюс,панели.Поля сделаны либо просто текст,либо ссылка на термин ввиде текста,например адрес= термин_город,термин_улица,термин_дом
отсюда вопросы:
1.правильно ли я задал направление?
2. в данной структуре реализация меню через таксономию целесообразна или без разницы? (влияние на связи в дальнейшем,не будет ли кривой связки материалов,страниц и т.д.)
3.Все данные по организациям будут хранится в материалах?грубо говоря 60организаций (терминов) = 60 материалам?
4.Правильно ли решение заведение адреса через термины таксономии - 3 отдельных словаря: город,улица,дом. У меня проблема с отображением во вьюсах.Может делать простым текстовым полем?
5.Как сделать один вьюс на отображение в нормальном виде материала организации и привязать как шаблон ко всем терминам?Т.е. при переходе на термин,вьюс обрабатывает материал принадлежащий этому термину и отображает,не плодить же 60 вьюсов !
6. чем лучше отображать поля материала? чтобы например Адрес в одну строку ,расположить как мне удобно.я не касаюсь пока тимизации,пытаюсь сделать модулями,темами,чтобы работал функционал,красота не важна). Будет нужна и выборка в дальнейшем,но это я уже сам.
п.с. список модулей могу предоставить,основные модули поставлены- views,panel,pade manager,ctools и т.д. для связок,отображения,ограничения доступа и т.п.
Комментарии
Если организаций - небольшое и конечное количество (несколько сотен) то можно для их хранения использовать Словарь таксономии (организации- термины).
Если кол-во организаций будет стремиться к бесконечности, тогда лучше использовать для их хранения Ноды.
Все остальные данные "привязываете" к организации полями-ссылками (На термины такономии, на другие материалы )
Для вставки в термин или материал ссылки на другой материал используется модуль https://www.drupal.org/project/entityreference
Для адреса (город, улица) практичнее использовать ОДИН многоуровневый словарь.
Например
Уровень 1 - города
Уровень 2 - улицы
Получится что-то типа такого:
- ГОРОД 1
-- Улица 1
-- Улица 2
-- Улица 3
-- Улица N
- ГОРОД 2
-- Улица 1
-- Улица 2
-- Улица 3
-- Улица N
Для удобства ввода данных из многоуровневых словарей : https://www.drupal.org/project/shs
Для номера дома, корпус и т.п. используйте простые числовые поля.
По views почитайте про "контекстные фильтры"(Contextual filters) и "Связи" (Relationship)..
В интернете об этом информации куча и на русском и на английском.
Это позволит Вам например вывести вьюсом список оборудования конкретной организции,
или вывести список организаций и информацию из полей, связанных с организацией сущностей(материалов, терминов)
спасибо за направление) уже стало понятнее,буду пробовать.Список организаций я понял как делать вьюсом и в дальнейшем сделаю выборку по полям: адресу,наименованию,что-то наподобии поиска ). Мне пока не совсем понятно было как к термину с определенным адресом привязать материал(тоже со своим адресом) обработав его определенным образом для отображения. Или лучше сразу создавать материал с нужным оформлением?например используя панели.
просто у организации есть данные общие и какие-то настройки оборудования и т.д. логичней сделать 2 блока ,один из которых скрывать для определенных юзеров. буду думать )
Если установить модуль Display Suite (http://drupal.org/project/ds) то для каждго типа материала можно сделать любое видов отображения (вкладка в настроках - Управление отображением ), каждый со своим набором полей (из имеющихся).
А потом просто как-то "организовать" логику вывода нужного вида отображения в зависимости от каких-то параметров (урл страницы, роль пользователя и т.п.).
Инструментов для этого предостаточно.
Кстати, мне почему-то кажется использование Panels для Вашей задачи - перебор.
Display Suite (http://drupal.org/project/ds) будет достаточно:
- Вывод полей ноды по выбранному шаблону(1 столбец, 2 столбца и т.п.)
- Если добавить модуль Field Group, можно разнести поля материала по вкладкам, сделать сворачивающиеся блоки с полями и т.п.
- ЛЮбое кол-во режимов отображения материала.
- Можно дабвить псевдо-поля, выводящие в теле материала вьюсы блоки .
и многое-многое другое.
А зачем Вам улицы в виде терминов?
У Вас будет какая-то структура по улицам?
Если на сайте будут искать типы оборудования - то вот для типов оборудования и надо создавать словари.
А улицы - можно просто поле в типе материала Организация.
И потом просто сформировать, как эта Организация будет отображаться (там куча полей: Город, улица, № дома, офис)
Условно говоря: то, что посетитель ищет, - то будет термином словаря. Иерархию словаря надо продумать.
А ГДЕ лежит, находится, размещается, продается товар... - то можно в поле загнать.
Но вот город точно нужно сделать Словарь. Это потом может пригодиться. и тогда в поле Организации Город выбирать нужный город (термин).
Организацию можно делать словарем, а можно не делать.
по адресу предполагалась сортировка,но я так понимаю это можно делать и по содержимому поля?! отбор по городу,улице.вот последнее предложение с модулями мне понравилось,так бы и не знал про эти модули,пробую теперь все оформить.
Оборудование как раз не так важно в словарях,его не много. Но предполагается что в меню будет раздел оборудование, с подразделами и там будет его описание,но т.к. его мало,не вижу смысла таксономией делать его,ну разве что ссылкой оформить,чтобы пользователь мог нажать прям в организации и почитать про оборудование.
А по организациям решил сделать в материале две вкладки: одна с описанием организации -название,адрес,оборудование,а во второй -сетевые настройки,подключенные системы.
Вообще немного непонятно когда таксономия все же уместна.Вот на примерах с магазинами,там как-то все понятно,а вот в моем случае даже не знаю что лучше.По адресам например...у организации будет жесткая привязка город-улица-дом...в дальнейшем малая вероятность что будет организация с таким же адресом...хотя бы город-улица.
Всё равно непонятно, ЧТО посетитель будет у Вас на сайте искать: организации или оборудование?
Сортировка по полю сделать можно.
Вы посмотрите побольше роликов про организацию каталогов на Друпал с помощью вьюсов. Таких обучающих роликов много в Сети.
Тогда у Вас в голове немножко уложится.
Потому что если это Ваш первый проект на Друпале, - то у Вас в голове сейчас полная каша.
Так вот ВНАЧАЛЕ надо понять, что Вы хотите сделать, с какой целью, что из этого должно получиться, - и только потом продумывать типы материалов, их сортировку, структуру сайта. Пока что из описанного - я вообще не понимаю, что это будет.
Вы хотя бы найдите сайт с приблизительно такой же идеей, как у Вас. И посмотрите на их структуру, сортировку.
После этого - думайте, что Вам надо сделать так же, а что поменять.
Большой сайт на Друпале надо сначала хорошенько продумать.
И кстати, не исключаю, что на этом сайте таксономия вообще не пригодится. Во всяком случае - из описания непонятно, неочевидно.
это будет ресурс для клиентов со справочной информацией,новостями,контактами для связи. А так же с закрытым разделом своеобразной БД по ним для ограниченного круга лиц. Так вот закрытая часть мне важнее,с другими разделами понятней,ленту новостей сделал,остальное простыми страничками.
А по организациям,их больше 50,надо организовать хранение данных по ним: название,адрес,еще какие-то данные,отдельно по настройкам оборудования данные. ну и потом либо отдельным блоком,либо страничкой организовать выборку по некоторым данным. Думаю вьюсом просто отбирать.
п.с. на текущий момент попробовал создать материал,сгруппировать данные в нем. в термине (организация) создал поле и привязал материал к нему. Каталогом сделал в адресе только город,остальное ввожу в текстовом поле.В меню организации (термин) вьюсом формируется список организаций ,постранично листать можно. Думаю убрать потом и сделать фильтрами отбор,например по городу,как в уроках показано.
я вот задумался теперь,а стоило ли вообще таксономию использовать и организации делать каталогом. Когда создавал новости и делал ленту анонсов,с вьюсом было все понятно и решилось просто. а вот с терминами не задалось).
Насколько я понимаю, в данном случае не надо делать Организацию термином.
Организация - тип материала. С некоторой стопкой полей.
Поле "Город" можно сделать ссылкой на термин. И тогда будет словарь таксономии "Город".
Это может пригодиться, если человек захочет еще увидеть другие Организации в этом городе - тогда внизу можно сделать ссылку на термин "Город".
И можно будет сделать типа "Облако тегов" - Города.
А поле "Адрес" можно делать просто текстовая строка.
Оборудование - тоже тип материала. Настройки оборудования - по полям разносятся.
А потом с помощью модуля, который Вам уже посоветовал Орион76, https://www.drupal.org/project/entityreference
установить связи между Организацией <-> Оборудованием с помощью соответствующих полей. Тип поля будет Entity Reference.
Это удобно заполнять и потом видеть перечень оборудования в какой-то ноде "Супер-пупер-фирма" (тип материала "Организация").
И наоборот - в ноде "Вот такая замечательная машина-прибамбасина" (тип материала "Оборудование") - перечень организаций, которые его поставляют.
Вот сделайте так. И разберитесь с модулем "entityreference".
Это решит 80 или даже 90 процентов Ваших проблем.
А дальше можете потихоньку еще и Вьюсы разные настраивать.
Про ЕнтитиРеференс на русском языке почитать тут. Там есть ссылка на пример.
А его более простой аналог (возможно, Вам даже лучше подойдет) - NodeReference. О его настройке на русском тут.
спасибо огромное.каша в голове устаканилась)) общаясь с вами,пришел к такому же выводу.Спасибо,хороших выходных.
Как минимум в 2-х случаях.
1.Древовидный скелет-структура раздела сайта:
Категория 1
- Подкатегория 1
-- Подкатегория 11
-- Подкатегория 12
- Подкатегория 2
- Подкатегория 3
Категория 2
- Подкатегория 1
-- Подкатегория 11
-- Подкатегория 12
- Подкатегория 2
- Подкатегория 3
Такая структура позволяет пользователю в 2-3 клика найти необходимый раздел "нижнего уровня" из нескольких тысяч разделов.
2.Для хранения списка значений, использующих в других материала, и возможности фильтрации(выборок) материалов по этим значениям.
Например у нас есть список некоторой продукции.
У каждого "продукта" есть два свойства:
- Материал изготовления,
- Цвет
Просто делаем 2 словаря таксономии :
- Материал изготовления,
- Цвет
Заполняем их необходимыми значениями..
Добавляем поля этих словарей к материалу "продукт"
и все..
При добавлении материала просто выбираем нужные начения из списка,
а так же появляется возможность фильтровать списки "продуктов" по значениям свойств на страницах views/