Существует огромное количество способов сделать это с ColdFusion.
Application.cfc выполняется для каждого запроса и имеет два метода (onRequestStart
и onRequestEnd
), которые можно использовать для добавления / добавления содержимого в основной сценарий на странице.
Также стоит отметить, что можно расширять / наследовать ваш Application.cfc, допуская более сложный набор событий RequestStart / End. Подробнее здесь и здесь .
Пользовательские теги позволяют вам создать тег, который можно обернуть вокруг каждого шаблона, чтобы применить макет и т. Д. Он также позволяет атрибутам / etc определять общий, но изменяющийся текст.
Например:
<cf_page PageTitle="My Page">
[main page content]
</cf_page>
А внутри пользовательского тега (page.cfm) у вас есть:
<cfif ThisTag.ExecutionMode EQ 'start'>
<cfparam name="Attributes.PageTitle" default=""/>
<cfcontent reset/><cfoutput><!DOCTYPE html>
<html>
<head>
<title>My Website - #Attributes.PageTitle</title>
[styles and scripts and stuff]
</head>
<body>
<div id="heading">
<img src="my_website_logo.png" alt="My Website"/>
</div>
<ul id="mainmenu" class="nav">
[menu]
</ul>
<h1>#Attribute.PageTitle#</h1>
</cfoutput>
<cfelse>
<cfoutput>
<div id="footer">
[footer]
</div>
</body></html></cfoutput>
</cfif>
И, конечно, вы можете создать несколько пользовательских тегов или один тег, который работает несколькими способами в зависимости от указанных атрибутов.
Генри уже упоминал MVC Frameworks , но вам не нужно использовать MVC, чтобы использовать функциональность шаблонов / макетов.
Fusebox может выполнять MVC, но это не требует от вас, и в любом случае ContentVariables FB являются хорошим инструментом для реализации модульного контента - если ваш ведущий разработчик не может оправдать его неприязнь к Fusebox (и предложить альтернативу, которая лучше подходит вашему проекту!), то нет абсолютно никаких причин не идти на это - это зрелая и хорошо известная структура , простой в использовании, множество разработчиков и т. д.
Однако, если Fusebox действительно не подходит, взгляните на список фреймворков Чарли Арехарта - эта страница в целом представляет собой огромный список инструментов, на которые стоит обратить внимание.
Во всяком случае, это должно дать вам достаточно вещей, чтобы рассмотреть на данный момент ...