Je recommanderais quelque chose de similaire à ce que @Ben Doom a suggéré; mais ne pas stocker dans la portée de la session. Au lieu de cela, je recommanderais d'utiliser la portée de l'application. Il n'y a aucune raison pour que la session de chaque utilisateur répète la même information encore et encore.
Vous pouvez obtenir 2 "applications" différentes (essentiellement des espaces d'adresses différents) s'exécutant à partir de la même base de code en leur donnant différents noms d'application. Comme Ben le suggère, je baserais le nom de l'application sur une variable CGI. L'utilisation d'un hachage garantira que la valeur sera sûre à utiliser comme nom d'application, mais ne sera pas aussi facile à allumer.
Application.cfc:
component {
this.name = hash(cgi.server_name);
}
Toutes les variables CGI sont en sécurité - certains peuvent être modifiés par l'utilisateur (referrer, ip, etc), donc si vous allez utiliser l'un des ceux, je recommande de faire quelque chose comme hachage comme je l'ai fait ci-dessus pour s'assurer qu'il est sûr d'utiliser ici ... Mais si vous utilisez l'une des valeurs sûres (comme cgi.server_name), alors vous devriez être sûr de l'utiliser sans hachage/etc
Dans ce cas, il serait beaucoup plus facile à installer le thème de l'écran pour basculer sur lequel l'application est en cours d'exécution:
Application.cfc:
component {
this.name = cgi.server_name;
}
index.cfm:
<cfimport prefix="custom" taglib="#expandPath('./layouts')#" />
<custom:layout theme="#application.applicationname#">
<!--- your content here --->
</custom:layout>
mises en page/mise en page.cfm:
<cfparam name="attributes.theme" default="www.site1.com" />
<cfif attributes.theme eq "www.site1.com">
<!--- include content for this theme --->
<cfelse>
<!--- include content for this theme --->
</cfif>
(Testé sur Win7/IIS7)
Adam, merci pour les exemples de code. Je crois que cela pourrait juste me mettre sur le bon chemin. J'espère pouvoir définir certaines variables/attributs qui iront dans tout le site et remplacer tout comme les éléments de formulaire cachés, les logos et remplacer les noms de sociétés dans le texte. – Ofeargall
Comme je l'ai mentionné dans mes commentaires à mon propre poste, je supposais qu'il utiliserait un déploiement de code unique, ce qui nécessiterait l'utilisation de variables de session. S'il effectue deux déploiements distincts, la portée de l'application est définitivement la solution. –
Ben, mon exemple est basé sur la même base de code - un "déploiement de code unique" comme vous le dites. Les deux sites s'exécutent à partir du même code dans le même dossier. J'ai testé avec plusieurs en-têtes d'hôte (faux noms de domaine), et cela a fonctionné. –