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

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

PSR SPIP

  • 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')) {
13        return;
14}
15
16
17
18/**
19 * Ajout de contenu sur certaines pages,
20 * notamment des formulaires de liaisons entre objets
21 *
22 * @pipeline affiche_milieu
23 * @param  array $flux Données du pipeline
24 * @return array       Données du pipeline
25 */
26function cartes_affiche_milieu($flux) {
27        $texte = '';
28        $e = trouver_objet_exec($flux['args']['exec']);
29
30        // auteurs sur les cartes
31        if (!$e['edition'] and in_array($e['type'], array('carte'))) {
32                $texte .= recuperer_fond('prive/objets/editer/liens', array(
33                        'table_source' => 'auteurs',
34                        'objet' => $e['type'],
35                        'id_objet' => $flux['args'][$e['id_table_objet']]
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
47        return $flux;
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                $flux['data'] .= recuperer_fond('prive/objets/liste/cartes', array(
60                        'id_auteur' => $id_auteur,
61                        'titre' => _T('carte:info_cartes_auteur')
62                ), array('ajax' => true));
63        }
64        return $flux;
65}
66
67/**
68 * Optimiser la base de données
69 *
70 * Supprime les objets à la poubelle.
71 *
72 * @pipeline optimiser_base_disparus
73 * @param  array $flux Données du pipeline
74 * @return array       Données du pipeline
75 */
76function cartes_optimiser_base_disparus($flux) {
77        sql_delete('spip_cartes', "statut='poubelle' AND maj < " . $flux['args']['date']);
78        return $flux;
79}
80
81/**
82 * Utilisation du pipeline pre_boucle (SPIP)
83 * Sur les boucles cartes, bounds doit être de type textuel
84 *
85 * @pipeline pre_boucle
86 * @param object $boucle
87 * @return object
88 */
89function cartes_pre_boucle($boucle) {
90        if ($boucle->type_requete == 'cartes') {
91                $boucle->select[]= 'AsText(cartes.bounds) AS geometry_map';
92        }
93        return $boucle;
94}
95
96/**
97 * Utilisation du pipeline recuperer_fond (SPIP)
98 * Ajouter Leaflet.label dans le script js de GIS
99 *
100 * @pipeline recuperer_fond
101 * @param array $flux   Données du pipeline
102 * @return array                Données du pipeline modifiées
103 */
104function cartes_recuperer_fond($flux) {
105        if ($flux['args']['fond'] == 'javascript/gis.js') {
106                $ajouts = "\n". spip_file_get_contents(find_in_path('javascript/leaflet.label-src.js'));
107                $flux['data']['texte'] .= $ajouts;
108        }
109        return $flux;
110}
111
112/**
113 * Utilisation du pipeline insert_head_css (SPIP)
114 * Ajout de la css de Leaflet.label dans le head de chaque page
115 *
116 * @pipeline insert_head_css
117 * @param string $flux  Contenu textuel de la balise #INSERT_HEAD_CSS
118 * @return string               Contenu de la balise modifié
119 */
120function cartes_insert_head_css($flux) {
121        $flux .= "\n".'<link rel="stylesheet" href="'. find_in_path('css/leaflet.label.css') .'" />';
122        return $flux;
123}
Note: See TracBrowser for help on using the repository browser.