Я пытаюсь изучить Coldbox, чтобы, возможно, заменить текущий фреймворк, который я использую. Одна из функций, которые я использую в настоящее время, — это возможность переопределить любое включение шаблона по соглашению.
По сути, скажем, у меня есть представление "views/home.cfm"
<h1>I am the default theme</h1>
и это все хорошо и хорошо. Но скажем, у меня другое представление, "themes/[theme-name]/views/home.cfm"
<h1>I am the user chosen theme</h1>
которые я хочу включить условно (скажем, есть файл cookie, чтобы определить, какая тема используется). Кроме того, если файл не существует, следует отобразить представление по умолчанию/резервный вариант.
Есть ли способ сделать это, переопределяя системные функции?
Я посмотрел на перехватчики, и перехватчики preViewRender и postViewRender кажутся местом, где можно сделать что-то подобное, но, похоже, нет никакого способа манипулировать фактическим рабочим процессом. Если кажется, что это в основном предварительная/постобработка контента. Например, похоже, что нет способа «вернуть false», чтобы сообщить методу renderView, что представление фактически не отображается. Или каким-либо образом повлиять на местоположение, в котором должно быть найдено представление.
Любые идеи?