NeoCode: Полностью согласен, что у меня - общая схема.
Однако, могу ответить на все Ваши вопросы, т.к. я создавал свой фреймворк именно решая заданные Вами вопросы один за другим)))
Шаблонизатор - фактически, это модуль размещения компонентов внутри страницы на основе запрошенных и полученных системой (на основе вычислений) данных.
Аналогия: шаблонизатор - центр контроля "барж" (самые крупные области минимальной сетки шаблона), несущих на себе отдельные "контейнеры" (компонентные блоки).
Итак, прошли все вычисления (уровень приложения) и Вы получили в объектный массив коды размещения на странице - "контейнеры".
Задача шаблонизатора - "погрузить" эти контейнеры на области сетки шаблона в зависимости от различных текущих условий (обычно, только URL и ACL) и зависимости этих "контейнеров" между друг другом для корректной работы на стороне клиента (строится "дерево" зависимостей, где указывается что от чего зависит: без каких "контейнеров" нет смысла выводить, подобно службам в Windows).
Кэшируется шаблон обычно так: URL (сервис без параметров), текущие права ACL, готовая сетка размещения "контейнеров" без загрузки контента, внутри текста будет, например:
"::login[0]::" и где-то справа с тэгами
::similar_article[0]::
::similar_article[1]::
::similar_article[2]::
и т.д.
Затем в получившийся шаблон расставляется контент из этих "контейнеров" (массив подготовленных объектов из уровня приложения ) и получается готовая страница.
В очередной раз, если есть в кэше - мы переходим сразу от вычислений к расстановке данных из "контейнеров" уже по имеющейся готовой разметке, минуя все расчеты зависимостей при формировании нужного представления.
1. А вот как это делается? Например, я создал собственный дизайн виджета (блока)?
2. Если я буду использовать на сайте шаблон по дизайну 1-в-1, созданному в конструкторе - как в таком случае распределятся права?
Антон Алфимов: ну по реферу отслеживать - это понятно. а вот когда давать потестить веб-приложение (визуальный конструктор), то его можно взять и под него написать серверную часть. Т.е. на сервере - оно должно что-то такое хранить, что без этого нельзя будет использовать приложение на стороннем ресурсе.
Вот тут встаёт вопрос: что например?
Антон Алфимов: так код же исполняется на стороне клиента, клиент может стащить этот код к себе. Каким образом токен тут сможет защитить клиентский код?
Однако, могу ответить на все Ваши вопросы, т.к. я создавал свой фреймворк именно решая заданные Вами вопросы один за другим)))
Шаблонизатор - фактически, это модуль размещения компонентов внутри страницы на основе запрошенных и полученных системой (на основе вычислений) данных.
Аналогия: шаблонизатор - центр контроля "барж" (самые крупные области минимальной сетки шаблона), несущих на себе отдельные "контейнеры" (компонентные блоки).
Итак, прошли все вычисления (уровень приложения) и Вы получили в объектный массив коды размещения на странице - "контейнеры".
Задача шаблонизатора - "погрузить" эти контейнеры на области сетки шаблона в зависимости от различных текущих условий (обычно, только URL и ACL) и зависимости этих "контейнеров" между друг другом для корректной работы на стороне клиента (строится "дерево" зависимостей, где указывается что от чего зависит: без каких "контейнеров" нет смысла выводить, подобно службам в Windows).
Кэшируется шаблон обычно так: URL (сервис без параметров), текущие права ACL, готовая сетка размещения "контейнеров" без загрузки контента, внутри текста будет, например:
"::login[0]::" и где-то справа с тэгами
::similar_article[0]::
::similar_article[1]::
::similar_article[2]::
и т.д.
Затем в получившийся шаблон расставляется контент из этих "контейнеров" (массив подготовленных объектов из уровня приложения ) и получается готовая страница.
В очередной раз, если есть в кэше - мы переходим сразу от вычислений к расстановке данных из "контейнеров" уже по имеющейся готовой разметке, минуя все расчеты зависимостей при формировании нужного представления.