array('through'=>'account_group'), 'module_method'=>array('through'=>'group_method','far_key'=>'method_id'), ); protected $_sorting = array( 'name'=>'ASC', ); // Validation rules protected $_rules = array( 'name' => array( 'not_empty' => NULL, 'min_length' => array(4), 'max_length' => array(32), ), 'description' => array( 'max_length' => array(255), ), ); protected $_display_filters = array( 'status'=>array( array('StaticList_YesNo::get',array(':value')), ), ); /** * This function will, given a group, list all of the children that * are also related to this group, in the group heirarchy. */ public function list_childgrps($incParent=FALSE) { $result = array(); if (! $this->loaded()) return $result; foreach (ORM::factory('Group')->where_active()->and_where('parent_id','=',$this)->find_all() as $go) { array_push($result,$go); $result = array_merge($result,$go->list_childgrps()); } if ($incParent) array_push($result,$this); return $result; } /** * This function will, given a group, list all of the parent that * are also related to this group, in the group heirarchy. */ public function list_parentgrps($incParent=FALSE) { $result = array(); if (! $this->loaded()) return $result; foreach (ORM::factory('Group')->where_active()->and_where('id','=',$this->parent_id)->find_all() as $go) { array_push($result,$go); $result = array_merge($result,$go->list_parentgrps()); } if ($incParent) array_push($result,$this); return $result; } } ?>