function ajout_fichier($doc_file, $dest, $cpt_doc, $id_groupe) { global $max_size, $total_max_size; /* Vérification du type de fichier */ $ext = ''; //if (my_ereg("\.([^.]+)$", $doc_file['name'][$cpt_doc], $match)) { if (function_exists("mb_ereg") && mb_ereg("\\.([^.]+)\$", $doc_file['name'][$cpt_doc], $match) || function_exists("ereg") && ereg("\\.([^.]+)\$", $doc_file['name'][$cpt_doc], $match)) { $ext = corriger_caracteres(my_strtolower($match[1])); $ext = corriger_extension($ext); } $query = "SELECT id_type FROM ct_types_documents WHERE extension='{$ext}' AND upload='oui'"; $result = sql_query($query); if ($row = @sql_row($result, 0)) { $id_type = $row[0]; } else { echo "Erreur : Ce type de fichier n'est pas autorisé en téléchargement.\nSi vous trouvez cela regrettable, contactez l'administrateur.\nIl pourra modifier ce paramétrage dans\n *Gestion des modules/Cahiers de textes/Types de fichiers autorisés en téléchargement*."; die; } /* Vérification de la taille du fichier */ $max_size_ko = $max_size / 1024; $taille = $doc_file['size'][$cpt_doc]; if ($taille > $max_size) { echo "Erreur : Téléchargement impossible : taille maximale autorisée : " . $max_size_ko . " Ko"; die; } if ($taille == 0) { echo "Le fichier sélectionné semble vide : transfert impossible."; die; } $query = "SELECT DISTINCT sum(taille) somme FROM ct_documents d, ct_entry e WHERE (e.id_groupe='" . $id_groupe . "' and e.id_ct = d.id_ct)"; $total = sql_query1($query); if ($total + $taille > $total_max_size) { echo "Erreur : Téléchargement impossible : espace disque disponible (" . ($total_max_size - $total) / 1024 . " Ko) insuffisant."; die; } /* Crétion du répertoire de destination */ if (!creer_repertoire($dest)) { echo "Erreur : Problème d'écriture sur le répertoire. Veuillez signaler ce problème à l'administrateur du site"; echo $dest; die; } /* Recopier le fichier */ $nom_sans_ext = mb_substr(basename($doc_file['name'][$cpt_doc]), 0, mb_strlen(basename($doc_file['name'][$cpt_doc])) - (mb_strlen($ext) + 1)); $nom_sans_ext = my_ereg_replace("[^.a-zA-Z0-9_=-]+", "_", $nom_sans_ext); if (strstr($nom_sans_ext, "..")) { echo "Erreur : Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire. Veuillez signaler ce problème à l'administrateur du site"; die; } $n = 0; while (file_exists($newFile = $dest . "/" . $nom_sans_ext . ($n++ ? '-' . $n : '') . '.' . $ext)) { } $dest_file_path = $newFile; if (!deplacer_fichier_upload($doc_file['tmp_name'][$cpt_doc], $dest_file_path)) { echo "Erreur : Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire. Veuillez signaler ce problème à l'administrateur du site"; die; } return $dest_file_path; }
function action_poster_forum_prive_post($r) { list(,$id, $id_parent, $statut, $script, $objet) = $r; if (_request('valider_forum') AND ($statut!='')) { include_spip('inc/texte'); include_spip('inc/forum'); $titre_message = corriger_caracteres(_request('titre_message')); $texte = corriger_caracteres(_request('texte')); $id_forum = sql_insertq('spip_forum', array( $objet => $id, 'titre' => $titre_message, 'texte' => $texte, 'date_heure' => date('Y-m-d H:i:s'), 'nom_site' => _request('nom_site'), 'url_site' => _request('url_site'), 'statut' => $statut, 'id_auteur' =>$GLOBALS['visiteur_session']['id_auteur'], 'auteur' => $GLOBALS['visiteur_session']['nom'], 'email_auteur' => $GLOBALS['visiteur_session']['email'], 'id_parent' => $id_parent)); calculer_threads(); if ($objet == 'id_message') { sql_updateq("spip_auteurs_messages", array("vu" => 'non'), "id_message=$id"); } // Notification if ($notifications = charger_fonction('notifications', 'inc')) { $notifications('forumprive', $id_forum); } $retour = urldecode(_request('redirect')); $retour = parametre_url($retour, 'modif_forum', 'fin', '&'); $retour = parametre_url($retour, 'texte', $objet, '&'); # $retour = parametre_url($retour, 'script', $script, '&'); redirige_par_entete($retour ."#id".$id_forum); } else { // previsualisation : on ne fait que passer .... // et si les clients HTTP respectaient le RFC HTTP selon lequel // une redirection d'un POST doit etre en POST et pas en GET // on n'aurait pas a faire l'horreur ci-dessous. set_request('action', ''); set_request('exec', 'poster_forum_prive'); set_request('id', $id); set_request('id_parent', $id_parent); set_request('statut', $statut); set_request('script', $script); include(_DIR_RESTREINT.'index.php'); exit; } }
function url_nettoyer($titre,$longueur_maxi,$longueur_min=0,$separateur='-',$filtre=''){ if (!defined('_TRANSLITTERER_URL')) define('_TRANSLITTERER_URL', true); $titre = supprimer_tags(supprimer_numero(extraire_multi($titre))); $url = corriger_caracteres($titre); if (_TRANSLITTERER_URL) $url = translitteration($url); if ($filtre) $url = $filtre($url); // on va convertir tous les caracteres de ponctuation et espaces // a l'exception de l'underscore (_), car on veut le conserver dans l'url $url = str_replace('_', chr(7), $url); $url = @preg_replace(',[[:punct:][:space:]]+,u', ' ', $url); $url = str_replace(chr(7), '_', $url); // S'il reste trop de caracteres non latins, les gerer comme wikipedia // avec rawurlencode : if (_TRANSLITTERER_URL && preg_match_all(",[^a-zA-Z0-9 _]+,", $url, $r, PREG_SET_ORDER)) { foreach ($r as $regs) { $url = substr_replace($url, rawurlencode($regs[0]), strpos($url, $regs[0]), strlen($regs[0])); } } // S'il reste trop peu, renvoyer vide if (strlen($url) < $longueur_min) return ''; // Sinon couper les mots et les relier par des $separateur if (_TRANSLITTERER_URL) $mots = preg_split(",[^a-zA-Z0-9_%]+,", $url); else $mots = preg_split(",[\s]+,", $url); $url = ''; foreach ($mots as $mot) { if (!strlen($mot)) continue; $url2 = $url.$separateur.$mot; // Si on depasse $longueur_maxi caracteres, s'arreter // ne pas compter 3 caracteres pour %E9 mais un seul $long = preg_replace(',%.,', '', $url2); if (strlen($long) > $longueur_maxi) { break; } $url = $url2; } $url = substr($url, 1); // On enregistre en utf-8 dans la base $url = rawurldecode($url); if (strlen($url) < $longueur_min) return ''; return $url; }
function formulaires_rediriger_article_traiter_dist($id_article, $retour = '') { $url = preg_replace(",^\\s*https?://\$,i", "", rtrim(_request('redirection'))); if ($url) { $url = corriger_caracteres($url); } include_spip('action/editer_article'); articles_set($id_article, array('virtuel' => $url)); $js = _AJAX ? '<script type="text/javascript">if (window.ajaxReload) ajaxReload("wysiwyg");</script>' : ''; return array('message_ok' => ($url ? _T('info_redirection_activee') : _T('info_redirection_desactivee')) . $js, 'editable' => true); }
function spip_apres_typo($letexte) { // caracteres speciaux $letexte = corriger_caracteres($letexte); $letexte = str_replace("'", "’", $letexte); // relecture des if ($GLOBALS['flag_ecrire'] and $GLOBALS['revision_nbsp']) { $letexte = preg_replace('/ /', '<span class="spip-nbsp"> </span>', $letexte); } if (@function_exists('apres_typo')) { return apres_typo($letexte); } return $letexte; }
function action_description_outil_post($index) { global $metas_vars; if(defined('_SPIP19300')) $connect_id_auteur = $GLOBALS['auteur_session']['id_auteur']; else global $connect_id_auteur; cs_log("Debut : action_description_outil_post($index) - On modifie la(les) variable(s) dans la base"); // on recupere dans le POST le nom des variables a modifier et le nom de l'outil correspondant $variables = unserialize(urldecode(corriger_caracteres(_request('variables')))); $outil = corriger_caracteres(_request('outil')); //cs_log($variables, '$variables = '); cs_log($metas_vars, 'metas_vars :'); // besoin des outils pour l'autorisation de modifier les variables include_spip('cout_utils'); include_spip('config_outils'); global $outils, $cs_variables; // on traite chaque variable foreach($variables as $var) if(autoriser('configurer', 'variable', 0, NULL, array('nom'=>$var, 'outil'=>$outils[$outil]))) { // on recupere dans le POST la nouvelle valeur de la variable $final = corriger_caracteres(_request($var)); if (in_array($var, $metas_vars['_nombres'])) $final = intval($final); spip_log("Outil du Couteau Suisse ($outil). Demande de modification sur une variable par l'auteur id=$connect_id_auteur : %$var% = $final"); // et on modifie les metas ! if(!isset($cs_variables[$var]['externe'])) $metas_vars[$var] = $final; if(isset($cs_variables[$var]['action'])) { $action = str_replace('%s', $final, $cs_variables[$var]['action']); spip_log("Outil du Couteau Suisse ($outil). Demande d'action sur cette variable : ".$action); eval($action); } } else spip_log("Outil du Couteau Suisse n°$index. Modification interdite de la variable %$var% par l'auteur id=$connect_id_auteur !!"); //cs_log($metas_vars, " -- metas_vars = "); ecrire_meta('tweaks_variables', serialize($metas_vars)); ecrire_metas(); cs_log(" -- donc, reinitialisation forcee !"); // on reinitialise tout, au cas ou ... include_spip('inc/invalideur'); suivre_invalideur("1"); # tout effacer purger_repertoire(_DIR_SKELS); purger_repertoire(_DIR_CACHE); include_spip('cout_utils'); cs_initialisation(true); cs_log(" FIN : action_description_outil_post(Array($index)) - Reinitialisation forcee terminee."); }
function anti_inject(&$_value, $_key) { global $mysqli; if (is_array($_value)) { foreach ($_value as $key2 => $value2) { $value2 = corriger_caracteres($value2); if (get_magic_quotes_gpc()) $_value[$key2] = stripslashes($value2); if (!is_numeric($_value[$key2])) { $_value[$key2] = $mysqli->real_escape_string($_value[$key2]); } } } else { $_value = corriger_caracteres($_value); if (get_magic_quotes_gpc()) $_value = stripslashes($_value); if (!is_numeric($_value)) { $_value = $mysqli->real_escape_string($_value); } } }
#on cree ou recree ".TABLE_PREFIX."_area_periodes pour le domaine if (protect_data_sql($_POST['enable_periods']) == 'y') { if (isset($number_periodes)) { settype($number_periodes, "integer"); if ($number_periodes < 1) { $number_periodes = 1; } $del_periode = grr_sql_query("delete from " . TABLE_PREFIX . "_area_periodes where id_area='" . $id_area . "'"); #on efface le modele par defaut avec area=0 $del_periode = grr_sql_query("delete from " . TABLE_PREFIX . "_area_periodes where id_area='0'"); $i = 0; $num = 0; while ($i < $number_periodes) { $temp = "periode_" . $i; if (isset($_POST[$temp])) { $nom_periode = corriger_caracteres($_POST[$temp]); $reg_periode = grr_sql_query("insert into " . TABLE_PREFIX . "_area_periodes set\n\t\t\t\t\t\t\t\tid_area='" . $id_area . "',\n\t\t\t\t\t\t\t\tnum_periode='" . $num . "',\n\t\t\t\t\t\t\t\tnom_periode='" . protect_data_sql($nom_periode) . "'\n\t\t\t\t\t\t\t\t"); #on cree un modele par defaut avec area=0 $reg_periode = grr_sql_query("insert into " . TABLE_PREFIX . "_area_periodes set\n\t\t\t\t\t\t\t\tid_area='0',\n\t\t\t\t\t\t\t\tnum_periode='" . $num . "',\n\t\t\t\t\t\t\t\tnom_periode='" . protect_data_sql($nom_periode) . "'"); $num++; } $i++; } } } $msg = get_vocab("message_records"); } } if ($access == 'a') { $sql = "DELETE FROM " . TABLE_PREFIX . "_j_user_area WHERE id_area='{$id_area}'"; if (grr_sql_command($sql) < 0) {
die; } $id_classe = isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL); $msg = ""; if (isset($_POST['is_posted'])) { check_token(); $pb_record = "no"; $ele_login = isset($_POST["ele_login"]) ? $_POST["ele_login"] : NULL; $favorable = isset($_POST["favorable"]) ? $_POST["favorable"] : NULL; for ($i = 0; $i < count($ele_login); $i++) { // Vérifier si l'élève est bien dans la classe? // Inutile si seul l'admin accède et qu'on ne limite pas l'accès à telle ou telle classe $nom_log = "app_eleve_" . $i; //echo "\$nom_log=$nom_log<br />"; if (isset($NON_PROTECT[$nom_log])) { $app = traitement_magic_quotes(corriger_caracteres($NON_PROTECT[$nom_log])); } else { $app = ""; } $app = suppression_sauts_de_lignes_surnumeraires($app); //if((isset($fav[$i]))||(isset($b2i[$i]))||(isset($b2i[$i]))) { if (isset($favorable[$i])) { //if(($favorable[$i]=='O')||($favorable[$i]=='N')) { if ($favorable[$i] == 'O' || $favorable[$i] == 'N' || $favorable[$i] == '') { $sql = "SELECT 1=1 FROM notanet_avis WHERE login='******';"; $res_ele = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_ele) == 0) { $sql = "INSERT INTO notanet_avis SET login='******'"; $sql .= ",favorable='" . $favorable[$i] . "'"; $sql .= ",avis='" . $app . "'"; $sql .= ";";
} } } } else { /* $id_nature=$_POST['traitement']; $sql="SELECT * FROM s_types_sanctions WHERE id_nature='".$id_nature."';"; //echo "$sql<br />\n"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $lig=mysql_fetch_object($res); $type_sanction=$lig->nature; */ if (isset($NON_PROTECT["description"])){ $description=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["description"])); // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. $description=suppression_sauts_de_lignes_surnumeraires($description); } else { $description=""; } if(isset($id_sanction)) { // Modification??? $sql="SELECT 1=1 FROM s_sanctions WHERE id_sanction='$id_sanction';"; //echo "$sql<br />\n"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { $msg.="La ".$mod_disc_terme_sanction." n°$id_sanction n'existe pas dans 's_sanctions'.<br />Elle ne peut pas être mise à jour.<br />"; }
if (isset($current_group["eleves"][$periode_num]["users"][$reg_eleve_login]["classe"])) { $id_classe = $current_group["eleves"][$periode_num]["users"][$reg_eleve_login]["classe"]; //if ($current_group["classe"]["ver_periode"][$id_classe][$periode_num] == "N") { $note = $note_eleve[$i]; $elev_statut = ''; //============================== // PREPARATIFS boireaus 20080422 // Pour passer à no_anti_inject comme pour les autres saisies d'appréciations if ($mode_commentaire_20080422 != "no_anti_inject") { // Problème: les accents sont codés en HTML... $comment = $comment_eleve[$i]; // Cela fonctionne chez moi avec cette correction (accents, apostrophes et retours à la ligne): $comment = addslashes(my_ereg_replace('(\\\\r\\\\n)+', "\r\n", my_ereg_replace("'", "'", html_entity_decode($comment)))); } else { if (isset($NON_PROTECT["comment_eleve" . $i])) { $comment = traitement_magic_quotes(corriger_caracteres($NON_PROTECT["comment_eleve" . $i])); } else { $comment = ""; } //echo "$i: $comment<br />"; // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. $comment = my_ereg_replace('(\\\\r\\\\n)+', "\r\n", $comment); } //============================== //echo "$reg_eleve_login : $note <br />"; if ($note == 'disp' || $note == 'd') { $note = '0'; $elev_statut = 'disp'; } elseif ($note == 'abs' || $note == 'a') { $note = '0'; $elev_statut = 'abs';
echo "<tr><td><p class=\"small\">Identifiant de la matière</p></td><td><p class=\"small\">Nom complet</p></td></tr>"; //========================= $fp = fopen($dbf_file['tmp_name'], "r"); // On lit une ligne pour passer la ligne d'entête: $ligne = fgets($fp, 4096); //========================= $nb_reg_no = 0; for ($k = 1; $k < $nblignes + 1; $k++) { //$ligne = dbase_get_record($fp,$k); if (!feof($fp)) { $ligne = fgets($fp, 4096); if (trim($ligne) != "") { $tabligne = explode(";", $ligne); for ($i = 0; $i < count($tabchamps); $i++) { //$affiche[$i] = traitement_magic_quotes(corriger_caracteres(dbase_filter(trim($ligne[$tabindice[$i]])))); $affiche[$i] = traitement_magic_quotes(corriger_caracteres(dbase_filter(trim($tabligne[$tabindice[$i]])))); } $verif = mysqli_query($GLOBALS["mysqli"], "select matiere, nom_complet from matieres where matiere='{$affiche['0']}'"); $resverif = mysqli_num_rows($verif); if ($resverif == 0) { $req = mysqli_query($GLOBALS["mysqli"], "insert into matieres set matiere='{$affiche['0']}', nom_complet='{$affiche['1']}', priority='0',matiere_aid='n',matiere_atelier='n'"); if (!$req) { $nb_reg_no++; echo mysqli_error($GLOBALS["mysqli"]); } else { echo "<tr><td><p><font color='red'>{$affiche['0']}</font></p></td><td><p>" . htmlspecialchars($affiche[1]) . "</p></td></tr>"; } } else { $nom_complet = old_mysql_result($verif, 0, 'nom_complet'); echo "<tr><td><p><font color='green'>{$affiche['0']}</font></p></td><td><p>" . htmlspecialchars($nom_complet) . "</p></td></tr>"; }
} } else { tentative_intrusion(2, "Tentative de saisie d'avis du conseil de classe pour ".$eleve_saisie_avis."."); $mess=rawurlencode("Tentative non autorisée de saisie d'avis du conseil de classe."); header("Location: ../accueil.php?msg=$mess"); die(); } $sql="SELECT verouiller FROM periodes WHERE id_classe='$id_classe' AND num_periode='$num_periode_saisie';"; //echo "$sql<br />"; $test_verr_per=mysqli_query($GLOBALS["mysqli"], $sql); $lig_verr_per=mysqli_fetch_object($test_verr_per); if($lig_verr_per->verouiller!='O') { $current_eleve_login_ap = isset($NON_PROTECT["current_eleve_login_ap"]) ? traitement_magic_quotes(corriger_caracteres($NON_PROTECT["current_eleve_login_ap"])) :NULL; // ***** AJOUT POUR LES MENTIONS ***** $current_eleve_login_me = isset($_POST["current_eleve_login_me"]) ? $_POST["current_eleve_login_me"] : NULL; // ***** FIN DE L'AJOUT POUR LES MENTIONS ***** //echo "\$current_eleve_login_ap=$current_eleve_login_ap<br />"; $test_eleve_avis_query = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM avis_conseil_classe WHERE (login='******' AND periode='$num_periode_saisie')"); $test = mysqli_num_rows($test_eleve_avis_query); if ($test != "0") { $sql="UPDATE avis_conseil_classe SET avis='$current_eleve_login_ap',"; if(isset($current_eleve_login_me)) {$sql.="id_mention='$current_eleve_login_me',";} $sql.="statut='' WHERE (login='******' AND periode='$num_periode_saisie');"; $register = mysqli_query($GLOBALS["mysqli"], $sql); }
/** * Ajouter les champs extras soumis par les formulaire CVT editer_xx * * Pour chaque champs extras envoyé par le formulaire d'édition, * ajoute les valeurs dans l'enregistrement à effectuer. * * @pipeline pre_edition * @param array $flux Données du pipeline * @return array Données du pipeline **/ function cextras_pre_edition($flux) { include_spip('inc/cextras'); include_spip('inc/saisies_lister'); $table = $flux['args']['table']; if ($saisies = champs_extras_objet($table)) { // Restreindre les champs postés en fonction des autorisations de les modifier // au cas où un malin voudrait en envoyer plus que le formulaire ne demande $saisies = champs_extras_autorisation('modifier', objet_type($table), $saisies, $flux['args']); $saisies = champs_extras_saisies_lister_avec_sql($saisies); foreach ($saisies as $saisie) { $nom = $saisie['options']['nom']; if (_request('cextra_' . $nom)) { $extra = _request($nom); if (is_array($extra)) { $extra = join(',', $extra); } $flux['data'][$nom] = corriger_caracteres($extra); } } } return $flux; }
/** * http://code.spip.net/@corriger_typo * * @param string $t * @param string $lang * @return string */ function corriger_typo($t, $lang = '') { static $typographie = array(); // Plus vite ! if (!$t) { return $t; } $t = pipeline('pre_typo', $t); // Caracteres de controle "illegaux" $t = corriger_caracteres($t); // Proteger les caracteres typographiques a l'interieur des tags html if (preg_match_all(_TYPO_BALISE, $t, $regs, PREG_SET_ORDER)) { foreach ($regs as $reg) { $insert = $reg[0]; // hack: on transforme les caracteres a proteger en les remplacant // par des caracteres "illegaux". (cf corriger_caracteres()) $insert = strtr($insert, _TYPO_PROTEGER, _TYPO_PROTECTEUR); $t = str_replace($reg[0], $insert, $t); } } // trouver les blocs multi et les traiter a part $t = extraire_multi($e = $t, $lang, true); $e = $e === $t; // Charger & appliquer les fonctions de typographie $idxl = "{$lang}:" . (isset($GLOBALS['lang_objet']) ? $GLOBALS['lang_objet'] : $GLOBALS['spip_lang']); if (!isset($typographie[$idxl])) { $typographie[$idxl] = charger_fonction(lang_typo($lang), 'typographie'); } $t = $typographie[$idxl]($t); // Les citations en une autre langue, s'il y a lieu if (!$e) { $t = echappe_retour($t, 'multi'); } // Retablir les caracteres proteges $t = strtr($t, _TYPO_PROTECTEUR, _TYPO_PROTEGER); // pipeline $t = pipeline('post_typo', $t); # un message pour abs_url - on est passe en mode texte $GLOBALS['mode_abs_url'] = 'texte'; return $t; }
$reg_nom = isset($_POST["reg_nom"]) ? $_POST["reg_nom"] : NULL; $reg_prenom = isset($_POST["reg_prenom"]) ? $_POST["reg_prenom"] : NULL; $reg_email = isset($_POST["reg_email"]) ? $_POST["reg_email"] : NULL; $reg_mdp = isset($_POST["reg_mdp"]) ? $_POST["reg_mdp"] : NULL; $reg_type_user = isset($_POST["reg_type_user"]) ? $_POST["reg_type_user"] : NULL; $reg_statut = isset($_POST["reg_statut"]) ? $_POST["reg_statut"] : NULL; $reg_type_auth = isset($_POST["reg_type_auth"]) ? $_POST["reg_type_auth"] : NULL; $nb_row++; for ($row = 1; $row < $nb_row; $row++) { if ($reg_type_auth[$row] != "ext") { $reg_mdp[$row] = md5(unslashes($reg_mdp[$row])); } // On nettoie les windozeries $reg_nom[$row] = protect_data_sql(corriger_caracteres($reg_nom[$row])); $reg_prenom[$row] = protect_data_sql(corriger_caracteres($reg_prenom[$row])); $reg_email[$row] = protect_data_sql(corriger_caracteres($reg_email[$row])); $test_login = grr_sql_count(grr_sql_query("SELECT login FROM " . TABLE_PREFIX . "_utilisateurs WHERE login='******'")); if ($test_login == 0) { $regdata = grr_sql_query("INSERT INTO " . TABLE_PREFIX . "_utilisateurs SET nom='" . $reg_nom[$row] . "',prenom='" . $reg_prenom[$row] . "',login='******',email='" . $reg_email[$row] . "',password='******',statut='" . $reg_type_user[$row] . "',etat='" . $reg_statut[$row] . "',source='" . $reg_type_auth[$row] . "'"); } else { $regdata = grr_sql_query("UPDATE " . TABLE_PREFIX . "_utilisateurs SET nom='" . $reg_nom[$row] . "',prenom='" . $reg_prenom[$row] . "',email='" . $reg_email[$row] . "',password='******',statut='" . $reg_type_user[$row] . "',etat='" . $reg_statut[$row] . "',source='" . $reg_type_auth[$row] . "' WHERE login='******'"); } if (!$regdata) { echo "<p><font color=\"red\">" . $reg_login[$row] . get_vocab("deux_points") . get_vocab("message_records_error") . "</font></p>"; } else { if ($reg_stat[$row] == "nouveau") { echo "<p>" . $reg_login[$row] . get_vocab("deux_points") . get_vocab("admin_import_users_csv12") . "</p>"; } else { echo "<p>" . $reg_login[$row] . get_vocab("deux_points") . get_vocab("message_records") . "</p>"; } }
function action_virtualiser_post($r, $url) { $url = preg_replace(",^ *https?://$,i", "", rtrim($url)); if ($url) $url = corriger_caracteres("=$url"); sql_updateq('spip_articles', array('chapo'=> $url, 'date_modif' => date('Y-m-d H:i:s')), "id_article=" . $r[1]); }
$ele_id=$_POST['modif_'.$cpt.'_ele_id']; $ele_nom=traitement_magic_quotes(corriger_caracteres($_POST['modif_'.$cpt.'_ele_nom'])); $ele_prenom=traitement_magic_quotes(corriger_caracteres($_POST['modif_'.$cpt.'_ele_prenom'])); $resp_legal=$_POST['modif_'.$cpt.'_resp_legal']; $pers_contact=$_POST['modif_'.$cpt.'_pers_contact']; */ $pers_id=isset($_POST['new_'.$cpt.'_pers_id']) ? $_POST['new_'.$cpt.'_pers_id'] : NULL; $resp_nom=isset($_POST['new_'.$cpt.'_resp_nom']) ? traitement_magic_quotes(corriger_caracteres($_POST['new_'.$cpt.'_resp_nom'])) : NULL; $resp_prenom=isset($_POST['new_'.$cpt.'_resp_prenom']) ? traitement_magic_quotes(corriger_caracteres($_POST['new_'.$cpt.'_resp_prenom'])) : NULL; $ele_id=isset($_POST['new_'.$cpt.'_ele_id']) ? $_POST['new_'.$cpt.'_ele_id'] : NULL; $ele_nom=isset($_POST['new_'.$cpt.'_ele_nom']) ? traitement_magic_quotes(corriger_caracteres($_POST['new_'.$cpt.'_ele_nom'])) : NULL; $ele_prenom=isset($_POST['new_'.$cpt.'_ele_prenom']) ? traitement_magic_quotes(corriger_caracteres($_POST['new_'.$cpt.'_ele_prenom'])) : NULL; $resp_legal=isset($_POST['new_'.$cpt.'_resp_legal']) ? $_POST['new_'.$cpt.'_resp_legal'] : NULL; $pers_contact=isset($_POST['new_'.$cpt.'_pers_contact']) ? $_POST['new_'.$cpt.'_pers_contact'] : NULL; if((isset($pers_id))&&(isset($resp_nom))&&(isset($resp_prenom))&&(isset($ele_id))&&(isset($ele_nom))&&(isset($ele_prenom))&&(isset($resp_legal))&&(isset($pers_contact))){ if($i>0){echo ", ";} //echo "$pers_id - $nom - $prenom<br />\n"; //echo "$resp_prenom $resp_nom ($pers_id) / $ele_prenom $ele_nom ($ele_id)\n"; echo stripslashes("$resp_prenom $resp_nom")." ($pers_id) / ".stripslashes("$ele_prenom $ele_nom")." ($ele_id)\n"; // On supprime l'inscription précédente si elle existe: $sql="SELECT pers_id FROM responsables2 WHERE (pers_id='$pers_id' AND ele_id='$ele_id')"; //echo "$sql<br />\n"; $res1=mysqli_query($GLOBALS["mysqli"], $sql);
$sql = "SELECT ID_TEMPO,ELENOM,ELEPRE,ELENOET,ELE_ID,ELESEXE,ELEDATNAIS,ELEDOUBL,ELENONAT,ELEREG,DIVCOD,ETOCOD_EP FROM temp_gep_import2 ORDER BY DIVCOD,ELENOM,ELEPRE"; $call_data = mysqli_query($GLOBALS["mysqli"], $sql) OR DIE('Erreur dans la requête '.$sql.' '.mysqli_error($GLOBALS["mysqli"])); $nb = mysqli_num_rows($call_data); $i = "0"; $j = 0; while ($i < $nb) { $req = mysqli_query($GLOBALS["mysqli"], "select col1, col2 from tempo2 where col1 = '$i'"); $reg_login = @old_mysql_result($req, 0, 'col2'); $inc = @old_mysql_result($req, 0, 'col1'); $id_tempo = @old_mysql_result($call_data, $i, "ID_TEMPO"); $no_gep = @old_mysql_result($call_data, $i, "ELENONAT"); $reg_nom = traitement_magic_quotes(corriger_caracteres(@old_mysql_result($call_data, $i, "ELENOM"))); $reg_prenom = @old_mysql_result($call_data, $i, "ELEPRE"); $reg_elenoet = @old_mysql_result($call_data, $i, "ELENOET"); //$reg_ereno = @old_mysql_result($call_data, $i, "ERENO"); $reg_ele_id = @old_mysql_result($call_data, $i, "ELE_ID"); $reg_sexe = @old_mysql_result($call_data, $i, "ELESEXE"); $reg_naissance = @old_mysql_result($call_data, $i, "ELEDATNAIS"); $reg_doublant = @old_mysql_result($call_data, $i, "ELEDOUBL"); // si le login comporte le motif 'erreur', alors on affiche if (strpos($reg_login, "erreur") === false) { // On ne fait rien }else{ // On vérifie quand même si il n'y a pas un nom qui correspond à celui-ci dans ldap_bx $sql_r = "SELECT login_u, nom_u, prenom_u FROM ldap_bx WHERE nom_u = '".$reg_nom."' AND prenom_u = '".$reg_prenom."' AND statut_u = 'student'"; $query_r = mysqli_query($GLOBALS["mysqli"], $sql_r);
function exec_spiplistes_liste_gerer () { include_spip('inc/autoriser'); include_spip('inc/mots'); include_spip('inc/lang'); include_spip('inc/editer_auteurs'); include_spip('base/spiplistes_tables'); include_spip('inc/spiplistes_api'); include_spip('inc/spiplistes_api_presentation'); include_spip('inc/spiplistes_dater_envoi'); include_spip('inc/spiplistes_naviguer_paniers'); include_spip('inc/spiplistes_listes_selectionner_auteur'); global $meta , $connect_statut , $connect_toutes_rubriques , $connect_id_auteur , $spip_lang_left , $spip_lang_right , $couleur_claire ; // initialise les variables postees par le formulaire foreach(array( 'new' // nouvelle liste si 'oui' , 'id_liste'// si modif dans l'editeur , 'btn_liste_edit', 'titre', 'texte', 'pied_page' // renvoyes par l'editeur , 'btn_modifier_diffusion', 'changer_lang', 'statut' // local , 'btn_modifier_replyto', 'email_envoi' // local , 'btn_modifier_courrier_auto', 'message_auto' // local , 'auto_chrono', 'auto_weekly', 'auto_mois' , 'titre_message', 'patron', 'periode', 'envoyer_maintenant' , 'jour', 'mois', 'annee', 'heure', 'minute' , 'btn_patron_pied', 'btn_grand_patron' // boites gauches , 'btn_valider_forcer_abos', 'forcer_abo', 'forcer_format_abo', 'forcer_format_reception' , 'btn_supprimer_liste' //local ) as $key) { $$key = _request($key); } foreach(array('id_liste', 'periode') as $key) { $$key = intval($$key); } foreach(array('titre', 'texte', 'pied_page') as $key) { $$key = trim(corriger_caracteres($$key)); } $lang = $changer_lang; $cherche_auteur = _request('cherche_auteur'); $debut = _request('debut'); $envoyer_maintenant = ($envoyer_maintenant == 'oui'); $boite_pour_confirmer_envoi_maintenant = $grosse_boite_moderateurs = $message_erreur = $page_result = ""; if(!$id_liste) { ////////////////////////////////////////////////////// // Creer une liste //// // admin lambda peut creer une liste $flag_editable = ($connect_statut == "0minirezo"); if ($btn_liste_edit && ($new=='oui')) { if ($titre == '') { $titre = _T('spiplistes:liste_sans_titre'); } $pied_page = _SPIPLISTES_PATRON_PIED_DEFAUT; if($id_liste = spiplistes_listes_liste_creer(_SPIPLISTES_LIST_PRIVATE, $GLOBALS['spip_lang'] , $titre, $texte, $pied_page)) { spiplistes_log("id_liste #$id_liste added by id_auteur #$connect_id_auteur"); } } } else if($id_liste > 0) { ////////////////////////////////////////////////////// // Modifier une liste //// // les admins toutes rubriques et le moderateur seuls peuvent modifier la liste $flag_editable = autoriser('moderer', 'liste', $id_liste); if($flag_editable) { // Recupere les donnees de la liste courante pour optimiser l'update $sql_select = "statut,titre,date,lang"; $sql_result = sql_select($sql_select, "spip_listes", "id_liste=".sql_quote($id_liste), "", "", "1"); if($row = sql_fetch($sql_result)) { foreach(explode(",", $sql_select) as $key) { $current_liste[$key] = $row[$key]; } } /////////////////////////////////// // Les modifications (sql_upadteq) // A noter, ne pas preparer les valeurs par sql_quote() // sql_upadteq() s'en occupe $sql_champs = array(); // Retour de l'editeur ? if($btn_liste_edit) { $titre = corriger_caracteres($titre); $texte = corriger_caracteres($texte); if(empty($titre)) { $titre = filtrer_entites(_T('spiplistes:Nouvelle_liste_de_diffusion')); } $sql_champs['titre'] = $titre; $sql_champs['texte'] = $texte; } // Modifier le grand patron ? // a partir de 2.0049, le patron de pied est construit par la meleuse // afin de permettre _texte et multilingue if($btn_grand_patron && $patron) { $sql_champs['patron'] = $patron; } // Modifier patron de pied ? if($btn_patron_pied && $patron) { $sql_champs['pied_page'] = $patron; } // Modifier diffusion ? if($btn_modifier_diffusion) { $current_statut = ($statut) ? $statut : $current_liste['statut'] ; spiplistes_debug_log ('Modification diffusion statut: '.$current_statut); // Modifier le statut ? if(in_array($statut, explode(";", _SPIPLISTES_LISTES_STATUTS_TOUS)) && ($statut != $current_liste['statut']) ) { spiplistes_debug_log ('Modification statut: '.$statut); $sql_champs['statut'] = $statut; // si la liste passe en privee, retire les invites if($statut == _SPIPLISTES_LIST_PRIVATE) { $auteur_statut = '6forum'; spiplistes_abonnements_auteurs_supprimer($auteur_statut); spiplistes_log("AUTEURS ($auteur_statut) REMOVED FROM LISTE #$id_liste ($statut) BY ID_AUTEUR #$connect_id_auteur"); } } // Modifier la langue ? if(!empty($lang) && ($lang!=$current_liste['lang'])) { $sql_champs['lang'] = $lang; } } // Modifier l'adresse email de reponse ? if($btn_modifier_replyto && email_valide($email_envoi) && ($email_envoi!=$current_liste['email_envoi'])) { $sql_champs['email_envoi'] = $email_envoi; } //////////////////////////////////// // Modifier message_auto ? // bloc "courriers automatiques" if($btn_modifier_courrier_auto) { $current_statut = ($statut) ? $statut : $current_liste['statut'] ; spiplistes_debug_log ('Modification periodicite statut: '.$current_statut); $envoyer_quand = spiplistes_formate_date_form($annee, $mois, $jour, $heure, $minute); if(time() > strtotime($envoyer_quand)) { // envoi dans le passe est considere comme envoyer maintenant $envoyer_maintenant = true; $date_depuis = $envoyer_quand; $envoyer_quand = false; } // spiplistes_debug_log("nb vrais abos : ".spiplistes_listes_vrais_abos_compter($id_liste)); if($envoyer_maintenant && ($message_auto != 'non')) { if(!spiplistes_listes_vrais_abos_compter($id_liste)) { $boite_pour_confirmer_envoi_maintenant .= spiplistes_boite_alerte(_T('spiplistes:boite_alerte_manque_vrais_abos'), true); } else { $boite_pour_confirmer_envoi_maintenant = "" . debut_cadre_couleur('', true) // formulaire de confirmation envoi . spiplistes_form_debut(generer_url_ecrire(_SPIPLISTES_EXEC_LISTES_LISTE), true) . "<p style='text-align:center;font-weight:bold;' class='verdana2'>" . _T('spiplistes:boite_confirmez_envoi_liste') . "</p>" . "<input type='hidden' name='id_liste' value='$id_liste' />\n" . spiplistes_form_bouton_valider('btn_confirmer_envoi_maintenant') . spiplistes_form_fin(true) . fin_cadre_couleur(true) ; } $date_prevue = normaliser_date(time()); } if($message_auto == 'oui') { $sql_champs['message_auto'] = 'oui'; $sql_champs['titre_message'] = $titre_message; $sql_champs['date'] = (!$envoyer_maintenant) ? $envoyer_quand : ''; switch($auto_chrono) { case 'auto_jour': $sql_champs['statut'] = ($current_statut == _SPIPLISTES_LIST_PRIVATE) ? _SPIPLISTES_LIST_PRIV_DAILY : _SPIPLISTES_LIST_PUB_DAILY ; // force au minimum 1 jour $sql_champs['periode'] = (($periode > 0) ? $periode : 1); break; case 'auto_hebdo': if($auto_weekly == 'oui') { // debut de semaine ? $sql_champs['statut'] = ($current_statut == _SPIPLISTES_LIST_PRIVATE) ? _SPIPLISTES_LIST_PRIV_WEEKLY : _SPIPLISTES_LIST_PUB_WEEKLY ; // corrige la date pour le lundi de la semaine $time = strtotime($envoyer_quand); $time = mktime(0,0,0,date("m", $time),date("d", $time)-date("w", $time)+1,date("Y", $time)); $envoyer_quand = date("Y-m-d H:i:s", $time); $sql_champs['date'] = $envoyer_quand; } else { $sql_champs['statut'] = ($current_statut == _SPIPLISTES_LIST_PRIVATE) ? _SPIPLISTES_LIST_PRIV_HEBDO : _SPIPLISTES_LIST_PUB_HEBDO ; } $sql_champs['periode'] = 0; break; case 'auto_mensuel': if($auto_mois == 'oui') { // debut du mois ? $sql_champs['statut'] = ($current_statut == _SPIPLISTES_LIST_PRIVATE) ? _SPIPLISTES_LIST_PRIV_MONTHLY : _SPIPLISTES_LIST_PUB_MONTHLY ; // corrige la date, 1' du mois $envoyer_quand = substr($envoyer_quand, 0, 8)."01 00:00:00"; $sql_champs['date'] = $envoyer_quand; } else { $sql_champs['statut'] = ($current_statut == _SPIPLISTES_LIST_PRIVATE) ? _SPIPLISTES_LIST_PRIV_MENSUEL : _SPIPLISTES_LIST_PUB_MENSUEL ; } $sql_champs['periode'] = 0; break; case 'auto_an': $sql_champs['statut'] = ($current_statut == _SPIPLISTES_LIST_PRIVATE) ? _SPIPLISTES_LIST_PRIV_YEARLY : _SPIPLISTES_LIST_PUB_YEARLY ; $sql_champs['periode'] = 0; break; } } else if($message_auto == 'non') { $sql_champs['message_auto'] = 'non'; $sql_champs['date'] = ''; $sql_champs['periode'] = 0; } } // end if($btn_modifier_courrier_auto) // Enregistre les modifs pour cette liste if(count($sql_champs)) { sql_updateq('spip_listes', $sql_champs, 'id_liste='.sql_quote($id_liste).' LIMIT 1'); } // Forcer les abonnements if($btn_valider_forcer_abos && $forcer_abo && in_array($forcer_abo, array('tous', 'auteurs', '6forum', 'aucun'))) { $forcer_format_reception = (($forcer_format_abo == 'oui') && in_array($forcer_format_reception, spiplistes_formats_autorises())) ? $forcer_format_reception : false ; include_spip('inc/spiplistes_listes_forcer_abonnement'); if(spiplistes_listes_forcer_abonnement ($id_liste, $forcer_abo, $forcer_format_reception) === false) { $message_erreur .= spiplistes_boite_alerte(_T('spiplistes:Forcer_abonnement_erreur'), true); } } } // end if($flag_editable) } ////////////////////////////////////////////////////// // Recharge les donnees la liste $sql_select_array = array('id_liste', 'titre', 'texte' , 'titre_message', 'pied_page', 'date', 'statut', 'maj' , 'email_envoi', 'message_auto', 'periode', 'patron', 'lang'); if($row = spiplistes_listes_liste_fetsel($id_liste, $sql_select_array)) { foreach($sql_select_array as $key) { // initialise les variables du resultat SQL $$key = $row[$key]; } } // les supers-admins et le moderateur seuls peuvent modifier la liste $flag_editable = autoriser('moderer', 'liste', $id_liste); if (empty($titre_message)) { $titre_message = $titre; if (spiplistes_pref_lire_defaut('opt_completer_titre_nom_site', 'oui') == 'oui') { $titre_message .= _T('spiplistes:_de_') . spiplistes_nom_site_texte($lang); } } $nb_abonnes = spiplistes_listes_nb_abonnes_compter($id_liste); // preparation des boutons if($flag_editable) { // Propose de modifier la liste $gros_bouton_modifier = icone ( _T('spiplistes:Modifier_cette_liste') // legende bouton , generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_EDIT,'id_liste='.$id_liste) // lien , _DIR_PLUGIN_SPIPLISTES_IMG_PACK."reply-to-all-24.gif" // image du fond , "edit.gif" // image de la fonction. Ici, le crayon , '' // alignement , false // pas echo, demande retour ) ; // Propose de supprimer la liste $gros_bouton_supprimer = icone ( _T('spiplistes:Supprimer_cette_liste') , generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER, "btn_supprimer_liste=$id_liste&id_liste=$id_liste") , _DIR_PLUGIN_SPIPLISTES_IMG_PACK.'poubelle_msg.gif' , "" , "right" , false ) ; // la grosse boite des abonnes $tri = _request('tri') ? _request('tri') : 'nom'; // // CP-20101017: Si trop d'elligibles, ca gele. // @todo: revoir la boite/liste des abonnes/elligibles // En attendant ... //if(spiplistes_auteurs_elligibles_compter() < 1000) //{ $boite_liste_abonnes = spiplistes_listes_boite_abonnements( $id_liste, $statut, $tri, $debut, _SPIPLISTES_EXEC_LISTE_GERER ); //} //else //{ // $boite_liste_abonnes = _T('spiplistes:code_en_travaux'); //} // @see http://www.spip-contrib.net/SPIP-Listes#comment444314 $titre_boite = _T('spiplistes:abos_cette_liste'); $legend = '<small id="legend-abos1">' . spiplistes_nb_abonnes_liste_str_get($id_liste) . '</small>'.PHP_EOL ; $grosse_boite_abonnements = '' . '<!-- boite abonnes/elligibles -->'.PHP_EOL . debut_cadre_enfonce('auteur-24.gif', true, '', $titre_boite) . spiplistes_bouton_block_depliable($legend , false, md5('abonnes_liste')) . (spiplistes_spip_est_inferieur_193() ? $legend : '') . spiplistes_debut_block_invisible(md5('abonnes_liste')) . debut_cadre_relief('', true) . $boite_liste_abonnes . fin_cadre_relief(true) . fin_block() . fin_cadre_enfonce(true) . '<!-- fin boite abonnes/elligibles -->'.PHP_EOL ; // la grosse boite des moderateurs $boite_liste_moderateurs = spiplistes_listes_boite_moderateurs( $id_liste, _SPIPLISTES_EXEC_LISTE_GERER, 'mods-conteneur' ); $titre_boite = _T('spiplistes:mods_cette_liste'); $nb = spiplistes_mod_listes_compter($id_liste); $legend = '<small>' . spiplistes_nb_moderateurs_liste_str_get($nb) . '</small>'.PHP_EOL ; $grosse_boite_moderateurs = '' . '<!-- boite moderateurs -->'.PHP_EOL . debut_cadre_enfonce('redacteurs-24.gif', true, '', $titre_boite) . spiplistes_bouton_block_depliable($legend , false, md5('mods_liste')) . (spiplistes_spip_est_inferieur_193() ? $legend : '') . spiplistes_debut_block_invisible(md5('mods_liste')) . debut_cadre_relief('', true) . '<div id="mods-conteneur">'.PHP_EOL . $boite_liste_moderateurs . '</div>'.PHP_EOL . fin_cadre_relief(true) . fin_block() . fin_cadre_enfonce(true) . '<!-- fin boite moderateurs -->'.PHP_EOL ; } else { $gros_bouton_modifier = $gros_bouton_supprimer = $grosse_boite_abonnements = ''; } //////////////////////////////////// // PAGE CONTENU //////////////////////////////////// $titre_page = _T('spiplistes:gestion_dune_liste'); // Permet entre autres d'ajouter les classes a la page : <body class='$rubrique $sous_rubrique'> $rubrique = _SPIPLISTES_PREFIX; $sous_rubrique = 'liste_gerer'; $commencer_page = charger_fonction('commencer_page', 'inc'); echo($commencer_page(_T('spiplistes:spiplistes') . ' - ' . $titre_page, $rubrique, $sous_rubrique)); // la gestion des listes de courriers est reservee aux admins if($connect_statut != '0minirezo') { die (spiplistes_terminer_page_non_autorisee() . fin_page()); } $page_result .= '' . '<br /><br /><br />' . PHP_EOL . spiplistes_gros_titre($titre_page, '', true) . barre_onglets($rubrique, $sous_rubrique) . debut_gauche($rubrique, true) . spiplistes_boite_info_id(_T('spiplistes:liste_numero'), $id_liste, true) . spiplistes_naviguer_paniers_listes(_T('spiplistes:aller_aux_listes_'), true) . spiplistes_boite_patron($flag_editable, $id_liste, _SPIPLISTES_EXEC_LISTE_GERER, 'btn_grand_patron' , _SPIPLISTES_PATRONS_DIR, _T('spiplistes:Patron_grand_') , ($patron ? $patron : '') , $patron) . spiplistes_boite_patron($flag_editable, $id_liste, _SPIPLISTES_EXEC_LISTE_GERER, 'btn_patron_pied' , _SPIPLISTES_PATRONS_PIED_DIR, _T('spiplistes:Patron_de_pied_') , ((($ii = strlen($pied_page)) > _SPIPLISTES_PATRON_FILENAMEMAX) ? _T('taille_octets',array('taille'=>$ii)) . _T('spiplistes:conseil_regenerer_pied') : $pied_page) , $pied_page) . pipeline('affiche_gauche', array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) //. creer_colonne_droite($rubrique, true) // spiplistes_boite_raccourcis() s'en occupe . spiplistes_boite_raccourcis(true) . spiplistes_boite_autocron() . pipeline('affiche_droite', array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) . debut_droite($rubrique, true) . $message_erreur ; changer_typo('','liste'.$id_liste); // message alerte et demande de confirmation si supprimer liste if(($btn_supprimer_liste > 0) && ($btn_supprimer_liste == $id_liste)) { $page_result .= '' . spiplistes_boite_alerte (_T('spiplistes:Attention_suppression_liste').'<br />'._T('spiplistes:Confirmez_requete'), true) . '<form name="form_suppr_liste" id="form_suppr_liste" method="post" action="'.generer_url_ecrire(_SPIPLISTES_EXEC_LISTES_LISTE, '').'">' . PHP_EOL . "<div class='verdana2' style='text-align:right;'>\n" . "<input type='hidden' name='id_liste' value='$id_liste' />\n" . "<label>"._T('spiplistes:Confirmer_la_suppression_de_la_liste')."# $id_liste : \n" . "<input class='fondo' type='submit' name='btn_supprimer_liste_confirme' value='"._T('bouton_valider')."' /></label>\n" . "</div>\n" . "</form>\n" . "<br />\n" ; } $page_result .= "" . debut_cadre_relief("", true) . "\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>\n" . "<tr><td valign='top'>\n" . spiplistes_gros_titre(spiplistes_bullet_titre_liste('puce', $statut, '', true)." " . spiplistes_calculer_balise_titre(extraire_multi($titre)) , '', true) . "</td>" . "<td rowspan='2'>" // le gros bouton modifier si besoin . $gros_bouton_modifier . "</td></tr>\n" . "<tr><td width='100%'>\n" . "<div align='$spip_lang_left' style='padding: 5px; border: 1px dashed #aaa; ' class='verdana1 spip_small'>\n" . propre($texte."~") . "</div>\n" . "</td>\n" . "</tr></table>\n" ; ////////////////////////////////////////////////////// // Modifier le statut de la liste //$email_defaut = entites_html($meta['email_webmaster']); $email_defaut = ($m = email_valide($GLOBALS['meta']['email_defaut'])) ? $m : $GLOBALS['meta']['email_webmaster'] ; $email_envoi = ($m = email_valide($email_envoi)) ? $email_envoi : $email_defaut ; $page_result .= "" //. debut_cadre_relief("racine-site-24.gif", true) . debut_cadre_relief("racine-site-24.gif", true, '', _T('spiplistes:Diffusion').spiplistes_plugin_aide(_SPIPLISTES_EXEC_AIDE, "diffusion")) // //////////////////////////// // Formulaire diffusion . ( ($flag_editable) ? '' . spiplistes_form_debut(generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER,'id_liste='.$id_liste), true) . '<input type="hidden" name="exec" value="listes" />' . PHP_EOL . '<input type="hidden" name="id_liste" value="'.$id_liste.'" />' . PHP_EOL : '' ) . '<span class="verdana2">' . _T('spiplistes:cette_liste_est_' , array('s' => spiplistes_bullet_titre_liste ('puce', $statut, 'img_statut', true))) . '</span>' . PHP_EOL ; $sel_private = ' value="' . _SPIPLISTES_LIST_PRIVATE . '" ' . ( in_array ($statut, array( _SPIPLISTES_LIST_PRIVATE , _SPIPLISTES_LIST_PRIV_DAILY , _SPIPLISTES_LIST_PRIV_HEBDO , _SPIPLISTES_LIST_PRIV_WEEKLY , _SPIPLISTES_LIST_PRIV_MENSUEL , _SPIPLISTES_LIST_PRIV_MONTHLY , _SPIPLISTES_LIST_PRIV_YEARLY ) ) ? ' selected="selected"' : '' ) ; $sel_publique = ' value="' . _SPIPLISTES_LIST_PUBLIC . '" ' . ( in_array ($statut, array( _SPIPLISTES_LIST_PUBLIC , _SPIPLISTES_LIST_PUB_DAILY , _SPIPLISTES_LIST_PUB_HEBDO , _SPIPLISTES_LIST_PUB_WEEKLY , _SPIPLISTES_LIST_PUB_MENSUEL , _SPIPLISTES_LIST_PUB_MONTHLY , _SPIPLISTES_LIST_PUB_YEARLY ) ) ? ' selected="selected"' : '' ) ; $page_result .= PHP_EOL . ( ($flag_editable) ? '' . '<select class="verdana2 fondl" name="statut" size="1" id="change_statut">' . PHP_EOL . '<option' . $sel_private . ' style="background-color:#fff">' . _T('spiplistes:statut_interne') . '</option>' . PHP_EOL . '<option' . $sel_publique . ' style="background-color:#B4E8C5">' . _T('spiplistes:statut_publique') . '</option>' . PHP_EOL . '<option' . mySel(_SPIPLISTES_TRASH_LIST, $statut) . ' style="background:url(' . _DIR_IMG_PACK.'rayures-sup.gif)">' . _T('texte_statut_poubelle').'</option>' . PHP_EOL . '</select>' . PHP_EOL : '<span class="verdana2" style="font-weight:bold;">' . spiplistes_items_get_item('alt', $statut) . '</span>'. PHP_EOL ) . '<div style="margin:10px 0px;">' . PHP_EOL . ( ($flag_editable && strpos($GLOBALS['meta']['langues_multilingue'], ',')) ? '' . '<label class="verdana2" for="changer_lang">' . _T('info_multi_herit').' : </label>' . PHP_EOL . '<select name="changer_lang" class="fondl" id="changer_lang">' . PHP_EOL . liste_options_langues('changer_lang', $lang , _T('spiplistes:langue_'), '', '') . '</select>' . PHP_EOL : '' //. "<span class='verdana2'>". _T('info_multi_herit')." : " //. "<span class='verdana2' style='font-weight:bold;'>".traduire_nom_langue($lang)."</span>\n" ) . '</div>' . PHP_EOL . ( ($flag_editable) ? spiplistes_form_bouton_valider('btn_modifier_diffusion') . spiplistes_form_fin(true) : '' ) . fin_cadre_relief(true) ; //////////////////////////// // Formulaire adresse email pour le reply-to $page_result .= '' . debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES_IMG_PACK."reply_to-24.png" , true , '' , _T('spiplistes:adresse_de_reponse').spiplistes_plugin_aide(_SPIPLISTES_EXEC_AIDE , "replyto") ) . spiplistes_form_debut(generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER,"id_liste=$id_liste"), true) . "<p class='verdana2'>\n" . _T('spiplistes:adresse_mail_retour').":<br />\n" . ( ($flag_editable) ? _T('spiplistes:adresse')."</p>\n" . "<div style='text-align:center'>\n" . "<input type='text' name='email_envoi' value=\"".$email_envoi."\" size='40' class='fondl' /></div>\n" . spiplistes_form_bouton_valider('btn_modifier_replyto') : "</p><p style='font-weight:bold;text-align:center;'>$email_envoi</p>\n" ) . spiplistes_form_fin(true) . fin_cadre_relief(true) ; //////////////////////////// // Formulaire planifier un courrier automatique $page_result .= "" . "<a name='form-programmer' id='form-programmer'></a>\n" . debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES_IMG_PACK."stock_timer.png", true, '', _T('spiplistes:messages_auto') . spiplistes_plugin_aide(_SPIPLISTES_EXEC_AIDE, "temporiser")) ; $page_result .= "" . $boite_pour_confirmer_envoi_maintenant . spiplistes_form_debut(generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER,"id_liste=$id_liste")."#form-programmer", true) . "<table border='0' cellspacing='1' cellpadding='3' width='100%'>\n" . "<tr><td align='$spip_lang_left' class='verdana2'>\n" ; if(empty($patron)) { $page_result .= "" . ( $flag_editable ? spiplistes_boite_alerte(_T('spiplistes:patron_manquant_message'), true) : "<p class='verdana2'>" . _T('spiplistes:liste_sans_patron') . "</p>\n" ) . "</td>\n" . "</tr>\n" . "<tr><td align='$spip_lang_left' class='verdana2'>\n" ; } if ($message_auto != "oui") { $page_result .= "<div class='verdana2'>"._T('spiplistes:pas_denvoi_auto_programme')."</div>\n"; } else { $page_result .= "" // petite ligne d'info si envoi programme . "<p class='verdana2'>"._T('spiplistes:sujet_courrier_auto')."<br />\n" . "<span class='spip_large'> " . spiplistes_calculer_balise_titre(extraire_multi($titre_message)) . "</span></p>\n" . "<p class='verdana2'>" . spiplistes_items_get_item('alt', $statut)."<br />\n" . ( ($statut == _SPIPLISTES_LIST_PUB_MONTHLY) ? "<strong>" . spiplistes_items_get_item("tab_t", $statut) . "</strong><br />" : "" ) . ( ($periode > 0) ? _T('spiplistes:periodicite_tous_les_n_s' , array('n' => " <strong>".$periode."</strong> " , 's' => spiplistes_singulier_pluriel_str_get($periode, _T('spiplistes:jour'), _T('spiplistes:jours'), false) ) ) : "" ) . ( (!in_array($statut, explode(";", _SPIPLISTES_LISTES_STATUTS_PERIODIQUES))) ? " <strong>"._T('spiplistes:Pas_de_periodicite')."</strong><br />" ._T('spiplistes:Ce_courrier_ne_sera_envoye_qu_une_fois') : "" ) . "<br />" . ( (intval($maj)) ? _T('spiplistes:Dernier_envoi_le_') . " <strong>" . affdate_heure($maj) . "</strong>" . ( ($last = round((time() - strtotime($maj)) / _SPIPLISTES_TIME_1_DAY)) ? " (".spiplistes_singulier_pluriel_str_get($last, _T('spiplistes:jour'), _T('spiplistes:jours')).")" : "" ). "<br />" : "" ) . ( ($date_prevue || (intval($date) && (time() < strtotime($date)))) ? _T('spiplistes:prochain_envoi_prevu')." : <strong>" . affdate_heure($date_prevue ? $date_prevue : $date) . "</strong>" . ( (!$date_prevue && ($next = round((strtotime($date) - time()) / _SPIPLISTES_TIME_1_DAY))) ? " (".spiplistes_singulier_pluriel_str_get($next, _T('spiplistes:jour'), _T('spiplistes:jours')).")" : "" ) : "" ) . "</p>\n" ; if($btn_modifier_courrier_auto) { $page_result .= "" . "<p class='verdana2'>"._T('spiplistes:date_act')."<br />" . _T('spiplistes:env_esquel')." <em>".$patron."</em>" . "</p>\n" ; } } $date_debut_envoi = (!empty($date_prevue) ? $date_prevue : (($date && intval($date)) ? $date : normaliser_date(time()))); $page_result .= "" . "</td>\n" . "</tr>\n" ; if($flag_editable) { $page_result .= "" . "<tr><td align='$spip_lang_left' class='verdana2'>" . "<input type='radio' name='message_auto' value='oui' id='auto_oui' " . (empty($patron) ? " disabled='disabled' " : "") . ($auto_checked = ($message_auto=='oui' ? "checked='checked'" : "")) . " />" . "<label for='auto_oui' ".($auto_checked ? "style='font-weight:bold;'" : "").">" . _T('spiplistes:prog_env')."</label>\n" . "<div id='auto_oui_detail' " .((empty($patron) || !$auto_checked) ? "style='display:none;'" : "") .">" . "<ul style='list-style-type:none;'>\n" . "<li>"._T('spiplistes:message_sujet') . ': <input type="text" name="titre_message" value="'.$titre_message.'" size="50" class="fondl" /> </li>'."\n" ; // // chrono jour $ii = ($periode > 0) ? $periode : 1; $page_result .= "" . "<li style='margin-top:0.5em'>" . spiplistes_form_input_radio ('auto_chrono', 'auto_jour' , '' , ($statut == _SPIPLISTES_LIST_PUB_DAILY) , true, false ) . _T('spiplistes:Tous_les') . " <input type='text' name='periode' value='".$ii."' size='4' maxlength='4' class='fondl' /> " . _T('info_jours') . "</li>\n" // chrono hebdo . "<li>" . spiplistes_form_input_radio ('auto_chrono', 'auto_hebdo' , _T('spiplistes:Toutes_les_semaines') , (($statut == _SPIPLISTES_LIST_PUB_HEBDO) || ($statut == _SPIPLISTES_LIST_PUB_WEEKLY)) , true, false) . spiplistes_form_input_checkbox('auto_weekly', 'oui' , _T('spiplistes:en_debut_de_semaine'), ($statut == _SPIPLISTES_LIST_PUB_WEEKLY), true, false) . "</li>\n" // chrono mois . "<li>" . spiplistes_form_input_radio ('auto_chrono', 'auto_mensuel' , _T('spiplistes:Tous_les_mois') , (($statut == _SPIPLISTES_LIST_PUB_MENSUEL) || ($statut == _SPIPLISTES_LIST_PUB_MONTHLY)) , true, false) . spiplistes_form_input_checkbox('auto_mois', 'oui' , _T('spiplistes:en_debut_de_mois'), ($statut == _SPIPLISTES_LIST_PUB_MONTHLY), true, false) . "</li>\n" // chrono annee . "<li>" . spiplistes_form_input_radio ('auto_chrono', 'auto_an' , _T('spiplistes:Tous_les_ans') , ($statut == _SPIPLISTES_LIST_PUB_YEARLY) , true, false) . "</li>\n" . "<li style='margin-top:0.5em'>"._T('spiplistes:A_partir_de')." : <br />\n" // . spiplistes_dater_envoi( 'liste', $id_liste, $statut , $flag_editable , _T('spiplistes:date_expedition_') , $date_debut_envoi, 'btn_changer_date' , false ) . "</li>\n" . ( (!$envoyer_maintenant) ? " <li>" . spiplistes_form_input_checkbox('envoyer_maintenant', 'oui' , _T('spiplistes:env_maint'), false, true) . "</li>\n" : "" ) . "</ul></div>\n" ; $checked = ($message_auto=='non') ? "checked='checked'" : ""; $class = $checked ? "class='bold'" : ""; $disabled = (empty($patron) ? " disabled='disabled' " : ""); $page_result .= "" . "<br /><input type='radio' name='message_auto' value='non' id='auto_non' $disabled $checked />" . "<span $class >" . " <label for='auto_non'>"._T('spiplistes:prog_env_non')."</label> " . "</span>\n" . "</td></tr>\n" ; $page_result .= "" . "<tr><td style='text-align:$spip_lang_right;'>" . ( ($id_liste) ? "<input type='hidden' name='id_liste' value='$id_liste' />" : "" ) . ( ($new) ? "<input type='hidden' name='new' value='$new' />" : "" ) // bouton de validation . (!empty($patron) ? spiplistes_form_bouton_valider('btn_modifier_courrier_auto', _T('bouton_valider'), true) : "") . "</td></tr>" ; } $page_result .= "" . "</table>\n" . spiplistes_form_fin(true) . fin_cadre_relief(true) ; // fin formulaire planifier $page_result .= "" . fin_cadre_relief(true) . $grosse_boite_abonnements . $grosse_boite_moderateurs ; // le super-admin peut abonner en masse if($connect_toutes_rubriques) { $page_result .= "" . "\n<!-- forcer abo -->\n" . debut_cadre_enfonce(_DIR_PLUGIN_SPIPLISTES_IMG_PACK."abonner-24.png", true, '', _T('spiplistes:forcer_les_abonnement_liste').spiplistes_plugin_aide("forcerliste"))."\n" . "<p class='verdana2'>\n" . _T('spiplistes:forcer_abonnement_desc') . "</p>\n" . "<p class='verdana2' style='margin-bottom:1em'><em>" . _T('spiplistes:forcer_abonnement_aide', array('lien_retour' => generer_url_ecrire(_SPIPLISTES_EXEC_ABONNES_LISTE))) . "</em></p>\n" . "<form action='".generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER,"id_liste=$id_liste#auteurs")."' id='form_forcer_abo' name='form_forcer_abo' method='post'>\n" . debut_cadre_relief("", true)."\n" // ////////////////////////// // propose de forcer les membres sauf invites si la liste est privee . ( ($statut==_SPIPLISTES_LIST_PRIVATE) ? "<div class='verdana2'><input type='radio' name='forcer_abo' value='auteurs' id='forcer_abo_tous' />\n" . "<label for='forcer_abo_tous'>"._T('spiplistes:Abonner_tous_les_inscrits_prives')."</label>" . "</div>\n" . spiplistes_boutons_forcer_format('forcer_format', _T('spiplistes:forcer_abonnements_nouveaux')) : "" ) // // propose de forcer les invites si la liste est publique ou periodique . ( (($statut!=_SPIPLISTES_LIST_PRIVATE) && ($statut!=_SPIPLISTES_TRASH_LIST)) ? "<div class='verdana2'><input type='radio' name='forcer_abo' value='6forum' id='forcer_abo_6forum' />\n" . "<label for='forcer_abo_6forum'>"._T('spiplistes:Abonner_tous_les_invites_public')."</label></div>\n" . spiplistes_boutons_forcer_format('forcer_format', _T('spiplistes:forcer_abonnements_nouveaux')) : "" ) . ( ($nb_abonnes) ? "<hr />\n" . "<div class='verdana2'><input type='radio' name='forcer_abo' value='aucun' id='forcer_desabo' />\n" . "<label for='forcer_desabo'>"._T('spiplistes:Forcer_desabonner_tous_les_inscrits')."</label></div>\n" : "" ) . fin_cadre_relief(true)."\n" . "<div style='text-align:right;'><input type='submit' name='btn_valider_forcer_abos' value='"._T('bouton_valider')."' class='fondo' /></div>\n" . "</form>\n" . fin_cadre_enfonce (true)."\n" ; } // $page_result .= "" . $gros_bouton_supprimer ; echo($page_result); echo pipeline('affiche_milieu',array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) , spiplistes_html_signature(_SPIPLISTES_PREFIX) , fin_gauche(), fin_page(); } // end exec_spiplistes_liste_gerer()
/** * fonction qu'on peut redefinir pour filtrer les adresses mail et les noms, * et donner des infos supplementaires * Std: controler que le nom (qui sert a calculer le login) est plausible * et que l'adresse est valide. On les normalise au passage (trim etc). * Retour: * - si ok un tableau avec au minimum email, nom, mode (redac / forum) * - si ko une chaine de langue servant d'argument a _T expliquant le refus * * http://doc.spip.org/@test_inscription_dist * * @param string $statut * @param string $mail * @param string $nom * @param string $options * @return array|string */ function test_inscription_dist($statut, $mail, $nom, $options) { include_spip('inc/filtres'); if (!($r = email_valide($mail))) { return 'info_email_invalide'; } $nom = trim(corriger_caracteres($nom)); $res = array('email' => $r, 'nom' => $nom, 'prefs' => $statut); if (isset($options['login'])) { $login = trim(corriger_caracteres($options['login'])); if (strlen($login) >= _LOGIN_TROP_COURT and strlen($nom) <= 64) { $res['login'] = $login; } } if (!isset($res['login']) and (strlen($nom) < _LOGIN_TROP_COURT or strlen($nom) > 64)) { return 'ecrire:info_login_trop_court'; } return $res; }
if (!$reg) { $reg_ok = "no"; } if ($_POST['nom_complet']) { $nom_complet = $_POST['nom_complet']; } else { $nom_complet = $nom_court; } $sql = "UPDATE cn_conteneurs SET nom_complet = '" . corriger_caracteres($nom_complet) . "' WHERE id = '{$id_conteneur}'"; //echo "$sql<br />"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) { $reg_ok = "no"; } if ($_POST['description']) { $sql = "UPDATE cn_conteneurs SET description = '" . corriger_caracteres($_POST['description']) . "' WHERE id = '{$id_conteneur}'"; //echo "$sql<br />"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) { $reg_ok = "no"; } } if (isset($_POST['parent'])) { $parent = $_POST['parent']; $sql = "UPDATE cn_conteneurs SET parent = '" . $parent . "' WHERE id = '{$id_conteneur}'"; //echo "$sql<br />"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) { $reg_ok = "no"; } }
// Créer un nouveau dev... // Prévoir par la suite de pouvoir définir ici les paramètres $sql = "INSERT INTO cn_devoirs SET id_racine='{$id_racine}', id_conteneur='{$id_conteneur}', nom_court='nouveau', ramener_sur_referentiel='F', note_sur='20';"; //echo "$sql<br />"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) { $msg .= "Erreur lors de la création du devoir pour l'enseignement associé au cahier de notes n°{$current_id_cn}.<br />"; $reg_ok = "no"; } else { $id_devoir_cn = is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"])) ? false : $___mysqli_res; $sql = "UPDATE cn_devoirs SET nom_court='" . corriger_caracteres($nom_court_cc_dev) . "' WHERE id='{$id_devoir_cn}'"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) { $reg_ok = "no"; } $sql = "UPDATE cn_devoirs SET nom_complet='" . corriger_caracteres($nom_complet_cc_dev) . "' WHERE id='{$id_devoir_cn}'"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) { $reg_ok = "no"; } if ($description_cc_dev != '') { $sql = "UPDATE cn_devoirs SET nom_complet='" . mysqli_real_escape_string($GLOBALS["mysqli"], $description_cc_dev) . "' WHERE id='{$id_devoir_cn}'"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) { $reg_ok = "no"; } } $tmp_coef = 1; $sql = "UPDATE cn_devoirs SET coef='{$tmp_coef}' WHERE id='{$id_devoir_cn}'"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {
function cextras_pre_edition($flux){ // recuperer les champs crees par les plugins if ($extras = cextras_get_extras_match($flux['args']['table'])) { // recherchons un eventuel prefixe utilise pour poster les champs $type = objet_type(table_objet($flux['args']['table'])); $prefixe = _request('prefixe_champs_extras_' . $type); if (!$prefixe) { $prefixe = ''; } foreach ($extras as $c) { if (_request('cextra_' . $prefixe . $c->champ)) { $extra = _request($prefixe . $c->champ); if (is_array($extra)) $extra = join(',',$extra); $flux['data'][$c->champ] = corriger_caracteres($extra); } } } return $flux; }
function recuperer_infos_distantes($source, $max = 0, $charger_si_petite_image = true) { # charger les alias des types mime include_spip('base/typedoc'); global $mime_alias; $a = array(); $mime_type = ''; // On va directement charger le debut des images et des fichiers html, // de maniere a attrapper le maximum d'infos (titre, taille, etc). Si // ca echoue l'utilisateur devra les entrer... if ($headers = recuperer_page($source, false, true, $max, '', '', true)) { list($headers, $a['body']) = preg_split(',\\n\\n,', $headers, 2); if (preg_match(",\nContent-Type: *([^[:space:];]*),i", "\n{$headers}", $regs)) { $mime_type = trim($regs[1]); } else { $mime_type = ''; } // inconnu // Appliquer les alias while (isset($mime_alias[$mime_type])) { $mime_type = $mime_alias[$mime_type]; } // Si on a un mime-type insignifiant // text/plain,application/octet-stream ou vide // c'est peut-etre que le serveur ne sait pas // ce qu'il sert ; on va tenter de detecter via l'extension de l'url // ou le Content-Disposition: attachment; filename=... $t = null; if (in_array($mime_type, array('text/plain', '', 'application/octet-stream'))) { if (!$t and preg_match(',\\.([a-z0-9]+)(\\?.*)?$,i', $source, $rext)) { $t = sql_fetsel("extension", "spip_types_documents", "extension=" . sql_quote($rext[1], '', 'text')); } if (!$t and preg_match(",^Content-Disposition:\\s*attachment;\\s*filename=(.*)\$,Uims", $headers, $m) and preg_match(',\\.([a-z0-9]+)(\\?.*)?$,i', $m[1], $rext)) { $t = sql_fetsel("extension", "spip_types_documents", "extension=" . sql_quote($rext[1], '', 'text')); } } // Autre mime/type (ou text/plain avec fichier d'extension inconnue) if (!$t) { $t = sql_fetsel("extension", "spip_types_documents", "mime_type=" . sql_quote($mime_type)); } // Toujours rien ? (ex: audio/x-ogg au lieu de application/ogg) // On essaie de nouveau avec l'extension if (!$t and $mime_type != 'text/plain' and preg_match(',\\.([a-z0-9]+)(\\?.*)?$,i', $source, $rext)) { $t = sql_fetsel("extension", "spip_types_documents", "extension=" . sql_quote($rext[1], '', 'text')); # eviter xxx.3 => 3gp (> SPIP 3) } if ($t) { spip_log("mime-type {$mime_type} ok, extension " . $t['extension']); $a['extension'] = $t['extension']; } else { # par defaut on retombe sur '.bin' si c'est autorise spip_log("mime-type {$mime_type} inconnu"); $t = sql_fetsel("extension", "spip_types_documents", "extension='bin'"); if (!$t) { return false; } $a['extension'] = $t['extension']; } if (preg_match(",\nContent-Length: *([^[:space:]]*),i", "\n{$headers}", $regs)) { $a['taille'] = intval($regs[1]); } } // Echec avec HEAD, on tente avec GET if (!$a and !$max) { spip_log("tenter GET {$source}"); $a = recuperer_infos_distantes($source, _INC_DISTANT_MAX_SIZE); } // S'il s'agit d'une image pas trop grosse ou d'un fichier html, on va aller // recharger le document en GET et recuperer des donnees supplementaires... if (preg_match(',^image/(jpeg|gif|png|swf),', $mime_type)) { if ($max == 0 and $a['taille'] < _INC_DISTANT_MAX_SIZE and strpos($GLOBALS['meta']['formats_graphiques'], $a['extension']) !== false and $charger_si_petite_image) { $a = recuperer_infos_distantes($source, _INC_DISTANT_MAX_SIZE); } else { if ($a['body']) { $a['fichier'] = _DIR_RACINE . nom_fichier_copie_locale($source, $a['extension']); ecrire_fichier($a['fichier'], $a['body']); $size_image = @getimagesize($a['fichier']); $a['largeur'] = intval($size_image[0]); $a['hauteur'] = intval($size_image[1]); $a['type_image'] = true; } } } // Fichier swf, si on n'a pas la taille, on va mettre 425x350 par defaut // ce sera mieux que 0x0 if ($a and $a['extension'] == 'swf' and !$a['largeur']) { $a['largeur'] = 425; $a['hauteur'] = 350; } if ($mime_type == 'text/html') { include_spip('inc/filtres'); $page = recuperer_page($source, true, false, _INC_DISTANT_MAX_SIZE); if (preg_match(',<title>(.*?)</title>,ims', $page, $regs)) { $a['titre'] = corriger_caracteres(trim($regs[1])); } if (!$a['taille']) { $a['taille'] = strlen($page); } # a peu pres } return $a; }
$current_nom_prenom_eleve=get_nom_prenom_eleve($current_login_ele); $poursuivre="y"; if(($_SESSION['statut']=='professeur')&&(!is_pp($_SESSION['login'], "", $current_login_ele))) { $poursuivre="n"; $msg.="Vous n'êtes pas ".getSettingValue('gepi_prof_suivi')." de ".$current_nom_prenom_eleve."<br />"; } if($poursuivre=="y") { if((mb_strlen(preg_replace('/[A-Za-z0-9._-]/','',$current_login_ele))==0)&& (mb_strlen(preg_replace('/[0-9]/','',$current_id_groupe))==0)&& (mb_strlen(preg_replace('/[0-9]/','',$current_periode))==0)) { if ((isset($action[$i]))&&(in_array($action[$i],$tab_actions_valides))) { if (isset($NON_PROTECT["appreciation".$i])) { $app = traitement_magic_quotes(corriger_caracteres($NON_PROTECT["appreciation".$i])); // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. $app=suppression_sauts_de_lignes_surnumeraires($app); if($action[$i]=='supprimer') { $sql="DELETE FROM matieres_app_corrections WHERE (login='******' AND id_groupe='$current_id_groupe' AND periode='$current_periode');"; $del=mysqli_query($GLOBALS["mysqli"], $sql); if($del) { $msg.="Suppression de l'enregistrement temporaire $enregistrement[$i].<br />"; //$nb_reg++; // Envoyer un mail... problème... il serait bien de n'envoyer qu'un seul mail par destinataire, plutôt que un mail par correction if(!isset($texte_email[$current_id_groupe])) {$texte_email[$current_id_groupe]="";} //$texte_email[$current_id_groupe].="Votre proposition de correction pour $enregistrement[$i] a été refusée/supprimée.\n"; $texte_email[$current_id_groupe].="Votre proposition de correction pour ".$current_nom_prenom_eleve." en ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].") sur la période $current_periode a été refusée/supprimée.\n"; } else {
// Changement de nom if (!empty($doc_name_modif) && trim($doc_name_modif) != '' && !empty($id_document)) { $titre = corriger_caracteres($doc_name_modif); $criteria = new Criteria(CahierTexteTravailAFaireFichierJointPeer::DATABASE_NAME); $criteria->add(CahierTexteTravailAFaireFichierJointPeer::ID, $id_document, '='); $documents = $ctTravailAFaire->getCahierTexteTravailAFaireFichierJoints($criteria); if (empty($documents)) { echo "Erreur enregistrement de devoir : document non trouvé."; die; } $document = $documents[0]; if ($document == null) { echo "Erreur enregistrement de devoir : document non trouvé."; die; } $document->setTitre(corriger_caracteres($doc_name_modif)); $document->save(); } //traitement de la copie de fichier joint if (isset($_REQUEST['ct_a_importer_class']) && isset($_REQUEST['id_ct_a_importer'])) { $classname = $_REQUEST["ct_a_importer_class"] . 'Query'; if (class_exists($classname)) { $notice = call_user_func($classname . '::create')->findOneByPrimaryKey($_REQUEST["id_ct_a_importer"]); if ($notice != null && $ctTravailAFaire != null && $notice != $ctTravailAFaire) { //pour la dernière condition, on évite de copier les fichiers joints d'une notice sur elle même $method = 'get' . $_REQUEST["ct_a_importer_class"] . 'FichierJoints'; foreach ($notice->{$method}() as $fichier_joint_modele) { $fj = new CahierTexteTravailAFaireFichierJoint(); $fj->setEmplacement($fichier_joint_modele->getEmplacement()); $fj->setTitre($fichier_joint_modele->getTitre()); $fj->setTaille($fichier_joint_modele->getTaille());
$msg .= "Echec de la mise en place du fichier " . $document_joint['name'] . "<br />"; } else { $url_racine_gepi = getSettingValue('url_racine_gepi'); if ($url_racine_gepi) { $msg_doc_joint .= "\nAjout d'un document : " . $url_racine_gepi . preg_replace("#^..#", "", $dest_file) . "\n"; } else { $msg_doc_joint .= "\nAjout d'un document : " . remplace_accents($document_joint['name'], "all") . "\n"; } } } } } $texte_mail .= $msg_doc_joint; if (count($mesure_demandee) > 0) { if (isset($NON_PROTECT["travail_pour_mesure_demandee_" . $i])) { $texte_travail = traitement_magic_quotes(corriger_caracteres($NON_PROTECT["travail_pour_mesure_demandee_" . $i])); // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. $texte_travail = preg_replace('/(\\\\r\\\\n)+/', "\r\n", $texte_travail); $texte_travail = preg_replace('/(\\\\r)+/', "\r", $texte_travail); $texte_travail = preg_replace('/(\\\\n)+/', "\n", $texte_travail); if ($texte_travail == "") { $sql = "DELETE FROM s_travail_mesure WHERE id_incident='{$id_incident}' AND login_ele='" . $mesure_ele_login[$i] . "';"; $res_del = mysqli_query($GLOBALS["mysqli"], $sql); } else { $sql = "SELECT * FROM s_travail_mesure WHERE id_incident='{$id_incident}' AND login_ele='" . $mesure_ele_login[$i] . "';"; $res_mes = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_mes) > 0) { $sql = "UPDATE s_travail_mesure SET travail='" . $texte_travail . "' WHERE id_incident='{$id_incident}' AND login_ele='" . $mesure_ele_login[$i] . "';"; $update = mysqli_query($GLOBALS["mysqli"], $sql); } else { $sql = "INSERT INTO s_travail_mesure SET travail='" . $texte_travail . "', id_incident='{$id_incident}', login_ele='" . $mesure_ele_login[$i] . "';";
$id_devoir=((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res); $new='yes'; $reg_ok='yes'; $nom_court=$intitule; $sql="UPDATE cn_devoirs SET nom_court='".corriger_caracteres($nom_court)."' WHERE id='$id_devoir'"; $reg=mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} $nom_complet=$nom_court; $sql="UPDATE cn_devoirs SET nom_complet='".corriger_caracteres($nom_court)."' WHERE id='$id_devoir'"; $reg=mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} if($description!='') { $sql="UPDATE cn_devoirs SET nom_complet='".corriger_caracteres($description)."' WHERE id='$id_devoir'"; $reg=mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} } $tmp_coef=1; $sql="UPDATE cn_devoirs SET coef='$tmp_coef' WHERE id='$id_devoir'"; $reg=mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} $sql="UPDATE cn_devoirs SET date='$date_epreuve' WHERE id='$id_devoir'"; $reg=mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} $sql="UPDATE cn_devoirs SET date_ele_resp='$date_epreuve' WHERE id='$id_devoir'"; $reg=mysqli_query($GLOBALS["mysqli"], $sql);
function ajout_doc($doc_file, $id_ct, $doc_name, $cpt_doc) { global $max_size, $total_max_size, $edit_devoir, $multisite; /* Vérification du type de fichier */ //if (my_ereg("\.([^.]+)$", $doc_file['name'][$cpt_doc], $match)) { if (function_exists("mb_ereg") && mb_ereg("\\.([^.]+)\$", $doc_file['name'][$cpt_doc], $match) || function_exists("ereg") && ereg("\\.([^.]+)\$", $doc_file['name'][$cpt_doc], $match)) { $ext = corriger_caracteres(my_strtolower($match[1])); $ext = corriger_extension($ext); } else { $ext = ''; } $query = "SELECT id_type FROM ct_types_documents WHERE extension='{$ext}' AND upload='oui'"; $result = sql_query($query); if ($row = @sql_row($result, 0)) { $id_type = $row[0]; } else { return "Erreur : Ce type de fichier n'est pas autorisé en téléchargement.<br />\nSi vous trouvez cela regrettable, contactez l'administrateur.<br />\nIl pourra modifier ce paramétrage dans<br />\n*Gestion des modules/Cahiers de textes/Types de fichiers autorisés en téléchargement*."; die; } /* Vérification de la taille du fichier */ $sql = "select id_groupe from ct_entry where id_ct='{$id_ct}'"; $id_groupe = sql_query1($sql); $max_size_ko = $max_size / 1024; $taille = $doc_file['size'][$cpt_doc]; if ($taille > $max_size) { return "Téléchargement impossible : taille maximale autorisée : " . $max_size_ko . " Ko"; die; } if ($taille == 0) { return "Le fichier sélectionné semble vide : transfert impossible."; die; } $query = "SELECT DISTINCT sum(taille) somme FROM ct_documents d, ct_entry e WHERE (e.id_groupe='" . $id_groupe . "' and e.id_ct = d.id_ct)"; $total = sql_query1($query); if ($total + $taille > $total_max_size) { return "Téléchargement impossible : espace disque disponible (" . ($total_max_size - $total) / 1024 . " Ko) insuffisant."; die; } /* Recopier le fichier */ $dest = '../documents/'; $dossier = ''; $multi = isset($multisite) && $multisite == 'y' ? $_COOKIE['RNE'] . '/' : NULL; if (isset($multisite) && $multisite == 'y' && is_dir('../documents/' . $multi) === false) { @mkdir('../documents/' . $multi); $dest .= $multi; } elseif (isset($multisite) && $multisite == 'y') { $dest .= $multi; } if (isset($edit_devoir)) { $dossier = "cl_dev" . $_POST['id_groupe']; } else { $dossier = "cl" . $_POST['id_groupe']; } if (creer_repertoire($dest, $dossier)) { $dest .= $dossier . '/'; } else { return "Problème d'écriture sur le répertoire. Veuillez signaler ce problème à l'administrateur du site"; die; } $nom_sans_ext = mb_substr(basename($doc_file['name'][$cpt_doc]), 0, mb_strlen(basename($doc_file['name'][$cpt_doc])) - (mb_strlen($ext) + 1)); $nom_sans_ext = my_ereg_replace("[^.a-zA-Z0-9_=-]+", "_", $nom_sans_ext); if (strstr($nom_sans_ext, "..")) { return "Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire. Veuillez signaler ce problème à l'administrateur du site"; die; } $n = 0; while (file_exists($newFile = $dest . $nom_sans_ext . ($n++ ? '-' . $n : '') . '.' . $ext)) { } $dest_path = $newFile; if (!deplacer_fichier_upload($doc_file['tmp_name'][$cpt_doc], $dest_path)) { return "Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire. Veuillez signaler ce problème à l'administrateur du site"; die; } if ($doc_name[$cpt_doc] == '') { $doc_name[$cpt_doc] = basename($newFile); } $nouveau = false; if (!isset($id_document)) { if (isset($edit_devoir)) { $query = "INSERT INTO ct_devoirs_documents SET taille='{$taille}', emplacement='{$dest_path}', id_ct_devoir='{$id_ct}', titre='" . corriger_caracteres($doc_name[$cpt_doc]) . "'"; } else { $query = "INSERT INTO ct_documents SET taille='{$taille}', emplacement='{$dest_path}', id_ct='{$id_ct}', titre='" . corriger_caracteres($doc_name[$cpt_doc]) . "'"; } sql_query($query); $id_document = is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"])) ? false : $___mysqli_res; $nouveau = true; } else { if (isset($edit_devoir)) { $query = "UPDATE ct_devoirs_documents SET taille='{$taille}', emplacement='{$dest_path}', id_ct_devoir='{$id_ct}', titre='{$titre}' WHERE id_document={$id_document}"; } else { $query = "UPDATE ct_documents SET taille='{$taille}', emplacement='{$dest_path}', id_ct='{$id_ct}', titre='{$titre}' WHERE id_document={$id_document}"; } sql_query($query); } return "Téléchargement réussi !"; }