Il y a un grand nombre de façons de le faire avec ColdFusion.
Application.cfc est exécuté sur chaque demande et a deux méthodes (onRequestStart
et onRequestEnd
) qui peuvent être utilisés pour préfixer/ajouter du contenu au script principal dans une page.
À noter également, il est possible d'étendre/hériter votre application.cfc, permettant un ensemble plus complexe d'événements RequestStart/End. More details here et here.
Custom Tags vous permettent de créer une étiquette que vous pouvez enrouler autour de chaque modèle pour appliquer la mise en page/etc. Il permet également aux attributs/etc de définir un texte commun mais changeant.
Par exemple:
<cf_page PageTitle="My Page">
[main page content]
</cf_page>
Et dans la balise personnalisée (page.cfm) vous avez:
<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>
Et bien sûr, vous pouvez créer plusieurs balises personnalisées ou une étiquette qui fonctionne de plusieurs façons en fonction des attributs spécifiés.
Henry a déjà mentionné MVC Cadres, mais vous n'avez pas besoin de faire MVC pour utiliser la fonctionnalité templating/mise en page.
Fusebox peut faire MVC, mais il n'a pas besoin que vous de le faire, et Eitherway les ContentVariables de FB sont un bon outil pour la mise en œuvre du contenu modulaire - à moins que votre développeur principal peut justifier son aversion pour Fusebox (et suggérez une alternative qui correspond mieux à votre projet!) alors il n'y a absolument aucune raison de ne pas y aller - c'est un framework mature et bien connu, facile à utiliser, plein de développeurs, et ainsi de suite.
Cependant, si Fusebox n'est vraiment pas une option, jetez un oeil à Charlie Arehart's list of frameworks - cette page en général est une énorme liste d'outils à examiner.
Quoi qu'il en soit, cela devrait vous donner assez de choses à prendre en compte pour l'instant ...
Ha, lisez cette question avant même de savoir qui l'a posté. Manquant .Net hein? –