Changeset 108115 in spip-zone


Ignore:
Timestamp:
Dec 19, 2017, 2:51:42 PM (18 months 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.

Location:
_plugins_/produits/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/produits/trunk/formulaires/configurer_produits.php

    r58743 r108115  
    6363                        )
    6464                ),
     65                array(
     66                        'saisie' => 'case',
     67                        'options' => array(
     68                                'nom' => 'publier_rubriques',
     69                                'label' => _T('produits:publier_rubriques_label'),
     70                                'label_case' => _T('produits:publier_rubriques_label_case'),
     71                                'explication' => _T('produits:publier_rubriques_explication'),
     72                                'defaut' => $config['publier_rubriques'],
     73                        )
     74                ),
    6575        );
    6676}
    67 
    68 ?>
  • _plugins_/produits/trunk/lang/produits_fr.php

    r100477 r108115  
    5353        'produit_statut' => 'Modifier le statut :',
    5454        'produits_titre' => 'Produits',
     55        'publier_rubriques_label' => 'Publier les rubriques ?',
     56        'publier_rubriques_label_case' => 'Publier les rubriques',
     57        'publier_rubriques_explication' => 'Publier les rubriques qui contiennent des produits publiés ?',
    5558
    5659        // S
  • _plugins_/produits/trunk/paquet.xml

    r108076 r108115  
    22        prefix="produits"
    33        categorie="outil"
    4         version="1.1.26"
     4        version="1.2.0"
    55        etat="test"
    66        compatibilite="[3.0.13;3.2.*]"
     
    2828        <pipeline nom="grappes_objets_lies" inclure="produits_pipelines.php" />
    2929        <pipeline nom="affiche_enfants" inclure="produits_pipelines.php" />
     30        <pipeline nom="calculer_rubriques" inclure="produits_pipelines.php" />
     31        <pipeline nom="boite_infos" inclure="produits_pipelines.php" />
    3032        <pipeline nom="objet_compte_enfants" inclure="produits_pipelines.php" />
    3133        <pipeline nom="corbeille_table_infos" inclure="produits_pipelines.php" />
  • _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.