Блог modx – решение для вывода дочерних документов в табличном виде с расширенными возможностями / Готовые дополнения для MODX / MODX.im

Содержание

Создание блога в MODx Revolution MODX

Рекомендую вначале ознакомиться с системой синтаксиса тегов Revolution перед тем, как мы начнём.

Перед тем как мы начнём, хочу отметить, что данный урок довольно обширный и на нём я рассмотрю как установить мощный блог с системой написания записей, архивами, тегами, комментированием и многим другим. Если вам не нужна какая-то часть, то можете просто пропустить данный ненужный для вас элемент. MODX – гибкая система управления содержимым модульного типа и ваш блог может функционировать любым образом. Существуют сотни способов создания блога в MODX Revolution. Мы разберём один из них.

Установка необходимых дополнений

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

Необходимые дополнения MODX Revolution для создания блога:

  • getResources – для списка записей, страниц и других ресурсов.
  • getPage – для проставления номеров списков.
  • Quip – разнообразные функции комментирования.
  • tagLister – для управления тегами и создание теговой навигации.
  • Archivist – для управления разделом архивы.

Возможные дополнения

  • Breadcrumbs – для отображения навигационного следа «хлебные крошки».
  • Gallery – для управления фото-галлереями.
  • SimpleSearch – для добавления простого поискового окна в вашем сайте.
  • getFeed– если вы хотите разместить в вашем сайте какие-нибудь фиды, типа фида Твиттера.
  • Login – функция комментирования только для зарегистрированных пользователей.

Создание шаблона блога

Для начала нужен шаблон для нашего блога. Этот урок подразумевает, что у вас уже есть базовый шаблон для всех страниц вашего сайта. Мы будем ссылаться на такой шаблон в дальнейшем как на 'BaseTemplate'.

Давайте создадим еще один шаблон 'BlogPostTemplate'. Содержимое будет выглядеть так:

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

Шапка и Подвал блога

Во-первых, обратите внимание на два чанка: "pageHeader" и "pageFooter". Этм  чанки содержат мои общие HTML теги, которые я положил в подвал и шапку моего сайта, поэтому я могу их использовать во моём сайте в различных шаблонах.  То есть, если вам нужно изменить содержимое шапки или подвала, то вы можете поменять содержимое только одного чанка и автоматически пройдут изменения во всех шаблонах. После этого я дам название Ресурсу и сделаю ссылку на эту же страницу.

Информация поста

Далее отредактируем "info" нашего поста – в основном это автор и теги поста. В деталях это выглядит так:

Первая часть берёт поле Ресурса publishedon, форматирует и приводит его в нормальный вид.

Второй частью мы далее отображаем список тегов для этой записи блога. Обратите внимание как мы ссылаемся на переменную шаблона "tags" – мы её еще не создали, но не волнуйтесь – потом мы вставим её как реквизит сниппета 'tolinks'. Сниппет tolinks идёт вместе с дополнением tagLister и переводит отдельные теги в ссылки. Это значит, что наши теги стают кликабельными! Мы определили Ресурс 1 как 'target' или наша домашняя страница. Если ваш блог находится на другой странице, то поменяйте для него ID.

Наконец, мы загрузили быстрый счёт количества комментариев вместе с кликабельными якорь-ссылками для их загрузки. Обратите внимание как наш реквизит 'thread' в вызове сниппета QuipCount (и позднее в вызове Quip) использует 'blog-post-[[*id]]'. Это значит, что MODX автоматически создаст новый поток для каждого созданного поста. Крууууто!

Содержимое поста

Отлично, давайте вернёмся к нашему шаблону. Мы находимся в секции контента, обратите внимание, что мы начинаем с [[*introtext]]. Это полезное поле MODX ресурса – думайте об этом как начало отрывка поста блога, который показывается на нашей главной странице, где содержится список последних записей поста.

Добавление комментариев к постам

Отлично, теперь мы дошли до части комментирования нашего шаблона BlogPostTemplate. Как видно, мы используем дополнение  Quip для системы комментирования. Вы можете использовать другую систему, такую как Disqus. В этом уроке мы будем использовать Quip. Наш код будет выглядеть следующим образом:

Отлично. Обратите внимание: у нас вызовы двух сниппетов – один для отображения комментариев для этого потока (Quip) и другой для отображения формы ответа (QuipReply).

В нашем вызове сниппета Quip, мы определили ID потока вышеописанным способом и далее установили некоторые настройки. Наши комментарии будут отображаться потоком (по-умолчанию), поэтому нам нужно определить ID Ресурса, где будет наш ответ (это детально описано в Quip Документации. Я рекомендую почитать эту документацию, чтобы понять как это всё установить.)  с реквизитом 'replyResourceId'.

Далее, что нужно определить в обоих Quip и Quip Reply вызовах - реквизит 'closeAfter'.  Это говорит Quip автоматичестки закрыть коментирование на тех потоках, на которых прошло 30 дней со времени создания потока (когда мы загружали его).

В нашем вызове QuipReply, мы хотим сообщаем Quip, что модерировать все посты и модераторы наших постов заданы в группе Moderators User Group.

Есть еще много других Quip настроек, которые мы можем поменять, но оставим это на будущее, кому интерестно, то можете найти описание этих настроек в Quip docs.

Установка Тегов

Итак, мы установили и настроили шаблон, теперь нужно установить переменную шаблона 'tags', которую мы будем использовать для нашей системы тегов.

Давайте созданим переменную шаблона 'tags' и дадим ей описание как "Теги текущего Ресурса через запятую". Убедимся, что она имеет доступ к шаблону 'BlogPostTemplate', созданному нами ранее.

 Создание облака тегов в MODX Revolution

Ну вот! Теперь мы можем добавлять теги к любому посту, который мы создали, просто редактируя свой Ресурс и добавляя туда теги через запятую.

Создание разделов

Если вы хотите, чтобы блог содержал 'Секции' (Категории), то вам необходимо вначале создать эти Ресурсы - ресурсы-контейнеры, которые будут содержать посты данных категорий.

В этом уроке мы создадим два раздела: "Personal" и "Technology". Давайте создадим 2 Ресурса в корне вашего сайта и определим их как контейнеры - 'containers'. Определим их псевдонимы (алиасы) как 'personal' и 'technology', таким образом записи блога будут иметь разумное отображение.

Здесь мы оговорим, что наши разделы имеют ID 34 и 35.

Убедитесь в том, что вы не используете шаблон BlogPostTemplate, а вместо этого используете ваш шаблон Base Template. Эти страницы будут иметь в конечном итоге путь, который позволит просмотреть все сообщения в определенном разделе. В содержимом этих ресурсов поместите следующее:

Давайте теперь объясню это. Сниппет getResourcesTag – это сниппет-обёртка для getResources и getPage, который автоматически фильтрует результаты переменной шаблона 'tags'. В основном, нам нужно взять все опубликованные ресурсы в середине этого раздела (также мы можем отфильтровать по тегу, то есть можем вставить параметр '?tag=TagName' в URL).

Ниже выхова getResourcesTag, мы вставляем наши ссылки на пагинацию (проставление страниц), так как по умолчанию getResourcesTag показывает только 10 постов на страницу.

Для отображения нумерации с русскими словами для первой (Первая) и последней (Последняя) страниц добавляем два параметра с шаблонами в вызов getResourcesTag

Таким образом наш вызов будет выглядеть так:

Настройка чанка blogPost

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

Обратите внимание tolinks использует параметр &keyTag=`tag`, а не &key как указано в документации

Отлично! Мы начали с кликабельной ссылки к посту и оглавлением ресурса pagetitle как названием. Далее мы установили часть  'posted by' и список тегов (похожие действия мы делали в нашем шаблоне BlogPostTemplate).

Далее, мы покажем отрывок из контента, который мы храним в поле 'introtext' контента.

После этого мы сделаем ссылку 'read more' которая ссылается на пост и далее наши комментарии и дата публикации. Вот и всё!

 Вывод поста в MODX Revolution

Установка и настройка домашней страницы вашего блога

На домашней странице нашего блога, которая у нас содержится в Ресурсе ID 1 – начало нашего сайта – у нас идёт это:

Это позволяет нам показывать все посты из двух разделов, которые мы сделали, в ресурсах 34 и 35. Это также позволяет нам фильтровать по тегам (так как наши вызовы 'tolinks' и 'tagLister' имеют target равную 1 (это ID ресурса). Другими словами, разместив здесь вызов getResourcesTag у нас автоматически появятся теги.

Вы можете легко сделать это с другой страницы с которой ваш сайт начинается (или ID 1) – просто убедидесь в том, что изменили параметр 'target' в ваших вызовах сниппетов  tagLister и tolinks.

Добавление постов

Отлично, теперь всё настроено и мы готовы добавлять посты.

Структура страницы в середине разделов

Перед тем как начнём, важно отметить, что структура ваших постов в середине раздела зависит целиком от вас. Можете добавить контейнер года и месяца Resources, чтобы размещать там посты или просто постить в середине раздела. Всё зависит от вас.

Если вы хотите сделать субконтейнеры даты/года, убедитесь, что у них проставлены чекбоксы «Скрыть от меню», таким образом они не появятся при вызовах getResources.

Помните о том, что не важно какую структуру вы делаете под разделами, это не повлияет на вашу навигацию - Archivist позаботится обо всём. Он определит какими буду URL ваших постов.

Добавление нового поста

Давайте создадим новый ресурс и определим для него шаблон 'BlogPostTemplate'. Теперь вы можете начать писать ваш пост. Вы можете определить в поле 'introtext' выдержку из вашего поста и далее написать полное содержание вашего поста в поле содержимого.

Наконец, когда вы всё сделаете, убедитесь в том, что вы определили теги вашего поста в только что сделанных переменных шаблона 'tags'!

Установка и настройка Архивов

Отлично – теперь у нас есть первая запись в блоге! И вы можете добратся к ней через разделы. Теперь, наверное, вы захотите иметь возможность просматривать старые записи вашего блога. Для этого нам понадобится 'Archvist'.

Создание ресурса Архивы

Давайте разместим ресурс в корне и назовём его 'Archives' и дадим ему псевдоним (алиас) - 'archives'. В середине контента вставьте этот код:

Выглядит знакомо? Всё это очень схоже с тегом getResourcesTag, описанном выше на странице разделов. Сейчас getPage обёрнут в сниппет getArchives  и сообщает о том, что мы хотим взять записи в Ресурсах 34 и 35 (наша страницы Разделов). Мы установим результат в заполнитель с именем 'archives', на который сошлёмся позже.

Затем, ниже после этого, мы добавим несколько заполнителей, которые показывают текущие месяц и год. И в самом конце мы установим пагинацию. Отлично! Мы это всё сделали. Наш Ресурс Resource, для создания ссылок на него, имеет ID = 30.

Установка виджета Archivist

Отлично, теперь мы имеем Ресурс, чтобы иметь доступ к старым записям, но вам еще нужно сгенерировать месяца для записей. Это на самом деле очень просто: где-нибудь на вашем сайте (скажем в подвале) вставьте этот кусок кода:

Таким образом сниппет Archivist генерирует помесячный список ваших записей (вы можете добавить любые другие функции, с этой целью загляните в документацию). Мы говорим о том, что хотим, чтобы эти ссылки вели к нашему Ресурсу Archives (30) и брали только записи в Ресурсах 34 и 35 (ресурсы разделов).

Вот и всё! Archivist автоматически сделает всю работу, включая URL генерацию для архивов - archives/2010/05/ сгенерируются для всех записей мая 2010 года, и archives/2009/ сгенерируются для всех записей 2009 года. Отлично, не правда ли?

Установка дополнительных функций

Добавление группы модераторов

Ранее в нашем вызове QuipReply, мы определили нашу групу moderatorGroup 'Модераторы'. Давайте продвинемся дальше и создадим группу пользователей.

Нажмите Security -> Access Controls и создайте новую группу пользователей и назвите её 'Moderators'. Добавьте любого пользователя в группу (включая себя!) и дайте ему любую должность (роль).

Далее, проследуйте на вкладку Context Access (Доступ к содержимому).  Добавьте ACL (ряд доступа к содержимому) который даёт этой группе пользователей доступ к 'mgr' содержимому в с минимальной ролью Члена -  Member (9999) и политикой доступа 'QuipModeratorPolicy'.

Это позволит любому члену группы пользователей 'Moderators' модерировать записи в ваших потоках и также сообщать им через имейл о новых записях в блоге. Они могут войти в менеджер сайта для модерированния комментариев или щёлкнуть прямо на ссылке в имейле для утверждения или изъятия комментария. Ваш ACL должен выглядеть приблизительно так:

Сохраните вашу пользовательскую групу и всё! Вам может понадобится  обновить сессию (Security -> Flush Sessions) и перелогинится, чтобы обновить ваши права, об остальном позаботится Quip.

Добавление виджета "Последние записи"

Еще можно установить виджет "Последние записи" где-нибудь на вашем сайте и не бойтесь – это очень просто.

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

Мы даём команду getResources выдать нам список из последних 5 записей ресурса в наших разделах ресурсов (34,35) и отсортировать их по дате публикации.

Далее, создайте чанк `latestPostsTpl`, который вы определили вызовом 'tpl' в вызове сниппета getResources. Вставьте следующий код в этот чанк:

Бум! Последние записи отображаются у вас на сайте:

 Последние записи блога

Добавление виджета "Последние комментарии"

Для отображения последних комментариев в дополнениях Quip есть отличный небольшой сниппет, называемый QuipLatestComments, который очень просто использовать.

Разместите вызов списка комментариев, где вам нужно:

Теперь создайте чанк с названием 'latestCommentTpl':

Перед тем, как мы продолжим, необходимо отметить, что QuipLatestComments автоматически обрежет комментарии (по умолчанию до 30 символов) и добавит эллипсис после реквизита &bodyLimit. Во вторых, обратите внимание, что здесь мы использовали 'ago' Output Filter. Этот фильтр встроен в MODX Revolution и переводит время к записи вида 'two hours, 34 minutes' (или другие метрические системы: мин/сек, год/месяц, месяц/неделя).

Обратите внимание, что по умолчанию он показывает последние 5 комментариев. Результат работы сниппета:

 Последние комментарии блога

Вы можете обратиться к  документации сниппета для более точного конфигурирования.

Добавление виджета "Часто используемые теги"

Эта часть просто до очумения проста; за вас всё сделает tagLister. Просто поместите его, где вам удобно:

tagLister проверит переменные шаблона 'tags' и создаст ссылки на цель (в нашем случае, Ресурс с ID 1) с 10 наиболее часто используемыми тегами. Есть еще куча настроек конфигурации, но мы оставим всё как есть.

Заключение

Итак мы установили и настроили наш блог. Он будет иметь приблизительно следующий вид в дереве ресурсов:

 Дерево ресурсов блога

Снова подчёркиваю то, что можно добавить еще очень много функций к нашему блогу. Этот урок является просто точкой старта, чувствуйте себя свободно в настраивании вашего блога, добавляйте нужную функциональность. Большим плюсом MODX является то, что можно настраивать как угодно, расширять функциональность любого вашего решения: включая блог! 

Оригинал статьи Creating a Blog in MODX Revolution

MODX - Создание ресурсов блога

На этом уроке мы рассмотрим основные объекты CMS MODX Revolution и создадим несколько веб-страниц (ресурсов) для блога.

В MODX Revolution основные объекты можно разделить на 2 категории:

Для обращения к элементам MODX Revolution используется специальный тег, состоящий из множества частей.


[[ //открывающий тег
! //необязательный флаг, который устанавливает, что данный тег является некэшируемым 
elementToken //необязательный маркер, идентифицирующий тип элемента ($ - чанк, * - поля ресурса/tv, + - плейсхолдеры и др.). Если данный маркер не использовать, то данный элемент является сниппетом 
elementName //имя элемента
@propertyset //необязательный идентификатор, предназначенный для использования набора свойств (PropertySet)
:filterName=`modifier`:... //необязательный элемент, который предназначен для применения одного или нескольких выходных фильтров 
? //данный элемент необходимо использовать, если дальше будут следовать свойства 
&propertyName=`propertyValue` &... //необязательный элемент, предназначенный для установки свойств, которые разделяются с помощью символа & 
]] //закрывающий тег

Разработку блога начнём с создания основных шаблонов, которые мы будем использовать для вывода раздела с постами и непосредственно самих постов.

Изменим настройку начального шаблона, который уже есть в системе MODX Revolution. Данный шаблон будем использовать для вывода раздела "Блог":

  • Откройте начальный шаблон, посредством нажатия не него левой кнопкой мыши;
  • Измените его имя на "Блог", а описание на "Шаблон для раздела";
  • Создание шаблона в MODX Revolution для раздела Блог

  • Нажмите на кнопку "Сохранить".

Создайте шаблон, который будем использовать для вывода поста:

  • Нажмите на значок "Новый шаблон";
  • В открывшейся форме введите имя "Пост", а описание - "Шаблон для поста";
  • Нажмите на кнопку "Сохранить".

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

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

Шаблоны (templates) в MODX Revolution

Наш блог будет состоять из:

  • главной страницы, имеющей название "Мой блог";
  • раздела "Блог", в котором мы будем создавать посты;
  • страницы "О себе", где мы разметим информацию об блоге и авторе;
  • страницы "Карта блога", которая будет содержать ссылки на все ресурсы нашего сайта в удобной для посетителя форме.

Для создания страниц или их редактирования необходимо перейти в левой панели на вкладку "Ресурсы" и открыть раскрывающий список "Website".

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

  • В поле "Заголовок" введите текст "Мой блог";
  • В раскрывающем списке "Начальный шаблон" выберите значение "(пустой)".

    Настройка полей документа в MODX Revolution

  • После выполнения изменений в полях ресурса, выполните его сохранение.

Для создания раздела с тикетами (постами) нажмите на значок "Новый документ", в открывшейся форме выполните следующее:

  • В поле "Заголовок" введите текст "Блог";
  • Выберите из раскрывающего списка "Шаблон" значение "Блог";
  • Во вкладке "Настройки" выберите из раскрывающего списка "Тип ресурса" значение "Раздел" и нажмите на кнопку "Сохранить".
  • После сохранения документа перейдите во вкладку "Настройка раздела", а затем в ней выберите пункт "Дочерние тикеты";
  • В этом разделе в качестве шаблона дочерних документов выберите значение "Пост", а в поле "Формирование URI" измените строчку на %alias%ext;

    Настройка дочерних тикетов раздела

  • Нажмите на кнопку "Сохранить".

Страницы "О себе" и "Карта блога" создадим следующим образом:

  • Нажмите на значок "Новый документ";
  • В открывшейся панели в поле "Заголовок" введите название соответствующей страницы;
  • В качестве шаблона ресурса выберите значение "(пустой)", т.е. данный ресурс не будет использовать шаблон.
  • Во вкладке "Настройки" проверьте, что тип ресурса соответствует значению "Документ", а тип содержимого – значению "HTML".
  • Нажмите на кнопку "Сохранить".

Настройка полей ресурса О себе

Для создания постов в разделе "Блог" выполните следующее:

  • Загрузите изображения в каталог на сервере (например: assets/images/tickets/2015.02/), которые Вы будете использовать в постах;
  • Откройте ресурс "Блог" и перейдите на вкладку "Раздел";
  • Создайте пост используйте кнопку "Создать тикет";

    Создание тикета в MODX Revolution

    • В открывшейся форме введите посту заголовок и содержимое. В содержимом для обрезания поста используйте тег <cut />. Т.е. с помощью данного тега определите, какая часть статьи будет отображаться при выводе списка постов на веб-странице;

      Создание поста в MODX Revolution

  • Создайте аналогичным образом ещё 3 - 4 поста.

    Посты в MODX Revolution

Создание блога - Руководства | MODX Docs

Требования

  1. Требования расширения могут требовать использования FURL, и ".html" можно изменить на "/": Content -> Types -> HTML (.html) -> /

Создание блога в MODX Revolution

Это руководство поможет вам настроить гибкое и мощное решение для ведения блогов в MODX Revolution. Поскольку MODX Revolution - это не программное обеспечение для ведения блогов, а полноценная платформа для приложений контента, он не поставляется с готовым решением для ведения блогов. Вам нужно будет настроить свой блог так, как вы этого хотите.

К счастью, инструменты для этого уже есть для вас. Из этого туториала вы узнаете, как их настроить. Рекомендуется ознакомиться с Revolution синтаксисом тегов, прежде чем мы начнем.

Однако, прежде чем мы начнем, это обширное руководство, которое покажет вам, как создать мощный блог с публикацией, архивированием, добавлением тегов, комментариями и многим другим. Если вам не нужна какая-то конкретная часть, просто пропустите эту часть. MODX является модульным, и ваш блог может функционировать в любом объеме, который вам нравится. И, опять же, это только один способ сделать это - существует множество способов создать блог в MODX Revolution.

Этот учебник был основан на настройке блога на splittingred.com. Если вы хотите получить демонстрацию перед чтением, посмострите там.

Получение необходимых дополнений

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

Необходимые дополнения

  • getResources - Для публикации сообщений, страниц и других ресурсов.
  • getPage - Для разбиения списков на страницы.
  • Quip - Все и вся в комментировании.
  • tagger - Для управления тегами и выполнения навигации на основе тегов.
  • Archivist - Для управления вашим разделом архивов.

Дополнительные дополения

  • Breadcrumbs - Для отображения хлебных крошек
  • Gallery - Для управления фото галереями.
  • SimpleSearch - Для добавления простого поиска на ваш сайт.
  • getFeed - Если вы хотите получить другие каналы на своем сайте, например, канал Twitter.
  • Login - Если вы хотите ограничить комментирование только зарегистрированными пользователями, это вам понадобится.

Создание шаблона блога

Во-первых, вы хотите иметь шаблон, предназначенный только для сообщений в блоге. Зачем? Что ж, если вам нужны комментарии и специальное форматирование или отображение страниц для вашего блога, вы, вероятно, не захотите делать это для каждой записи блога. Итак, лучший способ - это создать собственный шаблон блога. В этом руководстве уже предполагается, что у вас есть базовый шаблон для ваших обычных страниц на сайте - позже мы будем ссылаться на него как «BaseTemplate».

Мы создадим один с именем 'BlogPostTemplate' Наш контент выглядит примерно так:

[[$pageHeader]]
<div>
 <h3><a href="[[~[[*id]]]]">[[*pagetitle]]</a></h3>
 <p>
 Posted on [[*publishedon:strtotime:date=`%b %d, %Y`]] |
 Tags: [[*tags:notempty=`[[!tolinks? &items=`[[*tags]]` &tagKey=`tag` &target=`1`]]`]] |
 <a href="[[~[[*id]]]]#comments">
   Comments ([[!QuipCount? &thread=`blog-post-[[*id]]`]])
 </a>
 </p>
 <div>
   <p>[[*introtext]]</p>
   <hr />
   [[*content]]
  </div>
 <div>
   [[*tags:notempty=`
<span>Tags: [[!tolinks? &items=`[[*tags]]` &tagKey=`tag` &target=`1`]]</span>
   `]]
   <br />
 </div>
 <hr />
 <div>[[!Quip?
     &thread=`blog-post-[[*id]]`
     &replyResourceId=`123`
     &closeAfter=`30`
   ]]
   <br /><br />
   [[!QuipReply?
      &thread=`blog-post-[[*id]]`
      ¬ifyEmails=`[email protected]`
      &moderate=`1`
      &moderatorGroup=`Moderators`
      &closeAfter=`30`
   ]]
 </div>
</div>
[[$pageFooter]]

Итак, давайте рассмотрим шаблон, не так ли? По ходу дела помните об этом - вы можете перемещать любые из этих частей, изменять их параметры и корректировать их размещение. Это исключительно базовая структура - например, если вы хотите, чтобы ваши теги были внизу, переместите их туда! MODX не ограничивает вас в этом.

Хедер и фуутер

Во-первых, вы заметите, что у меня есть два блока: «pageHeader» и «pageFooter». Эти блоки содержат мои общие HTML-теги, которые я бы поместил в нижний колонтитул и заголовок на своем сайте, чтобы я мог использовать их в разных шаблонах. Полезно, если я не хочу обновлять какие-либо изменения верхнего / нижнего колонтитула в каждом из моих шаблонов - я могу просто сделать это за один сниппет. После этого я помещаю заголовок страницы своего ресурса и делаю его ссылкой, которая ведет вас на ту же страницу.

Информация о посте

Далее мы попадаем в «информацию» поста - в основном это информация об автора и теги для поста. Давайте посмотрим подробно:

<p>
Posted on [[*publishedon:strtotime:date=`%b %d, %Y`]] |
Tags: [[*tags:notempty=`[[!tolinks? &items=`[[*tags]]` &tagKey=`tag` &target=`1`]]`]] |
<a href="[[~[[*id]]]]#comments">
 Comments ([[!QuipCount? &thread=`blog-post-[[*id]]`]])
</a>
</p>

Первая часть берет поле publishedon с Ресурса и форматирует его в красивую дату.

Вторая часть: мы отображаем список тегов для этой записи блога. Вы можете увидеть, как мы ссылаемся на переменную шаблона «tags» - мы еще не создали ее, так что не беспокойтесь - и затем передайте ее как свойство сниппету tolinks. Снипет tolinks поставляется с tagLister, и переводит теги с разделителями в ссылки. Это означает, что наши теги становятся кликабельными! Мы указали целевой ресурс 1 или нашу домашнюю страницу. Если ваш блог был на другой странице, кроме домашней, вы бы изменили ID там.

И, наконец, мы загружаем быстрый подсчет количества комментариев вместе с кликабельной ссылкой-меткой для их загрузки. Обратите внимание, что наше свойство 'thread' в вызове снипета QuipCount (а затем и в вызове Quip) использует запись блога - [[*id]]. Это означает, что MODX будет автоматически создавать новую ветку для каждой новой записи блога, которую мы создаем.

Содержание поста

Хорошо, вернемся к нашему шаблону. Сейчас мы находимся в разделе контента - обратите внимание, как мы начинаем с [[*introtext]]. Это полезное поле ресурса MODX - воспринимайте его как начальный отрывок для поста блога, который будет отображаться на нашей главной странице, когда мы публикуем последние посты блога.

Добавление комментариев к посту

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

<div>[[!Quip?
   &thread=`blog-post-[[*id]]`
   &replyResourceId=`19`
   &closeAfter=`30`
 ]]
 <br /><br />
 [[!QuipReply?
    &thread=`blog-post-[[*id]]`
    &moderate=`1`
    &moderatorGroup=`Moderators`
    &closeAfter=`30`
 ]]
</div>

Хорошо. Обратите внимание, у нас есть два вызова снипетов здесь - один для отображения комментариев к этой теме (Quip), и другой для отображения формы ответа (QuipReply).

В нашем вызове снипета Quip мы указали идентификатор потока, как описано выше, а затем установили некоторые параметры. Наши комментарии будут иметь многопоточность (по умолчанию), поэтому нам нужно указать идентификатор ресурса, где будет находиться сообщение «Ответить в тему» (это подробно описано вQuip документации. Мы рекомендуем прочитать там о том, как его настроить.) С 'replyResourceId'. Для примера, если ваш &replyResourceId указывает на страницу 123, то на странице 123 вы должны поместить что-то вроде следующего:

[[!QuipReply]]
<br />
[[!Quip]]

Далее мы хотим указать - в вызовах Quip и Quip Reply - свойство 'closeAfter'. Это говорит Quip автоматически закрывать комментирование этих потоков после 30 дней создания потока (когда мы его загружаем).

В нашем вызове QuipReply мы хотим сказать Quip модерировать все сообщения, а модераторов для нашего сообщения можно найти в группе пользователей модераторов (мы объясним, как настроить это позже в руководстве).

Существует целый ряд других настроек Quip, которые мы можем изменить, но мы оставим вас для дальнейшей настройки, которую вы можете узнать, как это сделать в Quip документации.

Что такое Threading? Если вы включите threaded комментарии, то пользователи могут комментировать другие комментарии. Непотоковые комментарии позволяют пользователям комментировать только исходное сообщение в блоге.

Настройка тегов

Теперь, когда у нас есть все наши шаблоны, нам нужно настроить переменную шаблона 'tags', которую мы будем использовать для наших тегов.

Давайте создадим TV под названием 'tags' и дадим ему описание «теги с разделителями-запятыми для текущего ресурса» Затем убедитесь, что у него есть доступ к шаблону BlogPostTemplate, который мы создали ранее.

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

Создание разделов

Если вы хотите, чтобы в вашем блоге были разделы (также называемые категориями), вам сначала нужно создать эти ресурсы.

Для этого урока мы создадим 2 раздела: «Личные» и «Технологии». Создайте 2 ресурса в корне вашего сайта и сделайте их «контейнерами». Вы захотите, чтобы их псевдоним был «личным» и «технологическим», поэтому URL-адреса вашего блога будут хорошо отображаться.

С этого момента мы скажем, что наши два Ресурса Секции имеют идентификаторы 34 и 35, для справки.

Убедитесь, что вы не используете BlogPostTemplate для них, а вместо этого используйте свой собственный базовый шаблон. Эти страницы станут способом просмотра всех сообщений в определенном разделе. В содержании этих Ресурсов добавьте следующее:

[[!getResourcesTag?
 &element=`getResources`
 &elementClass=`modSnippet`
 &tpl=`blogPost`
 &hideContainers=`1`
 &pageVarKey=`page`
 &parents=`[[*id]]`
 &includeTVs=`1`
 &includeContent=`1`
]]
[[!+page.nav:notempty=`
<div>  
<ul>  
 [[!+page.nav]]  
</ul>  
</div>
`]]

Хорошо, давайте объясним это: getResourcesTag сниппет обёртки для getResources и getPage который автоматически фильтрует результаты по TVу с тегами. Таким образом, в основном, мы хотим захватить все опубликованные ресурсы в этом разделе (и мы также можем фильтровать по тегам, если мы передадим в URL параметр '?tag=TagName').

Ниже вызова getResourcesTag мы размещаем наши ссылки на страницы, так как по умолчанию getResourcesTag показывает только 10 сообщений на страницу.

Настройка чанка blogPost

В этом вызове у нас также есть свойство с именем 'tpl', которое мы установили в 'blogPost'. Это наш чанк, который показывает каждый результат наших записей в блогах. Он должен содержать это:

<div>
   <h3><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h3>
   <p>Posted by [[+createdby:userinfo=`fullname`]]
[[+tv.tags:notempty=` | <span>Tags:
[[!tolinks? &items=`[[+tv.tags]]` &tagKey=`tags` &target=`1`]]
</span>`]]</p>
   <div>
       <p>[[+introtext]]</p>
   </div>
   <p>
     <span>
<a href="[[~[[+id]]]]">Read more</a>
| <a href="[[~[[+id]]]]#comments">
   Comments ([[!QuipCount? &thread=`blog-post-[[+id]]`]])
 </a>
| <span>[[+publishedon:strtotime:date=`%b %d, %Y`]]</span>
     </span>
   </p>
</div>

Круто - давайте двигаться далее. Начнем с создания кликабельной ссылки на пост с заголовком страницы. Затем мы устанавливаем наш «опубликованный» элемент и список тегов (аналогично тому, как мы делали это ранее в BlogPostTemplate).

Далее мы покажем некоторые выдержки из содержимого, которые мы храним в поле 'introtext' содержимого.

После этого у нас есть симпатичная небольшая ссылка «читать дальше», которая ссылается на пост, а затем наши комментарии и дату публикации. Это оно!

Настройка главной страницы вашего блога

На нашей домашней странице нашего блога, который мы получили в Resource ID 1 - начало нашего сайта - у нас есть это:

[[!getResourcesTag?
 &elementClass=`modSnippet`
 &element=`getResources`
 &tpl=`blogPost`
 &parents=`34,35`
 &limit=`5`
 &includeContent=`1`
 &includeTVs=`1`
 &showHidden=`0`
 &hideContainers=`1`
 &cache=`0`
 &pageVarKey=`page`
]]
[[!+page.nav:notempty=`
<div>  
<ul>  
 [[!+page.nav]]  
</ul>  
</div>
`]]

Это позволяет нам отображать все сообщения из двух разделов, которые мы сделали, в ресурсах 34 и 35. Это также позволяет нам фильтровать по тегам (поскольку все наши вызовы 'tolinks' и 'tagLister' имеют цель 1 (этот ресурс ID). Другими словами, поместив наш вызов getResourcesTag здесь, мы автоматически помечаем теги!

Вы можете легко сделать это другой страницей, чем ваш site_start (или ID 1) - просто убедитесь, что изменили свойства 'target' в вашем tagLister и использовали вызовы Snippet, чтобы отразить это.

Добавление постов

Хорошо, теперь мы готовы фактически добавлять сообщения в блог, теперь, когда наша структура полностью настроена.

Структура страницы в разделах

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

Если вы решите указать дату/год или субконтейнеры, убедитесь, что у них отмечен флажок Скрыть из меню, чтобы они не отображались в ваших вызовах getResources.

Помните, однако, что какую бы структуру вы ни построили по разделам, она не будет определять вашу навигацию -Archivist справится с этим. Однако он определит URL ваших постов в блоге. Так что веселись.

Добавление нового поста блога

Хорошо - продолжайте, создайте новый ресурс и установите для него шаблон «BlogPostTemplate». Тогда вы можете начать писать свой пост. Вы можете указать в поле 'introtext' выдержку для поста в блоге, а затем написать полное тело в поле контента.

И, наконец, когда вы закончите, убедитесь, что вы указали теги для своего поста в недавно созданном TV с тегами!

Настройка ваших архивов

Отлично - у вас есть ваш первый пост в блоге! И у вас есть возможность просматривать его также в разделах. Теперь вам нужно настроить способ просмотра старых постов в блоге. Это где «Archvist» вступает в игру.

Создание ресурса архивов

Идите вперед, поместите в свой корень ресурс под названием «Архивы» и дайте ему псевдоним 'archives'. Затем внутри содержимого разместите это:

[[!getPage?
 &element=`getArchives`
 &elementClass=`modSnippet`
 &tpl=`blogPost`
 &hideContainers=`1`
 &pageVarKey=`page`
 &parents=`34,35`
 &includeTVs=`1`
 &toPlaceholder=`archives`
 &limit=`10`
 &cache=`0`
]]
<h4>[[+arc_month_name]] [[+arc_year]] Archives</h4>
[[+archives]]
[[!+page.nav:notempty=`
<div>  
<ul>  
 [[!+page.nav]]  
</ul>  
</div>
`]]

Выглядит знакомо? Это очень похоже на getResourcesTag, описанный выше на нашей странице раздела. На этот раз getPage оборачивает снипет getArchives, и говорит, что мы хотим получить посты в ресурсах 34 и 35 (страницы нашего раздела). Мы установим результат для заполнителя под названием «архивы», на который мы ссылаемся позже.

Затем, ниже этого, мы добавляем несколько плейсхолдеров, которые показывают текущий месяц и год просмотра. И наконец, у нас есть нумерация страниц. Здорово! Мы закончили с этим. Наш ресурс, для справочных целей, мы скажем, имеет идентификатор 30.

Настройка виджета Archivist

Итак, теперь у вас есть ресурс для просмотра архивов, но вам нужен какой-то способ генерирования месяцев, в которых перечислены сообщения. Это на самом деле довольно просто - где-то на вашем сайте (скажем, в вашем нижнем колонтитуле, поместите этот милый немного:

<h4>Archives</h4>
<ul>
[[!Archivist? &target=`30` &parents=`34,35`]]
</ul>

Так что же снипет Archivist создает список сообщений за месяц (вы можете добавить другие варианты, но посмотрите эту документацию для этого). Мы говорим, что хотим, чтобы его ссылки шли на наш Архивный Ресурс (30), и собирали только посты в Ресурсах 34 и 35 (наши Ресурсы Раздела).

Это оно! Archivist фактически автоматически обработает все остальное - включая все ваши генерации URL для архивов - archives/2010/05/ покажет все посты в мае 2010 года, где archives /2009/ покажет все посты в 2009 году. Довольно мило, а?

Расширенные настройки

Добавление группы модераторов

Итак, ранее в нашем вызове QuipReply мы указали группу модераторов 'Moderators'. Давайте продолжим и создадим эту группу пользователей сейчас.

Перейдите в Безопасность -> Контроль доступа и создайте новую группу пользователей под названием «Модераторы». Добавьте в группу любых пользователей (включая себя!) И назначьте им любую роль.

Затем перейдите на вкладку «Доступ к контексту». Добавьте ACL (в основном строку), который предоставляет этой группе пользователей доступ в контексте «mgr» с минимальной ролью Member (9999), и политику доступа «QuipModeratorPolicy».

Это позволяет любому пользователю в группе «Модераторы» модерировать сообщения в ваших темах, а также уведомляет их по электронной почте о появлении новых сообщений. Затем они могут либо войти в систему менеджера, чтобы модерировать комментарии, либо щелкнуть ссылки прямо в письмах, чтобы одобрить или отклонить комментарии. Ваш ACL должен выглядеть примерно так:

Сохраните свою группу пользователей, и все! Возможно, вам придется сбросить сессии (Безопасность -> Сброс сессий) и повторно войти в систему, чтобы перезагрузить ваши разрешения, но Quip будет обрабатывать остальное.

Добавление виджета "Последние сообщения"

Возможно, вам понадобятся «Последние сообщения» где-то на сайте, и не бойтесь - добавить их довольно просто.

Во-первых, вы захотите сделать этот звонок везде, где вы хотите, чтобы появился список:

[[!getResources?
 &parents=`34,35`
 &hideContainers=`1`
 &tpl=`latestPostsTpl`
 &limit=`5`
 &sortby=`publishedon`
]]

Итак, мы говорим getResources отобразить список из 5 лучших ресурсов в разделе ресурсов (34,35) и отсортировать их по дате публикации.

Затем создайте чанк latestPostsTpl, который вы указали с помощью вызова 'tpl' в вызове сниппета getResources. Поместите это как содержимое чанка:

<li>
 <a href="[[~[[+id]]]]">[[+pagetitle]]</a>
 [[+publishedon:notempty=`<br /> - [[+publishedon:strtotime:date=`%b %d, %Y`]]`]]
</li>

И бум! Последние записи блога, отображаемые на вашем сайте:

Добавление виджета «Последние комментарии»

А как насчет виджета, который показывает несколько последних комментариев в ваших сообщениях? Просто - Quip вызываает маленький снипет под названием QuipLatestComments который с этим легко справиться.

Разместите вызов там, где вы хотите, чтобы список комментариев отображался:

[[!QuipLatestComments? &tpl=`latestCommentTpl`]]

Теперь создайте чанк с именем 'latestCommentTpl':

<li>
   <a href="[[+url]]">[[+body:ellipsis=`[[+bodyLimit]]`]]</a>
   <br /><span>by [[+name]]</span>
   <br /><span>[[+createdon:ago]]</span>
</li>

Прежде чем мы продолжим, следует отметить несколько вещей: QuipLatestComments автоматически обрежет комментарий и добавит многоточие после переданного в него свойства &bodyLimit, значение которого по умолчанию равно 30 символам. Во-вторых, обратите внимание на использованный здесь «назад» фильтр вывода «Фильтры ввода и вывода (модификаторы вывода)»). Этот фильтр встроен в MODX Revolution и переводит временную метку в красивый, симпатичный формат «два часа, 34 минуты» (или две другие метрики времени, такие как мин/сек, год/месяц, месяц/месяц).

Обратите внимание, что по умолчанию будет отображаться 5 последних. Результат:

Вы можете посмотреть документацию для снипета для получения дополнительных параметров конфигурации.

Добавление виджета «Самые популярные теги»

Эта часть смехотворно проста tagLister делает это для вас. Просто поместите это куда хотите

[[!tagLister? &tv=`tags` &target=`1`]]

А tagLister проверит TV 'tags' и создаст ссылки, которые идут к цели (здесь ID ресурса 1) с использованием 10 лучших тегов. Есть еще варианты конфигурации, но мы оставим вас с этим.

Заключение

Итак, у нас есть полная настройка блога! Теперь это должно выглядеть примерно так в нашем дереве:

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

Помните, этот урок был основан на splittingred.com, если вы хотите увидеть полномасштабную демонстрацию этого в действии.

Создание системы блога в MODx

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

Для создания системы блога нужны дополнения MODX Revolution, вот несколько примеров таких дополнений:

getResources – для списка страниц, ресурсов и записей.

GetPage – для постановки номеров списков.

Taglister – управление тегами и навигации за счёт них.

Archivist – позволяет управлять разделом архивы.

Gallery – управления фото-галереями.

SimpleSearch – для добавления простого поискового окна.

GetFeed – для размещения фидов.

Создание шаблона блога

Первым делом необходимо создать шаблон блога. Допустим он содержит шапку, пост и подвал. Первое и последнее мы добавим посредством чанков, а вот структуру самого поста разберём подробнее:

<p>
Posted on [ [*publishedon:strtotime:date=`%b %d, %Y`] ]
Tags: [ [*tags:notempty=`[ [!tolinks? &items=`[ [*tags] ]` &key=`tag` &target=`1`] ]`] ]
</p>

Posted on [ [*publishedon:strtotime:date=`%b %d, %Y`] ] - выводит поле ресурса publishedon, форматирую его, как нам нужно.

Tags: [ [*tags:notempty=`[ [!tolinks? &items=`[ [*tags] ]` &key=`tag` &target=`1`] ]`] ] - отображаем список тегов для поста. Вывод тегов задан таким образом, что если они не созданы – ничего не произойдёт, иначе, они будут обработаны сниппетом tolkins, преобразовываясь в списки ссылок. &target=`1` - ссылки будут вести на главную страницу.

<div>
<p>[ [*introtext] ]</p>
<hr>
[ [*content] ]
</div>

[ [*introtext] ] – будет выводить поле ресурса introtext. Будет выполнять роль начального отрывка поста на главной.

Установка тегов

Шаблон готов, теперь необходимо установить теги, в нашем случае это переменная шаблона tags, участвующая в системе тегов.

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

Если есть необходимость в создании категорий, то нужно создать ресурсы, которые будут содержать посты соответствующих категорий.

Как пример, создадим два ресурса для категорий «Личные» и «Технология».

[ [!getResourcesTag?
&element=`getResources`
&elementClass=`modSnippet`
&tpl=`blogPost`
&hideContainers=`1`
&pageVarKey=`page`
&parents=`[ [*id] ]`
&includeTVs=`1`
&includeContent=`1`
] ]

[ [!+page.nav:notempty=`
<div>
<ul>
 [ [!+page.nav] ]
</ul>
</div>
`] ]

!getResourcesTag? – является надстройкой над сниппетами getResources и getPage, автоматически фильтрующий результаты TV параметра tags. В итоге, мы берём все опубликованные ресурсы этого раздела (отсортировав по тегу, заданному в параметре ?tag=TagName в URL)

Ниже getResourcesTag мы ставим пагинатор, так как по умолчанию getResourcesTag показывает только 10 сообщений на странице.

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

<div>
<h3><a href="[ [~[ [+id] ]] ]">[ [+pagetitle] ]</a></h3>
<p>Posted by [ [+createdby:userinfo=`fullname`] ]
 [ [+tv.tags:notempty=` | <span>Tags:
[ [!tolinks? &items=`[ [+tv.tags] ]` &keyTag=`tag` &target=`1`] ]
</span>`] ]</p>
<div>
<p>[ [+introtext] ]</p>
</div>
<p>
<span>
<a href="[ [~[ [+id] ]] ]">Read more</a>
<span>[ [+publishedon:strtotime:date=`%b %d, %Y`] ]</span>
</span>
</p>
</div>

Обратите внимание tolinks использует параметр &keyTag=`tag`, а не &key как указано в документации.

<h3><a href="[ [~[ [+id] ]] ]">[ [+pagetitle] ]</a></h  - кликабельная ссылка к посту, названием является pagetile ресурса.

<p>Posted by [ [+createdby:userinfo=`fullname`] ]
[ [+tv.tags:notempty=` | <span>Tags:
[ [!tolinks? &items=`[ [+tv.tags] ]` &keyTag=`tag` &target=`1`] ]
</span>`] ]</p>
 - Устанавливает часть posted by и список тегов.
<p>[ [+introtext] ]</p> - выводим отрывок из контента.
<a href="[ [~[ [+id] ]] ]">Read more</a>
<span>[ [+publishedon:strtotime:date=`%b %d, %Y`] ]</span> - выводим ссылку read more, ссылающуюся на пост. И выводим дату публикации.

На домашней странице блога будет следующий код:

[ [!getResourcesTag?
&elementClass=`modSnippet`
&element=`getResources`
&tpl=`blogPost`
&parents=`50,51`
&limit=`5`
&includeContent=`1`
&includeTVs=`1`
&showHidden=`0`
&hideContainers=`1`
&cache=`0`
&pageVarKey=`page`
] ]

[ [!+page.nav:notempty=`
<div> 
<ul> 
[ [!+page.nav] ] 
</ul> 
</div>
`] ]

Это позволит нам выводить посты из обоих разделов, сделанных нами, в ресурсах 50 и 51. Это так же позволяет нам сортировать по тегам, так как наши вызовы tolkins и tagLister имеют target равную 1. Иначе говоря, разместив тут getResourcesTag у нас автоматически появятся теги.

Добавление сообщений в блог

Структура полностью готова, можно перейти к добавлению сообщений в блог. Создаём новый ресурс, и ставим в нём шаблон нашего блога. В конце ставим теги в TV-параметре tags.

Создадим способ просмотра старых постов с помощью Archivist. Создадим ресурс и поместим в него следующий код:

[ [!getPage?
&element=`getArchives`
&elementClass=`modSnippet`
&tpl=`blogPost`
&hideContainers=`1`
&pageVarKey=`page`
&parents=`50,51`
&includeTVs=`1`
&toPlaceholder=`archives`
&limit=`10`
&cache=`0`
] ]

<h4>[ [+arc_month_name] ] [ [+arc_year] ] Archives</h4>
[ [+archives] ]
[ [!+page.nav:notempty=`
<div> 
<ul> 
[ [!+page.nav] ] 
</ul> 
</div>
`] ]

getPage обёрнут в сниппет getArchives  и сообщает о том, что мы хотим взять записи в Ресурсах 50 и 51 (наша страницы Разделов). Мы установим результат в заполнитель с именем 'archives', на который сошлёмся позже. Затем, ниже после этого, мы добавим несколько заполнителей, которые показывают текущие месяц и год. И в самом конце мы установим пагинацию. Отлично! Мы это всё сделали. Наш Ресурс Resource, для создания ссылок на него, имеет ID = 30.

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

<h4>Archives</h4>
<ul>
[ [!Archivist? &target=`30` &parents=`50,51`] ]
</ul>

Таким образом, сниппет Archives генерирует помесячный список записей.

Рассмотрим несколько дополнительных функций.

Виджет последней записи

Можно добавить виджет последней записи на сайте, для этого нам потребуется следующий код:

[ [!getResources?
&parents=`50,51`
&hideContainers=`1`
&tpl=`latestPostsTpl`
&limit=`3`
&sortby=`publishedon`
] ]

Мы даём команду getResources выдать нам список из последних 3 записей ресурса в наших разделах ресурсов 50 и 51, отсортировав их по дате публикации. Далее создаём чанк latestPostsTpl, который вы определили вызовом tpl в вызове сниппета getResources. И вставляем в этот чанк следующий код:

<li>
<a href="[ [~[ [+id] ]] ]">[ [+pagetitle] ]</a>
[ [+publishedon:notempty=`<br /> - [ [+publishedon:strtotime:date=`%b %d, %Y`] ]`] ]
</li>

После чего на сайте отобразятся последние записи.

Виджет часто используемых тегов

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

[ [!tagLister? &tv=`tags` &target=`1`] ]

tagLister проверит переменные шаблона tags и создаст ссылки на цель (в нашем случае это ресурс с ID 1) с 10 наиболее часто используемыми тегами.

В заключении стоит отметить, что данная статья несёт ознакомительный характер и своей задачей ставит дать знания, необходимые для начального понимания устройства блога на MODX.

Кулинарный блог на MODX Revolution

Процесс установки очень простой и с ним справится даже новичок не имеющий опыта работы с MODX Revolution!
Для начала необходимо зарегистрировать хостинг. Для этого переходим по ссылке нажимаем кнопку хостинг

Хостинг для MODX

Далее выбираем тарифный план. Достаточно будет выбрать тариф минимальный.

Хостинг для MODX

На следующей странице вам необходимо ввести данные для регистрации и номер телефона на который вы получите смс для подтверждения аккаунта.

После подтверждения по смс вам будут высланы данные для входа в панель управления.

Хостинг зарегистрирован. Вам выдан тестовый поддомен на который можно установить MODX и запустить тестовый сайт на котором вы сможете его наполнить контентом и после перенести на основной домен для запуска. Можно конечно же сразу прикрепить к панели управления ваш домен и установить сразу все на рабочий домен. Ниже показано как установить MODX.

Главная страница панели управления хостингом Бегет. Здесь мы нажимаем кнопку CMS

Хостинг для MODX

На следующей странице выбираем систему управления контентом MODX

Хостинг для MODX

В всплывающем окне необходимо выбрать домен на который будет установлена система управления контентом MODX Revolution. Так же необходимо указать логин, email и пароль администратора. C помощью введенных данных вы в последствии авторизуетесь в панели управления сайтом. Остальные параметры такие как база данных и прочее можно оставить по умолчанию.

После нажатия на кнопку установить вы получите уведомление о том что MODX успешно установлен.

Переходим в административную панель сайта по адреса http://адрес сайта/manager и вводим данные указанные при установке CMS логин и пароль и попадаем на главную страницу админки сайта.

Хостинг для MODX

В Верхнем меню выбираем Приложения -> Установщик

Хостинг для MODX

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

Хостинг для MODX

Откроется окно в котором необходимо нажать кнопку Выберите файл и в следующем окне вам необходимо выбрать файл который вы получили после оплаты покупки.

Хостинг для MODX

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

Всем удачных покупок и процветания ваших проектов.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *