source: spip-zone/_core_/plugins/sites/sites_pipelines.php @ 53215

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

Montrons le bon exemple :

if (!defined('_ECRIRE_INC_VERSION')) return; partout

File size: 7.9 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2011                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined('_ECRIRE_INC_VERSION')) return;
14
15/**
16 * Ajouter les sites et syndication a valider sur les rubriques
17 *
18 * @param array $flux
19 * @return array
20 */
21function sites_rubrique_encours($flux){
22        if ($flux['args']['type'] == 'rubrique') {
23                $lister_objets = charger_fonction('lister_objets','inc');
24
25                $id_rubrique = $flux['args']['id_objet'];
26       
27                //
28                // Les sites references a valider
29                //
30                if ($GLOBALS['meta']['activer_sites'] != 'non') {
31                        $flux['data'] .= $lister_objets('sites',array('titre'=> _T('sites:info_site_valider') ,'statut'=>'prop','id_rubrique'=>$id_rubrique, 'par'=>'nom_site'));
32                }
33
34                //
35                // Les sites a probleme
36                //
37                if ($GLOBALS['meta']['activer_sites'] != 'non'
38                AND autoriser('publierdans','rubrique',$id_rubrique)) {
39                        $flux['data'] .= $lister_objets('sites',array('titre'=> _T('sites:avis_sites_syndiques_probleme') ,'statut'=>'publie', 'syndication'=>array('off','sus'),'id_rubrique'=>$id_rubrique, 'par'=>'nom_site'));
40                }
41
42                // Les articles syndiques en attente de validation
43                if ($id_rubrique == 0
44                AND autoriser('publierdans','rubrique',$id_rubrique)) {
45
46                        $cpt = sql_countsel("spip_syndic_articles", "statut='dispo'");
47                        if ($cpt)
48                                $flux['data'] .= "<br /><small><a href='" .
49                                        generer_url_ecrire("sites") .
50                                        "' style='color: black;'>" .
51                                        $cpt .
52                                        " " .
53                                        _T('sites:info_liens_syndiques_1') .
54                                        " " .
55                                        _T('sites:info_liens_syndiques_2') .
56                                        "</a></small>";
57                }
58        }
59       
60        return $flux;
61}
62
63/**
64 * Configuration des contenus
65 * @param array $flux
66 * @return array
67 */
68function sites_affiche_milieu($flux){
69        if ($flux["args"]["exec"] == "configurer_contenu") {
70                $flux["data"] .=  recuperer_fond('prive/squelettes/inclure/configurer',array('configurer'=>'configurer_sites'));
71        }
72        return $flux;
73}
74
75/**
76 * Ajouter les sites et syndication a valider sur la page d'accueil
77 *
78 * @param array $flux
79 * @return array
80 */
81function sites_accueil_encours($flux){
82        $lister_objets = charger_fonction('lister_objets','inc');
83       
84        //
85        // Les sites references a valider
86        //
87        if ($GLOBALS['meta']['activer_sites'] != 'non') {
88                $flux .= $lister_objets('sites',array('titre'=>afficher_plus_info(generer_url_ecrire('sites')). _T('sites:info_site_valider') ,'statut'=>'prop', 'par'=>'nom_site'));
89        }
90
91        if ($GLOBALS['visiteur_session']['statut'] == '0minirezo') {
92                //
93                // Les sites a probleme
94                //
95                if ($GLOBALS['meta']['activer_sites'] != 'non') {
96                        $flux .= $lister_objets('sites',array('titre'=>afficher_plus_info(generer_url_ecrire('sites')). _T('sites:avis_sites_syndiques_probleme') ,'statut'=>'publie', 'syndication'=>array('off','sus'), 'par'=>'nom_site'));
97                }
98
99                // Les articles syndiques en attente de validation
100                $cpt = sql_countsel("spip_syndic_articles", "statut='dispo'");
101                if ($cpt)
102                        $flux .= "\n<br /><small><a href='"
103                        . generer_url_ecrire("sites","")
104                        . "' style='color: black;'>"
105                        . $cpt
106                        . " "
107                        . _T('sites:info_liens_syndiques_1')
108                        . " "
109                        . _T('sites:info_liens_syndiques_2')
110                        . "</a></small>";
111
112        }
113        return $flux;
114}
115
116
117/**
118 * Ajouter les sites references sur les vues de rubriques
119 *
120 * @param array $flux
121 * @return array
122 */
123function sites_affiche_enfants($flux) {
124        if ($e = trouver_objet_exec($flux['args']['exec'])
125          AND $e['type'] == 'rubrique'
126          AND $e['edition'] == false) {
127                $id_rubrique = $flux['args']['id_rubrique'];
128 
129                if ($GLOBALS['meta']["activer_sites"] == 'oui') {
130                        $lister_objets = charger_fonction('lister_objets','inc');
131                        $bouton_sites = '';
132                        if (autoriser('creersitedans','rubrique',$id_rubrique)) {
133                                $bouton_sites .= icone_verticale(_T('sites:info_sites_referencer'), generer_url_ecrire('site_edit', "id_rubrique=$id_rubrique"), "site-24.png", "new", 'right')
134                                        . "<br class='nettoyeur' />";
135                        }
136                       
137                        $flux['data'] .= $lister_objets('sites',array('titre'=>_T('sites:titre_sites_references_rubrique') ,'where'=>"statut!='refuse' AND statut != 'prop' AND syndication NOT IN ('off','sus')", 'id_rubrique'=>$id_rubrique,'par'=>'nom_site'));
138                        $flux['data'] .= $bouton_sites;
139                }
140        }
141        return $flux;
142}
143
144
145
146/**
147 * Definir les meta de configuration liee aux syndications et sites
148 *
149 * @param array $metas
150 * @return array
151 */
152function sites_configurer_liste_metas($metas){
153        $metas['activer_sites']    = 'non';
154        $metas['proposer_sites']   = 0;
155        $metas['activer_syndic']   = 'oui';
156        $metas['moderation_sites'] = 'non';
157        return $metas;
158}
159
160/**
161 * Taches periodiques de syndication
162 *
163 * @param array $taches_generales
164 * @return array
165 */
166function sites_taches_generales_cron($taches_generales){
167
168        if ($GLOBALS['meta']["activer_syndic"] == "oui") {
169                $taches_generales['syndic'] = 90; 
170        }
171               
172        return $taches_generales;
173}
174
175
176/**
177 * Optimiser la base de donnee en supprimant les liens orphelins
178 *
179 * @param array $flux
180 * @return array
181 */
182function sites_optimiser_base_disparus($flux){
183        $n = &$flux['data'];
184        $mydate = $flux['args']['date'];
185
186
187        sql_delete("spip_syndic", "maj < $mydate AND statut = 'refuse'");
188
189
190        # les articles syndiques appartenant a des sites effaces
191        $res = sql_select("S.id_syndic AS id",
192                      "spip_syndic_articles AS S
193                        LEFT JOIN spip_syndic AS syndic
194                          ON S.id_syndic=syndic.id_syndic",
195                        "syndic.id_syndic IS NULL");
196
197        $n+= optimiser_sansref('spip_syndic_articles', 'id_syndic', $res);
198       
199
200        return $flux;
201
202}
203
204
205/**
206 * Publier et dater les rubriques qui ont un site publie
207 *
208 * @param array $flux
209 * @return array
210 */
211function sites_calculer_rubriques($flux) {
212       
213        $r = sql_select("R.id_rubrique AS id, max(A.date) AS date_h", "spip_rubriques AS R, spip_syndic AS A", "R.id_rubrique = A.id_rubrique AND R.date_tmp <= A.date AND A.statut='publie' ", "R.id_rubrique");
214        while ($row = sql_fetch($r))
215                sql_updateq('spip_rubriques', array('statut_tmp'=>'publie', 'date_tmp'=>$row['date_h']),"id_rubrique=".$row['id']);
216
217        return $flux;
218}
219
220/**
221 * Compter les sites dans une rubrique
222 *
223 * @param array $flux
224 * @return array
225 */
226function sites_objet_compte_enfants($flux){
227        if ($flux['args']['objet']=='rubrique'
228          AND $id_rubrique=intval($flux['args']['id_objet'])) {
229                // juste les publies ?
230                if (array_key_exists('statut', $flux['args']) and ($flux['args']['statut'] == 'publie')) {
231                        $flux['data']['site'] = sql_countsel('spip_syndic', "id_rubrique=".intval($id_rubrique)." AND (statut='publie')");
232                } else {
233                        $flux['data']['site'] = sql_countsel('spip_syndic', "id_rubrique=".intval($id_rubrique)." AND (statut='publie' OR statut='prop')");
234                }
235        }
236        return $flux;
237}
238
239
240function sites_trig_propager_les_secteurs($flux){
241        // reparer les sites
242        $r = sql_select("A.id_syndic AS id, R.id_secteur AS secteur", "spip_syndic AS A, spip_rubriques AS R", "A.id_rubrique = R.id_rubrique AND A.id_secteur <> R.id_secteur");
243        while ($row = sql_fetch($r))
244                sql_update("spip_syndic", array("id_secteur" => $row['secteur']), "id_syndic=".$row['id']);
245
246        return $flux;
247}
248
249/**
250 * Afficher le nombre de sites dans chaque rubrique
251 *
252 * @param array $flux
253 * @return array
254 */
255function sites_boite_infos($flux){
256        if ($flux['args']['type']=='rubrique'
257          AND $id_rubrique = $flux['args']['id']){
258                if ($nb = sql_countsel('spip_syndic',"statut='publie' AND id_rubrique=".intval($id_rubrique))){
259                        $nb = "<div>". singulier_ou_pluriel($nb, "info_1_site", "info_nb_sites") . "</div>";
260                        if ($p = strpos($flux['data'],"<!--nb_elements-->"))
261                                $flux['data'] = substr_replace($flux['data'],$nb,$p,0);
262                }
263        }
264        return $flux;
265}
266
267?>
Note: See TracBrowser for help on using the repository browser.