Наш движок всем движкам движок!*

* Лучшая CMS по опросам 2014 года



Интересные модули:





Остальные модули...



Демо-версия:
ALT

Логин: demo@eQuantics.net

Пароль: portal

Дистрибутив:
ALT

Блоки: Шаблонизированный вывод данных


blocks версия: 5.5


Блоки являются основным модулем системы, который лежит в основе многих других. Его суть заключается в шаблонизации данных и представлении их в виде иерархического каталога. При этом объекты этого каталога не имеют прямой связи со страницами, в отличие от модуля сайт. Это позволяет создавать шаблонизированные пакеты данных практически без ограничений по их применению.
Блоки представлены двумя типами объектов. Разделами и элементами. Разделы представляют собой папки, которые могут иметь неограниченную вложенность. Элементы вкладываются в разделы на подобие страниц внутри папки.
Для разделов и элементов могут быть созданы атрибуты их описывающие, в системе они назваются элементами шаблонов разделов блока и элементами шаблонов элементов блока соотвественно. Разные разделы внутри одного блока могут имет разные наборы элементов шаблонов. Вывод элементов и разделов осуществляется через переменные, совокупность которых образует схемы выдачи. Для разделов и элементов схемы разные, хотя все данные из элемента монжо вывести и в схеме раздела. В схеме раздела может быть выведена иерархия каталогов в виде меню, а также список элементов. 
Типичная структура схемы разделов - это меню для выбора нужного раздела, а в разделах, где есть элементы. вывод списка элементов, которыми являются товары или услуги со ссылкой на подробное описание. Которое как раз будет выведено через схему элемента.
Типы элементов шаблонов в блоках во многом совпадают с типами элементов сайта. Это картинка, с возможностью загрузки как с локального компьютера и из сети, шаблонизацией вывода множественных картинок в одном элементе. Файл для закачки. Текстовое поле с визуальным HTML редактором или без. Строка для небольших параметров, умещающихся в одной строчке. Списки с заранее введенными значениями с возможностью выбора нескольких значений.
В публичную часть блоки могут выводиться двумя способами:

Первый способ вывода данных из блока.  Динамические страницы.

В модуле Сайт создается динамическая страница с выводом из блока. Указывается из какого блока должны выводиться данные. Один блок может выводиться на любом количестве динамических страниц. Также может быть указан раздел, который будет выводиться вместо корневого раздела блока. При этом будет выводиться все вглубь по иерархии от указанного раздела.
На динамической странице также указывается сопоставление данных разделов и элеменов блока, а также элементов их шаблонов элементам модуля сайт. Т.е. можно передавать из шаблонизированных параметров данных блока информацию в элементы сайта. Например, название товара или услуги может передаваться в заголовок страницы. Или картинка специфичная для какого-то раздела может передаваться в фон страницы в шаблоне.
Кроме того, в настройках динамической страницы указывается сопоставление схем выдачи разделов и элементов блока содержимому страницы в шаблоне сайта. По умолчанию содержимое страницы сопоставлено схеме, но при желании схема может передаваться в любой элемент и наоборот, в содержимое страницы могут быть переданы любые данные из блока.
Также на элемент сайта может быть сопоставлен сформированный список ссылок на путь к разделу или элементу, т.н. "хлебные крошки". Разделитель и порядок сборки цепочки настраивается в элементе сайта и может быть произвольным. Таким образом, чтобы создать цепочку пути к разделу или элементу, необходимо создать элемент сайта для этих целей, сопоставить его на выдачу цепи, а затем вставить тег вызова этого элемента в схему раздела и/или элемента.
Кроме того, в настройках динамической страницы выбирается возможность деления выдачи элементов на страницы. Для разделов эта возможность не предусмотрена, т.к. разделов подразумевается ограниченное количество и древовидная структура. Элементы при этом могут выводиться в любом количестве на страницу в соответствии с заданными настройками. Также произвольно выбирается указатель постаничной выдачи для адреса страницы, что может быть полезно для уникализации урлов сайта.

Второй способ вывода данных из блока.  Элементы сайта.

Вторым способом выдачи данных из блока является элемент сайта с выдачей из блока. Он создается в модуле Сайт и используется для представления информации из блока без создания страниц под ее разделы и элементы. Обычно такая выдача используется для формирования динамических меню, анонсов, списков товаров и прочего. Такая выдача может осуществляться без создания динамической страницы.
Элементы с выдачей из блока делятся на несколько типов. 
Разделы текущего уровня - соответственно выводит список разделов с возможностью выдачи подразделов. Т.е. в виде иерархии. Сортировка выдачи разделов может быть настроена в схеме, как и выдача начиная с определенного раздела. Схема для выдачи задается в настройках элемента и имеет вид:
Код верстки перед схемой {начало_выдачи_разделов}Повторяющийся код разделов {начало_выдачи_подразделов} Повторяющийся код подразделов. Тут возможно вложение выдачи подразделов следующего уровня. {конец_выдачи_подразделов} Закрывающие теги верстки разделов {конец_выдачи_разделов} Закрывающие теги верстки после схемы 
Выдача разделов блока чаще всего используется как динамическое меню.
Следующим вариантом элемента сайта с выдачей из блока является выдача элементов определенного уровня блока. Т.е. будут выведены элементы из одного раздела блока. Айди раздела откуда осуществляется выдача указывается в настройках схемы. Также настраивается сортировка - по названию, дате, айди, шаблону. И ограничение по количеству выдаваемых элементов. 
Как правило, этот способ выдачи используется как анонс, например, показывая случайным образом выбранный товар. Или последние поступления в каталог.
Также есть вариант сквозной выдачи всех элементов из каталога без деления их на разделы за счет создания элемента сайта с выводом элементов блока одного шаблона. Это означает, что будут выводиться все элементы, на которые действует общий шаблон блока. Применение его во много похоже на предыдущий вариант и назначение совпадает, однако этот вариант позволяет выводить элементы из любого раздела одновременно.