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_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; }
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; }
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_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; }
/** * 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); }
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; }
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; }
/** * 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; }
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; }
/** * 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; }
/** * 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); }
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); }
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); }
/** * 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); }
/** * 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); }
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; }
/** * 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); }
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; }
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; }
/** * 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; }