source: spip-zone/_plugins_/rss_commits/trunk/rss_commits_pipelines.php @ 104418

Last change on this file since 104418 was 104418, checked in by teddy.spip@…, 2 years ago
  • On est en 2017 ;
  • Compatibilité SPIP 3.2 ;
  • Up de z.
File size: 4.6 KB
Line 
1<?php
2/**
3 * Utilisations de pipelines par Commits de projet
4 *
5 * @plugin     Commits de projet
6 * @copyright  2014-2017
7 * @author     Teddy Payet
8 * @licence    GNU/GPL
9 * @package    SPIP\RSSCommits\Pipelines
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) {
13        return;
14}
15
16/**
17 * Ajouter les tâches de CRON du plugin RSS Commits
18 *
19 * @param  array $taches Tableau des tâches et leur périodicité en seconde
20 *
21 * @return array         Tableau des tâches et leur périodicité en seconde
22 */
23function rss_commits_taches_generales_cron($taches) {
24        $import_auto = lire_config('rss_commits/import_auto', 'non');
25        if ($import_auto == 'oui') {
26                $taches['import_commits'] = 1 * 3600; // toutes les heures
27        }
28
29        return $taches;
30}
31
32/**
33 * Ajout de contenu sur certaines pages,
34 * notamment des formulaires de liaisons entre objets
35 *
36 * @pipeline affiche_enfants
37 *
38 * @param  array $flux Données du pipeline
39 *
40 * @return array       Données du pipeline
41 */
42function rss_commits_affiche_enfants($flux) {
43        $e = trouver_objet_exec($flux['args']['exec']);
44        $lister_objets = charger_fonction('lister_objets', 'inc');
45
46        // commits sur les projets
47        if (!$e['edition'] and in_array($e['type'], array('projet'))) {
48                $id_projet = $flux['args']['id_projet'];
49                $flux['data'] .= $lister_objets(
50                        'commits',
51                        array(
52                                'sinon' => _T('commit:aucun_commit_projet'),
53                                'id_projet' => $id_projet,
54                                'par' => 'date_creation',
55                        )
56                );
57        }
58
59        return $flux;
60}
61
62/**
63 * Ajout de contenu sur certaines pages
64 *
65 * @pipeline afficher_complement_objet
66 *
67 * @param  array $flux Données du pipeline
68 *
69 * @return array       Données du pipeline
70 */
71function rss_commits_afficher_complement_objet($flux) {
72        $e = $flux['args'];
73        $import_auto = lire_config('rss_commits/import_auto', 'non');
74
75        // commits sur les projets
76        if (in_array($e['type'], array('projet'))
77                and $import_auto == 'non'
78        ) {
79                $id_projet = $e['id'];
80                $flux['data'] .= recuperer_fond(
81                        'prive/objets/liste/rss_commits',
82                        array(
83                                'sinon' => _T('commit:aucun_commit_projet'),
84                                'id_projet' => $id_projet,
85                                'force' => false,
86                                'par' => 'date_creation',
87                        )
88                );
89        }
90
91        return $flux;
92}
93
94/**
95 * Afficher les interventions et objets en lien
96 * avec un auteur (sur sa page)
97 *
98 * @param array $flux
99 *
100 * @return array
101 */
102function rss_commits_affiche_auteurs_interventions($flux) {
103        if ($id_auteur = intval($flux['args']['id_auteur'])) {
104                $auteur = sql_fetsel('email', 'spip_auteurs', 'id_auteur=' . $id_auteur);
105                $auteur = explode('@', $auteur['email']);
106                $auteur_commit = $auteur[0];
107                $flux['data'] .= recuperer_fond(
108                        'prive/objets/liste/commits',
109                        array(
110                                'par' => 'date_creation',
111                                'where' => "commits.auteur LIKE '%" . $auteur_commit . "%'",
112                        )
113                );
114        }
115
116        return $flux;
117}
118
119/**
120 * Afficher le nombre de documents dans chaque rubrique
121 *
122 * @param array $flux
123 *
124 * @return array
125 */
126function rss_commits_boite_infos($flux) {
127        // Dans le $flux de la boite infos, on a un array :
128        // 'data' => contient toutes les données, textes du bloc d'infos
129        // 'args' => 'type' => le type d'objet
130        // 'args' => 'id' => l'id de l'objet
131
132        if ($flux['args']['type'] == 'projet'
133                and $id_projet = $flux['args']['id']
134        ) {
135                $flux['data'] .= recuperer_fond(
136                        'prive/objets/infos/projet_commits',
137                        array(
138                                'id_projet' => $id_projet,
139                        )
140                );
141        }
142
143        return $flux;
144}
145
146/**
147 * Ajouter le fichier javascript dans la partie privée
148 *
149 * @param string $flux
150 *
151 * @return string
152 */
153function rss_commits_header_prive($flux) {
154        $flux .= "\n";
155        $flux .= '<script type="application/javascript" src="' . _DIR_PLUGIN_RSS_COMMITS . 'js/prive_rss_commits.js"></script>';
156        $flux .= "\n";
157
158        return $flux;
159}
160
161/**
162 * Affichage de la fiche complete des projets
163 *
164 * @param array $flux
165 *
166 * @return array
167 */
168function rss_commits_afficher_fiche_objet($flux) {
169        if (in_array($type = $flux['args']['type'], array('projet'))) {
170                $id = $flux['args']['id'];
171                /**
172                 * On va désactiver le listing des commits par rss… Ça fait ramer la page projet…
173                 * Il faudra trouver une autre solution…
174                 *
175                 * $import_auto = lire_config('rss_config/import_auto', 'non');
176                 * $table = table_objet($type);
177                 * $id_table_objet = id_table_objet($type);
178                 *
179                 * if ($import_auto == 'non') {
180                 * $flux['data'] .= recuperer_fond(
181                 * 'prive/objets/liste/rss_commits',
182                 * array(
183                 * 'sinon' => _T('commit:aucun_commit_projet'),
184                 * 'id_projet' => $id,
185                 * 'force' => false,
186                 * 'par' => 'date_creation'
187                 * )
188                 * );
189                 * }
190                 **/
191                $flux['data'] .= recuperer_fond(
192                        'prive/objets/liste/commits',
193                        array(
194                                'sinon' => _T('commit:aucun_commit_projet'),
195                                'id_projet' => $id,
196                                'par' => 'date_creation',
197                        )
198                );
199        }
200
201        return $flux;
202}
203
Note: See TracBrowser for help on using the repository browser.