Menu php class/php5

Description

vola il y a 3j je voulai changé de menu bin voila c fait ;)

Source / Exemple :


//Fichier reconstitute_url.inc.php

	function reconstitute_url($exclude_get='none')
	{
	 $url=$_SERVER['SCRIPT_NAME']."?";
		if(isset($_GET)==TRUE)
		{
			foreach($_GET as $key=>$val)
			{
				if ($key!=$exclude_get)
				{
				 $url.=$key."=".$val."&";
				}
			}
		}
		return $url;
	}

//Fichier Class.dossier.php
// a besoin de reconstitue url pour fonctionner (ds notre cas j assure la dependance ds menu.php.)
Class Doscount
 {

	public static $cptdos=0;
	
	function __construct()
	{
	/*

  • /
} } Class Dossier extends Doscount //ouvre l'ecriture d'un tableau contenant dossier { public $dossier; //contiendra le nom du dossier dans le quel nous placeron les fichier public $link_dos; function __construct($dossier) // petit constructeur { $this->dossier=$dossier; //contiendra la fameuse id du dossier parent::$cptdos++; //envera en get donc meme po besoin de le mettre dans un form $this->link_dos="<a class=\"mini_menu\" href=\"".reconstitute_url('ID_dos')."ID_dos=".parent::$cptdos."\"><img src=\"rep_parent.jpg\"></img>".$this->dossier."</a>"; } function Deb_Table() { //la on commence un tableau parceke c plus chouettos tu vois? echo "<table border=\"0\">\n"; } function affiche_dossier()//la on va généré un ligne contenant deux cellules { echo "<tr>\n"; //cellule avec image echo "<td></td>\n"; //cellule avec lien te nom echo "<td colspan=2>".$this->link_dos."</td>\n"; echo "</tr>\n"; } function Fin_Table() { //là on termine le tableau quoi ^^ echo "</table>"; } } Class Fichier extends Dossier { //class qui contiendra les fichier et leurs info mais qui hérite de dossier pour garder son id par exemple ^^ public $str_nom; public $cible; public $link_fic; public function Linked($str_fic, $url_fic) { //a l'appel de linked il fodra avoir le nom et l'url pour tracer le lien $this->str_nom=$str_fic; $this->cible=$url_fic; //ici on met la cible du fichier $this->link_fic="<a class=\"mini_menu\" href=\"".$this->cible."\">".$this->str_nom."</a>\n"; } public function affiche_fichier($str_fic, $url_fic) { self::Linked($str_fic, $url_fic); //on appel la methode Linked qui definits le lien echo "<tr>\n"; echo "<td align=right>&nbsp;</td>\n"; echo "<td width=16><img src=\"ppoint.jpg\"></td>\n"; echo "<td>".$this->link_fic."</td>\n"; echo "</tr>\n"; } public function Develloped($str_fic, $url_fic) // cette méthode va nous servir à dévelloper.... { if(( isset($_GET['ID_dos'])==true) ) { if(parent::$cptdos==$_GET['ID_dos'] )//si l'id est posté on dev ^^ { //et là bin on appel l'éxécution de la function affiche_Fichier à la condition que l'id du fichier soit égale a l'id du fichier^^ Fichier::affiche_Fichier($str_fic, $url_fic); } } } } Fichier "menu.php" par exemple //Voyons ce que cela donne require('reconstitute_url.inc.php'); require{'Class.dossier.php'} Donc pour avoir le résultat escompté j'appel mes class ainsi $cpt=new Doscount(); $Partie1= new Fichier("partie1"); //on donne c val au constructeur de la class Dossier (héritage) $Partie1->Deb_Table();//on commence le tableau bin vi c plus propre ;) $Partie1->affiche_Dossier(); $Partie1->Develloped("Nom du Lien 1","url_Lien_1");//On donne $Partie1->Develloped("Nom du Lien 2","url_Lien_2"); $Partie1->Develloped("Nom du Lien 2","url_Lien_3"); //$Partie1->Fin_table();//pas obligé de fermé mais c plus propre et plus lisible ... $Partie2= new Fichier("partie2");//attention a l'id il doit etre different... //$Partie2->Deb_Table();//on commence le tableau bin vi c plus propre ;) $Partie2->affiche_Dossier(); $Partie2->Develloped("Nom du Lien 1","url_Lien_1");//On donne $Partie2->Develloped("Nom du Lien 2","url_Lien_2"); $Partie2->Develloped("Nom du Lien 3","url_Lien_3"); $Partie2->Develloped("Nom du Lien 4","url_Lien_4"); $Partie2->Develloped("Nom du Lien 5","url_Lien_5"); $Partie2->Fin_table();

Conclusion :


ds le zip vous trouverez
net.jpg & rep_parent.jpg pour les img...
Merci à Toxx pour les images...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.