04ebda2aaa
Improvements to NAVBAR, updates to StaticList methods, other minor items Enable product category rendering and other minor improvements Added ADSL-large category price plan
110 lines
3.4 KiB
PHP
110 lines
3.4 KiB
PHP
<?php defined('SYSPATH') or die('No direct access allowed.');
|
|
|
|
/**
|
|
* This class provides the default template controller for rendering pages.
|
|
*
|
|
* @package OSB
|
|
* @category Controllers
|
|
* @author Deon George
|
|
* @copyright (c) 2009-2013 Open Source Billing
|
|
* @license http://dev.osbill.net/license.html
|
|
*/
|
|
class Controller_TemplateDefault extends lnApp_Controller_TemplateDefault {
|
|
protected $auth_required = TRUE;
|
|
|
|
// Our acccount object
|
|
protected $ao;
|
|
|
|
public function __construct(Request $request, Response $response) {
|
|
$this->template = Config::theme().'/page';
|
|
|
|
return parent::__construct($request,$response);
|
|
}
|
|
|
|
public function before() {
|
|
// If our action doesnt exist, no point processing any further.
|
|
if (! method_exists($this,'action_'.Request::current()->action()))
|
|
return;
|
|
|
|
if ($this->auth_required) {
|
|
if (! count($this->secure_actions) OR (! isset($this->secure_actions[Request::current()->action()])))
|
|
throw new Kohana_Exception('Class has no security defined :class, or no security configured for :method',array(':class'=>get_class($this),':method'=>Request::current()->action()));
|
|
|
|
$this->ao = Auth::instance()->get_user();
|
|
|
|
if (! is_null($this->ao) AND (is_string($this->ao) OR ! $this->ao->loaded()))
|
|
throw HTTP_Exception::factory(501,'Account doesnt exist :account ?',array(':account'=>(is_string($this->ao) OR is_null($this->ao)) ? $this->ao : Auth::instance()->get_user()->id));
|
|
}
|
|
|
|
parent::before();
|
|
}
|
|
|
|
public function after() {
|
|
$dc = Kohana::$config->load('config','user_default_method');
|
|
$m = sprintf('%s/%s',Request::current()->directory(),Request::current()->controller());
|
|
|
|
BreadCrumb::URL(Request::current()->directory(),sprintf('%s/%s',Request::current()->directory(),$dc),FALSE);
|
|
BreadCrumb::URL($m,method_exists($this,'action_menu') ? $m.'/menu' : sprintf('%s/%s',Request::current()->directory(),$dc),FALSE);
|
|
|
|
parent::after();
|
|
}
|
|
|
|
/**
|
|
* This will filter a search query to only return those accounts for a reseller
|
|
*/
|
|
protected function filter($o,$af,$sort=NULL,$afid=NULL) {
|
|
$result = array();
|
|
|
|
foreach ($o as $x) {
|
|
if (! is_null($afid) AND isset($x->$afid)) {
|
|
if ((is_array($af) AND in_array($x->$afid,$af)) OR ($x->$afid == $af))
|
|
array_push($result,$x);
|
|
|
|
} elseif (method_exists($x,'list_reseller')) {
|
|
if (in_array($af,$x->list_reseller()))
|
|
array_push($result,$x);
|
|
|
|
}
|
|
}
|
|
|
|
if ($sort)
|
|
Sort::MAsort($result,$sort);
|
|
|
|
return $result;
|
|
}
|
|
|
|
protected function setup(array $config_items=array()) {
|
|
$module = Request::current()->controller();
|
|
|
|
if ($_POST AND isset($_POST['module_config'][$module]))
|
|
Config::instance()->module_config($module,$_POST['module_config'][$module])->save();
|
|
|
|
if ($config_items) {
|
|
$output = '';
|
|
$mc = Config::instance()->module_config($module);
|
|
|
|
$output .= Form::open();
|
|
$output .= View::factory('setup/admin/module/head');
|
|
|
|
foreach ($config_items as $k=>$v)
|
|
$output .= View::factory('setup/admin/module/body')
|
|
->set('module',$module)
|
|
->set('mc',$mc)
|
|
->set('key',$k)
|
|
->set('info',$v)
|
|
->set('val',isset($mc[$k]) ? $mc[$k] : '');
|
|
|
|
$output .= View::factory('setup/admin/module/foot');
|
|
|
|
$output .= Form::submit('submit',_('Submit'),array('class'=>'form_button'));
|
|
$output .= Form::close();
|
|
|
|
Block::add(array(
|
|
'title'=>sprintf('%s: %s',strtoupper($module),_('Configuration')),
|
|
'body'=>$output,
|
|
));
|
|
}
|
|
}
|
|
}
|
|
?>
|