UMIhelp

Разработка сайта на UMI.CMS => Шаблоны PHP => Тема начата: NOIRMAN от 31 Августа 2016, 15:25:31

Название: Сортировка usel запроса
Отправлено: NOIRMAN от 31 Августа 2016, 15:25:31
Вывод результатов чистого (через строку браузера) запроса usel показывает сортировку по расположению объектов в админке.
<?xml version="1.0" encoding="utf-8" ?>
<selection>
    <target result="pages">
        <type id="122" />
        <category depth="1">8</category>
    </target>
    <limit page="{numpage}">{limit}</limit>
</selection>
Вывод же на странице сайта пересортировывает их по page_id. Нигде явно не происходит запроса по пересортировке.
$complete_objects = $this->usel('get_complete_objects', array('numpage' => $_GET['p'], 'limit' => 24));
      echo $this->render($complete_objects, 'photoalbum/complete_objects');
foreach ($variables['sel'] as $compl_object) {
            $page = $this->getPageById( $compl_object->getId() );
            echo $page->getValue('h1');
}
Как победить данный момент и оставить сортировку по умолчанию (по расположению в админке)?
Название: Re: Сортировка usel запроса
Отправлено: e.ioffe от 31 Августа 2016, 22:03:43
Попробуйте в коде usel жестко указать сортировку <sort order="asc">ord</sort>

В php-шаблонизаторе лучше вместо usel писать свои макросы.
Название: Re: Сортировка usel запроса
Отправлено: aghigay от 31 Августа 2016, 22:25:03
Всегда лучше вместо usel писать свои макросы. Но не всегда это оправдано :-)
Название: Re: Сортировка usel запроса
Отправлено: NOIRMAN от 31 Августа 2016, 22:30:10
Попробуйте в коде usel жестко указать сортировку <sort order="asc">ord</sort>
Помогло. Спасибо.
Название: Re: Сортировка usel запроса
Отправлено: e.ioffe от 31 Августа 2016, 22:46:55
Всегда лучше вместо usel писать свои макросы. Но не всегда это оправдано :-)

В php-шаблонизаторе usel возвращает объекты классов umiHierarchyElement или umiObject, с которыми могут возникнуть проблемы при кешировании. Свой макрос возвращает массив, который можно без проблем отправить в кеш.

Если для xslt usel в некоторых случаях еще доступим, то в php его использование только вредит (как производительности, так и дальнейшей поддержке кода).