<?php /* * Class ecrite par MAMMMANA Jean Charles. * Diffusé selon les termes de la licence GPL. * * class (php4/5) flowchar : * Cette class permet de generer des orgranigrammes HTML * à partir de tableau excel (csv). * Necessite l'intergration d'une feuille de style css. * * exemple : * include('./flowchar.class.php'); * $flowchar = new flowchar('./excel.csv'); * $flowchar->setcomma(';'); * $flowchar->setmaxlevel(3); * $flowchar->scanning(); * $flowchar->setlist(array('0','2','3')); * echo $flowchar->createflowchar('Jean'); * * structure du fichier excel.csv : * 0 1 2 3 * +---------+---------+---------+---------+ * |directeur| outils | service | employé | * +---------+---------+---------+---------+ * | Jean | stylo | DSI | julien | * +---------+---------+---------+---------+ * | Psyko | feutre | DAF | Marc | * +---------+---------+---------+---------+ * | Jean | papier | DSI | Pierre | * +---------+---------+---------+---------+ * | Psyko | ciseaux | DAF | Aurelie | * +---------+---------+---------+---------+ * | Psyko | cuter |marketing| Charles | * +---------+---------+---------+---------+ * | Jean | scotch | compta | Alex | * +---------+---------+---------+---------+ * | Jean | colle | compta | Martine | * +---------+---------+---------+---------+ * * organigramme : * On demarre de la colone 0 (les directeurs) et on * souhaite afficher l'organigramme des * services et employé geré par Jean! * * Jean * / \ * DSI compta * / \ / \ * Julien Marc Alex Martine * */ ?>
Télécharger le zip
Le rendu est excellent. J'ai pas regardé le code, mais si c'est bien codé ça peut servir.
héhé, pas mal le code, tu te prépares à passer au php5, par contre les keyword de visibilité se placent avant le mot function.utilise === pour comparer les types...J'ai pas regardé TOUT le code, mais attention en PHP4, on fait des copies d'objet à chaque fois, donc si toi tu possèdes plusieurs niveaux, surement que tu les gères avec des fonctions, alors on devrait y retrouver des & ... sinon tu fais des copies à chaque passage de fonction. Donc ces & on doit les retrouver à l'assignation :$a =& $b;Dans les paramètres de functionfunction func(&$a)Et aussi dans le retour si tu fais un retourfunction &func()@±
Merci pour tes precisions GRenard, je vais arranger ca pour la mise a jours que je suis en train de faire.par contre je ne comprends pas ce que tu dis sur le passage par reference ?dans mon cas je n'ai pas besoin d'utiliser le passage de variable par references aux methodes de ma class?!
Le passage par référence permet de ne pas copier des valeurs. Si tu fais cela pour une string bah si tu modifies cette string dans la fonction, elle sera modifiée à sa source...Pour les objets, c'est important de ne pas faire de copie... Par exemple :$o =& new obj();$clazz->add($o);Si ta fonction add ne recoit pas une référence, elle fera une copie, donc ensuite si tu fais$o->changeProperty('A','b'); ca ne la changera pas dans l'objet ajouté dans $clazz...De même que si tu fais$clazz->get() (qui retourne l'objet précédemment ajouté), ca ne sera pas le même que $o.Si tu fais echo intval($clazz->get() === $o); tu recevra 0.Voilà pourquoi passer par référence est très important. En PHP5, tu n'as plus besoin de faire cela pour les classes, puisque les classes sont comme en Java... elles sont simplement "linké" si tu veux faire une copie en php5 d'une classe tu dois spécifier clone $instance.
ah oui, effectivement.je suis habitué au Java, c'est pour ca que j'ai pas compris!Merci.
Désolé on fait comment pour voir cet orga parceque la page php est vide et quand je regarde le code il y a pleins de commentaires comment enlever les bons ?? MERCI
je vais mettre un petit exemple dans l'archive quand j'aurai le temps.
a merci !!! mais si possible de le faire rapidement que je voudrai voir ce que cela donne..STP merci pour tout a bientot
voila, jai mis un exemple dans l'archive.
Merci bien c nikel apres a moi de changer les couleur c super par contre des que je change des infos a partir du fichier excel ca par en vrille alors comment faire pour changer les données à l'interieur du shéma ??!!
chaque colonne est un index pour la colonne suivante (ordre defini par la methode setlist() )tout est expliqué dans le commentaire entete du fichier flowchar.inc.php ...
lol excusez moi !! je suis débutant en php et le carré le plus haut...j'arrive pas à le modifier.....comment faire ?
la 1ere case tout en haut correspond au point d'entré de l'organigramme. dans l'exemple fournis cest la colonne 4 (on commence a compter a 0 et non a 1).dailleur tu remarque que pour toutes les lignes, elle a la meme valeur. donc si tu veux modifier la 1ere case il faut que tu modifie la valeur sur toutes les lignes de la colone 4.je sais pas trop comment expliquer plus simplement le principe de fonctionnement :( dsl
alors merci mais c'est ce que j'ai fais mais cela ne marche pas sauf erreur de ma part !
il faut aussi que tu mette cette meme valeur a la methode qui crée l'organigramme : $flowchar->createflowchar('ma valeur');
c'est peut etre un peu tard ...3 ans apres mais j'ai repri ton code je l'ai adapté a ma sauce.....il se comprend facilement parce que tres bien codé!!mais je voudrais savoir s'il était possible et si oui comment pour remplacer les carrés par des photos?? prises dans une BDD (mais la n'est pas le pb!! lol) ...voila je ne sais pas si on me repondra mais merci !!!
C'est du gros deterrage de source ca :)Bon, je t'avoue que je ne me souviens plus de grand chose et que je n'ai pas envie de me replonger dans le code mais il me semble que j'avais codé ca plutot proprement (pour une fois :D) donc tu ne devrai pas avoir beaucoup de mal à afficher une photo à chaque bloc.Bon courage.
mdr pas grave....mais a part inserer le lien de l'image dans le fichier excel je vois pas.....
slt j'ai en effet reussi a inserer des images dans les carrés..c'est plutot agreable a regarder le seul probleme ....le tout premier carré celui en colonne 4....si l'on y insere une image ainsi que dans $flowchar->createflowchar('ma valeur'); ne marche pas...impossible ou pas?
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte