menu deroulant php5

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : menu deroulant php5

par Cyrano » 03 oct. 2005, 18:02

mouais, malheureusement, daoud bosse depuis peu dans une boite Nantaise et n'a plus trop de temps pour suivre son projet ou simplement venir ici, mais si tu relances son sujet, ça le fera peut-être réagir, mais il manque de temps.

par jeff » 03 oct. 2005, 17:00

je l'ai deja parcouru en long :)
par contre j'ai pas encore extrait tout les informations importantes quelles comporte et celles de ses liens :(

par Cyrano » 03 oct. 2005, 16:57

Mon copain daoud avait lancé un projet dans le forum des développeurs sur la DAO, ça mériterait peut-être un coup d'oeil ?

par jeff » 03 oct. 2005, 16:34

Code : Tout sélectionner

j'ai toujours pas compris ce que jeff voulait faire.
bon en fait pour faire au plus simple modeliser un site en objet intelligement
je pense a peu pres avoir trouver comment faire.


mais un truc me gene c'est je ne sais pas si chaque objet metier doit avoir son DAO ou si il ya moyen d'avoir un DAO pour tous..
d'apres la conception de mon objet DAO non ( a moins que j'implement des methodes pour changer les attributs de DAO) ?

par Invité » 02 oct. 2005, 20:00

Je suis certain qu'une personne dans la salle postera un commentaire pour savoir ce que c'est la classe DAO. Ce n'est qu'une question de temps :D
je serais d'avis que ce soit toi qui t'en occupe.
tu asl'air d'avoir le même style de conception objet, ce qui n'est pas mon cas(sinon j'aurais volontier répondu).

donc comme je l'ais dis plus haut je risque surtout d'embrouiller les choses plus que de les éclaircir, et j'ai toujours pas compris ce que jeff voulait faire.

par Xenon_54 » 01 oct. 2005, 19:13

Bonjour,

Je m'insère brièvement dans votre conversation pour encourager jeff dans ses projets. Une bonne technique et une production s'orientant vers la qualité. Féliciations, j'avais pas vu ça depuis longtemps.

Je suis certain qu'une personne dans la salle postera un commentaire pour savoir ce que c'est la classe DAO. Ce n'est qu'une question de temps :D

par jeff » 01 oct. 2005, 10:53

j'ai essayé de modeliser un peut ce que je veux faire avec poseidon, mais comme je ne maitrise pas ce soft il y a des truc que j'ai pas pu faire(comme indiqué le type de retourn d'une methode)
Image

par Invité » 01 oct. 2005, 01:06

quelle serait la relation entre la couche 1 et la couche 2
une association ou une composition??
on pourrait traduire ta question par:
est ce que l'objet doit être passé en paramètre à la classe ou bien être construit à lintérieur de cette classe?

je dirais que ça dépend, une association permettra d'être moin rigide(tu peux modeler ton objet avant de le passer, voir passer un tableau d'objet, ...) à contrario d'une composition.

ceci dit j'ai apris l'objet à l'aide de documentation mais surtout par tatonnement, c'est à dire en faisant et défaisant des classes, en passant par des compositions, des aggrégations puis en inversant les liens, et plein d'autres choses encore jusqu'à trouver une façon de faire cohérente.

pour moi l'important est de créer des classes suffisament spécialisés pour pouvoir m'en resservir dans d'autres projets tout en pouvant faire des modifications et des opérations de maintenance en deux temps trois mouvements.
ça m'est même arrivé de créer des classes dans le but d'économiser des ressources serveur alors que j'avais déja tout une bibliothèque pour réaliser ce que je voulais faire, et ce en défiant toutes les lois de la pensée objet pure et dure.

et puis si tu lis des livres ou autres tutoriaux sur le sujet tu t'apercevras que s'il y a une ligne directrice, tout le monde propose quelquechose de différent(je crois même que l'architectures dont tu parles est dépassé, maintenant il a été trouvé un truc qui lave plus blanc que le précédent).

je ne sais pas si ça va beaucoup t'aider, mais pour conclure je dirais que c'est à toi de gérer et de trouver ton style

et maintenant je sors avant de me faire traiter d'hérétique.

par jeff » 30 sept. 2005, 19:05

pour faire une architecture du type(3-tier)

couche1 "affichage"
couche2"objets metier & fonctions"
couche3 "acces au données"

quelle serait la relation entre la couche 1 et la couche 2
une association ou une composition??

et dans le cas de mes menus la class arbre devra retourner un tableau qui sera exploité par la couche 1, mais je ne vois les attributs de cette couche.

par jeff » 30 sept. 2005, 15:50

effectivement arbre() servait a initialiser le tableau list_item quand a NomMenu c'etait bien un erreur de ma part

pour differencier le traitement des objet metiers et de l'affichage je devrait passer par des templates style Smarty ou phplib???
Dans l'ideal j'aimerai ne pas faire l'affichage de mes menus avec la classe arbre, donc il faudrai que je develoope une autre class pour cela


je voudrai que ma class arbre puissent fabriquer des menus simples(display_menu()) et deroulant avec le choix du nombre d'etage
et de retrouver le chemin parcourue jusqu'a une page (dispaly_chemin() cette methode fonctionne)

voila

par Liquid » 30 sept. 2005, 15:39

Pour ce qui est de NomMenu regarde la première version de ta classe, il y avait un champ $nom que tu as remplacé par $NomMenu dans la dernière version, donc il s'agissait bien d'une erreur.

En fait ta méthode arbre() servait uniquement à initialiser ton champ $list_item ? C'est ce que je crois comprendre avec ta nouvelle version. Donc je comprends mieux. Tu peux très bien avoir des méthodes qui ne retournent aucun résultat. Tu peux effectivement, pour plus de clarté, écrire une méthode qui ne sert qu'à initialiser, dans ce cas la méthode peut être private car elle ne sert qu'en interne, et ne retourne rien. Et tu appelles cette méthode depuis le constructeur.

Mais un point plus général. Le but de l'objet c'est, entre autres, de spécialiser les traitements, séparer les couches comme on dit. Dans ta classe tu fais plein de choses qui, d'un certain point de vue, n'ont rien à voir ensemble. Tu as le traitement recherché (sur le menu), un accès aux données, du HTML.

Mais pour te donner des idées, il faudrait nous décrire, comme le précise Invité plus haut, avec plus de précisions ce que doit faire ta classe.

par jeff » 30 sept. 2005, 14:15

bon j'ai épurer le code
le but c'est bien de comprende la POO mais j'ai du mal

j'ai supprimer la methode arbre, elle inclu dans le constructeur
qaund a NomMenu je ne comprend pas bbien ce que tu veut dire
<?php
class Arbre
{
	public $database;
	public $NomMenu;
	public $list_item;


	public function __construct($nom,$database)
	{
		$this->db=$database;
		$this->NomMenu=$nom;
		$this->list_item=array();
		$champs=array('id_page','gamme','id_parent','nom');
		$table=array('page');
		$dbb=new DAO($this->db,$table,$champs);
		$this->list_item=$dbb->select('',' order by id_page');
	}
	
	public function display_menu($id)
	{
		$aff='<ul id="'.$this->NomMenu.'">';
		foreach($this->list_item as $cle=>$val)
		{
			if($val[0]==$id)
				$aff.='<li><a href="index.php?id_m='.$val[2].'">retour</a></li>'."\n";
			if($val[2]==$id)
				$aff.='<li><a href="index.php?id_m='.$val[0].'">'.$val[3].'</a></li>'."\n";
		}
		$aff.='</ul>';
		echo $aff;
	}
	 
		
	public function display_chemin($id)
	{
		while($id!=0)
		{
			foreach($this->list_item as $cle=>$val)
			{
				if($val[0]==$id)
				{
					echo '<li><a href="index.php?id_m='.$val[0].'">'.$val[3].'</a></li>'."\n";
					$id=$val[2];
				}
			}
		
		}
	}
		
}
	
voici l'utilisation
$database=new Mysqldb(SERVEUR,LOGIN,PASS,BASE);

$arbre=new arbre('menu',$database);
$arbre->display_menu($id_m);
$arbre->display_chemin($id_m);

par Liquid » 30 sept. 2005, 11:04

NomMenu sert à donné un id au menu pour le css
Je veux bien mais quand on écrit :
$this->NomMenu
... on se réfère à un champ de la classe ou d'une classe parente, or là il n'y a pas de champ portant ce nom dans ta classe et la classe n'a pas pas de parent.

Pour ce qui est de la méthode arbre() qui retourne l'instance je vais passer par un exemple, si tu créés un arbre dans une classe cliente :
$arbre = new Arbre();
... $arbre "pointe" vers ton objet, il est donc inutile d'avoir dans Arbre une méthode qui te retourne ce même arbre.
Pour $param, je ne saisis pas, si c'est utile dans ton DAO tu devrais lui passer en argument quelque part, non ?
mais comme tu a du le remarquer l'objet c'est pas mon truc
Donc pour le moment le but ce n'est pas de faire un menu déroulant, c'est de comprendre l'objet, ou je me trompe ?
P.S. : si j'interviens c'est pour t'aider à te dépatouiller ! :roll:

par Invité » 29 sept. 2005, 22:34

tu pourrais filer un exemple d'utilisation de ta classe.
et puis quel type de menu est-ce que tu fais?

par jeff » 29 sept. 2005, 21:37

comme tu la remarqué $param n'est pas utilisé car je charge une seul fois le tableau ($param sert a la methode select())
NomMenu sert à donné un id au menu pour le css
quand a la methode arbre() elle pourrai tres bien etre integre au constructeur je pense
mais comme tu a du le remarquer l'objet c'est pas mon truc