Воеводский Михаил

Воеводский Михаил

Был в сети 30 марта 2026, 14:44
Заказы не принимаю
getPage сам по себе ничего не выводит, он только обеспечивает разбиение на страницы. Выводом, скорее всего, занимается getResources. В таком случае самым простым вариантов будет установка pdoTools и замена в вызове [[getPage]] на [[pdoPage]]. А дальше — по многочисленным здесь руководствам и ответам.
Из документации:

&tplCondition Поле ресурса, из которого будет получено значение для выбора чанка по условию в &conditionalTpls.
&tplOperator Необязательный оператор для проведения сравнения поля ресурса в &tplCondition с массивом значений и чанков в &conditionalTpls.
&conditionalTpls JSON строка с массивом, у которого в ключах указано то, с чем будет сравниваться &tplCondition, а в значениях — чанки, которые будут использованы для вывода, если сравнение будет успешно. Оператор сравнения указывается в &tplOperator. Для операторов типа isempty можно использовать массив без ключей.
С помощью этих трех параметров можно настроить различное отображение по любым значениям нужного поля.
Плюс: нет события OnPageNotFound и связанных с ним замедляющих механизмов.
Минус: зашитая в коде маршрутизация. Подходит только для малого количества очень редко меняющихся шаблонов.
Сильный минус: нестандартный подход, усложняющий понимание иными разработчиками.
Еще вариант — на событии OnMODXInit проверять $_REQUEST['q'] на соответствие собственному шаблону и, если подходит, часть uri отправлять в качестве get параметра, в q оставив только адрес существующего ресурса.

Возможно, костыльное решение, однако в некоторых случаях может быть весьма оправданным.
Хорошим вариантом является создание правил выгрузки на базе modImporter, чтобы не изобретать велосипед заново.
Николай, сделай платное дополнение к своему импортеру или, если ценник будет значительно повышен, включи функционал в базу. Получится значительное расширение возможностей компонента и увеличение количества нуждающихся в нем.