Чтобы лучше понять, что такое PDOResources, давайте представим, что ваш сайт состоит из различных страниц и каждая страница представляет собой отдельный ресурс. Вы хотите отобразить эти ресурсы на вашей странице, чтобы пользователи могли видеть их контент. Вот где PDOResources приходит на помощь.
PDOResources использует PDO (PHP Data Objects) для работы с базой данных MODX. Это означает, что он может выполнять сложные запросы к базе данных и получать необходимую информацию. Вы можете задавать различные условия и фильтры для выборки ресурсов, такие как идентификаторы ресурсов, шаблоны, родительские ресурсы и многое другое. Это позволяет вам получать и отображать только те ресурсы, которые вам нужны.
Одним из ключевых преимуществ использования PDOResources является его гибкость. Вы можете настраивать вывод данных, используя различные параметры и опции. Вы можете указывать количество ресурсов, которые нужно вывести, задавать порядок сортировки, определять вывод дополнительных полей и многое другое. Это позволяет вам создавать настраиваемые списки ресурсов, галереи изображений, блоги и другие типы контента.
Вывод ресурсов при помощи pdoResources
PDOResources также обладает хорошей производительностью и оптимизацией. Он использует кэширование для снижения нагрузки на базу данных и улучшения скорости загрузки страницы. Это особенно полезно, если у вас есть большое количество ресурсов или вы работаете с запросами, требующими большого объема данных.
Установка PDOResources в MODx
Установка и настройка PDOResources в MODX довольно проста. Вот пошаговая инструкция:
- Скачайте архив с плагином PDOResources. Обычно он представлен в виде ZIP-файла.
- Зайдите в административную панель MODX.
- Перейдите в раздел «Extras» (дополнения) и выберите «Installer» (установщик).
- Щелкните на кнопке «Browse» (обзор) и выберите загруженный архив с плагином PDOResources.
- Нажмите кнопку «Upload» (загрузить) и дождитесь завершения процесса установки.
- После установки перейдите в раздел «Elements» (элементы) и выберите «Plugins» (плагины).
- Найдите плагин PDOResources в списке плагинов и активируйте его, установив флажок в поле «Active» (активный).
Теперь PDOResources установлен и готов к использованию. Однако, перед тем как приступить к его настройке, рекомендуется ознакомиться с документацией плагина или примерами использования, чтобы лучше понять его функциональность и возможности.
Как использовать PDOResources
Чтобы использовать PDOResources, вам нужно иметь базовые знания MODX и понимание языка разметки HTML. Однако, благодаря его простому и интуитивному синтаксису, вы быстро освоите его.
Вот общий вид синтаксиса для использования pdoResources в MODX:
[[pdoResources? param2=`value2` . ]]
Вместо param1 и param2 вы можете указывать различные параметры, которые определяют выборку ресурсов и настройки вывода данных. Вот некоторые наиболее часто используемые параметры:
MODX pdoResources — выводим ресурсы
- parents: Определяет идентификаторы родительских ресурсов, относительно которых будет производиться выборка.
- tpl: Указывает чанки для форматирования вывода каждого ресурса.
- sortby: Задает поле, по которому будет происходить сортировка ресурсов.
- sortdir: Определяет направление сортировки (asc — по возрастанию, desc — по убыванию).
- limit: Устанавливает ограничение на количество выводимых ресурсов.
- where: Задает дополнительное условие для фильтрации ресурсов.
- includeTVs: Определяет, должны ли выводиться дополнительные поля ресурсов (TV — Template Variables).
- tvPrefix: Указывает префикс для доступа к значениям дополнительных полей.
Это лишь некоторые из параметров, доступных в pdoResources. Вы можете ознакомиться со всем списком параметров и их описанием в документации MODX.
Помимо параметров, вы можете использовать также условия и операторы для настройки выборки ресурсов. Например:
- where: «published=1» — выбирает только опубликованные ресурсы.
- where: «parent=3 AND template=2» — выбирает ресурсы, у которых родительский ресурс имеет идентификатор 3 и шаблон имеет идентификатор 2.
Примеры использования PDOResources
Вот несколько примеров кода, демонстрирующих использование PDOResources в реальных сценариях:
Вывод списка последних новостей
-
[[pdoResources? tpl=`news_item_tpl` sortdir=`desc` parents=`0` includeTVs=`field1, field2, field3` ]]
- Загрузка страницы с заданным скроллингом по середине — 11.07.2016
- Якорные ссылки с плавной прокруткой — Пример — 15.09.2016
- Перенос сайта на другой хостинг Modx revo — 17.08.2017
- Перенос дампа MySQL 5.7 в MySQL 5.5 или ишибка #1214 — The used table type doesn’t support FULLTEXT indexes — 16.05.2018
- Документация getProducts — 8.03.2018
- mFilter2 — быстрый запуск — 16.05.2018
- mSearch2 — быстрый запуск — 16.05.2018
- Автоматическое определение года — PHX Modx Revo, Вывод названий месяцев на русском — 16.05.2018
- Документация fastField Modx Revo — плагин для получения поля другого ресурса. — 16.05.2018
- MODX Revolution — Каталог ядра в открытом доступе — 1.06.2018
- Привязать картинку к ячейке excel — 5.07.2018
- Обновление MODX Revolution — 26.07.2018
- Перевод с http на https, сайт на ModX Revo, хостинг beget. — 19.12.2018
- pdoMenu — Как исключить определенные пункты меню — 5.02.2019
- Как вывести количество дочерних элементов modx revo — один из вариантов — 8.08.2019
- MigX Modx Revo — быстрый старт. Примеры MigX. — 17.08.2019
- Запрет на индексацию ссылок или текста — 15.10.2019
- Не выводить текущую новость через getProducts ModX revo — 22.10.2019
- Font boosting и проблемы со шрифтом в мобильных браузерах — 28.10.2019
- Как написать в техподдержку вКонтакте с компьютера — 13.02.2020
- Удобно для SEO, но только MODX REVO — 5.06.2020
- Сортировка ресурсов на странице через getProdutcts, как в дереве ресурсов — 28.04.2021
- Якорные ссылки на странице с плавной прокруткой. Html, CSS + javascript — 26.05.2021
- Phpthumbof modx revo. Быстрый старт и шпаргалка. Водяной знак. — 30.08.2021
- Getimagelist modx revo, сортировка в обратном порядке — MIGX — 23.09.2021
- Яндекс карта через API — Быстрый старт — 24.09.2021
- Проверка подключения jQuery — 10.03.2022
- Стандартные плейсхолдеры в MIGX — 19.12.2022
В этом примере мы указываем названия дополнительных полей (TV) через запятую в значении параметра includeTVs. Вместо field1, field2 и field3 вы должны указать реальные названия ваших дополнительных полей.
После этого вы можете использовать эти дополнительные поля внутри шаблона (resource_tpl) для вывода данных.
Пример шаблона (resource_tpl):
[[+pagetitle]]
[[+content]]
Field 1: [[+tv.field1]]
Field 2: [[+tv.field2]]
Field 3: [[+tv.field3]]
Здесь мы выводим заголовок ([[+pagetitle]]) и содержимое ([[+content]]) каждого ресурса. Затем мы используем [[+tv.field1]], [[+tv.field2]] и [[+tv.field3]] для получения значений соответствующих дополнительных полей.
Убедитесь, что вы используете правильные названия дополнительных полей и что они существуют для соответствующих ресурсов в административной панели MODX.
Использование параметра includeTVs и передача названий дополнительных полей через запятую позволяет вам гибко выбирать и выводить конкретные дополнительные поля с использованием pdoResources в MODX.
Источник: codelab.pro
Вывод текстовых значений TV из чанков
В Modx Evolution часто бывает довольно много прикрепленных TV параметров, значения которых хранятся в чанках.
Выводить эти значения на сайт приходится не менее часто и в самом разном виде: ссылками, списками, селектами и т.д.
Но чаще всего в виде простого текстового значения, для чего мы и написали простенький сниппет, в котором достаточно указать только имя чанка и значения TV.
Сниппет выводит как одиночные значения, так и множественные (Delimited List) разделяя их запятой.
Пример вызова:
[[GetTextValues? chunk=`name-of-chunk`]]
Код сниппета:
getChunk($chunk))); // удаляем возможные пустые значения $tv_val_arr=array_diff($tv_val_arr, array(0, null)); $items_list = array_diff($items_list, array(0, null)); $items_count=count($items_list); for($i=0;$i <$items_count;$i++) { list($itemvalue,$item)=explode(‘==’,$items_list[$i]); $items[$item]=$itemvalue; } foreach($tv_val_arr as $k =>$v) { $items_all[]= $items[$v]; } // здесь можно изменить формат вывода return implode(‘, ‘,$items_all); } else { return $text; }
Источник: webartis.ru
mFilter2 — быстрый запуск
Добавляем обычную фильтрацию по чекбоксам, по любому тв аналогично. В примере довалена фильтрация по двум тв: volume и material
[[!mFilter2? parents=`[[*id]]` tplFilter.outer.tv|price=`tpl.mFilter2.filter.slider` element=`mSearch2` limit=`10` tpl=`tplCategoryGood_pb` filters=` tv|price_pb:number, tv|volume_pb:select, tv|material_pb, tv|model_pb` tplFilter.row.tv|price_pb=`tpl.mFilter2.filter.number` tplFilter.row.tv|volume_pb=`tpl.mFilter2.filter.option` ]]
Исправляем подписи полей
— Шестеренка → Управление словарями
— в «Пространсве имен» выбираем «msearch2»
— Нажимаем «создать запись» → в поле имя пишем, то что на выдаче, например «mse2_filter_tv_volume», в значении пишем, то что нам требуется, например «Объем»
Выводим через свой чанк «tpl» со своими tv
[[!mFilter2? parents=`[[*id]]` includeTVs=`artikul,dverca,material,model,price,volume` tplFilter.outer.tv|price=`tpl.mFilter2.filter.slider` price», по возрастанию
tpl.mFilter2.outer» добавляем «Сортировку по цене».
в данном примере я в div с я закомментировал сортировку по дате публикации, и добавил сортировку по tv «price»
Выбрать другую заметку
Источник: enterin.ru