MODX CMS

MODX CMS

CMS 15.03.2015

MODX – это бесплатная профессиональная система управления содержимым (CMS) и фреймворк для веб-приложений. Вы получаете открытый код, админку из коробки с возможностью устанавливать и самостоятельно писать шаблоны, плагины и различные модули. Я расскажу кратко о том как этой системой пользоваться.

Обычный сайт состоит из страниц, в MODX они называются ресурсами. При создании нового ресурса по умолчанию вы задаете название страницы, заглавное изображение, описание, пункт меню и т.д. Здесь Вам обязательно нужно указать шаблон, который будет использовать Ваша страница. Список всех шаблонов указан в элементах. Шаблон – это простой код html, с помощью которого вы указываете где на вашей странице выводится оглавление, где контент и т.д. К каждой странице необходимо подключить по одному шаблону (не больше). При создание шаблона к элементам ресурса страницы вы обращаетесь по определенному названию:

Название в ресурсе MODX evo MODX Revo
Hазвание страницы [*pagetitle*] [ [*pagetitle] ]
Аннотация [*introtext*] [ [*introtext] ]
Контент [*content*] [ [*content] ]

Как видите, в версиях MODX – Evolution(1) и Revolution(2) вывод немного отличается.

Вот пример простого шаблона на mod-x evolution с выводом названия, изображения и контента:

<!DOCTYPE html>
    <html lang="ru">                  
          <head>
              {{header}}
          </head>
        <body>
            <div> class="my">
                <h1>[*pagetitle*]</h2>
                <img src="[*pageimg*]">
                <p>[*content*]</p>
            </div>
            { {footer} }
        </body>
</html>
        

Здесь вы видете вот такие страшные символы { { header } } и { { footer } } – это чанки. Чанки – это куски кода, которые мы подключаем к шаблону, а вызываются они как раз при помощи таких кавычек в MODX evo и так [ [ $ header ] ] в MODX Revo. Например, здесь в header будут подключены все необходимые файлы для отображения страницы, а в футере, например ссылки на соц. сети и обратная звязь. { {header} } и { {footer} } будут на всех страницах одинаковые, поэтому мы их выносим в отдельные чанки и будем вызывать в каждом шаблоне.

Ресурсы можно обьединять как нам угодно, групировать в группы, например у одного ресурса может быть несколько дочерних. В таких случаях на родительском ресурсе часто удобно кратко отображать информацию с дочерних ресурсов. Для вывода, например оглавления внутреннего ресурса нам необходимо написать не [ * pagetitle * ] – это будет теперешний ресурс, а [ + pagetitle + ], а для MODX Revo соответственно [ [ + pagetitle] ]. 

Порой нам необходимо вывести информацию не с дочернего ресурса, а с соседнего. Здесь нам понадобится такая деталь, как ID. Обратите внимание, что возле каждого элемента, будь то ресурс, шаблон либо чанк у нас в скобках стоит число – это и есть ID элемента. У каждого элемента свой номер, если вы видете на ресурсе ID=1, то знайте, ни на каком другом элементе, будь то чанк либо шаблон либо что-то другое, не может быть такого же ID! Так же в реализации этого нам поможет сниппет Ditto. Снипеты – это чистый php код, который обеспечивает динамическую логику. Вот прмиер вызова снипета:

[[ Ditto?  & tpl=`smth`&startID=`5`&display=`3`& dateSource=`pub_date`& dateFormat=`%d.%m.%Y`& sortBy=`pub_date`]]

Как Вы поняли, вызываем мы снипет Ditto для вывода содержимого соседних ресурсов.

 & tpl=`smth` – указывает на чанк-обработчик даного запроса. В чанке smth указано что конкретно выводить и в каком виде.

& startID=`5`– начинаем выводить со всех ресурсов у которых ID=5 (не включая их дочерние ресурсы!)
&dateSource=`pub_date`&dateFormat=`%d.%m.%Y`& sortBy=`pub_date` – сортируем по дате публикации и указываем формат даты.

Так же ID очень удобно использовать, когда нам на родительском элементе нужно вывести информацию с дочерних и ссылки для перехода на них:

<a href="[~[+id+]~]">Ссылка на [+pagetitle+]</a>

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

Как Вы видете в списке много снипетов уже из коробки, так что я небуду описывать как работать с каждым из них. Это с легкостью можно найти) А вызываться они в шаблонах либо чанках будут абсолютно одинаково – в MODX evo [ [ Снипет? параметры ] ] или [ ! Снипет? параметры ], а в MODX Revo –  [ [ ! Снипет? параметры ] ].

Так же в меню админки mod-x вы можете увидеть еще плагины и модули. Плагины – это интерактивные PHP-скрипты, запускающиеся при наступлении события, которое они отслеживают. Модуль – это приложение, основанное на архитектуре MODX и расширяющее возможности системы управления. Модули Вы можете устанавливать самостоятельно, их для MODX очень много и реализуют они совершенно разные функции, а устанавливаются и используются в принципе так же как и в других CMS системах.

Что я еще не рассказала, так это TV-параметры. Они нужны когда у Вас не хватает стандартных полей ввода на ресурсе, например на ресурсе есть одно поле для картинки, а Вам нужно вывести две. Тогда создаем TV-параметр, с названием, например img2, выбирем шаблон, к которому будет прикреплен наш параметр. Обращаться к img2 так же как и к остальным элементам ресурса, а именно [* img2 *] либо [ [* img2] ].

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

Поделиться

Отправить ответ

avatar
  Subscribe  
Notify of