コード例 #1
0
  public function run($filter_chain, $request, $response)
  {
    if(!$this->_isCachingEnabled())
    {
      $filter_chain->next();
      return;
    }

    $cache = $this->_getImageCacheManager();
    $cache->setUri($request->getUri());

    ob_start();

    $filter_chain->next();

    if($response->fileSent())
      return;

    Debug :: addTimingPoint('image cache started');

    if($content = $response->getResponseString())
    {
      //by reference
      $cache->processContent($content);
      $response->write($content);
    }

    Debug :: addTimingPoint('image cache write finished');
  }
 public function run($filter_chain, $request, $response)
 {
     Debug::addTimingPoint('authentication filter started');
     $this->initializeUser();
     $toolkit = Limb::toolkit();
     $datasource = $toolkit->getDatasource('RequestedObjectDatasource');
     if (!($node = $datasource->mapRequestToNode($request))) {
         $this->process404Error($request, $response);
         $filter_chain->next();
         return;
     }
     $behaviour = $this->getBehaviourByObjectId($node['object_id']);
     $controller = $this->_getController($behaviour);
     if (!($action = $controller->getRequestedAction())) {
         $this->process404Error($request, $response);
         $filter_chain->next();
         return;
     }
     $datasource->setRequest($request);
     if (!($object_data = $datasource->fetch())) {
         $response->redirect('/root/login?redirect=' . urlencode($_SERVER['REQUEST_URI']));
         return;
     }
     $authoriser = Limb::toolkit()->getAuthorizer();
     $authoriser->assignActionsToObjects($object_data);
     if (!isset($object_data['actions']) || !isset($object_data['actions'][$action])) {
         $response->redirect('/root/login?redirect=' . urlencode($_SERVER['REQUEST_URI']));
         return;
     }
     $filter_chain->next();
 }
コード例 #3
0
  public function run($filter_chain, $request, $response)
  {
    if(!$this->_isCachingEnabled())
    {
      $filter_chain->next();
      return;
    }

    Debug :: addTimingPoint('full page cache started');

    $cache = $this->_getFullPacheCacheManager();

    $cache->setRequest($request);

    if($contents = $cache->get())
    {
      Debug :: addTimingPoint('full page cache read finished');

      $response->write($contents);
      return;
    }

    $filter_chain->next();

    $cache->write($response->getResponseString());

    Debug :: addTimingPoint('full page cache write finished');
  }
コード例 #4
0
  public function run($filter_chain, $request, $response)
  {
    $toolkit = Limb :: toolkit();

    Debug :: addTimingPoint('locale filter started');

    $toolkit->getLocale()->setlocale();

    $datasource = $toolkit->getDatasource('RequestedObjectDatasource');

    if(!$node = $datasource->mapRequestToNode($request))
    {
      $toolkit->define('CONTENT_LOCALE_ID', DEFAULT_CONTENT_LOCALE_ID);
      $toolkit->define('MANAGEMENT_LOCALE_ID', DEFAULT_CONTENT_LOCALE_ID);

      $filter_chain->next();
      return;
    }

    if($object_locale_id = $this->_findSiteObjectLocaleId($node['object_id']))
      $toolkit->define('CONTENT_LOCALE_ID', $object_locale_id);
    else
      $toolkit->define('CONTENT_LOCALE_ID', DEFAULT_CONTENT_LOCALE_ID);

    if($user_locale_id = $toolkit->getUser()->get('locale_id'))
      $toolkit->define('MANAGEMENT_LOCALE_ID', $user_locale_id);
    else
      $toolkit->define('MANAGEMENT_LOCALE_ID', $toolkit->constant('CONTENT_LOCALE_ID'));

    Debug :: addTimingPoint('locale filter finished');

    $filter_chain->next();
  }
コード例 #5
0
  public function run($filter_chain, $request, $response)
  {
    Debug :: addTimingPoint('session startup filter started');

    Limb :: toolkit()->getSession()->start();

    Debug :: addTimingPoint('session startup filter finished');

    $filter_chain->next();
  }
コード例 #6
0
 public function run($filter_chain, $request, $response)
 {
     $filter_chain->next();
     Debug::addTimingPoint('logging filter started');
     $datasource = Limb::toolkit()->getDatasource('RequestedObjectDatasource');
     $datasource->setRequest($request);
     $object = wrapWithSiteObject($datasource->fetch());
     $controller = $object->getController();
     include_once dirname(__FILE__) . '/../StatsRegister.class.php';
     $stats_register = new StatsRegister();
     $stats_register->register($object->getNodeId(), $controller->getAction($request), $request->getStatus());
     Debug::addTimingPoint('logging filter finished');
 }
コード例 #7
0
  protected function _performAction($request)
  {
    if(!$action = $this->getRequestedAction($request))
      throw new LimbException('action not defined in state machine',
                              array('action' => $action,
                                    'class' => get_class($this->behaviour)));

    $state_machine = $this->_getStateMachine();

    call_user_func(array($this->behaviour, 'define_' . $action), $state_machine);

    $state_machine->run();

    Debug :: addTimingPoint('action performed');
  }
コード例 #8
0
  public function run($filter_chain, $request, $response)
  {
    Debug :: addTimingPoint('site object controller filter started');

    $datasource = Limb :: toolkit()->getDatasource('RequestedObjectDatasource');
    $datasource->setRequest($request);

    $site_object = wrapWithSiteObject($datasource->fetch());

    $site_object->getController()->process($request);

    Debug :: addTimingPoint('site object controller filter finished');

    $filter_chain->next();
  }
コード例 #9
0
<?php
/**********************************************************************************
* Copyright 2004 BIT, Ltd. http://limb-project.com, mailto: support@limb-project.com
*
* Released under the LGPL license (http://www.gnu.org/copyleft/lesser.html)
***********************************************************************************
*
* $Id$
*
***********************************************************************************/
require_once(LIMB_DIR . '/core/error/Debug.class.php');

Debug :: addTimingPoint('start');

require_once(LIMB_DIR . '/core/Limb.class.php');
require_once(LIMB_DIR . '/core/file_resolvers/file_resolvers_registry.inc.php');
require_once(LIMB_DIR . '/core/filters/FilterChain.class.php');
require_once(LIMB_DIR . '/core/etc/limb_util.inc.php');
require_once(LIMB_DIR . '/core/etc/MessageBox.class.php');

class LimbApplication
{
  function _loadPackages()
  {
    include_once(LIMB_DIR . '/core/PackagesInfo.class.php');
    $inst =& PackagesInfo :: instance();
    $inst->loadPackages();
  }

  function _createToolkit()
  {