Chatbox

Ce plugin permet de mettre en place facilement une « chatbox » permettant à un visiteur authentifié de SPIP de laisser un message.

Principe

Une chatbox est une sorte de mini chat, avec deux différences majeures :

  • Les messages sont persistants (un nouveau venu peut voir votre message d’il y a 1h)
  • Il n’y a pas de liste des personnes connectées

Installation

Le plugin s’installe de manière classique.

Comment ça marche ?

Le plugin gère 1 table :

  • CHATBOX_MESSAGES : qui contient les messages enregistrés par visiteur, avec les champs suivant :
    • #ID_CHATBOX_MESSAGE : l’identifiant du message
    • #ID_AUTEUR : identifiant de l’auteur du message
    • #MESSAGE : le message
    • #DATE : la date d’enregistrement
    • #LANG : la langue du message
    • #STATUT : statut de publication du message

Vous pouvez afficher le contenu de cette table via les BOUCLEs de SPIP.

Mise en œuvre

Les éléments SPIP suivant sont disponibles pour mettre en œuvre votre « chatbox » sur votre site :

  • un formulaire CVT #FORMULAIRE_CHATBOX permettant d’enregistrer un message
  • un exemple de modèle permettant d’afficher la liste des messages enregistrés

Exemple d’utilisation

Afficher le formulaire permettant l’enregistrement d’un message :

[(#SESSION{id_auteur}|oui)
    <h1><:chatbox:chatbox:></h1>
    <div class="ajax">[(#FORMULAIRE_CHATBOX)]</div>
]

NotaBene :
Ce formulaire peut être inclus dans une noisette utilisant le critère {ajax}.
Cette noisette peut être chargée avec la médiabox SPIP.

Afficher la liste des 5 derniers messages enregistrés :

[(#CACHE{0})]
<B_chat_box_archive>
    [(#ANCRE_PAGINATION)]
    <ul>
        <BOUCLE_chat_box_archive(CHATBOX_MESSAGES){par id_chatbox_message}{pagination 4}{inverse}{0,20}{lang}>
            <li>
                <span>[(#ID_AUTEUR|afficher_avatar{'',50})]</span>
                <span>
                    [(#ID_AUTEUR|colore_user{#LANG})]<br/>
                    [(#DATE|affdate)]&nbsp;<:a:>&nbsp;[(#DATE|affdate{"H:i"})]
                </span>
                <div class="clearfix"></div>
                <br/>
                <p>[(#MESSAGE|PtoBR|liens_ouvrants|lignes_longues{30})]</p>
            </li>
        </BOUCLE_chat_box_archive>
    </ul>
    [(#PAGINATION{precedent_suivant})]
</B_chat_box_archive>

Édition dans l’espace privé

Lors de l’activation du plugin, une nouvelle entrée « chatbox messages » est créée dans le menu « Édition ». Elle permet notamment d’afficher la liste des messages enregistrés, gérer leur contenu et leur statut de publication.

Exemple d’utilisation

Un exemple d’utilisation est disponible à cette adresse (la chatbox est disponible dans le menu situé à droite) :
http://www.root-me.org/fr/Challenges/

Discussion

2 discussions

  • Bonjour,

    Deux erreurs de compilation :
    Filtre afficher_avatar non défini
    Filtre colore_user non défini
    Un autre plugin est-il requis ?

    Merci

    Répondre à ce message

  • 2

    Salut,

    J’aimerai bien reprendre ton plugin pour y rajouter une fonctionnalité : le chat avec une personne déterminée ou un par groupe (avec plusieurs interlocuteurs)

    Est-ce que tu vois un inconvénient que je fasses une branche sur la zone pour essayer de travailler à ça ? (bon c’est un projet... ça ne va pas être rapide)

    L’idée est de créer deux nouvelles colonnes dans la table : id_destination et type_destination qui désigne soit l’id_auteur de destination, soit l’id_groupe de destination (et donc le type sera auteur ou groupe), et d’ajouter une table groupe_chat qui sera « joiunturée » avec spip_auteurs_liens.

    Ça devrait rester compatible avec l’existant...

    • En regardant mieux, je vois qu’en fait l’un des plugins-dist correspond plus à mon besoin : organiseur et sa messagerie interne. Ce plugin permet déjà les messages entre rédacteurs (un ou plusieurs). je vais donc repartir sur cette base plutôt que Chatbox que ça risque de complexifier pour rien !

    • réponse test

    Répondre à ce message

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