changeset 43:1cdb1a68634b

Changement dans la facon dont on choisi le format. Pour choisir un format, on passe maintenant en query-string un paramètre dont le nom correspond au nom du format souhaité, et sans valeur. Mise à jour du .htaccess en fonction de cette nouvelle forme de selection.
author Franck Deroche <webmaster@defr.org>
date Wed, 14 Nov 2007 17:12:37 +0100
parents 390bbf7c5aea
children f6552a610bfd
files .htaccess includes/class.skeleton.php
diffstat 2 files changed, 17 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/.htaccess	Wed Nov 14 17:01:23 2007 +0100
+++ b/.htaccess	Wed Nov 14 17:12:37 2007 +0100
@@ -1,8 +1,8 @@
 Options +FollowSymlinks
 RewriteEngine on
 # Kill the RSS version, re-direct to the atom feed
-RewriteRule ^dualblog.rss$ index.php?outputType=atom [L,QSA]
-RewriteRule ^dualblog.atom$ index.php?outputType=atom [L,QSA]
+RewriteRule ^dualblog.rss$ index.php?atom [L,QSA]
+RewriteRule ^dualblog.atom$ index.php?atom [L,QSA]
 RewriteRule ^posts/$ index.php [L]
 RewriteRule ^posts/([0-9]+)/([0-9]{1,2})$ index.php?mode=cal&year=$1&month=$2 [L]
 RewriteRule ^posts/([0-9]+)-(.*)$ comment.php?id=$1 [L]
--- a/includes/class.skeleton.php	Wed Nov 14 17:01:23 2007 +0100
+++ b/includes/class.skeleton.php	Wed Nov 14 17:12:37 2007 +0100
@@ -249,11 +249,22 @@
       // Construction du tableau des différents templates
       // permettant de répondre au "type" de sortie demandé
       $iniFile = parse_ini_file('templates.conf', true);
-     
-      $format = Factory::getRequete()
-                       ->get('outputType', null, Skeleton::OUTPUT_XHTML);
 
-      if(array_key_exists($format, $iniFile)) {
+      // Récupération de la requete
+      $requete = Factory::getRequete();
+    
+      // On essaie de trouver le format en Query-String
+      // On recherche tout d'abord un paramètre correspondant
+      // au nom d'un des formats. On prend le premier mentionné,
+      // par ordre d'apparition dans le fichier templates.conf
+      $format = null;
+      while(is_null($format) && list($key, ) = each($iniFile)) {
+         $format = $requete->get($key, null, null);
+      }
+      
+      // Si on a trouvé un format, on l'applique. 
+      // Sinon, on prend le template nommé 'xhtml'
+      if(!is_null($format)) {
         Skeleton::$templates = $iniFile[$format];
         Skeleton::$outputType = $format;
       } else {