This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/application/classes/Request.php

58 lines
1.5 KiB
PHP
Raw Normal View History

<?php defined('SYSPATH') or die('No direct access allowed.');
/**
* Request. Uses the [Route] class to determine what
* [Controller] to send the request to.
*
2013-03-19 22:35:19 +00:00
* @package OSB
* @category Modifications
* @author Deon George
2013-03-19 22:35:19 +00:00
* @copyright (c) 2009-2013 Open Source Billing
* @license http://dev.osbill.net/license.html
*/
class Request extends Kohana_Request {
/**
* Sets and gets the directory for the controller.
*
* We override the Kohana version, so that we can have short directory URLs.
* eg: admin=>a,reseller=>r.
*
* @param string $directory Directory to execute the controller from
* @return mixed
*/
public function directory($directory = NULL) {
// If $directory is NULL, we are a getter and see if we need to expand the directory
if ($directory === NULL AND $this->_directory)
$this->_directory = URL::dir($this->_directory);
return parent::directory($directory);
}
/**
* Get our Module_Method object for this request
*/
public function mmo() {
static $result = FALSE;
if (is_null($result) OR $result)
return $result;
$result = NULL;
$mo = ORM::factory('Module',array('name'=>$this->_controller));
if ($mo->loaded() AND $mo->status) {
$method = strtolower($this->_directory ? sprintf('%s_%s',$this->_directory,$this->_action) : $this->_action);
// Get the method number
$mmo = ORM::factory('Module_Method',array('module_id'=>$mo->id,'name'=>$method));
if ($mmo->loaded())
$result = $mmo;
}
return $result;
}
}
?>