示例#1
0
function formulaires_fusionner_profil_traiter_dist($id_auteur)
{
    refuser_traiter_formulaire_ajax();
    $res = array('message_ok' => _T('profils:message_fusion_profil_ok'));
    if ($id = _request('id_profil_import')) {
        $profils_fusionner = charger_fonction('profils_fusionner', 'inc');
        $profils_fusionner($id_auteur, $id);
    }
    return $res;
}
示例#2
0
function formulaires_configurer_langage_traiter_dist()
{
    include_spip('action/converser');
    action_converser_changer_langue(true);
    refuser_traiter_formulaire_ajax();
    // on ne peut pas changer la langue pour tout le hit ici,
    // car CVT repasse derriere et retablit la langue avant l'appel a traiter()
    // il faut rediriger !
    return array('message_ok' => _T('config_info_enregistree'), 'editable' => true, 'redirect' => self());
}
function formulaires_editer_adresse_traiter_dist($id_adresse = 'new', $objet = '', $id_objet = '', $retour = '')
{
    // si redirection demandee, on refuse le traitement en ajax
    if ($retour) {
        refuser_traiter_formulaire_ajax();
    }
    $retours = formulaires_editer_objet_traiter('adresse', $id_adresse, '', '', $retour, '');
    $retours['editable'] = true;
    $retours['message_ok'] = _T('vacarme_commande:message_modification_enregistree');
    return $retours;
}
function formulaires_vacarme_editer_contact_traiter_dist($id_contact = 'new', $id_organisation = 0, $redirect = '')
{
    if ($redirect) {
        refuser_traiter_formulaire_ajax();
    }
    $res = formulaires_editer_objet_traiter('contact', $id_contact, $id_organisation, 0, $redirect);
    if ($redirect) {
        $res['redirect'] = $redirect;
    }
    $res['editable'] = true;
    $res['message_ok'] = _T('vacarme_commande:message_modification_enregistree');
    return $res;
}
示例#5
0
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;
}
示例#6
0
function formulaires_annuaire_tri_traiter($articles = null, $url = null) {
  refuser_traiter_formulaire_ajax();
  $mots = _request('mots');
  // supprimer les valeurs vides du tableau mots
  $mots = array_filter($mots, function($a){
    return is_string($a) && trim($a) !== "";
  });
  if (!$url) {
    $url = self();
  }
  // Nettoyer l'URL des mots[] qu'elle contiendrait deja
  $url = parametre_url($url,'mots','');
  $url = parametre_url($url, 'mots', $mots);
	return array('redirect' => $url);
}
示例#7
0
function formulaires_configurer_identite_traiter_dist()
{
    include_spip('inc/config');
    $adresse_site = isset($GLOBALS['meta']['adresse_site']) ? $GLOBALS['meta']['adresse_site'] : '';
    if (_request('adresse_site') != $adresse_site) {
        refuser_traiter_formulaire_ajax();
    }
    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);
}
/**
 * Traitements du formulaire de préférences d'un auteur dans l'espace privé
 *
 * @return array
 *     Retours des traitements
 **/
function formulaires_configurer_preferences_traiter_dist()
{
    // si le menudev change, on recharge toute la page…
    if (!isset($GLOBALS['visiteur_session']['prefs']['activer_menudev']) or $GLOBALS['visiteur_session']['prefs']['activer_menudev'] != _request('activer_menudev')) {
        refuser_traiter_formulaire_ajax();
    }
    if ($couleur = _request('couleur')) {
        $GLOBALS['visiteur_session']['prefs']['couleur'] = $couleur;
    }
    if ($display = _request('display')) {
        $GLOBALS['visiteur_session']['prefs']['display'] = $display;
    }
    if ($display_navigation = _request('display_navigation')) {
        $GLOBALS['visiteur_session']['prefs']['display_navigation'] = $display_navigation;
    }
    if (!is_null($display_outils = _request('display_outils'))) {
        $GLOBALS['visiteur_session']['prefs']['display_outils'] = $display_outils;
    }
    if ($menudev = _request('activer_menudev')) {
        $GLOBALS['visiteur_session']['prefs']['activer_menudev'] = $menudev;
    }
    if (intval($GLOBALS['visiteur_session']['id_auteur'])) {
        include_spip('action/editer_auteur');
        $c = array('prefs' => serialize($GLOBALS['visiteur_session']['prefs']));
        if (_request('imessage')) {
            $c['imessage'] = _request('imessage');
        }
        auteur_modifier($GLOBALS['visiteur_session']['id_auteur'], $c);
    }
    if ($spip_ecran = _request('spip_ecran')) {
        // Poser un cookie,
        // car ce reglage depend plus du navigateur que de l'utilisateur
        $GLOBALS['spip_ecran'] = $spip_ecran;
        include_spip('inc/cookie');
        spip_setcookie('spip_ecran', $_COOKIE['spip_ecran'] = $spip_ecran, time() + 365 * 24 * 3600);
    }
    return array('message_ok' => _T('config_info_enregistree'), 'editable' => true);
}
function formulaires_vacarme_inscription_client_traiter_dist($retour = '', $url = '')
{
    // Si redirection demandée, on refuse le traitement en ajax
    if ($retour) {
        refuser_traiter_formulaire_ajax();
    }
    // Le pseudo SPIP est construit
    set_request('nom_inscription', trim(_request('prenom') . ' ' . _request('nom')));
    // On active le traitement du formulaire d'inscription classique, donc on crée un nouvel utilisateur
    if (!($id_auteur = verifier_session())) {
        $mode = tester_config(0);
        $inscription_dist = charger_fonction('traiter', 'formulaires/inscription');
        $retours = $inscription_dist($mode, '');
        $id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'email = ' . sql_quote(_request('mail_inscription')));
    }
    // On récupère l'auteur qu'on vient de créer avec l'email du form
    if ($id_auteur) {
        // On ajoute des infos au contexte
        set_request('objet', 'auteur');
        set_request('id_objet', $id_auteur);
        set_request('type', 'principale');
        // On crée un contact pour cet utilisateur
        $editer_contact = charger_fonction('editer_contact', 'action/');
        list($id_contact, $err) = $editer_contact('nouveau');
        // on ajoute les infos propres au plugin vacarme_commande : organisation, service, type_client
        $type_client = _request('type_client');
        if ($type_client == 'organisation') {
            $organisation = _request('organisation');
            $service = _request('service');
            sql_updateq('spip_contacts', array('type_client' => $type_client, 'organisation' => $organisation, 'service' => $service), "id_contact=" . intval($id_contact));
        } else {
            sql_updateq('spip_contacts', array('type_client' => $type_client), "id_contact=" . intval($id_contact));
        }
        //On lie le contact à l'auteur
        sql_insertq('spip_contacts_liens', array('id_objet' => $id_auteur, 'objet' => 'auteur', "id_contact" => $id_contact));
        //assurer la compatibilite
        sql_updateq('spip_contacts', array('id_auteur' => $id_auteur), "id_contact=" . intval($id_contact));
        // On crée l'adresse
        $editer_adresse = charger_fonction('editer_adresse', 'action/');
        $editer_adresse('oui');
        // On crée le numero de tel
        set_request('type', 'principal');
        $editer_numero = charger_fonction('editer_numero', 'action/');
        $editer_numero('oui');
        // On crée le portable
        if (_request('portable')) {
            // on stocke cette donnee
            $numero = _request('numero');
            set_request('numero', _request('portable'));
            set_request('type', 'portable');
            set_request('titre', 'Portable');
            $editer_portable = charger_fonction('editer_numero', 'action/');
            $editer_portable('oui');
        }
        // On crée le fax
        if (_request('fax')) {
            // on stocke cette donnee si elle ne l'est pas deja
            $numero ? '' : ($numero = _request('numero'));
            set_request('numero', _request('fax'));
            set_request('type', 'fax');
            set_request('titre', 'Fax');
            $editer_fax = charger_fonction('editer_numero', 'action/');
            $editer_fax('oui');
        }
    }
    // si necessaire on replace la bonne donnee dans l'environnement
    $numero ? set_request('numero', $numero) : '';
    // Comme conseillé dans la documentation on informe de l'id auteur inscrit
    $retours['id_auteur'] = $id_auteur;
    if ($retours['message_ok']) {
        $lien = generer_url_public("compte", "c=identification");
        if ($url) {
            $lien = parametre_url($lien, 'retour', $url);
            $retours['message_ok'] = _T('vacarme_commande:formulaire_inscription_message_ok', array(url => $lien));
        } else {
            $retours['message_ok'] = _T('vacarme_commande:formulaire_inscription_message_ok', array(url => $lien));
        }
    }
    if ($retour) {
        $retours['redirect'] = $retour;
    }
    return $retours;
}
示例#10
0
function signature_a_confirmer($id_article, $url_page, $nom, $mail, $site, $url, $msg, $lang, &$statut)
{
    include_spip('inc/texte');
    include_spip('inc/filtres');
    // Si on est deja connecte et que notre mail a ete valide d'une maniere
    // ou d'une autre, on entre directement la signature dans la base, sans
    // envoyer d'email. Sinon email de verification
    if (isset($GLOBALS['visiteur_session']['statut']) and $GLOBALS['visiteur_session']['session_email'] == $GLOBALS['visiteur_session']['email'] and strlen($GLOBALS['visiteur_session']['email']) or isset($GLOBALS['visiteur_session']['email_confirme']) and $GLOBALS['visiteur_session']['session_email'] == $GLOBALS['visiteur_session']['email_confirme'] and strlen($GLOBALS['visiteur_session']['session_email'])) {
        // Si on est en ajax on demande a reposter sans ajax, car il faut
        // recharger toute la page pour afficher la signature
        refuser_traiter_formulaire_ajax();
        $statut = 'publie';
        // invalider le cache !
        include_spip('inc/invalideur');
        suivre_invalideur("id='article/{$id_article}'");
        // message de reussite
        return _T('petitions:form_pet_signature_validee');
    }
    //
    // Cas normal : envoi d'une demande de confirmation
    //
    $row = sql_fetsel('titre,lang', 'spip_articles', "id_article=" . intval($id_article));
    $lang = lang_select($row['lang']);
    $titre = textebrut(typo($row['titre']));
    if ($lang) {
        lang_select();
    }
    if (!strlen($statut)) {
        $statut = signature_test_pass();
    }
    if ($lang != $GLOBALS['meta']['langue_site']) {
        $url_page = parametre_url($url_page, "lang", $lang, '&');
    }
    $url_page = parametre_url($url_page, 'var_confirm', $statut, '&') . "#sp{$id_article}";
    $r = _T('petitions:form_pet_mail_confirmation', array('titre' => $titre, 'nom_email' => $nom, 'nom_site' => $site, 'url_site' => $url, 'url' => $url_page, 'message' => $msg));
    $titre = _T('petitions:form_pet_confirmation') . " " . $titre;
    $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
    if ($envoyer_mail($mail, $titre, $r)) {
        return _T('petitions:form_pet_envoi_mail_confirmation', array('email' => $mail));
    }
    return false;
    # erreur d'envoi de l'email
}
示例#11
0
文件: forum.php 项目: rhertzog/lcs
function formulaires_forum_traiter_dist() {
	// le formulaire forum n'est jamais traite en ajax car il s'acheve par une redirection vers
	// la bonne page qui doit etre reaffichee dans son ensemble
	refuser_traiter_formulaire_ajax();

	$forum_insert = charger_fonction('forum_insert', 'inc');

	list($redirect,$id_forum) = $forum_insert();
	return array('redirect'=>$redirect,'id_forum'=>$id_forum);
}
示例#12
0
文件: dater.php 项目: JLuc/SPIP
/**
 * Traitement du formulaire d'édition d'une date
 *
 * @param string $objet
 *     Type d'objet
 * @param int $id_objet
 *     Identifiant de l'objet
 * @param string $retour
 *     URL de redirection après le traitement
 * @param array|string $options
 *     Options.
 * @return Array
 *     Retours des traitements
 */
function formulaires_dater_traiter_dist($objet, $id_objet, $retour = '', $options = array())
{
    $res = array('editable' => ' ');
    if (_request('changer')) {
        $_id_objet = id_table_objet($objet);
        $table = table_objet($objet);
        $trouver_table = charger_fonction('trouver_table', 'base');
        $desc = $trouver_table($table);
        if (!$desc) {
            return array('message_erreur' => _L('erreur'));
        }
        #impossible en principe
        $champ_date = $desc['date'] ? $desc['date'] : 'date';
        $set = array();
        $charger = charger_fonction("charger", "formulaires/dater/");
        $v = $charger($objet, $id_objet, $retour, $options);
        if ($v['_editer_date']) {
            if (!($d = dater_recuperer_date_saisie(_request('date_jour')))) {
                $d = array(date('Y'), date('m'), date('d'));
            }
            if (!($h = dater_recuperer_heure_saisie(_request('date_heure')))) {
                $h = array(0, 0);
            }
            $set[$champ_date] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]);
        }
        if (isset($desc['field']['date_redac']) and $v['_editer_date_anterieure']) {
            if (!_request('date_redac_jour') or _request('sans_redac')) {
                $set['date_redac'] = sql_format_date(0, 0, 0, 0, 0, 0);
            } else {
                if (!($d = dater_recuperer_date_saisie(_request('date_redac_jour'), "date_redac"))) {
                    $d = array(date('Y'), date('m'), date('d'));
                }
                if (!($h = dater_recuperer_heure_saisie(_request('date_redac_heure')))) {
                    $h = array(0, 0);
                }
                $set['date_redac'] = sql_format_date($d[0], $d[1], $d[2], $h[0], $h[1]);
            }
        }
        if (count($set)) {
            $publie_avant = objet_test_si_publie($objet, $id_objet);
            include_spip('action/editer_objet');
            objet_modifier($objet, $id_objet, $set);
            $publie_apres = objet_test_si_publie($objet, $id_objet);
            if ($publie_avant !== $publie_apres) {
                // on refuse ajax pour forcer le rechargement de la page ici
                // on refera traiter une 2eme fois, mais c'est sans consequence
                refuser_traiter_formulaire_ajax();
            }
        }
    }
    if ($retour) {
        $res['redirect'] = $retour;
    }
    set_request('date_jour');
    set_request('date_redac_jour');
    set_request('date_heure');
    set_request('date_redac_heure');
    return $res;
}
示例#13
0
function signature_a_confirmer($id_article, $url_page, $nom, $mail, $site, $url, $msg, $lang, &$statut)
{

	// Si on est deja connecte et que notre mail a ete valide d'une maniere
	// ou d'une autre, on entre directement la signature dans la base, sans
	// envoyer d'email. Sinon email de verification
	if (
		// Cas 1: on est loge et on signe avec son vrai email
		(
		isset($GLOBALS['visiteur_session']['statut'])
		AND $GLOBALS['visiteur_session']['session_email'] == $GLOBALS['visiteur_session']['email']
		AND strlen($GLOBALS['visiteur_session']['email'])
		)

		// Cas 2: on a deja signe une petition, et on conserve le meme email
		OR (
		isset($GLOBALS['visiteur_session']['email_confirme'])
		AND $GLOBALS['visiteur_session']['session_email'] == $GLOBALS['visiteur_session']['email_confirme']
		AND strlen($GLOBALS['visiteur_session']['session_email'])
		)
	) {
		// Si on est en ajax on demande a reposter sans ajax, car il faut
		// recharger toute la page pour afficher la signature
		refuser_traiter_formulaire_ajax();

		$statut = 'publie';
		// invalider le cache !
		include_spip('inc/invalideur');
		suivre_invalideur("id='varia/pet$id_article'");

		// message de reussite : en ajax, preciser qu'il faut recharger la page
		// pour voir le resultat
		return
			_T('form_pet_signature_validee');
	}

	//
	// Cas normal : envoi d'une demande de confirmation
	//

	list($titre, $url_page) = signature_langue($id_article, $url_page);

	if (!strlen($statut))
		$statut = signature_test_pass();

	list($sujet, $corps) =  signature_demande_confirmation($id_article, $url_page, $nom, $site, $url, $msg, $titre, $statut);

	$envoyer_mail = charger_fonction('envoyer_mail','inc');
	if ($envoyer_mail($mail, $sujet, $corps))
		return _T('form_pet_envoi_mail_confirmation',array('email'=>$mail));
	return false; # erreur d'envoi de l'email
}
示例#14
0
/**
 * Traitement du formulaire de gestion des plugins
 *
 * Si une liste d'action est validée, on redirige de formulaire sur
 * l'action 'actionner' qui les traitera une par une.
 *
 * @uses svp_actionner_traiter_actions_demandees()
 *
 * @param string $voir
 *     Statut des plugins que l'on souhaite voir : actif, inactif, tous
 * @param string $verrouille
 *     Types de plugins que l'on souhaite voir :
 *     - 'non' : les plugins utilisateurs
 *     - 'oui' : les plugins verrouillés (plugins-dist)
 *     - 'tous' : les deux !
 * @param string|int $id_paquet
 *     Identifiant du paquet dont on veut obtenir une description complète
 *     lors de l'affichage du formulaire
 * @param string $redirect
 *     URL de redirection après les traitements
 * @return array
 *     Retours du traitement
 **/
function formulaires_admin_plugin_traiter_dist($voir = 'actif', $verrouille = 'non', $id_paquet = '', $redirect = '')
{
    $retour = array();
    if (_request('valider_actions')) {
        refuser_traiter_formulaire_ajax();
        // Ajout de la liste des actions à l'actionneur
        // c'est lui qui va effectuer rellement les actions
        // lors de l'appel de action/actionner
        $actions = unserialize(_request('_todo'));
        include_spip('inc/svp_actionner');
        svp_actionner_traiter_actions_demandees($actions, $retour, $redirect);
    }
    $retour['editable'] = true;
    return $retour;
}
示例#15
0
/**
 * Modification du mot de passe d'un auteur.
 * Utilise le cookie d'oubli fourni en url ou l'argument du formulaire pour identifier l'auteur
 *
 * @param int $id_auteur
 */
function formulaires_mot_de_passe_traiter_dist($id_auteur = null, $jeton = null)
{
    $res = array('message_ok' => '');
    refuser_traiter_formulaire_ajax();
    // puisqu'on va loger l'auteur a la volee (c'est bonus)
    // compatibilite anciens appels du formulaire
    if (is_null($jeton)) {
        $jeton = _request('p');
    }
    $row = retrouve_auteur($id_auteur, $jeton);
    if ($row && ($id_auteur = $row['id_auteur']) && ($oubli = _request('oubli'))) {
        include_spip('action/editer_auteur');
        include_spip('action/inscrire_auteur');
        if ($err = auteur_modifier($id_auteur, array('pass' => $oubli))) {
            $res = array('message_erreur' => $err);
        } else {
            auteur_effacer_jeton($id_auteur);
            $login = $row['login'];
            $res['message_ok'] = "<b>" . _T('pass_nouveau_enregistre') . "</b>" . "<br />" . _T('pass_rappel_login', array('login' => $login));
            include_spip('inc/auth');
            $row = sql_fetsel("*", "spip_auteurs", "id_auteur=" . intval($id_auteur));
            auth_loger($row);
        }
    }
    return $res;
}
示例#16
0
/**
 * Traitement de l'upload d'un logo
 *
 * Il est affecte au site si la balise n'est pas dans une boucle,
 * sinon a l'objet concerne par la boucle ou indiquee par les parametres d'appel
 *
 * @param integer $id_auteur    Identifiant de l'auteur
 * @param string $retour       Url de redirection apres traitement
 * @param Array $options       Tableau d'option (exemple : image_reduire => 50)
 * @return Array
 */
function formulaires_editer_avatar_traiter_dist($id_auteur, $retour = '', $options = array())
{
    if (!_request('supprimer_logo_on')) {
        refuser_traiter_formulaire_ajax();
    }
    $traiter = charger_fonction("traiter", "formulaires/editer_logo");
    $res = $traiter("auteur", $id_auteur, $retour, $options);
    return $res;
}