Xpoint
   [напомнить пароль]

Разработка модуля меню в CMS

Метки: [без меток]
2007-06-20 23:04:06 [обр] Евгений[досье]

Уважаемые веб-программисты! Есть задача - продумать структуру и логику модуля меню для CMS. Пока-что продуманы такие подходы:

  1. Меню разное для каждой страницы и хранится в сериализованном виде в таблице pages

[ИМХО худший из возможных вариантов]

  1. Для меню отводится отдельная таблица в БД и пишется отдельный модуль menus, а к страницам это всё дело естественно привязывается по id. В этом варианте возможно создание пользователем в админке нового меню(например "Главное") и при добавлении новых страниц требуется указать, в какое/какие из меню добавить или нет ссылку(тогда вопрос как реализовать добавление ссылки во множество менюшек)
  2. Автоматически генерируемое меню(в зависимости от текущей страницы)

[тоже как-то недостаточно будет]

  1. Меню просто как текстовый блок, редактируемый самим пользователем.

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

спустя 20 минут [обр] Евгений[досье]
И ещё, забыл добавить, есть ещё такая проблема как реализация меню разных модулей, начиная от статей, и заканчивая каталогом. Тут главный вопрос такой:
Рассматривать ли все эти меню как отдельные компоненты каталогов или же хранить их все в одной таблице?
спустя 10 часов [обр] Thirteensmay(0/157)[досье]
Ну, у меня например, есть единая иерархия инструментов (страниц/скриптов), и меню генерится автоматически в зависимости от текущего инструмента по иерархии + отдельное меню "Избранное". Дополнительно, для гибкости, введен механизм переопределения меню для любого инструмента - просто таблица с id инструмента и соответствующим списком id инструментов меню. При построении сначала проверяется есть ли описание меню в этой таблице, если есть то строится по ней, если нет - то по иерархии.
спустя 1 час 19 минут [обр] Евгений[досье]
Интересно. Но передо мной стоит несколько другая задача - сделать добавление ЛЮБОГО меню на страницу настолько лёгким, насколько это вообще возможно(то есть я пишу для конечного пользователя). Поскольку в моей системе подразумевается, что некие навигационные элементы есть у каждого объекта с иерархической структурой, то вопрос удобного добавления меню и разумного хранения в ДБ стаёт ребром. Сейчас у меня реализовано только автоматическое меню, и то не в виде модуля, а функции класса вывода страницы.
спустя 1 день 6 часов [обр] Евгений[досье]
А может всё-таки кто-то мне ответит? Ну ладно, я терпеливо подожду.
спустя 2 дня 11 часов [обр] Степаныч(0/50)[досье]
Если нужно править меню как угодно, а не согласно структуры сайта (интерфейс получения элементов таковой в CMS есть?), то правьте html в textarea. Если же есть API работающее со структурой сайта, то на основе него можно создавать компоненты навигации (например, меню, "хлебные крошки"). Помнить стоит, что таких компонентов навигации может быть несколько и они должны отображать разные участки общей структуры. Так же, кроме элементов навигации на основе элементов структуры сайта (разделов), могут быть элементы навигации на основе айтемов публикуемых в разделах (списки статей, товаров, постраничные списки).
спустя 8 дней [обр] Евгений[досье]
Система "хлебных крошек" (breadcrums) и автоматизированное меню у меня уже есть. Меня интересовал как раз аспект меню продуктов, статей и т.д. Но мне почему-то не хочется заставлять пользователя делать всё вручную, а сделать какой-то общий механизм для всех меню (с хорошо продуманным GUI и учитывая возможность существования многих меню).
спустя 31 минуту [обр] Thirteensmay(0/157)[досье]

читайте

элементы навигации на основе айтемов

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

Powered by POEM™ Engine Copyright © 2002-2005