fr   gb


Arbor

Créer un objet Arbor

Création de l'objet arborescence dans le document.

Important : ne pas confondre la création et l'affichage ! La création de l'objet arborescence n'affiche rien du tout dans le document (sauf si une erreur se produit), mais c'est le préalable nécessaire à l'affichage de l'arborescence. On crée une arborescence et ensuite on lui donne l'ordre de s'afficher ici ou là sous tel ou tel aspect.

up1. Création standard

Création avec les options par défaut.

up1.1. Arborescence basée sur un fichier de menu

Au début de votre document Html/PHP :

1. incorporez le moteur PHP d'arborescence : fichier 'arbor.php'

2. créez un objet arborescence (une instance de la classe Arbor) à partir de votre fichier de données (les lignes de menu)

3. incorporez la feuille de style du menu (facultatif mais recommandé)

Exemple :

<?php

include('mnu/arbor.php'); // inclure le moteur d'arborescence

$monMenu = new Arbor('mnu/monMenu.php'); // créer une arborescence

?>

<!DOCTYPE ... >

<html>

<head>

<link href="mnu/arbor.css" rel="stylesheet" type="text/css" />

...

(o) Création sans fichier séparé :

On peut fort bien se passer d'un fichier physique et placer le contenu du fichier de données directement dans le code PHP du document. On place un contenu identique à celui d'un fichier de données dans une variable tableau (array) et on passe cette variable à Arbor :

$mesData = array( ... contenu idem au fichier ... );

$monMenu = new Arbor($mesData);

On peut également créer directement un menu avec un tableau de lignes :

$monMenu = new Arbor(array(

'Ligne racine',

'+Ligne1',

'+Ligne2',

));

Ces méthodes de création sans fichier de données peuvent être plus adaptées quand les données à afficher sont extraites d'une base de données.

up1.2. Arborescence basée sur un répertoire (explorateur de fichiers)

Le code est identique à précédemment, à part la ligne d'instanciation (new ...). Dans ce cas, on crée l'objet en lui passant le nom du répertoire à lister précédé du symbole'%'

Si on désire filtrer les fichiers en fonction d'une extension, on ajoute celle-ci précédée de "*".

$monMenu = new Arbor('%'); // créer un explorateur du répertoire courant

$monMenu = new Arbor('%*gif'); // idem mais affichant seulement les gif

$monMenu = new Arbor('%monRep'); // créer un explorateur du répertoire monRep/

$monMenu = new Arbor('%monRep*mp3'); // idem mais affichant seulement les mp3

 

______

IMPORTANT : en mode "fichier de menu", le code de création pourrait aussi bien être placé dans le corps du document, mais si vous chaînez ensuite des menus entre eux ou si vous utilisez le mode "explorateur de fichiers", Arbor ne fonctionnera plus et PHP affichera un message d'erreur indiquant que "les en-têtes HTTP ont déjà été envoyés". Dans ces deux cas, l'objet arborescence doit être créé avant toute écriture dans le document. Donc, placez ces lignes de code en tête de la page AVANT toute autre ligne (<Doctype> ou <html>) ou commande "echo". Cette contrainte n'est liée ni à Arbor ni à PHP mais au protocole http lui-même.

 

______

Et voilà, un objet arborescence (ici nommé $monMenu) existe désormais dans votre document. Il suffira ensuite de lui dire où et sous quelle forme s'afficher. Pour cela on utilisera la méthode $monMenu ->write() qui sera détaillée par ailleurs.

up2. Options

Le mode de fonctionnement par défaut d'Arbor peut être modifié par quelques options facultatives ajoutées lors de la création de l'objet arborescence :

up2.3. [ $mini ] Mode autofermant

Le paramètre $mini permet de faire fonctionner Arbor en mode autofermant (les branches de menu sans le focus se replieront seules). Pour cela, donnez la valeur booléenne True (sans guillemets) au paramètre $mini (valeur par défaut : False).

$monMenu = new Arbor('mnu/monMenu.php', $mini=True);

Pour de grosses arborescences complexes, cette option évite de se perdre dans les méandres de l'arborescence et allège l'Html en empêchant l'ouverture de toutes les branches à la fois.

up2.4. [ $relpath ] Chemin relatif des liens

Le paramètre $relpath permet de fournir un chemin relatif à ajouter éventuellement aux liens de menu inscrits dans le fichier de données.

$monMenu = new Arbor('mnu/monMenu.php', $mini=False, $relpath='mydir/');

Cela permet d'utiliser un même fichier de données en l'utilisant à partir de documents situés dans divers répertoires et sous-répertoires.

up2.5. [ $dtd ] DTD suivi

Le paramètre $dtd détermine quel DTD doit être suivi par Arbor (DTD = Document Type Definition / Définition de Type de Document).

Le code Html généré par Arbor se conforme par défaut aux DTD "XHTML 1.0 strict" et "XHTML 1.1". Il peut aussi se conformer optionnellement au DTD "HTML 4.01 strict" :

$monMenu = new Arbor('mnu/monMenu.php', $mini=False, $relpath='mydir/', $dtd='html'); // HTML 4.01 strict

Nb : la compatibilité avec l'un de ces DTD stricts implique par voie de conséquence la compatibilité avec la variante transitionnelle du DTD concerné : "XHTML 1.0 transitional" et "HTML 4.01 transitional".

 

 > Afficher l'arborescence

 

 

Arbor Home

 

Home Accueil

Contact Chercher

Contact Contact

Site Plan Plan du site

Page top Haut de page

Valid XHTML 1.0 Strict