53 lines
1.3 KiB
PHP
53 lines
1.3 KiB
PHP
|
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||
|
|
||
|
/**
|
||
|
* This class provides MODULE management
|
||
|
*
|
||
|
* @package lnApp
|
||
|
* @subpackage Page/Module
|
||
|
* @category Controllers
|
||
|
* @author Deon George
|
||
|
* @copyright (c) 2010 Deon George
|
||
|
* @license http://dev.leenooks.net/license.html
|
||
|
*/
|
||
|
class Controller_Module extends Controller_TemplateDefault {
|
||
|
public $secure_actions = array(
|
||
|
'edit'=>TRUE,
|
||
|
'list'=>TRUE,
|
||
|
'menu'=>TRUE,
|
||
|
);
|
||
|
|
||
|
public function action_menu() {
|
||
|
// Redirect us to the admin menu, no user facilities here!
|
||
|
Request::instance()->redirect('/admin/module/menu');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Get the list of methods for a class
|
||
|
*/
|
||
|
protected function _methods($class) {
|
||
|
// Get a list of methods this module has
|
||
|
$ch = 'Controller_%s';
|
||
|
$methods = array();
|
||
|
|
||
|
// List of classes where all our methods are, including this one.
|
||
|
$classes = Kohana::config('config.method_directory');
|
||
|
array_unshift($classes,'');
|
||
|
|
||
|
foreach ($classes as $c) {
|
||
|
$cn = sprintf($ch,$c ? $c.'_'.$class : $class);
|
||
|
|
||
|
if (class_exists($cn)) {
|
||
|
$r = new ReflectionClass($cn);
|
||
|
|
||
|
foreach ($r->getMethods() as $method)
|
||
|
if (preg_match('/^Controller_(.*_)?'.$class.'$/i',$method->class) AND ! preg_match('/^_/',$method->name))
|
||
|
array_push($methods,str_replace('action_',($c ? $c.'_' : $c),$method->name));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return $methods;
|
||
|
}
|
||
|
}
|
||
|
?>
|