SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribuciones sur SPIP-Zone, 213 visitantes en este momento

Portada del sitio > Affichage multimédia > Images > Archives Image, Galerie > ¿Retrato o paisaje?

¿Retrato o paisaje?

8 de octubre de 2005 – por Martin Gaitan

Todas las versiones de este artículo: [عربي] [Español] [français]

3 votos

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Cómo seleccionar la imágenes de un bucle DOCUMENTS en función de su orientación. Un ejemplo de las nuevas funcionalidades en SPIP 1.8

En un boucle DOCUMENTS que sirve para mostrar imágenes (por ejemplo para una galería), se prentende seleccionar las imágenes por su orientación.

En función de la compaginación que se busca, puede ser importante saber si la imagen que se va a indicar será vertical [1] o apaisada

Aquí van algunas soluciones que utilizan las nuevas funcionalidades de SPIP 1.8.x

La primera intuición

Se sabe que en un bucle documents, se puede acceder a las balizas #HAUTEUR [2] y #LARGEUR [3]. Eso significa que también se puede poner un criterio que limite la altura o la anchura de los DOCUMENTOS seleccionados:

<BOUCLE_doc(DOCUMENTS) {id_article} {largeur < 800}>
#LOGO_DOCUMENT
</BOUCLE_doc>

Siguiendo esa lógica, podría intentarse una comparación entre la anchura y la altura entre sí:

<BOUCLE_doc(DOCUMENTS) {id_article} {largeur < hauteur}>
#LOGO_DOCUMENT
</BOUCLE_doc>

SPIP autoriza el primer bucle. En efecto, se puede comparar cualquier columna de la base de datos con un valor constante. Sin embargo en del 2do bucle propuesto, el valor a la derecha no es una constante, sino un dato de la base. Por lo tanto este criterio va a fallar.

Una solución limitada: anidar bucles

Cuando se dice que el valor a la derecha debe ser una constante, eso quiere decir que puede ser:

  • una constante numérica (un id, un tamaño, etc...),
  • una cadena de carácteres (un título de artículo, de sección, etc...)
  • una expresión regular
  • el valor de una baliza de un bucle englobante

Efectivamente, dentro de una iteración específica de un bucle, los valores de sus balizas son constantes observadas desde los bucles anidados de nivel inferior. [4]

Entonces se puede utilizar un bucle englobante para pasar el tamaño del documento a la derecha del operador

En el bucle _doc se usa para encontrar todos los documentos de un artículo (aunque se podrían utilizar otros criterios). A continuación, el bucle _portrait gracias al criterio id_document sólo selecciona un documento y comprueba que la altura sea mayor o igual a la anchura del documento seleccionado por el bucle superior, que es exactamente el mismo.

He aquí entonces una primera solución funcional para seleccionar documentos de acuerdo a su orientación.

Desgraciadamente, un criterio frecuentemente utilizado no funcionará correctamente con este bucle: {a,b}.

Explicación:
Suponga que un artículo contiene imagenes con id 1, 2, 3, 4, 5 y 6 de la cuales 1, 3, 4 y 6 son verticales. Si quiero mostrar sólo las primeras dos fotos verticales, sería erroneo plantear

Este bucle devolvería sólo la foto 1, y perdería la foto 3, ya que el bucle superior devolvió los dos primeros resultados de todo el artículo.

Una solución más flexible: utilizar doublons

Una solución para poder utilizar el criterio {a,b} es usando doublons:

Un primer bucle marca con doublons los documentos que no se quieren motrar [5], en este caso las fotos apaisadas. El segundo bucle muestra todos los documentos excepto los que están con doublons, es decir, los que no han sido eliminados por el bucle anterior.

Una solución integral: brindar nuevos criterios

A veces es complicado código respetar el código SPIP puro. Desgraciadamente, en casos especiales incluso la segunda solución tiene algunas limitaciones.

He aquí una solución se vale de la extensibilidad en la versión 1.8 de SPIP, para añadir tres nuevos criterios de bucles. Como es código php puro, no están obligados a comprenderlo para utilizarlo.

Los criterios {portrait} y {paysage} estarán entonces disponibles. Por ejemplo:

Es necesario colocar este código en mes_fonctions.php3.

Atención, los dos criterios utilizan desigualdades estrictas para seleccionar las imágenes. Por ello, las imágenes cuadradas: Hauteur = Largeur no se seleccionarán por estos dos criterios. Esta es la razón por la que se añade también el criterio {carre} que, obviamente, devuelve las imágenes cuadradas.

Les dejo aquí algunas explicaciones para los que se interesan por el código. Las tres funciones hacen esencialmente lo mismo:

  1. Las dos primeras líneas recuperan el bucle en el cual se encuentra el critero y el nombre de la tabla de la base en cuestión.
  1. Se comprueba a continuación que el criterio no esté invertido (por la señal»!"); y en tal caso, se utiliza el criterio de comparación opuesto.
  1. Se añade finalmente una nueva condición a la petición que se hará a la base. Esta condición compara las columnas hauteur y largeur de la tabla en cuestión.

P.-S.


Traducción por Martín Gaitán.

Notas

[1en francés, «portrait», retrato

[2Alto

[3Largo

[4El «parser» de SPIP analiza los bucles desde «afuera hacia adentro

[5notar que el criterio es inverso al planteado antes

Dernière modification de cette page le 13 de junio de 2012

Volver arriba

Comentar este artículo

¿Quién es usted?
  • [Conectarse]

Para mostrar su avatar con su mensaje, guárdelo en gravatar.com (gratuit et indolore) y no olvide indicar su dirección de correo electrónico aquí.

Añada aquí su comentario Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Añadir un documento

Volver arriba

Hablando de eso...

  • (fr) Sommaire automatique

    31 janvier 2013 – 14 commentaires

    Ce plugin repère les intertitres des textes de vos articles et s’en sert pour génèrer un sommaire. Ce dernier peut être inséré automatiquement au début de chaque article, ou utilisé dans les squelettes pour générer un sommaire sur n’importe quel autre (...)

  • (fr) La Fabrique

    20 avril 2012 – 316 commentaires

    La Fabrique est un outil pour webmestres ou développeurs qui souhaitent créer des plugins. La Fabrique est capable de générer le code source minimal d’un plugin pour SPIP 3 (elle accélère donc le démarrage d’un plugin) et peut s’occuper également de (...)

  • (fr) Enluminures typographiques V3

    25 juillet 2009 – 186 commentaires

    Les Enluminures typographiques V3 permettent d’ajouter au Porte plume les raccourcis typographiques présents dans le Plugin Barre Typographique Enluminée. C’est une extension du PortePlume. Pour la documentation d’usage, se reporter à celle du (...)

  • (fr) Refonte de l’identité graphique

    10 juillet – 36 commentaires

    Lors de la SPIP Party 2017 à Toulouse, un nouveau contributeur est venu nous présenter son travail sur une refonte du logo. Au delà de la refonte du logo, c’est une toute nouvelle identité graphique pour SPIP que Jordan nous propose. Voici une (...)

  • (fr) En travaux 2.0

    15 mai 2009 – 68 commentaires

    À utiliser pendant une phase de maintenance, ce plugin affiche une page d’avertissement personnalisable, en lieu et place du site public.