phpInfo.netLes ArchivesLes éléPHPants

  
  Accueil
  Trucs & Astuces
  Scripts
  Regex
  Annuaire
  Articles

.
      
 Articles   Les pseudo-frames  Par Albyor   Janvier 2001    »  Introduction
 »  La fonction à connaître
 »  La partie HTML
 »  La partie PHP
 »  Les fichiers finaux
 »  Conclusion


Introduction

Le principe des pseudo-frames est de pouvoir donner l'impression que l'ensemble de votre site tient en une seule page : index.php3.

En fait, on utilise une page qui nous sert de support pour la charte graphique, et on inclut les autres pages selon le lien (et donc une variable).

Voyons maintenant le détail ...

La fonction à connaître

La fonction PHP primordiale est include().
La commande include() est utilisée pour insérer le fichier spécifié à l'endroit où elle se trouve.

Exemple : si $i==1 je veux afficher la page1.

<html>
<title>exemple de include</title>
<head> ... </HEAD>
<body>

<?php
if ($i==1)
{
    include(
"page1.php3");
}
?>

</body>
</html>

A cet endroit, si $i=1, je n'affiche pas ma page courante mais j'insère la page1.php3.

La partie HTML

Dans le body de la page index.php3, on met un tableau. Le nombre de rangées et de colonnes dépend de la charte graphique de votre site.

Pour notre exemple, prenons un tableau de 3 lignes.
  • 1 Ligne pour le titre du site.
  • 1 Ligne pour le menu du site.
  • 1 Ligne pour la partie contenu du site.
Ce qui nous donne en HTML :


<TABLE WIDTH=100% CELLPADDING=0 CELLSPACING=0>
    <
TR>
      <
TD ALIGN=CENTER>LE titre de mon site</TD>
    </
TR>
    <
TR>
      <
TD></TD>
    </
TR>
    <
TR>
      <
TD></TD>
    </
TR>
</
TABLE>


Voilà pour le moment.

La partie PHP

C'est ici que les choses commencent à se corser ...
Dans la deuxième cellule, on va afficher le menu du site. Pour l'exemple, j'ai choisi un menu en ligne plutôt qu'en colonne, mais le principe est le même.

On crée un fichier menu.php3 où on insère le code suivant :


<A HREF="index.php3?rub=1"><B>Page1</B></A> <B>&middot;</B>
<
A HREF="index.php3?rub=2"><B>Page2</B></A> <B>&middot;</B>
<
A HREF="index.php3?rub=3"><B>Page3</B></A>


Dans la page index.php3, dans la deuxième cellule, on ajoute :

<?php

    
include("menu.php3");

?>

Maintenant, on crée un fichier rubrique.php3 où on insère le code suivant :

<?php
switch ($rub)
{
    case
1 :
        
$page = "page1.php3"
        
break;
    case
2 :
        
$page = "page2.php3"
        
break;
    case
3 :
        
$page = "page3.php3"
        
break;
}
?>

Selon la valeur de $rub, $page prend la valeur correspondante.
On peut encore améliorer ce code en vérifiant l'existence du fichier demandé (afin aussi de parer les 'tests' utilisateur), et en proposant une page par défaut si le fichier n'existe pas :


<?php

$page
= 'page'.$rub.'.php3';

if (!
file_exists($page))
{
    
$page = 'page1.php3';
}

?>

Tout au début de index.php3 (avant la balise <HTML>), on ajoute le code suivant :

<?php

    
include("rubrique.php3");

?>

Dans la troisième cellule du tableau de index.php3, on ajoute le code suivant :

<?php

    
include($page);

?>

Et voilà le tour est joué ...
Pour ajouter des pages, on ajoute les liens correspondant dans le fichier menu.php3 et un 'case xxx:' dans le fichier rubrique.php3.

Les fichiers finaux


index.php3

<?php

    
include ("rubrique.php3");

?>
<html>
<title>exemple de include</title>
<head> ... </HEAD>
<body>
<TABLE WIDTH=100% CELLPADDING=0 CELLSPACING=0>
    <TR>
      <TD ALIGN=CENTER>LE titre de mon site</TD>
    </TR>
    <TR>
      <TD><?PHP include("menu.php3") ; ?></TD>
    </TR>
    <TR>
      <TD><?PHP include($page) ; ?></TD>
    </TR>
</TABLE>
</body>
</html>


menu.php3


<A HREF="index.php3?rub=1"><B>Page1</B></A> <B>&middot;</B>
<
A HREF="index.php3?rub=2"><B>Page2</B></A> <B>&middot;</B>
<
A HREF="index.php3?rub=3"><B>Page3</B></A>



rubrique.php3

<?php

$page
= 'page'.$rub.'.php3';

if (!
file_exists($page))
{
    
$page = 'page1.php3';
}

?>



Conclusion

Avec ce système, il est plus aisé de maintenir votre site. Et comme dans la barre d'adresse du butineur on ne voit que quelquechose qui ressemble à http://www.monsite.com/index.php3?rub=XX, on renforce un peu la sécurité des données du site.

De plus, avec le HTML seul, on était obligé de refaire toute la mise en page pour chaque page du site. Plus maintenant, la feuille de style CSS pouvant être définie une fois pour toutes dans la page index.php3, plus besoin de s'en soucier pour les pages suivantes, plus la peine non plus de refaire les menus pour chaque page, on le fait une fois dans la page menu.php3, on l'insère dans index.ph3 et plus besoin de le refaire, il réapparaîtra dans chaque page ...

Et voilà comment gagner du temps pour développer un site.

Bon PHP à toutes et à tous ...

Albyor, responsable de la bibliothèque d'Althaïr :http://albyor.free.fr/.
Synseo