/** * Enregistrer les choix mémorisées d'un formulaire. * * @param string $page * @return void */ public static function save_choix($page) { switch($page) { case 'grille_referentiel' : global $eleves_ordre,$matiere_id,$niveau_id,$type_generique,$type_individuel,$type_synthese,$tableau_synthese_format,$tableau_tri_mode,$repeter_entete,$retroactif,$only_socle,$aff_coef,$aff_socle,$aff_lien,$cases_nb,$cases_largeur,$remplissage,$colonne_bilan,$colonne_vide,$orientation,$couleur,$fond,$legende,$marge_min,$pages_nb; $tab_choix_new = compact('eleves_ordre','matiere_id','niveau_id','type_generique','type_individuel','type_synthese','tableau_synthese_format','tableau_tri_mode','repeter_entete','retroactif','only_socle','aff_coef','aff_socle','aff_lien','cases_nb','cases_largeur','remplissage','colonne_bilan','colonne_vide','orientation','couleur','fond','legende','marge_min','pages_nb'); break; case 'releve_items' : global $eleves_ordre,$matiere_id,$type_individuel,$type_synthese,$type_bulletin,$releve_individuel_format,$aff_etat_acquisition,$aff_moyenne_scores,$aff_pourcentage_acquis,$conversion_sur_20,$tableau_synthese_format,$tableau_tri_mode,$repeter_entete,$with_coef,$retroactif,$only_socle,$aff_coef,$aff_socle,$aff_lien,$aff_domaine,$aff_theme,$cases_nb,$cases_largeur,$orientation,$couleur,$fond,$legende,$marge_min,$pages_nb; $tab_choix_new = compact('eleves_ordre','matiere_id','type_individuel','type_synthese','type_bulletin','releve_individuel_format','aff_etat_acquisition','aff_moyenne_scores','aff_pourcentage_acquis','conversion_sur_20','tableau_synthese_format','tableau_tri_mode','repeter_entete','with_coef','retroactif','only_socle','aff_coef','aff_socle','aff_lien','aff_domaine','aff_theme','cases_nb','cases_largeur','orientation','couleur','fond','legende','marge_min','pages_nb'); break; case 'bilan_chronologique' : global $eleves_ordre,$mode_synthese,$fusion_niveaux,$indicateur,$conversion_sur_20,$retroactif,$only_socle,$echelle; $tab_choix_new = compact('eleves_ordre','mode_synthese','fusion_niveaux','indicateur','conversion_sur_20','retroactif','only_socle','echelle'); break; case 'releve_synthese' : global $eleves_ordre,$matiere_id,$mode_synthese,$fusion_niveaux,$retroactif,$only_socle,$only_niveau,$aff_coef,$aff_socle,$aff_lien,$aff_start,$couleur,$fond,$legende,$marge_min; $tab_choix_new = compact('eleves_ordre','matiere_id','mode_synthese','fusion_niveaux','retroactif','only_socle','only_niveau','aff_coef','aff_socle','aff_lien','aff_start','couleur','fond','legende','marge_min'); break; case 'releve_socle' : global $eleves_ordre,$palier_id,$only_presence,$aff_coef,$aff_socle,$aff_lien,$aff_start,$aff_socle_PA,$aff_socle_EV,$mode,$couleur,$fond,$legende,$marge_min; $tab_choix_new = compact('eleves_ordre','palier_id','only_presence','aff_coef','aff_socle','aff_lien','aff_start','aff_socle_PA','aff_socle_EV','mode','couleur','fond','legende','marge_min'); case 'releve_synthese_socle' : global $eleves_ordre,$palier_id,$type,$mode,$couleur,$fond,$legende,$marge_min; $tab_choix_new = compact('eleves_ordre','palier_id','type','mode','couleur','fond','legende','marge_min'); break; case 'validation_socle_item' : global $eleves_ordre,$palier_id,$mode; $tab_choix_new = compact('eleves_ordre','palier_id','mode'); break; case 'validation_socle_pilier' : global $eleves_ordre,$palier_id; $tab_choix_new = compact('eleves_ordre','palier_id'); break; case 'matiere' : global $matiere_id; $tab_choix_new = compact('matiere_id'); break; case 'palier' : global $palier_id; $tab_choix_new = compact('palier_id'); break; case 'evaluation_cartouche' : global $orientation,$couleur,$fond,$legende,$marge_min,$cart_detail,$cart_cases_nb,$cart_contenu; $tab_choix_new = compact('orientation','couleur','fond','legende','marge_min','cart_detail','cart_cases_nb','cart_contenu'); break; case 'evaluation_statistiques' : case 'evaluation_archivage' : global $couleur,$fond; $tab_choix_new = compact('couleur','fond'); break; case 'evaluation_gestion' : global $eleves_ordre; $tab_choix_new = compact('eleves_ordre'); break; default : $tab_choix_new = array(); } // Récupération du contenu du "cookie", surchargé avec les choix effectués Form::load_choix_memo(); Form::$tab_choix = array_merge( Form::$tab_choix , $tab_choix_new ); /* Remarque : il y a un problème de serialize avec les type float : voir http://fr2.php.net/manual/fr/function.serialize.php#85988 Dans ce cas il faut remplacer serialize(Form::$tab_choix) par private static function callback_float($matches) { return "'d:'.(round($matches[1],9)).';'"; } preg_replace_callback( '/d:([0-9]+(\.[0-9]+)?([Ee][+-]?[0-9]+)?);/', "Form::callback_float", serialize(Form::$tab_choix) ); */ FileSystem::ecrire_fichier(Form::$fichier_cookie,serialize(Form::$tab_choix)); }