Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия | |||
eaze:pages.xml [2011/10/19 17:26] zenden [pages.xml] |
eaze:pages.xml [2012/04/01 22:24] sergeyfast |
||
---|---|---|---|
Строка 67: | Строка 67: | ||
- | ====== Виртуальные экшены и цепочки вызовов ====== | + | ===== Виртуальные экшены и цепочки вызовов ===== |
Появилась поддержка цепочек вызовов экшенов (можно переопределять для разных хостов — это слегка модифицированные virtualActions). | Появилась поддержка цепочек вызовов экшенов (можно переопределять для разных хостов — это слегка модифицированные virtualActions). | ||
- | ===== Пример конфига ===== | + | ==== Пример конфига ==== |
<code xml> | <code xml> | ||
<sites> | <sites> | ||
Строка 86: | Строка 86: | ||
</sites> | </sites> | ||
</code> | </code> | ||
+ | |||
+ | |||
+ | ===== Препроцессинг статических методов, свойств и констант в pages.xml ===== | ||
+ | |||
+ | Иногда хочется избавиться от хардкода урлов в pages.xml. В trunk появилась возможность в атрибуте ''uri'' тега ''page'' использовать статические методы, свойства или константы. | ||
+ | |||
+ | Но не стоит увлекаться таким вариантом. Это понижает читаемость кода. | ||
+ | |||
+ | Механизм работы следующий. При при изменении содержания ''pages.xml'' создается новая кешированная версии ''pages.xml'' в папке ''cache''. В момент создания этого кешированной версии происходит замена соответствующих конструкций на результат их выполнения. В uri могут быть следующие варианты | ||
+ | |||
+ | <code xml> | ||
+ | <page uri="/{PageManagerTest::UrlPrefix}/" /> | ||
+ | <page uri="/{PageManagerTest::$UrlPrefix}/" /> | ||
+ | <page uri="/{PageManagerTest::UrlPrefix()}" /> | ||
+ | <page uri="/{PageManagerTest::UrlPrefix()}/{PageManagerTest::UrlPrefix}/combined/{2}/" /> | ||
+ | </code> | ||
+ | |||
+ | Где ''PageManagerTest::UrlPrefix'' - константа, ''$UrlPrefix'' - статическое свойство, ''UrlPrefix()'' - статический метод. | ||
+ | |||
+ | Данный метод не работает на страницах с ошибками (404.xml, 403.xml и т.д.). |