Создание и поддержка сайтов на MODX. Modx программирование


Быстрый старт в MODX Revolution / Хабр

Revolution дорос уже до версии 2.0.8, но большинство разработчиков не спешит его использовать, так как документация еще не полная, да и статей на русском очень мало. Лично я не нашел ни одной пошаговой инструкции «для чайников», и поэтому решил написать ее сам.

Конечно, это топик для не «совсем чайников», а для людей, которые хоть немного знакомы с Evolution и при переходе на Revolution обломались от всего непривычного, как я. Никаких секретов и ловких методик тут не будет. Обычный how-to с картинками (их довольно много).

Установка
Лично я для нового сайта создаю новый аккаунт на %Мойлюбимыйхостер%. У него есть по умолчанию доступ в ssh, чем я и пользуюсь. Итак, заходим на сервер, в директорию сайта (public_html или как-то так) и в консоли набираем wget modx.com/download/direct/modx-2.0.8-pl.zip unzip ./modx-2.0.8-pl.zip mv ./modx-2.0.8-pl/* ./ rm -rf ./modx-2.0.8-pl mv ./ht.access ./.htaccess Так мы качаем последний на сегодня релиз Revolution, распаковываем его и перемещаем сразу в корень сайта. Также нужно активировать htaccess для использования дружественных url. Если вам проще это проделать через панель управления хостера — на здоровье.

MODX распакован, нужно создать ему БД. Это делается из админки хостера. Создаем еще пользователя и назначаем ему полные права на базу и пароль покруче. У %Мойлюбимыйхостер% это все делается в 6 кликов мышью. Правда, я потом еще залезаю через phpmyadmin и вручную ставлю тип БД в utf-8, так как по умолчанию там cp1251. utf-8 очень хорошая штука, настоятельно рекомендую использовать ее.

Теперь можно устанавливать MODX. Заходим по адресу %sitename%/setup (да-да, не /install!) Если у вас PHP 5.3 и вылезает ошибка 503, то скорее всего вам нужно прописать в .htaccess свой часовой пояс, например:php_value date.timezone "Asia/Novosibirsk"

Кликаем по кнопочкам.

Вводим данные для подключения к БД

Проверка окружения

Установка окончена + удаление файлов установки в целях безопасности

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

Поздравляю, MODX установлен!

Установка пакетов
По умолчанию Revolution поставляется абсолютно голый. То есть, нет ни одного чанка, плагина или сниппета. Зато, есть система репозиториев. Поэтому, первым делом мы ставим нужные пакеты.

Заходим в меню Система->управление пакета

Обязательно ставим:Wayfinder — генерация меню.getResources — замена Ditto, работа с ресурсами. CodeMirror — редактор с подсветкой синтаксиса.

Еще очень рекомендую поставить TinyMCE — WYSIWYG редактор для самых маленьких. Пригодится, если вы плохо помните html. phpThumbOf — ресайз картинок при выводе на экран. Работает как фильтр PHx. Breadcrumbs — цепочка меню, для вывода навигации типа «Главная->раздел->подраздел». translit — автоматическая транслитерация псевдонимов ресурсов для дружественных url.

Вот еще таблица соответствия сниппетов Evo и Revo.

Обратите внимания, что после загрузки пакетов их нужно еще и установить.

А после установки, желательно еще поставить обновления на пакеты, если есть.

Настройка рабочего пространства
Тыкаем Система->Настройка системы

Настройка системы довольно таки отличается от Evo внешним видом, но суть — та же. Находим нужный параметр и меняем. Есть фильтр по категорям + поиск по имени. Также, отдельно настраиваются движок (core) и сниппеты.

Хочется отметить, что теперь возможно самостоятельно создавать системные параметры, чтобы к ним обращаться из своих сниппетов и плагинов. Настройки вступают в силу сразу же, кнопочки «сохранить» нет.

Нам нужно задать имя сайта и дружественные url. Для того, чтобы автоматом генерировался псевдоним дружественного url в зависимости от pagetitle, мы уже поставили пакет translit — аналог transalias из Evo. Теперь настройте у себя все как показано на скриншоте. Сходным образом меняются и все остальные настройки.

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

В заключение, несколько моментов:

Разница в тегах
Табличка соответствия тэгов Evo и Revo

Теперь все тэги заключаются в скобки [[]]:[[*templatevar]] [[$chunk]] [[snippet]] [[+placeholder]] [[~link]] [[++system_setting]] Кэшируются и чанки и сниппеты, и даже, наверное, плейсхолдеры. Чтобы вызвать их без кэша — добавляем как раньше восклицательный знак.[[!$chunk]] [[!snippet]]

Встроенный PHx
Свершилось то, о чем все знающие мечтали! Теперь PHx встроен в ядро и его можно использовать везде! Для тех, кто не в курсе, что это — викиучебник. Он написан для Evolution, но в целом — все то же.

Отличия от Evo: Вызывается на любой плейсхолдер или параметр вот так:[[*templatevar:filter=``]] [[+placeholder:filter=``]] Фильтром может выступать ЛЮБОЙ сниппет, который принимает параметры $output и $options и выдает результат с помощью echo.

Простейший пример использования:[[*longtitle:is=``:then=`Расширенный заголовок отсутствует`:else=`Заголовок: [[*longtitle]]`]]

Обработка TVs
При создании TV можно указать тип вывода.

Пример: Создаете TV с именем img, указываете для него тип вывода image, заполняете дефолтные параметры и при выводе на страницу как [[*img]] у вас и будет выводиться картинка! То есть прям с тэгами img title и т.д., что указали. А если выставить тип вывода текст — выведется только путь к изображению, как раньше. Эту фишку, кстати, понимает и getResources.

Сниппет getResources
Этот сниппет — основной инструмент для работы с ресурсами. Он пришел на смену Ditto2 (Ditto3 для Revo тоже есть, но он бета, и обновляться больше не будет).

Сниппет имеет несколько отличий от Ditto. 1. Он не включает по умолчанию обработку TV. Нужно &includeTVs=`1`, чтобы сразу обрабатывать TVs нужно &processTVs=`1` 2. Не включает по умолчанию вывод контента! Юзать &includeContent=`1`. 3. Лимит на вывод ресурсов по умолчанию — 5. Я сначала тупил, почему выводит всего 5 документов из любого контейнера, так как Ditto выводил все. 4. Нет дефолтного шаблона, если вызываете getResources без &tpl=``, он выведет список ресурсов со всеми свойствами в виде массива — очень удобно, кстати. 5. Параметра startID нет, есть parents, работает как тот же параметр у Ditto.

Дерево ресурсов
Ресурсы, как и раньше можно раскидывать по категориям, но теперь, категории вкладываются друг в друга и можно рассортировать все свои сниппеты и чанки как угодно. Да, теперь они еще и мышкой перетаскиваются и создаются по правой кнопке, без перезагрузки страницы, если нужно. Вообще, если привыкнуть к новому дереву ресурсов, возвращаться в Evolution просто не хочется. Очень удобно, очень.
Заключение
Надеюсь, эта статья хоть немного поможет вам в освоении MODX Revolution. Буду рад отвечать на вопросы в комментариях и обновлять топик, по мере надобности. Основную информацию по Revolution можно найти тут (англ.).

habr.com

MODx программирование

Комментарии
Здравствуйте. Теги выводятся нормально. Но вот возник вопрос - в ресурсе «Вывод результатов по тегам» можно ли сделать описание тега? То есть при нажатии на тег -пользователь переходит на вывод результатов с прикрепленными статьями. А сверху над результатами - картинка и описание. Такой глоссарий как бы. Илья, 2018-01-05 13:50:12MODx Revo - облако тегов Сейчас нужно обязательно верстать без префиксов, т.к. наличие большого количества css-правил c префиксами увеличивает объем css-файла и делает код невалидным. Из-за этого сайт может понижаться в поисковой выдаче и может увеличиться количество отказов. Если у вас уже есть код с префиксами и его надо очистить, то это можно сделать автоматически - <a href="http://css-optimizer.ru/">http://css-optimizer.ru/</a> Алексей, 2016-06-02 21:17:59PrefixFree - упрощаем разработку для CSS3 Может кто помочь создать дропдаун меню, как я понимаю он там не предусмотрен. Сам занимаюсь Вордпрессом , а с MODx не знаком вообще ! Алексей, 2016-04-20 17:25:52Как сделать меню на MODx при помощи Wayfinder Что руками можно указать ИДшники - это понятно. А как сделать, чтобы не руками вписывать ИДшники, а выбрать через выпадающий список хотя бы нужные элементы? Марк, 2016-03-10 15:07:56Как реализовать привязку к ресурсам на MODx (Evo) С таким же успехом можно и компонент bitrix:catalog.section.list использовать. Отличие от меню лишь в том что активный раздел выделяется. Хотя в принципе и в шаблоне можно из url спарсить текущий раздел и присвоить класс блоку. А уж если блоки корневые и строго фиксированные , то можно в дополнительный параметр меню прописать хоть руками путь до картинки (- запрос к бд хоть кеш) --------------------- admin Кирилл, поставьте 2 компонента catalog.sectio.list и menu и сравните кол-во запросов к БД. Насчет "прописать руками" - лично Вам никто не запрещает и вовсе не использовать БД, прописывайте хоть ссылки, хоть картинки. Кирилл, 2016-03-01 13:45:01Битрикс - меню с картинками "А что насчёт сложной логики в highload? Например реализация ИЛИ в GetList?" По тому же принципу делайте, как и в старом API. Пример можно тут глянуть http://thisis-blog.ru/elementi-highload-bloka/#compl Артур, 2016-02-01 23:21:07Шпаргалка для программиста по Highload блокам в Битрикс (API D7) Метод рабочий, а вот картинки и цены вытащить не получается. Максим, 2015-11-04 19:59:27Как реализовать привязку к ресурсам на MODx (Evo) Я получил задание изменить меню ресторана на сайте MODX я первый раз знакомлюсь с этой смс и не могу понять как в ней редактировать тексты визуальный редактор на ресурсе меню (перечень пищи) не отражается. Как это понять если несложно обьясните. Заранее спасибо. Сергей, 2015-10-24 20:44:26Как сделать меню на MODx при помощи Wayfinder

julliet.ru

MODX - Программирование, верстка, веб-приложения

Пока идет сессия не заметил выход новой версии MODx Revolution 2.2, хотя давно еще видел всякую предварительную информацию о нововведениях. Надо сказать, что казались они очень вкусными и этого релиза MODx я ждал, наверно, как никакого другого. И не прогадал!

 

Список нововведений: 

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

Ну и напоследок несоколько ссылок:

Have fun!

Читать далее »

Нашел в интернете:

Проблема: при увеличении кол-ва страниц на сайте, значительно разрастается кэш сайта. Это связано с тем, что MODx Revolution кэширует все варианты ЧПУ:

  1. ID-документа - ЧПУ
  2. ЧПУ - ID-документа
  3. Родители и дочерние записи и т.п.

В результате на 20 000 страниц мы имеем почти 20 Мб кэш. Мало того, что это просто извращение, подгружать 20 метров кэша для того, чтобы выдать 20 кило конечного HTML, так дело еще в том, что это почти что лимит для MODx Revolution, и 50 000 страниц нам просто  никогда не создать.Но это в базовой комплектации.  Слава  Богу MODx Revolution имеет очень мощное API, и при желании платформу можно адаптировать практически под любые нужды.В нашем случае мы поставили для себя задачу - прокачать MODx Revolution  так, чтобы он легко работал с 200 000 документами.Хотя я  буду максимально подробно все расписывать, все же сразу оговорюсь о необходимых минимальных знаниях, чтобы без труда все это сделать:

  1. PHP ООП
  2. PDO/xPDO
  3. Javascript + ExtJS/Sencha
  4. MySQL
  5. Синтаксис JSON
  6. Средства отладки Ajax-запросов, к примеру Firefox  + Firebug
  7. Синтаксис XML

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

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

Читать далее »

Вышла новая версия MODx 2.1.2.

Основные изменения:

Читать далее »

Время не стоит на месте и не так давно вышла новая версия MODx 2.1.1, которая содержала в себе кучу всяких обновлений, а также которая избавилась от некотрого количества старого кода. Сам процесс обновления MODx описан слабо, отчасти из-за того, что сам процесс не очень сложен, но его можно сделать не правильно многими способами. 

Итак, приступим. Чтобы обновить MODx надо сделать следующее:

  1. Скачать последние версии расширений, чтобы не было проблем с совместимостью.
  2. Бэкап файлов и базы данных на случай, если что то пойдет не так.
  3. Скачать новую версию MODx с официального сайта. 
  4. Распаковать архив с новой версией системы прямо в корень сайта.
  5. Запустить стандартный скрипт установки. Там выбрать, чтобы он обновил систему, а не выполнял новую устновку.
  6. После того, как скрипт отработал начинает самое веселое. Как я уже говорил, в новой версии MODx разработчики отказались от большого количества устревшего кода. Полный список можно посмотреть тут. Там же приведены варианты замены. Как правило там код, который был оставлен в Revolution для совместимости с MODx Evolution. Теперь от него отказались. Таким образом, вам предстоит выправить весь свой неработающий код. Именно поэтому мы и скачивали последние версии дополнений, чтобы на этом этапе не было лишней головной боли. 
  7. Очистить кэш, на всякий случай. 
  8. PROFIT!!!!

Вот собственно и все, процесс прост. Главная сложность - это переписать несовместимый код.

Читать далее »

Нашел на Хабре:

Revolution дорос уже до версии 2.0.8, но большинство разработчиков не спешит его использовать, так как документация еще не полная, да и статей на русском очень мало.Лично я не нашел ни одной пошаговой инструкции «для чайников», и поэтому решил написать ее сам.

Конечно, это топик для не «совсем чайников», а для людей, которые хоть немного знакомы с Evolution и при переходе на Revolution обломались от всего непривычного, как я. Никаких секретов и ловких методик тут не будет. Обычный how-to с картинками (их довольно много).

Источник

Хорошая статья для новичков.

Читать далее »

Решил тут обновиться до MODx 2.0.8. Ну сказано сделано. По идее чтобы обновить MODx надо просто закачать поверх старой версии новую и запустить скрипт установки. 

Заранее сделал полный бэкап файлов и БД и приступил к установке. Но тут что то пошло не так и система обновляться отказалась наотрез, выдавая мне ошибку 500. Погуглил, нашел несколько вариантов решения, которые в моем случае ровно ничего не дали. Поэтому пришлось обновлять сайт хирургическим способов. Удалил полностью старый сайт, поставил новую версию MODx и потом из бэкапа восстановил сайт. 

Читать далее »

Нашел на Хабре:

В данной статье я хочу рассмотреть некоторые новые возможности MODx Revolution, которых не было в младшей ветке – MODx Evolution. С данной CMF я начал работать еще когда была доступна версия modx-2.0.0-beta-2, т.е. примерно полтора года назад. Могу сказать, что за период с лета 2009 г., когда система была только в стадии беты, до релиза летом 2010 г., MODx прошел большой путь в своем развитии, добавились новые возможности, стал быстрее и лучше работать старый функционал. Я считаю, что в настоящее время MODx Revolution является действительно мощной платформой для построения самых разнообразных веб-приложений, от простейших сайтов до больших порталов. Итак, начнём.

Полезная статья, подойдет тем, кто хочет разобраться с MODx Revolution, системой, которую я сейчас использую для разработки сайтов. 

Читать далее »

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

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

Прежде чем мы начнем, надо сказать: статья довольно объемная, рассказывает о создании действительно мощного блога с системой постинга, архивами, тэгами, комментариями и т.д. Если вам не нужна какая-либо конкретная часть из перечисленного, то просто пропустите конкретный раздел. MODx является модульной системой, и ваш блог может работать так как вам хочется, надо просто установить и настроить определенный модуль. Еще раз скажу, тут описан только один из способов создания блога на MODx Revolution. Помимо него есть еще множество других способов.

Эта статья создавалась на основе блога splittingred.com. Этот сайт можно использовать как пример.

Читать далее »

everstudent.ru

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

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

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

Прежде чем мы начнем, надо сказать: статья довольно объемная, рассказывает о создании действительно мощного блога с системой постинга, архивами, тэгами, комментариями и т.д. Если вам не нужна какая-либо конкретная часть из перечисленного, то просто пропустите конкретный раздел. MODx является модульной системой, и ваш блог может работать так как вам хочется, надо просто установить и настроить определенный модуль. Еще раз скажу, тут описан только один из способов создания блога на MODx Revolution. Помимо него есть еще множество других способов.

Эта статья создавалась на основе блога splittingred.com. Этот сайт можно использовать как пример.

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

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

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

Дополнительные расширения

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

Во-первых, понадобиться создать шаблон для поста в блоге. Предполагается, что у вас уже есть шаблоны других страниц вашего блога, пусть этот будет называться "Base Template".

Сейчас мы создадим шаблон ‎'BlogPostTemplate'. Вот его код:

[[$pageHeader]]

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

[[*introtext]]

[[*content]]

[[*tags:notempty=` Tags: [[!tolinks? &items=`[[*tags]]` &key=`tag` &target=`1`]] `]]

[[$pageFooter]]

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

Верхний и нижний колонтитулы

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

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

Далее мы создадим блок информации о посте, в основном это имя автора и тэги. Рассмотрим подробнее:

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

Во-первых, мы используем поле publishedon для формирования даты поста.

Во-вторых, мы отображаем список тегов для поста. Вы заметили, как мы оформили вывод тэгов? Если вы не создали тэги, то ничего не произойдет. Если вы их задали, то они будут обработаны сниппетом tolinks. tolinks является часть расширения tagLister, и преобразует тэги в список ссылок. Наши тэги станут интерактивными! Мы указали поле ‎'target' как 1, то есть указали на главную страницу. Если главная страница вашего блога не является главной страницей сайта, то измените этот параметр.

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

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

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

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

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

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

В вызове Quip, мы указали идентификатор ветки как мы описывали выше, а затем установили некоторые другие настройки. Так как наши комментарии ‎будет разделены на ветки, то нам надо указать идентификатор ресурса, к которому будет относиться комментарий(подробнее см. документацию по Quip).

Следующее, что мы хотим задать - это свойство ‎'closeAfter' в Quip и QuipReply. Он говорит Quip-у автоматически закрывать комментарии к посту после 30 дней после создания поста.

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

Есть еще целая куча других параметров Quip, которые мы могли бы настроить, но мы оставим это для вас. Для того, чтобы получить более подробную информацию, обратитесь к документации.

Создание тэгов

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

Создаем этот параметр. В названии пишем ‎'tags', в описании пишем "Comma delimited tags for the current Resource". Далее, убедитесь, что к нему имеет доступ шаблон "BlogPostTemplate", который мы создали ранее.

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

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

Если вы хотите, чтобы ваш блог имел "Разделы", сначала нужно соответствующие им ресурсы.

Мы создадим 2 раздела: "Личные" и "Технология". Создаем два ресурса в корне сайта и делаем их папками. 

Далее будем считать что ID этимх ресурсов 34 и 35.
[[!getResourcesTag? &element=`getResources` &elementClass=`modSnippet` &tpl=`blogPost` &hideContainers=`1` &pageVarKey=`page` &parents=`[[*id]]` &includeTVs=`1` &includeContent=`1` ]] [[!+page.nav:notempty=` `]]

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

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

Настройка BlogPost Chunk

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

Posted by [[+createdby:userinfo=`fullname`]] [[+tv.tags:notempty=` | Tags: [[!tolinks? &items=`[[+tv.tags]]` &key=`tag` &target=`1`]] `]]

Read more | | [[+publishedon:strtotime:date=`%b %d, %Y`]]

Начнем с создания кликабельного названия статьи с параметром pagetitle в качестве названия. Затем заполним секцию "posted by" и список тэгов (подобно тому, как мы делали это ранее в BlogPostTemplate).

Далее, мы покажем вступительный текст, которые мы храним в поле "introtext".

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

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

На домашней странице блога, которая имеет 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=` `]]

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

Вы можете легко сделать это на другой странице. Просто убедитесь, что изменили свойство target в tagLister и tolinks.

Добавление сообщения

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

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

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

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

Сниппет Archivist справиться с любой структурой вашего сайта. Будет изменяться только URL постов вашего блога. Так что развлекайтесь.

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

Хорошо, создайте новый ресурс, и поставили в нем шаблон "BlogPostTemplate". Теперь вы можете приступить к написанию своего поста.

В конце не забудьте проставить тэги в TV-параметре tags.

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

Отлично - у вас есть первый пост! Вы можете посмотреть на него на странице разделов. Теперь надо создать способ просмотра старых постов. Тут вам поможет Archivist.

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

Создаем ресурс в корне вашего сайта под названием "Архивы". Поместите в него следующий код:

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

[[+arc_month_name]] [[+arc_year]] Archives

[[+archives]] [[!+page.nav:notempty=` `]]

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

Ниже мы ставим навигацию по по годам и месяцам, а также пагинатор. Пусть этот ресурс будет иметь идентификатор 30.

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

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

Archives

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

Вот и все! Archivist будет автоматически обрабатывать остальное - в том числе все ваши URL. Например URL "archives/2010/05/" покажет все сообщения за май 2010 года, а "archives/2009/" покажет все сообщения в 2009 году.

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

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

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

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

Затем перейдите на вкладку "Доступ к контекстам". Нажмите "Добавить контекст", что даст доступ этой группе пользователей в контексту "mgr", и доступ по политике "куипмодераторполицы".

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

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

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

Если вам захочется создать такой виджет, то сделать это совсем не сложно.

Поместите этот код там, где вы хотите видеть его.

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

Мы сообщаем getResources что хотим увидеть 5 последних ресурсов в категориях с индексами 34 и 35, отсортированные по параметру publishedon.

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

  • [[+pagetitle]] [[+publishedon:notempty=`- [[+publishedon:strtotime:date=`%b %d, %Y`]]`]]
  • Вуаля! Последние сообщения в блоге появились на сайте:

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

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

    Поместите код туда, где хотите видеть этот виджет:

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

    Теперь создайте кусок называется "latestCommentTpl ':

  • [[+body:ellipsis=`[[+bodyLimit]]`]] by [[+name]] [[+createdon:ago]]
  • QuipLatestComments автоматически обрезает комментарий многоточием. Максимальное колчество символов задается параметром bodyLimit, по умолчанию 30 символов. Обратите внимание на фильтр "ago" выходного фильтра, который мы использовали здесь. Этот фильтр встроен в MODx Revolution, и переводит параметр в строку типа "два часа, 34 минут назад".

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

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

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

    Легко! tagLister делает это за вас. Просто поместите код:

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

    tagLister будет проверять TV-параметр tags, а также создавать ссылки, на список статей с этими тэгами.

    Заключение

    Ваш блог полностью настроен! Дерево документов должно выглядеть примерно так:

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

    everstudent.ru

    Руководство по MODX Revolution - Компания ДискМастер

    Представляем вашему вниманию краткое руководство редактора сайта на базе MODX Revolution.

    Ситуацию рассмотрим на конкретном примере сайта МО Ульянка Санкт-Петербурга.

    Вход в панель управления сайтом

    Для входа в панель управления припишите в адресной строке браузера к URL-адресу вашего сайта /manager

    Должно выглядеть так: http://www.адрес-вашего-сайта/manager

    Перейдите по указанному адресу, нажав клавишу Enter на клавиатуре.

    Появится следующее окно:

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

    Нажмите кнопку «Войти».

    Знакомство с панелью управления

    При вводе корректных имени пользователя и пароля, перед вами откроется вот такая страница:

    Внешний вид вашей панели может немного отличаться от приведённого — это зависит от настроек доступа пользователя.

    Панель делится на несколько основных областей:

    1 — главное меню

    2 — пользовательское меню

    3 — дерево документов

    4 — рабочая область

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

    Дерево документов

    Страница сайта в терминологии MODX называется «Документ» или «Ресурс». Каждый документ может быть как папкой, содержащей дочерние документы (контейнером), так и простой страницей. В дереве документов страницы-контейнеры имеют иконку папки, простые же документы отображаются с иконкой чистого листа. У каждого документа может быть бесконечное количество вложенных дочерних документов и папок.

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

    Создание документов

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

    Также через контекстное меню доступны основные операции со страницей: помещение/снятие с публикации, удаление, редактирование.

    Снятие страницы с публикации

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

    Если же вы решите вновь опубликовать такую страницу, то просто выберите в контекстном меню (меню, вызываемое правой кнопкой мышки) пункт «Опубликовать».

    Удаление страницы

    При удалении ненужной страницы через пункт контекстного меню «Удалить», она помечается как перечёркнутая красной линией:

    Следует знать, что удалённые таким образом страницы не удаляются окончательно, а лишь помещаются в корзину — это сделано для защиты от случайностей. Такую удалённую страницу всегда можно восстановить, нажав на соответствующую кнопку в контекстном меню. Если же вы окончательно и бесповоротно решили удалить все выделенные таким образом ресурсы, то просто очистите корзину вот здесь:

    Перемещение страниц

    Все ресурсы можно перемещать по сайту простым перетаскиванием мышью в дереве документов — можно менять их последовательность, помещать страницы в нужные папки и т.д.

    Редактирование страниц

    Для редактирования какой-либо страницы на сайте, вам нужно выбрать эту страницу в дереве документов, при этом название выбранного ресурса выделяется полужирным шрифтом:

    В целом же перед нами возникает приблизительно вот такая картина:

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

    Рассмотрим последовательно основные поля.

    Закладка «Документ»

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

    ОписаниеНужно для тега «Description», а, проще говоря, для поисковых систем. Если хотите, чтобы сайт лучше ими индексировался, то заполняйте.

    АннотацияОна и есть аннотация. Нужно ли её использовать — зависит от разработчиков сайта, вообще же служит для краткого содержания основного текста.

    ШаблонШаблон страницы. Как правило, трогать его не нужно. 

    ПсевдонимПсевдоним — это имя страницы в браузере, участвующее в образовании URL, вот он:

    Псевдоним создаётся автоматически транслитерацией заголовка страницы и, как правило, редактировать его не нужно, если только вы не хотите сделать его более благозвучным, как, например, в образце выше — «contacts» вместо автоматического «kontakty».

    Пункт менюТо, как страница будет обозначаться в меню. Если не заполнять, то по умолчанию берётся заголовок документа. Имеет смысл использовать, если заголовок у страницы очень длинный — не смотрится в меню или просто туда не влезает.

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

    ОпубликованЧекбокс отвечает за снятие или постановку документа на публикацию. Дублирует соответствующие функции в контекстном меню дерева документов.

    Содержимое ресурсаНепосредственно содержание страницы. Тут всё ясно. Поле снабжено собственным редактором контента TinyMCE, документация по использованию которого освещается отдельной статьёй на нашем сайте. Отдельно хочется заметить, что при вставке содержимого из MS Word, лучше пользоваться специально для этого предназначенной кнопкой, иначе страница на сайте может выглядеть не совсем корректно. Кнопка вот здесь:

    Закладка «Настройки»

    Позиция в менюМожно числовым методом задавать позицию этой страницы в меню. Но это для тонких ценителей. Гораздо проще и быстрее это сделать просто перетаскивая нужный ресурс мышкой по дереву документов.

    ОпубликованКогда документ опубликован.

    Дата публикацииМожно вручную задать дату публикации документа на сайте. Очень удобно, когда нужно последовательно автоматически публиковать документы на сайте. Например, поздравления с праздниками в течение года — сразу создать страницы поздравлений, выставить им даты публикаций и не думать об этом целый год. Здорово!

    Дата отмены публикацииВсё то же самое, что и в предыдущем пункте, только наоборот.

    КонтейнерПоказывает является ли текущий документ контейнером. При добавлении дочерних ресурсов страница становится контейнером автоматически.

    УдалёнУдаление страницы.

    Использовать HTML-редакторПараметр отвечает за отображение в «Содержимом ресурса» редактора контента TinyMCE. По умолчанию включён.

    Закладка «Дополнительные поля»

    Содержимое этой закладки целиком зависит от разработчиков сайта. Тут могут быть изображения к страницами, прикреплённые файлы, ссылки на видео и многое другое — проконсультитуйтесь с создателями сайта или администратором ресурса.

    Сохранение документа

    После того как документ был создан или отредактирован, а все нужные параметры были выставлены, нужно этот документ сохранить. Делается это нажатием на кнопку «Сохранить» вверху страницы:

    Полюбоваться полученным результатом можно по нажатию соответствующей кнопки «Просмотреть» в этом же меню:

    Страница сайта откроется в новом окне.

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

    Размещение фотогалерей

    Весь процесс создания фтогалерей можно разделить на 2 этапа:

    1. создание непосредственно самой фотогалереи
    2. вызов этой фотогалереи в нужном месте на сайте

    Рассмотрим подробнее.

    1. Создание галереи происходит при помощи компонента "Gallery", вот здесь:

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

      Здесь вам нужно вписать имя фотогалереи, добавить её описание (по желанию) + загрузить сами фотографии. Загрузить фото очень просто, нажав кнопку Multi-Upload, после чего появится диалоговое окно загрузки, где вам нужно выбрать "Загрузить файлы",  а после — выбрать требуемые файлы на своём компьютере. Файлы загрузятся автоматически и появятся на странице администрирования альбома. Порядок фотографий можно будет менять простым перетаскиванием. Теперь не забудьте сохраниться. Всё — альбом создан! Теперь лишь нужно его вызвать в подходящем месте сайта.

    2. Для вызова альбома на страницах сайта нужно знать ID (идентификационный номер) этого альбома. Посмотреть его можно в списке альбомов (Компоненты » Gallery) справа от названия альбома, вот здесь:В нашем случае это цифра 1. Запоминаем. Теперь идём на нужную страницу — туда, где мы хотим отобразить альбом и в нужном месте вставляем код [[Gallery? &album=`1` &plugin=`galleriffic` ]] , где 1 — это и есть ID нашего альбома. Сохраняемся и готово — альбом показывается на сайте в нужном месте! Отлично!

    ---------------------------------------------------------------------------

    Напоследок хочется заметить, что при создании новых документов, лучше сразу снимать их с публикации. И только после того как всё готово — текст вычитан, картинки расставлены и результат по нажатию на кнопку «Просмотреть» отвечает задуманному — опубликовывать. Делается это для того, чтобы случайный посетитель сайта не видел промежуточных результатов редактирования.

    Вот и всё. Спасибо за внимание!

    Автор статьи: Ярослав Старовойтов.

    www.diskmaster.ru

    MODX разработчик Дмитрий Танцирев. Создание сайтов на MODX

    Являюсь специалистом по CMS MODX Revolution и Evolution CMS. Выполняю проекты от Landing page до интернет-магазинов. Так же занимаюсь их поддержкой и сопутсвующей доработкой.

    Последние работы: Корпоративный сайт

    Разработка корпоративного сайта для студии SEO и продвижения сайтов в г. Минск.

    Разработка сайта-каталога на MODX для компании «Кабель Опт Групп» – крупный поставщик кабельно-проводниковой…

    Интернет магазин

    Интернет магазин душевых кабин с расширенным личным кабинетом, мини-форумом и кучей разных плюшек. г.…

    Сайт-каталог поставщика кубинских препаратов, Эбермин, Heberport-p. г. Екатеринбург.

    Доработка сайта

    Доработка и поддержка корпоративного сайта на MODX Revolution компании AMБ-Моторос - Подбор автомобилей…

    Интернет магазин

    Разработка интернет магазина бытовой техники на MODX Evolution. Выполнена синхронизация с 1С, личный…

    Одностраничный сайт для фотостудии "Luxonika". г. Санкт-Петербург. Студия занимается индивидуальными…

    Доработка сайта

    Доработка корпоративного сайта на MODX Evolution компании ARVIN Expo - застройщик эксклюзивных выставочных…

    Разработка сайта для детского центра 2х2. г. Санкт-Петербург. Верстка страниц, программирование CMS.

    Сайт-каталог компании «Элтекс Коммуникации» - официальный представитель завода Элтекс, российского производителя…

    Анкеты, Тесты, Опросы

    Создание анкеты для Европейского центра суррогатного материнства. Анкета была сверстана и запрограммирована…

    Корпоративный сайт

    Верстка и программирование корпоративного мультиязычного сайта на MODX Evolutoion, для Европейского центра…

    tanzirev.ru


    Prostoy-Site | Все права защищены © 2018 | Карта сайта