Bonjour,
Je voudrais me mettre au templates pour faire un travail plus propre, et différencier html et php. La question que je me pause est la suivante : pour le moment, j'utilise un unique fichier "index.php" qui contient tous les éléments récurents de mes pages (header, footer, menu gauche, menu droit etc), et le contenu de ma page est géré par un gros switch, me permettant de sélectionner le fichier php pour ce contenu. Voila un exemple :
De plus, dans le fichier "menu_gauche.php", si je veux que ce menu change selon la page, j'aurais aussi un switch pour changer son contenu en fonction des variable $op et $sop (qui sont passées en paramètres dans mon url). J'aurais pu mettre aussi ce switch dans le fichier "index.php", mais bon il ne faut pas trop tirer sur la corde, mon fichier est déjà bien assez long comme ça, si j'ai un gros site de plus de 50 pages à faire, par exemple.
Je ne sais pas si c'est "bien" de faire comme cela, mais toujours est-il que c'est ce que je fais. Au moins, ça a l'avantage d'avoir un seul fichier qui traite tous les cas, puis chaque fichier php ne gère qu'une seule action.
Mes questions sont les suivantes :
- Ma méthode est-elle bonne, ou y a-t'il un meilleur moyen pour centraliser tous les éléments communs à chaque page, sans avoir à créer 50 pages contenant à chaque fois les balises <html>. , <body>, <title>, les includes etc. et dont seul le corps change?
- Est-il possible de faire cela avec un template, et surtout comment?
Modifié par Helldream (07 Feb 2007 - 09:34)
Je voudrais me mettre au templates pour faire un travail plus propre, et différencier html et php. La question que je me pause est la suivante : pour le moment, j'utilise un unique fichier "index.php" qui contient tous les éléments récurents de mes pages (header, footer, menu gauche, menu droit etc), et le contenu de ma page est géré par un gros switch, me permettant de sélectionner le fichier php pour ce contenu. Voila un exemple :
...
<body>
...
<div id='page'>
<?php
$bdd = mysql_connect ($server, $user, $pass);
mysql_select_db ($db, $bdd);
include ('header.php');
include ('menu_haut.php');
include ('recherche.php');
include ('menu_gauche.php');
include ('menu_droit.php');
echo "<div id='corps'>";
switch ($_GET['op'])
{
case 'liens':
include ('liens.php');
break;
case 'admin_commandes':
switch ($sop)
{
case 'modifier':
include ('commande/admin/modifier.php');
break;
default:
include ('commande/admin/index.php');
break;
}
break;
default:
include ('accueil.php');
break;
}
echo "</div>";
include ('footer.php');
mysql_close($bdd);
?>
</div>
</body>
De plus, dans le fichier "menu_gauche.php", si je veux que ce menu change selon la page, j'aurais aussi un switch pour changer son contenu en fonction des variable $op et $sop (qui sont passées en paramètres dans mon url). J'aurais pu mettre aussi ce switch dans le fichier "index.php", mais bon il ne faut pas trop tirer sur la corde, mon fichier est déjà bien assez long comme ça, si j'ai un gros site de plus de 50 pages à faire, par exemple.
Je ne sais pas si c'est "bien" de faire comme cela, mais toujours est-il que c'est ce que je fais. Au moins, ça a l'avantage d'avoir un seul fichier qui traite tous les cas, puis chaque fichier php ne gère qu'une seule action.
Mes questions sont les suivantes :
- Ma méthode est-elle bonne, ou y a-t'il un meilleur moyen pour centraliser tous les éléments communs à chaque page, sans avoir à créer 50 pages contenant à chaque fois les balises <html>. , <body>, <title>, les includes etc. et dont seul le corps change?
- Est-il possible de faire cela avec un template, et surtout comment?
Modifié par Helldream (07 Feb 2007 - 09:34)