SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

90 visiteurs en ce moment

fontsizeup fontsizedown
Accueil du site > Contribs > Administration > Statistiques > PHPMyVisites et SPIP > Archives PHPMyVisites et SPIP > Utiliser phpMyChat avec les comptes auteurs de SPIP
[21 commentaires]

Utiliser phpMyChat avec les comptes auteurs de SPIP

lundi 19 janvier 2004, par Philippe Drouot

0 vote

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 !!).
Retour en haut de la page

21 Messages de forum

Voir toute la discussion

Pages 1 | 2 | 3

  • Répondre à ce message

    20 mars 2007 00:45 , par jmarc

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

  • Répondre à ce message

    30 juin 2005 23:18

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

  • Répondre à ce message

    23 juin 2005 15:06 , par Maitresinh

    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...

  • Répondre à ce message

    7 avril 2005 19:15 , par Bob

    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

    3 janvier 2005 13:40 , par philippe

    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

    25 novembre 2004 21:02

    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

    20 novembre 2004 09:25 , par Seb

    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

    30 octobre 2004 11:03 , par xaviprot

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

  • Répondre à ce message

    30 octobre 2004 10:56 , par xaviprot

    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...

  • Répondre à ce message

    3 septembre 2004 12:57 , par claire

    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

Pages 1 | 2 | 3

Répondre à cet article

Retour en haut de la page

Ça discute par ici