Home >> My Code >> Des smileys dans SPIP

Des smileys dans SPIP

La 3ième génération arrive !
Dernière modification : 3 août 2004.

Dans cet article vous allez découvrir comment j’ai rajouté les smileys a mon site, et comment vous aussi vous pourrez faire de même, puisque je livre toutes les recettes....

Ce script, cette bidouille, ce hack, ce mod, cette contrib’, appelez cela comme vous voulez s’inspire de Smiley II, lui même déjà inspiré de Smiley.

Je rajoute donc a smiley II :
-  La possibilité de cliquer directement sur les emoticons pour les utiliser dans le forum. Pas de glisser-déposer hasardeux, et nécessitant d’employer le texte et pas l’image (pas évident). J’ai fait ca avec un peu de Javascript très inspiré de ce que j’ai déjà trouvé sur le net
-  La visibilité des smileys lors de la prévisualisation des commentaires dans le forum. Comment voulez-vous que les gens vérifient leur texte si on ne l’interprète pas ? Ce bug est critique dans smiley II, mais pour le corriger j’ai du faire un peu le smiley !
-  L’utilisation de 2 double-points, a savoir avant et après le nom du fichier. Je trouve ca plus propre, mais comme SPIP selon le cas peut avoir interprété le second, le code qui en résulte n’est pas plus propre lui, au contraire. Ainsi, après application du filtre, tout texte de la forme :nom_du_smiley : sera remplacé par le smiley, si celui-ci existe dans votre répertoire smiley.

Les autres bugs existent encore, en particulier il n’y aucune intégration à la partie administrative. Cela ne me gène pas de trop, donc pour le moment je ne suis pas trop près de le coder... Sauf si vous voulez me payer pour ça bien entendu smiley !

Mise en Place

Pour l’installation, tout pareil que Smiley II, sauf que cette fois-ci, il va falloir modifier le fichier inc-forum.php3. Rien de bien méchant ; il faut juste changer la ligne (aux environs de la 140ième) :

$ret .= "<p />".propre($texte)."<p />";

en $ret .= "<p />".smileys(propre($texte))."<p />";

Pour les fainéants fans d’unix (comme moi smiley), voici le patch :

Pour le reste de l’installation, je vais bêtement recopier ce qui a été dit pour Smiley II, en l’adaptant a peine....

Tout d'abord récupérez des smileys (formats de votre choix) et placez les dans un dossier "smileys/" à la racine de votre site SPIP. Je vous conseille des images pas trop grandes, du style 15x15 px.

Ensuite copiez_collez dans mes_fonctions.php3 le filtre suivant : (si vous avez déjà au moins un filtre, et donc une page mes_fonctions.php3, supprimez les balises <?php et ?> dans ce morceau de code)

Pour finir votre installation, téléchargez le fichier inc_tableau_smileys.php3 et placez le à la racine de votre site spip. Le code de ce fichier permet d’afficher les smileys. Si vous regardez le code source, vous noterez l’apparition d’un peu de JavaScript depuis la version Smiley II !

Utiliser le filtre dans les squelettes

Maintenant que le filtre est en place il vous faut modifier les squelettes qui doivent prendre en compte ce filtre. Plus précisément ce sont sur les balises spip, affichant du texte (pouvant contenir des smileys), que vous devez appliquer ce filtre, par exemple dans vos squelettes de forums utilisez :

[(#TEXTE|smileys)]

on peut également utiliser d’autres filtres en même temps que celui là, par exemple :

[(#TEXTE|justifier|smileys|autres_filtres)]

Pour plus de détails sur l’utilisation des filtres, voir : Les filtres de SPIP (dans la documentation officielle).

Tableau récapitulatif

Il faut aussi penser à montrer à vos rédacteurs ou visiteurs les smileys qui seront filtrés, et qu’ils peuvent utiliser. Par exemple, dans le squelette "forum.html" qui permet d’écrire un nouveau message, ajoutez le tableau récapitulatif ci-dessous.

Utilisez la commande

Ce fichier appelle le fichier inc_tableau_smiley.html qui affiche la liste des smileys disponibles dans un tableau transparent.


Tous les fichiers dont on parle ici, et même quelques smileys en bonus

mes_fonctions.php3

inc_tableau_smileys.php3

patch-inc-forum.php3.diff
Répondre à cet article

> Des smileys dans SPIP
25 janvier 2006, par white
Nickel smiley , ça fonctionne très bien. Merci smiley
> Des smileys dans SPIP
9 novembre 2004, par Lgaut
quand je met le filtre #TEXTE|entites_html, pour ne pas que l’on insere du code dans les champs, les smileys n’apparaissent plus, y’a t il une modification a apporter pour que cela puisse fonctionner Merci
> Des smileys dans SPIP
14 novembre 2004

Salut

je fais tout comme il faut mais que dalle ! ! smiley

j ultilise spip V8

voici ma ligne de code inc-forum.php3 transformée comme tu l’ a ecris :

if ($afficher_texte != ’non’) $previsu = "

" . typo($titre) . "

" . typo($auteur) . "

" . smileys(propre($texte)) . "

" . typo($nom_site_forum) . "" ;

http://www.tamazgha.fr/article.php3 ?id_article=1000

 
Steves free web site templates Site réalisé avec SPIP Valid HTML 4.01!