Принцип перевода выборок

20 сентября 2019, 07:00

Принцип перевода сущностей, отличных от modResource и перевода выборок

Работа любых сниппетов, выводящих список каких-либо ресурсов (не обязательно modResource, но также и файлов галереи, комментариев и т.д.), заключается в том, что сниппет, получает на вход набор параметров, формирует запрос к базе данных, получает данные, проводит с ними какую-либо обработку и затем отдает дальше.

В сниппетах pdoTools предусмотрен механизм, позволяющий заменой системной настройки переопределить класс, осуществляющий выборку каких-либо ресурсов.

pdoFetch.class = mlFetch
pdofetch_class_path = {core_path}components/multilingual/model/multilingual/

Для того, чтобы иметь возможность получать выборки с переводами ресурсов, отличных от класса modResource (и наследуемых от него), вам необходимо написать свой класс, наследуемый от класса mlFetch, переопределив методы getArray и prepareRows, добавив в них логику подготовки выборки перед отдачей дальше по аналогии с тем, как это сделано в классе mlFetch.

После этого, получая выборки при помощи сниппета pdoResources или при помощи другого, самописного сниппета, использующего класс из настройки pdoFetch.class для этих целей, вы сможете получать выборки с переводами на текущий язык.



Следующий документ
Решение проблем