Changeset 117923 in spip-zone


Ignore:
Timestamp:
Sep 21, 2019, 4:55:20 PM (16 months ago)
Author:
eric@…
Message:

Amélioration de la fonction de vérification d'un conteneur du noizetier.
Ajout d'une balise #CONTENEUR_NOIZETIER_IDENTIFIER pour faciliter l'utilisation manuelle de l'inclusion conteneur_compiler.html dans un squelette.
Ajout de tests dans la demo

Location:
_plugins_/noizetier/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/noizetier/trunk/conteneur_compiler.html

    r112827 r117923  
    88        @api
    99
    10     @param string plugin
    11            Identifiant qui permet de distinguer le module appelant qui peut-être un plugin comme le noiZetier ou
    12            un script. Pour un plugin, le plus pertinent est d'utiliser le préfixe.
    1310        @param string  id_conteneur
    1411               Identifiant du conteneur.
  • _plugins_/noizetier/trunk/demo/noizetier.html

    r105678 r117923  
    88        include_spip('demo/noizetier');
    99?>
     10
     11        #SET{page, article}
     12        #SET{bloc, content}
     13        [(#CONTENEUR_NOIZETIER_IDENTIFIER{#GET{page}, #GET{bloc}}|sinon{erreur})]
     14        <br />
     15
     16        #SET{objet, #ARRAY{objet, article, id_objet, 12}}
     17        #SET{bloc, content}
     18        [(#CONTENEUR_NOIZETIER_IDENTIFIER{#GET{objet}, #GET{bloc}}|sinon{erreur})]
     19        <br />
     20
     21        #SET{objet, #ARRAY{objet, article, id_objet, 12}}
     22        #SET{bloc, ''}
     23        [(#CONTENEUR_NOIZETIER_IDENTIFIER{#GET{objet}, #GET{bloc}}|sinon{erreur})]
     24        <br />
     25
     26        #SET{objet, #ARRAY{objet, article}}
     27        #SET{bloc, content}
     28        [(#CONTENEUR_NOIZETIER_IDENTIFIER{#GET{objet}, #GET{bloc}}|sinon{erreur})]
     29        <br />
    1030
    1131        #SET{valeur, ''}
  • _plugins_/noizetier/trunk/ncore/noizetier.php

    r113568 r117923  
    622622                                and $conteneur['objet']
    623623                                and intval($conteneur['id_objet']))) {
    624                                 // Le conteneur coincide avec un squelette de bloc générique ou d'un objet donné.
    625                                 $conteneur_verifie = $conteneur;
     624                                // On verifie que le bloc est valide : il correspond à l'index 0.
     625                                $squelette = explode('/', $conteneur['squelette']);
     626                                include_spip('inc/noizetier_bloc');
     627                                if (($squelette[0])
     628                                and in_array($squelette[0], bloc_z_lister_defaut())) {
     629                                        // Le conteneur coincide avec un bloc valide d'un squelette générique ou d'un objet donné.
     630                                        $conteneur_verifie = $conteneur;
     631                                }
    626632                        }
    627633                }
  • _plugins_/noizetier/trunk/noizetier_administrations.php

    r117917 r117923  
    245245                                }
    246246                                // Blocs, necessite et branche: des tableaux à sérialiser
     247                                // TODO : est-il possible d'avoir ces données dans une composition virtuelle v2 ?
    247248                                $description['blocs_exclus'] = isset($_description['blocs_exclus'])
    248249                                        ? serialize($_description['blocs_exclus'])
  • _plugins_/noizetier/trunk/noizetier_fonctions.php

    r113625 r117923  
    2323// --------------------------------------------------------------------------------
    2424
     25/**
     26 * Compile la balise `#CONTENEUR_NOIZETIER_IDENTIFIER` qui fournit l'id du conteneur désigné par ses éléments
     27 * canoniques propres au noiZetier. La balise est une encapsulation de la fonction `conteneur_noizetier_composer`
     28 * mais ne permet de calculer l'id d'un conteneur noisette car ce cas n'est pas utilisable dans un HTML. Elle est
     29 * à utiliser de préférence à celle fournie par N-Core (`#CONTENEUR_IDENTIFIER`)
     30 *
     31 * La signature de la balise est : `#CONTENEUR_NOIZETIER_IDENTIFIER{page_ou_objet, bloc}`.
     32 *
     33 * @param Champ $p
     34 *        Pile au niveau de la balise.
     35 *
     36 * @return Champ
     37 *         Pile complétée par le code à générer.
     38 *@package SPIP\NOIZETIER\CONTENEUR\BALISE
     39 * @balise
     40 *
     41 * @example
     42 *     ```
     43 *     #CONTENEUR_NOIZETIER_IDENTIFIER{article, content}, renvoie l'id du conteneur représentant le bloc content/article
     44 *     #CONTENEUR_NOIZETIER_IDENTIFIER{array(objet => article, id_article => 12), content}, renvoie l'id du conteneur
     45 *     représentant le bloc content de l'objet article12
     46 *     ```
     47 *
     48 */
     49function balise_CONTENEUR_NOIZETIER_IDENTIFIER_dist($p) {
     50
     51        $page_ou_objet = interprete_argument_balise(1, $p);
     52        $page_ou_objet = str_replace('\'', '"', $page_ou_objet);
     53
     54        $bloc = interprete_argument_balise(2, $p);
     55        $bloc = str_replace('\'', '"', $bloc);
     56
     57        $p->code = "calculer_id_conteneur($page_ou_objet, $bloc)";
     58
     59        return $p;
     60}
     61
     62/**
     63 * @internal
     64 *
     65 * @param string $bloc
     66 * @param string $information
     67 *
     68 * @return array|string
     69 */
     70function calculer_id_conteneur($page_ou_objet, $bloc) {
     71
     72        include_spip('inc/noizetier_conteneur');
     73        return conteneur_noizetier_composer($page_ou_objet, $bloc);
     74}
    2575
    2676// -------------------------------------------------------------------
     
    99149 **/
    100150function balise_BLOC_Z_INFOS_dist($p) {
     151
    101152        $bloc = interprete_argument_balise(1, $p);
    102153        $bloc = str_replace('\'', '"', $bloc);
  • _plugins_/noizetier/trunk/paquet.xml

    r117917 r117923  
    22        prefix="noizetier"
    33        categorie="maintenance"
    4         version="3.0.99"
     4        version="3.0.100"
    55        etat="dev"
    66        compatibilite="[3.2.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.