Overview
Comment: | Déplacement de la logique d'installation dans un objet, plus pratique pour les fermes de Garradin |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | stable |
Files: | files | file ages | folders |
SHA1: |
07e297c2a2bc24f42f90d077d1c089cd |
User & Date: | bohwaz on 2016-08-21 11:27:45 |
Other Links: | manifest | tags |
Context
2016-08-21
| ||
21:21 | Fix référence à HTTP_ACCEPT_LANG qui n'est pas toujours présent check-in: c7e0066828 user: bohwaz tags: trunk, stable | |
11:27 | Déplacement de la logique d'installation dans un objet, plus pratique pour les fermes de Garradin check-in: 07e297c2a2 user: bohwaz tags: trunk, stable | |
2016-08-18
| ||
00:33 | Use a makefile to setup development dependencies check-in: 7e9b3e9a18 user: bohwaz tags: trunk | |
Changes
Modified src/include/lib/Garradin/Config.php from [c35055d218] to [0b6eaf88e0].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php namespace Garradin; class Config { protected $fields_types = null; protected $config = null; protected $modified = []; static protected $_instance = null; static public function getInstance() { return self::$_instance ?: self::$_instance = new Config; } private function __clone() { } protected function __construct() { // Définition des types de données stockées | > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <?php namespace Garradin; class Config { protected $fields_types = null; protected $config = null; protected $modified = []; static protected $_instance = null; /** * Singleton simple * @return Config */ static public function getInstance() { return self::$_instance ?: self::$_instance = new Config; } /** * Empêche de cloner l'objet * @return void */ private function __clone() { } protected function __construct() { // Définition des types de données stockées |
︙ | ︙ | |||
86 87 88 89 90 91 92 93 94 95 96 97 98 99 | } } public function __destruct() { if (!empty($this->modified)) { //echo '<div style="color: red; background: #fff;">Il y a des champs modifiés non sauvés dans '.__CLASS__.' !</div>'; } } public function save() { if (empty($this->modified)) | > | 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | } } public function __destruct() { if (!empty($this->modified)) { // FIXME: on devrait loguer/envoyer une erreur ici si on a modifié quelque chose sans le sauver //echo '<div style="color: red; background: #fff;">Il y a des champs modifiés non sauvés dans '.__CLASS__.' !</div>'; } } public function save() { if (empty($this->modified)) |
︙ | ︙ | |||
318 319 320 321 322 323 324 | } public function getConfig() { return $this->config; } } | < < | 327 328 329 330 331 332 333 | } public function getConfig() { return $this->config; } } |
Added src/include/lib/Garradin/Install.php version [a825b9a6de].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | <?php namespace Garradin; class Install { static public function install($nom_asso, $adresse_asso, $email_asso, $nom_categorie, $nom_membre, $email_membre, $passe_membre, $site_asso = WWW_URL) { $db = DB::getInstance(true); // Création de la base de données $db->exec('BEGIN;'); $db->exec(file_get_contents(DB_SCHEMA)); $db->exec('END;'); // Configuration de base // c'est dans Config::set que sont vérifiées les données utilisateur (renvoie UserException) $config = Config::getInstance(); $config->set('nom_asso', $nom_asso); $config->set('adresse_asso', $adresse_asso); $config->set('email_asso', $email_asso); $config->set('site_asso', WWW_URL); $config->set('monnaie', '€'); $config->set('pays', 'FR'); $config->set('email_envoi_automatique', $email_asso); $config->setVersion(garradin_version()); $champs = Membres\Champs::importInstall(); $champs->save(false); // Pas de copie car pas de table membres existante $config->set('champ_identifiant', 'email'); $config->set('champ_identite', 'nom'); // Création catégories $cats = new Membres\Categories; $id = $cats->add([ 'nom' => 'Membres actifs', ]); $config->set('categorie_membres', $id); $id = $cats->add([ 'nom' => 'Anciens membres', 'droit_inscription' => Membres::DROIT_AUCUN, 'droit_wiki' => Membres::DROIT_AUCUN, 'droit_membres' => Membres::DROIT_AUCUN, 'droit_compta' => Membres::DROIT_AUCUN, 'droit_config' => Membres::DROIT_AUCUN, 'droit_connexion' => Membres::DROIT_AUCUN, 'cacher' => 1, ]); $id = $cats->add([ 'nom' => ucfirst($nom_categorie), 'droit_inscription' => Membres::DROIT_AUCUN, 'droit_wiki' => Membres::DROIT_ADMIN, 'droit_membres' => Membres::DROIT_ADMIN, 'droit_compta' => Membres::DROIT_ADMIN, 'droit_config' => Membres::DROIT_ADMIN, ]); // Création premier membre $membres = new Membres; $id_membre = $membres->add([ 'id_categorie' => $id, 'nom' => $nom_membre, 'email' => $email_membre, 'passe' => $passe_membre, 'pays' => 'FR', ]); // Création wiki $page = Wiki::transformTitleToURI($nom_asso); $config->set('accueil_wiki', $page); $wiki = new Wiki; $id_page = $wiki->create([ 'titre' => $nom_asso, 'uri' => $page, ]); $wiki->editRevision($id_page, 0, [ 'id_auteur' => $id_membre, 'contenu' => "Bienvenue dans le wiki de ".$nom_asso." !\n\nCliquez sur le bouton « éditer » pour modifier cette page.", ]); // Création page wiki connexion $page = Wiki::transformTitleToURI('Bienvenue'); $config->set('accueil_connexion', $page); $id_page = $wiki->create([ 'titre' => 'Bienvenue', 'uri' => $page, ]); $wiki->editRevision($id_page, 0, [ 'id_auteur' => $id_membre, 'contenu' => "Bienvenue dans l'administration de ".$nom_asso." !\n\n" . "Utilisez le menu à gauche pour accéder aux différentes rubriques.", ]); // Mise en place compta $comptes = new Compta\Comptes; $comptes->importPlan(); $comptes = new Compta\Categories; $comptes->importCategories(); $ex = new Compta\Exercices; $ex->add([ 'libelle' => 'Premier exercice', 'debut' => date('Y-01-01'), 'fin' => date('Y-12-31') ]); return $config->save(); } } |
Modified src/www/admin/install.php from [06c22a3a12] to [69a2e230cd].
︙ | ︙ | |||
124 125 126 127 128 129 130 | elseif (Utils::post('passe_membre') != Utils::post('repasse_membre')) { $error = 'La vérification ne correspond pas au mot de passe.'; } else { try { | < | < < < < | < < < < < | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | | 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | elseif (Utils::post('passe_membre') != Utils::post('repasse_membre')) { $error = 'La vérification ne correspond pas au mot de passe.'; } else { try { Install::install(Utils::post('nom_asso'), Utils::post('adresse_asso'), Utils::post('email_asso'), Utils::post('cat_membre'), Utils::post('nom_membre'), Utils::post('email_membre'), Utils::post('passe_membre'), WWW_URL); Utils::redirect('/admin/login.php'); } catch (UserException $e) { @unlink(DB_FILE); $error = $e->getMessage(); } |
︙ | ︙ |