Проектирование велосипеда (каталог фирм)

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

Аватар пользователя romandor romandor 16 февраля 2007 в 11:41

Необходимо реализовать каталог фирм (бестселлер Smile с рубрикатором, поиском, в общем, довольно стандартный. Но, поскольку такого никогда не делал, обращаюсь за советом.

Решил реализовать так:
- 1 фирма – 1 user – 1 node(к примеру, story);
- рубрикатор на двух словарях (taxonomy) – город, вид деятельности.

Из нестандартного хочется:
- организовать доступ пользователей на редактирование только к нод своих фирм.
а) как вариант можно использовать модуль Taxonomy Access Control, но тогда придётся для каждой фирмы создавать свой термин и думать, как ограничить пользователя одной нодой;
б) использовать модуль Usernode – создаёт для каждого пользователя свою ноду (которую отредактировать мне не удалось);
в) использовать модуль Node Profile (не пробовал).
г) ваш вариант.

- предусмотреть ограничение времени показа ноды (до определённой даты или интервалом)

Что посовеуете? Имеет ли смысл использовать CCK для каталога? Какие это даст преимущества?

Комментарии

Аватар пользователя clubwave.ru clubwave.ru 16 февраля 2007 в 12:38

CCK для каталога обязателен!

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

привер можешь посмотреть тут - http://clubwave.ru/Violete

насчёт разграничения прав.. ещё не пробовал.. но тоже скоро понадобится.. если у тебя получится, опиши тут подробно!

Аватар пользователя PC_M@niac PC_M@niac 16 февраля 2007 в 20:54

Я на этом форуме где-то уже отвечал по поводу подобной организации прав:
1. Создаём группу для владельцев фирм
2. Создаём каждой фирме необходимый контент
3. Назначаем контенту владельцев
4. Даём в установках прав роли фирм право на редактирование своего контента но не даём прав на создание нового:
create page content ( )
edit own page content (x)
edit page content ( )

Плюсы: всё элементарно просто и никаких дополнительных модулей.

Аватар пользователя romandor romandor 18 февраля 2007 в 12:01

Спасибо за дельный совет, я тоже сторонник минимального использования сторонних модулей.
Только одно но: необходимо контролиировать новые заявки от клиентов и создавать для них контент.
Было б хорошо чтоб они после регистрации сами смогли создать свою страницу.
Неплохо предусмотреть ограничение времени показа ноды до определённой даты или интервалом (есть ли такие модули?).
Создание логики (в т.ч. набора модулей) такой задачи интересна не только для создания каталога компаний, её можна применить и для других областей.

Возможно стоит на сайте сообщества создать раздел "Хорошей практики" для типовых постановок задач?

Аватар пользователя PC_M@niac PC_M@niac 19 февраля 2007 в 1:22

Я ещё на 4.3 юзал модуль который делает publish/unpublish ноды по расписанию (даты публикации и скрытия задаются при создании ноды), не знаю есть ли этот модуль по сей день и уже и не вспомню как назывался. Пошукай на drupal.org Wink

А в плане "Хорошей практики" предлагаю на этом сайте открыть подшивку а-ля "Cook book".

Аватар пользователя Valeratal Valeratal 12 марта 2007 в 15:54

озаботился аналогичной проблемой - решил попробовать сделать каталог кадровых агенств

Как я это вижу
Создание нового типа ноды

Название – берется из названия файла

Город - чтобы не забивать самим, создаем словарь и пусть юзеры добавляют (надо будет контролировать синонимы)

Далее поля
Сайт – URL:
e-mail
Код города:
Телефон(ы):
Факс(ы):

Какие -то дополнительные поля - например профиль деятельности и тд

Описание – текстовое поле

Для полей, нам понадобится конечно ССK.

Вот еще вопросик, я правильно понимаю, что автор ноды (то есть человек, который добавил ноды) имеет только право на ее редактирование? (ну и админ конечно)?

Еще вопрос, номер 2 - уже про вывод.

То есть, как это потом выводить для пользователя - по городу - например с помощью облака тегов Smile

Аватар пользователя Natalie Natalie 12 марта 2007 в 17:02

А вот еще такой вариант: логин пользователя = название фирмы, а профиль - соответственно страница описания фирмы. Там уже можно создавать свои поля, закладки и категори даже без ССК.
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя Valeratal Valeratal 12 марта 2007 в 21:40

логин=названию фирмы - хм, мысль неплохая, но! , получится, что юзер=фирма, то есть, юзер ведет дневник - а отображатся будет как дневник ООО "Рога и Копыта" Smile

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

Насколько я понимаю, можно выводить все ноды определенного вида.

По поводу прав на создаваемые нодыы- в админке есть права - разрешать редактирование собственных нод

Аватар пользователя romandor romandor 13 марта 2007 в 11:02

Поделюсь своими предварительными соображениями по этому вопросу.

1. По поводу типов содержимого (Content types) для каталога
Я против использования ССК в данном случае потому что:
- не хочу чтоб ВЕСЬ контент зависел от стороннего модуля, несмотря на то что он в данный момент хорошо поддерживается;
- не вижу плюсов в создании отдельных полей для телефонов, почты, изображений и т.д. (кроме как для оформления, но этим можно пожертвовать в пользу маштабируемости и гибкости).

Поэтому я выбираю создание нового типа содержимого штатными средствами Друпала (например, Company).
Для вставки изображений присмотрел два модуля: IMCE и Node Images. Оба позволяют использовать отдельный каталог для каждого пользователя и общий для этих модулей.
Для организации «1 фирма – 1 user – 1 node» - модуль Node Family, который помимо этого может пригодиться для удобства навигации, поскольку позволяет связывать типы содержимого.
Для организации ограничения/назначения времени публикации материала – модуль Sheduler. Работает, но местами непредсказуемо (есть конфликты с настройками публикации нод).

2. Навигация

-Taxonomy
Два словаря – Регион, Рубрикатор.
Пользователю, который ищет «ресторан» в «Иркутск»-е, и кликеат на один из этих терминов выводятся списки либо всех ресторанов во всех регионах, либо все организации Иркутска. Этого будем пытаться избежать с помощью:

-Views
с аргументами и пользовательскими фильтрами. Есть модуль который, судя по описанию, позволяет вынести фильтры в отдельный блок - views_filterblock (не пробовал).
Также может быть полезным модуль taxonomy_redirect (не пробовал), с помощью которого можно перенаправить термин на определённый вид.

Аватар пользователя clubwave.ru clubwave.ru 13 марта 2007 в 11:07

ну от CCK вы зря отказываетесь ИМХО.. imagefield и куча текстовых полей очень удобны для заполнения простыми пользователями, а вот огромными возможностями оформления жертвовать во имя сомнительной масштабируемости, пример которой вы так и не привели вообще никак нельзя!

А CCK в полной мере не включили в ядро исключительно потому, что в таком виде он будет быстрей развиваться.. опять же ИМХО

Аватар пользователя romandor romandor 13 марта 2007 в 17:37

Возможно, но я не хочу усложнять простого.

Потестировал views_filterblock - задумка хорошая и свиду красиво, но не работает у меня...

Аватар пользователя clubwave.ru clubwave.ru 13 марта 2007 в 22:17

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

Аватар пользователя Natalie Natalie 13 марта 2007 в 23:12

>>логин=названию фирмы - хм, мысль неплохая, но! , получится, что юзер=фирма, то есть, юзер ведет дневник - а отображатся будет как дневник ООО "Рога и Копыта" Smile

Ну так и что? Где написано, что у фирмы не может быть блога? Smile
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Переводы некоторых модулей.
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя Valeratal Valeratal 13 марта 2007 в 23:23

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

Причем желательно делать это автоматически.

+ поля профиля пользователя и поля фирмы отличаются

То есть вариант юзверь=компания удобен, если на сайте только каталог компаний.

Аватар пользователя Natalie Natalie 14 марта 2007 в 0:18

Мне показалась, что у автора темы именно такая задача. Если нет, то тогда действительно придется создавать специальную ноду под фирмы.
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
Переводы некоторых модулей.
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

Аватар пользователя romandor romandor 14 марта 2007 в 9:28

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