source: spip-zone/_plugins_/coordonnees/trunk/formulaires/editer_email.php @ 70500

Last change on this file since 70500 was 70500, checked in by tcharlss@…, 7 years ago

Portage complet du plugin en SPIP 3.

Réorganisation des répertoires
==============================

  • prive/exec, prive/boite => prive/squelettes/contenu
  • prive/liste => prive/objets/liste
  • prive/infos : supprimé, aucun lien ne mène vers les fiches des coordonnées, donc a priori on n'a pas besoin des boite infos correspondantes.
  • images => prive/themes/spip/images

Images
======
nouvelles icônes & suppression des icônes redondantes (supprimer-16.png, edition-16.png)

Pipelines
=========

  • liste_objets_coordonnées : supprimée, une saisie "liste_objets" suffit.
  • affiche_milieu : remplacée par "afficher_fiche_objet".

formulaires d'édition / boutons d'action
=======================================
On utilise l'API d'édition de liens.

  • Une seule action mutualisée "dissocier_supprimer_coordonnee" à la place de "supprimer_[adresse/numero/email]"
  • Plus besoin des actions editer_[adresse/numero/email]

Boite dans la fiche d'un objet
==============================
Réécrite complète afin de l'ajaxer et de la rendre plus concise visuellement.
On affiche donc la boite *en complément* de la fiche d'un objet, et non plus dans la fiche elle même (cf. note pipelines).
Les liens d'ajout sont affichés en permanence, au lieu du survol.

Et je crois que c'est tout.

File size: 2.9 KB
Line 
1<?php
2/**
3 * Plugin Coordonnees
4 * Licence GPL (c) 2010 - Marcimat / Ateliers CYM
5 */
6
7if (!defined('_ECRIRE_INC_VERSION')) return;
8
9include_spip('inc/actions');
10include_spip('inc/editer');
11
12/**
13 * Identifier le formulaire en faisant abstraction des parametres qui ne representent pas l'objet edite
14 */
15function formulaires_editer_email_identifier_dist($id_email='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
16        return serialize(array(intval($id_email), $associer_objet));
17}
18
19/**
20 * Declarer les champs postes et y integrer les valeurs par defaut
21 */
22function formulaires_editer_email_charger_dist($id_email='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
23        $valeurs = formulaires_editer_objet_charger('email',$id_email,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
24
25        // importer les saisies yaml
26        include_spip('inc/yaml');
27        $valeurs['_saisies_email'] = _T_ou_typo(yaml_decode_file(find_in_path('yaml/saisies_email.yaml')));
28        // valeur de la saisie "type" dans la table de liens
29        if ( $associer_objet ) {
30                list($objet, $id_objet) = explode('|', $associer_objet);
31                $valeurs['type'] = sql_getfetsel('type', 'spip_emails_liens', 'objet='.sql_quote($objet).' AND id_objet='.intval($id_objet).' AND id_email='.intval($id_email) );
32        }
33
34        return $valeurs;
35}
36
37/**
38 * Verifier les champs postes et signaler d'eventuelles erreurs
39 */
40function formulaires_editer_email_verifier_dist($id_email='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
41        // verification generique
42        $erreurs = formulaires_editer_objet_verifier('email',$id_email);
43
44        // verification des saisies yaml
45        include_spip('inc/yaml');
46        include_spip('inc/saisies');
47        $erreurs = saisies_verifier(yaml_decode_file(find_in_path('yaml/saisies_email.yaml')));
48
49        return $erreurs;
50}
51
52/**
53 * Traiter les champs postes
54 */
55function formulaires_editer_email_traiter_dist($id_email='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
56        $res = formulaires_editer_objet_traiter('email',$id_email,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
57 
58        // Un lien a prendre en compte ?
59        if ($associer_objet AND $id_email = $res['id_email']) {
60                list($objet, $id_objet) = explode('|', $associer_objet);
61                if ($objet AND $id_objet AND autoriser('modifier', $objet, $id_objet)) {
62                        include_spip('action/editer_liens');
63                        objet_associer(array('email' => $id_email), array($objet => $id_objet));
64                        if (isset($res['redirect'])) {
65                                $res['redirect'] = parametre_url ($res['redirect'], 'id_email', '', '&');
66                        }
67                }
68                // remplir le champ "type" dans la table de liens
69                if ( $type = _request('type') ) {
70                        sql_updateq('spip_emails_liens',
71                                array('type' => $type),
72                                'objet='.sql_quote($objet).' AND id_objet='.intval($id_objet).' AND id_email='.intval($id_email)
73                        );
74                }
75        }
76        return $res;
77
78}
79
80
81?>
Note: See TracBrowser for help on using the repository browser.