RETRAÇANT LE PARCOURS D'UN ETUDIANT * * @parcours Contient les informations du parcours * @selected UID du semestre selectionné * */ function displayParcours($parcours, $selected){ /* paramètres de texte */ $lettrePixel = 7; // taille d'une lettre pour centrer le texte $maxLettres = 0; foreach($parcours as $p) if( strlen($p['nom']) > $maxLettres ) $maxLettres = strlen($p['nom']); // 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 = 30; // 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+1) + 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, 'yMention' => 100 ); $themes = array( // couleur des thèmes 'pamplemousse' => '#f34e4e', 'paprika' => '#c42019', 'banana' => '#f3c04e', 'tomato' => '#d50000', 'twitter' => '#30b6ea', 'facebook' => '#3372c5', 'blou' => '#3c73e6', 'default' => '#28b965', 'gray' => '#888888', 'black' => '#000000' ); /* CHOIX DU THEME */ $normColor = $themes['gray']; // couleur texte normal $seleColor = $themes['black']; // couleur texte semestre selectionné /****************/ /* DEBUT DU SVG */ /****************/ echo ""; // [1] ligne de liaison echo ""; // [3] points d'ancrages for($i = 0 ; $i < $n ; $i++){ $ti = $lettrePixel * strlen( $parcours[$i]['nom'] ); // longueur du texte actuel // si parcours en cours, on met le texte en valeur if( $parcours[$i]['id'] == $selected ) $textColor = $seleColor; else $textColor = $normColor; // couleur du texte en fonction de la note if( !is_bool($parcours[$i]['moyenne']) ){ $val = 20 * $parcours[$i]['moyenne']['moyenne']/$parcours[$i]['moyenne']['base']; if( $val <= 8 ) $themeColor = '#f55b55'; elseif( $val < 10 ) $themeColor = '#f59555'; else $themeColor = '#2dcc70'; }else // si pas de note, on met la couleur par défaut $themeColor = $normColor; // (1) nom du semestre echo "".$parcours[$i]['nom'].""; // (2) cercle echo ""; // (3) mention obtenue echo "".$parcours[$i]['mention'].""; // (4) Les cercles des UEs avec leur code couleur foreach($parcours[$i]['UEs'] as $iter=>$UE){ $xx = $M+2*$M*$i + 2*$M* ($iter+1) / (count($parcours[$i]['UEs'])+1); // couleur du texte en fonction de la note if( !is_bool($UE['moyenne']) ){ $val = 20 * $UE['moyenne']['moyenne']/$UE['moyenne']['base']; if( $val <= 8 ) $themeColor = '#f55b55'; elseif( $val < 10 ) $themeColor = '#f59555'; else $themeColor = '#2dcc70'; }else // si pas de note, on met la couleur par défaut $themeColor = $normColor; echo ""; } } echo ""; /**************/ /* FIN DU SVG */ /**************/ } // exemple // displayParcours(array( // array('id'=>1, 'nom'=>'S1'), // array('id'=>2, 'nom'=>'S2'), // array('id'=>3, 'nom'=>'S3'), // array('id'=>4, 'nom'=>'S4') // )); ?>