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

13 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

  • 3

    Bonjour,
    J’utilise ce plugin sur un site multilingue français et arabe.
    Mon problème est que quand je veux créer un salon de discussion en arabe, j’obtiens des caractères qui n’ont rien à voir avec cette langue.
    J’ai essayé de modifier le fichier spipcatchat.js.html en ajoutant une ligne pour la variable texte.
    J’y ai placé une lettre de l’alphabet arabe avec le code htmlEntities correspondant.
    J’ai encodé le fichier au format ANSI.
    Résultat : le javascript du chat ne fonctionne plus. Je suis bloqué avec « chargement... » pour les salons.
    Voici l’adresse de la page : http://fkirina.com/spip.php?page=chat&lang=ar
    Par exemple : je crée un salon avec ce nom en arabe مرحبًا بكم
    dans la liste, sa m’affiche مرحبًا بكم

    Dans l’attente et avec l’espoir que vous avez la solution à cette colle :
    A bientôt

    • PS : j’ai pensé que peut être vous auriez besoin d’une capture d’écran. Il est dit qu’une image vaut mieux qu’un long discours. ;-)

    • Bonjour,
      Peut-être qu’il faut que j’apporte plus d’explications. Ceci afin que vous puissiez comprendre ce j’ai ajouté dans le code.
      Je tiens à vous préciser que je suis débutant en javascript.
      Ce que j’ai fait :
      j’ai ajouté une ligne dans les fonctions htmlentities(texte) et html_entity_decode(texte).
      Cette ligne est la suivante : texte = texte.replace(/ا/g,'&#1575;'); // 256 627
      J’ai utilisé un convertisseur sur ce site pour avoir le numéro de caractère en hex. Dans mon exemple, j’ai utilisé la première lettre de l’alphabet arabe. Son numéro hex est 627. J’ai utilisé l’appel de caractère numérique décimal &#1575; c’est ce qui permet à un navigateur d’afficher le caractère « alif » : « ا » en arabe.

      Il y a une question que je me pose : à quoi correspond le nombre avant la valeur hex. Dans mon exemple 256
      J’ai constaté que dans les autres lignes, ce nombre ne sert pas à classer dans l’ordre. Puisqu’il y a des sauts. Vous pouvez le constater dans la capture jointe.

      Je pense n’avoir rien oublié. Je vous prie de m’excuser de vous demander un peu de votre temps.
      Merci pour votre éventuelle aide

    • Bonjour,
      Je fouille encore.
      C’est certainement un problème d’encodage du fichier. C’est expliqué ici.
      J’ai compris le problème, mais je n’ai pas trouvé la solution.
      Donc pour le moment : pas de langue arabe. J’encode le fichier en utf8 pour l’utilisation normale.
      Je ne désespère pas de trouver. Je pense que ce sujet n’est pas clos.
      Bonne continuation et à bientôt de vous lire.

    Répondre à ce message

  • Patrocle

    Bonjour,

    ce plugin est bien mais est-ce possible d’avoir :

    1) Une connexion sans inscription pour un usage public
    2) Une connexion automatique à un salon défini
    3) Avoir un modérateur afin qu’il puisse supprimer les posts inadéquat. J’ai vu que nous pouvons supprimer le salon mais non supprimer les posts

    Par avance, merci de m’avoir lu

    Répondre à ce message

  • 5

    Bonjour,

    super plugin, mais j’ai quelque soucis de fonctionnement

    notre association a besoin d’un salon de discussion public (ouvert a tous)
    il fraudais que lorsqu’on arrive sur la page des salons qu’on entre directement dans le salon

    c’est a dire ne pas passer par http://sfanm.shost.ca/spip.php?page=chat

    comment puis je pratiquer ?

    faut il modifier salon=#ENVspipsalon

    merci du coup de pouce

    • Bonjour,

      Vous voulez dire que vous désirez avoir un salon unique avec une entrée directe sans passé par le sélecteur des salons ?

    • tout a fait

    • Bonjour,

      J’essayerais de répondre à votre problème ce week-end avec une refonte personnelle du plugin.

    • Hello

      est ce que la new version est arrivé ?

    • Patrocle

      Bonjour,

      j’ai besoin de la même chose. Une nouvelle version où nous n’avons pas besoin de nous inscrire est-elle en préparation ? De même sur le salon automatique ?

      Merci par avance

    Répondre à ce message

  • 7

    Bonjour !

    Hâte de pouvoir essayer et triturer ce petit plugin l’adapter parfaitement à mes attentes =)

    Toutefois, j’ai un petit soucis (sans doute de débutant).

    J’ai bien le comportement indiqué dans le Dépannage des erreurs, à savoir, la mention « Chargement » qui reste affiché dans la liste des salon lors du premier accès à la page http://monsite/spip.php?page=spipcatchat

    Or je suis en local actuellement, dans le but de préparer l’intégration du chat (entre autre) sans nuire aux membres et visiteurs du site (online).

    Dès lors, via Filezilla, je n’est pas accès au droit d’écriture comme indiqué.

    Existe-il une alternative ?

    Cdt. et merci d’avance :D

    • Petite précision : le plus étrange c’est que le chat est bien fonctionnel depuis l’espace privé...

      J’ai essayé plusieurs fois de réinstaller, de supprimer le cache par l’espace privé et manuellement, etc

    • Bonjour Logo,

      Je me permets déjà de vous féliciter pour votre excellent choix :)

      Dans le répertoire “ db_catchat “ du plugin, veillez que le fichier " catchat.xml " soit bien présent et libre en droit d’accès.

      Êtes-vous sous Mac OSX ? Car en local, il faut sans doute revoir aussi les privilèges accordés par le système aux fichiers.

      En espérant vous avoir été utile.

    • Merci de votre réponse et désoler pour le temps de retour de ma part ; j’ai du entreprendre d’autre choses importantes entre temps nécessitant le standby de ce petit chantier.

      Je ne suis pas sur Mac, mais bien Windows ; De mémoire, ce fichier y était, mais dans un soucis de rigueur, je vérifie ce soir en rentrant.

      Et oui ce plugin me semble très bien dans l’idée ; bien que nécessairement, de nombreuses choses peuvent être apporté pour l’améliorer, et surtout pour l’adapter aux attentes de chacun :p

      Malheureusement, je suis un simple petit bricoleur de code ^^ Mais le temps est à l’oeuvre !

    • Dans un soucis de rigueur, j’ai réinstallé intégralement le plugin.

      Le fichier xml que vous m’indiquez est bien présent de base dans le répertoire.

      Et j’ai toujours le même problème ; La mention chargement sur la page de « connexion » avec le choix de la « room ». J’ai donc pour tester, supprimé le xml d’origine (ayant vu dans le code qu’en cas d’absence, celui-ci se récréait automatiquement ;

      Lors d’un nouveau chargement de la page SpipCatChat, celui-ci se recréait bien, y compris un nouveau dossier qui je pense correspond à la création d’une « room ».

      Toutefois le problème persiste ; dans le doute, j’ai, via l’explorateur windows, dans les propriété du répertoire, donné un contrôle total sur ce dernier au système. Et j’en suis toujours au même point ^^

    • Bonsoir LoGo,

      Je crois que vous trouverez les réponses à vos problèmes d’affichage avec les dernières corrections.

      Pouvez-vous nous tenir informés si cette correction répond à votre problème ?

    • Réponse très tardive, mais une chose en entrainant une autre j’étais passé à autre chose =).

      Je me remet sur ce plugin d’ici très peu de temps et vous tiendrais informé pour la mise en œuvre local.

    • Du coup, après suppression et réinstallation de la nouvelle version, vidage du cache... tjr le même problème d’accès depuis le site publique. Le libélé "chargement" sur le listing des salons demeurant.

      Et comme dans l’ancienne version, le salon des auteurs depuis l’espace privée fonctionne quant à lui.« »

      Je vais devoir songer à le mettre en œuvre et le triturer directement en ligne ^^.

    Répondre à ce message

  • 2

    Bonjour,
    J’ai quelques soucis d’affichage, je ne suis pas super doué, et je ne peux pas faire de tests en local (EasyPHP) car je rencontre les mêmes soucis que LoGo (mention « chargement » qui persiste).
    Voici à quoi ressemble mon affichage :
    -  en haut à droite, les logos quitter / supprimer qui se chevauchent (pas très grave)
    -  en bas, la barre d’insertion des émoticones quasi-totalement masquée par la zone de saisie de texte.
    Je suis sous SpipR / Sarkaspip, je pense avoir un conflit de CSS, mais sans pouvoir tester en local je vais avoir du mal.
    Merci
    Christophe

    • Ah oui, petit addendum, je n’ai pas de son par événement (je m’attendais à ce qu’une réponse déclenche un « bip »).
      Christophe

    • Bonjour Chantoine,

      J’avoue qu’il est difficile de s’accorder avec toutes les configurations possibles de Spip, ce plug-in a été développé avec le squelette par défaut de celui-ci.

      Le paramétrage permet normalement de ne pas devoir modifier les fichiers soi-même afin d’obtenir une concordance avec le thème de votre site.
      Dans certains cas, vous avez compris, il n’y a rien d’autre à faire que de s’y coller, j’en suis désolé !
      Je vous le confirme, le problème vient de l’ajout du plug-in Sarkaspip.

      Cordialement Claude

    Répondre à ce message

  • 1

    Bonjour,
    Ne pas tenir compte de mon 2e message relatif au bip, j’ai bien la notification sonore avec Firefox et Vivaldi. C’est avec mon navigateur habituel (Pale Moon) que ça ne passe pas.
    Christophe

    • Hum,
      Encore moi, désolé pour le flood.
      J’ai résolu vite fait le masquage de la barre des émoticones en retouchant spitcatchat.css et en mettant margin-top:3% (au lieu de -3%) dans la propriété .post_message #message
      Christophe

    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