Существует огромное количество способов сделать это с помощью ColdFusion.
Application.cfc выполняется при каждом запросе и имеет два метода (onRequestStart
и onRequestEnd
), которые можно использовать для добавления содержимого к основному сценарию на странице.
Также стоит отметить, что можно расширить/наследовать ваш Application.cfc, что позволяет использовать более сложный набор событий RequestStart/End. Подробнее здесь и здесь.
Пользовательские теги позволяют чтобы создать тег, который вы можете обернуть вокруг каждого шаблона, чтобы применить макет/и т. д. Это также позволяет атрибутам/и т. д. определять общий, но меняющийся текст.
Например:
<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 действительно не вариант, взгляните на список фреймворков Чарли Архарта — эта страница в целом представляет собой огромный список инструментов, на которые стоит обратить внимание.
В любом случае, это должно дать вам достаточно вещей для размышлений...
person
Peter Boughton
schedule
02.04.2009