$valeur ) { $headers_brut .= $nom . ': ' . $valeur . "\r\n"; } return $headers_brut; } function get_EtudAbs_page($nip, $dept,$beg_date) { global $user_agent; global $sco_user; global $sco_pw; global $sco_url; $end_date=date("Y-m-d"); $donnees = array( 'format' => 'xml', 'code_nip' => $nip, '__ac_name' => $sco_user, '__ac_password' => $sco_pw, 'beg_date' => $beg_date, 'end_date' => $end_date); // Création du contenu brut de la requête $contenu = http_build_query( $donnees ); // Définition des headers $headers = http_build_headers( array( 'Content-Type' => 'application/x-www-form-urlencoded', 'Content-Length' => strlen( $contenu) ) ); // Définition du contexte $options = array( 'http' => array( 'user_agent' => $user_agent, 'method' => 'POST', 'content' => $contenu, 'header' => $headers ) ); // Création du contexte $contexte = stream_context_create($options); // Envoi du formulaire POST $retour = file_get_contents( $sco_url . $dept . '/Scolarite/Absences/XMLgetAbsEtud', false, $contexte ); return ($retour); } function get_BilletAbs_list($nip, $dept) { global $user_agent; global $sco_user; global $sco_pw; global $sco_url; $donnees = array( 'format' => 'xml', 'code_nip' => $nip, '__ac_name' => $sco_user, '__ac_password' => $sco_pw, ); // Création du contenu brut de la requête $contenu = http_build_query( $donnees ); // Définition des headers $headers = http_build_headers( array( 'Content-Type' => 'application/x-www-form-urlencoded', 'Content-Length' => strlen( $contenu) ) ); // Définition du contexte $options = array( 'http' => array( 'user_agent' => $user_agent, 'method' => 'POST', 'content' => $contenu, 'header' => $headers ) ); // Création du contexte $contexte = stream_context_create($options); // Envoi du formulaire POST $retour = file_get_contents( $sco_url . $dept . '/Scolarite/Absences/XMLgetBilletsEtud', false, $contexte ); return ($retour); } function Get_EtudAbs_billet($nip, $dept,$begin,$end,$description) { global $user_agent; global $sco_user; global $sco_pw; global $sco_url; $end_date=date("Y-m-d"); $justified="0"; $donnees = array( 'format' => 'xml', 'code_nip' => $nip, '__ac_name' => $sco_user, '__ac_password' => $sco_pw, 'description' =>$description, 'justified' =>$justified, 'begin' => $begin, 'end' => $end); // Création du contenu brut de la requête $contenu = http_build_query( $donnees ); // Définition des headers $headers = http_build_headers( array( 'Content-Type' => 'application/x-www-form-urlencoded', 'Content-Length' => strlen( $contenu) ) ); // Définition du contexte $options = array( 'http' => array( 'user_agent' => $user_agent, 'method' => 'POST', 'content' => $contenu, 'header' => $headers ) ); // Création du contexte $contexte = stream_context_create($options); // Envoi du formulaire POST $retour = file_get_contents( $sco_url . $dept . '/Scolarite/Absences/AddBilletAbsence', false, $contexte ); return ($retour); } function get_EtudInfos_page($nip, $dept) { global $user_agent; global $sco_user; global $sco_pw; global $sco_url; $donnees = array( 'code_nip' => $nip, '__ac_name' => $sco_user, '__ac_password' => $sco_pw ); // Création du contenu brut de la requête $contenu = http_build_query( $donnees ); // Définition des headers $headers = http_build_headers( array( 'Content-Type' => 'application/x-www-form-urlencoded', 'Content-Length' => strlen( $contenu) ) ); // Définition du contexte $options = array( 'http' => array( 'user_agent' => $user_agent, 'method' => 'POST', 'content' => $contenu, 'header' => $headers ) ); // Création du contexte $contexte = stream_context_create($options); // Envoi du formulaire POST $retour = file_get_contents( $sco_url . $dept . '/Scolarite/Notes/XMLgetEtudInfos', false, $contexte ); return ($retour); } function get_bulletinetud_page($nip, $sem, $dept) { global $user_agent; global $sco_user; global $sco_pw; global $sco_url; $donnees = array( 'format' => 'xml', 'code_nip' => $nip, 'formsemestre_id' => $sem, 'version' => 'selectedevals', '__ac_name' => $sco_user, '__ac_password' => $sco_pw ); // Création du contenu brut de la requête $contenu = http_build_query( $donnees ); // Définition des headers $headers = http_build_headers( array( 'Content-Type' => 'application/x-www-form-urlencoded', 'Content-Length' => strlen( $contenu) ) ); // Définition du contexte $options = array( 'http' => array( 'user_agent' => $user_agent, 'method' => 'POST', 'content' => $contenu, 'header' => $headers ) ); // Création du contexte $contexte = stream_context_create($options); // Envoi du formulaire POST $retour = file_get_contents( $sco_url . $dept . '/Scolarite/Notes/formsemestre_bulletinetud', false, $contexte ); return ($retour); } function get_semestre_info($sem, $dept) { global $user_agent; global $sco_user; global $sco_pw; global $sco_url; $donnees = array( 'formsemestre_id' => $sem, '__ac_name' => $sco_user, '__ac_password' => $sco_pw ); // Création du contenu brut de la requête $contenu = http_build_query( $donnees ); // Définition des headers $headers = http_build_headers( array( 'Content-Type' => 'application/x-www-form-urlencoded', 'Content-Length' => strlen( $contenu) ) ); // Définition du contexte $options = array( 'http' => array( 'user_agent' => $user_agent, 'method' => 'POST', 'content' => $contenu, 'header' => $headers ) ); // Création du contexte $contexte = stream_context_create($options); // Envoi du formulaire POST $retour = file_get_contents( $sco_url . $dept . '/Scolarite/Notes/XMLgetFormsemestres', false, $contexte ); return ($retour); } function get_all_semestres($xml_data) { $data = array(); $xml = simplexml_load_string($xml_data); foreach ($xml->insemestre as $s) { $sem = (array) $s['formsemestre_id']; $data[] = $sem[0]; } return $data; } function get_current_semestre($xml_data) { $xml = simplexml_load_string($xml_data); foreach ($xml->insemestre as $s) { if ($s['current'] == 1) $sem = (array) $s['formsemestre_id']; return ($sem[0]); } } function print_semestres_list($sems, $dept, $sem) { echo 'Semestre : '; } function print_semestre($xml_data, $sem, $dept, $show_moy=False) { global $etudid; global $nip; global $sco_user; global $sco_pw; global $sco_url; $xml = simplexml_load_string($xml_data); $etudid= $xml->etudiant['etudid']; if (!$show_moy) { echo '

Les informations contenues dans ce tableau sont provisoires. L'état n'a pas valeur de bulletin de notes.';} echo '
Il vous appartient de contacter vos enseignants ou votre département en cas de désaccord.

'; echo '

' . $xml->etudiant['sexe'] . ' ' . $xml->etudiant['prenom'] . ' ' . $xml->etudiant['nom'] . '

'; //echo '
'; $retour = get_semestre_info($sem, $dept); $xml2 = simplexml_load_string($retour); $debut=date("Y-m-d",strtotime($xml2->formsemestre['dateord'])); echo ''.convertir_utf8($xml2->formsemestre['titre_num']).'
'; if (!$show_moy) { echo "vous avez à ce jour ".convertir_utf8($xml->absences['nbabs'])." demi-journées d'absences dont ".convertir_utf8($xml->absences['nbabsjust']).' justifiées';} echo '

'; echo ' '; if ($show_moy) { echo ''; } foreach ($xml->ue as $ue) { $coef = 0; foreach ($ue->module as $mod) { $coef += $mod['coefficient']; } echo ' '; if ($show_moy) { echo ' '; } else { echo ' '; } echo ' '; foreach ($ue->module as $mod) { echo ' '; if ($show_moy) { echo ' '; } else { echo ' '; } echo ' '; if (!$show_moy) { foreach ($mod->evaluation as $eval) { echo ''; } } } } echo '
UE Code Module Module Evaluation Note/20 (Min/Max) Coef
Moyenne générale:' . $xml->note['value'] . '('.$xml->note['min'].'/'.$xml->note['max'].')
-' . $ue['acronyme'] . ' ' . $ue->note['value'] . '('.$ue->note['min'].'/'.$ue->note['max'].') ' . $coef . '
' . $mod['code'] . ' ' . convertir_utf8($mod['titre']) . ' ' . $mod->note['value'] . '('.$mod->note['min'].'/'.$mod->note['max'].')' . $mod['coefficient'] . '
' . convertir_utf8($eval['description']) . ' ' . $eval->note['value'] . '('.$eval->note['min'].'/'.$eval->note['max'].') (' . $eval['coefficient'] . ')

'; $code=$xml->decision['code']; $date_fin=$xml->decision['date_fin']; echo $date_fin; if ($show_moy) { echo "Situation sous réserve de validation par le jury :
".convertir_utf8($xml->situation); } else{if($code!=""){echo "Situation sous réserve de validation par le jury :
". convertir_utf8($xml->situation);}} if (!$show_moy) { echo '

Cliquez ici pour afficher/masquer la liste des absences du semestre:

'; $retourabs = get_EtudAbs_page($nip, $dept,$debut); $xmlabs = simplexml_load_string($retourabs); echo ' '; echo '
'; echo '

Déclaration des motifs d'absences:

'; echo '
Date et heure de début:
Date et heure de fin:
Motif:

Veuillez indiquer les matières et enseignants concernés (pour les absences de courte durée).
Apportez par ailleurs le numéro du billet affiché dans le tableau ci après ainsi que vos justificatifs éventuels au secrétariat du département.
'; if (isset($_POST["begin"]) and isset($_POST["end"]) and isset($_POST["begtime"]) and isset($_POST["endtime"]) and isset($_POST["description"]) and $_POST["end"]>=$_POST["begin"]){ $date1 = new DateTime($_POST["begin"]); $date1->setTime(intval(substr($_POST["begtime"],0,2)), intval(substr($_POST["begtime"],-2))); $date2 = new DateTime($_POST["end"]); $date2->setTime(intval(substr($_POST["endtime"],0,2)), intval(substr($_POST["endtime"],-2))); Get_EtudAbs_billet($nip, $dept,$date1->format('Y-m-d H:i:s') , $date2->format('Y-m-d H:i:s') , $_POST["description"]);} echo '

Billets d'absences déposés:

'; $retourbillets = get_BilletAbs_list($nip, $dept); $xmlbillets = simplexml_load_string($retourbillets); echo ''; foreach ($xmlbillets->row as $billet) { echo " "; } echo '
Billet Du Au Motif Situation
". $billet->billet_id['value'] . ''. convertir_utf8($billet->abs_begin_str['value']). ' ' . convertir_utf8($billet->abs_end_str['value']) . ' ' . convertir_utf8($billet->description['value']) .' ' . convertir_utf8($billet->etat_str['value']) ."
'; }} function get_dept($nip) { global $sco_url; $dept = file_get_contents( $sco_url . 'get_etud_dept?code_nip=' . $nip); return ($dept); } // function pour la recuperation des infos ldap function search_results($info) { foreach ($info as $inf) { if (is_array($inf)) { foreach ($inf as $key => $in) { if ((count($inf[$key]) - 1) > 0) { if (is_array($in)) { unset($inf[$key]["count"]); } $results[$key] = $inf[$key]; } } } } $results["dn"] = explode(',', $info[0]["dn"]); return $results; } // Programme principal echo ' Bulletin de notes '; echo " "; $user = $_SERVER['PHP_AUTH_USER']; //echo 'USER: '.$user."\n"."
"; //$user = "ei121713"; //echo "On triche USER = ".$user."\n"."
"; $ds = ldap_connect("ldap://ldap"); if ($ds) { $r = ldap_bind($ds); $sr = ldap_search($ds, "ou=people,dc=univ-lehavre,dc=fr", "(&(objectClass=ulhEtudiant)(uid=$user))"); $info = ldap_get_entries($ds, $sr); //echo $info["count"]." IS Search Result(s) for \"".$user."\"\n"; $results = search_results($info); // si pas de reponse de l a nnuaire, ce n est pas un etudiant if ($info["count"] == 0 ) { echo ' getEtud

Service de consultation des notes

Il faut être etudiant de l'IUT pour accéder à ses notes.
'; } else { foreach ($results as $key => $result) { if ($key == 'supannetuid' ) { //echo " * ".$key." : \n"; if (is_array($result)){ foreach($result as $res){ //echo " ".$res."\n"; } } //echo "
"; $nip=$res; } } } ldap_close($ds); } // Login information of a scodoc user that can access notes $sco_user = 'lecturenotes'; $sco_pw = 'XXXXXXX'; $sco_url = 'https://scodoc.XXXXX.fr/ScoDoc/'; $user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1) Gecko/20061010 Firefox/2.0'; echo '
'; if ($nip) { $dept = get_dept($nip); if ($dept) { $retour = get_EtudInfos_page($nip, $dept); $sems = get_all_semestres($retour); $sem_current = get_current_semestre($retour); if (isset($_POST["sem"])) { $sem = $_POST["sem"]; } else { $sem = $sem_current; } print_semestres_list($sems, $dept, $sem); $retour = get_bulletinetud_page($nip, $sem, $dept); if ($sem == $sem_current) { print_semestre($retour, $sem, $dept, False); } else { print_semestre($retour, $sem, $dept, True); } $erreur=0; // Tout est OK } else { echo "Numéro étudiant inconnu : " . $nip . ". Contactez votre Chef de département."; } } echo '
'; echo ' '; ?>