Newer
Older
ubFramework / Source / include / core / SiteUI.php
<?php
require_once 'include/utils/Loader.php';
require_once 'include/Sphere/Entity.php';

require_once 'include/utils/NotImp.php';

sphere_import ( 'include.runtime.EntryPoint' );

class SiteUI extends Sphere_EntryPoint {

  function process(Sphere_Request $request) {

    Sphere_Session::init ();

    $currentUser = $this->getLogin ();

    $view = $request->get ( 'view' );
    $action = $request->get ( 'action' );
    $module = $request->get ( 'module' );

    print "TEST: [" . json_encode ( $currentUser ) . ":" . json_encode ( $view ) . ":" . json_encode ( $action ) . "]<br />";

    try {
      if (empty ( $module )) {
        if ($this->hasLogin ()) {
          print "We're Logged In Load Default Module!";
        }
        else {
          $module = 'Users';
          $qualifiedModuleName = 'Settings:Users';
          $view = 'Login';
        }
                                       $request->set('module', $module);
                                $request->set('view', $view);

      }

      if (empty ( $action )) {
        $componentType = 'View';
        if (empty ( $view ))
          $view = 'Index';
        $componentName = $view;
      }
      else {
        $componentType = 'Action';
        $componentName = $action;
      }

      $handlerClass = Sphere_Loader::getComponentClassName ( $componentType, $componentName, $qualifiedModuleName );
      $handler = new $handlerClass ();

      if ($handler) {
        print "We've Got A Handler!";
        $handler->validateRequest($request);
                                        if ($handler->loginRequired()) {
                                        $this->checkLogin ($request);
                                }
                  $this->triggerPreProcess($handler, $request);
                                $response = $handler->process($request);
                                $this->triggerPostProcess($handler, $request);
      }
      else {
        throw new AppException ( 'Handler Not Found!' );
      }
    }
    catch ( Exception $e ) {
      if ($view) {
        // log for development
        // global $log;
        // $log->debug($e->getMessage().":".$e->getTraceAsString());
        // $viewer = new Vtiger_Viewer();
        // $viewer->assign('MESSAGE', $e->getMessage());
        // $viewer->view('OperationNotPermitted.tpl', 'Vtiger');
        print "EXCEPTION: View! [" . $e->getMessage () . ":" . $e->getTraceAsString () . "]<br />\n";
      }
      else {
        // $response = new Vtiger_Response();
        // $response->setEmitType(Vtiger_Response::$EMIT_JSON);
        // $response->setError($e->getMessage());
        print "EXCEPTION: No View!";
      }
    }

  }

  function getLogin() {

    $user = parent::getLogin ();

    if (! $user && isset ( $_SESSION ['authenticated_user_id'] )) {
      $userid = Sphere_Session::get ( 'AUTHUSERID', $_SESSION ['authenticated_user_id'] );
      if ($userid && sphere_global ( 'application_unique_key' ) == $_SESSION ['app_unique_key']) {
        $user = CRMEntity::getInstance ( 'Users' );
        $user->retrieveCurrentUserInfoFromFile ( $userid );
        $this->setLogin ( $user );
      }
    }
    return $user;

  }

        protected function triggerPreProcess($handler, $request) {
                if($request->isAjax()){
                        return true;
                }
                $handler->preProcess($request);
        }

        protected function triggerPostProcess($handler, $request) {
                if($request->isAjax()){
                        return true;
                }
                $handler->postProcess($request);
        }



}

?>