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
!
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
!
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
), 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 !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).
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