verif et tableau de confirmation
This commit is contained in:
parent
7aad2deb53
commit
03568f6641
8
core/module/user/ressource/.htaccess
Normal file
8
core/module/user/ressource/.htaccess
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Bloque l'accès aux données
|
||||||
|
Order deny,allow
|
||||||
|
Deny from all
|
||||||
|
# Sauf l'accès au modèle csv
|
||||||
|
<Files template.csv>
|
||||||
|
Order Allow,Deny
|
||||||
|
Allow from all
|
||||||
|
</Files>
|
2
core/module/user/ressource/template.csv
Normal file
2
core/module/user/ressource/template.csv
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
id;nom;prenom;email;groupe
|
||||||
|
jbon;Bon;Jean;jean.bon@email.fr;1
|
|
@ -33,6 +33,12 @@ class user extends common {
|
|||||||
|
|
||||||
public static $userLongtime = false;
|
public static $userLongtime = false;
|
||||||
|
|
||||||
|
public static $separators = [
|
||||||
|
';' => ';',
|
||||||
|
',' => ',',
|
||||||
|
':' => ':'
|
||||||
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ajout
|
* Ajout
|
||||||
*/
|
*/
|
||||||
@ -543,11 +549,15 @@ class user extends common {
|
|||||||
* Importation CSV d'utilisateurs
|
* Importation CSV d'utilisateurs
|
||||||
*/
|
*/
|
||||||
public function import() {
|
public function import() {
|
||||||
|
$notification = '';
|
||||||
|
$success = true;
|
||||||
// Soumission du formulaire
|
// Soumission du formulaire
|
||||||
if($this->isPost()) {
|
if($this->isPost()) {
|
||||||
// Lecture du CSV et construction du tableau
|
// Lecture du CSV et construction du tableau
|
||||||
$file = helper::baseUrl(false) . self::FILE_DIR . 'source/' . $this->getInput('userImportCSVFile',helper::FILTER_STRING_SHORT, true);
|
$file = $this->getInput('userImportCSVFile',helper::FILTER_STRING_SHORT, true);
|
||||||
$rows = array_map(function($row) { return str_getcsv($row, ';'); }, file($file));
|
$filePath = helper::baseUrl(false) . self::FILE_DIR . 'source/' . $file;
|
||||||
|
if (file_exists ($filePath)) {
|
||||||
|
$rows = array_map(function($row) { return str_getcsv($row, $this->getInput('userImportSeparator') ); }, file($filePath));
|
||||||
$header = array_shift($rows);
|
$header = array_shift($rows);
|
||||||
$csv = array();
|
$csv = array();
|
||||||
foreach($rows as $row) {
|
foreach($rows as $row) {
|
||||||
@ -555,29 +565,58 @@ class user extends common {
|
|||||||
}
|
}
|
||||||
// Stockage des données
|
// Stockage des données
|
||||||
foreach($csv as $item ) {
|
foreach($csv as $item ) {
|
||||||
$userId = $item['id'];
|
// Nettoyage de l'identifiant
|
||||||
if($this->getData(['user', $userId])) {
|
$userId = helper::filter($item['id'] , self::FILTER_ID);
|
||||||
self::$inputNotices['userAddId'] = 'Identifiant déjà utilisé';
|
// N'insére que les utilisateurs dont l'id n'existe pas
|
||||||
$check=false;
|
if( !$this->getData(['user', $userId]) ) {
|
||||||
}
|
// Vérifier la présence des champs
|
||||||
|
if ( $item['prenom']
|
||||||
|
AND $item['nom']
|
||||||
|
AND $item['groupe']
|
||||||
|
AND $item['email']
|
||||||
|
AND $userId )
|
||||||
|
{
|
||||||
|
// Enregistre le user
|
||||||
$this->setData([
|
$this->setData([
|
||||||
'user',
|
'user',
|
||||||
$userId,
|
$userId, [
|
||||||
[
|
|
||||||
'firstname' => $item['prenom'],
|
'firstname' => $item['prenom'],
|
||||||
'forgot' => 0,
|
'forgot' => 0,
|
||||||
'group' => $item['groupe'],
|
'group' => $item['groupe'],
|
||||||
'lastname' => $item['nom'],
|
'lastname' => $item['nom'],
|
||||||
'mail' => $item['email'],
|
'mail' => $item['email'],
|
||||||
'password' => uniqid()
|
'pseudo' => $item['prenom'],
|
||||||
]
|
'signature' => 1, // Pseudo
|
||||||
]);
|
'password' => uniqid() // A modifier à la première connexion
|
||||||
|
]]);
|
||||||
|
|
||||||
|
// Création du tableau de confirmation
|
||||||
|
self::$users[] = [
|
||||||
|
$userId,
|
||||||
|
$item['nom'],
|
||||||
|
$item['prenom'],
|
||||||
|
self::$groups[$item['groupe']],
|
||||||
|
$item['prenom'],
|
||||||
|
$item['email']
|
||||||
|
];
|
||||||
|
$notification = 'Import efectué';
|
||||||
|
$success = true;
|
||||||
|
} else {
|
||||||
|
$success = 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$notification = 'Erreur de lecture : ' . $file;
|
||||||
|
$success = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
'title' => 'Importation',
|
'title' => 'Importation',
|
||||||
'view' => 'import'
|
'view' => 'import',
|
||||||
|
'notification' => $notification,
|
||||||
|
'state' => $success
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,17 +17,26 @@
|
|||||||
<div class="block">
|
<div class="block">
|
||||||
<h4>Importation de fichier plat CSV</h4>
|
<h4>Importation de fichier plat CSV</h4>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col6">
|
<div class="col5">
|
||||||
bla bla expliquant le format d'import à respecter
|
|
||||||
</div>
|
|
||||||
<div class="col6">
|
|
||||||
<?php echo template::file('userImportCSVFile', [
|
<?php echo template::file('userImportCSVFile', [
|
||||||
'label' => 'Liste d\'utilisateurs :'
|
'label' => 'Liste d\'utilisateurs :'
|
||||||
]); ?>
|
]); ?>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col1">
|
||||||
|
<?php echo template::select('userImportSeparator', $module::$separators, [
|
||||||
|
'label' => 'Séparateur'
|
||||||
|
]); ?>
|
||||||
|
</div>
|
||||||
|
<div class="col6">
|
||||||
|
<p>Les en-têtes obligatoires sont id, nom, prenom, email et groupe.</p>
|
||||||
|
<p>Valeurs de groupe : 1 membre - 2 éditeur - 3 administrateur </p>
|
||||||
|
<p><a href="core/module/user/ressource/template.csv">Modèle</a> à ouvrir avec un tableur.</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php echo template::formClose(); ?>
|
<?php echo template::formClose(); ?>
|
||||||
|
<?php if ($module::$users): ?>
|
||||||
|
<?php echo template::table([1, 3, 3, 1, 1,3], $module::$users, ['Identifiant', 'Nom', 'Prénom','Groupe', 'Pseudo', 'eMail']); ?>
|
||||||
|
<?php endif;?>
|
@ -1,4 +0,0 @@
|
|||||||
1;"Haddock";"Archibald";"Muséum d'histoire naturelle";"Décoratrice";"Rue de l'Ecole-de-Médecine ";1205;"Genève";111;"ah@free.fr";
|
|
||||||
2;"Castafiore";"Bianca";"Musée de Saint-Imier";"Conservatrice";"Heideweg 45 ";2503;"Biel/Bienne";222;"bc@free.fr";
|
|
||||||
3;"Lampion";"Séraphin";"Musée Charles Clos Olsommer";"Conservatrice et commissaire d'exposition";"Zudannazstrasse 4 ";3970;"Salgesch";333;"sl@laposte.net";
|
|
||||||
4;"Tournesol";"Trypho";"Fondation de l'Hermitage";"Chargée de projets d'exposition";2;" route du Signal CP 42";1000;"Lausanne 8 Bellevaux";444;"tt@ac-toulouse.fr"
|
|
|
Loading…
x
Reference in New Issue
Block a user