Что делать, если не работает extProps

Начиная с версии 2.8.6 в UMI CMS появилась возможность получения произвольного набора групп свойств и собственно полей свойст при работе со стандартными макросами.

Это очень удобно, особенно когда вам нужно всего пару дополнительных свойств за одну выборку.

Например, вы берете стандартный макрос content/menu и пытаетесь вывести пункты меню с картинками из свойства header_pic. В случае обычного использования вам потребовалось бы каждый раз обращаться за свойством в отдельном запросе.

В новом варианте вам достаточно указать в запросе что-то наподобие document(‘udata://content/menu/?extProps=header_pic’) и в результате вы получите что-то наподобие:

<udata module="content" method="menu" generation-time="0.006117">
<items>
<item id="1" link="/" xlink:href="upage://1">Главная
<extended>
<properties>
<property id="10" name="header_pic" type="img_file">
<title>Изображение для заголовка</title>
<value path="./images/cms/headers/1.jpg" folder="/images/cms/headers" name="1" ext="jpg" width="1000" height="667">/images/cms/headers/1.jpg</value>
</property>
</properties>
</extended>
</item>
...
</items>
</udata>

Но, как ни странно, в некоторых случаях это не срабатывает. То есть даже указав extProps расширенные поля не возвращаются.

Столкнувшись с этой проблемой необходимо помнить, что за работоспособность указанной функции отвечает параметр udata.http.extended.allow секции [streams] файла config.ini. Обязательно нужно установить: udata.http.extended.allow = "1"

Вот и все хитрости.

Простой и понятный online-курс для обучения XSLT-программиста с любого базового уровня

Июн05

Ваш отзыв