Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[OBJECT] CREATION D'ORGANIGRAMMES EN HTML


Information sur la source

Catégorie :Class et Objet ( POO ) Niveau : Initié Date de création : 23/06/2005 Date de mise à jour : 11/07/2005 18:02:55 Vu / téléchargé: 8 451 / 1 088

Note :
5,75 / 10 - par 4 personnes
5,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (20)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
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

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

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

25 juin 2005 19:41:15 :
correction de 2/3 notice et ajout d'un mode (methode scanning()) permettant d'afficher uniquement une branche de l'organigramme.
25 juin 2005 19:47:50 :
re-up de l'archive!
11 juillet 2005 17:57:20 :
Mise a jour de l'archive avec un exemple simple.
11 juillet 2005 18:02:55 :
re up!

Commentaires et avis

signaler à un administrateur
Commentaire de Kirua le 24/06/2005 13:42:00

Le rendu est excellent. J'ai pas regardé le code, mais si c'est bien codé ça peut servir.

signaler à un administrateur
Commentaire de GRenard le 25/06/2005 17:23:04

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()

signaler à un administrateur
Commentaire de psyjc le 25/06/2005 17:28:53

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?!

signaler à un administrateur
Commentaire de GRenard le 25/06/2005 17:55:30

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.

signaler à un administrateur
Commentaire de psyjc le 25/06/2005 18:02:47

ah oui, effectivement.
je suis habitué au Java, c'est pour ca que j'ai pas compris!

Merci.

signaler à un administrateur
Commentaire de regaton le 11/07/2005 10:21:37

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

signaler à un administrateur
Commentaire de psyjc le 11/07/2005 11:58:56

je vais mettre un petit exemple dans l'archive quand j'aurai le temps.

signaler à un administrateur
Commentaire de regaton le 11/07/2005 17:22:01

a merci !!! mais si possible de le faire rapidement que je voudrai voir ce que cela donne..STP merci pour tout a bientot

signaler à un administrateur
Commentaire de psyjc le 11/07/2005 18:05:37

voila, jai mis un exemple dans l'archive.

signaler à un administrateur
Commentaire de regaton le 11/07/2005 19:40:30

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 ??!!

signaler à un administrateur
Commentaire de psyjc le 11/07/2005 19:49:35

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 ...

signaler à un administrateur
Commentaire de regaton le 11/07/2005 21:36:16

lol excusez moi !! je suis débutant en php et le carré le plus haut...j'arrive pas à le modifier.....comment faire ?

signaler à un administrateur
Commentaire de psyjc le 11/07/2005 21:46:07

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

signaler à un administrateur
Commentaire de regaton le 11/07/2005 22:22:12

alors merci mais c'est ce que j'ai fais mais cela ne marche pas sauf erreur de ma part !

signaler à un administrateur
Commentaire de psyjc le 11/07/2005 22:30:37

il faut aussi que tu mette cette meme valeur a la methode qui crée l'organigramme : $flowchar->createflowchar('ma valeur');

signaler à un administrateur
Commentaire de clement1138 le 22/05/2008 16:51:24

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 !!!

signaler à un administrateur
Commentaire de psyjc le 22/05/2008 17:20:21

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.

signaler à un administrateur
Commentaire de clement1138 le 22/05/2008 17:23:39

mdr pas grave....mais a part inserer le lien de l'image dans le fichier excel je vois pas.....

signaler à un administrateur
Commentaire de clement1138 le 29/05/2008 10:52:58

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?

signaler à un administrateur
Commentaire de region le 19/02/2009 11:09:11

Salut,

excellente source !

J'ai récupérer ton code , mais ma question est y'a t'il une limite dans la lecture du fichier csv, car toutes les données introduites dans le fichier après la colonne portant la lettre z ne s'affiche pas dans mon organigramme, quelqu'un aurait-il une solution . Mercid'avance

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,780 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.