Довольно часто новичкам, которые начинают работать с MODX, приходится сталкиваться с тем, что для решения какой-нибудь элементарной задачи приходится долго искать готовые решения. Сейчас мы разберем, как писать свои сниппеты?
Разберем на небольшом примере.
Часто приходится иметь дело со следующей ситуацией: есть сайт-каталог, товары в каталоге имеют численную характеристику, будь то вес, или чаще всего цена. В том случае, если цена используется для фильтрации товаров, тогда TV параметр должен иметь формата числа, но для пользователей числа надо форматировать. Вот этим мы как раз и займемся.
Есть MODX Revolution, есть TV-параметр price , в нем есть значение 5000000 (пять миллионов). Согласитесь, понять 5 миллионов или 500 тысяч — понять довольно сложно, но так как оно численное, с ним удобно работать для сравнения и фильтрации.
Для форматирования числа будем использовать PHP функцию number_format() . Вызов сниппета будет примерно выглядеть следующим образом:
Infinite Content Possibilities with Template Variables (TVs) in MODX Revolution
[[num_format? dec=`2` tho=` `]]
Наш сниппет принимает следующие параметры:
- num — TV параметр, или число, которое нужно отформатировать;
- dec — количество символов после запятой;
- sep — разделитель между целой и дробной частью;
- tho — разделитель между тысячными разрядами.
Все эти параметры ни что иное, как названия переменных, которые мы можем использовать в сниппете.
Заходим в раздел «Сниппеты» и создаем новый с названием num_format .
Вставляем в него следующий код:
if ($num == ») // Значение из TV параметра $num = 0; if ($dec == ») // число знаков после запятой $dec = 2; if ($sep == ») // разделитель дробной части $sep = ‘,’; if ($tho == ») // разделитель тысячого разряда $tho = ‘ ‘; $output = number_format( $num, $dec, $sep, $tho); return $output;
Как вы уже наверно заметили, в коде сниппета можно использовать те переменные, которые были определены при его вызове как параметры.
В сниппете можно использовать переменные, которые были определены при его вызове как параметры.
В первых строчках сниппета определяем значения по-умолчанию. Сделано это прежде всего для того, чтобы максимально универсально использовать PHP функцию.
Давайте взглянем на то, что за результат мы получим, если будем вызывать наш сниппет при различных параметрах:
// [[num_format]] 0,00 // [[num_format? dec=`2`]] 5 000 000,00 // [[num_format? dec=`3` getUser(); echo $user->get(‘username’);
Источник: dmitriyilichev.com
ТОП плагинов для MODX Revolution — какие пакеты устанавливать на новом сайте
При создании сайта на MODX большая часть реализуется дополнениями. По мере развития MODX их становится все больше, поэтому выношу в отдельный список самые полезные, необходимые почти на любом сайте, с кратким описанием функционала.
SortableSidebar: A custom Input Tv for MODX Evolution 1.05
Олег Толочко , 18 Августа 2022
900 просмотрели, 2 комментировали
Поставщики пакетов
sdStore
Есть 2 основных поставщика пакетов для MODX: modx.com и modstore.pro. Первый — это основное сообщество, второй — русскоязычное сообщество, где есть более актуальные версии некоторых пакетов. После установки MODX в админке доступен только поставщик modx.com. Чтобы не добавлять modstore ручками, можно установить пакет sdStore, который добавит поставщика modstore.pro автоматически. Ставим обязательно.
Удобство разработки
Ace
Отличный редактор кода с подсветкой синтаксиса, подсказками, быстрым вводом и горячими клавишами. Считаю обязательным для разработки сайта, поскольку Ace сильно упрощает написание кода в админке и фактически избавляет от необходимости работать в отдельном текстовом редакторе.
tagElementPlugin
Позволяет редактировать элементы (чанки и сниппеты), вызывая их непосредственно в коде шаблона. Очень удобный плагин, я считаю, обязателен к установке. Прямо в шаблоне можно быстро выбрать и открыть чанк или сниппет во всплывающем окне и быстро что-то поправить. А если элемент не найден — будет предложено сразу же его создать.
modDevTools
Выводит связи на странице редактирования чанка, шаблона и сниппета. Например, у чанка можно посмотреть, в каких шаблонах он используется, какие чанки и сниппеты в нем вызываются, а также список ресурсов, в которых этот чанк вызывается. Можно устанавливать, можно нет — попробуйте и решите, добавляет удобства при разработке. Но в целом полезная штука.
dbAdmin
Пакет для управления таблицами базы данных непосредственно в админке. Необязателен, но иногда может быть полезен.
Автоматизация
Некоторые процессы можно делать ручками, а можно автоматизировать. Эти пакеты MODX позволят сократить время на ручном выполнении задач.
phpThumbOn
Компонент для оптимизации изображений при помощи популярного скрипта phpThumb. Позволяет обрезать изображения и изменять их размеры на сервере, создавать превью изображений, накладывать водяные знаки и добавлять различные эффекты. Для сайтов с изображениями (считай почти всех) — обязателен.
MinifyX
Позволяет минифицировать и склеить скрипты и стили в два конечных файла (css и js). Это уменьшает количество запросов к серверу и увеличивает скорость загрузки страниц. Для оптимизации скорости загрузки ставим обязательно.
BackupMODX
Удобное создание бэкапов непосредственно в админке.
filetranslit
Транслитерация файлов при загрузке через файловый менеджер.
Jevix
Фильтрация контента и типографики.
controlErrorLog
Управление журналом ошибок.
FixedPre
Автоматически заменяет символы тегов MODX и PHP на их HTML коды в пределах тега , чтобы они не обрабатывались парсером и выводились пользователю на странице как обычный текст. Например, < в < и ~ в и т.д.
SEO (поисковая оптимизация)
Translitor
Компонент автоматически делает транслитерацию псевдонимов ресурса из заголовка (pagetitile) в ЧПУ (alias). Удобное дополнение, так как при создании страницы, даже если забыть указать ЧПУ вручную — он сгенерируется на основе заголовка страницы.
SEO Suite
Объединил пакеты SEO Pro и SEO Tab. Закрывает почти все задачи по поисковой оптимизации сайта: метатеги, настройка индексации, редиректы, карта сайта, разметка соцсетей. Ставим обязательно.
SEO Pro (в составе SEO Suite)
Проверяет длину полей title и description, добавляет фокусное ключевое слово (keywords) и показывает, как страницы будут выглядеть в поисковой выдаче.
SEO Tab (в составе SEO Suite)
Карта сайта, вкладки настройки индексации в ресурсе.
Расширение функционала
pdoTools
Это целый пакет дополнений для создания меню, выборки и вывода ресурсов, генерации хлебных крошек (breadcrumbs), организации постраничной навигации по сайту, вывода списка пользователей и xml-карты веб-сайта. Ставим обязательно.
MIGX
Очень функциональное дополнение. Позволяет создавать множественные TV поля, каждое из которых будет как бы мини-таблицей. Можно создать слайдер, галерею, блок преимуществ и подобные штуки. А можно создать свою таблицу в базе данных и быстро вывести в админке через MIGX_DB. Ставим по необходимости.
Collections
Компонент для группировки ресурсов в одну коллекцию. Добавляет усовершенствованную версию контейнера, в котором вложенные ресурсы отображаются в виде функциональной таблицы, и скрываются из дерева ресурсов. Это сильно разгружает админку, особенно при большом количестве страниц, так как все вложенные ресурсы скрываются из меню.
Значительно ускоряет управление ресурсами, так как в таблице можно сразу редактировать некоторые поля, не открывая страницу ресурса. Позволяет создавать шаблоны коллекций и задавать дочерним ресурсам ряд параметров по умолчанию. Ставим если есть много однотипных ресурсов: товары, статьи, новости и подобное.
Tagger
Позволяет создавать теги для ресурсов, выводить теги конкретного ресурса или облако тегов всего сайта. Используется для создания тегов в блоге или интернет-магазине.
Gallery
Позволяет создавать галереи изображений.
HitsPage
Для создания счетчика просмотров страницы.
SyntaxHighlighter
Добавляет возможность подсветки синтаксиса в блоках кода в статях.
FormIt
Дополнение для создания и обработки динамических форм на сайте. Загружаем если на сайте предусмотрены формы обратной связи.
AjaxForm
Сниппет для отправки форм со страницы сайта через Ajax.
Удобство администрирования
ClientConfig
Удобнейший компонент от Марка Хамстры для редактирования собственных параметров сайта на MODX Revolution. Применяется для регулярного обновления слогана, изменения цвета кнопок в зависимости от определенных условий, хранения контактных данных и т. д.
frontendManager
Позволяет получать доступ к редактированию ресурсов прямо в пользовательской части сайта. Вы можете просматривать страницы и тут же редактировать их, если авторизованы в админке. В меню менеджера также можно вывести ссылки, например, на файл скриптов и стилей, что тоже очень удобно — убирает необходимость заходить в админку.
MarkdownParser
Позволяет работать с популярным форматом разметки markdown. В контенте ресурса весь текст, обрамленный в тег при рендеринге отобразиться как готовый html. Прекрасно дружит с обычным HTML. Аналогичный функционал предоставляет модуль Markdown Василия Наумкина, но он работает как сниппет и принимает на вход весь текст полностью, а MarkdownParser дает возможность использовать его выборочно.
Источник: digitalsfera.ru