Пример #1
0
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;
}
Пример #2
0
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_vacarme_editer_email_auteur_traiter_dist($id_auteur = 'new')
{
    $retours = array();
    $retours = formulaires_editer_objet_traiter('auteur', $id_auteur, '', '', '', '');
    $retours['editable'] = true;
    $retours['message_ok'] = _T('vacarme_commande:message_modification_enregistree');
    return $retours;
}
Пример #4
0
function formulaires_regler_moderation_site_traiter_dist($id_syndic, $retour = '')
{
    $res = formulaires_editer_objet_traiter('site', $id_syndic, 0, 0, $retour, '');
    $res['editable'] = true;
    if (!isset($res['message_erreur'])) {
        $res['message_ok'] = _T('config_info_enregistree');
    }
    return $res;
}
Пример #5
0
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;
}
Пример #6
0
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_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;
}
function formulaires_public_editer_article_traiter_dist($id_article = 'new', $id_rubrique = 0, $retour = '', $lier_trad = 0, $config_fonc = 'articles_edit_config', $row = array(), $hidden = '')
{
    //Traitement principal
    $res = formulaires_editer_objet_traiter('article', $id_article, $id_rubrique, $lier_trad, $retour, $config_fonc, $row, $hidden);
    //Ajout du champ id_consigne
    $id_consigne = _request('id_consigne');
    $id_article1 = $res['id_article'];
    if (isset($id_consigne) && isset($id_article1)) {
        sql_updateq("spip_articles", array("id_consigne" => $id_consigne, "statut" => "publie"), "id_article={$id_article1}");
    }
    //Mail
    if ($id_article == '') {
        //$res['redirect']="spip.php?page=sommaire_recharge&type_objet=reponse&id_article=$id_article&id_consigne=$id_consigne";
        $date = date('Y-m-d H:i:s');
        if ($notifications = charger_fonction('notifications', 'inc')) {
            $notifications('instituerarticle', $id_article1, array('statut' => 'publie', 'statut_ancien' => 'propose', 'date' => $date));
        }
    }
    //Redirection
    //	$res['redirect']="spip.php?page=article&id_article=$id_article1&id_consigne=$id_consigne";
    // $res['redirect']="spip.php?google=yahoo";
    // TODO
    return $res;
}
Пример #9
0
/**
 * Traitements du formulaire d'édition de site
 *
 * @uses formulaires_editer_objet_traiter()
 *
 * @param int|string $id_syndic
 *     Identifiant du site. 'new' pour un nouveau site.
 * @param int $id_rubrique
 *     Identifiant de la rubrique parente (si connue)
 * @param string $retour
 *     URL de redirection après le traitement
 * @param int $lier_trad
 *     Identifiant éventuel d'un site source de traduction
 * @param string $config_fonc
 *     Nom de la fonction ajoutant des configurations particulières au formulaire
 * @param array $row
 *     Valeurs de la ligne SQL du mot, si connu
 * @param string $hidden
 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
 * @return array
 *     Erreurs du formulaire
 */
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);
}
Пример #10
0
function formulaires_editer_auteur_traiter_dist($id_auteur='new', $retour='', $lier_article=0, $config_fonc='auteurs_edit_config', $row=array(), $hidden=''){
	if (_request('saisie_webmestre') OR _request('webmestre'))
		set_request('webmestre',_request('webmestre')?_request('webmestre'):'non');
	$retour = parametre_url($retour, 'email_confirm','');

	if (!autoriser('modifier','auteur',$id_auteur,null,array('email'=>'?'))){
		$email_nouveau = _request('email');
		set_request('email'); // vider la saisie car l'auteur n'a pas le droit de modifier cet email
		// mais si c'est son propre profil on lui envoie un email à l'adresse qu'il a indique
		// pour qu'il confirme qu'il possede bien cette adresse
		// son clic sur l'url du message permettre de confirmer le changement
		// et de revenir sur son profil
		if ($GLOBALS['visiteur_session']['id_auteur']==$id_auteur
			AND $email_nouveau!=($email_ancien=sql_getfetsel('email', 'spip_auteurs', 'id_auteur='.intval($id_auteur)))){
			$envoyer_mail = charger_fonction('envoyer_mail','inc');
			$texte = _T('form_auteur_mail_confirmation',
											array('url'=>generer_action_auteur('confirmer_email', $email_nouveau,parametre_url($retour, 'email_modif','ok'))));
			$envoyer_mail($email_nouveau,_T('form_auteur_confirmation'),$texte);
			set_request('email_confirm',$email_nouveau);
			if ($email_ancien)
				$envoyer_mail($email_ancien,_T('form_auteur_confirmation'),_T('form_auteur_envoi_mail_confirmation',array('email'=>$email_nouveau)));
			$retour = parametre_url($retour, 'email_confirm',$email_nouveau);
		}
	}

	$res = formulaires_editer_objet_traiter('auteur',$id_auteur,0,0,$retour,$config_fonc,$row,$hidden);
	return $res;
}
Пример #11
0
function formulaires_editer_document_traiter_dist($id_document = 'new', $id_parent = '', $retour = '', $lier_trad = 0, $config_fonc = 'documents_edit_config', $row = array(), $hidden = '')
{
    if (is_null(_request('parents'))) {
        set_request('parents', array());
    }
    // verifier les infos de taille et dimensions sur les fichiers locaux
    // cas des maj de fichier directes par ftp
    foreach (array('taille', 'largeur', 'hauteur') as $c) {
        if ($v = _request("_{$c}_modif") and !_request($c)) {
            set_request($c, $v);
        }
    }
    $res = formulaires_editer_objet_traiter('document', $id_document, $id_parent, $lier_trad, $retour, $config_fonc, $row, $hidden);
    set_request('parents');
    $autoclose = "<script type='text/javascript'>if (window.jQuery) jQuery.modalboxclose();</script>";
    if (_request('copier_local') or _request('joindre_upload') or _request('joindre_ftp') or _request('joindre_distant') or _request('joindre_zip')) {
        $autoclose = "";
        if (_request('copier_local')) {
            $copier_local = charger_fonction('copier_local', 'action');
            $res = array('editable' => true);
            if (($err = $copier_local($id_document)) === true) {
                $res['message_ok'] = (isset($res['message_ok']) ? $res['message_ok'] . '<br />' : '') . _T('medias:document_copie_locale_succes');
            } else {
                $res['message_erreur'] = (isset($res['message_erreur']) ? $res['message_erreur'] . '<br />' : '') . $err;
            }
            set_request('credits');
            // modifie par la copie locale
        } else {
            // liberer le nom de l'ancien fichier pour permettre le remplacement par un fichier du meme nom
            if ($ancien_fichier = sql_getfetsel('fichier', 'spip_documents', 'id_document=' . intval($id_document)) and !tester_url_absolue($ancien_fichier) and @file_exists($rename = get_spip_doc($ancien_fichier))) {
                @rename($rename, "{$rename}--.old");
            }
            $traiter = charger_fonction('traiter', 'formulaires/joindre_document');
            $res2 = $traiter($id_document);
            if (isset($res2['message_erreur'])) {
                $res['message_erreur'] = $res2['message_erreur'];
                // retablir le fichier !
                if ($rename) {
                    @rename("{$rename}--.old", $rename);
                }
            } else {
                spip_unlink("{$rename}--.old");
            }
        }
        // on annule les saisies largeur/hauteur : l'upload a pu charger les siens
        set_request('largeur');
        set_request('hauteur');
    } else {
        // regarder si une demande de rotation a eu lieu
        // c'est un bouton image, dont on a pas toujours le name en request, on fait avec
        $angle = 0;
        if (_request('tournerL90') or _request('tournerL90_x')) {
            $angle = -90;
        }
        if (_request('tournerR90') or _request('tournerR90_x')) {
            $angle = 90;
        }
        if (_request('tourner180') or _request('tourner180_x')) {
            $angle = 180;
        }
        if ($angle) {
            $autoclose = "";
            $tourner = charger_fonction('tourner', 'action');
            action_tourner_post($id_document, $angle);
        }
    }
    if (!isset($res['redirect'])) {
        $res['editable'] = true;
    }
    if (!isset($res['message_erreur'])) {
        $res['message_ok'] = _T('info_modification_enregistree') . $autoclose;
    }
    if ($res['message_ok']) {
        $res['message_ok'] .= '<script type="text/javascript">if (window.jQuery) ajaxReload("document_infos");</script>';
    }
    return $res;
}
Пример #12
0
/**
 * Chargement du formulaire d'édition de souscription
 *
 * Déclarer les champs postés et y intégrer les valeurs par défaut
 *
 * @uses formulaires_editer_objet_charger()
 *
 * @param int$id_souscription_campagne
 *     Identifiant de la campagne de souscription
 * @return array
 *     Retours des traitements
 */
function formulaires_souscription_traiter_dist($id_souscription_campagne)
{
    $lier_trad = 0;
    $config_fonc = '';
    $row = array();
    $hidden = '';
    $retour = '';
    $ret = array();
    $campagne = sql_fetsel("*", "spip_souscription_campagnes", "id_souscription_campagne=" . intval($id_souscription_campagne));
    set_request("id_souscription_campagne", $id_souscription_campagne);
    set_request('type_souscription', $campagne['type_objectif']);
    if (!in_array(_request('envoyer_info'), array('on', 'off'))) {
        set_request('envoyer_info', 'off');
    }
    $where_deja = array('courriel=' . sql_quote(_request('courriel')), 'statut=' . sql_quote('prepa'), "date_souscription>" . sql_quote(date('Y-m-d H:i:s', strtotime("-1 day"))), 'id_souscription_campagne=' . intval($id_souscription_campagne));
    $erreurs = array();
    $montant = formulaires_souscription_trouver_montant($campagne, $erreurs);
    $abo = false;
    if (strncmp($montant, "abo", 3) == 0) {
        $abo = true;
        $montant = substr($montant, 3);
        set_request("abo_statut", "commande");
        $where_deja[] = 'abo_statut=' . sql_quote('commande');
    } else {
        $where_deja[] = 'abo_statut=' . sql_quote('non');
    }
    set_request('montant', $montant);
    $where_deja[] = 'montant=' . sql_quote($montant, '', 'text');
    // si on a une souscription du meme montant, meme email, en commande, qui date de moins de 24h
    // on la reutilise pour pas generer plein de souscription en base en cas de retour arriere/modif saisie/revalidation
    if (!($id_souscription = sql_getfetsel('id_souscription', 'spip_souscriptions', $where_deja))) {
        $id_souscription = 'new';
    }
    $ret = formulaires_editer_objet_traiter('souscription', $id_souscription, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
    if ($ret['id_souscription']) {
        // recuperer l'id_auteur de la souscription, qui a pu etre renseigne en post_edition par un autre plugin
        // ou recupere de la session courante hors espace prive
        $souscription = sql_fetsel("*", "spip_souscriptions", "id_souscription=" . intval($ret['id_souscription']));
        $id_auteur = $souscription['id_auteur'];
        // generer la transaction et l'associer a la souscription
        $inserer_transaction = charger_fonction('inserer_transaction', 'bank');
        $options = array("auteur" => _request('courriel'), "id_auteur" => $id_auteur, "parrain" => "souscription", "tracking_id" => $ret['id_souscription'], "force" => false);
        if ($id_transaction = $inserer_transaction($montant, $options) and $hash = sql_getfetsel('transaction_hash', "spip_transactions", "id_transaction=" . intval($id_transaction))) {
            // associer transaction et souscription
            include_spip("action/editer_liens");
            objet_associer(array("souscription" => $ret['id_souscription']), array("transaction" => $id_transaction));
            sql_updateq("spip_souscriptions", array('id_transaction_echeance' => $id_transaction), "id_souscription=" . intval($ret['id_souscription']));
            // si pas d'auteur ni en base ni en session, passer nom et prenom en session pour un eventuel usage dans le paiement (SEPA)
            if (!$id_auteur and (!isset($GLOBALS['visiteur_session']['id_auteur']) or !$GLOBALS['visiteur_session']['id_auteur'])) {
                include_spip('inc/session');
                if ($souscription['nom']) {
                    session_set("session_nom", $souscription['nom']);
                }
                if ($souscription['prenom']) {
                    session_set("session_prenom", $souscription['prenom']);
                }
            }
            $target = $abo ? "payer-abonnement" : "payer-acte";
            spip_log(sprintf("La souscription [%s], associee a la transaction [%s] a bien ete cree.", $ret['id_souscription'], $id_transaction), "souscription");
            if (lire_config("souscription/processus_paiement", "redirige") === "redirige") {
                $ret['redirect'] = generer_url_public($target, "id_transaction={$id_transaction}&transaction_hash={$hash}", false, false);
            } else {
                $ret['message_ok'] = _T('souscription:message_regler_votre_' . $campagne['type_objectif']);
                $GLOBALS['formulaires_souscription_paiement'] = recuperer_fond("content/{$target}", array('id_transaction' => $id_transaction, 'transaction_hash' => $hash, 'class' => 'souscription_paiement'));
            }
        } else {
            spip_log(sprintf("Erreur lors de la creation de la transaction liee a la souscription [%s].", $ret['id_souscription']), "souscription");
            $ret['message_erreur'] = _T('souscription:erreur_echec_creation_transaction');
        }
    }
    // si API newsletter est dispo ET que case inscription est cochee, inscrire a la newsletter
    if (_request("envoyer_info") === "on" and $subscribe = charger_fonction("subscribe", "newsletter", true)) {
        $email = _request("courriel");
        $nom = array(_request("prenom"), _request("nom"));
        $nom = array_filter($nom);
        $nom = implode(" ", $nom);
        $subscribe($email, array('nom' => $nom));
    }
    return $ret;
}
Пример #13
0
function formulaires_adresser_commande_traiter_dist($id_commande, $url_suite = '', $titre_suite = '')
{
    include_spip('inc/livraison');
    $res = array();
    // mettre a jour l'adresse de livraison de la commande
    if (_request('save')) {
        // adresse de facturation identique a la livraison ? on laisse vide
        if (_request('facturation_identique_livraison') === 'oui') {
            set_request('facturation_nom', '');
            set_request('facturation_societe', '');
            set_request('facturation_adresse', '');
            set_request('facturation_adresse_cp', '');
            set_request('facturation_adresse_ville', '');
            set_request('facturation_adresse_pays', '');
            set_request('facturation_telephone', '');
        }
        include_spip('inc/editer');
        $res = formulaires_editer_objet_traiter('commande', $id_commande);
        // mettre a jour le cout de livraison existant
        fixer_livraison_commande($id_commande);
        if (isset($res['message_ok'])) {
            $res['message_ok'] = _T('livraison:info_adresse_enregistree');
        }
    }
    if ($choixmode = _request('choixmode')) {
        $choixmode = array_keys($choixmode);
        $choixmode = reset($choixmode);
        fixer_livraison_commande($id_commande, $choixmode);
        $res['message_ok'] = _T('livraison:info_livraisonmode_enregistre');
    }
    if (_request('resetlivraison')) {
        reset_livraison_commande($id_commande);
    }
    return $res;
}
Пример #14
0
/**
 * Enregistrer en base les saisies du #FORMULAIRE_TRADUIRE
 *
 * @param string $objet
 *     Type d'objet
 * @param int $id_objet
 *     Identifiant de l'objet
 * @param string $retour
 *     URL de retour
 * @param bool $traduire
 *     Permet de désactiver la gestion de traduction sur un objet ayant id_trad
 * @return array
 *     Retour des traitements
 */
function formulaires_traduire_traiter_dist($objet, $id_objet, $retour = '', $traduire = true)
{
    $res = array();
    if (!_request('annuler') and autoriser('changerlangue', $objet, $id_objet)) {
        // action/editer_xxx doit traiter la modif de changer_lang
        $res = formulaires_editer_objet_traiter($objet, $id_objet, 0, 0, $retour);
        if ($id_trad = _request('id_trad') or _request('supprimer_trad')) {
            $referencer_traduction = charger_fonction('referencer_traduction', 'action');
            $referencer_traduction($objet, $id_objet, intval($id_trad));
            // 0 si supprimer_trad
        } elseif ($new_id_trad = _request('changer_reference_trad') and $new_id_trad = array_keys($new_id_trad) and $new_id_trad = reset($new_id_trad)) {
            $table_objet_sql = table_objet_sql($objet);
            $_id_table_objet = id_table_objet($objet);
            if ($id_trad = sql_getfetsel('id_trad', $table_objet_sql, "{$_id_table_objet}=" . intval($id_objet))) {
                $referencer_traduction = charger_fonction('referencer_traduction', 'action');
                $referencer_traduction($objet, $id_trad, $new_id_trad);
            }
        }
    }
    $res['editable'] = true;
    if (!isset($res['message_erreur'])) {
        set_request('annuler', 'annuler');
    }
    // provoquer la fermeture du forumlaire
    return $res;
}
Пример #15
0
/**
 * Traitements du formulaire d'édition d'une rubrique
 *
 * @see formulaires_editer_objet_traiter()
 * 
 * @param int|string $id_rubrique
 *     Identifiant de la rubrique. 'new' pour une nouvelle rubrique
 * @param int $id_parent
 *     Identifiant de la rubrique parente
 * @param string $retour
 *     URL de redirection après le traitement
 * @param int $lier_trad
 *     Identifiant éventuel d'une rubrique source de traduction
 * @param string $config_fonc
 *     Nom de la fonction ajoutant des configurations particulières au formulaire
 * @param array $row
 *     Valeurs de la ligne SQL de la rubrique, si connue
 * @param string $hidden
 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
 * @return array
 *     Retour des traitements 
**/
function formulaires_editer_rubrique_traiter_dist($id_rubrique = 'new', $id_parent = 0, $retour = '', $lier_trad = 0, $config_fonc = 'rubriques_edit_config', $row = array(), $hidden = '')
{
    return formulaires_editer_objet_traiter('rubrique', $id_rubrique, $id_parent, $lier_trad, $retour, $config_fonc, $row, $hidden);
}
Пример #16
0
function formulaires_editer_groupe_mot_traiter_dist($id_groupe='new',$retour='', $config_fonc='groupes_mots_edit_config', $row=array(), $hidden=''){
	set_request('redirect','');
	return formulaires_editer_objet_traiter('groupe_mot',$id_groupe,0,0,$retour,$config_fonc,$row,$hidden);
}
Пример #17
0
function formulaires_editer_site_traiter_dist($id_syndic='new', $id_rubrique=0, $retour='', $lier_trad=0, $config_fonc='sites_edit_config', $row=array(), $hidden=''){
	return formulaires_editer_objet_traiter('site',$id_syndic,$id_rubrique,$lier_trad,$retour,$config_fonc,$row,$hidden);
}
Пример #18
0
/**
 * Traitement du formulaire d'édition de livraisonmode
 *
 * Traiter les champs postés
 *
 * @uses formulaires_editer_objet_traiter()
 *
 * @param int|string $id_livraisonmode
 *     Identifiant du livraisonmode. 'new' pour un nouveau livraisonmode.
 * @param string $retour
 *     URL de redirection après le traitement
 * @param int $lier_trad
 *     Identifiant éventuel d'un livraisonmode source d'une traduction
 * @param string $config_fonc
 *     Nom de la fonction ajoutant des configurations particulières au formulaire
 * @param array $row
 *     Valeurs de la ligne SQL du livraisonmode, si connu
 * @param string $hidden
 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
 * @return array
 *     Retours des traitements
 */
function formulaires_editer_livraisonmode_traiter_dist($id_livraisonmode = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '')
{
    return formulaires_editer_objet_traiter('livraisonmode', $id_livraisonmode, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
}
Пример #19
0
/**
 * Traitement du formulaire d'édition de dépot
 *
 * @param int $id_depot
 *     Identifiant du dépot
 * @param string $redirect
 *     URL de redirection
 * @return array
 *     Retours du traitement
**/
function formulaires_editer_depot_traiter_dist($id_depot, $redirect)
{
    return formulaires_editer_objet_traiter('depot', $id_depot, 0, 0, $redirect);
}
/**
 * Traitement du formulaire d'édition de reservation_credit_mouvement
 *
 * Traiter les champs postés
 *
 * @uses formulaires_editer_objet_traiter()
 *
 * @param int|string $id_reservation_credit_mouvement
 *     Identifiant du reservation_credit_mouvement. 'new' pour un nouveau reservation_credit_mouvement.
 * @param string $retour
 *     URL de redirection après le traitement
 * @param int $lier_trad
 *     Identifiant éventuel d'un reservation_credit_mouvement source d'une traduction
 * @param string $config_fonc
 *     Nom de la fonction ajoutant des configurations particulières au formulaire
 * @param array $row
 *     Valeurs de la ligne SQL du reservation_credit_mouvement, si connu
 * @param string $hidden
 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
 * @return array
 *     Retours des traitements
 */
function formulaires_editer_reservation_credit_mouvement_traiter_dist($id_reservation_credit_mouvement = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '')
{
    return formulaires_editer_objet_traiter('reservation_credit_mouvement', $id_reservation_credit_mouvement, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
}
Пример #21
0
function formulaires_editer_evenement_traiter_dist($id_evenement = 'new', $id_article = 0, $retour = '', $lier_trad = 0, $config_fonc = 'evenements_edit_config', $row = array(), $hidden = '')
{
    set_request('horaire', _request('horaire') == 'non' ? 'non' : 'oui');
    set_request('inscription', _request('inscription') ? 1 : 0);
    include_spip('inc/date_gestion');
    $erreurs = array();
    $date_debut = verifier_corriger_date_saisie('debut', _request('horaire') == 'oui', $erreurs);
    $date_fin = verifier_corriger_date_saisie('fin', _request('horaire') == 'oui', $erreurs);
    set_request('date_debut', date('Y-m-d H:i:s', $date_debut));
    set_request('date_fin', date('Y-m-d H:i:s', $date_fin));
    $res = formulaires_editer_objet_traiter('evenement', $id_evenement, $id_article, 0, $retour, $config_fonc, $row, $hidden);
    // si c'est une creation dans un article publie, passer l'evenement en publie
    // l'article peut être renseigné/modifié par l'utilisateur dans le formulaire. On le retrouve.
    if (!intval($id_evenement) and $id_article = sql_getfetsel('id_article', 'spip_evenements', 'id_evenement=' . $res['id_evenement']) and objet_test_si_publie('article', $id_article)) {
        // sera refuse si auteur pas autorise
        evenement_modifier($res['id_evenement'], array('statut' => 'publie'));
    }
    // a la creation, documenter la date de creation
    if (!intval($id_evenement)) {
        evenement_modifier($res['id_evenement'], array('date_creation' => date('Y-m-d H:i:s')));
    }
    $id_evenement = $res['id_evenement'];
    if ($res['redirect']) {
        if (strpos($res['redirect'], 'article') !== false) {
            $id_article = sql_getfetsel('id_article', 'spip_evenements', 'id_evenement=' . intval($id_evenement));
            $res['redirect'] = parametre_url($res['redirect'], 'id_article', $id_article);
        }
    }
    return $res;
}
Пример #22
0
/**
 * Traitement du formulaire d'édition de publicite
 *
 * Traiter les champs postés
 *
 * @uses formulaires_editer_objet_traiter()
 *
 * @param int|string $id_publicite
 *     Identifiant du publicite. 'new' pour un nouveau publicite.
 * @param string $retour
 *     URL de redirection après le traitement
 * @param int $lier_trad
 *     Identifiant éventuel d'un publicite source d'une traduction
 * @param string $config_fonc
 *     Nom de la fonction ajoutant des configurations particulières au formulaire
 * @param array $row
 *     Valeurs de la ligne SQL du publicite, si connu
 * @param string $hidden
 *     Contenu HTML ajouté en même temps que les champs cachés du formulaire.
 * @return array
 *     Retours des traitements
 */
function formulaires_editer_publicite_traiter_dist($id_publicite = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '')
{
    return formulaires_editer_objet_traiter('publicite', $id_publicite, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
}
Пример #23
0
function formulaires_editer_message_traiter_dist($id_message = 'new', $type = 'message', $retour = '', $accepter_email = 'oui', $destinataires = '', $titre = '', $texte = '')
{
    // preformater le post
    // fixer le type de message
    // sans modifier le type d'un message existant
    if (intval($id_message) and $t = sql_getfetsel('type', 'spip_messages', 'id_message=' . intval($id_message))) {
        $type = $t;
    }
    set_request('type', $type);
    // formater les destinataires
    $d = _request('destinataires');
    if (!$d) {
        $d = array();
    }
    include_spip('inc/messages');
    $d = messagerie_nettoyer_destinataires($d);
    // si email non acceptes, extraire les seuls id_auteur de la liste proposee
    if ($accepter_email !== 'oui') {
        // separer id_auteur et email
        $d = messagerie_destiner($d);
        // ne conserver que les id_auteur
        $d = reset($d);
    }
    // reinjecter sous forme de chaine
    set_request('destinataires', implode(',', $d));
    // fixer l'auteur !
    set_request('id_auteur', $GLOBALS['visiteur_session']['id_auteur']);
    if (_request('rv') == 'oui') {
        include_spip('inc/date_gestion');
        $erreurs = array();
        $date_debut = verifier_corriger_date_saisie('debut', true, $erreurs);
        $date_fin = verifier_corriger_date_saisie('fin', true, $erreurs);
        set_request('date_heure', date('Y-m-d H:i:s', $date_debut));
        set_request('date_fin', date('Y-m-d H:i:s', $date_fin));
    } else {
        set_request('date_heure');
        set_request('date_fin');
    }
    // on gere par les traitements standard
    // la diffusion du message se fait par pipeline post_edition sur instituer
    // et notification
    $res = formulaires_editer_objet_traiter('message', $id_message, 0, 0, $retour, '');
    if ($id_message = $res['id_message'] and !_request('draft')) {
        include_spip('action/editer_objet');
        objet_modifier('message', $id_message, array('statut' => 'publie'));
        // apres en message envoyes, retourner sur la boite d'envoi plutot que sur le message
        if ($res['redirect'] == generer_url_ecrire('message', 'id_message=' . $id_message)) {
            $res['redirect'] = generer_url_ecrire('messages', 'quoi=envoi');
        }
    }
    set_request('destinataires', explode(',', _request('destinataires')));
    return $res;
}
Пример #24
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;
}
Пример #25
0
/**
 * Traitements du formulaire d'édition d'un auteur
 *
 * En plus de l'enregistrement normal des infos de l'auteur, la fonction
 * traite ces cas spécifiques :
 * 
 * - Envoie lorsqu'un rédacteur n'a pas forcément l'autorisation changer
 *   seul son adresse email, un email à la nouvelle adresse indiquée
 *   pour vérifier l'email saisi, avec un lien dans le mai sur l'action
 *   'confirmer_email' qui acceptera alors le nouvel email.
 *
 * - Crée aussi une éventuelle laision indiquée dans $associer_objet avec
 *   cet auteur.
 * 
 * @see formulaires_editer_objet_traiter()
 * 
 * @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
 *     Retour des traitements
**/
function formulaires_editer_auteur_traiter_dist($id_auteur = 'new', $retour = '', $associer_objet = '', $config_fonc = 'auteurs_edit_config', $row = array(), $hidden = '')
{
    if (_request('saisie_webmestre') or _request('webmestre')) {
        set_request('webmestre', _request('webmestre') ? _request('webmestre') : 'non');
    }
    $retour = parametre_url($retour, 'email_confirm', '');
    include_spip('inc/autoriser');
    if (!autoriser('modifier', 'auteur', $id_auteur, null, array('email' => '?'))) {
        $email_nouveau = _request('email');
        set_request('email');
        // vider la saisie car l'auteur n'a pas le droit de modifier cet email
        // mais si c'est son propre profil on lui envoie un email à l'adresse qu'il a indique
        // pour qu'il confirme qu'il possede bien cette adresse
        // son clic sur l'url du message permettre de confirmer le changement
        // et de revenir sur son profil
        if ($GLOBALS['visiteur_session']['id_auteur'] == $id_auteur and $email_nouveau != ($email_ancien = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . intval($id_auteur)))) {
            $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
            $texte = _T('form_auteur_mail_confirmation', array('url' => generer_action_auteur('confirmer_email', $email_nouveau, parametre_url($retour, 'email_modif', 'ok'))));
            $envoyer_mail($email_nouveau, _T('form_auteur_confirmation'), $texte);
            set_request('email_confirm', $email_nouveau);
            if ($email_ancien) {
                $envoyer_mail($email_ancien, _T('form_auteur_confirmation'), _T('form_auteur_envoi_mail_confirmation', array('email' => $email_nouveau)));
            }
            $retour = parametre_url($retour, 'email_confirm', $email_nouveau);
        }
    }
    $res = formulaires_editer_objet_traiter('auteur', $id_auteur, 0, 0, $retour, $config_fonc, $row, $hidden);
    // Un lien auteur a prendre en compte ?
    if ($associer_objet and $id_auteur = $res['id_auteur']) {
        $objet = '';
        if (intval($associer_objet)) {
            $objet = 'article';
            $id_objet = intval($associer_objet);
        } elseif (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)) {
            include_spip('action/editer_auteur');
            auteur_associer($id_auteur, array($objet => $id_objet));
            if (isset($res['redirect'])) {
                $res['redirect'] = parametre_url($res['redirect'], "id_lien_ajoute", $id_auteur, '&');
            }
        }
    }
    return $res;
}
function formulaires_editer_souscription_campagne_traiter_dist($id_souscription_campagne = 'new', $retour = '', $lier_trad = 0, $config_fonc = '', $row = array(), $hidden = '')
{
    /* Si un objectif n'est pas demandée, alors, on remplace la valeur
     * fournie (quelqu'elle soit, par 0) */
    if (_request('objectif_oui_non') != "on") {
        set_request('objectif', 0);
        set_request('objectif_initial', 0);
        set_request('objectif_limiter', 'off');
    }
    if (_request('configuration_specifique' != "on")) {
        set_request('type_saisie', '');
        set_request('montants', '');
    }
    $res = formulaires_editer_objet_traiter('souscription_campagne', $id_souscription_campagne, '', $lier_trad, $retour, $config_fonc, $row, $hidden);
    return $res;
}