begin process at 2012 02 12 20:58:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > MENU PHP CLASS/PHP5

MENU PHP CLASS/PHP5


 Information sur la source

Note :
6 / 10 - par 2 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Class et Objet ( POO ) Niveau :Initié Date de création :06/07/2004 Date de mise à jour :16/06/2005 17:20:46 Vu / téléchargé :13 688 / 653

Auteur : jonguignolo

Ecrire un message privé
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
vola il y a 3j je voulai changé de menu bin voila c fait ;)

Source

  • //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();
//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...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

16 juin 2005 17:20:46 :
j ai appliqué quelque conseils -> ajout d'un compteur static ainsi plus besoin de mettre les numéros ds l'appel dans la class parent DosCount -> il y avais un bug merci 'USANFR' -> ajout de la function reconstitute_url (libre à vous d'en faire une méthode de dossier..) -> merci a bdorbo...

 Sources du même auteur

Source avec Zip LEVELPARSER
Source avec Zip CLASS CRYPTAGE/DECRYPTAGE TABLEAU/CHAINE DE CARACTÈRE
Source avec Zip CLASS POUR TRAITER LES FORMULAIRE(GESTION ERREURS/MOT_DE_PAS...
Source avec Zip GRAPHEUR BETA (UTILISATION DE LA LIB GD)
Source avec Zip Source avec une capture PAGE AVEC CADRILLAGE DE LA COULEUR VOULU/UTILISATION DE GD

 Sources de la même categorie

CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT" par pifou25
Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter
Source avec Zip SIMPLETEMPLATE par thunderhunter
Source avec Zip Source avec une capture VOIR QUI VISITE VOTRE SITE par Dariumis
Source avec Zip CLASS SIMPLE CBASEDONNEE par smag42

Commentaires et avis

Commentaire de damne le 08/07/2004 10:44:49

Bonne source !

Cependant, depuis que PHP5 gère beaucoup mieux le modèle
objet, il est préférable de protéger tes attributs :

'var' devient 'private','protected' ...

;-)

Commentaire de tchoutchouni le 10/08/2004 15:07:03

Bonjour,

J'ai installé les scripts class.Dossier.php et menu.php comme prévu. Résultat : un écran blanc dans le navigateur !.
Je suis en PHP 4.3.5, est-ce la raison ?.
Merci par avance de votre aide!.

Commentaire de windu le 10/08/2004 23:10:03

tchoutchouni->il me semble que oui.... en effet,certaines fonctions ou mots réservés ne sont reconnus qu'à partir de PHP5. ex:'__construct' me semble-t-il... Le fait est que PHP5 a beaucoup évolué sur le plan de la P.O.O. (c'est meme la principale évolution...) ce qui fait que certaines fonctions ou classes ne passeront pas sur PHP 4.x!
Résultat: soit quelqu'un adapte le code pour en faire une version compatible PHP 4, soit tu passes sur PHP5 (la version stable est maintenant disponible depuis le 13 juillet)

Commentaire de jonguignolo le 11/08/2004 06:39:30

Merci Windu
tu as tout compris, par contre je ne compte pas faire passer mon code en php4.3 en effet je toruve stupide de descendre de version, par contre des que j'ai le tps je l'ameliore parceke comme l'a dit damne c'est po ça quoi ;) ++

Commentaire de tijuan le 23/11/2004 02:28:48

euh, c une classe version PHP5, donc c normal que çà tourne pas sous PHP4  :))

Commentaire de usanfr le 02/04/2005 07:08:55

Voila un class en PHP5 ( avec private, public etc... )

----------------------------------------------------------------


class Dossier //ouvre l'ecriture d'un tableau contenant dossier
{
    public $dossier;
    public $link_dos;
    public $int_id;
    
    public function __construct($str_nom,$int_identif)
    {
        $this->dossier=$str_nom;
        $this->int_id=$int_identif;
        $this->link_dos  = "<form method=post name=\"phpeteur".$this->int_id."\" >\r\n";
        $this->link_dos .= "<input type=\"hidden\" name=\"ID_dos\" value=\"".$this->int_id."\">\r\n";
        $this->link_dos .= "</form> \r\n";
        $this->link_dos .= "<a href=\"#\" onClick=\"window.phpeteur".$this->int_id.".submit()\">".$this->dossier."</a>\r\n";
            
    }

    public function Deb_Table()
    {
        echo "<table border=\"0\">\r\n";
    }

    public function affiche_dossier()
    {
        echo "<tr>\n";
        echo "<td><img src=\"rep_parent.jpg\"></td>\n";
        echo "<td colspan=2>" . $this->link_dos . "</td>\n";
        echo "</tr>\n";
    }

    public function Fin_Table()
    {
        echo "</table>";
    }
}


class Fichier extends Dossier
{
    //on aurait pu prendre dossier mais je veu le garder ça peu servir ^^
    private $str_nom;

    private function Linked($str_fic, $url_fic)
    {

        $this->str_nom=$str_fic;
        $this->cible=$url_fic;
        $this->link1="<a href=\"".$this->cible."\">".$this->str_nom."</a>\n";
    }

    private function affiche_fichier($str_fic, $url_fic)
    {
        Fichier::Linked($str_fic, $url_fic);

        echo "<tr>\n";
        echo "<td align=right>|-</td>\n";
        echo "<td width=16><img src=\"net.jpg\"></td>\n";
        echo "<td>".$this->link1."</td>\n";
        echo "</tr>\n";
    }

    // cette fonction va nous servir à dévelloper....
    public function Develloped($str_fic, $url_fic)
    {
        global $_POST;
        if( isset ( $_POST['ID_dos'] ) and $this->int_id == $_POST['ID_dos'] )//si l'id est posté on dev ^^
        {
            Fichier::affiche_Fichier($str_fic, $url_fic);
        }
    }
}

----------------------------------------------------------------

Commentaire de bdorbo le 05/06/2005 19:35:14

salut,

super ce script de menu mais incompatible firefox et netscape??

Comment faire por ces navigateurs??

Merci d'avance.

bdorbo

Commentaire de windu le 05/06/2005 20:14:06

Par contre, je remarque une chose (je n'avais pas fait attentin la première fois): tu utilises souvent des guillemets " " alors que des simple cotes ' ' pourraient faire l'affaire...
Pourquoi? parce que PHP analyse ce qui se touve entre des guillemets mais pas ce qui se trouve entre simple cotes... Donc pour des chainse de carctères il est préférable de privilégier les simples cotes
Exemple: ta fonction __contruct pourrait devenir ceci:

function __construct($str_nom,$int_identif)
{
     $this->dossier=$str_nom;
     $this->int_id=$int_identif;
     $this->link_dos='<form method="POST" name="phpeteur'.$this->int_id.'">
<input type="hidden" name="ID_dos" value="'.$this->int_id.'">
</form>
<a href="#" onClick="window.phpeteur'.$this->int_id.'.submit()">'.$this->dossier.'</a>';                      
                      
     }

Commentaire de iomega le 07/07/2006 11:04:45

Bonjour à tous,
Je voudrai savoir si quelqu'un pourrait modifier ce code pour qu'il soit utilisabe sous php 4
ça serait sympas
Je voudrai bien le faire mais je suis débutant
Merci

Commentaire de iomega le 10/07/2006 09:53:50

Bonjour à vous tous,
Quelqu'un pourrais-me dire comment développé au démarrage un menu
une valeur en paramêtre que l'on pourrait ajouter pour indiquer quelle menu doit être affiché.
Merci

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,944 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales