request->param('id'); $method = $this->request->param('sid'); $mo = ORM::factory('Module',$id); $mmo = ORM::factory('Module_Method'); if (! $mo->loaded() OR ! in_array($method,$this->_methods($mo->name))) throw new Kohana_Exception('Method (:method) does not exist in :class',array(':method'=>$method,':class'=>$mo->name)); $mmo->name = $method; $mmo->module_id = $mo->id; $mmo->values($_POST); $output = ''; if ($_POST AND $mmo->values($_POST)->check()) { $mmo->save(); if ($mmo->saved()) { SystemMessage::add(array( 'title'=>_('Method Added'), 'type'=>'info', 'body'=>sprintf(_('Method %s defined to database'),$mmo->name), )); HTTP::redirect(sprintf('admin/module/edit/%s',$mo->id)); } else { SystemMessage::add(array( 'title'=>_('Method Not Saved'), 'type'=>'error', 'body'=>sprintf(_('Unable to define Method %s to database?'),$mmo->name), )); } } $output .= View::factory('module/admin/method_add') ->set('module',$mo) ->set('method',$mmo); Block::add(array( 'title'=>sprintf(_('Add Method (%s) to Database for (%s)'),strtoupper($mmo->name),strtoupper($mo->name)), 'body'=>$output, )); } /** * Edit a Module Configuration * * @param int $mid Module ID */ public function action_edit() { $mid = $this->request->param('id'); $mmo = ORM::factory('Module_Method',$mid); if (! $mmo->loaded()) { SystemMessage::add(array( 'title'=>_('Invalid Method ID'), 'type'=>'error', 'body'=>sprintf(_('Method with ID %s doesnt appear to exist?'),$mid), )); return; } $output = ''; // The groups that can run this method. $groups = ORM::factory('Group'); if ($_POST) { foreach ($groups->find_all() as $go) { // If the group was defined and no longer if ($mmo->has('group',$go) AND (! isset($_POST['groups']) OR ! in_array($go->id,$_POST['groups']))) { $gm = ORM::factory('Group_Method',array('method_id'=>$mmo->id,'group_id'=>$go->id)); if (! $gm->delete()) SystemMessage::add(array( 'title'=>_('Unable to DELETE Group Method'), 'type'=>'error', 'body'=>sprintf(_('Unable to delete Group Method for method %s and group %s'),$mmo->name,$go->name), )); // If the group was not defined and now is } elseif (! $mmo->has('group',$go) AND isset($_POST['groups']) AND in_array($go->id,$_POST['groups'])) { $gm = ORM::factory('Group_Method') ->values(array( 'method_id'=>$mmo->id, 'group_id'=>$go->id, )); if (! $gm->check() OR ! $gm->save()) SystemMessage::add(array( 'title'=>_('Unable to SAVE Group Method'), 'type'=>'error', 'body'=>sprintf(_('Unable to save Group Method for method %s and group %s'),$mmo->name,$go->name), )); } } } $output .= Form::open(); $output .= View::factory('module/admin/method_detail_head'); foreach ($groups->find_all() as $go) { $output .= View::factory('module/admin/method_detail_body') ->set('group',$go) ->set('defined',$mmo->has('group',$go)); } $output .= View::factory('module/admin/method_detail_foot'); $output .= '