ci sono un numero enorme di modi per farlo con ColdFusion.
Application.cfc viene eseguito su ogni richiesta e ha due metodi (onRequestStart
e onRequestEnd
) che possono essere utilizzati per anteporre/accodare il contenuto allo script principale in una pagina.
Inoltre, è possibile estendere/ereditare Application.cfc, consentendo un insieme più complesso di eventi RequestStart/End. More details here e here.
Custom Tags permettono di creare un tag che si può avvolgere intorno ad ogni modello da applicare il layout/etc. Permette anche agli attributi/etc di definire testo comune ma cambiante.
Ad esempio:
<cf_page PageTitle="My Page">
[main page content]
</cf_page>
E dentro il tag personalizzato (page.cfm) si ha:
<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>
E naturalmente è possibile creare più tag personalizzati, o di un tag che funziona in più modi a seconda degli attributi specificati.
Henry ha già menzionato MVC quadri, ma non c'è bisogno di fare MVC di avvalersi di funzionalità di template/layout.
Fusebox può fare MVC, ma non richiedono di farlo, e Eitherway ContentVariables di FB sono un ottimo strumento per l'attuazione dei contenuti modulare - a meno che il capo sviluppatore può giustificare sua avversione per Fusebox (e suggerire un'alternativa che si adatta meglio al tuo progetto!) quindi non c'è assolutamente alcun motivo per non farlo: è un framework maturo e ben noto, facile da usare, molti sviluppatori e così via.
Tuttavia, se Fusebox non è davvero un'opzione, dai un'occhiata a Charlie Arehart's list of frameworks - quella pagina in generale è un elenco enorme di strumenti che vale la pena guardare.
In ogni caso, che dovrebbe darvi abbastanza cose da prendere in considerazione per ora ...
Ha, leggi questa domanda prima che mi rendessi conto di chi lo ha pubblicato. .Net eh? –