/** * Traiter les champs postes */ function formulaires_newsletter_subscribe_traiter_dist($listes = '') { // langue par defaut lors de l'inscription : la langue courante dans la page $options = array('lang' => $GLOBALS['spip_lang'], 'nom' => _request('nom')); $email = _request('session_email'); if ($listes and is_string($listes)) { $listes = explode(',', $listes); } if ($listes and is_array($listes) and count($listes)) { $options['listes'] = $listes; } $res = array('editable' => true); $newsletter_subscribe = charger_fonction("subscribe", "newsletter"); if ($newsletter_subscribe($email, $options)) { if (lire_config('mailsubscribers/double_optin', 0)) { $res['message_ok'] = _T('newsletter:subscribe_message_ok_confirm', array('email' => "<b>{$email}</b>")); } else { $res['message_ok'] = _T('newsletter:subscribe_message_ok', array('email' => "<b>{$email}</b>")); } } else { $res['message_erreur'] = _T('mailsubscriber:erreur_technique_subscribe'); } set_request('email'); return $res; }
/** * Vérifications du formulaire de téléchargement de plugin * * Vérifie qu'une archive est saisie, et si la destination existe * demande à confirmer l'écrasement * * @return array * Tableau des erreurs **/ function formulaires_charger_plugin_archive_verifier_dist() { include_spip('inc/plugin'); // _DIR_PLUGINS_AUTO $erreurs = array(); if (!($archive = _request('archive'))) { $erreurs['archive'] = _T('info_obligatoire'); } else { // Validité de l'url de l'archive $infos_archive = pathinfo($archive); if (!isset($infos_archive['extension'])) { $erreurs['archive'] = _T('svp:message_nok_url_archive'); } else { // calcul du répertoire de destination if (!($destination = _request('destination'))) { $destination = $infos_archive['filename']; } $destination = str_replace('../', '', $destination); set_request('destination', $destination); // si la destination existe, on demande confirmation de l'ecrasement. $dir = _DIR_PLUGINS_AUTO . $destination; if (is_dir($dir) and !_request('confirmer')) { $base = dirname($dir); $nom = basename($dir); $backup = "{$base}/.{$nom}.bck"; $erreurs['confirmer'] = _T("svp:confirmer_telecharger_dans", array('dir' => joli_repertoire($dir), 'dir_backup' => joli_repertoire($backup))); } } } return $erreurs; }
/** * Chargement des valeurs par defaut des champs du formulaire * * @param string $type_objet[facultatif] objet editorial spip * @param int $id_objet[facultatif] identifiant de l'objet * @param boolean $adh_i3_rech_ok si au moins 1 critere de recherche saisis. * */ function formulaires_adhi3_recherche_charger_dist($type_objet, $id_objet) { // Recuperation des parametres transmis $datas['type_objet'] = $type_objet; $datas['id_objet'] = $id_objet; // Recuperation des champs du formulaire // ==> lies a adhclub : $datas['id_saison'] = _request('id_saison'); $datas['techbase'] = _request('techbase'); $datas['encadrant'] = _request('encadrant'); $datas['niveau'] = _request('niveau'); $datas['niv_rel'] = _request('niv_rel'); // ==> lies a i3 : $datas['ordre'] = _request('ordre'); $datas['desc'] = _request('desc'); $datas['case'] = _request('case'); $datas['valeur'] = _request('valeur'); $datas['exceptions'] = pipeline('i3_exceptions_des_champs_auteurs_elargis', array()); // Raz des criteres si demande affichage tous les adherents if (_request('afficher_tous')) { // ==> lies a adhclub : set_request('id_saison', ''); set_request('techbase', ''); set_request('encadrant', ''); set_request('niveau', ''); set_request('niv_rel', ''); // ==> lies a i3 : set_request('valeur', ''); set_request('case', ''); } return $datas; }
function formulaires_editer_balade_traiter_dist($id_collection = 'new', $retour = '') { $message = array(); // récupérer le rang des articles de la balade et le mettre à jour $rangs = _request('rang'); foreach ($rangs as $rang => $id_article) { $rang = $rang + 1; $ok = sql_updateq('spip_collections_liens', array('rang' => intval($rang)), "objet='article' AND id_objet = {$id_article}"); } // éditer le gis associé if ($action_editer = charger_fonction("editer_gis", 'action', true)) { list($id, $err) = $action_editer(_request('id_gis')); } // ne pas polluer l'url de retour avec des paramètres inutiles set_request('id_gis'); set_request('id_objet'); // invalider le cache include_spip('inc/invalideur'); suivre_invalideur("id='gis/{$id}"); // rediriger sur l'url de retour passée en paramètre if ($retour) { include_spip('inc/headers'); $message['redirect'] = redirige_formulaire($retour); } return $message; }
/** * Recuperer les champs date_xx et heure_xx, verifier leur coherence et les reformater * * @param string $suffixe * @param bool $horaire * @param array $erreurs * @return int */ function verifier_corriger_date_saisie($suffixe, $horaire, &$erreurs) { include_spip('inc/filtres'); $date = _request("date_{$suffixe}") . ($horaire ? ' ' . trim(_request("heure_{$suffixe}")) . ':00' : ''); $date = recup_date($date); if (!$date) { return ''; } $ret = null; if (!($ret = mktime(0, 0, 0, $date[1], $date[2], $date[0]))) { $erreurs["date_{$suffixe}"] = _T('agenda:erreur_date'); } elseif (!($ret = mktime($date[3], $date[4], $date[5], $date[1], $date[2], $date[0]))) { $erreurs["date_{$suffixe}"] = _T('agenda:erreur_heure'); } if ($ret) { if (trim(_request("date_{$suffixe}") !== ($d = date('d/m/Y', $ret)))) { $erreurs["date_{$suffixe}"] = _T('agenda:erreur_date_corrigee'); set_request("date_{$suffixe}", $d); } if ($horaire and trim(_request("heure_{$suffixe}") !== ($h = date('H:i', $ret)))) { $erreurs["heure_{$suffixe}"] = _T('agenda:erreur_heure_corrigee'); set_request("heure_{$suffixe}", $h); } } return $ret; }
/** * Traiter * * @param int $id_article * @return array */ function formulaires_activer_petition_article_traiter_dist($id_article) { include_spip('inc/autoriser'); if (autoriser('modererpetition', 'article', $id_article)) { switch (_request('change_petition')) { case 'on': foreach (array('email_unique', 'site_obli', 'site_unique', 'message') as $k) { if (_request($k) != 'oui') { set_request($k, 'non'); } } include_spip('action/editer_petition'); if (!($id_petition = sql_getfetsel('id_petition', 'spip_petitions', 'id_article=' . intval($id_article)))) { $id_petition = petition_inserer($id_article); } petition_modifier($id_petition, array('email_unique' => _request('email_unique'), 'site_obli' => _request('site_obli'), 'site_unique' => _request('site_unique'), 'message' => _request('message'), 'texte' => _request('texte_petition'), 'statut' => 'publie')); break; case 'off': if ($id_petition = sql_getfetsel('id_petition', 'spip_petitions', 'id_article=' . intval($id_article))) { include_spip('action/editer_petition'); petition_modifier($id_petition, array('statut' => 'poubelle')); } break; } } return array('message_ok' => _T('config_info_enregistree')); }
function formulaires_editer_zone_traiter_dist($id_zone = 'new', $retour = '', $associer_objet = '', $config_fonc = 'zones_edit_config', $row = array(), $hidden = '') { if (_request('publique') !== 'oui') { set_request('publique', 'non'); } if (_request('privee') !== 'oui') { set_request('privee', 'non'); } $res = formulaires_editer_objet_traiter('zone', $id_zone, 0, 0, $retour, $config_fonc, $row, $hidden); if ($retour and $res['id_zone']) { $res['redirect'] = parametre_url($retour, 'id_zone', $res['id_zone']); } // Un lien auteur a prendre en compte ? if ($associer_objet and $id_zone = $res['id_zone']) { $objet = ''; if (preg_match(',^\\w+\\|[0-9]+$,', $associer_objet)) { list($objet, $id_objet) = explode('|', $associer_objet); } if ($objet and $id_objet and autoriser('modifier', $objet, $id_objet)) { zone_lier($id_zone, $objet, $id_objet); if (isset($res['redirect'])) { $res['redirect'] = parametre_url($res['redirect'], "id_lien_ajoute", $id_zone, '&'); } } } return $res; }
function formulaires_editer_evenement_verifier_dist($id_evenement='new', $id_article=0, $retour='', $lier_trad = 0, $config_fonc='evenements_edit_config', $row=array(), $hidden=''){ $erreurs = formulaires_editer_objet_verifier('evenement',$id_evenement,array('titre','date_debut','date_fin')); include_spip('inc/date_gestion'); $horaire = _request('horaire')=='non'?false:true; $date_debut = verifier_corriger_date_saisie('debut',$horaire,$erreurs); $date_fin = verifier_corriger_date_saisie('fin',$horaire,$erreurs); if ($date_debut AND $date_fin AND $date_fin<$date_debut) $erreurs['date_fin'] = _T('agenda:erreur_date_avant_apres'); include_spip('spip_bonux_fonctions'); if (count($id = picker_selected(_request('parents_id'),'article')) AND $id = reset($id) AND $id = sql_getfetsel('id_article','spip_articles','id_article='.intval($id))){ // reinjecter dans id_parent set_request('id_parent',$id); } if (!$id_parent = intval(_request('id_parent'))) $erreurs['id_parent'] = _T('agenda:erreur_article_manquant'); else { if (!autoriser('creerevenementdans','article',$id_parent)) $erreurs['id_parent'] = _T('agenda:erreur_article_interdit'); } #if (!count($erreurs)) # $erreurs['message_erreur'] = 'ok?'; return $erreurs; }
function formulaires_editer_site_verifier_dist($id_syndic='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='sites_edit_config', $row=array(), $hidden=''){ include_spip('inc/filtres'); include_spip('inc/site'); $oblis = array('nom_site','url_site'); // Envoi depuis le formulaire d'analyse automatique d'un site if (_request('ajoute_url_auto') AND strlen(vider_url($u = _request('url_auto')))) { if ($auto = analyser_site($u)) { // Si pas de logo, on va le chercher dans le ou les feeds if(isset($auto['url_syndic']) && !$auto['logo'] && ($auto['url_syndic'] != _request('ajouter_url_auto')) && preg_match(',^select: (.+),', $auto['url_syndic'], $regs)){ $url_syndic = str_replace('select: ','',$auto['url_syndic']); $feeds = explode(' ',$regs[1]); foreach ($feeds as $feed) { if(($auto_syndic = analyser_site($feed)) && isset($auto_syndic['format_logo'])){ $auto['format_logo'] = $auto_syndic['format_logo']; $auto['logo'] = $auto_syndic['logo']; break; } } } foreach($auto as $k=>$v){ set_request($k,$v); } $erreurs['message_ok'] = _T('texte_referencement_automatique_verifier', array('url' => $u)); } else{ $erreurs['url_auto'] = _T('avis_site_introuvable'); } } else $erreurs = formulaires_editer_objet_verifier('site',$id_syndic,$oblis); return $erreurs; }
function formulaires_gestion_forum_traiter_dist($id_forum = '', $id_rubrique = '', $id_article = '', $id_breve = '', $id_syndic = '', $id_message = '', $id_auteur = '', $auteur = '', $email_auteur = '', $ip = '') { $retour = array(); $retour['message_ok'] = 'rien a faire'; if (!($forum_ids = _request('forum_ids'))) { $forum_ids = array(); } $select_type = _request('select_type'); $select_statut = _request('select_statut'); $pagination = _request('pagination'); $pagination_ancien = _request('pagination_ancien'); set_request('select_type', $select_type); set_request('voir_statut', $select_statut); if ($pagination != $pagination_ancien) { set_request('debut_forum', ''); } if (_request('valider')) { $statut = 'publie'; $retour['message_ok'] = 'messages publies'; } if (_request('bruler')) { $statut = 'spam'; $retour['message_ok'] = 'messages marquees comme spam'; } if (_request('supprimer')) { $statut = 'off'; $retour['message_ok'] = 'messages supprimes'; } include_spip('action/instituer_forum'); foreach ($forum_ids as $id) { $row = sql_fetsel("*", "spip_forum", "id_forum={$id}"); instituer_un_forum($statut, $row); } return $retour; }
function formulaires_tri_stages_verifier_dist() { $erreurs = array(); // vérfication champs ville stage qui peut comporter plusieurs villes $ville_stage = _request('ville_stage'); if ($ville_stage) { preg_match_all("/[-0-9a-zA-Z_]+/", $ville_stage, $recherche); $nbre = count($recherche[0]); $sortie = ''; if ($recherche && $nbre > 1) { foreach ($recherche[0] as $k => $v) { if ($k < $nbre - 1) { $sortie .= $v . ', '; } else { $sortie .= $v; } } if ($input == $sortie) { return; } else { // $erreurs["ville_stage"] = _T('fraap_candidatures:erreur_champ_ville_stage'); set_request("ville_stage", $sortie); } } } // vérification des dates (via spip-bonux) $horaire = false; $date_debut = verifier_corriger_date_saisie('debut', $horaire, $erreurs); $date_fin = verifier_corriger_date_saisie('fin', $horaire, $erreurs); if ($date_debut and $date_fin and $date_fin < $date_debut) { $erreurs['date_fin'] = _T('fraap_candidatures:erreur_date_avant_apres'); } return $erreurs; }
function formulaires_configurer_comments_verifier() { $erreurs = array(); if (_request('nom_obli') !== '1') { set_request('nom_obli', '0'); } return $erreurs; }
function formulaires_editer_site_traiter_dist($id_syndic = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'sites_edit_config', $row = array(), $hidden = '') { // netoyer les entrees if (!is_null(_request('url_site'))) { set_request('url_site', vider_url(_request('url_site'))); } return formulaires_editer_objet_traiter('site', $id_syndic, $id_rubrique, $lier_trad, $retour, $config_fonc, $row, $hidden); }
function formulaires_editer_article_traiter_dist($id_article = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'articles_edit_config', $row = array(), $hidden = '') { // ici on ignore changer_lang qui est poste en cas de trad, // car l'heuristique du choix de la langue est pris en charge par article_inserer // en fonction de la config du site et de la rubrique choisie set_request("changer_lang"); return formulaires_editer_objet_traiter('article', $id_article, $id_rubrique, $lier_trad, $retour, $config_fonc, $row, $hidden); }
function formulaires_reviser_verifier_dist($objet, $id_objet, $id_version, $id_diff) { $erreurs = array(); list($id_version, $id_diff) = check_version_diff($objet, $id_objet, _request('id_version'), _request('id_diff')); set_request('id_version', $id_version); set_request('id_diff', $id_diff); return $erreurs; }
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 traiter_appels_actions() { // cas de l'appel qui renvoie une redirection (302) ou rien (204) if ($action = _request('action')) { include_spip('base/abstract_sql'); // chargement systematique pour les actions include_spip('inc/autoriser'); include_spip('inc/headers'); include_spip('inc/actions'); // des actions peuvent appeler _T if (!isset($GLOBALS['spip_lang'])) { include_spip('inc/lang'); utiliser_langue_visiteur(); } // si l'action est provoque par un hit {ajax} // il faut transmettre l'env ajax au redirect // on le met avant dans la query string au cas ou l'action fait elle meme sa redirection if ($v = _request('var_ajax') and $v !== 'form' and $args = _request('var_ajax_env') and $url = _request('redirect')) { $url = parametre_url($url, 'var_ajax', $v, '&'); $url = parametre_url($url, 'var_ajax_env', $args, '&'); set_request('redirect', $url); } else { if (_request('redirect')) { set_request('redirect', securiser_redirect_action(_request('redirect'))); } } $var_f = charger_fonction($action, 'action'); $var_f(); if (!isset($GLOBALS['redirect'])) { $GLOBALS['redirect'] = _request('redirect'); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $GLOBALS['redirect'] = urldecode($GLOBALS['redirect']); } $GLOBALS['redirect'] = securiser_redirect_action($GLOBALS['redirect']); } if ($url = $GLOBALS['redirect']) { // si l'action est provoque par un hit {ajax} // il faut transmettre l'env ajax au redirect // qui a pu etre defini par l'action if ($v = _request('var_ajax') and $v !== 'form' and $args = _request('var_ajax_env')) { $url = parametre_url($url, 'var_ajax', $v, '&'); $url = parametre_url($url, 'var_ajax_env', $args, '&'); // passer l'ancre en variable pour pouvoir la gerer cote serveur $url = preg_replace(',#([^#&?]+)$,', "&var_ajax_ancre=\\1", $url); } $url = str_replace('&', '&', $url); // les redirections se font en &, pas en en & redirige_par_entete($url); } if (!headers_sent() and !ob_get_length()) { http_status(204); } // No Content return true; } return false; }
function formulaires_configurer_compresseur_verifier_dist(){ $erreurs = array(); // les checkbox foreach(array('auto_compress_http','auto_compress_js','auto_compress_css', 'auto_compress_closure') as $champ) if (_request($champ)!='oui') set_request($champ,'non'); return $erreurs; }
/** * Vérifications du formulaire de réglage de la modération d'un site * * @param int $id_syndic * Identifiant du site. * @param string $retour * URL de redirection après le traitement * @return array * Erreurs du formulaire **/ function formulaires_regler_moderation_site_verifier_dist($id_syndic, $retour = '') { $erreurs = array(); foreach (array('moderation', 'miroir', 'oubli', 'resume') as $k) { if (!_request($k) or !in_array(_request($k), array('oui', 'non'))) { set_request($k, 'non'); } } return $erreurs; }
/** * Intervient après le changement de statut d'un objet * * @pipeline post_edition * * @param array $flux * Données du pipeline * @return array Données du pipeline */ function reservations_credits_post_edition($flux) { $table = $flux['args']['table']; if ($table == 'spip_evenements') { $statut_ancien = $flux['args']['statut_ancien']; $statut = $flux['data']['statut']; // Si un événement publié est annulé if ($statut_ancien == 'publie' and $statut == 'annule') { set_request('instituer_credit_mouvement', 'credit'); } elseif ($statut_ancien == 'annule' and $statut == 'publie') { set_request('instituer_credit_mouvement', 'debit'); } // On crée les crédits pour chaque détail de réservation payé if ($type = _request('instituer_credit_mouvement')) { set_request('type', $type); $action = charger_fonction('editer_objet', 'action'); if (test_plugin_actif('prix_objets')) { $sql = sql_select('id_reservations_detail, id_auteur, email, spip_reservations_details.prix_ht, spip_reservations_details.prix, spip_reservations_details.taxe, descriptif,code_devise', 'spip_reservations_details LEFT JOIN spip_reservations USING (id_reservation) LEFT JOIN spip_prix_objets USING (id_prix_objet)', 'id_evenement=' . $flux['args']['id_objet'] . ' AND spip_reservations_details.statut="accepte"'); } else { $sql = sql_select('id_reservations_detail, id_auteur, email, prix_ht, prix, taxe,descriptif', 'spip_reservations_details LEFT JOIN spip_reservations USING (id_reservation)', 'id_evenement=' . $flux['args']['id_objet'] . ' AND spip_reservations_details.statut="accepte"'); } $date = date('Y-m-d H:i:s'); while ($data = sql_fetch($sql)) { if (!isset($data['id_auteur']) or !($email = sql_getfetsel('email', 'spip_auteurs', 'id_auteur =' . $data['id_auteur']))) { $email = $data['email']; } if (isset($data['code_devise'])) { set_request('devise', $data['code_devise']); } set_request('email', $email); set_request('id_reservations_detail', $data['id_reservations_detail']); set_request('descriptif', _T('reservation_credit_mouvement:mouvement_evenement_' . $statut, array('titre' => $data['descriptif']))); // On établit le montant if ($data['prix'] > 0) { set_request('montant', $data['prix']); } else { $montant = $data['prix_ht'] + $data['taxe']; set_request('montant', $montant); } set_request('date_creation', $date); // Création du crédit $action('new', 'reservation_credit_mouvement'); } } } return $flux; }
function formulaires_editer_adresse_profil_traiter_dist($id_auteur) { $traiter = charger_fonction("traiter", "formulaires/editer_profil"); $res = $traiter($id_auteur); if (isset($res['message_ok'])) { $res['message_ok'] = _T('editer_profil:message_ok_adresse_profil_modifie'); $res['editable'] = true; set_request('modif'); } return $res; }
function formulaires_configurer_compteur_verifier_dist() { $erreurs = array(); // les checkbox foreach (array('activer_statistiques', 'activer_captures_referers') as $champ) { if (_request($champ) != 'oui') { set_request($champ, 'non'); } } return $erreurs; }
/** * Vérification du fichier $nom * * @param string $nom * @param Object $cfg * @return Object */ function cfg_pre_verifier_cfg_fichier($nom, &$cfg){ $f = cfg_get_info_fichier_upload($nom); // si pas de fichier envoye, on ne traite pas le champ if (!$f['tmp_name']) { unset ($cfg->champs[$nom], $cfg->extensions['cfg_fichier'][$nom]); // sinon indiquer un changement // pour eviter le message d'erreur "pas de changement" } else { set_request($nom, '<OLD>'. $cfg->val[$nom]); } return $cfg; }
function formulaires_editer_groupe_mot_traiter_dist($id_groupe = 'new', $retour = '', $config_fonc = 'groupes_mots_edit_config', $row = array(), $hidden = '') { set_request('redirect', ''); // cas des checkbox : injecter la valeur non si rien de coche foreach (array('obligatoire', 'unseul', 'comite', 'forum', 'minirezo') as $champ) { if (!_request($champ)) { set_request($champ, 'non'); } } $res = formulaires_editer_objet_traiter('groupe_mots', $id_groupe, 0, 0, $retour, $config_fonc, $row, $hidden); return $res; }
function formulaires_inscription_verifier_dist($mode = '', $id = 0) { set_request("_upgrade_auteur"); // securite include_spip('inc/filtres'); $erreurs = array(); include_spip('inc/autoriser'); if (!autoriser('inscrireauteur', $mode, $id) or strlen(_request('nobot')) > 0) { $erreurs['message_erreur'] = _T('pass_rien_a_faire_ici'); } if (!($nom = _request('nom_inscription'))) { $erreurs['nom_inscription'] = _T("info_obligatoire"); } elseif (!nom_acceptable(_request('nom_inscription'))) { $erreurs['nom_inscription'] = _T("ecrire:info_nom_pas_conforme"); } if (!($mail = strval(_request('mail_inscription')))) { $erreurs['mail_inscription'] = _T("info_obligatoire"); } // compatibilite avec anciennes fonction surchargeables // plus de definition par defaut if (!count($erreurs)) { include_spip('action/inscrire_auteur'); if (function_exists('test_inscription')) { $f = 'test_inscription'; } else { $f = 'test_inscription_dist'; } $declaration = $f($mode, $mail, $nom, $id); if (is_string($declaration)) { $k = strpos($declaration, 'mail') !== false ? 'mail_inscription' : 'nom_inscription'; $erreurs[$k] = _T($declaration); } else { include_spip('base/abstract_sql'); if ($row = sql_fetsel("statut, id_auteur, login, email", "spip_auteurs", "email=" . sql_quote($declaration['email']))) { if ($row['statut'] == '5poubelle' and !$declaration['pass']) { $erreurs['message_erreur'] = _T('form_forum_access_refuse'); } else { if ($row['statut'] != 'nouveau' and !$declaration['pass']) { if (intval($row['statut']) > intval($mode)) { set_request("_upgrade_auteur", $row['id_auteur']); } else { // deja inscrit $erreurs['message_erreur'] = _T('form_forum_email_deja_enregistre'); } } } spip_log($row['id_auteur'] . " veut se resinscrire"); } } } return $erreurs; }
function formulaires_configurer_forums_contenu_verifier_dist() { $erreurs = array(); if (!_request('forums_titre') and !_request('forums_texte') and !_request('forums_urlref')) { $erreurs['forums_titre'] = _T('info_obligatoire'); } foreach (array('forums_titre', 'forums_texte', 'forums_urlref', 'forums_afficher_barre', 'forums_forcer_previsu') as $champ) { if (_request($champ) !== 'oui') { set_request($champ, 'non'); } } return $erreurs; }
/** * Inscription rapide d'un client, sans confirmation email, par simple saisie email * Si inscriptions pas autorisees, retourner une chaine d'avertissement * * @param string $statut * @param string $retour * @return array */ function formulaires_inscription_rapide_verifier_dist($statut = '6forum', $retour = '') { // fournir le nom à partir de l'email $nom = _request('mail_inscription'); $nom = explode('@', $nom); $nom = reset($nom); $nom = preg_replace(",[-_\\.],", " ", $nom); $nom = ucwords($nom); set_request('nom_inscription', $nom); $inscription_verifier = charger_fonction("verifier", "formulaires/inscription"); $erreurs = $inscription_verifier($statut); return $erreurs; }
function formulaires_configurer_identite_traiter_dist() { include_spip('inc/config'); set_request('adresse_site', appliquer_adresse_site(_request('adresse_site'))); include_spip('inc/meta'); foreach (array('nom_site', 'slogan_site', 'descriptif_site', 'email_webmaster') as $k) { ecrire_meta($k, _request($k)); } include_spip('inc/texte_mini'); $reload = texte_script(couper(_request('nom_site'), 35)); $reload = "<script type='text/javascript'>if (window.jQuery) jQuery('#bando_identite .nom_site_spip .nom').html('{$reload}');</script>"; return array('message_ok' => _T('config_info_enregistree') . $reload, 'editable' => true); }
function formulaires_editer_profil_traiter_dist($id_auteur) { refuser_traiter_formulaire_ajax(); $auteur = sql_fetsel('*', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)); $new_email = ""; // si l'email change if (_request('email') and _request('email') !== $auteur['email']) { $new_email = _request('email'); // si c'etait le login, changer aussi le login if ($auteur['email'] == $auteur['login']) { set_request('login', _request('email')); } } include_spip('inc/editer'); // renseigner le nom de la table auteurs (s'il n'a pas été renseigné) if (!_request('nom')) { set_request('nom', _request('prenom') . ' ' . _request('name')); } $res = formulaires_editer_objet_traiter('auteur', $id_auteur); // si l'email change if ($new_email) { // securite si jamais la modif en base n'a pas eu lieu $new_email = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)); // updater les abonnements dans mailsubscribers // si jamais il y a deja in subscriber sur le nouveau mail, ca ne fera rien, et l'ancien email continuera a recevoir // a charge pour l'utilisateur de se desabonner manuellement sur l'ancien if (test_plugin_actif("mailsubscribers")) { sql_updateq("spip_mailsubscribers", array('email' => $new_email), "email=" . sql_quote($auteur['email'])); } } /* if ($email = _request('email')){ if (_request('newsletter')){ $subscribe = charger_fonction("subscribe","newsletter"); $subscribe($email,array('nom'=>_request('nom'),'listes'=>array('profils'),'force'=>true)); } else { $unsubscribe = charger_fonction("unsubscribe","newsletter"); $unsubscribe($email,array('listes'=>array('profils'))); } set_request('newsletter'); } */ if (isset($res['message_ok'])) { $res['message_ok'] = _T('editer_profil:message_ok_profil_modifie'); $res['editable'] = true; } return $res; }
function action_autosubscribe_newsletter_dist($email = null) { if (is_null($email)) { // pas d'espace dans une adresse mail mais des + qui sont malheureusement urldecode if (strpos(_request('arg'), " ") !== false) { set_request('arg', str_replace(" ", "+", _request('arg'))); } $securiser_action = charger_fonction("securiser_action", "inc"); $email = $securiser_action(); } // autosubscribe immediat sans double optin $subscribe = charger_fonction("subscribe", "newsletter"); $subscribe($email, array('force' => true, 'listes' => array('newsletter'))); }