SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 246 visiteurs en ce moment

Accueil > Statistiques et référencement > Statistiques > PHPMyVisites et SPIP > Utiliser phpMyChat avec les comptes auteurs de SPIP

Utiliser phpMyChat avec les comptes auteurs de SPIP

19 janvier 2004 – par Philippe Drouot – 21 commentaires

3 votes

Cet article présente les modifications apportées à phpMyChat afin que l’authentification des utilisateurs s’effectue sur la table des auteurs SPIP.

phpMyChat est un système de discussion temps-réel développé par Nicolas Hoizey et disponible sur SourceForge
Cette application open source est simple à mettre en œuvre, entièrement personnalisable et s’appuie sur une base de données. Un chat s’effectue par le biais d’une simple page HTML contenant des frames invisibles rafraîchies périodiquement, ce qui permet d’afficher les nouveaux messages. Le code développé permet un maximum de compatibilité et une utilisation derrière un firewall. Pour ces raisons, cette application rencontre un vif succès et de nombreux sites l’utilisent.

SPIP étant particulièrement adapté à des usages communautaires, l’idée d’y associer un système de discussion temps-réel entre membres d’une même communauté peut paraitre évidente. Dans le cas d’une association, il est intéressant de créer un espace membre pour mettre en commun des ressources entre les auteurs SPIP, c’est à dire entre les membres de l’association. L’ajout d’un chat entre membres peut s’avérer pratique pour organiser des réunions virtuelles.

Recherche des utilisateurs dans la table spip_auteurs

phpMyChat recherche les utilisateurs enregistrés dans la table c_reg_users qui contient un champs username et un champs password ; ce dernier étant crypté par un hachage MD5. Dans SPIP, les auteurs sont authentifiés à partir de la table spip_auteurs qui contient un champs login et un champ pass ; ce dernier étant également crypté en MD5 mais après l’avoir concaténé préalablement par le champs alea_actuel. Il suffit donc de modifier les fonctions de phpMyChat afin que les requêtes SQL pour l’authentification s’effectuent sur les champs de spip_auteurs au lieu de c_reg_users.

Il se pose également 2 problèmes :

  1. Il faut désactiver et/ou supprimer les fonctions phpMyChat permettant d’enregistrer ou modifier un nouvel utilisateur (sinon on prend le risque d’ajouter / modifier des auteurs spip depuis le chat).
  2. Certains champs présent dans la table c_reg_users de phpMyChat ne sont pas présents dans la table spip_auteurs.

Pour le premier point les fonctions de modification des utilisateurs ont été supprimées. Pour le second point, faute d’utiliser 2 tables séparées, il faut ajouter des champs dans la table spip_auteurs de spip.

Le fichier ci-après joint propose une version modifiée de phpMyChat 0.14.5 permettant d’authentifier les utilisateurs du chat en tant qu’auteur SPIP.

Installation de phpMyChat modifié pour SPIP

Télécharger le fichier ci-dessous puis décompresser le dans votre répertoire courant de SPIP (où n’importe où ailleurs). Renommez le répertoire crée chat.

Zip - 604.8 ko
phpMyChat-0.14.5 modif 0.1pour spip

Ensuite à partir de votre interface phpMyAdmin, exécutez les requêtes suivantes sur votre base SPIP :

Modifiez ensuite le fichier config.lib.php3 contenu dans le répertoire config :

Vous devez simplement renseigner le nom de votre base SPIP et votre user/password MySQL dans le premier bloc du fichier de configuration.

Si vous ne souhaitez qu’une salle de discussion par défaut, remplacez $DefaultChatRooms = array('Default', 'MyRoom1', 'MyRoom2'); par $DefaultChatRooms = array('Default');

A noter que les noms des champs utilisés pour l’autentification sont définies dans le second bloc.

TODO

  • Il n’y a plus de distinction entre utilisateurs phpMyChat (user, admin, moderateur). On pourrait utiliser les statuts des auteurs de spip_auteurs pour distinguer les utilisateurs (par exemple 0minirezo = utilisateur du chat et 1comite = moderateur du chat.
  • Cette version modifiée représente une branche parallèle à la version officielle de phpMyChat et en outre ne bénéficie pas de l’assistant html d’installation. Pour fusionner les modifs dans la version courante, il faudrait rajouter un indicateur dans le fichier de config (spip et pas spip) et l’utiliser pour activer ou non les fonctions de modification/ajout d’utilisateurs + adapter la fonction setup.php3 pour la configuration interactive avec question intégré avec spip ou pas ?
  • Vérifier que les futures mises à jour de SPIP ne nécessitent pas d’ajouter à nouveau les champs maquants dans spip_auteurs (ou segmenter en 2 tables avec mise à jour à chaque execution du chat !!).

Dernière modification de cette page le 27 août 2009

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 23 juin 2005 à 15:06, par Maitresinh En réponse à : > admin ?

    superbe !

    Mais l’admin ne marche pas : l’erreur retournée est la suivante :

    Database error : Invalid SQL : SELECT password,perms FROM spip_auteurs WHERE username=’login’ LIMIT 1
    MySQL error : 1054 (Unknown column ’password’ in ’field list’)
    Session halted.

    le probleme doit pas etre bien mechant, mais vu mon niveau...

    • Le 20 mars 2007 à 00:45, par jmarc En réponse à : > admin ?

      j’ai le même probleme l’as-tu résolu ?

    Répondre à ce message

  • Le 30 janvier 2004 à 07:40, par TiTang En réponse à : > SUPER ! ... reste encore un p’tit ennui.

    Bravo pour cette super contrib que j’attendais depuis des mois ! Un petit problème cependant qui s’affiche dans la frame de droite, sous Quitter :

    Database error : Invalid SQL : SELECT usr.username, usr.latin1, usr.status, reg.gender FROM chat_users usr LEFT JOIN spip_auteurs reg ON usr.username = reg.username WHERE usr.room = ’Default’ ORDER BY username
    MySQL error : 1054 (Unknown column ’reg.username’ in ’on clause’)
    Session halted.

    Une idée ?

    • Le 22 février 2004 à 02:43, par Armitage En réponse à : > SUPER ! ... reste encore un p’tit ennui. (bis)

      C’est une superbe contribution !
      Mais j’ai également ce problème :

      Database error : Invalid SQL : SELECT usr.username, usr.latin1, usr.status, reg.gender FROM chat_users usr LEFT JOIN spip_auteurs reg ON usr.username = reg.username WHERE usr.room = ’Default’ ORDER BY username
      MySQL error : 1054 (Unknown column ’reg.username’ in ’on clause’)
      Session halted.

      ça doit donc être un oubli sûrement mais de qui ? :D

      encore merci pour ce travail ;)

    • Le 30 juin 2005 à 23:18, par ? En réponse à : > SUPER ! ... reste encore un p’tit ennui. (bis)

      je confirme j’ai le même probléme je suis chez free http://unimed.free.fr/chat/

    Répondre à ce message

  • Le 7 avril 2005 à 19:15, par Bob En réponse à : > Utiliser phpMyChat avec les comptes auteurs de SPIP

    existe-t-il un moyen de modérer les messages. Cad un administrateur voit tous les messages, les autres ne voient rien jusqu’à ce que le message - la question - est validée par l’administrateur pour qu’ensuite une personne qui répond voit sa réponse elle aussi modérée....

    Merci pr votre aide.

    Répondre à ce message

  • Le 3 janvier 2005 à 13:40, par philippe En réponse à : > Incompatibilité avec SpipVsPhpBB ?

    Bonjour,

    Et merci pour le travail effectué et les réponses données sur le forum !

    -  j’ai installé phpMyChat puis, modifié avec cette contribution.
    -  j’ai installé spipVsPhpBB qui utilise lui aussi l’authentification Spip.

    Jusque là tout allait bien :-)

    -  Sur les pages de SpipVsphpBB j’ai inséré de quoi afficher les connectés soit :

    <div style="text-align: right;"><a href="phpMyChat.php3" target="_blank" title="tchater?">Connect&eacute;s sur le chat :
                   <?php
    // relative path from this page to your chat directory
    $ChatPath = "chat/";
    require("./${ChatPath}/lib/connected_users.lib.php3");      
    display_connected($ShowPrivate,$DisplayUsers,($DisplayUsers ? USERS_LOGIN : connecte),Personne);
    ?></a>
                   </div>

    Résultat : plus possible de se logguer sur le forum si je me suis loggué sur le chat.

    Je supprime ces quelques lignes et tout refonctionne : une idée de l’origine du conflit d’authentification ?

    merci

    Répondre à ce message

  • Le 25 novembre 2004 à 21:02, par ? En réponse à : > Utiliser phpMyChat avec les comptes auteurs de SPIP

    si quelqu’un est intéressé ....

    il y a un petit bug qui empêche de se logger en tant qu’admin même après voir donné les droits admin ( mettre admin dans la colonne perms de la table spip_auteurs de la personne à qui on veut donner ces droits )

    il faut modifier les premières lignes de /lib/login.lib.php3 comme suit :

    <?php
    if ((isset($AUTH_USERNAME) && $AUTH_USERNAME != "") && (isset($AUTH_PASSWORD) && $AUTH_PASSWORD != ""))
    {
            
    // Ensure the password is a correct one
            
    $DbLink4Login = new DB;
            {{
    $DbLink4Login->query("SELECT ".C_FIELD_PASSWORD.",".C_FIELD_ALEA.",perms perms FROM "C_REG_TBL "WHERE login='$AUTH_USERNAME' LIMIT 1");}}

            if (
    $DbLink4Login->num_rows() != 0)
            {
                    {{list(
    $PWD_Hash$alea $perms) = $DbLink4Login->next_record();}}

                    if (
    $PWD_Hash == md5({{stripslashes($alea.$AUTH_PASSWORD)}}) || $PWD_Hash == stripslashes($alea.$AUTH_PASSWORD)$
          

    je continue

    Répondre à ce message

  • Le 20 novembre 2004 à 09:25, par Seb En réponse à : > bug

    Bonjour,
    tout s’ets bien passé dans mon install...
    d’ailleurs je peux me loguer avec les login et mot de passes du spip.. c’est parfait

    mais une fois sur le chat rien ne fonctionne
    j’entre un message et je valide (par entrer ou en cliquant sur Envoyer) et le message ne « part pas »...

    quelqu’un a une idée ?

    Question subsidiaire : comment gérer le nom et le nombre des salles existantes ? Merci !!!!

    Répondre à ce message

  • Le 30 octobre 2004 à 10:56, par xaviprot En réponse à : >Quelques remarques...

    Je suis en train de bosser dur sur un squelette pour un site d’école. Avoir un chat privé me paraît être important pour le travail collaboratif. Votre contrib paraissait être exactement ce qu’il me fallait. Quelques remarques à ce sujet :
    1. La partie installation de PHPmychat ayant été supprimée, aucun administrateur n’est déclaré. Accéder à la partie administration est impossible. Donc la table chat_ban_users me paraît ici inutile(Pour une école, c’est important... nous n’avons pas que des élèves polis et propres sur eux)
    2. Je ne vois pas comment créer un salon privé, où seuls les rédacteurs ont accès.

    Voilà comment j’ai remédier à cela :
    J’ai créé un bouton supplémentaire dans la partie privée de mon site pour accéder au chat. Il faut donc ^étre logué pour accéder au salon.

    J’ai programmé une petite install en partant de votre contrib pour modifier les tables de SPIP. Je la tiens à votre disposition. Je ne suis pas assez calé en php pour retrouver tous les codes mais j’aimerais ajouter cette partie admin. Alors si quelqu’un peut m’aider à trouver les paramètres...

    • Le 30 octobre 2004 à 11:03, par xaviprot En réponse à : > Quelques remarques...

      Désolé pour les fôtes, c’est lamentable pour un instit, mais j’ai rédiger rapidement...

    Répondre à ce message

  • Le 3 septembre 2004 à 12:57, par claire En réponse à : les couleurs d’écriture dans phpMyChat

    bonjour :)

    j’aimerais savoir s’il est possible de changer les couleurs de la palette où l’on choisit sa couleur d’écriture. Parce qu’il y a beaucoup de couleurs qui sont illisibles sur ce fond bleu clair que je ne veux pas changer, les verts en particulier qui sont trop clairs.

    merci de votre réponse

    claire

    Répondre à ce message

  • Le 13 juillet 2004 à 18:04, par thierry En réponse à : > Utiliser phpMyChat avec les comptes auteurs de SPIP

    salut philippe,
    j’ai moi-même pas mal cherché pour voir comment intégrer un système de com-instantané sur mon site pour la communauté de rédacteur... j’avais essayé ta contrib, mais ce n’était pas exactement ce que je cherchais, et j’avais des bogues... j’ai trouvé ensuite webmessenger, fonctionnant comme phpMyChat avec une combinaison php/mysql et un serveur jabber local ou distant, qui permet d’ouvrir large sur les systèmes de chat existant. peut-être ça t’intéresse de jeter un coup d’oeil sur ce code-là (moi je galère enocre un peu dessus, débutant que je suis) et voir si ça t’intéresserait de modifier quelques trucs pour une nouvelle contrib-spip ? (notamment l’utilisation des mêmes id/pass serait un must).
    à+

    Répondre à ce message

  • Le 25 juin 2004 à 10:14, par Nicoco En réponse à : Prise en compte de la bidirectionnalité ?

    Bonjour,

    est-ce que phpmychat tient compte de la bidirectionnalité du texte pour des langues comme l’hébreu ou l’arabe ?
    Merci

    Nicoco

    Répondre à ce message

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Metas +

    3 décembre – commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Critère {mots}

    6 août 2009 – 316 commentaires

    Permettre de sélectionner facilement des objets SPIP ayant un ou des mots clefs en communs.

  • LinkCheck : vérificateur de liens

    13 février 2015 – 64 commentaires

    Ce plugin permet de chercher et tester l’ensemble des liens présents dans les objets. Vous pourrez donc en quelques clics connaître les liens brisés ou défectueux qui se sont immiscés dans le contenu de votre site SPIP. La vérification s’effectue en (...)

  • Import ICS 2 (agenda distant)

    2 août – 39 commentaires

    La version 2 du plugin « import ICS » en reprend la principale fonctionnalité, à savoir l’ajout automatique d’évènements distants dans la liste des évènements d’un site. À la différence de la première version, elle ne dépend pas du plugin « Séminaire » et est (...)

  • GIS 4

    11 août 2012 – 1286 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)