Как стать автором
Обновить

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

Время на прочтение3 мин
Количество просмотров3.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`
]]

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


Регулярно пользуюсь следующими разделами документации
Теги:
Хабы:
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

Публикации

Истории

Ближайшие события

Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург