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 | |
---|
12 | if (!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 | */ |
---|
24 | function 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 | */ |
---|
57 | function 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 | */ |
---|
80 | function 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 | */ |
---|
95 | function 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 | */ |
---|
110 | function 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 | */ |
---|
126 | function cartes_insert_head_css($flux){ |
---|
127 | $flux .= "\n".'<link rel="stylesheet" href="'. find_in_path('css/leaflet.label.css') .'" />'; |
---|
128 | return $flux; |
---|
129 | } |
---|