В сборку MODx включено несколько основных сниппетов, сотни дополнительных можно найти на сайтах и написать самостоятельно. Здесь мы приведем несколько примеров использования сниппетов на нашем сайте.
Вызов любого сниппета возможен в двух вариантах:
[ [имя_сниппета] ] - для некэшируемых страниц
[ !имя_сниппета! ] - для кэшируемых страниц.
Как именно вызывать конкретный сниппет - обычно написано в документации.
Какие сниппеты применять?
Скользкий вопрос. В MODx есть очень мощные универсальные сниппеты, такие как Ditto, Wayfinder. С ними можно выполнить множество вариантов отображения текстов страниц. Но мощь и универсальность таких сниппетов имет другую сторону - они требуют много ресурсов, делают лишние запросы. Всё это сказывается на производительности сайтов. Многие гуру MODx избегают применения таких сниппетов и пишут свои - маленькие, быстрые, узкоспециализированные. Однако такой путь не всем подходит - правильно написать хороший сниппет могут не все. Кроме того, "базовые" сниппеты регулярно обновляются разработчиками.
Мы избираем средний путь - применяем и "монстров MODx" и свои сниппеты делаем. Свои, естественно, там где это нам по силам - простенькие. Кое-что заимствуем и из Etomite.
В результате добавления разных сниппетов (иногда только для пробы) может сформироваться большая коллекция, в которой трудно разобраться. Там могут оказаться и вообще не нужные, и устаревшие и черт знает откуда и зачем взявшиеся. Коллекцию надо периодически чистить, а это не так просто - найти не применяется ли где-нибудь этот сниппетишко.
В базовой сборке MODx 0.9.6.3 имеется 16 сниппетов. Их мы оставляем для своего сайта, даже если что-то не применяем пока. Иногда мы "от добра добра искали" и устанавливали сторонние сниппеты, аналогичные по функциональности. Теперь, набравшись опыта, стремимся от таких сниппетов избавиться.
Например, в базовой сборке есть сниппет BreadCrumbs, выводящий горизонтальную линейку. Вместо него мы применяли сниппет MolioBreadCrumbs - скорее из-за того, что вообще нам многое из MolioXXX нравится. Но вот BreadCrumbs обновился уже с версии 0.9b до 1.0.1 (и наверняка не просто так), а MolioBreadCrumbs остался без изменений. В такой ситуации стоит от MolioBreadCrumbs и отказаться, что мы и делаем.
В результате ревизии сниппетов, выполненной во время написания этой заметки, удалось избавиться от нескольких десятков не очень нужных, совсем не нужных и устаревших сниппетов.
Список оставшихся приводим здесь с комментариями.
Сниппеты нашего сайта
| Сниппет | Описание | Пояснения |
| AjaxSearch | 1.8.1 Поиск с подсветкой результатов. | Система поиска, работающая на нашем сайте. Вывод результатов сделан на отдельную страницу. Найденные слова подсвечиваются и при переходе на страницу из результатов поиска |
| Breadcrumbs | 1.0.1 Навигационная линейка в верхней части контента страницы |
Используем |
| Ditto | 2.0.2 Мощнейший сниппет для создания списков страниц | Используем |
| eForm | 1.4.4 Robust form parser/processor with validation, multiple sending options, chunk/page support for forms and reports, and file uploads. | Пока не используем, не было необходимости |
| Jot | 1.1.4 Ведение и модерирование комментариев к страницам сайта | Используем |
| ListIndexer | 1.0.1 Отображение списка последних документов. | Периодически используем |
| MemberCheck | 1.0 Selectively show chunks based on logged in Web User' group memberships. | Пока не используем |
| NewsPublisher | 1.4 Publish news articles directly from the web. | Пока не используем |
| Personalize | 2.0 Basic personalization for web users. | Пока не используем |
| Reflect | 2.1 Used with Ditto, creates archives of articles, blog entries, image galleries and more. | Пока не используем |
| UltimateParent | 2.0 beta - Travels up the document tree from a specified document and returns the | Используем |
| Wayfinder | 2.0 Completely template-driven menu builder that's simple and fast to configure. | Используем для бокового и нижнего меню |
| WebChangePwd | 1.0 Web User Change Password Snippet. | Пока не используем |
| WebLogin | 1.0 Web User Login Snippet. | Используем для входа веб-пользователей |
| WebSignup | 1.1 Web User Signup Snippet. | Пока не используем |
| MollioMenu | Наше основное меню |
|
| ru_AuthorAndDate | Вывод автора и даты публикации |
Используем, если надо показать автора и дату на отдельных страницах и в разделах |
| NewsParser2 | Вывод RSS из Etomite | Используем для публикации чужих RSS на нашем сайте |
| ru_ShowDoc | Встраивание содержимого другого документа | Применяем, если надо вставить в контент одного документа содержимое другого документа |
| ru_download | Ссылка на закачки со счетчиком | Простая ссылка на закачки для применения внутри контента |
| ru_LinkAncor | Ссылка на документ по ID | Улучшенная ссылка на документ. Используется, в основном, в чанках - там нет возможности выбора, как в TinyMCE |
| dwgru_print_snippet | Версия для печати | Формирует версию для печати |
| ru_LoggedUser | Имя зарегистрированного пользователя | Выводит имя залогиненного веб-пользователя на странице для входа на сайт и ссылку на выход |
| ru_DateTime | Вывод даты и времени | Просто вывод в заданном формате. Используется в версии для печати. |
| ru_WebUserNameAndLink | Имя зарегистрированного веб-пользователя, логин и ссылка на вход или выход | Выводит имя залогиненного веб-пользователя, а если он не зарегистрирован - ссылку на страницудля входа на сайт с логином |
| MaxiGallery | Галерея картинок | Применяем |
| cad_LongTitleOrDescription | Строка заголовка или пояснения | Выводит LongTitle или Description страницы |
Постепенно мы будем публиковать здесь и материалы по конкретным сниппетам.
Написать комментарий
Реплика №16: 23.10.2009, 08:23:05
Реплика №15: 23.10.2009, 03:54:20
Реплика №14: 11.10.2009, 22:24:37
Реплика №13: 15.09.2009, 18:36:03
Реплика №12: 26.08.2009, 20:37:10
Реплика №11: 24.08.2009, 15:55:15
Реплика №10: 23.08.2009, 08:20:51
Реплика №9: 22.08.2009, 23:58:18
Реплика №8: 21.08.2009, 07:38:03
Реплика №7: 29.07.2009, 12:03:33