102 lines
2.5 KiB
PHP
102 lines
2.5 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_Admin_Module extends Controller_Module {
|
|
/**
|
|
* Our menu method
|
|
*
|
|
* We need this method, otherwise we have redirect from our parent
|
|
*/
|
|
public function action_menu() {
|
|
$this->template->content = _('See menu on tree');
|
|
}
|
|
|
|
/**
|
|
* List our installed modules
|
|
*/
|
|
public function action_list() {
|
|
$modules = ORM::factory('module');
|
|
|
|
$output = '';
|
|
|
|
$output .= View::factory('module/admin/list_header');
|
|
foreach ($modules->find_all() as $mo) {
|
|
$output .= View::factory('module/admin/list_body')
|
|
->set('module',$mo);
|
|
}
|
|
$output .= View::factory('module/admin/list_footer');
|
|
|
|
Block::add(array(
|
|
'title'=>_('Currently installed modules'),
|
|
'body'=>$output,
|
|
));
|
|
|
|
$this->template->content = Block::factory();
|
|
}
|
|
|
|
/**
|
|
* Edit a Module Configuration
|
|
*
|
|
* @param int $mid Module ID
|
|
*/
|
|
public function action_edit($mid) {
|
|
$mo = ORM::factory('module',$mid);
|
|
|
|
if (! $mo->loaded()) {
|
|
SystemMessage::add(array(
|
|
'title'=>_('Invalid Module ID'),
|
|
'type'=>'error',
|
|
'body'=>sprintf(_('Module with ID %s doesnt appear to exist?'),$mid),
|
|
));
|
|
|
|
return;
|
|
}
|
|
|
|
$output = '';
|
|
$methods = $this->_methods($mo->name);
|
|
|
|
// Show methods defined in the DB already.
|
|
$output .= View::factory('module/admin/method_list_header');
|
|
foreach ($mo->module_method->find_all() as $meo) {
|
|
if (($method = array_search($meo->name,$methods)) !== false)
|
|
unset($methods[$method]);
|
|
|
|
$output .= View::factory('module/admin/method_list_body')
|
|
->set('method',$meo)
|
|
->set('module',$mo)
|
|
->set('defined',$method !== false);
|
|
}
|
|
|
|
$output .= View::factory('module/admin/method_list_spacer');
|
|
|
|
// Show new methods NOT defined in the DB already.
|
|
foreach ($methods as $method) {
|
|
$meo = ORM::factory('module_method')
|
|
->values(array('name'=>$method,'notes'=>_('Not defined in DB')));
|
|
|
|
$output .= View::factory('module/admin/method_list_body')
|
|
->set('method',$meo)
|
|
->set('module',$mo)
|
|
->set('defined',$method === false);
|
|
}
|
|
$output .= View::factory('module/admin/method_list_footer');
|
|
|
|
Block::add(array(
|
|
'title'=>sprintf(_('%s Methods'),strtoupper($mo->name)),
|
|
'body'=>$output,
|
|
));
|
|
|
|
$this->template->content = Block::factory();
|
|
}
|
|
}
|
|
?>
|