Дополнения для MODX Revolution

В данном материале перечислены полезные дополнения для MODX Revolution, как отдельные сниппеты, плагины, так и целые компоненты.

Список будет периодически правиться, что-то удалится, что-то добавится. У каждого дополнения будет ссылка для скачивания. Все дополнения протестированы и активно используются :)

Навигация по статье:


СНИППЕТЫ:

Вывод iframe-видео с YouTube

Создаем сниппет с именем iframeYouTube, код сниппета:

<?php
$url = $modx->getOption('url', $scriptProperties, false);
$width = $modx->getOption('width', $scriptProperties, 560);
$height = $modx->getOption('height', $scriptProperties, 315);

if (empty($url)) {
    $output = 'Не указано значение в параметре &url';
} else {
    $video = parse_url($url, PHP_URL_QUERY);
    parse_str($video, $param);
    $src = $param[v];

    $output = '<iframe width="' . $width . '" height="' . $height . '" src="https://www.youtube.com/embed/' . $src . '" frameborder="0" allowfullscreen></iframe>';
}

return $output;
?>

Использование:

[[iframeYouTube?
&url=`https://www.youtube.com/watch?v=_sI_Ps7JSEk`
&width=`650`
&height=`400`
]]

Вывод изображения превью видео с YouTube

Создаем сниппет с именем imgYouTube, код сниппета:

<?php
$url = $modx->getOption('url', $scriptProperties, false);

if (empty($url)) {
    $output = 'Не указано значение в параметре &url';
} else {
    $video = parse_url($url, PHP_URL_QUERY);
    parse_str($video, $param);
    $src = $param[v];

    $output = 'https://img.youtube.com/vi/'. $src .'/0.jpg';
}

return $output;
?>

Использование:

<img src="[[imgYouTube?url=`https://www.youtube.com/watch?v=_sI_Ps7JSEk`]]">

Автоматический копирайт, в формате: 2017 - 2018 | Текст

Создаем сниппет с именем copyright, код сниппета:

<?php
$year = date('Y');
$start = $modx->getOption('start', $scriptProperties, $year);
$text = $modx->getOption('text', $scriptProperties, false);

if (empty($start)) {
    $output = 'Указано пустое значение в параметре &start';
} else {
    if ($start != $year) {
        $output = "{$start} – {$year} {$text}";
    } else {
        $output = "{$start} {$text}";
    }
}

return $output;
?>

Использование, лучше вызывать не кэшированным:

© [[!copyright? &start=`2017` &text=`| [[++site_name]]`]]

ПЛАГИНЫ:

Экранирование кода

Создаем плагин и привязываем его к событию OnWebPagePrerender, код плагина:

<?php
if ($modx->context->get('key') != 'mgr') {
    // Задаем массив id шаблонов, для которых будет работать плагин
    $templates = [8];
    $template = $modx->resource->get('template');

    if ($modx->event->name == 'OnWebPagePrerender' && in_array($template, $templates)) {
        if (!function_exists('getTextBetweenTags')) {
            function getTextBetweenTags($text) {
                $pattern = '/<code>(.*?)<\/code>/s';
                preg_match_all($pattern, $text, $matches);
                return $matches;
            }
        }

        $html = &$modx->resource->_output;

        $codes = getTextBetweenTags($html);
        $codes = (isset($codes[1])) ? $codes[1] : array();

        foreach ($codes as &$code) {
            $codeClean = htmlentities($code);
            $codeClean = trim($codeClean);
            $codeClean = nl2br($codeClean);

            $html = str_replace($code, $codeClean, $html);
        }
    }
}
?>

Использование. Любой код внутри тега <code></code> будет экранирован:

<code><a href="[[~25]]"></a></code>

Сжатие HTML-кода сайта в одну строку

Создаем плагин и привязываем его к событию OnWebPagePrerender, код плагина:

<?php
if ($modx->context->get('key') != 'mgr') {
    $output = &$modx->resource->_output;
    $output = preg_replace('|\s+|', ' ', $output);
}
?>

КОМПОНЕНТЫ:

Ace

modx.com/extras/package/ace

Настраиваемый редактор кода с подсветкой синтаксиса, есть разные темы и прочее.

AjaxForm

modx.com/extras/package/ajaxform
modstore.pro/packages/utilities/ajaxform

Компонент добавляет возможность отправлять письма с формы через Ajax. По умолчанию работает с Formit.

AutoTemplate

modx.com/extras/package/autotemplate

Компонент, который автоматически устанавливает шаблон соседнего ресурса для нового ресурса, а если соседнего нет - установит шаблон родителя. Данный компонент уже не актуален, с версии MODX 2.7 данный функционал встроен в ядро.

Batcher

modx.com/extras/package/batcher

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

CKEditor

modx.com/extras/package/ckeditor

Визуальный редактор текста, с лаконичной темой "moono-lisa".

ClientConfig

modx.com/extras/package/clientconfig

Создание и хранение пользовательских настроек в удобном виде (создается вкладка в меню приложений). Можно группировать и создавать неограниченное кол-во настроек.
Например, мы создали настройку "Номер телефона" (с ключом "phone") - теперь в любом месте сайта ее можно вызвать через [[++phone]], как в содержании, шаблоне, так и при вызове сниппета, а правится все в одном месте.

filetranslit

modx.com/extras/package/filetranslit

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

FormIt

modx.com/extras/package/formit

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

MIGX

modx.com/extras/package/migx

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

MinifyX

modx.com/extras/package/minifyx
modstore.pro/packages/utilities/minifyx

Компонент для сжатия и объединения стилей и скриптов. Хорошо ускоряет загрузку страниц сайта.

miniShop2

modx.com/extras/package/minishop2
modstore.pro/packages/ecommerce/minishop2

Удобный и гибкий интернет-магазин для MODX Revolution. Есть масса функциональных расширений для miniShop2, как платных, так и бесплатных.

ms2Gallery (платный)

modstore.pro/packages/photos-and-files/ms2gallery

Улучшенная галерея miniShop2 для ресурсов любых типов.

mSearch2 (платный)

modstore.pro/packages/ecommerce/msearch2

Компонент для создания Ajax-фильтрации ресурсов и морфологического поиска по ресурсам.

pdoTools

modx.com/extras/package/pdotools
modstore.pro/packages/utilities/pdotools

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

  • pdoMenu - Вывод меню, замена Wayfinder;
  • pdoResources - Вывод списков ресурсов, замена getResources;
  • pdoPage - Постраничный вывод результатов (пагинация), замена getPage;
  • pdoCrumbs - Вывод хлебных крошек, замена BreadCrumb;
  • pdoSitemap - Генерация карты сайта (sitemap.xml), замена GoogleSiteMap;
  • pdoField - Вывод любого поля ресурса в любом месте, замена getResourceField и UltimateParent;
  • pdoNeighbors - Вывод ссылок на соседние ресурсы;
  • pdoUsers - Вывод пользователей сайта, с фильтрацией по ролям и группам.

phpThumbOn

modx.com/extras/package/phpthumbon
modstore.pro/packages/photos-and-files/phpthumbon

Компонент для изменения изображений на сервере: создает превьюшки, обрезает картинки, накладывает водяные знаки и пр.

SEO Pro

modx.com/extras/package/seopro

Компонент добавляет дополнительные поля для мета-тегов в админке, с проверкой на вхождение ключевиков. Частично о работе компонента смотрите в статье Поисковая оптимизация MODX Revolution

SimpleSearch

modx.com/extras/package/simplesearch

Компонент для созданий простой формы поиска на сайте.

Tickets

modstore.pro/packages/users/tickets

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

translit

modx.com/extras/package/translit

Компонент для перевода в транслит ЧПУ-ссылок. Подробнее о ЧПУ-ссылках смотрите в статье Настройка ЧПУ в MODX Revolution. Правда компонент странно транслитирирует некоторые буквы, например, "Ы", "Ю", лучше поправить лексикон после установки.

TVTable

modstore.pro/packages/utilities/tvtable

Компонент для создания динамических TV в виде таблиц, можно менять количество строк и столбцов.

simpleUpdater

modx.com/extras/package/modupdater

Компонент простого обновления MODX Revolution. Подробнее смотрите в статье - Как просто обновить MODX Revolution

UpgradeMODX

modx.com/extras/package/upgrademodx

Еще один компонент простого обновления MODX Revolution. Подробнее смотрите в статье - Как просто обновить MODX Revolution

YandexCoordsTv

modstore.pro/packages/utilities/tvtable

Компонент создает TV с типом "Метка на Яндекс.Карте".


На поддержку блога

Комментарии к посту (31)