← К глоссарию

Сниппет

Фрагмент кода, выполняемый в определённом месте шаблона для вывода данных.

Сниппет (Snippet) — это кусочек PHP-кода в MODX, который вызывается в шаблоне и возвращает результат. Например, сниппет pdoResources выводит список дочерних ресурсов, а сниппет отправки формы обрабатывает заявку.

Пример использования

В шаблоне пишется вызов: Array ( [return] => chunks [id] => 302 [type] => document [contentType] => text/html [pagetitle] => Трафик [longtitle] => [description] => [alias] => trafik [alias_visible] => 1 [link_attributes] => [published] => 1 [pub_date] => 0 [unpub_date] => 0 [parent] => 238 [isfolder] => 0 [introtext] => Поток посетителей, заходящих на сайт из разных источников. [richtext] => 1 [template] => 13 [menuindex] => 63 [searchable] => 1 [cacheable] => 1 [createdby] => 1 [createdon] => 1782722135 [editedby] => 0 [editedon] => 0 [deleted] => 0 [deletedon] => 0 [deletedby] => 0 [publishedon] => 1782722135 [publishedby] => 1 [menutitle] => [donthit] => 0 [privateweb] => 0 [privatemgr] => 0 [content_dispo] => 0 [hidemenu] => 0 [class_key] => modDocument [context_key] => web [content_type] => 1 [uri] => trafik.html [uri_override] => 0 [hide_children_in_tree] => 0 [show_in_tree] => 1 [properties] => [idx] => 1 [link] => ) Array ( [return] => chunks [id] => 301 [type] => document [contentType] => text/html [pagetitle] => Лид [longtitle] => [description] => [alias] => lid [alias_visible] => 1 [link_attributes] => [published] => 1 [pub_date] => 0 [unpub_date] => 0 [parent] => 238 [isfolder] => 0 [introtext] => Потенциальный клиент, оставивший контактные данные через форму на сайте. [richtext] => 1 [template] => 13 [menuindex] => 62 [searchable] => 1 [cacheable] => 1 [createdby] => 1 [createdon] => 1782722108 [editedby] => 0 [editedon] => 0 [deleted] => 0 [deletedon] => 0 [deletedby] => 0 [publishedon] => 1782722108 [publishedby] => 1 [menutitle] => [donthit] => 0 [privateweb] => 0 [privatemgr] => 0 [content_dispo] => 0 [hidemenu] => 0 [class_key] => modDocument [context_key] => web [content_type] => 1 [uri] => lid.html [uri_override] => 0 [hide_children_in_tree] => 0 [show_in_tree] => 1 [properties] => [idx] => 2 [link] => ) Array ( [return] => chunks [id] => 300 [type] => document [contentType] => text/html [pagetitle] => Конверсия [longtitle] => [description] => [alias] => konversiya [alias_visible] => 1 [link_attributes] => [published] => 1 [pub_date] => 0 [unpub_date] => 0 [parent] => 238 [isfolder] => 0 [introtext] => Процент посетителей сайта, совершивших целевое действие: заявку, звонок, покупку. [richtext] => 1 [template] => 13 [menuindex] => 61 [searchable] => 1 [cacheable] => 1 [createdby] => 1 [createdon] => 1782722083 [editedby] => 0 [editedon] => 0 [deleted] => 0 [deletedon] => 0 [deletedby] => 0 [publishedon] => 1782722083 [publishedby] => 1 [menutitle] => [donthit] => 0 [privateweb] => 0 [privatemgr] => 0 [content_dispo] => 0 [hidemenu] => 0 [class_key] => modDocument [context_key] => web [content_type] => 1 [uri] => konversiya.html [uri_override] => 0 [hide_children_in_tree] => 0 [show_in_tree] => 1 [properties] => [idx] => 3 [link] => ) Array ( [return] => chunks [id] => 299 [type] => document [contentType] => text/html [pagetitle] => A/B тестирование [longtitle] => [description] => [alias] => a/b-testirovanie [alias_visible] => 1 [link_attributes] => [published] => 1 [pub_date] => 0 [unpub_date] => 0 [parent] => 238 [isfolder] => 0 [introtext] => Метод сравнения двух вариантов страницы для определения наиболее эффективного. [richtext] => 1 [template] => 13 [menuindex] => 60 [searchable] => 1 [cacheable] => 1 [createdby] => 1 [createdon] => 1782722058 [editedby] => 0 [editedon] => 0 [deleted] => 0 [deletedon] => 0 [deletedby] => 0 [publishedon] => 1782722058 [publishedby] => 1 [menutitle] => [donthit] => 0 [privateweb] => 0 [privatemgr] => 0 [content_dispo] => 0 [hidemenu] => 0 [class_key] => modDocument [context_key] => web [content_type] => 1 [uri] => a/b-testirovanie.html [uri_override] => 0 [hide_children_in_tree] => 0 [show_in_tree] => 1 [properties] => [idx] => 4 [link] => ) Array ( [return] => chunks [id] => 298 [type] => document [contentType] => text/html [pagetitle] => УТП [longtitle] => [description] => [alias] => utp [alias_visible] => 1 [link_attributes] => [published] => 1 [pub_date] => 0 [unpub_date] => 0 [parent] => 238 [isfolder] => 0 [introtext] => Уникальное торговое предложение — формулировка, объясняющая почему клиент должен выбрать именно вас. [richtext] => 1 [template] => 13 [menuindex] => 59 [searchable] => 1 [cacheable] => 1 [createdby] => 1 [createdon] => 1782722036 [editedby] => 0 [editedon] => 0 [deleted] => 0 [deletedon] => 0 [deletedby] => 0 [publishedon] => 1782722036 [publishedby] => 1 [menutitle] => [donthit] => 0 [privateweb] => 0 [privatemgr] => 0 [content_dispo] => 0 [hidemenu] => 0 [class_key] => modDocument [context_key] => web [content_type] => 1 [uri] => utp.html [uri_override] => 0 [hide_children_in_tree] => 0 [show_in_tree] => 1 [properties] => [idx] => 5 [link] => ) Array ( [return] => chunks [id] => 297 [type] => document [contentType] => text/html [pagetitle] => 301 редирект [longtitle] => [description] => [alias] => 301-redirekt [alias_visible] => 1 [link_attributes] => [published] => 1 [pub_date] => 0 [unpub_date] => 0 [parent] => 238 [isfolder] => 0 [introtext] => Постоянное перенаправление с одного URL на другой с передачей поискового веса. [richtext] => 1 [template] => 13 [menuindex] => 58 [searchable] => 1 [cacheable] => 1 [createdby] => 1 [createdon] => 1782722009 [editedby] => 0 [editedon] => 0 [deleted] => 0 [deletedon] => 0 [deletedby] => 0 [publishedon] => 1782722009 [publishedby] => 1 [menutitle] => [donthit] => 0 [privateweb] => 0 [privatemgr] => 0 [content_dispo] => 0 [hidemenu] => 0 [class_key] => modDocument [context_key] => web [content_type] => 1 [uri] => 301-redirekt.html [uri_override] => 0 [hide_children_in_tree] => 0 [show_in_tree] => 1 [properties] => [idx] => 6 [link] => ) Array ( [return] => chunks [id] => 296 [type] => document [contentType] => text/html [pagetitle] => 404 ошибка [longtitle] => [description] => [alias] => 404-oshibka [alias_visible] => 1 [link_attributes] => [published] => 1 [pub_date] => 0 [unpub_date] => 0 [parent] => 238 [isfolder] => 0 [introtext] => Код ответа сервера, означающий что запрошенная страница не найдена. [richtext] => 1 [template] => 13 [menuindex] => 57 [searchable] => 1 [cacheable] => 1 [createdby] => 1 [createdon] => 1782721987 [editedby] => 0 [editedon] => 0 [deleted] => 0 [deletedon] => 0 [deletedby] => 0 [publishedon] => 1782721987 [publishedby] => 1 [menutitle] => [donthit] => 0 [privateweb] => 0 [privatemgr] => 0 [content_dispo] => 0 [hidemenu] => 0 [class_key] => modDocument [context_key] => web [content_type] => 1 [uri] => 404-oshibka.html [uri_override] => 0 [hide_children_in_tree] => 0 [show_in_tree] => 1 [properties] => [idx] => 7 [link] => ) Array ( [return] => chunks [id] => 295 [type] => document [contentType] => text/html [pagetitle] => Кеш браузера [longtitle] => [description] => [alias] => kesh-brauzera [alias_visible] => 1 [link_attributes] => [published] => 1 [pub_date] => 0 [unpub_date] => 0 [parent] => 238 [isfolder] => 0 [introtext] => Временное хранилище файлов сайта в браузере для ускорения повторных загрузок. [richtext] => 1 [template] => 13 [menuindex] => 56 [searchable] => 1 [cacheable] => 1 [createdby] => 1 [createdon] => 1782721960 [editedby] => 0 [editedon] => 0 [deleted] => 0 [deletedon] => 0 [deletedby] => 0 [publishedon] => 1782721960 [publishedby] => 1 [menutitle] => [donthit] => 0 [privateweb] => 0 [privatemgr] => 0 [content_dispo] => 0 [hidemenu] => 0 [class_key] => modDocument [context_key] => web [content_type] => 1 [uri] => kesh-brauzera.html [uri_override] => 0 [hide_children_in_tree] => 0 [show_in_tree] => 1 [properties] => [idx] => 8 [link] => ) Array ( [return] => chunks [id] => 294 [type] => document [contentType] => text/html [pagetitle] => IP-адрес [longtitle] => [description] => [alias] => ip-adres [alias_visible] => 1 [link_attributes] => [published] => 1 [pub_date] => 0 [unpub_date] => 0 [parent] => 238 [isfolder] => 0 [introtext] => Уникальный цифровой идентификатор устройства в сети интернет. [richtext] => 1 [template] => 13 [menuindex] => 55 [searchable] => 1 [cacheable] => 1 [createdby] => 1 [createdon] => 1782721935 [editedby] => 0 [editedon] => 0 [deleted] => 0 [deletedon] => 0 [deletedby] => 0 [publishedon] => 1782721935 [publishedby] => 1 [menutitle] => [donthit] => 0 [privateweb] => 0 [privatemgr] => 0 [content_dispo] => 0 [hidemenu] => 0 [class_key] => modDocument [context_key] => web [content_type] => 1 [uri] => ip-adres.html [uri_override] => 0 [hide_children_in_tree] => 0 [show_in_tree] => 1 [properties] => [idx] => 9 [link] => ) Array ( [return] => chunks [id] => 293 [type] => document [contentType] => text/html [pagetitle] => DNS [longtitle] => [description] => [alias] => dns [alias_visible] => 1 [link_attributes] => [published] => 1 [pub_date] => 0 [unpub_date] => 0 [parent] => 238 [isfolder] => 0 [introtext] => Система доменных имён, преобразующая адреса сайтов в IP-адреса серверов. [richtext] => 1 [template] => 13 [menuindex] => 54 [searchable] => 1 [cacheable] => 1 [createdby] => 1 [createdon] => 1782721904 [editedby] => 0 [editedon] => 0 [deleted] => 0 [deletedon] => 0 [deletedby] => 0 [publishedon] => 1782721904 [publishedby] => 1 [menutitle] => [donthit] => 0 [privateweb] => 0 [privatemgr] => 0 [content_dispo] => 0 [hidemenu] => 0 [class_key] => modDocument [context_key] => web [content_type] => 1 [uri] => dns.html [uri_override] => 0 [hide_children_in_tree] => 0 [show_in_tree] => 1 [properties] => [idx] => 10 [link] => ) . Сниппет получает параметры, делает запрос к базе данных и выводит результат через указанный чанк.

Преимущества сниппетов

  • Повторное использование — один сниппет вызывается на разных страницах
  • Кеширование — результат можно закешировать для ускорения
  • Разделение логики и представления — код отдельно, вёрстка отдельно