$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); //echo $sco_url . $dept . '/Scolarite/Absences/XMLgetBilletsEtud'. // 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]);} else{$sem = ""; return ($sem);} } } function print_semestres_list($sems, $dept, $sem) { echo 'Semestre : Déconnexion '; } function print_semestre($xml_data, $sem, $dept, $show_moy=False) { global $etudid; global $nip; global $sco_user; global $sco_pw; global $sco_url; $modules=array(); $codesmodules=array(); $i=0; if($sem==""){echo '

Il n'y a pas de semestre courant

';} else{ $xml = simplexml_load_string($xml_data); $etudid= $xml->etudiant['etudid']; $retour = get_semestre_info($sem, $dept); $xml2 = simplexml_load_string($retour); $debut=date("Y-m-d",strtotime($xml2->formsemestre['dateord'])); $finsemestre=$xml2->formsemestre['date_fin_iso']; $fin=strtotime($finsemestre)+3000000; $day=strtotime(date("d-m-Y")); $publie= $xml2->formsemestre['bul_hide_xml']; // teste la publication et affiche un message si non publié // $showmoy teste si on est avant date de fin du semestre // si la date du jour dépasse de 45 jours la date de fin de semestre on affiche les moyennes // sinon pas encore $sexe=$xml->etudiant['sexe']; $prenom=$xml->etudiant['prenom']; $nom=$xml->etudiant['nom']; $semestre=$xml2->formsemestre['titre_num']; if ($publie=="0") { if (!$show_moy) { echo '

Les informations contenues dans ces tableaux 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 '

' . convertir_utf8($sexe). ' ' . convertir_utf8($prenom). ' ' . convertir_utf8($nom). '

'; //echo '
'; echo ''.convertir_utf8($semestre).'
'; 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 '

- Cliquez ici pour afficher/masquer le bulletin de notes


Gestion des absences

Les régles de gestion peuvent actuellement dépendre des départements. La déclaration en ligne ne suffit pas.

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

'; $retourabs = get_EtudAbs_page($nip, $dept,$debut); $xmlabs = simplexml_load_string($retourabs); echo ' '; $retourbillets = get_BilletAbs_list($nip, $dept); if($retourbillets!=''){ echo '

- Déclaration d'un billet d'absences

'; if (isset($_POST['submit']) && $_POST['submit'] == "Envoyer"){ $description=$_POST["description"]; $date1 = new DateTime($_POST["begin"]); $date1->setTime(intval(substr($_POST["begtime"],0,2)), intval(substr($_POST["begtime"],-2)))+1; $date2 = new DateTime($_POST["end"]); $date2->setTime(intval(substr($_POST["endtime"],0,2)), intval(substr($_POST["endtime"],-2))-31); if(!$description){$description="Motif: ".$description." - Matières: " ;} for($i=1;$i'; Get_EtudAbs_billet($nip, $dept,$date1 , $date2 , $description); } // pour tester le renvoi des variables //print_r($_POST); echo '
- Cliquez ici pour afficher/masquer les billets d'absences déposés
'; } }} else {echo '

Votre département n'a pas autorisé l'affichage des informations de ce semestre

';} }} 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 // $nip="20121713"; echo ' Portail Webnotes '; 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 = 'lecture2014'; //$sco_url = 'https://test1-scodoc.iut.univ-lehavre.fr/ScoDoc/'; $nip="20121713"; $sco_url = 'https://scodoc-demo.iut.univ-lehavre.fr/ScoDoc/'; //$sco_url = 'https://scodoc.univ-lehavre.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); if($sem==""){echo '

Il n'y a pas de semestre en cours - Choisissez éventuellement dans la liste.

';} else{ $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 ' '; ?>