Renamed to match with new name
[core.git] / inc / classes / main / commands / web / class_WebConfirmCommand.php
index fed2ab9a556bcb13d10763a4dbbe136bd261e685..0b3f8a26bb75d74e9fad0979feff04452a30ba95 100644 (file)
@@ -4,7 +4,7 @@
  *
  * @author             Roland Haeder <webmaster@ship-simu.org>
  * @version            0.0.0
- * @copyright  Copyright (c) 2007, 2008 Roland Haeder, this is free software
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team
  * @license            GNU GPL 3.0 or any newer version
  * @link               http://www.ship-simu.org
  *
@@ -99,11 +99,26 @@ class WebConfirmCommand extends BaseCommand implements Commandable {
                $templateInstance->assignVariable('title', $this->getLanguageInstance()->getMessage('page_confirm_link_title'));
 
                // Get user instance
-               $userInstance = Registry::getRegistry()->getInstance('user');
+               try {
+                       $userInstance = Registry::getRegistry()->getInstance('user');
+               } catch (NullPointerException $e) {
+                       // Not found user, e.g. when the user is somehow invalid
+                       $responseInstance->redirectToConfiguredUrl('web_cmd_user_is_null');
+               }
 
                // Set username
                $templateInstance->assignVariable('username', $userInstance->getField(UserDatabaseWrapper::DB_COLUMN_USERNAME));
 
+               // Construct the menu in every command. We could do this in BaseCommand class. But this means
+               // *every* command has a navigation system and that is want we don't want.
+               $menuInstance = ObjectFactory::createObjectByConfiguredName('confirm_menu_class', array($appInstance));
+
+               // Render the menu
+               $menuInstance->renderMenu();
+
+               // Transfer it to the template engine instance
+               $menuInstance->transferContentToTemplateEngine($templateInstance);
+
                // ... and all variables. This should be merged together in a pattern
                // to make things easier. A cache mechanism should be added between
                // these two calls to cache compiled templates.