MODx Revolution: шпаргалка для новичка
Добрый день, дорогие читатели! Посмотрела я сегодня на первые статьи рубрики о MODx и подумала: «да, Оля, лихо ты стартанула!» Говорила, что создать сайт на MODx — проще простого, а сама завалила новичков всякими «бекендами», «фронтендами», «сниппетами» и другими непонятными словами. Что ж, буду исправляться Тем более, что хорошо помню, как эти термины по-началу вводили меня в тихий ужас и полный ступор.
Если вы только начинаете работу с MODx Revolution, уверена, вам пригодится моя шпаргалка.
Бекенд — это «админка сайта», она доступна только пользователям с определенными правами (по умолчанию только Администратору сайта).
Фронтенд — внешняя часть сайта, его страницы. По умолчанию фронтенд доступен всем посетителям и поисковым системам. Но при желании часть страниц (или все страницы) так же можно закрыть от лишних глаз и роботов.
Фронтенд сайта состоит из документов. Проще говоря, документы (или «ресурсы») — это страницы сайта. В MODx Revo есть несколько типов документов: HTML, XML, javascript, RSS и так далее. Кроме того, можно создавать свои типы документов.
За внешний вид документов (ресурсов) отвечают шаблоны. Это HTML, XML, javascript код или просто текст. Каждому ресурсу можно назначить один шаблон.
Чтобы не пришлось создавать для каждого ресурса свой шаблон, в них обычно используют стандартные поля документов.
Например, мы можем создать один шаблон сразу для всех статей сайта. Тогда заголовок и контент статей будем выводить в шаблоне при помощи системных тегов:
<h1>[*pagetitle]</h1> [*content]
- pagetitle — заголовок ресурса
- longtitle — расширенный заголовок (обычно его используют для заполнения мета-тега Title)
- description — описание ресурса
- introtext — аннотация или анонс
- content — основной контент
- alias — псевдоним (для формирования URL)
- id - идентификатор документа
- parent — id родительского ресурса
- template - id шаблона, который назначен документу
- createdby — id автора документа
- publishedon — дата публикации
TV-параметры — это дополнительные поля документов. У них есть разные типы ввода и вывода, например, дата, изображение, файл, текст и т.д.
TV-параметры можно использовать в шаблонах. Выводятся они также, как и стандартные поля документов — [*имяTV]
Чанки — это то, за что можно влюбиться в MODx с первого взгляда. Пытаюсь вспомнить аналог в других CMS… наверное их можно сравнить в модулями в Joomla, но это очень условно.
Потому что чанки можно вставлять в любом месте шаблона и даже в контент ресурсов (то есть, прямо в текст статьи).
Собственно, чанки и есть фрагменты шаблона, которые вам лень прописывать каждый раз. Например, вы можете создать чанк с кодом Яндекс.Директ и вставлять его в любом месте страницы.
Но чаще всего при помощи чанков выводят блоки, которые повторяются в нескольких шаблонах (футер, шапку, меню и т.д.)
В MODx Revo чанк выводится следующим образом — [$название_чанка]
Еще одно заковыристое слово, для обозначения простой вещи. Сниппет — это код php (функция или несколько функций). Программист легко созст свой собственный сниппет, ну а те, кто вздрагивает при слове PHP могут воспользоваться готовым.
Вызов кешируемого сниппета выглядит так — [название_сниппета]
некешируемого — [!название_сниппета].
Плагины, как и сниппеты содержат PHP код, но их нельзя вызвать в шаблоне. Они срабатывают при определенных событиях, например, при загрузке страницы сайта.
Это дополнения, которые можно установить из репозитория или создать самостоятельно. Главное отличие компонентов от сниппетов или плагинов в том, что это самостоятельное приложение, для которого создается раздел в админке.
Конечно, это не все термины, с которыми вы столкнетесь во время работы. Но очень важно запомнить все, о чем я говорила сегодня, чтобы двигаться дальше и постепенно изучать новые возможности MODx.
Может быть сейчас что-то кажется сложным и непонятным, поверьте, после того, как вы попробуете создать первый сайт на MODx, все встанет на свои места. Вы легко отличите плагин от сниппета, а TV от чанка.
А на сегодня все. Если есть вопросы или дополнения — добро пожаловать в комментарии!