Smilies ou éditeur light les comprenants pour les commentaires ?

FrédéricFrédéric Member
novembre 2009 modifié dans Discussions générales
Bonsoir à tous,

Voilà je trouve pluxml vraiment bien fais dans le concept, mais personnellement je pense que les Smilies manques dans les commentaires.

je sais très bien que pluxml ce veux léger, mais j'ai du mal a percevoir un blog avec des commentaires sans Smilies.

Y a t'il une solution "provisoire" pour les intégrer svp ?

Réponses

  • FredFredFredFred Member
    novembre 2009 modifié
    Oui, je suis du même avis :D
    Pas forcément un truc qui traduise les codes classiques en smiley (genre tu tappes ;) et il te le transforme en siley). Avec l'apparition de la barre d'outils au dessus de nos textes, on pourrait très bien imaginer des icones-smileys qui, une fois que l'on clique dessus, insère le lien de l'image en relation.
    Exactement comme pour "paragraphe, H1, H2 etc" sauf qu'au lieu de faire apparaitre <p></p> il te met un lien d'image <img src=" blablabla" >

    Je suis sûr que des petits futés pourraient faire ça ;)

    Ceci dit, ce forum intègre les smiley, y'a pas moyen de récupérer la fonction? Enfin, pour ce que je m'y connais moi en php ... je devrais plutôt me taire :P
  • FrédéricFrédéric Member
    novembre 2009 modifié
    Ha cool je suis pas le seul :)

    Bon j'ai tenté un code basique, j'ai créé un fichier qui permet le parsage des smilies dans core/lib.

    class.plx.smilies.php :
    <?php
    //Emoticone dans les commentaires 
    $contenu=str_replace(':smilies0:','<img src="core/smilies/01.png" border="0">',$contenu);
    $contenu=str_replace(':smilies1:','<img src="core/smilies/02.png" border="0">',$contenu);
    $contenu=str_replace(':smilies2:','<img src="core/smilies/03.png" border="0">',$contenu);
    $contenu=str_replace(':smilies3:','<img src="core/smilies/04.png" border="0">',$contenu);
    $contenu=str_replace(':smilies4:','<img src="core/smilies/05.png" border="0">',$contenu);
    $contenu=str_replace(':smilies5:','<img src="core/smilies/06.png" border="0">',$contenu);
    $contenu=str_replace(':smilies6:','<img src="core/smilies/07.png" border="0">',$contenu);
    $contenu=str_replace(':smilies7:','<img src="core/smilies/08.png" border="0">',$contenu);
    $contenu=str_replace(':smilies8:','<img src="core/smilies/09.png" border="0">',$contenu);
    $contenu=str_replace(':smilies9:','<img src="core/smilies/10.png" border="0">',$contenu);
    ?>
    
    Ensuite j'inclus dans les commentaires ce fichier:

    Dans class.plx.motor.php rechercher dans la fonction "function newCommentaire":
    $contenu = plxUtils::strCheck(trim($content['content']));
    
    Et j'ajoute en dessous:
    # On ajoute les smilies "Add-On"
    include('class.plx.smilies.php');
    
    Ensuite j'intègre mes smilies cliquable dans mon template.

    Dans article.php, rechercher:
    <textarea id="content" name="content" cols="35" rows="8"><?php $plxShow->comGet('content',''); ?></textarea>
    
    Ajouter en dessous:
    <p align="left">
    <script type="text/javascript">
        function insertSmiley(smiley)
        {
            var currentText = document.getElementById("content");    
            var smileyWithPadding = " " + smiley + " ";
            currentText.value += smileyWithPadding;
        currentText.focus(); 
        }
    </script>  
    Smilies: 
    <img src="./core/smilies/01.png" alt=":-D" title=":-D" onclick="insertSmiley(':smilies0:')" style="border: 0;" />
    <img src="./core/smilies/02.png" alt="^_^" title="^_^" onclick="insertSmiley(':smilies1:')" style="border: 0;" />
    <img src="./core/smilies/03.png" alt=":-)" title=":-)" onclick="insertSmiley(':smilies2:')" style="border: 0;" />
    <img src="./core/smilies/04.png" alt=":-o" title=":-o" onclick="insertSmiley(':smilies3:')" style="border: 0;" />
    <img src="./core/smilies/05.png" alt=":-p" title=":-p" onclick="insertSmiley(':smilies4:')" style="border: 0;" />
    <img src="./core/smilies/06.png" alt=":(" title=":(" onclick="insertSmiley(':smilies5:')" style="border: 0;" />
    <img src="./core/smilies/07.png" alt=";-)" title=";-)" onclick="insertSmiley(':smilies6:')" style="border: 0;" />
    <img src="./core/smilies/08.png" alt=":--/" title=":--/" onclick="insertSmiley(':smilies7:')" style="border: 0;" />
    <img src="./core/smilies/09.png" alt=":-(" title=":-(" onclick="insertSmiley(':smilies8:')" style="border: 0;" />
    <img src="./core/smilies/10.png" alt=":-|" title=":-|" onclick="insertSmiley(':smilies9:')" style="border: 0;" />
    
                        </p>
    
    Et j'ai bien sur tout mes smilies dans le dossier core/smilies/.

    Rien que la fonction insère dans le textarea et le parsage si 'insère le code smilie ne marche pas alors que ceci marchais parfaitement bien pour pluxml 4.1
  • Hé hé, j'ai pas mal fouillé pour trouver le problème. Et comme toute solution que l'on met longtemps à trouver : c'est très bête ! Revoyons le tout :

    Fonctionne avec Pluxml 4.3


    Dans core/lib : class.plx.smilies.php :
    <?php
    //Emoticone dans les commentaires 
    $contenu=str_replace(':smilies0:','<img src="core/smilies/01.png" border="0">',$contenu);
    $contenu=str_replace(':smilies1:','<img src="core/smilies/02.png" border="0">',$contenu);
    $contenu=str_replace(':smilies2:','<img src="core/smilies/03.png" border="0">',$contenu);
    $contenu=str_replace(':smilies3:','<img src="core/smilies/04.png" border="0">',$contenu);
    $contenu=str_replace(':smilies4:','<img src="core/smilies/05.png" border="0">',$contenu);
    $contenu=str_replace(':smilies5:','<img src="core/smilies/06.png" border="0">',$contenu);
    $contenu=str_replace(':smilies6:','<img src="core/smilies/07.png" border="0">',$contenu);
    $contenu=str_replace(':smilies7:','<img src="core/smilies/08.png" border="0">',$contenu);
    $contenu=str_replace(':smilies8:','<img src="core/smilies/09.png" border="0">',$contenu);
    $contenu=str_replace(':smilies9:','<img src="core/smilies/10.png" border="0">',$contenu);
    ?>
    
    Ensuite dans core/lib class.plx.motor.php on cherche sous la fonction "function newCommentaire" :
    $contenu = plxUtils::strCheck(trim($content['content']));
    
    Et on ajoute dessous :
    # On ajoute les smilies "Add-On"
    include('class.plx.smilies.php');
    
    Maintenant on file direction themes/montheme commentaire.php

    On cherche au niveau du formulaire :
    <label class="com">Commentaire :</label>
    
    Et on ajoute en dessous ceci :

    <p align="left">
    <script type="text/javascript">
        function insertSmiley(smiley)
        {
            var currentText = document.getElementById("area1");    
            var smileyWithPadding = " " + smiley + " ";
            currentText.value += smileyWithPadding;
        currentText.focus(); 
        }
    </script>  
    Smilies: 
    <img src="./core/smilies/01.png" alt=":-D" title=":-D" onclick="insertSmiley(':smilies0:')" style="border: 0;" />
    <img src="./core/smilies/02.png" alt="^_^" title="^_^" onclick="insertSmiley(':smilies1:')" style="border: 0;" />
    <img src="./core/smilies/03.png" alt=":-)" title=":-)" onclick="insertSmiley(':smilies2:')" style="border: 0;" />
    <img src="./core/smilies/04.png" alt=":-o" title=":-o" onclick="insertSmiley(':smilies3:')" style="border: 0;" />
    <img src="./core/smilies/05.png" alt=":-p" title=":-p" onclick="insertSmiley(':smilies4:')" style="border: 0;" />
    <img src="./core/smilies/06.png" alt=":(" title=":(" onclick="insertSmiley(':smilies5:')" style="border: 0;" />
    <img src="./core/smilies/07.png" alt=";-)" title=";-)" onclick="insertSmiley(':smilies6:')" style="border: 0;" />
    <img src="./core/smilies/08.png" alt=":--/" title=":--/" onclick="insertSmiley(':smilies7:')" style="border: 0;" />
    <img src="./core/smilies/09.png" alt=":-(" title=":-(" onclick="insertSmiley(':smilies8:')" style="border: 0;" />
    <img src="./core/smilies/10.png" alt=":-|" title=":-|" onclick="insertSmiley(':smilies9:')" style="border: 0;" />
    </p>
    
    Dans ce même fichier on fouille pour trouver :
    <textarea name="content" cols="35" rows="6"><?php $plxShow->comGet('content',''); ?></textarea>
    
    Et on le remplace par :
    <textarea id="area1" name="content" cols="35" rows="6"><?php $plxShow->comGet('content',''); ?></textarea>
    
    Pour ma part c'est là que j'ai trouvé l'erreur : le textarea n'avais pas d'ID donc le javascript pouvais toujours hurler "getElementById" y'avais personne pour lui répondre...

    Bien entendu tout les smiley sont à placer dans : core/smilies/

    ATTENTION : tout ça est à tester et peu sans doute être améliorer. Je ne suis pas responsable si il y a une coquille. Sachez tout de même que chez moi, en tous cas, ça marche :)
  • Sympathique, j'ai essayer, et j'ai adopté !
    c'est simple et facile a mettre en place, merci !

    Mais j'ai une question : comment faire pour ajouter les smiley dans les articles ?

    Merci d'avance !
    Le6barbare
  • StéphaneStéphane Member, Former PluXml Project Manager
    Ce qui me gêne se sont les fichiers dans le core de pluxml et la modif du fichier class.plx.motor.php
    Je pense qu'on peut faire sans.
    Dès que j'aurais un peu temps je vous proposerai une solution.
    Bon travail Fred et Lewo

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • WiksaWiksa Member
    Bonjour,

    Peut-on voir un exemple quelque part ?

    Merci !
  • Ici par exemple, clique sur "Écrire un commentaire ↵"
Connectez-vous ou Inscrivez-vous pour répondre.