function formulaires_editer_breve_verifier_dist($id_breve = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'breves_edit_config', $row = array(), $hidden = '') { // auto-renseigner le titre si il n'existe pas titre_automatique('titre', array('texte')); // on ne demande pas le titre obligatoire : il sera rempli a la volee dans editer_article si vide $erreurs = formulaires_editer_objet_verifier('breve', $id_breve, array('id_parent')); return $erreurs; }
function formulaires_editer_article_verifier_dist($id_article = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'articles_edit_config', $row = array(), $hidden = '') { // auto-renseigner le titre si il n'existe pas titre_automatique('titre', array('descriptif', 'chapo', 'texte')); // on ne demande pas le titre obligatoire : il sera rempli a la volee dans editer_article si vide $erreurs = formulaires_editer_objet_verifier('article', $id_article, array('id_parent')); if (!function_exists('autoriser')) { include_spip('inc/autoriser'); } // si on utilise le formulaire dans le public if (!isset($erreurs['id_parent']) and !autoriser('creerarticledans', 'rubrique', _request('id_parent'))) { $erreurs['id_parent'] = _T('info_creerdansrubrique_non_autorise'); } return $erreurs; }
function formulaires_editer_auteur_public_verifier_dist($id_auteur = 'new', $retour = '', $associer_objet = '', $config_fonc = 'auteurs_edit_config', $row = array(), $hidden = '') { // auto-renseigner le nom si il n'existe pas, sans couper titre_automatique('nom', array('email', 'login'), 255); // mais il reste obligatoire si on a rien trouve $erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, array('nom')); $auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)); $auth_methode = $auth_methode ? $auth_methode : 'spip'; include_spip('inc/auth'); if ($email = _request('email')) { include_spip('inc/filtres'); include_spip('inc/autoriser'); // un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un if (!autoriser('modifier', 'auteur', $id_auteur, null, array('email' => '?')) and $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur and !strlen(trim($email)) and $email != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))) { $erreurs['email'] = $id_auteur == $GLOBALS['visiteur_session']['id_auteur'] ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'); } else { if (!email_valide($email)) { $erreurs['email'] = $id_auteur == $GLOBALS['visiteur_session']['id_auteur'] ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'); } } } if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)) { $erreurs['new_login'] = $err; $erreurs['message_erreur'] .= $err; } else { // pass trop court ou confirmation non identique if ($p = _request('new_pass')) { if ($p != _request('new_pass2')) { $erreurs['new_pass'] = _T('info_passes_identiques'); $erreurs['message_erreur'] .= _T('info_passes_identiques'); } elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'), $p, $id_auteur)) { $erreurs['new_pass'] = $err; $erreurs['message_erreur'] .= $err; } } } 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', 'id_parent'); // 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['verif_url_auto'] = _T('sites:texte_referencement_automatique_verifier', array('url' => $u)); } else { $erreurs['url_auto'] = _T('sites:avis_site_introuvable'); } } else { // auto-renseigner le titre si il n'existe pas // d'abord a partir du descriptif en coupant titre_automatique('nom_site', array('descriptif')); // et sinon l'url du site, sans couper titre_automatique('nom_site', array('url_site'), 255); $erreurs = formulaires_editer_objet_verifier('site', $id_syndic, $oblis); } return $erreurs; }
/** * Vérifications du formulaire d'édition d'un auteur * * Vérifie en plus des vérifications prévues : * - qu'un rédacteur ne peut pas supprimer son adresse mail, * - que le mot de passe choisi n'est pas trop court et identique à sa * deuxième saisie * * @see formulaires_editer_objet_verifier() * * @param int|string $id_auteur * Identifiant de l'auteur. 'new' pour une nouvel auteur. * @param string $retour * URL de redirection après le traitement * @param string $associer_objet * Éventuel 'objet|x' indiquant de lier le mot créé à cet objet, * tel que 'article|3' * @param string $config_fonc * Nom de la fonction ajoutant des configurations particulières au formulaire * @param array $row * Valeurs de la ligne SQL de l'auteur, si connu * @param string $hidden * Contenu HTML ajouté en même temps que les champs cachés du formulaire. * @return array * Erreurs des saisies **/ function formulaires_editer_auteur_verifier_dist($id_auteur = 'new', $retour = '', $associer_objet = '', $config_fonc = 'auteurs_edit_config', $row = array(), $hidden = '') { // auto-renseigner le nom si il n'existe pas, sans couper titre_automatique('nom', array('email', 'login'), 255); // mais il reste obligatoire si on a rien trouve $erreurs = formulaires_editer_objet_verifier('auteur', $id_auteur, array('nom')); $auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)); $auth_methode = $auth_methode ? $auth_methode : 'spip'; include_spip('inc/auth'); if (!nom_acceptable(_request('nom'))) { $erreurs['nom'] = _T("info_nom_pas_conforme"); } if ($email = _request('email')) { include_spip('inc/filtres'); include_spip('inc/autoriser'); // un redacteur qui modifie son email n'a pas le droit de le vider si il y en avait un if (!autoriser('modifier', 'auteur', $id_auteur, null, array('email' => '?')) and $GLOBALS['visiteur_session']['id_auteur'] == $id_auteur and !strlen(trim($email)) and $email != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))) { $erreurs['email'] = $id_auteur == $GLOBALS['visiteur_session']['id_auteur'] ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'); } else { if (!email_valide($email)) { $erreurs['email'] = $id_auteur == $GLOBALS['visiteur_session']['id_auteur'] ? _T('form_email_non_valide') : _T('form_prop_indiquer_email'); } } # Ne pas autoriser d'avoir deux auteurs avec le même email # cette fonctionalité nécessite que la base soit clean à l'activation : pas de # doublon sur la requête select email,count(*) from spip_auteurs group by email ; if (defined('_INTERDIRE_AUTEUR_MEME_EMAIL')) { #Nouvel auteur if (intval($id_auteur) == 0) { #Un auteur existe deja avec cette adresse ? if (sql_countsel("spip_auteurs", "email=" . sql_quote($email)) > 0) { $erreurs['email'] = _T('erreur_email_deja_existant'); } } else { #Un auteur existe deja avec cette adresse ? et n'est pas le user courant. if (sql_countsel("spip_auteurs", "email=" . sql_quote($email)) > 0 and $id_auteur != ($id_auteur_ancien = sql_getfetsel('id_auteur', 'spip_auteurs', "email=" . sql_quote($email)))) { $erreurs['email'] = _T('erreur_email_deja_existant'); } } } } if (preg_match(",^\\s*javascript,i", _request('url_site'))) { $erreurs['url_site'] = _T('info_url_site_pas_conforme'); } $erreurs['message_erreur'] = ''; if ($err = auth_verifier_login($auth_methode, _request('new_login'), $id_auteur)) { $erreurs['new_login'] = $err; $erreurs['message_erreur'] .= $err; } else { // pass trop court ou confirmation non identique if ($p = _request('new_pass')) { if ($p != _request('new_pass2')) { $erreurs['new_pass'] = _T('info_passes_identiques'); $erreurs['message_erreur'] .= _T('info_passes_identiques'); } elseif ($err = auth_verifier_pass($auth_methode, _request('new_login'), $p, $id_auteur)) { $erreurs['new_pass'] = $err; $erreurs['message_erreur'] .= $err; } } } if (!$erreurs['message_erreur']) { unset($erreurs['message_erreur']); } return $erreurs; }