function process_wikifile($collection, $wiki_file, $wiki_namespaces, $wiki_name) { $wiki_id = sprintf("%s:%s", implode($wiki_namespaces, ":"), $wiki_name); echo "{$wiki_id}\n"; $wiki_html = ensure_utf8(p_file_xhtml($wiki_file, false)); $wiki_text = ensure_utf8(file_get_contents($wiki_file)); $collection->insert(array(wiki_name => $wiki_name, wiki_id => $wiki_id, wiki_namespaces => $wiki_namespaces, wiki_text => $wiki_text, wiki_html => $wiki_html)); }
public function test_ensure_utf8() { $this->assertTrue(test_ensure_utf8()); $utf8_str = file_get_contents(dirname(__FILE__) . "/../tools/utf8_str.txt"); $this->assertTrue(ensure_utf8($utf8_str) == $utf8_str); $iso_str = file_get_contents(dirname(__FILE__) . "/../tools/iso-8859-1_str.txt"); $this->assertTrue(ensure_utf8($iso_str) == $utf8_str); }
function test_ensure_utf8() { if ("auie" != ensure_utf8("auie", 'UTF-8')) {echo 'échec ligne 56 mod_serveur/test_encoding_functions.php'; return false;} if ("auie" != ensure_utf8("auie")) {echo 'échec ligne 57 mod_serveur/test_encoding_functions.php'; return false;} if ("bépowǜdlj" != ensure_utf8("bépowǜdlj")) {echo 'échec ligne 58 mod_serveur/test_encoding_functions.php'; return false;} if (";œ€âũ" != ensure_utf8(";œ€âũ")) {echo 'échec ligne 59 mod_serveur/test_encoding_functions.php'; return false;} if ("é" != ensure_utf8("é")) {echo 'échec ligne 60 mod_serveur/test_encoding_functions.php'; return false;} if ("é" != ensure_utf8("\xe9")) {echo 'échec ligne 61 mod_serveur/test_encoding_functions.php'; return false;} if ("€" != ensure_utf8("\xa4")) {echo 'échec ligne 62 mod_serveur/test_encoding_functions.php'; return false;} if ("€" != ensure_utf8("\xa4",'ISO-8859-15')) {echo 'échec ligne 63 mod_serveur/test_encoding_functions.php'; return false;} if ("¤" != ensure_utf8("\xa4",'ISO-8859-1')) {echo 'échec ligne 64 mod_serveur/test_encoding_functions.php'; return false;} return true; }
/** * Corrige les caracteres degoutants utilises par les Windozeries * * @param type $texte * @return type * @todo Fout le bazar et inutile en UTF-8 */ function corriger_caracteres($texte) { return ensure_utf8($texte); }
private function authenticate_cas() { /* ***** * Toute la partie authentification en elle-même a été déplacée dans le * fichier login_sso.php, afin de permettre à phpCAS de gérer tout seul * la session PHP. * ***** * include_once('CAS.php'); if ($GLOBALS['mode_debug']) { phpCAS::setDebug($GLOBALS['debug_log_file']); } // config_cas.inc.php est le fichier d'informations de connexions au serveur cas $path = dirname(__FILE__)."/../secure/config_cas.inc.php"; include($path); # On défini l'URL de base, pour que phpCAS ne se trompe pas dans la génération # de l'adresse de retour vers le service (attention, requiert patchage manuel # de phpCAS !!) if (isset($GLOBALS['gepiBaseUrl'])) { $url_base = $GLOBALS['gepiBaseUrl']; } else { $url_base = $this->https_request() ? 'https' : 'http'; $url_base .= '://'; $url_base .= $_SERVER['SERVER_NAME']; } // Le premier argument est la version du protocole CAS // Le dernier argument a été ajouté par patch manuel de phpCAS. phpCAS::client(CAS_VERSION_2_0, $cas_host, $cas_port, $cas_root, false, $url_base); phpCAS::setLang('french'); // redirige vers le serveur d'authentification si aucun utilisateur authentifié n'a // été trouvé par le client CAS. phpCAS::setNoCasServerValidation(); // Gestion du single sign-out phpCAS::handleLogoutRequests(false); // Authentification phpCAS::forceAuthentication(); */ if (getSettingValue("sso_cas_table") == 'yes') { $this->login_sso = phpCAS::getUser(); $test = $this->test_loginsso(); if ($test == '0') { //la correspondance n'existe pas dans gépi; on detruit la session avant de rediriger. session_destroy(); header("Location:login_failure.php?error=11&mode=sso_table"); exit; } else { $this->login = $test; } } else { $this->login = phpCAS::getUser(); } /* La session est gérée par phpCAS directement, en amont. On n'y touche plus. session_name("GEPI"); session_start(); */ $_SESSION['login'] = $this->login; $this->current_auth_mode = "sso"; // Extractions des attributs supplémentaires, le cas échéant $tab = phpCAS::getAttributes(); $attributs = array('prenom','nom','email'); foreach($attributs as $attribut) { $code_attribut = getSettingValue('cas_attribut_'.$attribut); // Si un attribut a été spécifié, on va le chercher if (!empty($code_attribut)) { if (isset($tab[$code_attribut])) { $valeur = $tab[$code_attribut]; if (!empty($valeur)){ // L'attribut est trouvé et non vide, on l'assigne pour mettre à jour l'utilisateur // On s'assure que la chaîne est bien enregistrée en UTF-8. $valeur = ensure_utf8($valeur); $this->cas_extra_attributes[$attribut] = trim(mysqli_real_escape_string($GLOBALS["mysqli"], $valeur)); } } } } return true; }
private function traite_file($file) { $data = new ImportModele(); $this->verif_file($file); if (is_null($this->erreurs_lignes)) { // on crée la table des imports ENT $data->cree_table_import(); $this->fic = fopen($file, 'r'); skip_bom_utf8($this->fic); $statut = 'eleve'; while (($this->ligne = fgetcsv($this->fic, 1024, ";")) !== FALSE) { foreach ($this->ligne as &$value) { $value = ensure_utf8($value); } // On charge la table temporaire //$this->ligne[0] : rne //$this->ligne[1] : uid //$this->ligne[2] : classe //$this->ligne[3] : statut //$this->ligne[4] : prénom //$this->ligne[5] : nom //$this->ligne[6] : login //$this->ligne[7] : mot de passe //$this->ligne[8] : cle de jointure //$this->ligne[9] : uid pere //$this->ligne[10] : uid pere //$this->ligne[11] : uid tuteur1 //$this->ligne[12] : uid tuteur2 // si on a un élève, il a un père ou une mère ou un tuteur 1 ou un tuteur 2 if ($this->ligne[9] != "" || $this->ligne[10] != "" || $this->ligne[11] != "" || $this->ligne[12] != "") { $recherche = TRUE; } else { $recherche = FALSE; } $this->res = $data->cherche_login($this->ligne, $statut, $recherche); if (mysqli_num_rows($this->res) == 1) { // on a un seul utilisateur dans Gépi $row = mysqli_fetch_row($this->res); $login_gepi = $row[0]; } else { // Pour les autres cas, il faut attendre que la table soit remplie $login_gepi = ''; } $data->ligne_table_import($this->ligne, $login_gepi); } // regrouper dans un seul enregistrement les UID présents plusieurs fois $data->cree_index_uid(); // récupérer les libellés élèves, responsables, enseignants //$this->req= "SELECT DISTINCT `statut` FROM `utilisateurs` u, `plugin_sso_table_import` e WHERE u.`statut` = 'professeur' AND e.login = u.login AND e.login != '' "; // Ne fonctionne pas, certains profs ont un statut 'personnel' dans l'ENT (remplaçant pas encore remonté, prof des école UPI...) // supprimer les élèves sans classe $this->res = $data->trouve_statut_eleves(); if (mysqli_num_rows($this->res) == 1) { $row = mysqli_fetch_row($this->res); $this->libel_eleve = $row[0]; } else { echo "il y a " . mysqli_num_rows($this->res) . " dénominations pour le statut élève "; die; } $data->supprime_sans_classe($this->libel_eleve); // supprimer les responsables sans classe $this->res = $data->trouve_statut_responsables(); if (mysqli_num_rows($this->res) == 1) { $row = mysqli_fetch_row($this->res); $this->libel_responsable = $row[0]; } else { echo "il y a " . mysqli_num_rows($this->res) . " dénominations pour le statut responsable "; die; } $data->supprime_sans_classe($this->libel_responsable); // supprimer les responsables sans élève (erreurs dans l'ENT) /* // si on a un tuteur dans l'ENT qui n'est que tuteur1 ou tuteur2, on peut le supprimer $this->tuteur = $data->est_que_tuteur(); if (mysql_num_rows($this->tuteur) != 0) { while ($this->row = mysql_fetch_array($this->tuteur)) { // on a bien un compte tuteur dans l'ENT, on peut le supprimer il n'a pas de compte dans gépi $data->del_by_uid($this->row['uid']); } } * */ /* On traite les doublons */ // On recherche les enregistrements sans login $this->res = $data->login_vide(); while ($this->row = mysqli_fetch_array($this->res)) { $login = ''; // si on a un responsable, on le retrouve dans père ou mère ou tuteur 1 ou tuteur 2 $this->resp = $data->est_responsable($this->row); if (mysqli_num_rows($this->resp) != 0) { // on a bien un responsable // on regarde déjà si la recherche sur responsable ne régle pas le problème $this->resp1 = $data->cherche_login($this->row, 'responsable'); if (mysqli_num_rows($this->resp1) == 1) { $row1 = mysqli_fetch_assoc($this->resp1); $login = $row1['login']; } else { if (mysqli_num_rows($this->resp) != 0) { // on recherche le responsable avec ce nom et prénom ayant cet élève $this->eleve = mysqli_fetch_assoc($this->resp); $this->resp2 = $data->cherche_responsable($this->eleve, $this->row); if (mysqli_num_rows($this->resp2) != 0) { $row2 = mysqli_fetch_row($this->resp2); $login = $row2[0]; } } else { // on a pas trouver d'élève, il va falloir traiter à la main $login = ''; } } } else { // si on a un élève, il a un père ou une mère ou un tuteur 1 ou un tuteur 2 $this->reselv = $data->est_eleve($this->row); if (mysqli_num_rows($this->reselv) != 0) { // on a bien un élève, on recherche l'élève ayant un de ces responsables $this->responsable = mysqli_fetch_assoc($this->reselv); $this->reselv2 = $data->cherche_eleve($this->responsable, $this->row); if (mysqli_num_rows($this->reselv2) == 1) { $rowelv2 = mysqli_fetch_row($this->reselv2); $login = $rowelv2[0]; } } // les autres sont ni élève ni responsable $this->resautre = $data->doublon_pro($this->row, $this->libel_eleve, $this->libel_responsable); if (mysqli_num_rows($this->resautre) == 1) { $rowautre = mysqli_fetch_row($this->resautre); $login = $rowautre[0]; } } // on enregistre $data->met_a_jour_ent($login, $this->row['uid']); } fclose($this->fic); // il reste encore les erreurs : 2 comptes ENT -> 1 compte Gépi, on peut nettoyer quand les 2 comptes ne sont pas des comptes parents $this->res = $data->doublon_2ent_1gepi(); if (mysqli_num_rows($this->res) > 0) { while ($this->row2 = mysqli_fetch_array($this->res)) { $data->efface_2ent_1gepi($this->row2, $this->libel_responsable); } } $this->res = $data->doublon_2ent_1gepi(); if (mysqli_num_rows($this->res) > 0) { $class = "message_red"; $message = "Ce compte pose problème"; while ($this->row2 = mysqli_fetch_array($this->res)) { $this->nom = $this->row2['nom'] . " " . $this->row2['prenom']; $this->table[] = array('login_gepi' => $this->nom, 'login_sso' => $this->ligne['uid'], 'couleur' => $class, 'message' => $message); } } $this->setVarGlobal('choix_info', 'affich_result'); if (!isset($_POST["choix"]) || $_POST["choix"] == "ecrit") { $this->ecriture = TRUE; } else { $this->ecriture = FALSE; } // On récupère tous les membres de l'ENT ayant un login Gépi $this->res = $data->get_gepi_ent(); if (mysqli_num_rows($this->res) != 0) { while ($this->ligne = mysqli_fetch_array($this->res)) { $this->messages = $this->get_message($data->get_error($this->ligne['login'], $this->ligne['uid'], $this->ecriture)); if ($_POST["choix"] == "erreur" && $this->messages[0] == "message_red") { $this->table[] = array('login_gepi' => $this->ligne['login'], 'login_sso' => $this->ligne['uid'], 'couleur' => $this->messages[0], 'message' => $this->messages[1]); } else { if ($_POST["choix"] != "erreur") { $this->table[] = array('login_gepi' => $this->ligne['login'], 'login_sso' => $this->ligne['uid'], 'couleur' => $this->messages[0], 'message' => $this->messages[1]); } } } } // On récupère les membres de l'ENT sans login présents dans Gépi $this->class = "message_red"; $this->res = $data->get_sans_login(); if (mysqli_num_rows($this->res) != 0) { while ($this->ligne = mysqli_fetch_array($this->res)) { $this->res2 = $data->cherche_login($this->ligne); if (mysqli_num_rows($this->res2) > 0) { $this->message = 'Il y a plusieurs personnes dans Gépi ayant les mêmes noms et prénoms'; $nomPrenom = $this->ligne['nom'] . " " . $this->ligne['prenom']; $this->table[] = array('login_gepi' => $nomPrenom, 'login_sso' => $this->ligne['uid'], 'couleur' => $this->class, 'message' => $this->message); } } } // On récupère les membres de l'ENT sans login absents de Gépi $this->res = $data->get_sans_login(); if (mysqli_num_rows($this->res) != 0) { while ($this->ligne = mysqli_fetch_array($this->res)) { $this->res2 = $data->cherche_login($this->ligne); if (mysqli_num_rows($this->res2) == 0) { $possibles = Null; $probable = Null; $this->res3 = $data->get_homonymes_sans_correspondance($this->ligne['nom']); while ($this->ligne2 = mysqli_fetch_array($this->res3)) { $possibles[] = $this->ligne2; } if (isset($possibles)) { $probable = $this->get_probable($this->ligne, $possibles); } if ($probable) { $this->message = "L'utilisateur est peut être " . $probable['nom'] . " " . $probable['prenom'] . "( " . $probable['statut'] . ")"; $this->class = "message_purple"; $nomPrenom = $this->ligne['nom'] . " " . $this->ligne['prenom']; $this->table[] = array('login_gepi' => $nomPrenom, 'login_sso' => $this->ligne['uid'], 'couleur' => $this->class, 'message' => $this->message); } else { $this->message = "L'utilisateur n'existe probablement pas dans gépi."; $this->class = "message_red"; $nomPrenom = $this->ligne['nom'] . " " . $this->ligne['prenom']; $this->table[] = array('login_gepi' => $nomPrenom, 'login_sso' => $this->ligne['uid'], 'couleur' => $this->class, 'message' => $this->message); } } } } // On s'assure que table a bien un enregistrement if (is_null($this->table)) { //$this->table[] = array('login_gepi' => ' ', 'login_sso' => ' ', 'couleur' => ' ', 'message' => ' '); if ($_POST["choix"] != "erreur") { $this->setVarGlobal('choix_info', 'no_data'); } if ($_POST["choix"] == "erreur") { $this->setVarGlobal('choix_info', 'no_error'); } } } //$data->supprime_table_import(); }
} unset ( $table); $result .= msj_ok("Migration terminée : Tables encodées en ".SET_DEST); } $sql="SELECT 1=1 FROM setting WHERE name='conv_html_mat_cat';"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { $tab = array_flip (get_html_translation_table(HTML_ENTITIES)); $sql="SELECT * FROM matieres_categories;"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { $result .= "<br /><p><strong>Test de la présence d'accents HTML dans les noms de catégories de matières</strong><br />\n"; $nb_corrections_html=0; while($lig=mysqli_fetch_object($res)) { $correction=ensure_utf8(strtr($lig->nom_complet, $tab)); if($lig->nom_complet!=$correction) { $nb_corrections_html++; $sql="UPDATE matieres_categories SET nom_complet='$correction' WHERE id='$lig->id';"; //echo "$sql<br />"; $update=mysqli_query($GLOBALS["mysqli"], $sql); if($update) { $result .= msj_ok("Correction de l'encodage d'un nom de catégorie de matière en '$correction'"); } else { $result .= msj_erreur("Erreur lors de la correction de l'encodage du nom de catégorie de matière '$lig->nom_complet' en '$correction'"); } } } if($nb_corrections_html==0) { $result .= "Aucune correction de nom de catégorie de matière requise.<br />";
/** Fonction destinée à supprimer les accents HTML dans des enregistrements de la table setting * * @param string $name champ name dans la table setting * * @return integer 0 Correction inutile, 1 Correction réussie, 2 Echec de la correction. */ function virer_accents_html_setting($name) { global $mysqli; $tab = array_flip(get_html_translation_table(HTML_ENTITIES)); $valeur = getSettingValue($name); $correction = ensure_utf8(strtr($valeur, $tab)); /* $f=fopen("/tmp/correction_fb.txt", "a+"); fwrite($f, "=========================================================================\n"); fwrite($f, "name=$name\n"); fwrite($f, "value=$valeur\n"); fwrite($f, "correction=$correction\n"); fclose($f); */ if ($valeur != $correction) { if (saveSetting($name, $mysqli->real_escape_string($correction))) { return 1; } else { return 2; } } else { return 0; } }
} if (isset($_POST['upload_et_import_csv'])) { check_token(); $csv_file = isset($_FILES["csv_file"]) ? $_FILES["csv_file"] : NULL; $msg = ""; $fp = fopen($csv_file['tmp_name'], "r"); if (!$fp) { $msg = "Erreur à l'ouverture du fichier.<br />"; } else { $nb_periode = $current_group['nb_periode']; $tab_nb_per_classe = array(); $nb_inscriptions_eleve = 0; $nb_inscriptions_eleve_toutes_periodes = 0; if ($_POST['ajouter_ou_remplacer'] == "ajouter") { while (!feof($fp)) { $ligne = ensure_utf8(fgets($fp, 4096)); if (trim($ligne) != "") { $tab = explode(";", trim($ligne)); if ($tab[0] != "") { $temoin_inscription = "n"; $current_eleve = $tab[0]; $sql = "SELECT DISTINCT id_classe FROM eleves e, j_eleves_classes jec WHERE jec.login=e.login AND e.login='******';"; //echo "$sql<br />\n"; $res_clas = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_clas) == 0) { $msg .= "L'élève " . $current_eleve . " n'existe pas.<br />"; } else { while ($lig_clas = mysqli_fetch_object($res_clas)) { $poursuivre = "y"; if (!in_array($lig_clas->id_classe, $current_group["classes"]["list"])) { // La classe n'est pas encore associée à ce groupe
//$classe_precedente=""; $tab_classe_parent = array(); while (!feof($fp)) { $ligne = trim(fgets($fp, 4096)); if (substr($ligne, 0, 3) == "") { $ligne = substr($ligne, 3); } if ($ligne != '') { if ($correction_separateur == "separateur_virgule") { $ligne = preg_replace("/,/", ";", $ligne); } elseif ($correction_separateur == "separateur_virgule_guillemets") { $ligne = preg_replace('/","/', ";", $ligne); $ligne = preg_replace('/^"/', "", $ligne); $ligne = preg_replace('/"$/', "", $ligne); } $tab = explode(";", ensure_utf8($ligne)); //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { // On exclut également les comptes "Désactivé" //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))&&($tab[12]=='Actif')) { if (!preg_match("/^Nom;Pr/i", trim($ligne)) && isset($tab[11]) && isset($tab[12]) && !preg_match("/^BASE20/", $tab[11]) && $tab[12] == 'Actif') { if ($_POST['toutes_les_classes'] == "y" || in_array($tab[11], $_POST['classe'])) { /* if($tab[11]!=$classe_precedente) { $cpt=0; $classe_precedente=$tab[11]; } */ if (!isset($tab_classe_parent[$tab[11]])) { $cpt = 0; } else {
//echo "<br><br>\n"; echo "<br />\n"; // Retour aux notices d'aujourd'hui: $timestamp_du_jour = mktime(0, 0, 0, date('n'), date('j'), date('Y')); if ($timestamp_du_jour != $today) { echo " <button style='background-color:" . $color_fond_notices['c'] . "' onclick=\"javascript:\n\t\t\t\t\t\t\tgetWinEditionNotice().setAjaxContent('./ajax_edition_compte_rendu.php?id_groupe='+ " . $groupe->getId() . " + '&today='+{$timestamp_du_jour},{ onComplete:function(transport) {initWysiwyg();updateCalendarWithUnixDate({$timestamp_du_jour})}});\n\t\t\t\t\t\t\tobject_en_cours_edition = 'compte_rendu';\n\t\t\t\t\t\t\">CR : Retour au " . date('d') . "/" . date('m') . "</button>\n"; } //echo "\$timestamp_du_jour=$timestamp_du_jour<br />"; //echo "\$today=$today<br />"; echo "<br />\n"; //============================================== //fin affichage des groupes // 20150415 $tempdir = get_user_temp_directory($_SESSION['login']); if (file_exists("../temp/" . $tempdir . "/cdt_selection.txt")) { $chaine_selection_archives = ensure_utf8(file_get_contents("../temp/" . $tempdir . "/cdt_selection.txt")); echo "<textarea id='textarea_selection_archives' name='textarea_selection_archives' style='display:none;'>" . base64_encode($chaine_selection_archives) . "</textarea>"; } echo "<fieldset style=\"border: 1px solid grey; padding-top: 8px; padding-bottom: 8px; margin-left: auto; margin-right: auto; background: " . $color_fond_notices[$type_couleur] . ";\">\n"; echo "<legend style=\"border: 1px solid grey; background: " . $color_fond_notices[$type_couleur] . "; font-variant: small-caps;\"> Travaux Personnels \n"; if (!$ctTravailAFaire->isNew()) { echo " - <b><font color=\"red\">Modification de la notice</font></b>\n"; echo " - \n\t\t\t<a href=\"#\" onclick=\"javascript:\n\t\t\t\tgetWinEditionNotice().setAjaxContent('ajax_edition_devoir.php?id_groupe=" . $groupe->getId() . "&today=" . $ctTravailAFaire->getDateCt() . "&ajout_nouvelle_notice=oui',\n\t\t\t\t\t{ onComplete:\n\t\t\t\t\t\tfunction(transport) {\n\t\t\t\t\t\t\tgetWinEditionNotice().updateWidth();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\treturn false;\n\t\t\t\">\n\t\t\tAjouter une notice\n\t\t\t</a> - \n"; echo " - <a href=\"#\" onclick=\"javascript:\n\t\t\t\t\$('dupplication_notice').show();\n\t\t\t\tnew Ajax.Updater(\$('dupplication_notice'), 'ajax_affichage_duplication_notice.php?id_groupe=" . $groupe->getId() . "&type=CahierTexteTravailAFaire&id_ct=" . $ctTravailAFaire->getIdCt() . "',\n\t\t\t\t\t{ onComplete:\n\t\t\t\t\t\tfunction(transport) {\n\t\t\t\t\t\t\tcalendarDuplicationInstanciation = Calendar.setup({\n\t\t\t\t\t\t\t\t\tflat : 'calendar-duplication-container', // ID of the parent element\n\t\t\t\t\t\t\t\t\tdaFormat : '%s' , \t\t\t //date format\n\t\t\t\t\t\t\t\t\tweekNumbers : false\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tcalendarDuplicationInstanciation.setDate(calendarInstanciation.date);\n\t\t\t\t\t\t\t\$('dupplication_notice').show();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\treturn false;\n\t\t\t\t\">\n\t\tDupliquer la notice</a> - \n"; } else { echo " - <b><font color=\"red\">Nouvelle notice</font></b> - \n"; } echo "<a href=\"#\" onclick=\"javascript:\n\t\t\tnew Ajax.Updater(\$('deplacement_notice'), 'ajax_affichage_deplacement_notice.php?id_groupe=" . $groupe->getId() . "&type=CahierTexteTravailAFaire&id_ct=" . $ctTravailAFaire->getIdCt() . "',\n\t\t\t\t{ onComplete:\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\$('deplacement_notice').show();\n\t\t\t\t\t\tcalendarDeplacementInstanciation = null;"; if (!isset($info)) { //on affiche le calendrier de duplication uniquement si ce n'est pas une notice d'information generale echo "calendarDeplacementInstanciation = Calendar.setup({\n\t\t\t\t\t\t\t\t\tflat : 'calendar-deplacement-container', // ID of the parent element\n\t\t\t\t\t\t\t\t\tdaFormat : '%s' , \t\t\t //date format\n\t\t\t\t\t\t\t\t\tweekNumbers : false\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tcalendarDeplacementInstanciation.setDate(calendarInstanciation.date);";
if ($data[$c] == "") { $col3 = "<font color = green>ND</font>"; $non_def = 'yes'; $data_app = ''; } else { // ===================================================== // L'export CSV généré par le fichier ODS remplace les ; par des |POINT-VIRGULE| // pour ne pas provoquer de problème avec le séparateur ; du CSV // AJOUT: boireaus //echo "<td>\$data[$c]=$data[$c]</td>"; //$data[$c]=my_ereg_replace("|POINT-VIRGULE|",";",$data[$c]); //$data[$c]=my_ereg_replace("\|POINT-VIRGULE\|",";",$data[$c]); $data[$c]=trim(str_replace("|POINT-VIRGULE|",";",$data[$c])); // ===================================================== //$col3 = $data[$c]; $col3 = ensure_utf8($data[$c]); //$data_app = urlencode($data[$c]); $data_app = urlencode($col3); } $reg_app = "reg_".$row."_app"; // echo "<INPUT TYPE=HIDDEN name='$reg_app' value = $data_app>"; echo "<td><p>$col3</p>"; if($non_def!='yes'){ echo "<input type='hidden' name='$reg_app' value=\"$data_app\" />"; } //echo "</td>\n</tr>\n"; echo "</td>\n"; break; } } //echo "<td><p>$col3</p>"</td></tr>";