Modx TV список ресурсов множественный выбор

Содержание
Еще по теме:  Отключите в доме ГАЗ электричество ТВ потушите огонь в печи при какой опасности

Сниппет выводит дочерние ресурсы в виде ссылок на сами ресурсы. Использовал для вывода меню блоками по 5 строк.

Версия CMS: MODX Revolution 2.7.1-pl

Реализация сниппета для вывода дочерних ресурсов

Код снипета «VeiwMenuFooter»

1); // id родителя $resources = $modx->getCollection(‘modResource’,$where); $output = »; $i = 0; $row = 5; $output .= ‘get(‘uri’).'»>’.$res->get(‘pagetitle’).»; $i++; > $output .= »; return $output;

Вызов сниппета в чанке

[[VeiwMenuFooter]]

Вывод дочерних ресурсов с помощью pdoResources

Еще вариант вывода дочерних ресурсов с использованием плагина pdoTools и сниппета от него pdoResources

Код в шаблоне или чанке

где, tpl — имя шаблона, можно использовать чанк в ввиде шаблона

6 комментариев

Я не думала что найду, спасибо большое!
Не поняла как это так?
Не поняла как это так?

пожалуйста по конкретней, что именно не понятно?
в статье представлено два варианта,
1- это самому создать сниппет и вставить туда код, а потом его использовать в шаблонах или чанках

MODX шаблоны и чанки


2- это использовать готовое решение pdoResources, но перед этим его надо установить

oprolevorter

I’ve been absent for some time, but now I remember why I used to love this blog. Thanks , I will try and check back more frequently. How frequently you update your website?

Статьи/заметки пишу примерно раз в неделю, может немного реже, все зависит и выполняемых задач и проблемами с которыми сталкиваюсь при их реализации. Собственно решение таких проблем и описываю. Как показывает практика век живи, век учись.

Выбор получателя в форме обратной связи Modx revo

Выбор получателя в форме обратной связи Modx revo

Как на MODx сделать форму обратной связи с выбором получателя, причем так, что бы emailы не светились посетителям и роботам? Предлагаю следующий вариант:

Устанавливается дополнение FormIt. Создаем для формы обратной связи отдельный чанк. Назовём его FOS:

[[!FormIt? emailTpl=`sentEmailTpl` emailTo=`[[+emailAddresses]]` emailSubject = `Сообщение с сайта anart.ru` validate=`contact_name:required, contact_email:email:required, contact_message:required:stripTags` contactForm» method=»post» action=»[[~[[*id]]]]»> type=»hidden» name=»nospam:blank» value=»» /> for=»addressTo»>Получатель /> style=»width:250px;» name=»service»> value=»0″>Информационная поддержка value=»1″>Администратор сайта value=»2″>Администратор сервиса for=»contact_name»>Ваше имя class=»error»>[[!+fi.error.contact_name]] (обязательное поле, не менее 2 символов) /> style=»width:250px;» id=»contact_name» name=»contact_name» size=»30″ minlength=»2″ value=»[[!+fi.contact_name]]» /> for=»contact_email»>Ваш E-Mail для обратной связи class=»error»>[[!+fi.error.contact_email]] (обязательное поле) /> style=»width:250px;» id=»contact_email» name=»contact_email» size=»30″ value=»[[!+fi.contact_email]]» /> for=»contact_message»>Текст сообщения class=»error»>[[!+fi.error.contact_message]] (обязательное поле) /> id=»contact_message» name=»contact_message» cols=»70″ rows=»7″>[[!+fi.contact_message]] [[!+formit.recaptcha_html]] [[!+fi.error.recaptcha]] name=»submit» type=»submit» value=»Отправить»/>

Здесь параметр redirectTo содержит ID страницы, где сказано, что сообщение отправлено

Дополнительные поля (TV) в MODX Revolution

Созаем сниппет-хук groupSelector, который указан в хуках вызова formit и он будет хранить в себе emailы всех получателей:

Создаем чанк sentEmailTpl для оформления отправляемого письма. Он указан при вызове formit выше:

Сообщение с сайта anart.ru /> /> Имя отправителя: [[+contact_name]] /> Текст сообщения: /> [[+contact_message]] /> /> E-mail отправителя: href=»mailto:[[+contact_email]]»>[[+contact_email]] Вы можете ответить отправителю, нажав href=»mailto:[[+contact_email]]»>сюда

Источник: anart.ru

Как поставить галку в MODx, чтобы не отображать ресурс в списке

С ДНЕМ ПОБЕДЫ.

Довелось дорабатывать сайт http://biosfere.ru, и одна из задачек была связана с тем, чтобы с помощью checkbox отменить анонс страницы на главной странице.

На первый взгляд, а также на второй, третий и четвертый, задача тривиальная для любого, кто более-менее знаком с MODx.

Проиллюстрируем на примере конкретных страниц.

Вот главная страница сайта с прокручивающимся списком заболеваний.

Иллюстрация с главной страницы

В админке MODx Revolution 2.5.1 имеем вот такой checkbox:

Галка Показывать на главной

Задача: чтобы при стоящей галке этот пункт не отображался на главной.

А вот так выглядит чанк на главной с вызовом сниппета pdoResources, выводящего список:

Исходный код MODx Revolution. pdoResources

Флажок на странице каждого заболевания представляет собой булевый tv-параметр:

TV-параметр

Казалось бы, нет ничего проще: выставить фильтр по tv-параметру и всего делов.

tvFilters=`desease_noshow<>1`

Почему это не сработало?

Все очень просто: tv-параметр был добавлен уже тогда, когда было забито порядка 150 страниц с видами заболеваний.

Когда мы зашли на 2 страницы из 150 и поставили там галки, в базе появилоcь две единички у tv с >

Больше в базе записей о значениях этого tv нет!

Поэтому решение задачи «в лоб» предполагает, например, такую конструкцию

Т. е., нужен второй сниппет, который будет собирать id документов, не содержащих tv-параметр desease_noshow со значением 1.

Также для этого в pdoResources предусмотрена минусация:

sanitizeString($_GET[‘resSearch’]); $searchFilter = ‘[» published = 1 AND deleted = 0 AND ( pagetitle LIKE «%’.$query.’%» OR description LIKE «%’.$query.’%» OR longtitle LIKE «%’.$query.’%» ) «]’; return $modx->runSnippet(‘pdoResources’, array( parents’ => 0, showLog’ => 1, where’ => $searchFilter ));

Источник: capweb.ru

Оцените статью
Добавить комментарий