Шаг 5. Вывод содержимого активной страницы

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

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

Каждая страница любого сайта содержит разнообразную информацию – будь то текст, фотографии, разнообразные таблицы, ссылки и многое другое. И практически на любой странице можно выделить ее основное содержимое. Так, например, на нашем сайте данная статья будет являться основным содержимым для текущей (активной) страницы.

В системе управления сайтами MODx эту основную информацию мы храним и редактируем в специальном поле "Содержимое документа". Кстати, в базе данных MODx мы найдем его в таблице "prefix_site_content" в поле "content", советую все-таки заглянуть туда разок.

Основное содержимое страницы в MODx может редактироваться как с помощью специализированных визуальных редакторов (TinyMCE, FCKEditor и других), так и в HTML коде как обычный текст. Так или иначе, в любом случае в базе данных сохраняется HTML код, который затем должен выводиться на странице.

Наш шаблон в MODx сейчас выглядит следующим образом:

  1.  
  2. {{HEAD}}
  3. <body id="www-url-cz">
  4. <!-- Main -->
  5. <div id="main" class="box">
  6. {{HEADER}}
  7. {{TOPMENU}}
  8. <!-- Page (2 columns) -->
  9. <div id="page" class="box">
  10. <div id="page-in" class="box">
  11. {{STRIP}}
  12. {{CONTENT}}
  13. {{RIGHT-COLUMN}}
  14. </div> <!-- /page-in -->
  15. </div> <!-- /page -->
  16. {{FOOTER}}
  17. </div> <!-- /main -->
  18. </body>
  19. </html>
  20.  

Обратите внимание на чанк {{CONTENT}}, именно в нем сейчас хранится неизменяемая (пока) основная часть страницы.

Откроем этот чанк и внимательно рассмотрим его содержимое. Чанк {{CONTENT}} содержит довольно большой объем HTML кода, поэтому я приведу здесь лишь его часть:

  1.  
  2. <!-- Content -->
  3. <div id="content">
  4. ... ... ...
  5. ... ... ...
  6. ... ... ...
  7. </div> <!-- /content -->
  8.  

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

Таким образом, мы можем практически безболезненно удалить этот код и сохранить измененный чанк в MODx. Однако впоследствии нам этот код еще очень даже понадобится, просто имейте это ввиду.

  1.  
  2. <!-- Content -->
  3. <div id="content">
  4. </div> <!-- /content -->
  5.  

В результате мы увидим, что на всех страницах в тех местах, где должно быть основное содержимое, - пустое место. Это, конечно, неудивительно, т.к. только что мы удалили это самое содержимое.

Изменим наш чанк и сохраним его:

  1.  
  2. <!-- Content -->
  3. <div id="content">
  4. [*content*]
  5. </div> <!-- /content -->
  6.  

И... ничего не изменилось :) Впрочем, такое уже не раз бывало в предыдущих статьях. Так что же мы сделали и, главное, для чего? Мы добавили в коде специальную конструкцию [*content*], которая будет на лету заменяться системой на содержимое активной страницы.

Ну, давайте проверим работоспособность этих изменений... Откроем любой документ в системе управления для редактирования и впишем все, что придет в голову, в поле "Содержимое документа". Сохраним документ и откроем эту страницу сайта.

Если Вы ничего не меняли в содержимом главной страницы, как и я, то при просмотре главной страницы Вы увидите стандартный текст на английском языке, сообщающий об успешной установке MODx:

Помните, мы вырезали кусок HTML кода, который был предназначен для главной страницы? Я еще сказал тогда, что он нам понадобится. Вот сейчас пришло время его использовать. Я надеюсь, вы его заботливо сохранили, да? ;) Ну а если нет, то не беда тоже, просто вернитесь повыше и скопируйте код из чанка.

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

Вот собственно и все на сегодня. Крайне просто и легко.

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

Заключение

В итоге мы научились:

  1. выделять места в шаблоне под главное содержимое страницы;
  2. использовать специальную конструкцию [*content*] для вывода информации текущей страницы.

Дальше будет еще интереснее, оставайтесь с нами и не переключайтесь во время рекламной паузы ;).

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

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

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

с 1 по 10 из 19 | Далее | Последние
new comment 20.12.2008, 11:21:41

Понял что выводит инфу в документе и все =)

new comment 20.12.2008, 13:09:29

2LEONeso: Ну так и есть :) Я же говорил, что очень простой пункт, но обойти его полностью нельзя было. На следующем шаге я думаю описать динамический вывод статей на главной странице, это, скорее всего, будет намного интереснее (кстати, приверженцев Ditto придется огорчить заранее, ничего такого использоваться не будет).

new comment 20.12.2008, 20:49:51

В будущем, будет ли урок Ditto или иной инструмент, по динамическим блокам т.е. чтоб можно было изменять любую информацию на сайте, находят непосредственно на самой странице сайта, а не в БД. Это удобно и быстро. (сам еще не пробовал так сделать)

new comment 20.12.2008, 23:55:18

2LEONeso: Я не очень понял Ваш вопрос, но вобщем все заявленные задачи по демо-сайту будут обязательно решены. Скорее всего и динамические блоки, как Вы их называете, там тоже будут присутствовать.

new comment 21.12.2008, 15:09:53

@Fuzzy я только не понял зачем выносить в чанк? Можно же его оставить в самом шаблоне и не плодить лишние элементы шаблона...

new comment 21.12.2008, 15:11:50

[ * content * ] Верхний пост про контент

new comment 21.12.2008, 19:21:44

Плжалуйста пиши посты почаще. Только что начал изучение modx, и все что здесь было наисано очень помогло.

new comment 22.12.2008, 10:33:19

2a.tuzhilkin: Ну хотя бы потому что необходимо выдерживать единый стиль = единое качество = легкая работа по внесению любых изменений в будущем.

new comment 22.12.2008, 10:34:17

2Yngwie: Отлично, приходите еще, будет еще интереснее.

new comment 25.12.2008, 14:36:19

Огромное спасибо за статьи! Я начал изучать ModX потому, что слышал много хорошего об этой CMS. Но мне сначала не понравилось то, что, как я думал, мне придётся разбираться в стандартных "сниппетах" (Wayfinder, Dito и т.д.). Не люблю копаться в чужом коде. Приятно было узнать, что есть альтернатива. Лучше уделю больше внимания API. Кроме этого, мне кажется, всегда легче учиться чему-то на примерах. Поэтому Ваши статьи считаю особенно полезными. С нетерпением жду продолжения. Небольшое пожелание: если можно, пишите код в окнах (как Вы сделали это в двух последних статьях), а не в прилагаемых файлах (как в первых статьях). Мне кажется, так намного нагляднее и понятнее. Тот, кому нужно всегда может скопировать и вставить куда надо. :-) В остальном всё просто замечательно. Так держать!

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

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

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