Si vous devez gérer un SPIP avec de très nombreux utilisateurs rédacteurs et/ou administrateurs de rubriques, que de surcroît ces utilisateurs ont un « turn-over » rapide, alors csv2spip est fait pour vous !
Les nouveautés de la version 2.2 sont signalées par un : [v2.2]
Objectifs :
Cette « moulinette » à été conçue pour permettre de gérer les utilisateurs d’un SPIP de collège ou lycée avec les contraintes suivantes :
- tous les élèves doivent êtres rédacteurs (le système à été testé sur des établissements de + de 1000 élèves et 90 profs).
- le SPIP doit contenir une rubrique pour chaque discipline de l’établissement (Français, Anglais, Maths...) et tous les profs d’une discipline doivent êtres administrateurs de la rubrique de leur discipline. La création et la gestion des administrateurs de rubrique doit donc être automatisée elle aussi.
- les élèves restent 3 ou 4 ans dans l’établissement : à chaque rentrée scolaire il faut supprimer les comptes de ceux qui sont partis et créer ceux de nouveaux arrivants. De plus, selon les établissements, les mots de passe des élèves doivent pouvoir êtres modifiés à chaque rentrée scolaire.
- le login et le mot de passe des élèves et des profs doit être identique à celui qu’ils utilisent pour se logger sur le réseau de leur établissement : ces infos doivent donc êtres récupérées à partir d’une base de donnée indépendante de SPIP [1]
. Pour une compatibilité large, elles seront stockées dans un fichier de type CSV , manipulable avec n’importe quel tableur.
- contrainte supplémentaire : tous les articles des élèves qui quittent l’établissement (qui seront donc supprimés) doivent êtres archivés afin de sortir de l’arborescence principale du SPIP.
L’idée de base était donc de « squizzer » le gestionnaire des utilisateurs de SPIP (qui se serait tapé le boulot de saisir tous les comptes un par un ???) et d’utiliser une extraction de la base de donnée des utilisateurs sous forme d’un fichier CSV pour ensuite la réinjecter dans les tables MySQL de SPIP en utilisant un script php qui permet de gérer les fonctions supplémentaires (cryptage du mot de passe, création des rubriques, des administrateurs de rubrique, effacement des anciens utilisateurs...).
Téléchargement de la dernière version :
version la plus récente : csv2spip_v2.2
Installation à partir du package csv2spip.zip :
0. faites une SAUVEGARDE de votre SPIP AVANT toute utilisation de csv2spip !!! En utilisant cet outil, vous assumez le fait que les choses peuvent mal se passer et que serez peut être obligé de restaurer votre base de donnée...
1. décompactez csv2spip, copiez csv2spip.php, csv2spip_modele.csv et ce fichier (csv2spip_lisez_moi.txt) dans le répertoire /ecrire de votre spip
2. copiez csv2spip-24.gif dans /ecrire/img_pack
3. Faites une copie de sauvegarde de /ecrire/auteurs.php3 (en auteurs-dist.php3 par exemple) puis éditez le fichier auteurs.php3 et ajoutez la ligne ci-dessous juste après la ligne qui doit débuter par le code suivant : icone_horizontale(_T(’icone_informations_personnelles’)... (aux alentours de la ligne 62)
ligne à ajouter :
icone_horizontale(’Importation de rédacteurs depuis un fichier CSV’, ’csv2spip.php’, « csv2spip-24.gif », « csv2spip-24.gif ») ;
Remarque pour les contempteurs de la « non-intrusion » dans le code source de SPIP pour cause de complication des upgrades de versions :
cette étape n’est pas indispensable, elle permet simplement d’ajouter un raccourci vers l’outils csv2spip dans l’interface d’administration des auteurs.
Alternativement vous pouvez vous passer de ce lien en appelant directement le fichier /ecrire/csv2spip.php dans votre navigateur.
A titre d’exemple vous disposez dans ce package d’une copie du fichier auteurs.php3 obtenu (auteurs-modifie_csv2spip.php3) => vous pouvez utiliser directement cette copie pour remplacer votre fichier auteurs.php3 si la version de votre SPIP est 1.8
4. rendez-vous dans /ecrire/auteurs.php3 en administrateur (général ou rubrique) pour avoir accès à l’outil et aux explications sur le format du fichier CSV à utiliser
5. Conditions d’utilisation : cet outil à été testé sur les versions 1.6, 1.7 et 1.8 de SPIP avec un fichier CSV contenant près de 1000 utilisateurs (874 élèves, 98 profs répartis dans 16 disciplines), sur des serveurs apache sous Linux et sous Windows => à priori vous ne devriez pas rencontrer de problèmes si votre fichier CSV est correctement formé...
Utilisation :
L’interface de saisie du fichier CSV propose un certain nombre d’options qui sont directement commentées : voir la capture d’écran ci-dessous :
Un système de gestion des erreurs est intégré pour chaque étape et affiche un résumé à la fin du processus. Si tout se passe bien vous devriez obtenir quelque chose d’équivalent à la capture d’écran suivante :
Caractéristiques du fichier CSV des utilisateurs à importer :
Ce fichier sera fabriqué à partir du fichier d’extraction des comptes de IACA ou d’un fichier CSV équivalent.
Rappel : un fichier CSV (Comma Separator Value) correspond à un fichier tableur enregistré au format texte. Chaque ligne de ce fichier correspond à une ligne du tableur, les données des cellules de cette ligne étant séparées par un séparateur (ici c’est le « ; »). On peut donc fabriquer un tel fichier avec n’importe quel tableur (OOo Calc par ex) en sélectionnant le format .csv ou .txt comme format d’enregistrement. Vu qu’il s’agit d’un format texte, il est également possible de le créer/modifier avec un simple éditeur de texte (bloc-note par ex).
« login » ;« prenom » ;« groupe » ;« ss_groupe » ;« pass » ;« email » ;« pseudo_spip »
L’utilisation de cette première ligne permet de pouvoir mettre les colonnes dans n’importe quel ordre dans le fichier CSV, la moulinette fonctionnera quand même.
Pour le fichier csv2spip_modele.csv fourni comme exemple, cela donne :
login | prenom | groupe | ss_groupe | pass | pseudo_spip | |
Bidule | Marcel | ELEVES | 3D | sdzzdbczke | mbidule@monprovid.truc | Big Marcel |
Doe | John | PROFS | Education Civique | kfbskfb | djohn@ac-Ilederé.fr | M. Doe |
Duchemin | ELEVES | olnlnhh | ||||
Dugenou | Zazie | ELEVES | danslmetro | zaz@oups.chose | ||
etc... |
Détails :
- « login » = obligatoire (le login dans spip). Attention : le login est sensible à la casse (Majuscules/minuscules).
- « prenom » : facultatif
- « groupe » = le groupe principal de chaque utilisateur (« PROFS » ou « ELEVES » pour IACA). Ce champ permet de séparer les utilisateurs qui seront rédateurs (groupe ELEVES par défaut mais REDACTEUR sera plus adapté si vous n’avez pas de contraintes liées à l’import d’un fichier venant d’une autre application) de ceux qui seront administrateurs de rubriques (groupe PROFS par défaut). Si ce champs est vide, les utilisateurs seront rédacteurs.
- « ss_groupe » : le sous-groupe
- pour les élèves = la classe (facultatif)
- pour les administrateurs c’est le nom de la rubrique qu’ils administreront. Sous IACA : la discipline pour les profs. Ce champ est obligatoire si on veut la création automatique des rubriques par sous-groupe et que les membres du sous-groupe en soient administrateurs
- « pass » : le mot de passe (si il est vide, le login sera utilisé comme mot de passe)
- « email » : facultatif, nécessaire si on souhaite que les utilisateurs aient leur mail déclaré dans SPIP
- « pseudo_spip » : facultatif, permet de spécifier un nom d’auteur SPIP différent de celui composé automatiquement par « prenom LOGIN »
- séparateur de champ : ; (point-virgule)
- valeurs encadrées par des « (guillemets doubles) (vous n’êtes pas obligé d’encadrer les valeurs par des » mais si vous voulez éviter les problèmes, c’est plus sûr...)
- séparateur de ligne : \r\n (sauts de lignes utilisé par OOo Calc par défaut) sous Windows, \n sous Linux (dans les 2 cas c’est le séparateur standard du système, à priori vous n’avez pas à vous en soucier)
Remarques :
On suppose que la gestion des doublons de noms est assurée en amont : si vous créez le fichier csv à la main, vous devrez vous assurer que chaque utilisateur à un nom unique !
Spécifique IACA : si les profs ne sont pas regroupés par discipline dans IACA (en tant que sous-groupes) il faudra éditer le fichier avec un tableur (OOo Calc par ex) pour ajouter celles-ci dans la colonne sous-groupe. En revanche, si les groupes de disciplines sont générés par IACA, il faudra éditer le fichier et faire un « Rechercher / Remplacer » pour supprimer les préfixes « D_ » qui précèdent chaque nom de groupe de profs afin d’éviter que les rubriques de disciplines dans le SPIP n’aient ce préfixe.
Un modèle de fichier CSV : csv2spip_modele.csv
Utilisation « autonome » de csv2spip.php
Il est possible d’utiliser csv2spip en tant que fichier autonome (c’est à dire à l’extérieur du répertoire /ecrire du spip) ou en tant que plug-in dans un autre CMS.
Pour cela il faudra éditer le début du fichier csv2spip.php et procéder aux modifications pour activer l’option 1 et définir les paramètres de votre base de donnée, ce qui doit donner un code qui ressemble à ça (exemple pour une installation standard sur un easyphp de test) :
/* csv2spip est un outil pour créer/modifier les rédacteurs et administrateurs restreints d'un SPIP à partir de fichiers CSV
* VERSION : 2.1
*
* CONFIGURATION :
* 2 options: csv2spip indépendant OU csv2spip intégré dans le /ecrire du SPIP
* ATTENTION !!! il y à une ligne à modifier en fonction de l'option en fin de ce fichier !!!
*
* OPTION 1 : => csv2spip est indépendant des fichier de SPIP
* pour changer d'option :
* - déplacez le * / situé après la ligne OPTION 2... pour le mettre après la ligne // FIN OPTION 2
* - déplacez le * / situé après la ligne // FIN OPTION 1 pour le mettre juste après cette ligne
*
*/ // CONFIG : ICI VIENT LE * / POUR L'OPTION 1 ACTIVE
// PARAMETRES DE CONNECTION A LA BASE SPIP :
// PARAMETRES A RENSEIGNER
$host="127.0.0.1"; // adresse du serveur de base de donnée
$user="root"; // login de d'un utilisateur ayant accès à cette table
$pwd=""; // mot de passe pour accès à la base
$base_site = "webtice"; // le nom de la base de donnée contenant les tables spip
$prefix_tables_SPIP = 'spip'; // le préfixe des tables spip (à modifier si vous l'avez configuré dans inc_version.php3 ou mes_options.php3 lors de l'installation de votre SPIP)
// FIN PARAMETRES A RENSEIGNER
global $host;
global $pwd;
global $user;
global $base_site;
function ak_connect($base) {
$db=mysql_connect($GLOBALS["host"], $GLOBALS["user"], $GLOBALS["pwd"]);
mysql_select_db($base,$db);
}
ak_connect($base_site); // !!! ne pas oublier mysql_close(); en fin de chaque page qui lance ce fichier !!!
function fin_page() { // fct remplaçant celle de SPIP pour le bas de la page
print '</body></html>';
}
?>
<html>
<head>
<title> csv2spip : générer automatiquement des comptes dans un SPIP à partir d'un fichier CSV</title>
</head>
<body>
<?
// FIN OPTION 1
/* OPTION 2 : INTEGRATION DU FICHIER DE CONFIG DE SPIP
* => csv2spip intégré dans la partie privée du SPIP
// CONFIG : ICI VIENT LE * / POUR L'OPTION 2 ACTIVE
include_once ("inc_version.php3");
$prefix_tables_SPIP = $table_prefix; // $table_prefix définie dans ecrire/inc_version.php3 (qui appelle mes_options.php3 s'il existe)
include ("inc.php3");
include_ecrire ("inc_acces.php3");
if ($connect_statut != '0minirezo') { ?>
<script language="JavaScript">
alert("Cet outil est réservé aux administrateurs\nVeuillez vous reconnecter avec un compte adapté";
document.location.href = "auteurs.php3";
</script>
<? exit();
}
if ($visiteurs == "oui") {
debut_page(_T('titre_page_auteurs'), "documents", "redacteurs");
$retour .= '&visiteurs=oui';
}
else {
debut_page(_T('info_auteurs_par_tri', array('partri' => $partri)),"documents","redacteurs");
} ?>
</center> <!-- ça c'est pour etre OK avec le <center> ouvert en fin inc_presentation.php -->
<?
// FIN OPTION 2
*/ // CONFIG : ICI VIENT LE * / POUR L'OPTION 1 ACTIVE
//
/* FIN CONFIGURATION */
To do :
- La gestion des mises à jour des administrateurs de rubriques
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Suivre les commentaires : |