Альтернативная пометка в Wayfiner, квадратики в SimpleSearch и полезные ссылки для Modx Revolution

в 16:28, , рубрики: modx, modx revolution, метки: ,

Перепост из моего блога — может кому-нибудь пригодится

Начал делать новые проекты на Revo — переход с Evo происходит со скрипом, т.к. в Evo помнил все наизусть. После установки голой системы необходимо развернуть полезные пакеты, а так же немного их модифицировать, чтобы приступить к верстке и программированию. Однако дефолтные установленные пакеты при всей их гибкости не всегда помогают — в частности решить задачу альтернативной разметки строк меню.

Джентльменский набор пакетов для MODx Revolution

  1. Ace — подсветка редактора исходного кода
  2. Batcher — замена DocManager из Evo для проведения массовых операция над документами (менять шаблоны и т.д.)
  3. Breadcrumbs — стандартные хлебные крошки
  4. getPage — для постраничной навигации в getResources
  5. getResources — замена Ditto для вывода документов
  6. GoogleSiteMap — сниппет для создания sitemap.xml
  7. phpThumbOf — для автоматического изменения размеров изображений и не только (например наносить водяные знаки)
  8. SimpleSearch — поиск по сайту
  9. tagLister — замена tvTagCloud из Evo для работы с документами с TV под теги
  10. TinyMCE — визуальные редактор для документов
  11. translit — модуль для автоматической генерации транслитерированных из русского псевдонимов ЧПУ
  12. Wayfinder — генератор меню

Квадратики в результатах SimpleSearch

Если SimpleSearch при поиске на русском языке выдает в результатах поиска «квадратики», а точнее ромбики, неправильной кодировки (как случилось у меня на хостинге Masterhot), то необходимо модифицировать файл /core/components/simplesearch/model/simplesearch/simplesearch.class.php и закоментировать строчку 177 (источник) — после этого все ищется нормально.

//if (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str));

Альтернативная разметка меню Wayfinder классами для четных и нечетных строк

Иногда бывает хочется сделать вертикальное меню с чередующейся расцветкой строк. Wayfiner не позволяет это сделать стандартными средствами — есть три варианта решения:

  1. использовать getResources  - плохо сказывается на производительности, теряется гибкость
  2. написать свой сниппет — лениво :)
  3. использовать jQuery — быстро, но это читерство :)

Но поскольку я очень ленивый, то идем в поиск, долго гуглим в различных комбинациях слова modx, revolution, wayfinder, odd, even, alternate и наконец находим тему на форуме и тикет в wishlist на github двухлетней давности.

После продолжительного поиска была найдено готовое решение, которое успешно работает (на момент написания статьи версия Wayfiner 2.3.3)

Чтобы не следовать долгой и нудной инструкции, скачайте модифицированные исходники Wayfinder для MODx Revolution wayfinder-revo-alternate-mod.zip   и внесите следующие изменения в снипет:

после

'self' => isset($selfClass)? $selfClass: '',
'weblink' => isset($webLinkClass)? $webLinkClass: ''

добавить

, 'odd' => isset($oddClass)? $oddClass: ''

чтобы получилось

'self' => isset($selfClass)? $selfClass: '',
'weblink' => isset($webLinkClass)? $webLinkClass: '',
'odd' => isset($oddClass)? $oddClass: ''

Теперь можно вызвать Wayfiner с необходимым классом, например

[[Wayfinder?
&startId=`2`
&where=`[{«template:!=»: «2»}]`
&outerClass=`leftnav`
&oddClass=`odd`
&displayStart=`1`
&startItemTpl=`tplCatalogCaption`
]]

Полезные ссылки

Регулярно пользуюсь следующими разделами документации

Автор: Aramaki

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js