Exemplo n.º 1
0
 /**
  * Method to parse a controller from a url
  * Defaults to the base controllers and passes an array of options.
  * $options[0] is the location of the controller which defaults to the core libraries (referenced as 'j'
  * and then the named folder within the component entry point file.
  * $options[1] is the name of the controller file,
  * $options[2] is the name of the folder found in the component controller folder for controllers
  * not prefixed with Config.
  * Additional options maybe added to parameterise the controller.
  *
  * @param   JApplicationBase  $app  An application object
  *
  * @return  JController  A JController object
  *
  * @since   3.2
  */
 public function parseController($app)
 {
     $tasks = array();
     if ($task = $app->input->get('task')) {
         // Toolbar expects old style but we are using new style
         // Remove when toolbar can handle either directly
         if (strpos($task, '/') !== false) {
             $tasks = explode('/', $task);
         } else {
             $tasks = explode('.', $task);
         }
     } elseif ($controllerTask = $app->input->get('controller')) {
         // Temporary solution
         if (strpos($controllerTask, '/') !== false) {
             $tasks = explode('/', $controllerTask);
         } else {
             $tasks = explode('.', $controllerTask);
         }
     }
     if (empty($tasks[0]) || $tasks[0] == 'Config') {
         $location = 'Config';
     } else {
         $location = ucfirst(strtolower($tasks[0]));
     }
     if (empty($tasks[1])) {
         $activity = 'Display';
     } else {
         $activity = ucfirst(strtolower($tasks[1]));
     }
     $view = '';
     if (!empty($tasks[2])) {
         $view = ucfirst(strtolower($tasks[2]));
     }
     // Some special handling for com_config administrator
     $option = $app->input->get('option');
     if ($app->isAdmin() && $option == 'com_config') {
         $component = $app->input->get('component');
         if (!empty($component)) {
             $view = 'Component';
         } elseif ($option == 'com_config') {
             $view = 'Application';
         }
     }
     $controllerName = $location . 'Controller' . $view . $activity;
     if (!class_exists($controllerName)) {
         return false;
     }
     $controller = new $controllerName();
     $controller->options = array();
     $controller->options = $tasks;
     return $controller;
 }
Exemplo n.º 2
0
 /**
  * Tests the JApplicationBase::triggerEvent method.
  *
  * @return  void
  *
  * @since   12.1
  */
 public function testTriggerEvent()
 {
     TestReflection::setValue($this->class, 'dispatcher', null);
     $this->assertNull($this->class->triggerEvent('onJApplicationBaseTriggerEvent'));
     TestReflection::setValue($this->class, 'dispatcher', $this->getMockDispatcher());
     $this->class->registerEvent('onJApplicationBaseTriggerEvent', 'function');
     $this->assertEquals(array('function' => null), $this->class->triggerEvent('onJApplicationBaseTriggerEvent'));
 }
Exemplo n.º 3
0
 /**
  * @testdox  Tests that no event is triggered when the application does not have a dispatcher.
  *
  * @covers  JApplicationBase::triggerEvent
  */
 public function testTriggerEventWithNoDispatcher()
 {
     $this->class->setDispatcher($this->getMockDispatcher());
     // Validate the event was triggered
     $this->assertEmpty($this->class->triggerEvent('onJApplicationBaseTriggerEvent'));
 }
 /**
  * @testdox  Tests that no event is triggered when the application does not have a dispatcher.
  *
  * @covers  JApplicationBase::triggerEvent
  */
 public function testTriggerEventWithNoDispatcher()
 {
     // Validate the event was triggered
     $this->assertNull($this->class->triggerEvent('onJApplicationBaseTriggerEvent'));
 }
Exemplo n.º 5
0
 /**
  * Fetch the errros data for the application.
  *
  * @return  object  An object to be loaded into the application configuration.
  *
  * @since   1.0
  *
  */
 protected function fetchErrorsData()
 {
     // Load the configuration file into an object.
     return $this->app->readConfig('errors');
 }