source: spip-zone/_plugins_/spipicious_jquery/trunk/spipicious_pipelines.php @ 108544

Last change on this file since 108544 was 71708, checked in by kent1@…, 6 years ago

PHPdoc

File size: 3.4 KB
Line 
1<?php
2/**
3 * SPIP.icio.us
4 * Gestion de tags lies aux auteurs
5 *
6 * Auteurs :
7 * kent1 (http://www.kent1.info - kent1@arscenic.info)
8 * Erational (http://www.erational.org)
9 *
10 * © 2007-2013 - Distribue sous licence GNU/GPL
11 *
12 * Fichiers des pipelines du plugin
13 *
14 * @package SPIP\SPIPicious\Pipelines
15 */
16
17if (!defined("_ECRIRE_INC_VERSION")) return;
18
19/**
20 * Insertion dans le pipeline insert_head (SPIP)
21 *
22 * Insertion du code javascript nécessaire dans le head
23 * Pour ce faire, on utilise la fonction dédiée dans le plugin sélecteur générique
24 *
25 * @param string $flux
26 *              Le contenu de la balise #INSERT_HEAD
27 * @return string $flux
28 *              Le contenu de la balise #INSERT_HEAD modifié
29 */
30function spipicious_insert_head($flux){
31        include_spip('inc/autoriser');
32        if(autoriser('tagger_spipicious')){
33                include_spip('selecteurgenerique_fonctions');
34                $flux .= selecteurgenerique_verifier_js($flux);
35        }
36        return $flux;
37}
38
39/**
40 * Insertion dans le pipeline optimiser_base_disparus (SPIP)
41 *
42 * Supprimer les liens spipicious/objet sur les éléments disparus
43 *
44 * @param array $flux
45 *              Le contexte du pipeline
46 * @return array $flux
47 *              Le contexte du flux non modifié
48 */
49function spipicious_optimiser_base_disparus($flux){
50        /**
51         * On fonctionne comme les documents dans genie/optimiser
52         */
53        $r = sql_select("DISTINCT objet","spip_spipicious");
54        while ($t = sql_fetch($r)){
55                $type = $t['objet'];
56                $spip_table_objet = table_objet_sql($type);
57                $id_table_objet = id_table_objet($type);
58                $res = sql_select("L.id_mot AS id,L.id_objet AS id_objet",
59                              "spip_spipicious AS L
60                                LEFT JOIN $spip_table_objet AS O
61                                  ON O.$id_table_objet=L.id_objet AND L.objet=".sql_quote($type),
62                                "O.$id_table_objet IS NULL");
63                while ($row = sql_fetch($res)){
64                        sql_delete("spip_spipicious", array("id_mot=".$row['id'],"id_objet=".$row['id_objet'],"objet=".sql_quote($type)));
65                }
66        }
67        return $flux;
68}
69
70/**
71 * Insertion dans le pipeline pre_boucle (SPIP)
72 *
73 * Dans une boucle SPIPICIOUS, si on ne passe pas le critère tout ou statut,
74 * on n'affiche pas ceux non publiés
75 *
76 * @param object $boucle
77 *              Les paramètres de la boucle
78 * @return object $boucle
79 *              Les paramètres de la boucle modifiés
80 */
81function spipicious_pre_boucle($boucle){
82        if ($boucle->type_requete == 'spipicious') {
83                $id_table = $boucle->id_table;
84                $mstatut = $id_table .'.statut';
85                if (!isset($boucle->modificateur['criteres']['tout'])
86                        && !isset($boucle->modificateur['criteres']['statut']))
87                        $boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'");
88        }
89        return $boucle;
90}
91
92/**
93 * Insertion dans le pipeline de post-edition (SPIP)
94 *
95 * A l'institution d'un objet (changement de statut),
96 * si l'objet n'a pas le statut publié et qu'il a des tags spipicious, on passe ses tags en prop
97 * sinon, on les publie
98 *
99 * @param array $flux
100 *              Le contexte du pipeline
101 * @return $flux
102 *              Le contexte du pipeline sans modification
103 */
104function spipicious_post_edition($flux){
105        if($flux['args']['action'] == 'instituer'){
106                $objet = objet_type($flux['args']['table']);
107                if(isset($flux['data']['statut']) && ($flux['data']['statut'] != 'publie'))
108                        sql_updateq('spip_spipicious',array('statut'=>'prop'),'id_objet='.intval($flux['args']['id_objet']).' AND objet='.sql_quote($objet).' AND statut="publie"');
109                else
110                        sql_updateq('spip_spipicious',array('statut'=>'publie'),'id_objet='.intval($flux['args']['id_objet']).' AND objet='.sql_quote($objet).' AND statut="prop"');
111        }
112        return $flux;
113}
114?>
Note: See TracBrowser for help on using the repository browser.