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

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

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

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

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

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

{{HEAD}}
<body id="www-url-cz">
<!-- Main -->
<div id="main" class="box">
{{HEADER}}
{{TOPMENU}}
    <!-- Page (2 columns) -->
    <div id="page" class="box">
    <div id="page-in" class="box">
{{STRIP}}
{{CONTENT}}
{{RIGHT-COLUMN}}
    </div> <!-- /page-in -->
    </div> <!-- /page -->
{{FOOTER}}
</div> <!-- /main -->
</body>
</html>

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

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

  <!-- Content -->
        <div id="content">
        ... ... ...
        ... ... ...
        ... ... ...
        </div> <!-- /content -->

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

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

<!-- Content -->
        <div id="content">
        </div> <!-- /content -->

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

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

  <!-- Content -->
        <div id="content">
        [*content*]
        </div> <!-- /content -->

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

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

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

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

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

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

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

Заключение

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

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

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

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

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