예제 #1
0
 /**
  * Loads a specified flow controller
  *
  * @since 1.1
  *
  * @param string|ShoppFlowController $controller The name of the controller class or a controller instance
  * @return bool True if a controller is set and initialized, false otherwise
  **/
 public function handler($controller = null)
 {
     if (defined('WP_ADMIN') && is_null($controller) && isset($_GET['page'])) {
         $controller = $this->Admin->controller($_GET['page']);
     }
     if (!$controller) {
         return false;
     }
     if (is_a($this->Controller, $controller)) {
         return true;
     }
     // Already initialized
     if (!class_exists($controller)) {
         return false;
     }
     if (ShoppFlow::welcome()) {
         $controller = 'ShoppAdminWelcome';
     }
     $this->Controller = new $controller();
     do_action('shopp_' . sanitize_key($controller) . '_init');
     return true;
 }