Здесь показаны различия между двумя версиями данной страницы.
Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия | ||
eaze:pages.xml [2011/09/12 17:25] sergeyfast virtual actions |
eaze:pages.xml [2012/04/01 22:24] sergeyfast |
||
---|---|---|---|
Строка 5: | Строка 5: | ||
Правила выполняются последовательно. Если первым идет правило с регулярным выражением “(.*)”, а вторым – “/”, то второе правило никогда не выполнится, так как его перекрывает первое. | Правила выполняются последовательно. Если первым идет правило с регулярным выражением “(.*)”, а вторым – “/”, то второе правило никогда не выполнится, так как его перекрывает первое. | ||
- | Для удобства правила можно определять в группы. А в группах определять глобальные действия до и после обработки url по найденному правилу. | + | Для удобства правила можно определять в группы. А в группах определять глобальные действия до (атрибут **//boot//**) и после (атрибут **//shutdown//**) обработки url по найденному правилу. |
===== Описание файла ===== | ===== Описание файла ===== | ||
Строка 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 и т.д.). |