* @copyright 2009 Deon George * @link http://osb.leenooks.net * * @link http://www.agileco.com/ * @copyright 2004-2008 Agileco, LLC. * @license http://www.agileco.com/agilebill/license1-4.txt * @author Tony Landis * @package AgileBill * @subpackage Module:Method */ /** * The main AgileBill Module Method Class * * @package AgileBill * @subpackage Module:Method */ class module_method extends OSB_module { /** * View methods */ public function view_methods($VAR) { $type = 'search'; $this->method[$type] = explode(',',$this->method[$type]); $db = new CORE_database; $this->this_search_show($VAR,$this,$type); } ############################## ## VIEW METHODS p.2 ##### ############################## function this_search_show($VAR,$construct,$type) { global $VAR; # Get the list of parents for this group $this->group_parent_list($VAR['module_method_group_id']); # Generate the full query $db = &DB(); $result = $db->Execute(sqlSelect($db,'module_method','*',array('module_id'=>$VAR['module_method_module_id']))); # Put the results into a smarty accessable array $i = 0; $class_name = true; while (! $result->EOF) { $smart[$i] = $result->fields; $method_id = $smart[$i]['id']; # Get the auth status for this method & group $resulta = $db->Execute(sqlSelect($db,'group_method','id',array('method_id'=>$smart[$i]['id'],'group_id'=>$VAR['module_method_group_id']))); # Authorized by current group if ($resulta->RecordCount() >= 1) { $smart[$i]['checked'] = '1'; } else { # Get the parent group id(s) for this group $match = false; for ($ii=0; $ii < count($this->group); $ii++) { if ($match == false && $this->group[$ii] != $VAR['module_method_group_id']) { $resultb = $db->Execute(sqlSelect($db,'group_method','id',array('method_id'=>$method_id,'group_id'=>$this->group[$ii]))); if ($resultb->RecordCount() >= 1) $match = true; } } # authorized by parent if ($match) $smart[$i]['checked'] = '2'; else $smart[$i]['checked'] = '3'; } if ($class_name) { $smart[$i]['_C'] = 'row2'; $class_name = false; } else { $smart[$i]['_C'] = 'row1'; $class_name = true; } $result->MoveNext(); $i++; } # get any linked fields if ($i > 0) { $db_join = new CORE_database; $this->result = $db_join->join_fields($smart, $this->linked); } else { $this->result = $smart; } # get the result count: $results = $result->RecordCount(); # define the DB vars as a Smarty accessible block global $smarty; # define the results $smarty->assign($construct->table,$this->result); $smarty->assign('page',$VAR['page']); $smarty->assign('order',1111); $smarty->assign('sort',1111); $smarty->assign('limit',1111); $smarty->assign('search_id',1111); $smarty->assign('results',$results); # get the total pages for this search: $this->pages = 1; if ($search->results % $search->limit) $this->pages++; # total pages $smarty->assign('pages',$this->pages); # current page $smarty->assign('page',$current_page); $page_arr = ''; for ($i=0; $i <= $this->pages; $i++) if ($this->page != $i) $page_arr[] = $i; # page array for menu $smarty->assign('page_arr',$page_arr); } /** * Get any inherited groups (parent) for a specified group * @return void * @since Version 1.0 * @param int Group Id */ function group_parent_list($group) { # check if this group is a child with an active parent $db = &DB(); $result = $db->Execute(sqlSelect($db,'group','id,parent_id',array('id'=>$group))); # error handling if ($result === false) { global $C_debug; $C_debug->error(__FILE__,__METHOD__,$db->ErrorMsg()); } # loop through the results while (! $result->EOF) { # add this group to the list $this->group[] = $result->fields['id']; # get inherited groups and check that the associated # group is active before adding to the list of authorized groups. if ($result->fields['parent_id'] != 0) $this->group_parent_list($result->fields['parent_id']); # move to next record $result->MoveNext(); } } /** * Mass add methods to a specific group * @return void * @since Version 1.0 * @param int Group Id */ function update_relations() { global $VAR; $db = &DB(); if (isset($VAR['id']) && $VAR['id'] != '') $arr = explode(',',$VAR['id']); else return; for ($i=0; $iExecute(sqlDelete($db,'group_method',array('module_id'=>$VAR['module_method_module_id'],'group_id'=>$VAR['module_method_group_id']))); if ($arr[$i] == 0) return; $db->Execute(sqlInsert($db,'group_method',array('method_id'=>$arr[$i],'module_id'=>$VAR['module_method_module_id'],'group_id'=>$VAR['module_method_group_id']))); } } } ?>