[object] creation d'organigrammes en html

Soyez le premier à donner votre avis sur cette source.

Vue 12 426 fois - Téléchargée 1 362 fois

Description

apres avoir cherché sur le net, et n'ayant trouvé quasiment rien d'exploitable, j'ai dessidé de prendre ma plume et mon cahier, et d'ecrire une petite class permettant de faire des organigrammes a partir de fichiers tabulé (excel, csv).

Source / Exemple :


<?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
*
  • /
?>

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
Le rendu est excellent. J'ai pas regardé le code, mais si c'est bien codé ça peut servir.
cs_GRenard
Messages postés
1663
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1 -
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 function
function func(&$a)
Et aussi dans le retour si tu fais un retour
function &func()

psyjc
Messages postés
182
Date d'inscription
dimanche 29 juin 2003
Statut
Membre
Dernière intervention
18 avril 2008
-
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?!
cs_GRenard
Messages postés
1663
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1 -
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.
psyjc
Messages postés
182
Date d'inscription
dimanche 29 juin 2003
Statut
Membre
Dernière intervention
18 avril 2008
-
ah oui, effectivement.
je suis habitué au Java, c'est pour ca que j'ai pas compris!

Merci.

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.