From: avl Date: Wed, 27 Jan 2010 14:19:39 +0000 (+0200) Subject: 12 X-Git-Tag: 0.5~363 X-Git-Url: https://git.andy128k.dev/?a=commitdiff_plain;h=2bed69d6b9d0581f77035837e14d0a9ea0c08572;p=ipf.git 12 --- diff --git a/ipf/admin/model.php b/ipf/admin/model.php index 46c6684..a030972 100644 --- a/ipf/admin/model.php +++ b/ipf/admin/model.php @@ -77,27 +77,33 @@ class ListTreeFilter extends BaseListFilter{ parent::__construct($title, $choices); } + protected function _collectTreeRecursive(&$choices,$level=0,$parent_id=null,$valname=''){ foreach($this->fields[$level]['objects'] as $o){ - if ($level>0){ - $foreign = $this->fields[$level]['parent_key']; - if ($parent_id!=$o->$foreign) - continue; - } - $name = str_repeat("-", $level).$o->name; - $id = $valname.$o->id; - $choices[] = array( - 'id'=>$id, - 'param'=>'filter_'.$this->name.'='.$id, - 'name'=>$name, - 'selected'=>false, - ); - if ($level<(count($this->fields)-1)){ - $this->_collectTreeRecursive(&$choices,$level+1,$o->id,$valname.$o->id.'.'); - } + if ($level>0){ + $foreign = $this->fields[$level]['parent_key']; + if ($parent_id!=$o->$foreign) + continue; + } + $this->_addObject($o, &$choices, $level, $parent_id, $valname); + if ($level<(count($this->fields)-1)){ + $this->_collectTreeRecursive(&$choices,$level+1,$o->id,$valname.$o->id.'.'); + } } } + protected function _addObject($o, &$choices, $level, $parent_id, $valname) + { + $name = str_repeat("-", $level).$o->name; + $id = $valname.$o->id; + + $choices[] = array( + 'id'=>$id, + 'param'=>'filter_'.$this->name.'='.$id, + 'name'=>$name, + 'selected'=>false, + ); + } function SetSelect($request){ $sel_id = @$request->GET['filter_'.$this->name]; foreach($this->choices as &$ch){