security_check(); if ($resultat_session == 'c') { header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { header("Location: ../logout.php?auto=1"); die(); } $sql="SELECT 1=1 FROM droits WHERE id='/cahier_texte_2/export_cdt.php';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { $sql="INSERT INTO droits SET id='/cahier_texte_2/export_cdt.php', administrateur='V', professeur='V', cpe='V', scolarite='V', eleve='F', responsable='F', secours='F', autre='F', description='Export de CDT', statut='';"; $insert=mysqli_query($GLOBALS["mysqli"], $sql); } if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } //On vérifie si le module est activé if (getSettingValue("active_cahiers_texte")!='y') { die("Le module n'est pas activé."); } //======================= //Configuration du calendrier /* include("../lib/calendrier/calendrier.class.php"); $cal1 = new Calendrier("formulaire", "display_date_debut"); $cal2 = new Calendrier("formulaire", "display_date_fin"); $cal3 = new Calendrier("formulaire", "date2_acces"); */ //======================= //======================= // Pour éviter de refaire le choix des dates en revenant ici, on utilise la SESSION... $annee = strftime("%Y"); $mois = strftime("%m"); $jour = strftime("%d"); $heure = strftime("%H"); $minute = strftime("%M"); if($mois>8) {$date_debut_tmp="01/09/$annee";} else {$date_debut_tmp="01/09/".($annee-1);} $display_date_debut=isset($_POST['display_date_debut']) ? $_POST['display_date_debut'] : (isset($_SESSION['display_date_debut']) ? $_SESSION['display_date_debut'] : $date_debut_tmp); $display_date_fin=isset($_POST['display_date_fin']) ? $_POST['display_date_fin'] : (isset($_SESSION['display_date_fin']) ? $_SESSION['display_date_fin'] : $jour."/".$mois."/".$annee); //======================= $id_groupe=isset($_POST['id_groupe']) ? $_POST['id_groupe'] : NULL; if(isset($_GET['id_groupe'])) { if(is_array($_GET['id_groupe'])) { $id_groupe=$_GET['id_groupe']; } else { $id_groupe=array(); $id_groupe[0]=$_GET['id_groupe']; } } $id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL); $login_prof=isset($_POST['login_prof']) ? $_POST['login_prof'] : (isset($_GET['login_prof']) ? $_GET['login_prof'] : NULL); $action=isset($_POST['action']) ? $_POST['action'] : (isset($_GET['action']) ? $_GET['action'] : "export_zip"); $inclure_doc_joints=isset($_POST['inclure_doc_joints']) ? $_POST['inclure_doc_joints'] : "n"; $tab_fichiers_a_zipper=array(); $style_specifique[] = "lib/DHTMLcalendar/calendarstyle"; $javascript_specifique[] = "lib/DHTMLcalendar/calendar"; $javascript_specifique[] = "lib/DHTMLcalendar/lang/calendar-fr"; $javascript_specifique[] = "lib/DHTMLcalendar/calendar-setup"; //**************** EN-TETE ***************** $titre_page = "Cahier de textes - Export"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ************* //debug_var(); echo "
";
if($_SESSION['statut']=='professeur') {
if(getSettingValue("GepiCahierTexteVersion")=='2') {
echo "
Retour";
}
else {
echo "
Retour";
}
echo " | Export de mes CDT";
}
else {
// Modifier par la suite le chemin de retour selon les statuts...
echo "
Retour";
}
// Création d'un espace entre le bandeau et le reste
//echo "
Le cahier de textes n'est pas accessible pour le moment.
\n"; require("../lib/footer.inc.php"); die(); } // 20130722 if(isset($id_groupe)) { if((isset($action))&&($action=='afficher_tous_docs_joints')) { echo " | $texte_lien"; } if(!isset($id_groupe)) { if($_SESSION['statut']!='professeur') { // Pour les non-professeurs, on choisit d'abord les classes ou le login_prof if((!isset($id_classe))&&(!isset($login_prof))) { echo "\n"; echo "Choix des classes :
\n"; // Liste des classes avec élève: $sql="SELECT DISTINCT c.* FROM j_eleves_classes jec, classes c WHERE (c.id=jec.id_classe) ORDER BY c.classe;"; $call_classes=mysqli_query($GLOBALS["mysqli"], $sql); $nb_classes=mysqli_num_rows($call_classes); if($nb_classes==0){ echo "Aucune classe avec élève affecté n'a été trouvée.
\n"; require("../lib/footer.inc.php"); die(); } echo "\n"; //+++++++++++++++++++++++++++ $sql="SELECT DISTINCT u.login, u.nom, u.prenom FROM j_groupes_professeurs jgp, utilisateurs u WHERE u.login=jgp.login ORDER BY u.nom, u.prenom;"; $res_prof=mysqli_query($GLOBALS["mysqli"], $sql); $nb_profs=mysqli_num_rows($res_prof); if($nb_profs==0){ echo "Aucun professeur assurant un enseignement n'a été trouvé.
\n"; require("../lib/footer.inc.php"); die(); } echo "Ou choisissez un professeur :
\n"; $nb_prof_par_colonne=round($nb_profs/3); echo "| \n"; echo " | \n"; while($lig_prof=mysqli_fetch_object($res_prof)) { //affichage 3 colonnes if(($cpt>0)&&(round($cpt/$nb_prof_par_colonne)==$cpt/$nb_prof_par_colonne)){ echo " | \n"; echo "\n";
}
echo "login'>$lig_prof->nom $lig_prof->prenom";
echo " \n"; $cpt++; } echo " | \n";
echo "
Choix des matières/enseignements :
\n"; echo "\n"; if(isset($login_prof)) { echo "Enseignements de ".civ_nom_prenom($login_prof)." :
\n"; echo "\n"; echo "\n"; echo "\n"; } elseif(isset($id_classe)) { echo "\n"; } } else { // C'est un professeur qui est connecté echo "\n"; echo "Choix des matières/enseignements :
\n"; echo "\n"; echo "\n"; //echo "\n"; //echo "A FAIRE: Ajouter le choix Du/Au à ce niveau
\n"; echo ""; echo "Exporter le(s) cahier(s) de textes de la date : "; echo ""; //echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">
\n"; echo "\n"; echo img_calendrier_js("display_date_debut2", "img_bouton_display_date_debut2"); echo " à la date : "; echo ""; //echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">
\n"; echo img_calendrier_js("display_date_fin2", "img_bouton_display_date_fin2"); echo "
\n"; echo " (Veillez à respecter le format jj/mm/aaaa)\n"; echo "Action à réaliser :
\n"; echo "
\n"; echo "
\n"; echo " \n"; echo "
\n"; echo "ou
\n"; echo "
L'accès mis en place est 'statique', c'est-à-dire que seules les notices saisies à ce jour pourront être consultées."; /* echo "
\n"; echo ""; */ echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } else { echo "Paramètres de l'accès
\n"; echo "\n"; echo "\n"; echo "Description du motif de l'ouverture d'accès :
"; echo "
"; echo ""; echo "Date à laquelle vous souhaitez supprimer l'accès : "; echo ""; //echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">
\n"; echo "\n"; echo img_calendrier_js("date2_acces", "img_bouton_date2_acces"); echo "
\n"; echo "(la suppression n'est pas automatique à la date indiquée, mais fixer une date peut aider à savoir si l'accès doit être conservé ou non)Vous n'avez choisi ni professeur, ni classe.
\n"; } echo "Choix des matières/enseignements :
\n"; echo "\n"; echo "\n"; } require("../lib/footer.inc.php"); die(); } //============================== // Le choix des groupes est fait //============================== // Préparation de l'arborescence $gepiSchoolName=getSettingValue('gepiSchoolName'); $gepiYear=getSettingValue('gepiYear'); require("cdt_lib.php"); $dirname=get_user_temp_directory(); if(!$dirname) { echo "Problème avec le dossier temporaire.
\n"; require("../lib/footer.inc.php"); die(); } if($_SESSION['statut']=='professeur') { echo "\n"; } else { echo " | Retour au choix des classes ou du professeur"; echo "\n"; } echo "\n"; if($action!='acces2') { if($action=='afficher_tous_docs_joints') { echo "Affichage des documents joints aux cahiers de textes extraits
\n"; } else { echo "Affichage des cahiers de textes extraits
\n"; } } // Récupérer le max de getSettingValue("begin_bookings") et $display_date_debut $tmp_tab=explode("/",$display_date_debut); $jour=$tmp_tab[0]; $mois=$tmp_tab[1]; $annee=$tmp_tab[2]; $date_debut_tmp=mktime(0,0,0,$mois,$jour,$annee); $timestamp_debut_export=max(getSettingValue("begin_bookings"),$date_debut_tmp); // Récupérer le min de getSettingValue("end_bookings") et $display_date_fin $tmp_tab=explode("/",$display_date_fin); $jour=$tmp_tab[0]; $mois=$tmp_tab[1]; $annee=$tmp_tab[2]; $date_fin_tmp=mktime(0,0,0,$mois,$jour,$annee); $timestamp_fin_export=max(getSettingValue("end_bookings"),$date_fin_tmp); // Permettre de choisir l'ordre dans lequel exporter? $current_ordre='ASC'; if(($action=='acces')||($action=='acces2')) { $length = rand(35, 45); for($len=$length,$r='';mb_strlen($r)<$len;$r.=chr(!mt_rand(0,2)? mt_rand(48,57):(!mt_rand(0,1) ? mt_rand(65,90) : mt_rand(97,122)))); if((isset($GLOBALS['multisite']))&&($GLOBALS['multisite'] == 'y')&&(isset($_COOKIE['RNE']))&&($_COOKIE['RNE']!='')&&(preg_match("/^[A-Za-z0-9]*$/", $_COOKIE['RNE']))) { $dirname = "acces_cdt_".$_COOKIE['RNE']."_".$r; } else { $dirname = "acces_cdt_".$r; } $create = mkdir("../documents/".$dirname, 0700); if(!$create) { echo "Problème avec le dossier temporaire../documents/".$dirname."
\n"; require("../lib/footer.inc.php"); die(); } // Enregistrement dans la base de cet accès ouvert // Il faut y stocker la liste des login profs concernés pour afficher en page d'accueil la présence d'un cdt ouvert en consultation $date1_acces="$annee-$mois-$jour $heure:$minute:00"; $date2_acces=isset($_POST['date2_acces']) ? $_POST['date2_acces'] : ""; if($date2_acces=='') { $date2_acces=$date1_acces; } else { $tab_tmp_date=explode('/',$date2_acces); $date2_acces=$tab_tmp_date[2]."-".$tab_tmp_date[1]."-".$tab_tmp_date[0]." $heure:$minute:00"; } $description_acces=isset($_POST['description_acces']) ? $_POST['description_acces'] : "Test"; } if($action=='acces2') { $tmp_chaine_id_groupe=""; for($loop=0;$loop0) {$tmp_chaine_id_groupe.=", ";} $tmp_chaine_id_groupe.=$id_groupe[$loop]; } $chemin_acces="documents/".$dirname."/index.php"; $chemin_accessansRNE = $chemin_acces; if((isset($GLOBALS['multisite']))&&($GLOBALS['multisite'] == 'y')&&(isset($_COOKIE['RNE']))&&($_COOKIE['RNE']!='')&&(preg_match("/^[A-Za-z0-9]*$/", $_COOKIE['RNE']))) { $chemin_acces.="?rne=".$_COOKIE['RNE']; } $res=enregistrement_creation_acces_cdt($chemin_acces, $description_acces, $date1_acces, $date2_acces, $id_groupe); if(!$res) { echo " Erreur lors de l'enregistrement de la mise en place de l'accès.
\n"; require("../lib/footer.inc.php"); die(); } $f=fopen("../$chemin_accessansRNE","w+"); fwrite($f,'7) {$date_debut_tmp="01/09/$annee";} else {$date_debut_tmp="01/09/".($annee-1);} $display_date_debut=$date_debut_tmp; $display_date_fin=$jour."/".$mois."/".$annee; */ $display_date_debut="'.$display_date_debut.'"; $display_date_fin="'.$display_date_fin.'"; //================================= // Enseignements /* $groups=get_groups_for_prof($login_prof); $id_groupe=array(); foreach($groups as $current_group) { $id_groupe[]=$current_group["id"]; } */ $id_groupe=array('.$tmp_chaine_id_groupe.'); //================================= // A VOIR: PEUT-ETRE BLOQUER AUTOMATIQUEMENT L ACCES A UNE DATE DONNEE? require($prefixe_arbo_acces_cdt."/cahier_texte_2/acces_cdt.inc.php"); ?> '); fclose($f); $chaine_info_texte="Information :
"; echo $chaine_info_texte; require("../lib/footer.inc.php"); die(); } // 20130722 // Lister les docs joints... avec lien vers la/les notices associées if($action=='afficher_tous_docs_joints') { // Actuellement, on ne donne pas l'accès parent/élève à cette page, mais dans le cas où on le donnerait, il ne faut pas rendre visibles les documents cachés for($i=0;$i
Le(s) cahier(s) de textes extrait(s) est(sont) accessible(s) sans authentification à l'adresse suivante :
../$chemin_acces
Consultez la page, copiez l'adresse en barre d'adresse et transmettez la à qui vous souhaitez.
N'oubliez pas de supprimer cet accès lorsqu'il ne sera plus utile.
".$current_group['name']." (".$current_group['description'].") en ".$current_group['classlist_string']." (".$current_group['profs']['proflist_string'].")\n"; $sql="(SELECT cd.id_ct, cd.titre, cd.emplacement,ce.date_ct FROM ct_documents cd, ct_entry ce WHERE cd.id_ct=ce.id_ct AND ce.id_groupe='".$current_group['id']."')"; $sql.=" UNION "; $sql.="(SELECT cdd.id_ct_devoir AS id_ct,cdd.titre,cdd.emplacement,cde.date_ct FROM ct_devoirs_documents cdd, ct_devoirs_entry cde WHERE cdd.id_ct_devoir=cde.id_ct AND cde.id_groupe='".$current_group['id']."')"; $sql.=" ORDER BY date_ct;"; //echo "$sql
"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "Aucun document n'est joint à ce cahier de textes.
\n"; } else { echo "\n"; } } echo "
"; while($lig=mysqli_fetch_object($res)) { if(preg_match("#/cl_dev.*/#", $lig->emplacement)) { $class_ligne="color_fond_notices_t"; $ancre="travail_".$lig->id_ct; } else { $class_ligne="color_fond_notices_c"; $ancre="compte_rendu_".$lig->id_ct; } echo " Date Id Document "; } echo " ".strftime("%a %d/%m/%Y", $lig->date_ct)." $lig->id_ct ".$lig->titre." \n"; require("../lib/footer.inc.php"); die(); } if(($_SESSION['statut']=='professeur')||(isset($login_prof))) { $chaine_info_prof=""; if(isset($login_prof)) { $chaine_info_prof=" de ".civ_nom_prenom($login_prof)." "; } else { $login_prof=$_SESSION['login']; } // Préparation de l'arborescence $nom_export="export_cdt_".$login_prof."_".strftime("%Y%m%d_%H%M%S"); if($action=='acces') { $chemin_acces="documents/".$dirname."/".$nom_export."/index.html"; $res=enregistrement_creation_acces_cdt($chemin_acces, $description_acces, $date1_acces, $date2_acces, $id_groupe); if(!$res) { echo "
Erreur lors de l'enregistrement de la mise en place de l'accès.
\n"; require("../lib/footer.inc.php"); die(); } } if($action!='export_html') { arbo_export_cdt($nom_export, $dirname); } $chaine_id_groupe=""; // Générer la page d'index $content=""; $content.="Cahiers de textes $chaine_info_prof(".$gepiSchoolName." - ".$gepiYear.")
\n"; $content.="Cahier de textes ($display_date_debut - $display_date_fin) de :
\n"; $content.="\n"; for($i=0;$i
\n"; //================================================================ // Affichage dans la page d'export de ce qui va être fourni en zip echo ""; echo "0) { $chaine_id_groupe.=", "; } $chaine_id_groupe.="'".$id_groupe[$i]."'"; $nom_groupe=preg_replace("/[^A-Za-z0-9]/","_",remplace_accents($current_group['name'],'all')); $description_groupe=preg_replace("/[^A-Za-z0-9]/","_",remplace_accents($current_group['description'],'all')); $classlist_string_groupe=preg_replace("/[^A-Za-z0-9]/","_",remplace_accents($current_group['classlist_string'],'all')); $nom_page_html_groupe=$id_groupe[$i]."_".$nom_groupe."_"."$description_groupe"."_".$classlist_string_groupe.".html"; $nom_fichier[$id_groupe[$i]]=$nom_page_html_groupe; $nom_detaille_groupe[$id_groupe[$i]]=$current_group['name']." (".$current_group['description']." en (".$current_group['classlist_string']."))"; $nom_detaille_groupe_non_html[$id_groupe[$i]]=$current_group['name']." (".$current_group['description']." en (".$current_group['classlist_string']."))"; $content.=" - ".$current_group['name']." (".$current_group['description']." en (".$current_group['classlist_string']."))
\n"; } $content.="\n"; echo $content; echo "\n"; // Précaution $chaine_id_groupe=preg_replace("/^,/","",$chaine_id_groupe); // Correctif des liens tels qu'affichés dans la page echo "\n"; //================================================================ if($action!='export_html') { $content=html_entete("Index des cahiers de textes",0).$content; $content.=html_pied_de_page(); $f=fopen($dossier_export."/index.html","w+"); fwrite($f,$content); fclose($f); $tab_fichiers_a_zipper[]=$dossier_export."/index.html"; } } else { // C'est une liste de classes/enseignements qui a été choisie $chaine_info_classes=""; $chaine_classes=""; $chaine_id_classe=""; for($i=0;$i0) { $chaine_info_classes.="_"; $chaine_classes.=", "; $chaine_id_classe.=", "; } $nom_classe[$i]=get_class_from_id($id_classe[$i]); $nom_classe_clean[$i]=preg_replace("/[^A-Za-z0-9]/","_",remplace_accents($nom_classe[$i],'all')); $chaine_info_classes.=$nom_classe_clean[$i]; $chaine_classes.=$nom_classe[$i]; $chaine_id_classe.="'".$id_classe[$i]."'"; } // Créer une page index.html de la liste des classes //if(count($id_classe)>1) { // Préparation de l'arborescence $nom_export="export_cdt_classes_".$chaine_info_classes."_".strftime("%Y%m%d_%H%M%S"); if($action=='acces') { $chemin_acces="documents/".$dirname."/".$nom_export."/index.html"; $res=enregistrement_creation_acces_cdt($chemin_acces, $description_acces, $date1_acces, $date2_acces, $id_groupe); if(!$res) { echo " Erreur lors de l'enregistrement de la mise en place de l'accès.
\n"; require("../lib/footer.inc.php"); die(); } } arbo_export_cdt($nom_export, $dirname); // Générer la page d'index $content=""; $content.="Cahiers de textes de $chaine_classes (".$gepiSchoolName." - ".$gepiYear.")
\n"; $content.="Cahier de textes ($display_date_debut - $display_date_fin) de :
\n"; $content.="\n"; for($i=0;$i
\n"; //================================================================ // Affichage dans la page d'export de ce qui va être fourni en zip echo ""; echo "".$nom_classe[$i]."\n"; } $content.=" \n"; echo $content; echo "\n"; // Correctif des liens tels qu'affichés dans la page echo "\n"; //================================================================ $content=html_entete("Index des cahiers de textes",0).$content; $content.=html_pied_de_page(); //echo "Ecriture de ".$dossier_export."/index.html
"; $f=fopen($dossier_export."/index.html","w+"); fwrite($f,$content); fclose($f); $tab_fichiers_a_zipper[]=$dossier_export."/index.html"; //} // Créer une page index_$classe.html pour chaque classe for($j=0;$j\n"; $groups=get_groups_for_class($id_classe[$j],"","n"); $chaine_id_groupe=""; $chaine_lien_id_groupe=""; // Générer la page d'index $content=""; $content.=" Cahiers de textes de ".$nom_classe[$j]."(".$gepiSchoolName." - ".$gepiYear.")
\n"; $content.="Cahier de textes ($display_date_debut - $display_date_fin) de :
\n"; $content.="\n"; for($i=0;$i
\n"; //================================================================ // Affichage dans la page d'export de ce qui va être fourni en zip echo ""; echo "0) { $chaine_id_groupe.=", "; $chaine_lien_id_groupe.=", "; } $chaine_id_groupe.="'".$current_group['id']."'"; $chaine_lien_id_groupe.="'".$current_group['id']."_".$id_classe[$j]."'"; $nom_groupe=preg_replace("/[^A-Za-z0-9]/","_",remplace_accents($current_group['name'],'all')); $description_groupe=preg_replace("/[^A-Za-z0-9]/","_",remplace_accents($current_group['description'],'all')); $classlist_string_groupe=preg_replace("/[^A-Za-z0-9]/","_",remplace_accents($current_group['classlist_string'],'all')); $nom_page_html_groupe=$current_group['id']."_".$nom_groupe."_".$description_groupe."_".$classlist_string_groupe.".html"; $nom_fichier[$current_group['id']]=$nom_page_html_groupe; $nom_detaille_groupe[$current_group['id']]=$current_group['name']." (".$current_group['description']." en (".$current_group['classlist_string']."))"; $nom_detaille_groupe_non_html[$current_group['id']]=$current_group['name']." (".$current_group['description']." en (".$current_group['classlist_string']."))"; $content.=" - ".$current_group['name']." (".$current_group['description']." en (".$current_group['classlist_string']."))
\n"; } } $content.="\n"; echo $content; echo "\n"; // Précaution $chaine_id_groupe=preg_replace("/^,/","",$chaine_id_groupe); $chaine_lien_id_groupe=preg_replace("/^,/","",$chaine_lien_id_groupe); // Correctif des liens tels qu'affichés dans la page echo "\n"; //================================================================ if($action!='export_html') { $content=html_entete("Index des cahiers de textes de ".$nom_classe[$j],0).$content; $content.=html_pied_de_page(); $f=fopen($dossier_export."/".$nom_fichier_index[$id_classe[$j]],"w+"); fwrite($f,$content); fclose($f); $tab_fichiers_a_zipper[]=$dossier_export."/".$nom_fichier_index[$id_classe[$j]]; } } } echo "
\n"; $tab_chemin_url=array(); // Dans la page générée, permettre de masquer via JavaScript telle ou telle catégorie Notices ou devoirs,... for($i=0;$i