Логотип

Документация по макросам и шаблонам UMI.CMS

data doSelection()

Название

%data doSelection()% — Отображает результаты выборки из базы данных UMI.CMS по заданному шаблону USel.

Параметры: %data doSelection(template = 'default', uselName [, param1, param2, ... ])%

template

Имя шаблона, по которому надо вывести результаты выборки.

uselName

Имя шаблона Usel, на основании которого производится выборка.

param1, param2, ...

Параметры, значение которых будет подставлено в заданные места в шаблоне Usel (см. «Выборки из БД: протокол USel»).

Описание

Этот макрос позволяет задействовать возможности протокола USel (см. «Выборки из БД: протокол USel») на сайтах, работающих на tpl-шаблонизаторе. Для задания условий выборки используются специальные XML-файлы — так называемые шаблоны Usel. Для конечного отображения результатов выборки можно задать пользовательский шаблон (параметр template), или воспользоваться шаблоном по умолчанию — default.tpl. В шаблонах отображения используются две группы блоков — отдельно для объектов системы (objects_block), отдельно для страниц (elements_block).

Использование лишено смысла. Используйте непосредственно протокол USel (см. «Выборки из БД: протокол USel»).

Используемые шаблоны

Для отображения результатов макрос оперирует шаблонами, находящимися в каталоге /tpls/data/usel.

Файлы с шаблонами Usel должны находится в папке ~/usels/.

Используемые блоки шаблона

objects_block

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

%total%

Общее количество объектов выборки, удовлетворяющих условиям.

%per_page%

Количество объектов на странице.

%items%

Выводит список объектов, сформированный блоком objects_block_line.

objects_block_line

Выводит строку из списка объектов выборки.

%name%

Имя объекта.

%id%

Идентификатор объекта.

%separator%

Выводит разделитель, заданный в блоке separator или, в случае последнего элемента, — в блоке separator_last.

objects_block_empty

Выводит заданный в этом блоке текст в случае отсутствия объектов, удовлетворяющих условиям выборки.

elements_block

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

%total%

Общее количество страниц, удовлетворяющих условиям выборки.

%per_page%

Количество выводимых страниц в списке на странице.

%items%

Выводит список страниц, сформированный блоком elements_block_line.

elements_block_line

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

%name%

Имя объекта.

%id%

Идентификатор объекта.

%link%

Ссылка на страницу.

%separator%

Выводит разделитель, заданный в блоке separator или, в случае последнего элемента, — в блоке separator_last.

elements_block_empty

Выводит заданный в этом блоке текст в случае отсутствия страниц, удовлетворяющих условиям выборки.

separator

Выводит заданный в этом блоке разделитель для элементов списка в блоках objects_block_line и elements_block_line.

separator_last

Выводит заданный в этом блоке текст или символ после последнего элемента списка.

Примеры использования

Создайте XML-файл в папке http://your-domain.ru/usels. Например, он будет называться getAllCatalogPages.xml. Это будет наш шаблон usel, используемый для задания условий выборки. Введите в этом файле следующий текст:

<?xml version="1.0" encoding="UTF-8"?>
<selection>
  <target expected-result="pages">
    <type module="catalog" method="object" />
  </target>
</selection>

Создайте новую страницу и вставьте туда макрос с параметрами %data doSelection('default','getAllCatalogPages')%. При просмотре созданной страницы вы должны увидеть все объекты каталога с ссылками на их страницы, оформленные в виде списка. Оформление списка задается шаблоном default.tpl и выглядит следующим образом:

<?php

$FORMS = Array();

$FORMS['objects_block'] = <<<END
 <p>Objects list (%total%/%per_page%):</p>
 <ul>
  %items%
 </ul>
END;

$FORMS['objects_block_line'] = <<<END
 <li>
  %name%
  %separator%
 </li>
END;

$FORMS['objects_block_empty'] = <<<END
 <p>Objects not found</p>
END;

$FORMS['elements_block'] = <<<END
 <p>Elements list (%total%/%per_page%)</p>
 <ul>
  %items%
 </ul>
END;

$FORMS['elements_block_line'] = <<<END
 <li>
  <a href="%link%">%name%</a>
  %separator%
 </li>
END;

$FORMS['elements_block_empty'] = <<<END
 <p>Elements not found</p>
END;

$FORMS['separator'] = <<<END
|
END;

$FORMS['separator_last'] = <<<END
!
END;

?>