SPIP - Contrib

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



Accueil du site > Auteurs et Authentification > Gestion des auteurs en nombre > Importer des auteurs

Comment ajouter beaucoup d’auteurs en même temps

Plugin "Importer des auteurs" v-0.5

Utile pour une migration, un ajout en nombre de nouveaux auteurs etc...

jeudi 5 juillet 2007, par Yves Tannier. Dernier ajout jeudi 5 juillet 2007


On a parfois besoin d’ajouter un grand nombre de rédacteurs. Ce plugin le permet simplement depuis un fichier de type csv (Comat Separated Value) placé dans ecrire/data


Notes : il est vivement conseillé de sauvegarder la table spip_auteurs avant cette manipulation. Sachez également qu’une contribution similaire est disponible sur Spip-contrib. Il s’agit de Gestion des auteurs (anciennement csv2spip).

Réalisé à la base pour un SPIP 1.6, je l’ai modifié pour une version 1.9.1 et packagé en plugin.

Ce que fait le plugin

  • Création des auteurs avec les informations standards : nom (signature), email, bio (non testé avec des longues bio), PGP, nom du site, adresse du site, statut et éventuellement identifiant et mot de passe (sinon, ces informations sont générées par le plugin) ;
  • Si l’identifiant n’est pas précisé dans le fichier .csv, génération d’un identifiant à partir du nom. Le script supprime les caractères spéciaux, espace ect... Par exemple Yves TANNIER devient yvestannie (10 caractères maxi). Cette fonction peux facilement être réécrite ;
  • Vérifie qu’il n’y a pas de doublon au niveau de l’identifiant. Si doublon il y a, l’utilisateur n’est pas ajouté et la ligne du tableau récapitulatif affiche le message « déjà enregistré » ;
  • Si le mot de passe n’est pas précisé dans le fichier csv, génération d’un mot de passe aléatoire. Cette fonction peux facilement être réécrite. Il est également possible d’avoir un mot de passe identique au login généré par le script ;
  • Récapitulatif des enregistrements sous forme d’un tableau HTML et éventuellement d’un autre fichier csv contenant les nouveaux identifiants et mots de passe. A utiliser copier-coller pour réaliser votre publipostage !

Installation

L’installation ce fait comme tout les plugins. Je n’ai pas ajouté de bouton dans l’interface privé vu qu’on ne l’utilise pas tous les jours. L’accès se fait donc par l’url : http://www.monsite.com/ecrire/?exec...

Ce plugin est noté en version "expérimental" mais déjà testé avec succès en production.

Format du fichier CSV

Votre fichier doit donc être un fichier de format CSV (Commat Separated Value). Le caractère de séparation des champs doit être le «  ; » (il est cependant possible de le préciser au chargement). Les champs ne doivent pas être entourés par des guillemets.

Pour la création de ce fichier, utilisez plutôt le logiciel libre OpenOffice Calc que Excel. Ce dernier ne réalise pas correctement la conversion en format CSV simple et standard et risque de vous poser quelques soucis.

Le fichier doit donc ressembler à ça si, une fois crée avec OpenOffice, vous l’éditez avec un simple éditeur de texte :

TANNIER Yves;webmaster;yves@mondomaine.tld;mon super site;http://www.grafactory.net/blog/;pgp;1comite;
LINUS Torvald;noyo;linus@linux.org;site web;http://www.linux.org;;1comite;

La dernière valeur correspond au niveau de rédaction : "1comite" représente un niveau rédacteur. "0minirezo" pour un administrateur.

Il est possible d’ajouter une 8ème et une 9ème colonne qui contiendront respectivement les identifiants et les mots de passe de vos utilisateurs si vous ne souhaitez pas que le plugin les génère lui même.

TANNIER Yves;webmaster;yves@mondomaine.tld;mon super site;http://www.grafactory.net/blog/;pgp;1comite;identifiant;motdepasse;
LINUS Torvald;noyo;linus@linux.org;site web;http://www.linux.org;;1comite;monlogin;monpass;

Il est primordial de respecter l’ordre des champs et d’avoir dans tous les cas les 7 premières (donc jusqu’au statut) colonnes même vide ! Je vous conseille de créer une première ligne avec les entêtes des colonnes, puis de la supprimer avant l’enregistrement de votre fichier CSV définitif.

A propos du code source du plugin

Notez que j’ai essayé de commenter assez précisément le code source de ce plugin afin de permettre à toutes personnes ayant quelques connaissances en PHP de modifier le code en fonction de ces besoins.

On retrouvera notamment en début de code :

  • des variables qui peuvent être modifiées
  • une fonction faireLogin de génération du login qui peut être réécrite
  • une fonction MDP de génération du mot de passe qui peut également réécrite.

Note complémentaire

  • ne vérifie pas la validité syntaxique de l’adresse email
  • n’utilise pas la fonction de génération de mot de passe de SPIP (pas trouvé).

P.-S.

Note de l’équipe de Spip-Contrib

Cet article est publié avec les précisions suivantes :
- ce plugin touche à la sécurité de votre site, attention au niveau de compétence requis (voir les mots clefs), ce plugin n’est clairement pas destiné a des débutants
- il faut vraiment tester qu’il n’est pas possible par une fausse manipulation d’effacer les comptes 0minirezo (admins)
- il est vivement déconseillé d’utiliser ce plugin sans avoir *vraiment* les moyens et l’habitude de bidouiller avec phpmyadmin. En effet les conséquence d’une erreur peuvent vite devenir ingérable autrement. Par exemple si l’on créé 150 ou 1000 auteurs avec ce plugin, s’il y a un problème, alors il est difficile de corriger l’erreur en quelques clics si l’on utilise que l’interface SPIP d’admin du site ...
- cette contrib est quand même validée pour qu’il y ait plus de retours d’expériences ... merci d’avance de témoigner de vos essais sur ce forum


Répondre à cet article

  • Plugin "Importer des auteurs" v-0.5

    22 novembre 2007 21:05, par Patrick

    Bonsoir

    J’ai utilisé ce plugin pour créer 30 comptes en partant d’un csv contenant login et mot de passe existants (pour ne pas avoir à faire retenir de nouveaux identifiants aux utilisateurs).

    Si les logins sont bien les mêmes, les mots de passe ne marchent pas.

    Avez vous eu un retour semblable ?

    Pourquoi ne pas mettre un bouton dans l’espace privé ? Je suis amené à importer des utilisateurs régulièrement tout au long de l’année.

    —  Patrick

    Répondre à ce message

    • Plugin "Importer des auteurs" v-0.5 23 novembre 2007 09:09, par YvesTan

      Bonjour,

      Quand vous dites "ne marchent pas ". C’est qu’il est impossible de se loguer après l’importation avec les mots de passe du csv ?

      Je n’ai pas eu d’autres retour sur ce problème.

      Concernant un bouton dans l’espace privé, ce n’est pas prévu. Ceci étant, un petit bookmark dans le navigateur pourra faire l’affaire ;)

      Si le problème des mots de passe persiste, envoyez moi un exemple de csv que je regarde.

      ++ Yves

      Répondre à ce message

      • Plugin "Importer des auteurs" v-0.5 23 novembre 2007 09:47, par Patrick

        Bonjour

        En effet ! Le login est le bon puisqu’il diffère parfois du simple nom (nom+première lettre du prénom en cas d’homonymie) ; l’auteur est reconnu ; mais quand j’entre le mot de passe, on me dit qu’il n’est pas bon. Le problème est que je ne peux pas voir (ou alors je ne sais pas faire) quel est le mot de passe que Spip a dans ses tables. mais j’imagine que c’est un mdp crée par le plugin.

        Bien entendu si je change le mot de passe et que je mets celui de mon csv, ça passe. Certes je peux modifier mes 30 comptes mais je comptais utiliser aussi ce plugin sur un autre Spip où j’ai environ 200 comptes à créer...

        Je n’ai pas le csv ici (lundi matin je pourrai vous le donner) mais il n’a rien de bien original : j’ai respecté vos indications et les deux dernières colonnes sont : login ;motdepasse

        —  Patrick

        Répondre à ce message

        • Plugin "Importer des auteurs" v-0.5 23 novembre 2007 10:31, par Patrick

          Je me réponds à moi même, l’asile n’est pas loin...

          Cela m’a fait tilt quand j’ai relu mon précédent message. Que ce soit Excel ou Calc, aucun ne met de point-virgule après le dernier champ.

          Or pour mettre les colonnes en ordre c’est plus facile avec Excel ou Calc. J’ai retenté un import en ajoutant le point virgule à la fin avec le blocnote et ça passe.

          N’est-ce d’ailleurs pas un tout petit défaut du plugin car j’importe souvent des csv qui n’ont jamais de point-virgule à la fin pourtant tout se passe bien.

          —  Patrick

          Répondre à ce message

          • Plugin "Importer des auteurs" v-0.5 23 novembre 2007 12:04, par YvesTan

            Je vais jetter un oeil sur cette histoire de point-virgule à la fin des fichiers... de mémoire, je fais un explode sur le point-virgule. Ce qui ne devrait pas poser de problème si il n’y a pas de " ;" à la fin...

            Je regarde ça dans le WE.

            Répondre à ce message

    Retour au début des forums

  • Plugin "Importer des auteurs" v-0.5

    27 novembre 2007 13:19, par henri

    Bonjour à tous,

    J’ai vainement tenté de créer un répertoire "plugins" pour y voir celui-ci et me suis donc résigné à copier l’exécutable dans le répertoire ecrire/exec : si je pouvais être éclairé à ce sujet... pour info:Le fichier csv respecte les caractères accentués lorsqu’on le sauve au moyen de notepad en format UTF-8. J’ai ajouté un champ "bidon" pour éviter le problème du point-virgule et ai supprimé la génération du login et du mot de passe pour utiliser ceux de ma table d’importation. Tout fonctionne comme je le désirais. Un grand merci pour un SPIP installé dans l’urgence : école oblige !

    Répondre à ce message

    Retour au début des forums

  • Plugin "Importer des auteurs" v-0.5

    18 juillet 2007 19:17

    Bonjour,

    merci pour ce plugin qui me sera indispensable pour enregistrer mes élèves sur mon site (quelque 120 auteurs à créer...). Je l’ai testé, il marche très bien.

    Un détail cependant : en modifiant le fichier auteurs_import pour l’adapter à mes besoins, j’ai cru remarquer qu’il y avait une erreur dans le code pour le cas où le login et le mot de passe existeraient déjà : j’ai l’impression que les variables sont récupérées dans la mauvaise colonne. Je peux cependant me tromper, je n’y connais rien en php, c’est donc à vérifier.

    Un deuxième détail : les accents ne sont pas gérés dans le nom de l’utilisateur. C’est irritant parce que c’est lui qui est affiché sur la page d’accueil (par exemple un utilisateur nommé "élève" s’affiche ainsi : "?l?ve". C’est très simple à corriger, il faut juste faire attention à ne changer la variable $nom qu’après son utilisation pour le création du login...

    Je suis en train d’essayer d’adapter ce plugin pour qu’il soit compatible avec le plugin acces_groupes qui m’est bien utile, mes élèves n’ayant pas accès aux mêmes parties du site selon leur classe (je souhaiterais donc ajouter une colonne "classe" de façon à ce que l’utilisateur soit automatiquement inscrit dans le groupe de sa classe), mais là j’ai plus de mal : je ne comprends pas vraiment la structure des tables créées par ce dernier plugin. Mais c’est une autre histoire.

    Merci encore,

    Erwan

    Répondre à ce message

    • Plugin "Importer des auteurs" v-0.5 19 juillet 2007 09:15, par Yves Tannier

      Bonjour,

      Merci pour ce retour. Je ne vois pas où serait l’erreur dont tu parles. Peux-tu être plus précis et me préciser les numéros de ligne ?

      Concernant l’accentuation, il faut utiliser le même interclassement que celui de la base de données pour le fichier CSV. Si la base est en utf8 -> fichier csv en utf8.

      @+ Yves

      Répondre à ce message

      • Plugin "Importer des auteurs" v-0.5 19 juillet 2007 16:14

        Les lignes suspectes :

        // si il y a une colonne 8 alors c'est le login
                       if(isset($liste[7]) && !empty($liste[7])) {
                           $login = $liste[7];
                       }

                       // si il y a une colonne 9 alors c'est le mot de passe
                       if(isset($liste[8]) && !empty($liste[8])) {
                           $new_pass = $liste[8];
                       }

        Il me semble qu’il y a erreur sur le numéro des colonnes, non ? pour moi le login était dans la colonne 7, le mot de passe dans la 8...

        Pour l’accentuation j’ai bidouillé un truc, je ne sais pas ce que signifie "interclassement" ;)

        J’ai finalement réussi (non sans mal) à ajouter quelques lignes à ce plugin pour qu’il tienne compte du plugin "accès restreint par groupes" que j’ai installé sur mon site.

        Merci encore,

        Erwan

        Répondre à ce message

    Retour au début des forums

  • Plugin "Importer des auteurs" v-0.5

    5 juillet 2007 09:54, par Nicolas

    Bonjour Yves,
    Avec ton plug-in tu ouvres une piste à une idée que j’ai en tête depuis quelques semaines, c’est à dire pourvoir importer des articles à la louche. Est-ce qu’il y aurait moyen d’adapter ton plug-in pour importer en masse des articles encoder sous la même forme (csv)?
    Je ne suis absolument pas un virtuose du code php, html et autres languages nécessaire alors je fais appel aux "codeurs fous" arpentant le site.

    Bonne journée,

    Nicolas

    Répondre à ce message

    Retour au début des forums



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et fonctionnement SPIP-Contrib | SPIP | L'autre.net