Шаг 3: Организация структуры документов в MODx

Прежде, чем мы перейдем к основной и, наверное, самой интересной части данного цикла статей – программированию на MODx, необходимо четко определить будущую структуру документов в системе управления.

Напомню, что входит в наши задачи:

  • Добавление статей с разделением этой информации по категориям и авторам
  • Архив статей по месяцам
  • Комментирование к статьям
  • Отдельные RSS каналы для новых статей и комментариев
  • Поиск по сайту
  • Форма обратной связи
  • Фотогалерея
  • Отдельные страницы "Об авторах", "Фотографии", "Обратная связь"
  • Блок ссылок на дружественные сайты

Исходя из этих задач и нашего дизайна, создадим следующую структуру документов в системе управления:

Структура документов в MODx

Обсудим получившуюся структуру дерева сайта. Здесь и далее деревом сайта я буду называть логически разветвляющуюся вниз структуру документов сайта от главного документа – корня сайта через контейнеры – "родительские" документы до конечных "дочерних" документов.

Страница с названием "Блог" (ID=1) у нас будет главной страницей сайта. На этой странице мы будем выводить краткие анонсы публикаций статей с ссылками на полные версии. В верхнем меню (верхние закладки) ссылка на эту страницу будет первой в списке. Так оно и есть в нашем дереве сайта, значит, пока оставляем этот документ без изменений.

"Об авторах" (ID=2) - следующая за главной страницей. На этой странице мы выведем информацию об авторах, которые ведут блог. Также оставим без изменений.

"Фотографии" (ID=3) - третья в списке ссылок верхнего меню. Здесь мы планируем сделать небольшую фотогалерею авторов. В меню данная страница тоже должна присутствовать, следовательно, оставляем без изменений.

"Обратная связь" (ID=4) - последняя страница верхнего меню. На этой странице опубликуем контактную информацию и установим форму обратной связи. Пока оставляем без изменений.

"Поиск по сайту" (ID=5) - техническая страница, на которой будут выводиться результаты поиска по сайту. Ссылку на данную страницу мы не хотим публиковать в меню. Для этого в системе управления (закладка "Общие" в настройках документа) уберем флажок "Показывать в меню". В дереве сайта этот документ будет выделен серым цветом.

"Ссылки" (ID=6) - физически не будет являться страницей на нашем сайте; это будет просто контейнер, который содержит документы-ссылки на дружественные сайты. Данный документ мы не хотим вообще показывать на сайте, поэтому уберем флажок в настройках документа "Публиковать" (закладка "Настройки страницы"). В дереве сайта этот документ будет выделен светло-серым цветом и наклонным шрифтом.

"Категории" (ID=7) - аналогично предыдущему документу является контейнером и содержит документы-названия категорий, к которым будут относиться статьи в блоге. Данный документ мы также не хотим показывать на сайте.

В результате у нас должен получиться следующий вид дерева сайта в системе управления:

Структура документов в MODx

Для начала непосредственно программирования в MODx полученной структуры документов достаточно. Впоследствии мы с Вами постепенно будем добавлять новые страницы и разделы, когда это потребуется в процессе работы.

Вместо заключения

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

Приложу все свои силы, чтобы написать следующую статью как можно быстрее.

Как обычно, буду рад любым комментариям, пожеланиям и жесткой критике ;).

С уважением,
Игорь a.k.a Fuzzy.

Предыдущие статьи из цикла:

с 1 по 10 из 16 | Далее | Последние
new comment 28.10.2008, 21:35:30

Спасибо, вам, Игорь!!! Сам "работаю" с Друпалом (motorvision.ru),но в последнее время читая ваш блог, все чаще задумываюсь перейти на MODx.

bvn
new comment 28.10.2008, 23:22:12

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

new comment 28.10.2008, 23:32:25

2xenon: Не думаю, что нужно куда-то переходить. Просто можно использовать разные системы для разных случаев, так появляется дополнительная гибкость.

2bvn: Что-ж, и до этого дойдем, я думаю. Но сначала надо завершить поставленные задачи.

new comment 30.10.2008, 16:52:07

Сегодня написал статью о том, как я делал форму обратной связи. Использовал eForm, а также JavaScript для проверки данных "на лету".

http://predvoditelev.ru/blog/archives/43

Возмож но будет полезно :)

new comment 30.10.2008, 22:29:18

2Предводителев Сергей: Отлично, хорошо описана последовательность действий, так держать ;). Если не возражаете, опубликуем также на сайте modx.ru, за Вашим авторством, разумеется.

new comment 31.10.2008, 09:43:36

2Fuzzy: Да конечно не возражаю :)

new comment 01.11.2008, 17:36:22

на самом деле решение с eForm не совсем отличное, потому что все можно сделать без создания нового сниппета:

  1. для подключения js есть параметр &jScript
  2. для примитивных проверок хватит "Текст сообщения:html:1:Должен содержать не менее 15 символов.:#EVAL return strlen($value)>=15;"

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

new comment 02.11.2008, 18:05:44

По поводу EVAL - попробуйте эту конструкцию... она не работает!

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

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

http://predvoditelev.ru/blog/archives/43#comment-95

new comment 02.11.2008, 18:19:36

Почитайте про события в eForm например eFormOnValidate.

ссылка: http://wiki.modxcms.com/index.php/Populate_eform_with_dynamic_data

Я нисколько не осуждаю ваш подход. я просто призиваю использовать уже существующие функции системы, а не плодить новые сущности.

new comment 02.11.2008, 19:26:19

2opossum: Поясните, пожалуйста, по поводу eFormOnValidate...

Что-то я не смог найти примеров её использования :(

PS И я так и не понял какие существующие функции системы не использую.

с 1 по 10 из 16 | Далее | Последние

Добавить комментарий

Для форматирования используйте синтаксис Markdown. Если вы не можете разобрать символы в рисунке, нажмите на него для автоматического обновления
Если вы не можете разобрать символы в рисунке, нажмите на него для автоматического обновления
Код безопасности: