Mostrar condicionalmente

Las funciones charger() (cargar) y traiter() (tratar) pueden indicar en su respuesta que el formulario es editable o no. Esto se traduce por la recepción de un parámetro editable en el esqueleto, que puede servir a esconder o no el formulario (pero no los mensajes de error o de éxito).

Se utiliza así : [(#ENV{editable}) ... contenido de  <form> ... ] :

<div class="formulaire_spip formulaire_demo">

    [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
    [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]

    [(#ENV{editable})
        <form method='post' action='#ENV{action}'><div>
        #ACTION_FORMULAIRE{#ENV{action}}
        <ul>
        ...
        </ul>
        <p class='boutons'><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
        </div></form>
    ]
</div>

En caso de un bucle en el formulario

Si un bucle SPIP está presente dentro de la escritura [(#ENV{editable}) ... ] (o cualquier otra baliza), el compilador SPIP devuelve un error (o no devuelve correctamente la página) porque esto no está previsto en el actual lenguaje de esqueletos.

Como paliativo a esto, se puede:

  • ya sea poner el bucle en una inclusión llamada entonces por <INCLURE{fond=mi/inclusion} />
  • ya sea utilizar el plugin Bonux y su bucle CONDITION de esta manera:
    <div class="formulaire_spip formulaire_demo">

        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]

        <BOUCLE_editable(CONDITION){si #ENV{editable}}>
            <form method='post' action='#ENV{action}'><div>
            #ACTION_FORMULAIRE{#ENV{action}}
            <ul>
            ...
            </ul>
            <p class='boutons'><input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
            </div></form>
        </BOUCLE_editable>
    </div>

Autor o autora dani Publicado el:

Traducciones: English, Español, français