Plugin SpipCatChat

Étant donné que SPIP n’intègre pas d’origine de fonction de discussion instantanée et afin de pallier à ce manque je vous propose ce plugin.

Il permet, dans l’espace public de votre site, d’ouvrir et d’administrer des salons de discussions (clavardoir) de la manière la plus simple qu’il soit.

Grâce à son environnement minimaliste, toutes les fonctions se résument en un seul clic, le contenu de celui-ci reste sur le serveur dans l’environnement de SPIP sans qu’il soit nécessaire de disposer d’un service étranger.

Aucun flux n’est dirigé vers l’extérieur, le tout reste stocké temporairement dans un répertoire du plugin.

Présentation de SpipCatChat

Fraîchement sortie, SpipCatChat fait déjà office de prologue à l’introduction de SpipCatChat2 (mise en plugin), marquant ainsi la volonté d’une intégration parfaite dans l’environnement de SPIP, tout en respectant l’intégrité du système.

C’est pour cette raison qu’il est préférable de choisir cette dernière version, plutôt que la précédente, laquelle ne sera pas maintenue.

Les objectifs poursuivis

Le cahier des charges s’inspire des critères du Wiki de YannX et les différents points qui ne seront pas résolus ici trouveront, je l’espère, une réponse à travers l’évolution des différentes versions.

  1. réactivité immédiate
  2. accès interne et externe
  3. non-dépendant à un service externe
  4. affectation à un objet spécifique, à une rubrique ou zone pour visualisation
  5. archivage local ou distant

Aspects techniques

La réactivité dépend principalement des accès disques du serveur, car le flux des salons est redirigé dans des fichiers temporaires au format Json.
Il en va de même pour les statuts des participants et leurs autorisations.

De ce fait, plus aucune connexion à la base de données de SPIP n’est requise pour les tâches spécifiques du plugin, gardant ainsi une compatibilité totale avec les moteurs de bases SQLite.

Les données relatives aux chats sont stockées dans le répertoire DB_CATCHAT du plugin.
Mais prenez garde au fait que ce dossier est à récupérer lors des mises à jour et à replacer au même endroit.

Installation de SpipCatChat

Ce plugin s’installe dans le répertoire du même nom ou dans le dossier « plugins auto » de SPIP.
Il s’active dans l’espace privé comme tout autre plugin, en cliquant sur « GESTIONS DES PLUGINS  ».
Vous trouverez sous l’onglet « INACTIFS  » la case à cocher face à l’icône de « SPIPCATCHAT  ».

Après l’activation du plugin, n’oubliez pas de vider le cache en vous rendant dans la rubrique «  MAINTENANCE  » de votre CMS.

Pour la seconde étape, rendez-vous dans l’espace public sur l’URL :
http://www.mon_site_spip/spip.php?page=spipcatchat

ou placez la balise ci-dessous sur n’importe quelle page de votre site,

<INCLURE{fond=modeles/spipcatchat}
	{logad=#ENV{logad}}
	{chat=#ENV{chat}}
	{salon=#ENV{spipsalon}}
	{add=#ENV{adduser}}	
>	

 [1]
 [2]
Patientez une minute, le temps nécessaire à la construction de son système de données.

Si toutefois cela prend plus de temps, rafraîchissez votre navigateur et si le problème persiste, consultez la rubrique : « Dépannage des erreurs » de ce document.

Configuration de l’espace privé et public

Il est possible de configurer SpipCatChat, le thème, le temps de rafraichissement, le pack d’icônes, sont des élément paramétrables sur la page ecrire/?exec=configurer_spipcatchat&cfg=accueil.

Le champ LARGEUR sert simplement à définir la largeur du chat en pixels ou en pourcentage.

Le deuxième vous propose deux méthodes de configuration pour le thème, AUTOMATIQUE sur la base d’une couleur dominante et MANUEL pour un thème personnalisé.

Le champ COULEUR DU THÈME permet de modifier la couleur dominante du thème en mode automatique.

Les couleurs disponibles sont : orange, bleu, noir, brun, jaune, rose, vert, pourpre, gris, rouge, lavande, bleu_ciel, blanc et vert_aubergine.

En mode manuel, il vous faudra choisir la couleur dominante, secondaire et la couleur du pack d’icônes.

Le code de couleur du fond prend comme valeur la palette des couleurs standard du langage HTML sans le tag ex. (#FFFFFF - FFFFFF) .

On entend par OMBRAGE l’activation /ou pas de la fonction « CSS box-shadow », qui n’est pas forcément compatible avec certain navigateur.

Pour le champ COIN ARRONDI, je crois que cela ne demande pas d’explication, sauf que, comme la fonction précédente, elle n’est pas forcément compatible avec certain navigateur.

Le taux de rafraîchissement des messages du chat est en millisecondes, il se configure indépendamment pour le privé et le public .

Vous pouvez régler ce paramètre selon votre convenance.

Dans cet exemple, il est réglé sur 1.000 millisecondes, soit une seconde, et la temporisation des postes entre les messages est dès lors aussi égale à une seconde, afin d’éviter le problème du maintien accidentel de la touche entrée.

Pour le statut, la temporisation est de deux minutes et est invariable. C’est pour cette raison que les personnes qui quittent les salons peuvent être toujours visibles après ces deux minutes.

Tableau de réglage de la variable refresh. [3]

  1. 1000 = serveur très rapide (idéal en local)
  2. 2000 = serveur rapide
  3. 3000 = serveur normal
  4. 4000 = serveur lent
  5. 5000 = serveur très lent
  6. 6000 = serveur en surcharge

Et l’espace privé alors ?

Il est parfois nécessaire, lorsque l’on travaille de manière collaborative, de pouvoir s’échanger des messages en temps réel.

C’est pourquoi dans cette version, vous trouverez un salon de discussion dans l’espace privé sous le menu PUBLICATION.

Dépannage des erreurs

Si sur la page « Entrée des Salons de chat » vous avez toujours, après une minute, le message « chargement », effectuez, en mode Console UNIX, les commandes suivantes :

- SUDO CHMOD -R 0777 /plugins/spipcatchat/db_catchat/ 

Sur Filezilla :

Pour le fichier SpipCatChat2 :

Cliquez droit sur le dossier « spipcatchat », ensuite « Droits d’accès aux fichiers… » , cochez-y « Récursion dans les sous-dossiers », ainsi que « Appliquer à tous les fichiers et dossiers » et dans le champ « Valeur numérique » tapez 777.

Pour le fichier DB_CATCHAT :

Si le fichier n’existe pas, créez le dossier « DB_CATCHAT  » à la racine du répertoire, suivi d’un clique-droit à la racine du fichier « spipcatchat ». Sélectionnez « ‘Créer un dossier », puis entrez dans le champ (en minuscule) « spipcatchat ».

Pour la suite, répétez la même procédure en sélectionnant le fichier « DB_CATCHAT  », mais dans le champ « Valeur numérique » entrez 777.

Si le problème n’est pas résolu, changer les droits, en mode récursif, par un 777 sur l’ensemble des fichiers du répertoire spipcatchat.

Pour les serveurs NGINX :

Ajoutez, dans votre fichier de configuration, la ligne ci-dessous :

sudo nano /etc/nginx/sites-enabled/ « non de votre fichier »

Remplissez-le fichier comme suit :

location ~ ^/db_catchat {
return 403;
}

Terminez par :

sudo service nginx  restart

Mode d’emploi de SpipCatChat

Si en apparence SpipCatChat2 ne semble pas différent de son prédécesseur, techniquement il n’en est rien. Mais pour les utilisateurs cela reste transparent  ; Il partage toujours le même mode de fonctionnement, hormis son installation. C’est donc pour cette raison que je vous prie de vous référer à la documentation de la première version.

Les petits extras

Les raccourcis typographiques de SPIP sont reconnus par SpipCatChat, vous pouvez en ajouter de nouveaux dans le fichier mes_fonction_javascript.js.

/plugins/SpipCatChat2/javascript/mes_fonction_javascript.js

{{{intertitre}}} {{gras}} {italique} 

Cliquez ici pour un test en ligne et ici pour l’ inscription au Chat

Login : spipcatchat
Mot de passe : spipcatchat

Notes

[1Ne vous préoccupez pas de la liste des variables techniques.

[3Les références de ce tableau sont établis à titre indicatif.

Discussion

4 discussions

  • 2

    Bonjour,

    Est-ce que le plugin sera mis à jour à la version 4.0.0 de Spip ? Merci

    • Il est peut être deja compatible. Testez en remplacant compatibilite="[3.0.0;3.2.*]" par compatibilite="[3.0.0;4.0.*]" dans le fichier paquet.xml. Cela permettra de l’activer, et de vérifier s’il fonctionne.

    • Oui j’ai déjà modifié comme indiquer e fichier paquet.xml... ce qui active le plugin mais lorsque je vais sur la page principal du plugin j’ai le message d’erreur suivant : Fichier spipcatchat introuvable

    Répondre à ce message

  • nuages

    Bonjour,

    Ce plugin est très intéressant

    Comme Patrocle, je souhaiterais que le chat public soit ouvert à tous, et non pas aux seuls auteurs autorisés à accéder à l’espace privé.

    Serait-il envisageable de l’ouvrir aux visiteurs du site, avec simple création d’un pseudo ?

    Merci d’avance

    Répondre à ce message

  • Bonjour,
    Un outil trés utile pour rendre spip plus interactif.
    Malheureusement je n’arrive pas à le faire fonctionner.
    J’ai bien donné les droits aux repertoires en 777
    J’ai bien vidé le cache comme cela est précisé
    J’ai chargé la page spip.php ?page=spipcatchat qui apparaît. si je crée un salon, cela tourne dans le vide.
    Dans l’interface privée il y a y bien un menu configuration qui fonctionne.
    Si j’arrive l’onglet j’ai une page qui affiche en chargement et cela charge dans le vide.
    Je suis sous une versio spip 327. Je suis preneur des quelques conseils... sinon. Et bien dommage.. Car l’idée est excellente.
    Bonne journée.
    LB

    Répondre à ce message

  • Bonjour,
    Merci Claude Codden pour ce plugin qui m’intéresse beaucoup.

    En revanche, j’ai aussi les mêmes problèmes de chargement de salon que j’ai pu lire.
    Je suis en spip 3.2 sous mac. Et je le teste sur mon serveur local.
    Le chat privé marche bien, mais lorsque j’essaie de créer un nouveau salon, rien ne se passe ou presque. J’ai bien un répertoire qui se crée dans le répertoire db_catchat avec deux nouveaux fichier et le catchat.xml qui est modifié, mais ces informations ne sont pas lues ensuite apparemment.
    Je précise que j’ai accordé les droits d’accès à tout le plugin (777).
    J’ai pris des cours de php, html, css, sql et spip, mais je suis encore très très novice dans le langage de programmation.

    Merci d’avance si vous pouvez m’aider.
    Bonne journée :)

    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