function indexAction() { $m = new Wtk_Form_Model('installation'); $g = $m->addGroup('site', "Le site"); $i = $g->addEnum('association', "Association", null, self::$associations); $m->addConstraintRequired($i); $g = $m->addGroup('admin', "Votre compte"); $i = $g->addString('prenom', "Votre prénom"); $m->addConstraintRequired($i); $i = $g->addString('nom', "Votre nom"); $m->addConstraintRequired($i); $i = $g->addEnum('sexe', "Sexe", null, array('h' => 'Masculin', 'f' => 'Féminin')); $m->addConstraintRequired($i); $i = $g->addDate('naissance', "Date de naissance", 0); $m->addConstraintRequired($i); $i = $g->addString('adelec', "Adélec"); $m->addConstraintRequired($i); $i = $i0 = $g->addString('motdepasse', "Mot de passe"); $m->addConstraintRequired($i); $i = $i1 = $g->addString('confirmation', "Confirmation"); $m->addConstraintEqual($i1, $i0); $this->view->model = $pm = new Wtk_Pages_Model_Form($m); if ($pm->validate()) { $installer = new Strass_Installer($m->get()); $installer->run(); /* Autologin. Écrire dans la session l'identité de l'admin */ $t = new Users(); $admin = $t->findByUsername($m->get('admin/adelec')); $auth = Zend_Auth::getInstance(); $auth->getStorage()->write($admin->getIdentity()); $this->_redirect('/', array('prependBase' => false, 'exit' => true)); } }
static function main() { self::bootstrapStage1(); /* On affiche la page de maintenance avant d'initialiser Wtk et * strass. Ainsi, seuls index.php et ce fichier sont requis pour * afficher la page de maintenance. Pas d'inclusion de Zend, Wtk, * etc. */ if (self::onMaintenance()) { return self::showMaintenance(); } self::bootstrapStage2(); if (!self::isInstalled()) { return Strass_Installer::main(); } try { self::run(); } catch (Exception $e) { self::saveSession(); try { try { $logger = Zend_Registry::get('logger'); } catch (Exception $_) { $logger = new Strass_Logger(); } $logger->critical($e->getMessage(), null, print_r($e, true)); } catch (Exception $_) { } // Affichage complet des exceptions non interceptées par le // controlleur. $msg = ":(\n\n"; $msg .= $e->getMessage() . "\n\n"; $msg .= " à " . $e->getFile() . ":" . $e->getLine() . "\n\n"; $msg .= str_replace('#', '<br/>#', $e->getTraceAsString()) . "\n"; header('HTTP/1.1 500 Internal Server Error'); error_log(strtok($e->getMessage(), "\n")); Orror::kill(strip_tags($msg)); return; } self::saveProfile(); }