Ignore:
Timestamp:
Dec 19, 2017, 2:51:42 PM (3 years ago)
Author:
marcimat@…
Message:

Une option pour publier les rubriques si des produits publiés sont dedans.
+ Affichage du nombre de produits dans la boite unfo.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/produits/trunk/produits_pipelines.php

    r108076 r108115  
    7070}
    7171
     72/**
     73 * Afficher le nombre d'éléments dans les parents
     74 *
     75 * @pipeline boite_infos
     76 * @param  array $flux Données du pipeline
     77 * @return array       Données du pipeline
     78 **/
     79function produits_boite_infos($flux) {
     80        if (isset($flux['args']['type']) and isset($flux['args']['id']) and $id = intval($flux['args']['id'])) {
     81                $texte = '';
     82                if ($flux['args']['type'] == 'rubrique' and $nb = sql_countsel('spip_produits', array("statut='publie'", 'id_rubrique=' . $id))) {
     83                        $texte .= '<div>' . singulier_ou_pluriel($nb, 'produit:info_1_produit', 'produit:info_nb_produits') . "</div>\n";
     84                }
     85                if ($texte and $p = strpos($flux['data'], '<!--nb_elements-->')) {
     86                        $flux['data'] = substr_replace($flux['data'], $texte, $p, 0);
     87                }
     88        }
     89        return $flux;
     90}
     91
    7292// Compter les produits comme des enfants de rubriques
    7393function produits_objet_compte_enfants($flux) {
     
    7595                $statut = $flux['args']['statut'] ? ' and statut='.sql_quote($flux['args']['statut']) : '';
    7696                $flux['data']['produits'] = sql_countsel('spip_produits', 'id_rubrique='.$id_rubrique.$statut);
     97        }
     98        return $flux;
     99}
     100
     101
     102/**
     103 * Publier et dater les rubriques qui ont un produit publie
     104 *
     105 * @param array $flux
     106 * @return array
     107 */
     108function produits_calculer_rubriques($flux){
     109        include_spip('inc/config');
     110        if (lire_config('produits/publier_rubriques')) {
     111                $r = sql_select("R.id_rubrique AS id, max(A.date) AS date_h", "spip_rubriques AS R, spip_produits AS A", "R.id_rubrique = A.id_rubrique AND R.date_tmp <= A.date AND A.statut='publie' ", "R.id_rubrique");
     112                while ($row = sql_fetch($r)) {
     113                        sql_updateq('spip_rubriques', array('statut_tmp' => 'publie', 'date_tmp' => $row['date_h']), "id_rubrique=" . $row['id']);
     114                }
    77115        }
    78116        return $flux;
Note: See TracChangeset for help on using the changeset viewer.