Ejemplo de utilización del filtro ? de SPIP 1.8

El objetivo es clasificar una lista de sitios por numeros, quitando el número y fijando el logo de cada sitio o su título si este no existe

Comencé a perderme en los laberintos de PHP cuando Mortimer me demostró un uso muy interesante del nuevo filtro condicional [1] "|?{afirmativo,negativo}".

Principios

El código condicional es el siguiente :

[(#LOGO_SITE||?{'',' '}) [(#NOM_SITE|supprimer_numero)] ] [(#LOGO_SITE)]
  1. la prueba condicional en #LOGO_SITE devuelve una cadena nula cuando existe, por lo tanto el código opcional que le sigue (antes del corchete de cierre) no será presentado.
  2. Luego, la baliza de logo que le sigue sólo se mostrará si existe (como sucede con cualquier otra baliza).

Código

Acá está el bucle, simple por cierto. Está pensado para que muestre el contenido en forma de lista.

<ul>
<BOUCLE_lien(SITES){id_rubrique}{par num nom_site}>

<li><a href = "#URL_SITE" class="spip_out">

<!-- aqui se usa el nuevo filtro.-->
[(#LOGO_SITE||?{'',' '})
[(#NOM_SITE|supprimer_numero)]
]
<!-- se pone el logo, si existe -->
[(#LOGO_SITE)]</a> : #DESCRIPTIF</li>
</BOUCLE_lien>
</ul>

Algo más

También deseaba poner los parámetros de la imagen, es decir, indicar su altura, su anchura y el nombre del sitio en los criterios alt y title.

Los filtros también nos ayudan aquí. Es suficiente con remplazar [(#LOGO_SITE)] por lo siguiente:

[<img src="./IMG/(#LOGO_SITE|fichier)" 
title="[(#NOM_SITE|supprimer_numero)]" 
alt="[(#NOM_SITE|supprimer_numero)]" 
width="[(#LOGO_SITE||largeur)]" 
height="[(#LOGO_SITE||hauteur)]">]

Que insertado en el bucle anterior queda así:

<ul>
<BOUCLE_lien(SITES){id_rubrique}{par num nom_site}>

<li><a href = "#URL_SITE" class="spip_out">

[(#LOGO_SITE||?{'',' '})
[(#NOM_SITE|supprimer_numero)]
]

[<img src="./IMG/(#LOGO_SITE|fichier)" title="[(#NOM_SITE|supprimer_numero)]" alt="[(#NOM_SITE|supprimer_numero)]" width="[(#LOGO_SITE||largeur)]" height="[(#LOGO_SITE||hauteur)]">]

</a> : #DESCRIPTIF</li>
</BOUCLE_lien>
</ul>

Footnotes

Discussion

No discussion

Add a comment

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 / PostgreSQL
  • 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 apparait.

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.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom