From e639843ebf1c476ae1ac876e8b5f7d09eeea2e3a Mon Sep 17 00:00:00 2001 From: secretr Date: Thu, 19 Jan 2012 13:17:26 +0000 Subject: [PATCH] admin UI better error handling --- e107_handlers/admin_ui.php | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/e107_handlers/admin_ui.php b/e107_handlers/admin_ui.php index 871e26237..8fdfcbe5a 100644 --- a/e107_handlers/admin_ui.php +++ b/e107_handlers/admin_ui.php @@ -1242,14 +1242,14 @@ class e_admin_dispatcher //give access to current request object, user defined init $this->_current_controller->setRequest($this->getRequest())->init(); } + // Known controller (found in e_admin_dispatcher::$modes), class not found exception else { - //TODO - get default controller (core or user defined), set Action for - //'Controller not found' page, add message(?), break + // TODO - admin log // get default controller $this->_current_controller = $this->getDefaultController(); // add messages - e107::getMessage()->add('Can\'t find class '.($class_name ? $class_name : 'n/a'), E_MESSAGE_ERROR) + e107::getMessage()->add('Can\'t find class "'.($class_name ? $class_name : 'n/a').'" for controller "'.ucfirst($request->getModeName()).'"', E_MESSAGE_ERROR) ->add('Requested: '.e_SELF.'?'.$request->buildQueryString(), E_MESSAGE_DEBUG); // $request->setMode($this->getDefaultControllerName())->setAction('e404'); @@ -1272,6 +1272,19 @@ class e_admin_dispatcher $this->_current_controller->setParam('modes', $this->modes); } + // Not known controller (not found in e_admin_dispatcher::$modes) exception + else + { + var_dump($this->getDefaultControllerName(), $this->modes); + // TODO - admin log + $this->_current_controller = $this->getDefaultController(); + // add messages + e107::getMessage()->add('Can\'t find class for controller "'.ucfirst($request->getModeName()).'"', E_MESSAGE_ERROR) + ->add('Requested: '.e_SELF.'?'.$request->buildQueryString(), E_MESSAGE_DEBUG); + // go to not found page + $request->setMode($this->getDefaultControllerName())->setAction('e404'); + $this->_current_controller->setRequest($request)->init(); + } return $this; }