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')) { |
---|
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 | */ |
---|
26 | function 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 | */ |
---|
57 | function 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 | */ |
---|
76 | function 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 | */ |
---|
89 | function 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 | */ |
---|
104 | function 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 | */ |
---|
120 | function cartes_insert_head_css($flux) { |
---|
121 | $flux .= "\n".'<link rel="stylesheet" href="'. find_in_path('css/leaflet.label.css') .'" />'; |
---|
122 | return $flux; |
---|
123 | } |
---|