Example #1
0
 public function execute()
 {
     if (Request::getModule() == 'user' and Request::getAction() == 'login' || strtolower(Request::getAction()) == 'loginsubmit') {
     } else {
         if ($_SESSION['user_id'] == '') {
             Zee::redirect(Zee::url("user", "login"));
         }
     }
     View::setLayout('default.tpl.php');
 }
Example #2
0
 /**
  * Metodo para ejecutar la aplicacion.
  * 
  * Permite iniciar la aplicacion, analiza el objeto Request.
  * Valida que el controlador y la accion solicitada se puedan cargar de lo contrario genera
  * un error que luego es enviado al usuario.
  * 
  * @param Request $request
  * @throws Exception
  */
 public static function Run(Request $request)
 {
     $controllerName = '\\application\\controllers\\' . $request->getController() . 'Controller';
     $action = $request->getAction();
     $parameters = $request->getParameters();
     if (class_exists($controllerName)) {
         $controller = new $controllerName();
         if (is_callable(array($controller, $action))) {
             $action = $request->getAction();
         } else {
             throw new \core\AppException("Ruta no valida", 1002);
         }
         if (isset($parameters)) {
             call_user_func_array(array($controller, $action), $parameters);
         } else {
             call_user_func(array($controller, $action));
         }
     } else {
         throw new \core\AppException("Controlador solicitada no es valido.", 1002);
     }
 }
Example #3
0
 /**
  * Run the application 
  * @param type $appBasePath
  */
 public function run($appBasePath)
 {
     /**
      * Define application base path
      */
     defined('APP_BASE_PATH') or define('APP_BASE_PATH', $appBasePath);
     /**
      * get controller and action from from url
      */
     $controller = Request::getController();
     $action = Request::getAction();
     /**
      * prepare controller class and path according to convention
      */
     $controllerClass = $controller . 'Controller';
     $controllerPath = APP_BASE_PATH . '/controllers/' . $controllerClass . '.php';
     /**
      * check if requested controller file and class exists
      * @todo use error controller and action to display errors
      */
     if (file_exists($controllerPath)) {
         /**
          * Include requested controller
          */
         include_once $controllerPath;
         if (class_exists($controllerClass)) {
             $Controller = new $controllerClass();
         } else {
             $msg = $controllerClass . ' class not found!';
             exit($msg);
         }
     } else {
         $msg = $controllerPath . ' not found!';
         exit($msg);
     }
     /**
      * prepare method
      */
     $methodName = $action . 'Action';
     if (!method_exists($Controller, $methodName)) {
         $msg = " Method {$methodName} not found on {$controllerClass} Class ";
         exit($msg);
     }
     /**
      * execute appropriate contoller's action method
      */
     try {
         $Controller->{$methodName}();
     } catch (Exception $exc) {
         Debug::r($exc->getMessage(), 'application-exception.txt');
     }
 }
Example #4
0
 /**
  * Overriding parent
  *
  * @param string $name
  * @return mixed
  */
 public function __get($name)
 {
     if ($name == 'session') {
         if ($this->_session === null) {
             $req = $this->request;
             Loader::load('Session', 'core');
             $ns = $req->getController();
             $subdir = str_replace('/', '_', $req->getControllerSubDirectory());
             if ($subdir != '') {
                 $ns = $subdir . '_' . $ns;
             }
             $this->_session = new Session($ns);
         }
         return $this->_session;
     }
     if ($name == 'post') {
         if (!array_key_exists($name, $this->_caches)) {
             $this->_caches[$name] = $this->request->getPost();
         }
         return $this->_caches[$name];
     }
     if ($name == 'query') {
         if (!array_key_exists($name, $this->_caches)) {
             $this->_caches[$name] = $this->request->getQuery();
         }
         return $this->_caches[$name];
     }
     if ($name == 'params') {
         if (!array_key_exists($name, $this->_caches)) {
             $this->_caches[$name] = $this->request->getParams();
         }
         return $this->_caches[$name];
     }
     if ($name == 'controller') {
         if (!array_key_exists($name, $this->_caches)) {
             $this->_caches[$name] = $this->request->getController();
         }
         return $this->_caches[$name];
     }
     if ($name == 'action') {
         if (!array_key_exists($name, $this->_caches)) {
             $this->_caches[$name] = $this->request->getAction();
         }
         return $this->_caches[$name];
     }
     return parent::__get($name);
 }
Example #5
0
 public function dispatch()
 {
     $request = new Request($_SERVER['QUERY_STRING']);
     $this->_module = $request->getModule();
     $this->_controller = $request->getController();
     $this->_action = $request->getAction();
     foreach ($this->pre_request as $pre_request) {
         $result = Module::run($pre_request);
         if ($result) {
             $request = $result;
             break;
         }
     }
     while ($request) {
         $request = Module::run($request);
     }
 }
 /**
  * Return path of the template. If template dnx throw exception
  *
  * @param void
  * @return string
  * @throws FileDnxError
  */
 function getTemplatePath()
 {
     $module = $this->request->getModule();
     if (is_array($this->getTemplate())) {
         $template = array_var($this->getTemplate(), 'template');
         $controller = array_var($this->getTemplate(), 'controller');
         $module = array_var($this->getTemplate(), 'module', $this->request->getModule());
     } elseif (is_string($this->getTemplate())) {
         $template = $this->getTemplate();
         $controller = $this->getControllerName();
     } else {
         $template = $this->request->getAction();
         $controller = $this->getControllerName();
     }
     // if
     $path = get_template_path($template, $controller, $module);
     return is_file($path) ? $path : new FileDnxError($path);
 }
Example #7
0
 /**
  * @param Request $request
  * @return string
  * @throws Exception
  * @throws NotFoundException
  */
 public function run($request)
 {
     $controller = $request->getController();
     $action = $request->getAction();
     if (empty($controller) || empty($action)) {
         throw new Exception("Invalid request.");
     }
     // Sanitize $controller_class before autoloading.
     $controller_class = ucfirst($controller) . 'Controller';
     if (!in_array($controller_class, $this->_allowed_controllers)) {
         throw new NotFoundException("Controller not defined.");
     }
     ob_start();
     $controller_obj = new $controller_class($request);
     if (method_exists($controller_obj, 'init')) {
         $controller_obj->init();
     }
     $controller_obj->do_action($action);
     $output = ob_get_clean();
     return $output;
 }
Example #8
0
 public static function run(Request $request)
 {
     $nameController = $request->getController() . "Controller";
     $action = $request->getAction() . "Action";
     $filePath = "src/controller" . $nameController . "php";
     $className = $nameController;
     if (file_exists($filePath)) {
         require_once $filePath;
         if (class_exists($className)) {
             $controller = new $nameController();
             if (method_exists($controller, $action)) {
                 call_user_func(array($controller, $action));
             } else {
                 var_dump("Не существует экшена" . $action);
             }
         } else {
             var_dump("Структура не соответствует  framework");
         }
     } else {
         die("Controller doesn't exist");
     }
 }
Example #9
0
 public static function Dispatch()
 {
     $moduleClassName = "Module_" . ucfirst(Request::getResource());
     $actionFunctionName = Request::getAction() . "Action";
     if (!method_exists($moduleClassName, $actionFunctionName)) {
         throw new Exception('Resource not found');
     }
     $module = new $moduleClassName();
     $module->init();
     $module->preDispatch();
     $retval = $module->{$actionFunctionName}();
     $module->postDispatch();
     $module->close();
     if (!is_array($retval) && !is_object($retval)) {
         if (is_null($retval)) {
             $retval = true;
         }
         $retval = array("data" => $retval);
     }
     header(Response_Status::getHeader(self::getStatus()), true, self::getStatus());
     header('Content-Type: application/json; Charset: UTF-8');
     echo json_encode($retval);
 }
Example #10
0
 public static function run(Request $request)
 {
     $nameController = $request->getController() . "Controller";
     $action = $request->getAction() . "Action";
     $filePath = "src\\controller\\" . $nameController . ".php";
     var_dump($filePath);
     $className = $nameController;
     if (file_exists($filePath)) {
         require_once $filePath;
         if (class_exists($className)) {
             $controller = new $nameController();
             if (method_exists($controller, $action)) {
                 call_user_func(array($controller, $action));
             } else {
                 var_dump("Action doesn't exist " . $action);
             }
         } else {
             var_dump("Site map doesn't correspond to framefork");
         }
     } else {
         die("Controller doesn't exist");
     }
 }
Example #11
0
 /**
  * @param Request $request
  * @param Response $response
  * @return string
  * @throws RuntimeException
  */
 public function render(Request $request, Response $response)
 {
     $view = $response->getView();
     if (!$view instanceof View) {
         throw new RuntimeException('No View object set; unable to render view');
     }
     $response->setContentTypeHeader('html');
     $dir = strtolower($request->getController());
     if (null !== $view->getScriptDir()) {
         $dir = $view->getScriptDir();
     }
     $filename = strtolower($request->getAction());
     if (null !== $view->getScript()) {
         $filename = $view->getScript();
     }
     $scriptFile = sprintf('%s/views/%s/%s.phtml', APP_DIR, $dir, $filename);
     $scriptFile = str_replace('/', DIRECTORY_SEPARATOR, $scriptFile);
     if (!file_exists($scriptFile)) {
         throw new RuntimeException('View script not found: ' . $scriptFile);
     }
     unset($dir, $filename);
     ob_start();
     include $scriptFile;
     $body = ob_get_clean();
     if (null !== $view->getLayout()) {
         $layoutFile = sprintf('%s/views/layout/%s.phtml', APP_DIR, $view->getLayout()->getScript());
         $layoutFile = str_replace('/', DIRECTORY_SEPARATOR, $layoutFile);
         if (file_exists($layoutFile)) {
             $view->layout()->content = $body;
             unset($viewScript, $body);
             ob_start();
             include $layoutFile;
             $body = ob_get_clean();
         }
     }
     return $body;
 }
Example #12
0
/**
 * @param Request $request
 */
function update_action($request)
{
    if (!($request->isAction() && $request->getAction() === 'update')) {
        return;
    }
    set_time_limit(0);
    global $tellets;
    $tellets->Update();
}
 /**
  * Returns either a View or Response object.
  * 
  * @route GET /?method=example.mixed
  * @route GET /example/mixed
  * 
  * @param Request $request
  * @return View|Response
  */
 public function mixedAction($request)
 {
     // accept HTML, JSON and XML
     $request->acceptContentTypes(array('html', 'json', 'xml'));
     if ('html' === $request->getContentType()) {
         $response = new View();
         $response->setLayout('main');
     } else {
         $response = new Response();
     }
     $response->method = $request->getMethod();
     $response->controller = $request->getController();
     $response->action = $request->getAction();
     return $response;
 }
/**
 * Contruct controller and execute specific action
 *
 * @param Request $request
 * @return null
 * @throws ControllerDnxError
 * @throws InvalidControllerActionError
 */
function execute_action($request)
{
    $controller_name = $request->getController();
    // we'll use this a lot
    $use_controller = use_controller($controller_name, $request->getModule());
    if (is_error($use_controller)) {
        return $use_controller;
    }
    // if
    $controller_class = get_controller_class($controller_name);
    if (!class_exists($controller_class)) {
        use_error('ControllerDnxError');
        return new ControllerDnxError($controller_name);
    }
    // if
    $controller = new $controller_class($request);
    if (!instance_of($controller, 'Controller')) {
        use_error('ControllerDnxError');
        return new ControllerDnxError($controller_name);
    }
    // if
    return $controller->execute($request->getAction());
}
Example #15
0
File: init.php Project: happyxlq/pd
require_once 'zee/message/Errors.class.php';
require_once 'zee/message/Messages.class.php';
require_once 'zee/lang/Language.class.php';
require_once 'zee/lang/LanguageContentValue.class.php';
require_once 'zee/lang/LanguageValue.class.php';
require_once 'zee/lang/LanguageService.class.php';
require_once 'zee/lang/LanguageContentService.class.php';
//==================
// Request
//==================
Request::init($_REQUEST);
//==================
// DB
//==================
Zee::register('DB', new DB());
//==================
// Language
//==================
//==================
// Exec Pre Filters
//==================
FilterHelper::execFilters(FilterHelper::PRE_FILTER);
//==================
// Do Module
//==================
$controller = Dispatch::getController(Request::getModule());
$controller->execute(Request::getAction());
//==================
// Exec Post Filters
//==================
FilterHelper::execFilters(FilterHelper::POST_FILTER);
 public function testGetAction()
 {
     $request = new Request($this->getHttpClient(), $this->getHttpRequest());
     $request->setAction('http://example.com/');
     $this->assertEquals($request->getAction(), 'http://example.com/');
 }
Example #17
0
 /**
  * @param Request $request
  * @param mixed   $result
  * @return RPCResponse
  */
 public static function fromRequest(Request $request, $result = null)
 {
     return new self($request->getTid(), $request->getAction(), $request->getMethod(), $result);
 }
Example #18
0
if ($request->isError()) {
    $page = new Page();
    $debugger = new Debugger();
    $database = new Database();
    $page = new Page();
    $page->title = "Ilmomasiina";
    $page->addContent("<p>Virheellinen url</p>");
    $page->printPage();
} else {
    if ($request->isAdmin()) {
        $passwordProtector = new AdminPasswordProtector();
        if ($passwordProtector->authenticate() !== true) {
            // Needs authentication
            die("You failed to authenticate.");
        }
        switch ($request->getAction()) {
            case "showanswers":
                require_once 'admin/answers/show.php';
                break;
            case "editanswer":
                require_once 'admin/answers/edit.php';
                break;
            case "updateanswer":
                require_once 'admin/answers/save.php';
                break;
            case "new":
                require_once 'admin/new.php';
                break;
            case "save":
                require_once 'admin/save.php';
                break;
Example #19
0
<?php

require_once '/nak/webapp/bootstrap.php';
if (!session_id()) {
    session_start();
}
$cur_stage = NetAidManager::get_stage();
$request = new Request($_GET['query']);
$dispatcher = new Dispatcher();
$controller = $request->getController();
$action = $request->getAction();
$updater = new Updater();
if ($cur_stage >= STAGE_ONLINE && $_SESSION['logged_in'] == 1 && $updater->updateAvailable()) {
    if ($controller != 'update') {
        $request->setController('update');
        $request->setAction('index');
    }
} else {
    if ($cur_stage != STAGE_ONLINE && $_SERVER['SERVER_NAME'] != '192.168.101.1') {
        header('Location: http://192.168.101.1/' . $controller . '/' . $action);
        die;
    }
}
$page_html = '';
try {
    $page_html = $dispatcher->run($request);
} catch (NotFoundException $e) {
    if ($cur_stage != STAGE_ONLINE) {
        header('Location: http://192.168.101.1/index/index');
        die;
    }
Example #20
0
 /**
  * Executes the action corresponding to the current request
  *
  * @param Framework\Request $request
  */
 public function execute(Request &$request, Response &$response)
 {
     $this->_request = $request;
     $this->_response = $response;
     if ($this->isInternal && $this->_request->getState() == \framework\core\Request::FIRST_REQUEST) {
         $this->_response->setStatus(\framework\core\Response::OUTSIDE_ACCESS_FORBIDDEN);
     } else {
         // check if the module's dependencies are not unsatisfied (they can be SCHRODINGER !)
         if ($this->getConfig()->get('modules.' . $request->getModule() . '.dependenciesSatisfied') !== \framework\libs\ConfigBuilder::DEPENDENCIES_UNSATISFIED) {
             //Preparation to "before" and "after" events lauching
             //$classPath = 'application\\modules\\' . $request->getModule() . '\\controllers\\' . $request->getAction();
             $beforeName = 'before' . ucfirst($request->getAction());
             $afterName = 'after' . ucfirst($request->getAction());
             //Launch Before event
             $this->raiseEvent($beforeName);
             if ($this->_before() !== false && call_user_func_array(array($this, 'processAction'), $this->_request->getParams()) !== false && $this->_after() !== false) {
                 //Lauch After event
                 $this->raiseEvent($afterName);
                 if ($this->usesView) {
                     if ($this->usesLayout == false) {
                         $this->setLayout(false);
                     }
                     if ($this->_view === null) {
                         $this->setView($this->_request->getAction());
                     }
                     $this->_response->set($this->createView($this->_request->getModule(), $this->_view, $this->_vars));
                 }
                 $this->_response->setStatus(\framework\core\Response::SUCCESS);
             } else {
                 $this->_response->setStatus(\framework\core\Response::ERROR);
             }
         } else {
             throw new \framework\core\ControllerDependencyException($request->getModule(), $this->getConfig('modules'));
         }
     }
     return $this->_response;
 }