source: spip-zone/_plugins_/cartes/trunk/cartes_pipelines.php @ 96739

Last change on this file since 96739 was 96739, checked in by kent1@…, 4 years ago

De la doc

  • Property svn:executable set to *
File size: 3.1 KB
Line 
1<?php
2/**
3 * Utilisations de pipelines par Création de cartes
4 *
5 * @plugin     Création de cartes
6 * @copyright  2016
7 * @author     kent1
8 * @licence    GNU/GPL
9 * @package    SPIP\Cartes\Pipelines
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) return;
13
14
15
16/**
17 * Ajout de contenu sur certaines pages,
18 * notamment des formulaires de liaisons entre objets
19 *
20 * @pipeline affiche_milieu
21 * @param  array $flux Données du pipeline
22 * @return array       Données du pipeline
23 */
24function cartes_affiche_milieu($flux) {
25        $texte = "";
26        $e = trouver_objet_exec($flux['args']['exec']);
27
28        // auteurs sur les cartes
29        if (!$e['edition'] AND in_array($e['type'], array('carte'))) {
30                $texte .= recuperer_fond('prive/objets/editer/liens', array(
31                        'table_source' => 'auteurs',
32                        'objet' => $e['type'],
33                        'id_objet' => $flux['args'][$e['id_table_objet']]
34                ));
35        }
36
37
38
39        if ($texte) {
40                if ($p=strpos($flux['data'],"<!--affiche_milieu-->"))
41                        $flux['data'] = substr_replace($flux['data'],$texte,$p,0);
42                else
43                        $flux['data'] .= $texte;
44        }
45
46        return $flux;
47}
48
49
50/**
51 * Ajout de liste sur la vue d'un auteur
52 *
53 * @pipeline affiche_auteurs_interventions
54 * @param  array $flux Données du pipeline
55 * @return array       Données du pipeline
56 */
57function cartes_affiche_auteurs_interventions($flux) {
58        if ($id_auteur = intval($flux['args']['id_auteur'])) {
59
60                $flux['data'] .= recuperer_fond('prive/objets/liste/cartes', array(
61                        'id_auteur' => $id_auteur,
62                        'titre' => _T('carte:info_cartes_auteur')
63                ), array('ajax' => true));
64
65        }
66        return $flux;
67}
68
69
70
71/**
72 * Optimiser la base de données
73 *
74 * Supprime les objets à la poubelle.
75 *
76 * @pipeline optimiser_base_disparus
77 * @param  array $flux Données du pipeline
78 * @return array       Données du pipeline
79 */
80function cartes_optimiser_base_disparus($flux){
81
82        sql_delete("spip_cartes", "statut='poubelle' AND maj < " . $flux['args']['date']);
83
84        return $flux;
85}
86
87/**
88 * Utilisation du pipeline pre_boucle (SPIP)
89 * Sur les boucles cartes, bounds doit être de type textuel
90 *
91 * @pipeline pre_boucle
92 * @param object $boucle
93 * @return object
94 */
95function cartes_pre_boucle($boucle){
96        if ($boucle->type_requete == 'cartes') {
97                $boucle->select[]= 'AsText(cartes.bounds) AS geometry_map';
98        }
99        return $boucle;
100}
101
102/**
103 * Utilisation du pipeline recuperer_fond (SPIP)
104 * Ajouter Leaflet.label dans le script js de GIS
105 *
106 * @pipeline recuperer_fond
107 * @param array $flux   Données du pipeline
108 * @return array                Données du pipeline modifiées
109 */
110function cartes_recuperer_fond($flux){
111        if ($flux['args']['fond'] == 'javascript/gis.js') {
112                $ajouts = "\n". spip_file_get_contents(find_in_path('javascript/leaflet.label-src.js'));
113                $flux['data']['texte'] .= $ajouts;
114        }
115        return $flux;
116}
117
118/**
119 * Utilisation du pipeline insert_head_css (SPIP)
120 * Ajout de la css de Leaflet.label dans le head de chaque page
121 *
122 * @pipeline insert_head_css
123 * @param string $flux  Contenu textuel de la balise #INSERT_HEAD_CSS
124 * @return string               Contenu de la balise modifié
125 */
126function cartes_insert_head_css($flux){
127        $flux .= "\n".'<link rel="stylesheet" href="'. find_in_path('css/leaflet.label.css') .'" />';
128        return $flux;
129}
Note: See TracBrowser for help on using the repository browser.