Image active automatique

Petit code ultrasimple

Grace aux filtres graphiques de SPIP 1.9.x, il est très simple de laisser SPIP calculer une image réactive.

Il suffit d’insérer ce code HTML dans la boucle de votre choix. Pour le logo d’un article :

<a href="#URL_ARTICLE"><img
src="[(#LOGO_ARTICLE_RUBRIQUE
      |#URL_ARTICLE
      |filtrexxx
      |extraire_attribut{src})]"
border="0"
onMouseOver="this.src='[(#LOGO_ARTICLE_RUBRIQUE
      |#URL_ARTICLE
      |filtrexxx
      |filtreyyy
      |extraire_attribut{src})]'"
onMouseOut="this.src='[(#LOGO_ARTICLE_RUBRIQUE
      |#URL_ARTICLE
      |filtrexxx
      |extraire_attribut{src})]'"></a>

Dans le cas logo / logo noir et blanc voilà ce que ça peut donner :

<a href="#URL_ARTICLE"><img src="[(#LOGO_ARTICLE_RUBRIQUE
      |#URL_ARTICLE
      |image_reduire{180,180}
      |extraire_attribut{src})]"
border="0"
onMouseOver="this.src='[(#LOGO_ARTICLE_RUBRIQUE
      |#URL_ARTICLE
      |image_reduire{180,180}
      |image_nb{330,330,330}
      |image_gamma{-30}
      |extraire_attribut{src})]'"
onMouseOut="this.src='[(#LOGO_ARTICLE_RUBRIQUE
      |#URL_ARTICLE
      |image_reduire{180,180}
      |extraire_attribut{src})]'"></a>

Il existe beaucoup d’autres filtres à l’adresse suivante http://www.spip.net/fr_article3327.html qui peuvent être combinés les uns aux autres.

Il faut avoir inséré un logo dans son article ou sa rubrique au préalable pour cet exemple. Cependant rien ne vous empêche d’adapter ce code à vos documents joints.

Un exemple sur le site du Volant Opale Club avec le filtre sépia. Un autre exemple en SPIP 3 sur le site ci-après http://audeladeleau.free.fr/

Beurt m’a suggéré une approche alternative en utilisant le fichier mes_fonctions.php [1], il suffit d’y ajouter ces lignes :

<?php
// Fonction qui rajoute un effet de survol sur les images dont l'image de survol n'est pas déjà définie.
// utilisation: Placer dans un squelette:
// [(#BALISE_IMAGE
//      ||des_filtres
//      |inserer_rollover{[(#AUTRE_BALISE_IMAGE||encore_des_filtres})]
 
function inserer_rollover($texte,$rollover) {
      $onmouseover=" onmouseover=\"this.src='".extraire_attribut($rollover, "src")."'\"";
      $onmouseout=" onmouseout=\"this.src='".extraire_attribut($texte, "src")."'\"";
      $texte = (preg_replace("/(<img.*?)(\/>)/i", "\$1$onmouseover$onmouseout \$2", $texte));
      return $texte;
}
?>

Ensuite on l’utilise tout simplement dans les squelettes avec :

[(#BALISE_IMAGE
      ||des_filtres
      |inserer_rollover{[(#AUTRE_BALISE_IMAGE
            ||encore_des_filtres})]

A vous de voir quelle est la solution qui vous paraît la mieux adaptée à vos besoins.

Notes

[1voir la doc de SPIP sur le fichier mes_fonctions.php :les filtres de SPIP (voir en bas de page).

Dernière modification de cette page le 9 février 2019

Discussion

2 discussions

  • 2

    Avec jQuery, on peut aussi créer des rollovers non intrusifs.

    je me permets de recroiser avec ce qui est déjà existant, ce tuto permet également d’utiliser les filtres images que l’on veut.

    http://www.spip-contrib.net/Survol-de-logo-automatique-N-B

    Rollovers visibles sur le menu du haut de derouault.net

    • Les gros avantages de la contrib décrite ici sur celle que tu propose utilisant jquery sont :

      1. Mise en œuvre ultra simple
      2. Possibilité d’utiliser des filtres différents selon les endroits dans le squelettes.
      3. permet (pour le code à insérer dans mes_fonctions.php) d’afficher l’image de survol si elle existe, le rollover/survol automatique sinon.
      [(#LOGO_NORMAL
      	||des filtres si besoin
      	|inserer_rollover{[(#LOGO_SURVOL
      			||des filtres éventuellement
      			|sinon{[(#LOGO_NORMAL
      				||des filtres pour rendre le logo normal survolé)]})]})]

      Je l’utilise surtout pour la seconde et la troisième possibilité : certains logos d’articles ont un rollover/survol avec certains filtres et d’autres logos ont des filtres différents en fonction du types d’article. Enfin certains d’entre-eux ont déjà une image de survol choisie par les rédacteurs.

      La contrib’ Survol de logo automatique N&B <> couleur propose, il me semble, un rollover unifié pour toutes les images.

      Je ne précise pas ça pour critiquer, mais pour que les Spipeurs fassent leur choix entre les deux contrib’ en connaissance de cause :

      -  Survol de logo automatique N&B <> couleur pour un rollover non intrusif (pas de rajouts concernant le rollover dans les balises <img>).
      -  Cette contrb’-ci pour ceux qui veulent avoir différents type rollovers dans leurs squelettes (avec des effets différents selon les images).

    • Merci pour cette contrib très intéressante

    Répondre à ce message

  • 3

    pas besoin de cree un filtre car j’ai fait ca via css( propriete opacity :) exp :
    a img

    border : 0 ;
    opacity : 0.7 ;

    a img:hover
    opacity : 1 ;

    par agence communication marrakech.

    • En fait le but de cette « image active automatique » est justement d’utiliser les filtres graphiques de SPIP, afin de définir une charte graphique, quelque soit le logo/l’image que le rédacteur choisisse d’intégrer à son article/rubrique.

    • Je crois que l’idée, ici, c’est d’utiliser les filtres image de SPIP pour obtenir un logo de survol. Les propriétés CSS sont loin d’être aussi riches que les filtres image... (par exemple, j’utilise un léger flou quand les images sont survolées).

    • Oups ! On dirait que Joss a été plus rapide !

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

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