ezpublish.ru / Форумы / Для разработчиков / Замещение pagelayout.tpl




Замещение pagelayout.tpl

Для доступа к форумам необходимо авторизоваться. Это можно сделать здесь

Автор Сообщение

Slamer List.ru

Пн, 2 апреля 2007 13:28:07

Поделитесь, пожалуйста, опытом.

Правая часть должна быть контекстнозависимой от модуля/вида и текущего состояния (соответствующих условий override.ini, то есть текущей секции, узла или редактируемого объекта).

Я вынес все блоки (header, footer sidemenu, adv и пр.) в отдельные шаблоны и собираю их в pagelayout.tpl include'ами.
По идее, в зависимости от местонахождения на сайте блоки собираются в разные "картинки".

Теперь проблема в том, что в override.ini для pagelayout.tpl нет условий вроде Match[module] и Match[view]. Что делать?

Или может такой подход не соответстует концепции eZ publish. Тогда каким образом лучше решить эту задачу?

Павел Коновалов

Пн, 2 апреля 2007 13:52:42

Добрый день.
Опишите Вашу проблему более подробно, не совсем понятна суть вопроса.

Only strong the survive

Денис Зацаринный

Пн, 2 апреля 2007 14:07:25

Уже эта тема обсуждалась
Любой шаблон можно заменить на любой

[my_pagelayout]
Source=pagelayout.tpl
MatchFile=my_pagelayout.tpl
Subdir=templates


===-----
Не разрешимых заздач нет - есть малый гонорар
---=====

Slamer List.ru

Вт, 3 апреля 2007 4:03:37

Для своей компании разрабатывается небольшой интранет-проект (простенькое CRM-приложение).

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

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

Я, конечно, могу создать панель в виде отдельного шаблона и использовать if - elseif - else - /if, но мне почему то кажется, что это не лучший способ. Может я не прав? Именно поэтому, очень интересно мнение опытных разработчиков.

Павел Коновалов

Вт, 3 апреля 2007 7:13:47

Наверное вам лучше всего стоит поступить следующим образом:
Во всех выше перечисленных случаях у вас для отображения шаблона используются различные шаблоны.
По чему бы не сделать соответсвующие записи в override.ini.append.php?
Например:
При редактировании какой либо из сущностей:
[edit_content_entity]
Source=content/edit.tpl
MatchFile=<custom_edit_templeate.tpl>
Subdir=templates
Match[class_identifier]=<your_class_identifier>

При просмотре:
[full_entity_list]
Source=node/view/full.tpl
MatchFile=<custom_full_template.tpl>
Subdir=templates
Match[section]=#
(если объект принадлежит какой либо секции)
Match[class_identifier]=folder
(отобразит список всех объектов, находящихся в "папке" и принадлежащих к секции # )

etc..

Only strong the survive

Slamer List.ru

Вт, 3 апреля 2007 7:48:37

Спасибо за ответ. Видимо так лучше и будет сделать.

Все же ez systems стоит подумать над расширением условий в override.ini, потому как идея очень хорошая, понятная и прозрачная для разработчиков.