Easycom modx revo – MODX CMS, система управления сайтом, бесплатная система управления сайтом

easyComm / Утилиты / Дополнения MODX / modstore.pro

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

Внимание, этот компонент требует версию MODX не ниже 2.7 !

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

Компонент работает с не авторизованными пользователями (но поддержка для авторизованных тоже есть).
Схема работы:

— Пользователь сайта через специальную форму оставляет свой комментарий/отзыв/вопрос к чему либо.
— Администратор получает уведомление на почту, и просматривает это сообщение в специальном разделе панели управления сайтом, где может опубликовать или удалить сообщение, а также оставить свой ответ на него.
— Если пользователь оставил электронную почту, то он при этом получит уведомление на свой email.

Замечание
Компонент работает с не авторизованными пользователями и не носит социальной направленности. Т.е. он не проектировался как модуль для добавления комментариев в блогах или каких-либо социальных сетях (хотя вы можете попробовать использовать его и там на свой страх и риск).
Цель easyComm — связь с покупателями интернет магазинов, посетителями сайтов компаний, продающих услуги.

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

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

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

3. Вкладка «Сообщения» на странице ресурса. Повторяет функционал, описанный в предыдущем пункте, но с условием, что здесь доступны только сообщения и цепочки, относящиеся к текущему ресурсу.

4. Уведомления по почте. Приходит уведомления администратору о новом сообщении, а если пользователь оставил свою электронную почту, то и ему о том, что он оставил сообщение и о том, что его сообщение опубликовано на сайте.

5. Оценки и рейтинг. В компонент добавлен функционал, позволяющий пользователям давать свою оценку чего-либо, а на ее основании строится общи рейтинг, причем рейтинг считается по 2-м алгоритмам: среднее и по Вильсону.

6. Добавление произвольных полей. Если вам недостаточно стандартного набора полей у сообщения (а это Дата, Имя пользователя, Эл. почта, Контакты, Оценка, Тема сообщения, Текст сообщения, Автор ответа, Текст ответа), то при помощи системы плагинов есть возможность добавить произвольное количество своих полей.

7. Несколько полей рейтинга. Хоть в компоненте присутствует одно поле rating, но механизм добавления дополнительных полей позволяет добавить в том числе и поля с типом рейтинг (звездочками), причем для них так же будут высчитываться средние показатели.

8. Кастомизация внешнего вида. Внешний вид на фронтенде изменяется привычным способом — путем создания своих чанков. В админке так же есть возможность изменить внешний вид: можно поменять как набор колонок в списках, так и поля, доступные при редактировании сообщения.

9. Поддержка Gravatar. Сниппет ecMessages поддерживает gravatar. Если у сообщения заполнен email, то в чанке вывода сообщения доступен плейсхолдер gravatar.

10. Вывод расширенного рейтинга. Сниппет ecThreadRating поддерживает вывод подробной информации о голосах пользователей. Вместе с компонентом идет отдельный чанк tpl.ecThreadDetailedRating, в котором реализован подобный вывод.

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

Зависимости
Для корректной работы необходимы:
  • на фронтенде: подключенные библиотеки jquery и плагин
    jquery.form
    ;
  • установленные pdoTools,
  • в чанке вывода сообщения дополнительно используется сниппет dateAgo для формирования «красивой» даты

Более подробные сведения о работе с компонентом содержатся в документации.
Видео с демонстрацией работы

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

Фото-презентация
Пример использования компонента, создаются 2 цепочки сообщений (Отзывы и Вопросы), показаны основные возможности комполнента версии 1.8.5-pl.






















Обсуждение компонента в сообществе MODX.PRO

Настройки / easyComm / Компоненты / docs.modx.pro

ec_auto_reply_authorАвтоматически заполнять поле Автор ответаЕсли включено, то поле Автор ответа в админке будет заполнено именем текущего менеджера.
ec_frontend_cssСтили фронтендаПуть к файлу со стилями, используемыми во фронтенде. Если вы хотите использовать собственные стили — укажите путь к ним здесь, или очистите параметр и загрузите их вручную через шаблон сайта.
ec_frontend_jsСкрипты фронтендаПуть к файлу со скриптами, используемыми во фронтенде. Если вы хотите использовать собственные скрипты — укажите путь к ним здесь, или очистите параметр и загрузите их вручную через шаблон сайта.
ec_show_resourcesПоказывать вкладку у перечисленных ресурсовСписок id ресурсов через запятую, у которых будет показана вкладка Сообщения. Укажите *, что бы показывать у всех ресурсов.
ec_show_templatesПоказывать вкладку у ресурсов с перечисленными шаблонамиСписок id шаблонов через запятую, у ресурсов с этими шаблонами будет показана вкладка Сообщения. Важно, этот параметр работает в связке с предыдущим, если хоть одним правилом показ вкладки разрешен, она будет показана. Укажите *, что бы показывать у всех шаблонов.
ec_message_grid_fieldsСписок полей сообщений в списке Список полей, доступных в таблице сообщений в административном интерфейсе, через запятую. По-умолчанию: id, thread, subject, date, user_name, user_email, user_contacts, rating, text, reply_author, reply_text, ip.
ec_message_window_layoutРазметка окна редактирования сообщенияРазметка окна редактирования сообщения в административном интерфейсе. Подробнее в разделе документации «Плагины и кастомизация».
ec_message_grid_filtersФильтры в списке сообщенийСтрока с массивом данных для выпадающего списка фильтра в сообщениях. Пример данных: [[«Все»,»»], [«Отзывы», «resource-%»], [«Вопросы», «question-%»], [«Отзывы на главной», «home»]]. Таким образом данная строка содержит массив, каждый элемент которого в свою очередь тоже массив из 2х элементов: заголовка и строки для фильтрации (оператор LIKE) по полю Thread.name. Для заголовка можно указывать записи словаря, например вместо «Все» написать _(«ec_all_messages») и создать такую запись в лексиконах. По-умолчанию настройка пуста, при этом поле с фильтром скрывается.
ec_thread_grid_fieldsСписок полей цепочек в спискеСписок полей, доступных в таблице цепочек в административном интерфейсе. По-умолчанию: id, resource, name, title, count, rating_simple, rating_wilson.
ec_thread_window_fieldsСписок полей при редактировании цепочкиСписок полей, доступных в окне редактирования цепочки в административном интерфейсе. По-умолчанию: resource, name, title, rating_simple, rating_wilson.
ec_use_rteИспользовать Rich Text Editor для поля ОтветВключите, чтобы отвечать пользователям с использованием визуального редактора (заранее установленного в системе, например TinyMCE.
ec_use_reply_templates
Использовать шаблоны ответовВключите, чтобы создать шаблоны для быстрого ответа. Создавать новые шаблоны можно в разделе Приложения => easyComm. В шаблонах можно использовать поля Сообщения, например: «Добрый день, {$user_name}! Мы выслали данные на вашу почту {$user_email}».

комментарии, отзывы, вопросы на сайте / Русскоязычное сообщество MODX

Установить easyComm >>

Компонент предназначен для создания на сайтах таких модулей/разделов, как:

  • Отзывы,
  • Комментарии,
  • Вопрос-ответ.
Название easyComm произошло от Easy Communication, или Easy Comments, кому как больше нравится.

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

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


Введение

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

В настоящее время существуют несколько решений для MODx, решающих вопрос комментирования (Tickets, старый Quip, ModxTalks), однако они заточены под сайты социальной направленности, блоги, обладают явно избыточным функционалом и несколько сложной настройкой в том случае, если вас не устраивает их внешний вид или работа по-умолчанию.

Поэтому долгое время я использовал свое решение на базе MIGx, я даже писал про него modx.pro/help/3967/#comment-29953

Сделав десяток сайтов, пришел к пониманию того, что нужно:

— сообщения должны оставлять неавторизованные пользователи
— сообщения публикуются после модерации администратором
— минимально необходимый набор полей: имя, электронная почта, контакты (отдельно), текст сообщения, тема сообщения
— возможность администратора ответить на это сообщение, указав при этом кто отвечает (например свое ФИО)
— уведомление администратора о новом сообщении с сайта
— уведомление пользователя о публикации или получении ответа на его сообщение по почте
— достаточно простой в использовании компонент
— возможность внедрить на одну страницу несколько блоков с сообщениями (например Отзывы и Вопросы на разных вкладках, но в рамках одной страницы)

Используя эти требования в качестве своеобразного ТЗ я и написал этот компонент.

Видео работы, 3.5 минуты


При просмотре поставьте высокое качество.

Описание


Для понимания общей сути нужна написать, что компонент оперирует 2мя объектами: Сообщение (ecMessage) и Цепочка (ecThread). Каждое сообщение относится к определенной цепочке, а цепочка в свою очерез к определенному ресурсу. Это позволяет создать несколько цепочек для одного ресурса.

Поля объекта ecThread:

  • resource — id ресурса, к которому относится цепочка
  • name — уникальное имя цепочки
  • title — заголовок цепочки (для удобства)
  • message_last — id последнего опубликованного и неудаленного сообщения
  • message_last_date — дата последнего опубликованного и неудаленного сообщения
  • count — количество опубликованных и неудаленных сообщений в цепочке
  • properties — параметры, с которыми вызывался сниппет ecForm, создавший эту цепочку
  • extended — не используется в текущей версии
Поля объекта ecMessage:
  • thread — id цепочки
  • subject — тема сообщения, например вы можете создать выпадающий список со значениями «служба поддержки», «отдел продаж»
  • date — дата и время сообщения
  • user_name — имя пользователя, который оставил сообщение
  • user_email — электронная почта
  • user_contacts — контактная информация
  • text — текст сообщения
  • reply_author — автор ответа
  • reply_text — текст ответа
  • notify — уведомить об ответе пользователя
  • notify_date — дата последнего уведомления пользователя (что бы не уведомлять 2 раза)
  • extended — не используется в текущей версии
Фронтенд
При помощи сниппета
[[!ecForm]]
отображается форма добавления нового сообщения.

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

Менеджер в специальном разделе может управлять сообщениями, например опубликовать его, удалить, или оставить свой ответ. При редактировании сообщения менеджер имеет возможность установить галочку «уведомить об ответе», в этом случае пользователь получит уведомление о том, что менеджер опубликовал сообщение на сайте или дал ответ на него. Возможны различные варианты действий, например: опубликовал без ответа; опубликовал и оставил ответ; не публиковал на сайте, но ответил.

При помощи сниппета

[[!ecMessages]]
выводятся сообщения на странице.

Административный интерфейс
После установки компонента в меню Приложения появится новый пункт меню «Сообщения».

Раздел имеет 2 вкладки: Сообщения и Цепочки.

Сообщения
В этом разделе собраны все сообщения на сайте, последние добавленные будут сверху.

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

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

У окна редактирования сообщения 3 вкладки:
— Сообщение. Основная информация о сообщении.
— Ответ. Поля для ответа на сообщение. Заполняется менеджером сайта.
— Настройки. Служебные настройки.

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

Цепочки
В этом разделе собраны все цепочки сообщений.

Каждая цепочка привязана к определенному ресурсу и имеет свое уникальное имя, по умолчанию «resource-[[*id]]». Для одного ресурса может существовать несколько цепочек, например «reviews-[[*id]]» (Отзывы) и «questions-[[*id]]» (Вопросы).

Кроме того, для цепочки можно задать Заголовок, например «Отзывы о компании» для удобства работы.

В контекстом меню цепочек доступен пункт «Управление сообщениями этой цепочки», которые открывает отдельную вкладку с сообщениями только этой цепочки.

Цепочки создаются автоматически при отображении формы с добавлением сообщения на сайте.

Управление сообщениями через вкладку «Сообщения» при редактировании ресурсов.
Если в настройках включено отображение вкладки Сообщения, то при редактировании ресурса появится эта вкладка. Ее функционал идентичен тому, что есть в меню «Приложения» с той разницей, что доступны только те сообщения и цепочки, которые относятся к текущему ресурсу.

Ссылки


Документация: docs.modx.pro/komponentyi/easycomm
Установочный пакет: modstore.pro/packages/utilities/easycomm

Примечание


easyComm для своей работы использует pdoTools, не забудьте его установить.

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

Обновления


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

09.04.2015, версия 1.0.4-beta2, Оценки и Рейтинг
Заметка: modx.pro/components/5299

13.04.2015, версия 1.1.0-beta, Плагины для добавления полей
Заметка: modx.pro/components/5299
Документация: docs.modx.pro/komponentyi/easycomm/plaginyi-i-kastomizacziya

05.06.2015, версия 1.2.0-pl, Дополнительное поле Изображение
Заметка: modx.pro/components/5707

31.05.2017, версия 1.3.2-pl, поддержка Google ReCaptcha v2

Пожалуйста, не путайте с компонентом ReCaptchaV2, который лежит в репозитории MODX. easyComm поддерживает рекапчу от гугл не зависимо от того компонента и его установка не требуется!

Для того, что бы включить капчу, нужно:
1. Зарегистрировать сайт, получить site key и secret key, вписать их в настройки MODX (раздел easyComm, настройки ec_recaptcha2_site_key, ec_recaptcha2_secret_key).
2. Включить капчу, настройка ec_captcha_enable

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

Да, при обновлении — нужно перезаписать чанк tpl.ecForm, т.к. он изменился (или добавить в него плейсхолдер [[+recaptcha]] перед блоком с кнопкой).

Если у вас уже используется на сайте компонент ReCaptchaV2 (в других формах, реализованных через Formit), то вам придется самостоятельно подумать, как подключать скрипт от google recaptcha только 1 раз и как совместить работу компонентов. Это уже все индивидуально.

24.05.2018, версия 1.5.0-pl, переезд на Fenom.
В этой версии синтаксис чанков был изменен на Fenom, как более понятный.
Кроме того, добавилась вкладка с историей изменения Сообщения (создано, обновлено, удалено).
И да, внедрен механизм защиты от «левых установок», не через ModStore. Последняя версия без этого механизма — 1.4.3. Если вас устраивает отсутствие обновлений и не нужна поддержка — пользуйтесь)

19.12.2018, версия 1.6.0-pl, Множественные поля рейтинга
Заметка: modx.pro/components/17177
Документация: docs.modx.pro/komponentyi/easycomm/neskolko-polej-s-rejtingom

26.12.2018, версия 1.7.0-pl, Расширенный вывод рейтинга
Заметка: modx.pro/components/17212

16.01.2019, версия 1.8.0-pl, Шаблоны ответов
Заметка: modx.pro/components/17334

04.02.2019, версия 1.8.6-pl, Новые возможности
— прямая ссылка на сообщение в письме менеджеру (через GET параметр ecmessage)
— Wysiwyg редактор в поле Ответ в панели управления (отключаемый)
— Возможность настраивать фильтры в списке сообщений в панели управления (настройка ec_message_grid_filters)

15.11.2019, версия 1.10.0-pl, Голосование за сообщения
Заметка: modx.pro/components/19235

Фильтры phx и модификаторы в modx revolution

Автор Алексей На чтение 5 мин. Опубликовано

Последнее изменение поста: 21 октября 2018 в 17:55

Сегодня полезная статья про фильтры phx и их модификаторы MODX Revo при помощи которых вы сможете прямо внутри шаблонов, манипулировать значением различных тегов.

Зачем они нужны?

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

[[*id:is=`1`:then=`[[$carusel]]`]]

Где: 1 — id главной страницы,
$carusel — чанк с кодом карусели (баннера).
Только полные чайники создают новый шаблон, ради нескольких строк кода карусели. Я тоже таким был, в общем не отчаиваемся и внедряем phx в разработку.

Разберем вышеприведенную конструкцию по подробнее:

[[*id:is=`1`:then=`[[$carusel]]`]]

*id — выводит id текущей страницы;

:is=`1`:then=

— проверяет равно ли *id == 1? и если равно, то выводится содержимое then;
$carusel — выводит чанк carusel.

Вместо *id, можно использовать и другие поля, например *template — выведет текущий используемый шаблон. Либо можно проверять заполнено или нет TV-поле (пусть будет *keywords) и если оно заполнено, то выводить его. Разберем данный случай поподробнее. Дано стандартная разметка:

<meta name="keywords" content="ключ, ключ, ключ">

Задача: не выводить эту строку, если TV keywords не заполнено.
Решение.

[[*keywords:!empty=`<meta name="keywords" content="*keywords">`]]

Нагрузки

Нужно следить за обработкой модификаторов, бездумное их использование вызовет лишние нагрузки. Вернемся к карусели, данная запись считывается слева направо и МОДХ выполняет все вложенные условия, в независимости от того, верное условие или нет, будет ли выводится на текущей странице содержимое [[$carusel]], в любом случае его содержимое обработается. В связи с этим более целесообразно переписать запись:

[[$caru[[*id:is=`1`:then=`sel`]]]]

В этом случае, содержимое чанка $carusel, будет обработано в случае, если выполняется условие

*id:is=`1`

т.к. выполняется

[[*id:is=`1`:then=`sel`]]

и если id текущей страницы равно 1, последнее что обрабатывается — [[$carusel]], если id не равно 1, тогда — [[$caru]]. А если чанка $caru — нет в элементах, то и нагрузки не будет.

А вообще идеальный вывод будет выглядеть так.

[[$[[*id:is=`1`:then=`carusel`]]]]

О том, как правильно интегрировать верстку в modx revo в рекомендую почитать здесь.

Примечание! Вы можете комбинировать сколько угодно модификаторов под логику работы компонентов сайта, но главное помните, их основная суть — облегчить разработку, а не усложнять без того сложные задачи. Обычно, самый эффективный и действенный способ — это самый простой, так как чем проще и понятней конструкция — тем легче с ней будет работать в дальнейшем. Ниже перечислены основные модификаторы, которые можете использовать для любого тега МОДХ Рево.

Модификаторы условия

Модификаторы условия

Модификаторы строки

Модификаторы строки

Цепочки модификаторов

Хорошим примером построения цепочки будет отформатировать строку даты в другой формат, например, так:

[[+mydate:strtotime:date=`%Y-%m-%d`]]

Прямой доступ к таблице «modx_user_attributes» в базе данных с использованием выходных модификаторов вместо сниппета можно осуществить просто путем использования модификатора userinfo. Выбрать соответствующий столбец из таблицы и указать его в качестве свойства выходного модификатора, например, так:

Внутренний ключ пользователя: [[!+modx.user.id:userinfo=`internalKey`]]
Логин: [[!+modx.user.id:userinfo=`username`]]
Полное имя: [[!+modx.user.id:userinfo=`fullname`]]
Роль:  [[!+modx.user.id:userinfo=`role`]]
E-mail: [[!+modx.user.id:userinfo=`email`]]
Телефон: [[!+modx.user.id:userinfo=`phone`]]
Мобильный телефон: [[!+modx.user.id:userinfo=`mobilephone`]]
Факс: [[!+modx.user.id:userinfo=`fax`]]
День рождения: [[!+modx.user.id:userinfo=`dob`:date=`%Y-%m-%d`]]
Пол: [[!+modx.user.id:userinfo=`gender`]]
Страна: [[!+modx.user.id:userinfo=`country`]]
Штат: [[!+modx.user.id:userinfo=`state`]]
Zip код: [[!+modx.user.id:userinfo=`zip`]]
Фото: [[!+modx.user.id:userinfo=`photo`]]
Комментарий: [[!+modx.user.id:userinfo=`comment`]]
Дата последнего входа: [[!+modx.user.id:userinfo=`lastlogin`:date=`%Y-%m-%d`]]
Количество входов: [[!+modx.user.id:userinfo=`logincount`]]

Особое внимание обращаем на восклицательный знак [[!+modx.user.id]]. Он позволяет НЕ кэшировать содержимое вывода. Почему нужно не кешировать? Представим это так: на сайте 5 пользователей. Первый пользователь зашел на страницу с вызовом:

Добро пожаловать, [[!+modx.user.id:userinfo=`username`]]!

По задумке на этой странице, выводится приветственное сообщение пользователю. Так вот, если результат будет кешироваться, то при первом входе на эту страницу — сохранится имя пользователя который только что зашел — и всем остальным будет показываться не их имя, а имя того пользователя который вошел на эту страницу первым. Чтобы этого избежать — просто не кэшируем этот тэг, с помощью восклицательного знака перед вызовом [[!+modx…

P.s.: Не забываем отключать кэширование тегов, где нужно! Чтобы это сделать — нужно ИЗБАВЛЯТЬСЯ от восклицательных знаков ! ). Результаты большинства сниппетов вплоне себе могут работать из кэша. В следующем уроке разберем Форматирование дат и времени.

Первичная настройка MODX (Revo)

Автор Алексей На чтение 4 мин. Опубликовано

Последнее изменение поста: 22 октября 2018 в 19:43

Сегодня мы произведем основные настройки MODX Revo.

Настройка MODX

Заходим в админку MODX (http://ваше_доменное_имя/manager/) и переходим на панель настроек «Системные настройки».

Переходим в системные настройки MODX

 

Здесь можно фильтровать настройки, относящиеся к тому или иному компоненту системы MODX, а также настройки, относящиеся к одному и тому же компоненту, но сгруппированные по категориям в зависимости от выполняемой функции.

сортировка системных настроек modx

Идем по порядку (по категориям).

Настраиваем следующие параметры для ядра (core).

Авторизация и безопасность

Разрешить пользователям использовать один адрес электронной почты — allow_multiple_emails — нет

Кеширование пропускаем

Визуальный редактор

Редактор — which_editor — TinyMCE RTE (он сам должен поставиться если вы его установили)

Редактор для элементов — which_element_editor — Ace (он тоже сам должен поставиться если вы его установили)

Файловая система

Максимальный размер загрузки — upload_maxsize — 629145600 или какой вам нужно (я установил данный параметр в 600 МБ для возможности загружать видео файлы).

Дружественные URL

Пока что пропускаем, по их настройке будет отдельная статья: Настройка ЧПУ MODX.

Шлюз пропускаем.

Словарь и язык 

Язык текстового редактора во фронтенде сайта — fe_editor_lang — ru

Локаль — locale — ru_RU.utf8

Почта пропускаем.

Панель управления

Первый день недели — manager_week_start — 1

Понедельник в России.

Источник файлов по умолчанию — default_media_source стоит 1, но рекомендую создать новый источник файлов и указать его)

Разместить TV ниже контента — tvs_below_content — Да

Дополнительные пользовательские поля для страниц будут располагаться ниже поля ввода основного контента. Если опция сейчас не понятна, то в дальнейшем разберётесь. Опция просто для удобства интерфейса админки. Мне удобнее так.

Поле для названия узла в дереве ресурсов — resource_tree_node_name — menutitle

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

Поле для подсказки для узла в дереве ресурсов. — resource_tree_node_tooltip — alias

Делается для того, чтобы можно было понять, какой у ресурса адрес

Показывать экран приветствия — welcome_screen — нет

phpThumb, Прокси, сессии и куки пропускаем.

Сайт

Не показывать в меню по умолчанию — hidemenu_default — Да

У вновь создаваемых ресурсов (страниц) по умолчанию будет снята галочка «Отображать в меню». В любой момент её можно будет включить. Но зачем лишний раз снимать галочку, ведь не все создаваемые в дальнейшем страницы сайта будут отображаться в меню. Установив опцию в «Да» вам в дальнейшем не нужно будет совершать лишних действий.

Схема URL — link_tag_scheme — -1 (минус 1)

Публиковать по умолчанию — publish_default — Да

Та же история, что и с предыдущей опцией, только наоборот. При создании страницы уже будет стоять отметка «Опубликовать». Если ресурс не опубликован, то он будет недоступен посетителям сайта. Но мы же создаём публичные страницы – так ведь?

Название сайта — site_name — введите название сайта, доступное в дальнейшем для вставки плэйсхолдером [[++site_name]]. Любое название, например, Строительная компания ООО «Рога и копыта».

Сообщение о недоступности сайта — site_unavailable_message — Сайт находится на техническом обслуживании. Пожалуйста, зайдите чуть позже.

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

В Страница ошибки 404 «Документ не найден» — error_pageСтраница «Сайт не доступен» site_unavailable_page и Страница ошибки 403 «Доступ запрещен» unauthorized_page стоят единицы (т.е. переадресовывается все на главную страницу, рекомендую создать для этих ошибок отдельные страницы и назначить их в настройках)

устанавливаем настройки для системных страниц

Система и сервер

Отображение RSS-канала «Новости MODX» — feed_modx_news_enabled — Нет

Отображение RSS-канала «Уведомления безопасности MODX» — feed_modx_security_enabled — Нет

Тип сервера — server_protocol — https (если у вас установлен ssl сертификат, если его нет, то идем дальше)

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

Идем в раздел mixedimage и в Транслитерация файлов (mixedimage.translit) ставим Да.

Чтобы загружаемые к ресурсам картинки транслитерировались.

Затем идем в раздел tickets и в Считать просмотры страниц гостями (tickets.count_guests) ставим Да.

Идем в раздел admintools и в Включить авторизацию через email (admintools_email_authorization) ставим Да (если вы работаете на сервере — повышаем безопасность), так же я обычно ставлю Тема (admintools_theme) — dark.

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

В следующем уроке мы настроим ЧПУ MODX.

Фильтры phx ( модификаторы ) в modx revo

cat Добавляет к тегу строку. [[+num:cat=` раз`]], выведет к примеру «10 раз».
lcase, lowercase, strtolower Переведет значение тега в нижний регистр, аналогично функции php strtolower. [[*pagetitle:lcase]]
ucase, uppercase, strtoupper Переведет текст в верхний регистр, аналогично функции php strtoupper. [[*pagetitle:ucase]]
ucwords Переведет каждую первую букву, каждого слова в верхний регистр, аналогично функции php ucwords. [[*pagetitle:ucwords]]
ucfirst Переведет только первую букву строки в верхний регистр, аналогично функции php ucfirst. [[*pagetitle:ucfirst]]
htmlent, htmlentities Преобразует все символы в соответствющие HTML сущности (для тех символов, для которых HTML сущности существуют), аналогично функции php htmlentities. Использует текущие настройки системы «modx_charset» с флагом «ENT_QUOTES». [[*pagetitle:htmlentities]]
esc,escape Экранирует разные «плохие символы», так же экранирует [, ] и `. [[*content:esc]]
strip Заменяет все переносы строк, табуляции и множественные пробелы с на один пробел. [[*content:strip]]
stripString Вырезает из строки заданную строку. [[*pagetitle:stripString=`вц`]]
replace Обычная замена. [[*pagetitle:replace=`вц==конфетка`]]
striptags, stripTags,notags,strip_tags Вырезает все теги, кроме разрешенных, аналогично функции php strip_tags [[*longtitle:strip_tags=`

`]]

len,length, strlen Возвращает длину строки, аналогично функции php strlen [[*longtitle:strlen]]
reverse, strrev Переворачивает строку, аналогично функции php strrev [[*longtitle:reverse]]
wordwrap Устанавливает переносы в зависимости от кол-ва символов слова, аналогично функции php wordwrap [[*pagetitle:wordwrap=`10`]]
limit Устанавливает лимит на длинну строки и обрезает ее. [[*pagetitle:limit=`10`]]
ellipsis Устанавливает лимит на длинну строки и обрезает ее, добавляя три точки в конце [[*pagetitle:ellipsis=`10`]]
tag Вернет, запись тега. [[*pagetitle:ellipsis=`10`:tag]]вернет: [[*pagetitle:ellipsis=`10`:tag]]
add, increment, incr Вернет, значение + модификатор ( по умолчанию +1 ). [[+num:incr]] или [[+num:add=`97`]]
subtract, decrement, decr Вернет, значение модификатор ( по умолчанию -1 ). [[+num:decr]] или [[+num:decr=`97`]]
multiply, mpy Вернет, значение * модификатор ( по умолчанию *2 ). [[+num:mpy]] или [[+num:mpy=`5`]]
divide, div Вернет, значение / модификатор ( по умолчанию /2 ). [[+num:div]] или [[+num:div=`5`]]
modulus, mod Вернет, целочисленный остаток от деления значения на модификатор ( по умолчанию % 2. Вернет 1 или 0. ) [[+num:mod]] или [[+num:mod=`5`]]
ifempty, default, empty, isempty Вернет, указанный модификатор, если значение пусто. [[*pagetitle:empty=`Пусто`]]
notempty, !empty, ifnotempty, isnotempty Вернет, указанный модификатор, если значение не пусто. [[*pagetitle:!empty=`Не пусто!`]]
nl2br Вернет строку с «<br />» или «<br>» вставленные перед всеми (\r\n, \n\r, \n и \r)…, аналогично функции php nl2br [[*pagetitle:nl2br]][[*pagetitle:nl2br]]
date Аналогично функции PHP strftime. Значение — отформатировано. См. форматы дат. [[+birthyear:date=`%Y`]]
strtotime Аналогично функции PHP strtotime. Вернет дату. См. форматы дат. [[*createdon:strtotime]], — вернет типа «[[*createdon:strtotime]]»
fuzzydate Вернет дату. Типа вчера, сегодня…. [[*createdon:fuzzydate]], — вернет типа «[[*createdon:fuzzydate]]»
ago Вернет дату в прошедших секундах, минутах, неделях или месяцах. [[*createdon:ago]], — вернет типа «[[*createdon:ago]]»
md5 Аналогично функции php md5. [[+password:md5]].
cdata Вставляет строку в оболочку «CDATA» тегов. [[*pagetitle:cdata]].
userinfo Возвращает запрошенные модификаторов данные о пользователе. Значение должно быть id-пользователя ( modUser ). [[+modx.user.id:userinfo=`username`]].
isloggedin Возвращает true, если пользователь авторизирован в этом контексте. [[+modx.user.id:isloggedin]].
isnotloggedin Возвращает true, если пользователь не авторизирован в этом контексте. [[+modx.user.id:isnotloggedin]].
toPlaceholder Помещает результат вывода тега в плейсхолдер, причем там где был помещен — ничего не выводится, а телепортируется в указанный плейсхолдер. До этого модификатора можно использовать любые другие модификаторы. [[+number:toPlaceholder=`итого`]], помещает содержимое [[+number]] в плейсхолдер [[+итого]]. Можно усложнять запись добавляя в левую часть выражения любые другие модификаторы: [[+number:is=`10`:then=`ровно 10`:else=`точно не 10!`:toPlaceholder=`итого`]], если [[+number]] = 10, тогда выводим в плейсхолдер [[+итого]]: «ровно 10», если же нет «точно не 10!».
cssToHead Прописывает файл CSS в <link> элемент перед закрывающим тегом </head>, где значение тега модификатора вписывается в аттрибут «href». Используется modX.regClientCSS. [[+cssTV:cssToHead]] перед закрывающим тегом </head>, регистрирует CSS, например: <link rel=»stylesheet» href=»значение +cssTv» type=»text/css» />
htmlToHead Вписывает значение тега перед закрывающим тегом </head>. Используется modX.regClientStartupHTMLBlock. [[+htmlTV:htmlToHead ]] перед закрывающим тегом </head>, регистрирует значение тега [[+htmlTV]] в HTML код.
htmlToBottom Вписывает значение тега перед закрывающим тегом </body>. Используется modX.regClientHTMLBlock. [[+htmlTV:htmlToBottom]] перед закрывающим тегом </body>, регистрирует значение тега [[+htmlTV]] в HTML код.
jsToHead Прописывает файл JS в <link> элемент перед закрывающим тегом </head>. Используется modX.regClientStartupScript. [[+jsTV:jsToHead]] перед закрывающим тегом </head>, регистрирует JS, например: <script type=»text/javascript» src=»значение +jsTv»></script>
jsToBottom Прописывает файл JS в <link> элемент перед закрывающим тегом </body>. Используется modX.regClientScript. [[+jsTV:jsToBottom]] перед закрывающим тегом </body>, регистрирует JS, например: <script type=»text/javascript» src=»значение +jsTv»></script>
urldecode Аналогично функции php urldecode. [[+stringi:urldecode]].

MODX Revolution, MODX Revo, CMS MODX, бесплатные CMS

Возможности MODX Revolution

Хотя каждый пункт из списка ниже не способен полностью отразить всю доступную функциональность, простоту разработки и дружелюбность к пользователю системы управления MODX Revolution, вы cможете представить основные возможности, узнав о некоторых из них:

Безопасность и защита
MODX довольно серьезно заботится о безопасности. Вся архитектура MODX Revolution была создана с учетом требований безопасности. Каждый ввод данных фильтруется, а каждый запрос в базу данных при использовании API выполняется через подготовленные запросы (prepared statements), которые устраняют возможность SQL инъекции. Команда разработчиков постоянно проводит аудит кода MODX для того, чтобы быть уверенными в актуальности кода, и исправляет любые проблемы, которые могут возникнуть.
Полная свобода творчества
Система управления сайтами MODX позволяет создавать сайты точно такими, как вы их себе представляете, с абсолютно неограниченными возможностями для творчества. Мы считаем, что средства разработки сайтов должны учитывать творческое видение пользователей, не вводя никаких специальных ограничений.
Бесподобная оптимизация сайтов (SEO)
MODX позволяет вам практически без усилий контролировать вывод информации на все 100%. В отличие от других систем, которые требуют изучения сложных движков темизации, в MODX вы работаете напрямую с HTML и с таким количеством специальных переменных сайта, которые действительно вам нужны. Порой тратятся минуты на создание сайта, который занимает удивительно хорошие позиции в поисковых системах. А вследствие того, что разработчик сайта полностью контролирует и может изменять вывод информации в любое время, для внесения улучшений потребуется всего несколько кликов.
Устанавливайте MODX как и где хотите
Гибкая система установки позволяет развертывать систему практически в любых условиях. Вы можете установить ядро системы вне корня веб-сервера, переименовав директорию ядра для дополнительной безопасности. Также вы можете поддерживать несколько сайтов на MODX из одного набора файлов.
Устанавливайте дополнения (add-ons) внутри приложения
Система управления пакетами в MODX позволяет администраторам сайтов устанавливать, обновлять и переносить содержимое, шаблоны, дополнения или даже полностью сайты, не беспокоясь о потерянных шагах или зависимостях. Все работает из единого интерфейса внутри Менеджера MODX, который удаленно получает информацию с сайта MODX.
Новый Менеджер со встроенной системой индивидуализации
Свежий новый интерфейс, построенный на MODX API и работающий на индивидуальной реализации ExtJS, создает новые возможности для разработчиков MODX быстро разрабатывать индивидуальные интерфейсы и дополнения. Разработчики могут создавать такие интерфейсы Менеджера, которые будут показывать только специальные поля и меню, необходимые для обычных редакторов сайта.
Безопасность промышленного уровня, модели пользователей и аутентификация
Характеристики на основе списка управления доступом (ABAC, Attribute Based Access Control) позволяет администраторам сайтов детально разграничить доступ к сайтам на MODX Revolution. Аутентификация может производиться через встроенную систему пользователей, службу каталогов Active Directory, LDAP, OpenID или в сущности через любую другую систему, которая может использовать MODX API.
Прекрасная интернационализация и локализация
MODX Revolution предоставляет множество подходов для работы с мультиязычными сайтами. Среди них обязательно имеется подходящий вариант почти для любого сайта. Культуры и контексты могут работать вместе, создавая детальные настройки интернационализации внутри фреймворка. Это позволяет разработчикам определить язык, валюту и формат даты, а также еще что-либо, что может быть нужно локализовать в разработке.
Объектно-ориентированное ядро и API
Переписанная CMS с нуля при использовании xPDO система MODX позволяет легко работать со специальными источниками данных, даже с несколькими разными типами баз данных. Сочетание полностью объектно-ориентированным API с последовательной архитектурой работа с MODX делает программистов просто счастливыми.
Контексты
Системные настройки MODX с помощью контекстов могут быть перезаписаны, расширены, изолированы или разделены между доменами, поддоменами, подсайтами, несколькими сайтами, специфическими языковыми разделами, различными веб приложениями и т.д.
Расширяемое кеширование
Новое ядро и техника кеширования на уровне частей веб-страницы позволяют уменьшить общий размер кеша одновременно с уменьшением нагрузки сервера путем организации файлов кеша в иерархическую структуру директорий. Новое ядро MODX также позволяет сохранять результаты запросов базы данных в файл, память (при использовании memcached) или в индивидуальную систему кеширования. Это приводит к уменьшению нагрузки на базу данных и расширению возможностей для комфортной работы с высоконагруженными сайтами.
Фильтрация контента
Любой элемент MODX (TV, Content, Chunk, Placeholder) может иметь сложную систему пре- и постобработки, примененной через фильтры ввода и вывода. Например, вы можете использовать их для обрезки части текста, форматирования даты, математических вычислений или чего-либо еще, что вы могли бы придумать с маленьким кусочком кода.
Парсер контента с частичным кешированием страницы
MODX предоставляет полностью рекурсивный парсер. Любой элемент MODX, включая сниппеты, чанки, переменные шаблонов (TV) и плейсхолдеры могут быть сделаны некешируемыми для частичного кеширования страницы.
Расширения без изменений ядра
Объектно-ориентированное ядро MODX позволяет вам создавать свои собственные индивидуальные реализации множества возможностей ядра без изменений кода ядра. Это помогает защитить разработку и гарантирует возможность обновления в будущем.
Переопределяйте все!
В MODX вас никто не заставляет разрабатывать только в одном единственно возможном стиле. Если у вас есть специфические требования, вы можете использовать индивидуальную программу работы MODX путем расширения классов ядра. Это включает в себя парсер контента, обработку запросов и ответов, сессии, обработку ошибок, частичное кеширование страниц и кеширование результатов запросов базы данных.
Родные JSON и очередь сообщений
MODX включает и использует родную обработку JSON для взаимодействия с другими системами с помощью архитектуры REST. Простая встроенная очередь сообщений позволяет реализовать публикацию сообщений и подписку на передачу сообщений для продуманного взаимодействия с внешними системами в промышленных приложениях.
Сессии, управляемые базами данных
Параметры конфигурации обработчика сессий реализуют совместимость с системами кластеризации веб-серверов.
Журналирование ядра
Система предоставляет различные уровни ошибок и выводимых данных, включая ECHO, HTML и FILE. Разработчики используют эту функциональность для журналов аудита, аудита ошибок, отладки или других целей.

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

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