Smileys III : Un point d’entrée pour les Frimousses

Cette contribution adapte la précédente (Smileys) au système de points d’entrée dans le traitement des raccourcis SPIP apparue avec la version 1.7.2.

Cette adaptation présente plusieurs avantages par rapport à la précédente contribution (Smileys) :

  • présenté sous forme de point d’entrée, il n’y a plus besoin de rajouter le nom du filtre dans les squelettes (|smileys par exemple [(#TEXTE|smileys)]) [1] ;
  • le plugin permet d’afficher les frimousses (smileys) dès la prévisualisation (très utile dans les forum par exemple car, dorénavant, on peux voir le smiley avant de valider définitivement le post ;
  • la contribution ajoute des chaînes alternatives (alt) aux images, permettant de définir clairement ce qui est affiché à l’écran [2].

Les icônes viennent du site de Jimmac

l’archive des images de smileys

Comment installer la contrib Frimousses

Il faut :
-  copier le répertoire des frimousses où vous le souhaitez (par défaut dans le répertoire NAVPICS) et puis compléter ou modifier la variable $chemin au début du fichier plug_smileys.php.

Par exemple, si vos frimousses se trouvent dans le répertoire /smileys à la racine de votre site, vous devrez avoir au début de la fonction smileys dans le fichier plug_smileys.php les lignes suivantes :

if($flag_ecrire)
        $chemin = "../smileys/";
 else
        $chemin = "smileys/";

ainsi qu’à la ligne 103 :

  $chemin = "smileys/";

-  ensuite, il faut placer le fichier plug_smileys.php dans le répertoire racine de votre site :

fichier à inclure.
fichier contenant la déclaration de la nouvelle balise et du traitement des smileys.

-  et enfin, il faut déclarer le nouveau point d’entrée dans ecrire/mes_options.php3 :

if( !@file_exists(_DIR_RESTREINT_ABS . 'inc_version.php3')) {
  include('../plug_smileys.php');
} else {
  include('plug_smileys.php');
}

function avant_propre($texte) {
  $texte = smileys($texte);
  return $texte;
}

ATTENTION : s’il existe déjà une fonction avant_propre dans votre fichier ecrire/mes_options.php3 il faut ajouter la ligne $texte = smileys($texte); tout au début et ne mettre que les lignes 1 à 5 du code précédent.

-  et si l’on veut avoir des chaînes alternatives traduites dans les langues de son site [3], copier-coller le contenu de ce fichier suivant dans ecrire/lang/perso.php3

Exemple de fichier de traduction
Le contenue de ce fichier doit être mis dans le fichier ecrire/lang/perso.php3 (sans les <?php et ?> si le fichier existe déjà.

Afficher une liste des smileys disponibles

Ce Point d’entrée défini aussi une nouvelle balise : #SMILEY_DISPO que l’on peut placer dans ses squelettes pour afficher (par exemple à côté du formulaire de forum) les frimousses qui seront traduites en image.

Cette balise affiche une simple liste qui peut être personnalisée avec les classes css :

  1. listes_smileys qui contient la liste ;
  2. smiley_nom le nom de la frimousse ;
  3. smiley_image l’image ;
  4. smiley_alt la chaîne alternative de la frimousse.

Voici par exemple des styles applicables à cette liste :

ul.listes_smileys {
padding: 0;
margin: 0;
float: right;
max-width: 30%;
min-width: 4em;
}

ul.listes_smileys li.un_smiley {
list-style-type: none;
float: left;
border: 1px dashed;
width: 3em;
text-align: center;
padding: 3px;
margin: 0px;
}

ul.listes_smileys li.un_smiley  IMG.smiley_image {
vertical-align: middle;
margin: 5px 0 0 1em;
display: block;
align: center;
border: 0;
}


ul.listes_smileys li.un_smiley span.smiley_alt {
display:none;
}
balise #SMILEY_DISPO

Notes

[1Il est même obligatoire d’enlever les appels à ce filtre qui sont incompatibles avec cette contrib.

[2c’est aussi indispensable pour une validation XHTML correcte et une accessibilité optimum

[3voir les commentaires dans le fichier et la documentation de spip pour plus d’information sur l’ajout de nouvelles langues

Discussion

Aucune discussion

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