source: spip-zone/_plugins_/produits/trunk/produits_pipelines.php @ 108076

Last change on this file since 108076 was 108076, checked in by peetdu@…, 3 years ago

Notice php en moins

File size: 3.9 KB
Line 
1<?php
2
3// Sécurité
4if (!defined('_ECRIRE_INC_VERSION')) {
5        return;
6}
7
8// Export de la config
9function produits_ieconfig_metas($table) {
10       
11        $table['produits']['titre'] = _T('produit:titre_produit');
12        $table['produits']['icone'] = 'prive/themes/spip/images/produit-16.png';
13        $table['produits']['metas_serialize'] = 'produits,produits_*';
14       
15        return $table;
16}
17
18/**
19 * Insertion dans le pipeline grappes_objets_lies (Plugin Grappes)
20 * Définis le tableau des objets pouvant être liés aux grappes, la clé est le type d'objet (au pluriel),
21 * la valeur, le label affiché dans le formulaire d'édition de grappe
22 * @param array $array
23 *      Le tableau du pipeline
24 * @return array $array
25 *      Le tableau complété
26 */
27function produits_grappes_objets_lies($array) {
28        $array['produits'] = _T('produits:titre_page_configurer_produits');
29        return $array;
30}
31
32/**
33 * produits_acceuil_encours
34 *
35 * Afficher les produits en cours de validation
36 * sur l'acceuil de l'espace privé
37 */
38function produits_accueil_encours($flux) {
39        $flux .= recuperer_fond(
40                'prive/objets/liste/produits',
41                array(
42                        'statut' => array('prepa','prop'),
43                        'cacher_tri' => true,
44                        'nb' => 5
45                ),
46                array('ajax' => true)
47        );
48
49        return $flux;
50}
51
52
53// Insérer les listes de produits et le bouton de création dans les pages rubriques
54function produits_affiche_enfants($flux) {
55        if (isset($flux['args']['id_rubrique']) and $flux['args']['id_rubrique'] > 0) {
56                $flux['data'] .= recuperer_fond(
57                        'prive/objets/liste/produits',
58                        array('id_rubrique' => $flux['args']['id_rubrique']),
59                        array(
60                                'ajax' => true
61                        )
62                );
63       
64                if (autoriser('creerproduitdans', 'rubrique', $flux['args']['id_rubrique'])) {
65                        $flux['data'] .= icone_verticale(_T('produit:icone_creer_produit'), generer_url_ecrire('produit_edit', 'id_rubrique='.$flux['args']['id_rubrique']), find_in_path('prive/themes/spip/images/produits-24.png'), 'new', 'right');
66                }
67        }
68       
69        return $flux;
70}
71
72// Compter les produits comme des enfants de rubriques
73function produits_objet_compte_enfants($flux) {
74        if ($flux['args']['objet'] == 'rubrique' and ($id_rubrique = intval($flux['args']['id_objet'])) > 0) {
75                $statut = $flux['args']['statut'] ? ' and statut='.sql_quote($flux['args']['statut']) : '';
76                $flux['data']['produits'] = sql_countsel('spip_produits', 'id_rubrique='.$id_rubrique.$statut);
77        }
78        return $flux;
79}
80
81// Si pas de critère "statut", on affiche que les produits publiés
82function produits_pre_boucle($boucle) {
83        if ($boucle->type_requete == 'produits') {
84                $id_table = $boucle->id_table;
85                $statut = "$id_table.statut";
86                if (!isset($boucle->modificateur['criteres']['statut']) and !isset($boucle->modificateur['tout'])) {
87                        $boucle->where[] = array("'='", "'$statut'", "sql_quote('publie')");
88                }
89        }
90        return $boucle;
91}
92
93/**
94 * Optimiser la base de données
95 * Supprime les liens orphelins de l'objet vers quelqu'un et de quelqu'un vers l'objet.
96 * Supprime les objets à la poubelle.
97 *
98 * @pipeline optimiser_base_disparus
99 * @param  array $flux Données du pipeline
100 * @return array           Données du pipeline
101 */
102function produits_optimiser_base_disparus($flux) {
103        include_spip('action/editer_liens');
104        $flux['data'] += objet_optimiser_liens(array('produit'=>'*'), '*');
105        sql_delete('spip_produits', "statut='poubelle' AND maj < " . $flux['args']['date']);
106
107        return $flux;
108}
109
110/**
111 * Pipeline de la corbeille, permet de définir les objets à supprimer
112 *
113 * @param array $param Tableau d'objets
114 *
115 * @return array Tableau d'objets complété
116 */
117function produits_corbeille_table_infos($param){
118        $param['produits'] = array(
119                'statut' => 'poubelle',
120                'tableliee'=> array('spip_produits'),
121        );
122        return $param;
123}
124
125/**
126 * Déclarer l'héritage pour compositions
127 *
128 * @param $heritages
129 *
130 * @return mixed
131 */
132function produits_compositions_declarer_heritage($heritages){
133        $heritages['produit'] = 'rubrique';
134        return $heritages;
135}
Note: See TracBrowser for help on using the repository browser.