Changeset 110127 in spip-zone for _plugins_/noizetier/trunk/inc


Ignore:
Timestamp:
May 7, 2018, 5:28:17 PM (15 months ago)
Author:
eric@…
Message:

On remplace le filtre propre au noizetier par la balise #CHEMIN_IMAGE.
On continue à améliorer les balises du noizetier afin de se passer de filtres superflus.
On fait un up de z pour identifier cette version qui commence à être bien cohérente.

Location:
_plugins_/noizetier/trunk/inc
Files:
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/noizetier/trunk/inc/noizetier_objet.php

    r110122 r110127  
    4646                }
    4747                if (!$description['logo']) {
    48                         $description['logo'] = noizetier_icone_chemin("${type_objet}.png");
     48                        $description['logo'] = chemin_image("${type_objet}.png");
    4949                }
    5050
     
    195195        return $est_active;
    196196}
     197
     198
     199/**
     200 * Détermine, pour un objet donné, la liste des blocs ayant des noisettes incluses et renvoie leur nombre.
     201 *
     202 * @api
     203 *
     204 * @param string $objet
     205 *            Le type d'objet comme `article`.
     206 * @param int    $id_objet
     207 *            L'id de l'objet.
     208 *
     209 * @return array
     210 *             Tableau des nombre de noisettes incluses par bloc de la forme [bloc] = nombre de noisettes.
     211 */
     212function noizetier_objet_compter_noisettes($objet, $id_objet) {
     213
     214        static $blocs_compteur = array();
     215
     216        if (!isset($blocs_compteur["${objet}-${id_objet}"])) {
     217                // Initialisation des compteurs par bloc
     218                $nb_noisettes = array();
     219
     220                // Le nombre de noisettes par bloc doit être calculé par une lecture de la table spip_noisettes.
     221                $from = array('spip_noisettes');
     222                $select = array('bloc', "count(type_noisette) as 'noisettes'");
     223                // -- Construction du where identifiant précisément le type et la composition de la page
     224                $where = array(
     225                        'plugin=' . sql_quote('noizetier'),
     226                        'objet=' . sql_quote($objet),
     227                        'id_objet=' . intval($id_objet)
     228                );
     229                $group = array('bloc');
     230                $blocs_non_vides = sql_allfetsel($select, $from, $where, $group);
     231                if ($blocs_non_vides) {
     232                        // On formate le tableau [bloc] = nb noisettes
     233                        $nb_noisettes = array_column($blocs_non_vides, 'noisettes', 'bloc');
     234                }
     235
     236                // Sauvegarde des compteurs pour les blocs concernés.
     237                $blocs_compteur["${objet}-${id_objet}"] = $nb_noisettes;
     238        }
     239
     240        return $blocs_compteur["${objet}-${id_objet}"];
     241}
  • _plugins_/noizetier/trunk/inc/noizetier_page.php

    r110122 r110127  
    323323 * l'insertion de noisettes.
    324324 *
    325  * @package SPIP\NOIZETIER\API\PAGE
    326325 * @api
    327326 *
     
    341340
    342341        return $repertoire_pages;
     342}
     343
     344/**
     345 * Détermine, pour une page donnée, la liste des blocs ayant des noisettes incluses et renvoie leur nombre.
     346 *
     347 * @api
     348 *
     349 * @param string $page
     350 *            L'identifiant de la page ou de la composition.
     351 *
     352 * @return array
     353 *             Tableau des nombre de noisettes incluses par bloc de la forme [bloc] = nombre de noisettes.
     354 */
     355function noizetier_page_compter_noisettes($page) {
     356
     357        static $blocs_compteur = array();
     358
     359        if (!isset($blocs_compteur[$page])) {
     360                // Initialisation des compteurs par bloc
     361                $nb_noisettes = array();
     362
     363                // Le nombre de noisettes par bloc doit être calculé par une lecture de la table spip_noisettes.
     364                $from = array('spip_noisettes');
     365                $select = array('bloc', "count(type_noisette) as 'noisettes'");
     366                // -- Construction du where identifiant précisément le type et la composition de la page
     367                $where = array(
     368                        'plugin=' . sql_quote('noizetier'),
     369                        'type=' . sql_quote(noizetier_page_type($page)),
     370                        'composition=' . sql_quote(noizetier_page_composition($page))
     371                );
     372                $group = array('bloc');
     373                $blocs_non_vides = sql_allfetsel($select, $from, $where, $group);
     374                if ($blocs_non_vides) {
     375                        // On formate le tableau [bloc] = nb noisettes
     376                        $nb_noisettes = array_column($blocs_non_vides, 'noisettes', 'bloc');
     377                }
     378
     379                // Sauvegarde des compteurs pour les blocs concernés.
     380                $blocs_compteur[$page] = $nb_noisettes;
     381        }
     382
     383        return $blocs_compteur[$page];
    343384}
    344385
Note: See TracChangeset for help on using the changeset viewer.