From 2cdd1e0772192a09af77866780bfd413f0ea78d4 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Sun, 29 Nov 2015 16:49:59 +0100 Subject: [PATCH] =?UTF-8?q?G=C3=A9n=C3=A9rateur=20de=20svg=20pour=20le=20p?= =?UTF-8?q?arcours?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/files/modele_import_jury.xlsx | Bin 0 -> 11057 bytes svg.php | 80 ++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 src/files/modele_import_jury.xlsx create mode 100644 svg.php diff --git a/src/files/modele_import_jury.xlsx b/src/files/modele_import_jury.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7077e96f591fe2ad2f0119b108f040a3326d9954 GIT binary patch literal 11057 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 ND8V#7eQ?8o{{hiUcNzcy literal 0 HcmV?d00001 diff --git a/svg.php b/svg.php new file mode 100644 index 0000000..56f314e --- /dev/null +++ b/svg.php @@ -0,0 +1,80 @@ + 1 ) + $parcours = explode(',', $_GET['parcours']); + else + $parcours = array('S1', 'S2', 'S3', 'S4'); // contient les étapes du parcours d'un étudiant + + + + + + + + + + + /* paramètres de texte */ + $lettrePixel = 10; // taille d'une lettre pour centrer le texte + $maxLettres = 0; + foreach($parcours as $p) if( strlen($p) > $maxLettres ) $maxLettres = strlen($p); // on récupère le libellé le plus long + + + /* calcul du positionnement */ + // W = longueur du svg + // M = marge (utilisée pour séparer les éléments) + // m = marge de manoeuvre + // n = nombre d'éléments (points du parcours) + // t = longueur du libellé le plus long + + $m = 10; // marge de manoeuvre + $t = $maxLettres * $lettrePixel; // longueur du libellé le plus long (px) + $n = count($parcours); // nombre d'élements du parcours + $M = $m + $t/2; // taille de la marge + $W = 2*$M*$n + 2; + + + /* paramètres graphiques */ + $line = array( 'x' => $M, 'y' => '57', 'width' => $W-2*$M, 'height' => 6 ); + $dot = array( 'y' => 60, 'r' => ($M <= 20 ) ? $M/3 : 10 ); + $text = array( 'y' => 30 ); + + $themes = array( // couleur des thèmes + 'pamplemousse' => '#f34e4e', + 'paprika' => '#c42019', + 'banana' => '#f3c04e', + 'tomato' => '#d50000', + 'twitter' => '#30b6ea', + 'facebook' => '#3372c5' + ); + + /* CHOIX DU THEME */ + $themeColor = $themes['tomato']; + + + + + + + + /****************/ + /* DEBUT DU SVG */ + /****************/ + echo ""; + + // [1] ligne de liaison + echo ""; + + // [3] points d'ancrages + for($i = 0 ; $i < $n ; $i++){ + $ti = $lettrePixel * strlen( $parcours[$i] ); // longueur du texte actuel + echo "".$parcours[$i].""; + echo ""; + } + + echo ""; + /**************/ + /* FIN DU SVG */ + /**************/ + +?> \ No newline at end of file