source: spip-zone/_plugins_/joindre_auto_zone/trunk/jaz_pipelines.php @ 76573

Last change on this file since 76573 was 76573, checked in by marcimat@…, 6 years ago
  • formulaire de configuration des zones d'accès à affecter automatiquement (à défaut du define renseigné)
  • lors de l'affectation, utiliser la fonction zone_lier() prévue par accès restreint.
File size: 2.6 KB
Line 
1<?php
2/**
3 * JAZ - Joindre Automatiquement une Zone
4 * Cyril MARION (c)2012 GPL
5 *
6 */
7
8if (!defined("_ECRIRE_INC_VERSION")) return;
9
10
11/**
12 * Détecter la création d'un nouvel auteur et demander son ajout aux zones
13 *
14 * On détecte via 'inscription' ou 'editer_auteur'
15 *
16 * @param array $flux
17 * @return array
18 */
19function jaz_formulaire_traiter($flux)
20{
21
22        // Si on est sur le formulaire d'inscription d'un nouveau visiteur
23        if ($flux['args']['form'] == 'inscription') {
24                // on chope le mail pour la requete plus bas...
25                $mail = _request('mail_inscription');
26                $nom  = _request('nom_inscription');
27                if (function_exists('test_inscription'))
28                        $f = 'test_inscription';
29                else    $f = 'test_inscription_dist';
30
31                // On teste la validité de l'inscription
32                // $desc = $f($mode, $mail, $flux['args']['args'][0], $flux['args']['args'][2]);
33                $desc = $f($mode, $mail, $nom, $flux['args']['args'][2]);
34
35                if (is_array($desc)
36                        AND $mail = $desc['email']
37                ) {
38                        include_spip('base/abstract_sql');
39
40                        // On cherche le numéro de l'auteur dont le mail a été saisi
41                        $auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'email="' . $mail . '"');
42
43                        // On ajoute cet auteur aux zones
44                        jaz_ajouter_auteur_zones($auteur);
45
46                }
47        }
48        // Si on est sur le formulaire d'édition d'un auteur
49        if ($flux['args']['form'] == 'editer_auteur') {
50                if (!intval($flux['args']['args'][0])
51                        AND intval($flux['data']['id_auteur'])
52                ) {
53                        $id_auteur = $flux['data']['id_auteur'];
54                        include_spip('base/abstract_sql');
55
56                        // On ajoute cet auteur aux zones
57                        jaz_ajouter_auteur_zones($auteur);
58                }
59        }
60        return $flux;
61}
62
63
64
65/**
66 * Chercher les zones automatiques à joindre et ajouter l'auteur à ces zones
67 *
68 * Les zones peuvent être indiquées soit :
69 * - par la constante `_ZONES_AUTO_JOINTES` (dans `mes_options.php` par exemple)
70 *   tel que `define('_ZONES_AUTO_JOINTES', '2:4')` où 2 et 4 sont des identifiants de zone
71 * - soit, à défaut de constante, par les zones indiquées dans le formulaire de configuration
72 *   du plugin (meta `jaz/zones_automatiques`).
73 *
74 * @param int $id_auteur Identifiant d'auteur
75 */
76function jaz_ajouter_auteur_zones($id_auteur)
77{
78
79        // On cherche les Zones Auto Jointes :
80        if (defined('_ZONES_AUTO_JOINTES')) {
81                $zones = explode(':', _ZONES_AUTO_JOINTES);
82        } else {
83                include_spip('inc/config');
84                $zones = explode(',', lire_config('jaz/zones_automatiques'));
85        }
86
87        if ($zones) {
88                include_spip('action/editer_zone');
89                zone_lier($zones, 'auteur', $id_auteur);
90                spip_log('Auteur ' . $id_auteur . ' ajouté aux zones : ' . implode(', ', $zones), 'jaz');
91        }
92
93}
94
95?>
Note: See TracBrowser for help on using the repository browser.