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/Controller/TemplateDefault.php

108 lines
3.4 KiB
PHP
Raw Normal View History

2010-11-29 22:41:08 +00:00
<?php defined('SYSPATH') or die('No direct access allowed.');
/**
* This class provides the default template controller for rendering pages.
*
* @package OSB
2010-11-29 22:41:08 +00:00
* @category Controllers
* @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
2010-11-29 22:41:08 +00:00
*/
2012-01-29 10:08:54 +00:00
class Controller_TemplateDefault extends lnApp_Controller_TemplateDefault {
protected $auth_required = TRUE;
// Our acccount object
protected $ao;
2012-01-29 06:23:24 +00:00
public function __construct(Request $request, Response $response) {
$this->template = Config::theme().'/page';
2012-01-29 06:23:24 +00:00
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()])))
2013-05-10 10:48:10 +00:00
throw HTTP_Exception::factory(403,'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();
2013-04-21 13:10:38 +00:00
if (! is_null($this->ao) AND (is_string($this->ao) OR ! $this->ao->loaded()))
2013-04-18 08:17:33 +00:00
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();
2010-11-29 22:41:08 +00:00
}
2013-05-10 10:48:10 +00:00
// @todo To rework
public function after() {
2013-05-10 10:48:10 +00:00
$dc = 'u/welcome/index';
$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
*
* @param $o Our ORM Object that we are searching on
* @param $fl Our array of items that we must return
* @param $flid The ID that must be in the $fl
* @param $sort Sort the results
*/
protected function filter($o,array $fl,$flid,$sort=NULL) {
$result = array();
2013-05-10 10:48:10 +00:00
foreach ($o as $x)
if (! is_null($flid) AND isset($x->$flid) AND in_array($x->$flid,$fl))
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,
));
}
2010-11-29 22:41:08 +00:00
}
}
?>