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/archivage_cdt.php';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { $sql="INSERT INTO droits SET id='/cahier_texte_2/archivage_cdt.php', administrateur='V', professeur='F', cpe='F', scolarite='F', eleve='F', responsable='F', secours='F', autre='F', description='Archivage des 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é."); } $step=isset($_POST['step']) ? $_POST['step'] : (isset($_GET['step']) ? $_GET['step'] : NULL); $mode=isset($_POST['mode']) ? $_POST['mode'] : (isset($_GET['mode']) ? $_GET['mode'] : NULL); $confirmer_ecrasement=isset($_POST['confirmer_ecrasement']) ? $_POST['confirmer_ecrasement'] : (isset($_GET['confirmer_ecrasement']) ? $_GET['confirmer_ecrasement'] : 'n'); include('cdt_lib.php'); //**************** EN-TETE ***************** $titre_page = "Cahier de textes - Archivage"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ************* //debug_var(); //=================================== // Permettre de choisir l'ordre dans lequel exporter? $current_ordre='ASC'; $dossier_etab=get_dossier_etab_cdt_archives(); //=================================== if(isset($_GET['chgt_annee'])) {$_SESSION['chgt_annee']="y";} echo "
Retour";
//echo "
\$dossier_etab=$dossier_etab
";
if($dossier_etab=="") {
echo "
Le dossier d'archivage de l'établissement n'a pas pu être identifié.
Cela ne devrait pas arriver sauf si votre Gepi était auparavant en 'multisite' et qu'il ne l'est plus.
En quittant le mode multisite, il se peut que vous ayez oublié laissé un enregistrement 'multisite=y' dans la table 'setting'.
Dans ce cas, passer la valeur à 'n' règlera le problème.
Le cahier de textes n'est pas accessible pour le moment.
\n"; require("../lib/footer.inc.php"); die(); } echo " | Années archivées"; echo "\n"; if(!isset($step)) { // A FAIRE: Si multisite, ne pas permettre d'aller plus loin si le RNE n'est pas renseigné? ou utiliser le RNE récupéré de... la session? echo "\n"; echo "NOTES :
\n"; echo "La procédure d'archivage est normalement utilisée en fin d'année.
Lors de l'archivage, les cahiers de textes sont parcourus pour mettre en place une arborescence copie de l'arborescence des cahiers de textes.
La procédure ne vide pas les tables des cahiers de textes.
Si vous souhaitez tester la procédure d'archivage, vous pouvez, à n'importe quel moment de l'année, effectuer un archivage sans transfert des documents joints.
Une arborescence copie sera mise en place.
Vous pourrez la consulter... et la supprimer si vous le souhaitez sans impact sur les cahiers de textes en cours d'utilisation.
En revanche, si vous cochez Transfert, les documents joints aux cahiers de textes seront déplacés.
Un professeur qui consulterait son cahier de textes de l'année courante, trouverait ses comptes-rendus, mais les documents joints ne seraient plus disponibles.
En fin d'année, il est recommandé d'effectuer un archivage avec transfert des documents pour ne pas laisser de scories pour les enseignements des années suivantes (et éviter d'encombrer l'arborescence du serveur de fichiers inutiles).
Une fois l'archivage de fin d'année effectué, vous pourrez vider les tables des cahiers de textes dans Gestion générale/Nettoyage des tables
(ce nettoyage 'manuel' des tables n'est pas indispensable; il est effectué automatiquement lors de l'initialisation de l'année si vous ne faites pas une initialisation tout à la main)
Dans les archives de CDT, les professeurs ne pourront consulter que leurs propres cahiers de textes.
Les comptes de statut 'administrateur', 'scolarite' auront accès à toutes les archives de cahiers de textes.
Les autres statuts n'y auront aucun accès.
Le nom d'année fourni '$annee_ini' n'est pas valable.
\n"; echo "\n"; require("../lib/footer.inc.php"); die(); } // Stocker date archivage strftime("%Y%m%d_%H%M%S") // Sécurité: if(($dossier_etab=='index.php')||($dossier_etab=='entete.php')) { echo "Le nom de dossier établissement '$dossier_etab' n'est pas valable.
\n"; echo "\n"; require("../lib/footer.inc.php"); die(); } $dossier_annee="../documents/archives/".$dossier_etab."/cahier_texte_".$annee; $dossier_cdt=$dossier_annee."/cdt"; $dossier_documents=$dossier_annee."/documents"; $dossier_css=$dossier_annee."/css"; if($step==1) { // Remplissage d'une table temporaire avec la liste des groupes. $sql="TRUNCATE TABLE tempo2;"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { echo "ABANDON : Il s'est produit un problème lors du nettoyage de la table 'tempo2'.
\n"; echo "ABANDON : Il s'est produit un problème lors de l'insertion de la liste des groupes dans la table 'tempo2'.
\n"; echo "ABANDON : Erreur lors de la création de la table temporaire 'tempo3_cdt'.
\n"; echo "ABANDON : Il s'est produit un problème lors du nettoyage de la table 'tempo3_cdt'.
\n"; echo "Erreur lors de la préparation de l'arborescence ../documents/archives/
\n"; require("../lib/footer.inc.php"); die(); } } if(!file_exists("../documents/archives/".$dossier_etab)) { //$res=mkdir("../documents/archives/".$dossier_etab); //$res=creer_rep_docs_joints("../documents/archives/", $dossier_etab, "../../.."); $res=creer_rep_docs_joints("../documents/archives/", $dossier_etab); } if(!file_exists("../documents/archives/".$dossier_etab."/index.html")) { //$res=creer_index_logout("../documents/archives/".$dossier_etab, "../../.."); $res=creer_index_logout("../documents/archives/".$dossier_etab); } // Page HTML à faire à ce niveau pour accéder aux différentes années... // Stocker dans une table la liste des années archivées? if(file_exists($dossier_annee)) { if($confirmer_ecrasement!='y') { echo "Le dossier $dossier_annee existe déjà.
\n"; // CONFIRMER echo "Voulez-vous, malgré tout, procéder à nouveau à l'archivage des cahiers de textes?
Les pages archivées seront écrasées.
Vous devriez peut-être commencer par télécharger les pages actuellement archivées par précaution.
Le dossier $dossier_annee existe déjà.
\n"; echo "Les pages précédemment archivées seront écrasées.
\n"; } else { $res=mkdir($dossier_annee); } if(!file_exists($dossier_annee."/index.html")) { //$res=creer_index_logout($dossier_annee, "../../../.."); $res=creer_index_logout($dossier_annee); } if(!file_exists($dossier_cdt)) { $res=mkdir($dossier_cdt); if(!$res) { echo "Erreur lors de la préparation de l'arborescence $dossier_cdt
\n"; require("../lib/footer.inc.php"); die(); } } if(!file_exists($dossier_documents)) { $res=mkdir($dossier_documents); if(!$res) { echo "Erreur lors de la préparation de l'arborescence $dossier_documents
\n"; require("../lib/footer.inc.php"); die(); } } if(!file_exists($dossier_documents."/index.html")) { //$res=creer_index_logout($dossier_annee, "../../../../.."); $res=creer_index_logout($dossier_annee); } // On copie les feuilles de style pour: // 1. Se prémunir de modifications de styles dans des versions ultérieures de Gepi // 2. Permettre d'avoir un code couleur variant par année par exemple if(!file_exists($dossier_css)) { $res=mkdir($dossier_css); if(!$res) { echo "Erreur lors de la préparation de l'arborescence $dossier_css
\n"; require("../lib/footer.inc.php"); die(); } } // Copie des feuilles de styles $tab_styles=array("style.css", "style_old.css", "style_screen_ajout.css", "accessibilite.css", "accessibilite_print.css", "portable.css"); for($i=0;$iLes notices vont être extraites pour des dates entre le $display_date_debut et le $display_date_fin
"; $largeur_tranche=10; $temoin_erreur="n"; $extension="php"; //$nom_fichier=array(); function corrige_nom_fichier($chaine) { //return preg_replace('/[^A-Za-z0-9\.-]/','_',preg_replace('/&/','et',unhtmlentities(remplace_accents($chaine,'all')))); return preg_replace("/_$/", "", preg_replace("/_{2,}/", "_", preg_replace('/[^A-Za-z0-9\.\-]/','_',remplace_accents(preg_replace('/&/','et',unhtmlentities($chaine)),'all')))); } $sql="SELECT * FROM tempo2 LIMIT $largeur_tranche;"; $res_grp=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_grp)>0) { echo "\n"; if($temoin_erreur!='y') { echo "\n"; } } else { // Les pages des enseignements n°$id_groupe de l'archive CDT ont été générés à l'étape précedente echo "L'archivage des enseignements est réalisé ($display_date_debut - $display_date_fin).
Les pages d'index vont maintenant être créées.
Extraction du $display_date_debut au $display_date_fin\n";
$content.="
\n";
$content.="(Archivage effectué le ".strftime("%d/%m/%Y à %H:%M:%S").")\n";
$content.="
Classe de | ".$lig_class->classe." |
Extraction du $display_date_debut au $display_date_fin\n";
$content.="
\n";
$content.="(Archivage effectué le ".strftime("%d/%m/%Y à %H:%M:%S").")\n";
$content.="
$lig_mat->matiere : | $lig_mat->enseignement | $liste_profs |
Extraction du $display_date_debut au $display_date_fin\n";
$content.="
\n";
$content.="(Archivage effectué le ".strftime("%d/%m/%Y à %H:%M:%S").")\n";
$content.="
Extraction du $display_date_debut au $display_date_fin\n";
$content2.="
\n";
$content2.="(Archivage effectué le ".strftime("%d/%m/%Y à %H:%M:%S").")\n";
$content2.="
$lig_clas_mat->classe | \n"; $content2.="\n";
}
$content2.="$lig_clas_mat->matiere : $lig_clas_mat->enseignement "; $cpt++; } if($cpt>0) { $content2.=" | \n";
$content2.="
Extraction du $display_date_debut au $display_date_fin\n";
$content.="
\n";
$content.="(Archivage effectué le ".strftime("%d/%m/%Y à %H:%M:%S").")\n";
$content.="
Terminé.
Les pages d'index ont maintenant été créées.
A FAIRE: Ne pas proposer le lien vers les années archivées si aucune année n'est archivée pour l'utilisateur courant (variable selon qu'on est prof ou pas)
\n"; require("../lib/footer.inc.php"); die(); ?>