diff --git a/core/module/user/user.php b/core/module/user/user.php index 8e876b1a..15143fc6 100644 --- a/core/module/user/user.php +++ b/core/module/user/user.php @@ -19,6 +19,7 @@ class user extends common { 'delete' => self::GROUP_ADMIN, 'import' => self::GROUP_ADMIN, 'index' => self::GROUP_ADMIN, + 'csvstring_to_array' => self::GROUP_ADMIN, 'edit' => self::GROUP_MEMBER, 'logout' => self::GROUP_MEMBER, 'forgot' => self::GROUP_VISITOR, @@ -542,11 +543,42 @@ class user extends common { * Importation CSV d'utilisateurs */ public function import() { + // Soumission du formulaire + if($this->isPost()) { + // Lecture du CSV et construction du tableau + $file = helper::baseUrl(false) . self::FILE_DIR . 'source/' . $this->getInput('userImportCSVFile',helper::FILTER_STRING_SHORT, true); + $rows = array_map(function($row) { return str_getcsv($row, ';'); }, file($file)); + $header = array_shift($rows); + $csv = array(); + foreach($rows as $row) { + $csv[] = array_combine($header, $row); + } + // Stockage des données + foreach($csv as $item ) { + $userId = $item['id']; + if($this->getData(['user', $userId])) { + self::$inputNotices['userAddId'] = 'Identifiant déjà utilisé'; + $check=false; + } + $this->setData([ + 'user', + $userId, + [ + 'firstname' => $item['prenom'], + 'forgot' => 0, + 'group' => $item['groupe'], + 'lastname' => $item['nom'], + 'mail' => $item['email'], + 'password' => uniqid() + ] + ]); + } + } // Valeurs en sortie $this->addOutput([ - 'title' => 'Importation d\'utilisateurs', + 'title' => 'Importation', 'view' => 'import' ]); - } + } \ No newline at end of file diff --git a/core/module/user/view/import/import.php b/core/module/user/view/import/import.php index a26375b8..5a44029b 100644 --- a/core/module/user/view/import/import.php +++ b/core/module/user/view/import/import.php @@ -1,12 +1,33 @@
-
- 'buttonGrey', - 'href' => helper::baseUrl() . 'user', - 'ico' => 'left', - 'value' => 'Retour' - ]); ?> -
+
+ 'buttonGrey', + 'href' => helper::baseUrl() . 'user', + 'ico' => 'left', + 'value' => 'Retour' + ]); ?> +
+
+
+
+
+
+
+

Importation de fichier plat CSV

+
+
+ bla bla expliquant le format d'import à respecter +
+
+ 'Liste d\'utilisateurs :' + ]); ?> +
+ +
+
+
+
\ No newline at end of file diff --git a/site/export.csv b/site/export.csv new file mode 100644 index 00000000..b841b3ee --- /dev/null +++ b/site/export.csv @@ -0,0 +1,4 @@ +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" diff --git a/site/tmp/5f79e3644fdca.png b/site/tmp/5f79e3644fdca.png new file mode 100644 index 00000000..53af242f Binary files /dev/null and b/site/tmp/5f79e3644fdca.png differ diff --git a/site/tmp/5f79e3644fdd8.png b/site/tmp/5f79e3644fdd8.png new file mode 100644 index 00000000..fa4a06c0 Binary files /dev/null and b/site/tmp/5f79e3644fdd8.png differ diff --git a/site/tmp/5f79e380687eb.png b/site/tmp/5f79e380687eb.png new file mode 100644 index 00000000..53af242f Binary files /dev/null and b/site/tmp/5f79e380687eb.png differ diff --git a/site/tmp/5f79e380687ee.png b/site/tmp/5f79e380687ee.png new file mode 100644 index 00000000..a8162d3f Binary files /dev/null and b/site/tmp/5f79e380687ee.png differ