Мы работаем и с Evolution, несмотря на то что многие кричат, что она «умерла», и с Revolution — все зависит от конкретного проекта.
Для наших разработчиков у нас обычно есть список часто используемых спиппетов и плагинов, чтобы не «выдумывать велосипед» каждый раз.
Решила поделиться, скорее с новичками, те кто только осваивает Evolution этим списком.
Сниппет — это программа, написанная на языке PHP, которая выводит результат своей работы в том месте шаблона, где размещен вызов этого сниппета, либо в месте расположения внешнего плейсхолдера. Сниппеты могут принимать различные параметры для обработки.
Как использовать?
Использование: вставьте [[snippetName]] или [!snippetName!] где-либо в шаблоне, в области контента, в чанке или в параметре (TV). Формат [[snippetName]] разрешает кэширование результатов выполнения сниппета, если для страницы включено кэширование. Формат [!snippetName!] используется для исполнения PHP-кода сниппета при каждом просмотре страницы, даже если для страницы разрешено кэширование.
Вызов через MODX API:
$modx->runSnippet('snippetName');
Список наиболее часто используемых сниппетов:
- Ditto - сниппет для создание ленты новостей или блога, вывод каталога товаров, сортировка и т.д.
- Reflect — используется в связке со сниппетом Ditto, создаёт архивы статей, записей блога, галлерей изображений и т.д.
- Wayfinder - сниппет для создания меню сайта, навигации по сайту, карты сайта и т.д.
- Breadcrumbs — сниппет для создания «хлебных крошек» на сайте.
- eForm - сниппет для создания обратной связи на сайте, заказа звонка, оформления заказа товаров и т.д.
- AjaxSearch - сниппет для организации поиска по сайту.
- alterTitle - сниппет выполняет всего 1 действие: выводит расширенный заголовок (longtitle), а при его отсутствиии выводит простой заголовок (pagetitle).
- DocInfo — выводит любое поле из любого документа.
- if - сниппет для выполнения различных условий, является замечательной альтернативой PHx.
- phpthumb - сниппет для создания эскизов изображений, наложения водяных знаков и т.п.
- JotX - сниппет предназначен для создания системы комментирования на сайте.
- aDate — сниппет выводит дату на русском языке.
- MultiFiles - сниппет позволяет выводить прикрепленные с помощью плагина MultiFiles к странице файлы.
- MultiPhotos — сниппет позволяет прикрепить любое количество картинок к странице.
- sitemap - сниппет для создания карты сайта в формате xml, предназначенной для поисковых машин, таких, как Google, Яндекс и т.д.
- truncate - сниппет позволяет обрезать длинный текст.
- TvTable — сниппет позволяет выводить прикрепленную таблицу которая формируеться с помощью плагина TvTable.
- EvoGallery — сниппет для создания фотогалереи.
- FirstChildRedirect — сниппет перенаправляет пользователей при обращении к папке на первый (в соответствии с сортировкой в меню) документ из этой папки.
- UltimateParent — сниппет позволяет получить ID родительского документа.
- CacheAccelerator — сниппет позволяет уменьшить в разы количество запросов к базе за счет кэширования динамических сниппетов.
- multiTV — представляет собой пакет для MODX Evolution, предназначенный для управления контентом.
- ParseChunk — сниппет передает параметры в чанки.
- WebChangePwd — сниппет смены пароля для web user’ов.
- WebLogin — сниппет предназначен для авторизации зарегистрированных пользователей.
- WebSignup — сниппет предназначен для регистрации веб-пользователей.
- yearCopyright — сниппет автоматически меняет год на сайте.
- TvTagCloud — сниппет для организации облака тэгов на сайте.
- ddTypograph — сниппет для типографической обработки текстов.
- prevnextPage — сниппет создает ссылки на предыдущую и следующую страницы.
Список конечно же не полон. Но возможно у вас тоже есть интересные списки сниппетов? Делитесь в комментариях!
Алексей Либер 18.09.2016 22:09 #
Так же не указана самая замечательная линейка DL, которая работает быстрее и шустрее многих представленных здесь сниппетов. Ну и за использование таких старичков как WF и Ditto, нас и считают «отсталыми»… Использование ditto, все равно что использовать getResources вместо pdoResources на Реве…
Ниже список более шустрых сниппетов, которые на вскидку вспомнил…
Ditto — DocLister
WF — DLBuildMenu
Breadcrumbs — DLcrumbs
Truncate — Summary
prevnextPage — DLPrevNex
eForm — FormLister
Ну и плюс к этому список сниппетов под Evo есть что на оффсайте modx.com, а на i--gu.ru/ — так еще и с документаций.
Поэтому, если честно, не понятен посыл данного поста вообще не разу. Пост ради поста?..
Андрей Казунин 20.09.2016 11:12 #
Алексей Либер 20.09.2016 15:36 #
Андрей [Aharitо́] Харитонов 03.10.2016 13:01 #
Действительно, согласен с Алексеем, в посте перечислены как раз по большей части отжившие свой век дополнения.
А сниппеты и плагины на основе DL — их можно самостоятельно бесконечно лепить из заготовок, имеющихся в библиотеке DL, под каждый конкретный проект. Для этого там всё имеется.
Назову ещё несколько дополнений на основе DL, написанных прекрасным разработчиком Pathologic, которые я сам использовал и помогал тестить, правил в них некоторые баги, поэтому плотно заглядывал в код:
SimpleGallery — галерея
SimpleFiles — управление файлами
SimpleTube — видеогалерея
Да, ещё есть отличная штука разработки webber для быстрой организации фильтов в каталогах, я её сейчас использую на одном проекте и поэтому также активно тестирую и правлю:
eFilter — автоматическое построение фильтров и фильтрация каталогов
Мария 22.10.2016 20:02 #
С фильтрами по периодам пока нет… Использую DocLister
Спасибо!)
Андрей [Aharitо́] Харитонов 22.10.2016 21:13 #
Мария 22.10.2016 21:31 #
Андрей, конечно, Андрей) Я к Вам обратилась, простите: ошиблась с именем!
Андрей [Aharitо́] Харитонов 22.10.2016 21:41 #
Вашу задачу легко решить с помощью Доклистера.
Что будет использовано для фильтрации? Дата создания или дата публикации?
Мария 22.10.2016 21:42 #
Андрей [Aharitо́] Харитонов 22.10.2016 22:01 #
Например, сегодня 23 октября. Статьи за последний месяц — это статьи с 1 по 23 октября или за последние 30 дней?
Мария 22.10.2016 22:12 #
Андрей [Aharitо́] Харитонов 22.10.2016 23:10 #
Андрей [Aharitо́] Харитонов 22.10.2016 23:11 #
Андрей [Aharitо́] Харитонов 22.10.2016 23:14 #
&days — кол-во дней, за которые нужно вывести записи.
&parents — это стандартный параметр ДокЛистера: папка, из которой выводим.
Также можно использовать все остальные параметры DocLister, такие как &ownerTPL, &tpl и кучу других.
Все параметры и шаблоны задаются точно так же, как и в ДокЛистере, наш сниппет наследует все его параметры.
Так как у вас поле даты — это дата публикации, то в вызове сниппета ставим параметр &dateSource = `publishedon` и потом при выводе даты используем плейсхолдер [+date+].
Документацию по DL читайте вот здесь.
Мария 23.10.2016 00:22 #
Да, заметила в сниппете, что из доклистера наследует.
Все работает!)))
Спасибо огромное, Андрей!
[!LastArticles?
&idType=`parents`
&dateSource=`publishedon`
&tpl=`trending-small`
&parents=`7`
&hideFolders=`1`
&depth=`2`
&dateFormat=`%e %b %Y`
&display=`5`
&orderBy=`count DESC`
&tvList=`img-news, count`
&days=`7`
!]
Андрей [Aharitо́] Харитонов 23.10.2016 00:49 #
и если &display=`5`, то выведет всего 5 статей, независимо от того, сколько из реально за месяц.
Мария 24.10.2016 13:11 #
Насчет параметров, да, в курсе. Все перечисленные параметры я вписывала сама и понимаю, что они означают)))
Спасибо за комменты, Андрей!
Андрей [Aharitо́] Харитонов 23.11.2016 07:43 #
Результат работы сниппета должен обновляться при появлении новой статьи, попадающей в нужный интервал. И отображаться при открытии страницы.
И в этом случае вызов можно делать кешируемым, чтобы не вычислять каждый раз.
Андрей [Aharitо́] Харитонов 23.11.2016 07:46 #
У вас сама статья теоретически может быть и не новая, но она может вдруг стать популярной (просмотры). Хотя это и маловероятно, но все же.
Тогда да — некешируемый.