Déclarer des noisettes au noiZetier

Où placer les noisettes

Une noisette est un fichier HTML placée dans un sous-répertoire noisettes situé dans le répertoire d’un plugin ou dans le répertoire squelettes.

Pour être utilisée par le noiZetier, une noisette doit impérativement être accompagnée d’un fichier de configuration au format YAML [1].

Nommage des noisettes

Une noisette pouvant s’insérer sur n’importe quelle page sera nommée tout simplement nom_noisette.html. Par convention, seuls les lettres minuscules et l’underscore (_) sont autorisés pour nom_noisette.

L’usage du tiret (-) est réservé pour spécifier les noisettes ne pouvant être incluses que sur une page spécifique et qui sont nommées nom_page-nom_noisette.html. Ainsi, une noisette spécifique à la page article sera nommée article-nom_noisette.html et le noiZetier ne la proposera que sur la page article et les compositions de la page article.

Au cas où une noisette ne devrait être proposée que sur une composition spécifique, elle sera nommée type-composition-nom_noisette.html

Décrire une noisette au format YAML

Pour bénéficier de toutes les possibilités offertes par le plugin Saisies ainsi que des vérifications offertes par le plugin Vérifier, il est nécessaire de décrire la noisette au format YAML.

Le fichier de configuration sera nommé de la même manière que la noisette. Seule son extension sera modifiée en .yaml.

Exemple :

nom: '<:aveline:nom_menu:>'
description: '<:aveline:description_menu:>'
icon: 'images/menus-24.png'
necessite:
  - 'menus'
contexte:
  - 'id_rubrique'
  - 'page'
parametres:
  -
    saisie: 'menu'
    options:
      nom: 'identifiant'
      label: '<:aveline:label_identifiant_menu:>'
      cacher_option_intro: 'oui'
      obligatoire: 'oui'
  -
    saisie: 'oui_non'
    options:
      nom: 'afficher_titre_menu'
      label: '<:aveline:label_afficher_titre_menu:>'
      defaut: 'on'

nom est obligatoire. Il indique le nom de la noisette à afficher dans l’interface de configuration. Peut être une chaîne de langue.

description est facultatif. Permet de détailler ce que fait la noisette. Peut être une chaîne de langue.

icon est facultatif. Il s’agit du chemin relatif à une image qui sera utilisée comme icône de la noisette.

parametres est optionnel et permet de spécifier les paramètres configurables que l’on souhaite passer à la noisette.

Les paramètres sont dès lors décrits en suivant les spécifications du plugin Saisies. Il est alors possible de décrire finement un formulaire de configuration de la noisette.

Il est possible d’ajouter des vérifications à effectuer sur les valeurs des paramètres. Exemple :

-
  saisie: 'input'
  options:
    nom: 'pas_pagination'
    label: '<:aveline:label_pas_pagination:>'
    defaut: 5
  verifier:
    type: 'entier'
    options:
      min: 1

contexte permet de spécifier les variables de contexte à transmettre à la noisette. Si l’on ne doit transmettre qu’une seule variable, on pourra écrire
contexte: 'une_variable' [2]. Si plusieurs variables doivent être transmises, on optera pour l’écriture suivante :

contexte:
  - 'variable_1'
  - 'variable_2'
  - 'variable_3'

Si contexte n’est pas spécifié, toutes les variables d’environnement seront transmises à la noisette. Il est également possible de spécifier explicitement que toutes les variables d’environnement doivent être transmises avec contexte: 'env'.

Si aucune variable d’environnement ne doit être transmise à la noisette, on indiquera contexte: 'aucun'.

necessite est facultatif et permet de spécifier que cette noisette ne doit être proposée que si un plugin spécifique est activé. Cela peut être utilisé pour des noisettes fournies par un squelette compatible avec certains plugins sans les imposer.

Récupérer les paramètres de la noisette

Lors de l’inclusion de la noisette, le noiZetier transmet les paramètres en tant que variable d’environnement. Ceux-ci se récupèrent donc très facilement avec #ENV{param}.

Le noiZetier transmet systématiquement à la noisette les variables d’environnement bloc, type et composition.

Inclusion AJAX

Le noiZetier inclut les noisettes avec le critère {ajax}. Il est donc possible d’utiliser des liens avec la classe ajax. Voir la documentation de SPIP pour plus de détails.

Il est possible de spécifier au noiZetier qu’une noisette ne doit pas être inclue en AJAX. Pour cela, il suffit d’ajouter au YAML de la noisette la ligne suivante :

ajax: 'non'

Inclusion dynamique

Le noiZetier inclut par défaut les noisettes de manière statique. Elles n’ont donc pas de cache autonome mais le cache de la page englobante.

À partir de la version 0.12.0, il est cependant possible d’inclure dynamiquement une noisette. Cette dernière aura alors sa propre durée de cache définie avec la balise #CACHE au début du fichier HTML de la noisette. Cela est notamment utilise pour des noisettes nécessitant un cache nul.

Pour indiquer au noiZetier d’inclure dynamiquement la noisette, il faut ajouter la ligne suivante au YAML de la noisette :

inclusion: 'dynamique'

Utilisation des noisettes en dehors du noiZetier

Une noisette restant un squelette inclus, elle peut être utilisée par simple inclusion dans un squelette : <INCLURE{fond=noisettes/nom-complet-noisette}{param=val}>.

Le cache des noisettes

Afin d’améliorer la rapidité du noiZetier, les descriptions des noisettes, des variables de contexte à transmettre aux noisettes et l’inclusion en AJAX ou non sont mises en cache.

De fait, lorsque vous développez une noisette et testez en même temps comment se présente le formulaire de configuration dans le noiZetier, il est possible que vos dernières modifications ne soient pas affichées à moins que vous ne rajoutiez &var_mode=recalcul dans l’URL de la page.

Aperçu de la noisette

À partir de la version 2 du noizetier, vous pouvez définir un aperçu de la noisette. Il s’agit d’un squelette nommé noisettes/nom_noisette-preview.html qui recevra les paramètres de la noisette et qui permettra de produire un résumé de ce que fera la noisette.

Voici par exemple le contenu du fichier noisettes/article-filariane-preview.html du plugin Aveline :

[(#SET{ariane_separateur, #ENV{ariane_separateur}|is_null|non|?{#ENV{ariane_separateur},'&gt;'}})]
[(#SET{longueur_max_titres, #ENV{longueur_max_titres}|sinon{80}})]
[(#ENV{afficher_lien_accueil}|oui)<:accueil_site:>]
[(#ENV{afficher_secteur}|oui) [(#GET{ariane_separateur})] <:aveline:secteur:>]
[(#GET{ariane_separateur})] <:rubriques:> [(#ENV{afficher_secteur}|non) (<:aveline:secteur_exclu:>)]
[(#ENV{afficher_titre_article}|oui) [(#GET{ariane_separateur})] <:article:>]

Notes

[1Avant la version 0.8, le noiZetier acceptait de décrire des noisettes au format XML. Pour faciliter la maintenance, seul le format YAML est maintenant accepté.

[2L’écriture

contexte:
  - 'une_variable'

est également valide.

Discussion

14 discussions

  • Bonjour,
    J’essaie (en vain) de passer une chaine de langue avec variable dans le label d’une saisie :

        label: '<:plugin:chaine{variable=toto}:>'

    Les accolades ne passent pas, normal, mais y a t’il un moyen d’y remédier.
    J’ai essayé les solutions proposées ici https://symfony.com/doc/current/components/yaml/yaml_format.html
    ou là https://stackoverflow.com/questions/11301650/how-to-escape-indicator-characters-i-e-or-in-yaml, sans succès.

    Une idée ?

    Cordialement

    Répondre à ce message

  • Hello,

    j’aimerais créer une noisette permettant de charger un fichier (une image en l’occurence, mais cela pourrait être n’importe quoi : pdf, etc.).
    Avec le plugin CVT Upload et la déclaration YAML suivante…

    nom: 'Icon + Titre'
    description: 'Une icone avec ou sans titre'
    icon: 'article-24.png'
    contexte: 'aucun'
    ajax: 'non'
    parametres:
    	-
    		saisie: 'fichiers'
    		options:
    			nom: 'icontext_img'
    			label: 'Un fichier de type image web (jpg, png, gif)'
    			nb_fichiers: 1
    		verifier:
    				type: fichiers
    				options:
    					mime: image_web
    	-
    		saisie: 'input'
    		options:
    			nom: 'icontext_titre'
    			label: 'Titre'

    …j’ai bien un formulaire d’upload de fichier qui apparait, mais rien ne s’enregistre en BdD.
    Une idée ?

    Répondre à ce message

  • 3

    Bonjour,

    Dans un yaml construisant le formulaire de paramétrage d’une noisette, dans mon cas présent l’objet grappe, je conditionne l’affichage d’une saisie avec l’option afficher_si, je n’arrive pas a récupérer ou transmettre le résultat de ma saisie 1 a ma saisie 2 , pourtant d’après les docs que j’ai pu trouver il me semble que cela devrait fonctionner non ?

    exemple :

    nom: "Grappe d'objets"
    description: 'Afficher une grappe listant des objets'
    icon: 'prive/themes/spip/images/grappe-24.png'
    contexte:
      - 'identifiant'
      - 'id_grappe'
    parametres:
      -
        saisie: 'grappe'
        options:
          nom: 'identifiant'
          label: 'Identifiant'
          cacher_option_intro: 'non'
          option_intro: 'Sélectionnez une grappe'
          defaut: ''
      -
        saisie: 'selection_grappe_liaisons'
        options:
          nom: 'liaison'
          label: 'liaison'
          cacher_option_intro: 'oui'
          afficher_si: '@identifiant@ != ""'
          identifiant: '@identifiant@'

    Merci de vos idées ou explications

    • Je ne comprends pas la dernière ligne ?

      identifiant: '@identifiant@'

      On peut en effet conditionner l’affichage d’une saisie en fonction des valeurs des autres saisies (en fait cela génère un javascript pour afficher/masquer la saisie en fonction des autres valeurs). Par contre, on ne peut pas récupérer la valeur d’une saisie comme paramètre d’une autre saisie.

    • Justement donc, ça repond a ma question : ce n’est pas possible.

      En fait ma première saisie devrait lister les grappes et retourner l’identifiant

      la seconde quand a elle devrait en fonction de l’identifiant lister les objets LIAISONS de la grappe en question.

      en fait il faut que je fasse une saisie qui fasse les deux en une pour que ça fonctionne il me semble.

    • tout à fait

    Répondre à ce message

  • 11
    Benoît Labourdette

    Question toute bête : le titre et le descriptif de mes noisettes n’apparaissent pas dans le back-office. Le logo, lui apparaît. J’ai eu beau tout retourner, et vider et re-vider le cache, quelque chose m’échappe.

    Voici le yaml :

    nom: 'Module de lecture audio'
    description: 'Affiche un player audio si fichier MP3 joint à l'article'
    icon: 'noisettes/icones/mp3.png'
    contexte:
     - 'id_article'
    ajax: 'non'

    Et en image jointe, ce qui s’affiche dans le back-office.

    Merci !!

    • Dans la description, il y a une apostrophe alors que l’apostrophe est utilisée pour délimiter le texte. Essayez d’utilisez des guillemets doubles : "Affiche un player audio si fichier MP3 joint à l'article"

    • Benoît Labourdette

      J’ai mis des guillemets typographiques, voici mon fichier yaml :

      nom: «Player audio»
      description: «Player audio»
      icon: 'noisettes/icones/mp3.png'
      contexte:
       - 'id_article'
      ajax: 'non'

      Mais ça n’y change rien...

    • Euhhh vous avez utilisez des guillemets typographiques français ou de simples guillemets doubles droits ? ("). Seuls les guillemets droits sont reconnus comme délimiteurs de texte.

      Par aileurs, combien d’espaces avez avant - 'id_article' en début de ligne ? YAML est très strict en matière d’identation. Il doit y avoir exactement 2 espaces.

    • Benoît Labourdette

      Merci !
      Alors, les guillemets doubles ne changent rien. Concernant l’espace double, il est à mettre en début de ligne, j’ai fait ceci :

      nom: "Player audio"
      description: "Player audio"
      icon: 'noisettes/icones/mp3.png'
      contexte:
        - 'id_article'
      ajax: 'non'

      Pour le moment, ça ne change rien. Mais je sens que vous avez raison, cela doit être dans la rédaction du YAML.

    • Attention : il y a un cache du descriptif des noisettes. Il faut mettre ce cache à jour après mise à jour du YAML d’une noisette. Trois possibilités :

      • sur une des pages du noizetier, ajoutez &var_mode=recalcul à l’URL ;
      • se rendre sur la page de gestion du cache et vider le cache ;
      • se rendre sur la page de gestion des plugins (ce qui a pour effet de vider le cache des noisettes).

      Bien cordialement

    • Benoît Labourdette

      Merci !
      J’ai fait ces trois opérations, mais toujours pas de titre à mes noisettes....
      Je précise que mes noisettes sont dans le dossier squelettes, dans un sous-dossier noisettes.
      J’ai mis le fichier YAML ici : http://we.tl/paF8QeZL69, si vous voulez aller voir l’original...

    • Benoît Labourdette

      J’ai quasiment réglé le problème : je créais mes fichiers de noisettes en encodage UTF-8 (croyant bien faire), et, en regardant les autres noisettes, j’ai constaté que les fichiers étaient encodés en ANSI. j’ai donc encodé en ANSI mes fichiers de noisettes, et, ô miracle, les titres apparaissent ! (les caractères accentués ne passent pas, c’est un détail)
      Mais, par contre, les descriptifs n’apparaissent pas (c’est un peu embêtant), et je ne me l’explique pas non plus. Voici le code :

      nom: "Player audio"
      description: "Si un ou plusieurs fichiers MP3 sont en documents joints de l'article, alors cela affiche un ou plusieurs players audio avec le titre du document."
      icon: 'noisettes/icones/mp3.png'
      contexte:
        - 'id_article'
      ajax: 'non'
    • Avez-vous essayé l’encodage « UTF-8 sans BOM » ? De mémoire, je crois que ça doit passer (à vérifier).

      Vous avez toujours la solution de passer par des chaînes de langue personnalisées. (ce qui est utiliser pour Aveline même si c’est un peut lourd pour des noisettes perso).

      Concernant le descriptif, il n’est visible que dans la colonne de gauche (en haut) des pages de configuration d’une noisette (exec=noisette_edit). Sur exec=page qui liste les noisettes installées sur une page donnée, les descriptions des noisettes ne sont pas affichées. Par contre, si la noisette dispose d’un aperçu (voir ci-dessus) alors l’aperçu sera affiché.

    • Benoît Labourdette

      Je vais essayer UTF8 sans bom. L’aperçu, qu’est-ce ?
      En fait, quand je parlais de descriptif, je voulais évoquer ce texte là (image jointe). Mais, en fait, ça doit venir de la configuration. Mais comment fait-on pour faire apparaître un petit texte à cet endroit là ?

    • Ce texte correspond à l’aperçu de la noisette. Voir la fin de l’article ci-dessus. Il est généré à partir d’un petit squelette qui reçoit en variables d’environnement les paramètres de la noisette, ce qui lui permet d’afficher un texte différent selon la configuration de la noisette.

      On peut aussi faire un petit squelette simple avec un texte fixe. Il doit être nommé noisettes/nom_noisette-preview.html.

      Cordialement

    • Benoît Labourdette

      Bonjour,
      C’est parfait !
      Ca marche !
      Merci beaucoup.
      Benoît

    Répondre à ce message

  • 4

    Bonjour,

    J’ai besoin d’aide SVP. J’utilise :

    SPIP 3.0.5 [19905]
    Aveline 2.2.7 - test
    noiZetier 2.1.0 - test
    YAML 1.5.0 - stable
    Zpip-dist v1 1.7.21 - stable
    Zpip-vide 2.1.0 - test

    Toutes les fonctionnalités sont utilisables sans problème. Cela se complique lorsque je souhaite ajouter des noisettes. J’utilise en effet un fichier planchecontact.html chargé de récupérer une image au hasard pour les 5 derniers articles modifiés et les afficher en très petites vignettes. Ce code fonctionne très bien dans un squelette complet. Je souhaite ici l’utiliser comme une noisette.

    <BOUCLE_arts_cacher (ARTICLES){titre_mot=cacher}{doublons art}>
    </BOUCLE_arts_cacher> <!-- Pointe dans 'doublons art' tous les articles à cacher avec le mot clé 'cacher'-->
    <BOUCLE_rub_cacher (RUBRIQUES){titre_mot=cacher}{doublons rub}>
        <BOUCLE_arts_rub_cacher (ARTICLES){id_rubrique}{doublons art}>
        </BOUCLE_arts_rub_cacher>
    </BOUCLE_rub_cacher> 
    <BOUCLE_art (ARTICLES){0,5}{par date_modif}{inverse}{doublons art}>
    <BOUCLE_img(DOCUMENTS){extension==jpg|png|gif}{id_article}{mode=document}{0,1}{par hasard}>
        [(#REM) document lie a un article ?]
        <BOUCLE_lien_a(spip_documents_liens){id_document=#ID_DOCUMENT}{id_objet=#ID_ARTICLE}{objet=article}>
             <BOUCLE_lien_article(ARTICLES){id_article=#ID_OBJET}>
             <a href="#URL_ARTICLE">[(#_img:FICHIER|image_reduire{40})]</a>
             </BOUCLE_lien_article>
        </BOUCLE_lien_a>
    </BOUCLE_img>
    </BOUCLE_art>

    Ensuite je définie le fichier planchecontact.yaml de la manière suivante :

    nom: 'Planche contact mini photos'
    description: 'Noisette d affichage d'une planche contact des photos issues des derniers articles modifiés'
    icon: 'contenu-24.png'
    ajax: 'non'

    Dans ce cas, j’obtiens bien la noisette dans le noizetier.

    Mais :

    1) si le fichier contient le caractère ’_’ comme par exemple planche_contact, impossible de récupérer le fichier dans le noizetier. D’ailleurs la mise à jour des noizettes (qu’on ajoute ou qu’on modifie) n’est pas faite par l’interface même avec le &var=recalcul ou le cache désactivé. Il est nécessaire de vider le cache complètement par ftp pour l’obtenir.

    2) lorsque je souhaite paramétrer le code html pour choisir le nombre de vignettes à afficher en modifiant :

    <BOUCLE_art (ARTICLES){0,5}{par date_modif}{inverse}{doublons art}>
    par
    <BOUCLE_art (ARTICLES){0,#ENV{param}}{par date_modif}{inverse}{doublons art}>

    Avec le fichier yaml suivant, rien ne va plus.

    nom: 'Planche contact mini photos'
    description: 'Noisette d affichage d'une planche contact des photos issues des derniers articles modifiés'
    icon: 'contenu-24.png'
    ajax: 'non'
    parametres:
      -
    	saisie: 'input'
        options:
          nom: 'nb_vignettes'
          label: 'Nombre de vignettes'
          defaut: 5

    Dès lors que j’ajoute les parametres dans le fichier yaml, la noisette disparaît du noizetier.

    J’avoue qu’un peu d’aide à ce niveau me rendrait des couleurs. Ou peut on trouver des informations sur la syntaxe des paramètres des fichiers yaml ?

    Merci d’avance

    • Je me réponds à la question 2)

      Yaml étant sensible aux tabulations, il est important d’utiliser un éditeur de texte qui permette de les visualiser (notepad++ par exemple). C’était la cause de mes ennuis.

      Attention aussi à utiliser le nom du parametre dans #ENV{param}, dans l’exemple ce sera donc #ENV{nb_vignettes}

      pour la question 1) , la mise à jour des noisettes reste toujours subordonnée à la suppression totale du cache par ftp.

    • Bonjour,

      YAML est effectivement très sensible à l’indentation (utiliser des espaces et non des tabulations).

      Le nom du paramètre doit bien sur correspondre entre le YAML et le squelette.

      Le caractère _ (underscore) est bien autorisé dans les noms de noisette. Attention néanmoins à ce que les noms des fichiers .html et .yaml soient bien identiques. Surtout, il ne faut pas confondre avec - (tiret) qui lui sert à indiquer qu’une noisette ne peut être utilisée que sur certaines pages.

      Pour recalculer le descriptif des noisettes, il faut ajouter &var_mode=recalcul et non &var=recalcul à l’URL.

      Sachez également que le cache des noisettes est également vidé à chaque passage sur la page de gestion des plugins.

      Bien cordialement

    • Pour information, la désactivation du cache des squelettes ne désactive pas le cache du descriptif des noisettes. Il faut donc bien passer par var_mode=recalcul ou par la page ?exec=admin_plugin ou par vidage du cache.

    Répondre à ce message

  • 1
    Stéphane Santon

    Bonjour,

    A partir du moment où les noisettes sont présentes sur le site public, ne peut-on pas imaginer (quand un admin est connecté sur le site public) des petites icônes en haut de chaque bloc pour simplement déplacer la noisette dans un autre bloc, de Navigation à Extra par exemple ? Comme avec Moodle...

    • Si vous savez le programmer en javascript, c’est tout à fait envisageable. Pour ma part, c’est en dehors de mon domaine de compétence. Mais je suis persuadé qu’il y a aurait beaucoup à faire pour améliorer l’interface tant privée que publique du noizetier.

      Bien cordialement

    Répondre à ce message

  • 2
    Stéphane Santon

    Bonjour,

    Comment passe-t-on les apostrophes dans les nom et description de noisettes ?
    Merci

    • Stéphane Santon

      Simplement on met des guillemets doubles autour de la chaine.

    • Salut,

      Et avec de vrais apostrophes : &#039;

      Cela ne serait pas mieux ?

       ;)

    Répondre à ce message

  • 1

    Bonjour à toutes et tous,
    Je viens de migrer de SPIP 1.9 avec Maguzine à Spip 2.1 et je découvre Aveline et le noiZetier.
    Excellent travail. Le principe est un peu le même entre Maguzine et les noisettes du couple Aveline-noiZetier. Je m’étais frotté à la personnalisation de certains blocs à l’époque et je me dis que je ferais bien de même avec certaines noisettes. Et en particulier la création d’une qui pourrait s’installer n’importe où (mais surtout sur la page-sommaire, ...) et qui afficherait une image prise au hasard dans pièces joints des articles d’une rubrique bien précise.

    Croyez-vous que le travail soit compliqué ? Pour ne pas ré-inventer la roue complètement il vaudrait mieux partir de quel base dans la collection de noisettes existantes ?

    Bonne nuit ou bonne journée, je ne sais pas quand vous me lirez.
    Nicolas

    • Bonjour,

      il y a une certaine parentalité entre magusine et le noizteier, même si le squelette initial à la réflexion de ce long projet est en fait BliP.

      La difficulté pour créer une noisette dépend du niveau de sophistication recherché. Celles d’Aveline comportent de nombreux paramètres et leurs propres surcouches de balises filtres et inclusions dédiées ce qui ne le rends pas facile à comprendre.

      Concernant la noisette qui que vous souhaitez faire, il n’y a pas encore de noisette équivalente, mais elle peut être facilement réalisée si vous avez déjà une connaissance de la syntaxe des squelettes SPIP et que vous avez compris le format YAML et la description de saisies.

      Grosso modo, votre noisette ne nécessite qu’un seul paramètre, la rubrique dans laquelle chercher l’image. Il faut ensuite construire la bonne boucle pour sélectionner l’image voulue.

      Cordialement

    Répondre à ce message

  • 4
    triton

    Bonjour,
    je continue mon apprentissage de ce nouveau dispositif, et c est vraiment très chouette...
    Je rencontre une petite difficulté, je n arrive pas a faire fonctionner un formulaire CVT à partir d une noisette...
    dans mon dossier « noisettes » j ai :
    monform.html
    monform.yaml
    qui me permet d afficher et d administrer le formulaire en tant que noisette
    Par contre, je ne sais ou coller le fichier :
    monform.php pour qu il effectue les traitements... En toute logique spip les fichiers monform.html et php devrait se situer dans un dossier « formulaires ».
    L idée c est de pouvoir configurer les champs du formulaire CVT a partir du fichier yaml, je ne peux donc pas faire juste une noisette avec dedans un appel a #MONFORM (comme pour le form de rechercce aveline par ex)... bref, je ne sais pas trop comment organiser la structure des repertoires..
    Merci bien
    triton

    • On est dans un contexte particulier. Pour fonctionner correctement, il faut que ton formulaire soit déclaré comme un formulaire classique, donc dans le répertoire formulaires. Attention : un formulaire s’appelle avec la balise #FORMULAIRE_MONFORM et non #MONFORM.

      Par contre tu souhaites que ton formulaire soit paramétrable. Ce qui est possible (voir http://programmer.spip.org/Passage-...).

      Tu auras donc un formulaire qui doit être appelé avec différents paramètres : #FORMULAIRE_MONFORM{parma1, param21, param3}.

      Dans un premier temps, créer ton formulaire de manière classique en le testant dans un squelette classique où tu lui passeras les paramètres en dur.

      Ensuite, une fois ton formulaire finalisé, tu peux créer une noisette qui proposera les différents paramètres. Et le code html de la noisette contiendra : #FORMULAIRE_MONFORM{#ENV{param1},#ENV{param2},#ENV{param3}}.

    • triton

      ok... j ai compris.... je vais tester....
      Merci beaucoup

    • triton

      j ai testé... ca marche, mais alors c est un petit peu monstrueusement lourd a mettre en place... bon, faut dire que j ai une vingtaine de valeurs a faire transiter entre le .yaml le .html de la noisette, la fonction charger du .php jusqu au html du formulaire.... le tout dans le bon ordre et sans se rater sur un espace..
      J ai vu qu il y avait une contrib sur les formulaires CVT en YAML :
      http://www.spip-contrib.net/Un-formulaire-C-V-T-avec-Saisies-par-l-exemple
      peut etre qu il y a quelque chose a faire avec ca....
      triton

    • Il faut distinguer la description du formulaire (qui peut être fait en YAML avec Saisies) des paramètres de personnalisation du formulaire (ce qui est moins fréquent et forcément plus lourd à mettre en place). De toute façon, dès lors que l’on a de nombreuses personnalisations possibles, les choses sont plus lourdes à gérer.

    Répondre à ce message

  • 1

    Bonjour,
    J ai crée une nouvelle noisette assez simple, qui semble fonctionner sauf que...
    si je mets plusieurs fois cette noisette sur une même page, lorsque j administre la configuration d’une noisette, cela modifie également la configuration des autres (en administration et en affichage site public)... Ce n’est pas systématique, c est assez difficile a reproduire, tous les champs de la noisette ne sont pas concernés, c est assez déroutant....
    Noizetier Version : 0.10.1 [46170]
    le contenu du yaml :
    /////////////////////////
    nom : ’encart cliquable’
    description : ’un encart avec titre logo descriptif lien’
    icon : ’img/ic_article.png’
    contexte : ’aucun’
    parametres :

    -
    saisie : ’selecteur_rubrique_article’
    options :
    nom : ’id_objet_01’
    label : ’rubrique article’
    obligatoire : ’oui’
    -
    saisie : ’input’
    options :
    nom : ’largeur_logo’
    label : ’largeur_logo’
    obligatoire : ’non’
    -
    saisie : ’input’
    options :
    nom : ’hauteur_logo’
    label : ’hauteur_logo’
    obligatoire : ’non’
    -
    saisie : ’input’
    options :
    nom : ’squelette_destination’
    label : ’squelette_destination’
    obligatoire : ’non’
    -
    saisie : ’selecteur_rubrique_article’
    options :
    nom : ’id_objet_destination’
    label : ’Objet (article, rubrique...) affiché par defaut’
    obligatoire : ’non’
    ///////
    Ca fait pareil avec un input a la place du selecteur_rubrique_article (c est bien chouette ce truc)...
    Merci beaucoup
    triton

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom