Pull to refresh

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

Reading time3 min
Views3.5K
Перепост из моего блога — может кому-нибудь пригодится

Начал делать новые проекты на 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 при поиске на русском языке выдает в результатах поиска «квадратики», а точнее ромбики, неправильной кодировки (как случилось у меня на хостинге Masterhost), то необходимо модифицировать файл /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 — быстро, но это читерство :)
  4. прописать свойства CSS для классов строк l1,l3,l5,l7 и т.д. и l2,l4,l6 и т.д. — не масштабируемо и засоряет CSS

Но поскольку я очень ленивый, то идем в поиск, долго гуглим в различных комбинациях слова 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`
]]

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


Регулярно пользуюсь следующими разделами документации
Tags:
Hubs:
+4
Comments2

Articles