Ejemplo n.º 1
0
 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));
     }
 }
Ejemplo n.º 2
0
 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();
 }