Application->recallObject( $this->getPrefixSpecial(), $this->Prefix.'_List',$params); $id_field = $this->Application->getUnitOption($this->Prefix,'IDField'); // /*$parser =& $this->Application->recallObject('TemplateParser'); // only useful in case in inside prinklist block we have another // tagprocessor who wants to findout out printlist prefix and special $parser->SetParam('prefix', $this->Prefix); $parser->SetParam('special', $this->Special);*/ $list->Query(); $o = ''; $list->GoFirst(); $block_params=$this->prepareTagParams($params); $block_params['name']=$params['block']; $block_params['pass_params']='true'; while (!$list->EOL()) { $this->Application->SetVar( $this->getPrefixSpecial().'_id', $list->GetDBField($id_field) ); $o.= $this->Application->ParseBlock($block_params, 1); $list->GoNext(); } return $o; } /** * Append prefix and special to tag * params (get them from tagname) like * they were really passed as params * * @param Array $tag_params * @return Array * @access protected */ function prepareTagParams($tag_params) { $ret=$tag_params; $ret['Prefix']=$this->Prefix; $ret['Special']=$this->Special; $ret['PrefixSpecial']=$this->getPrefixSpecial(); return $ret; } /** * Get's reuested field value * * @param Array $params * @return string * @access public */ function Field($params) { $field = $params['field']; $object =& $this->Application->recallObject($this->getPrefixSpecial(),$this->Prefix, $params); $value = $object->GetField($field); if (isset($params['nl2br'])) $value = nl2br($value); return $value; } /** * Print grid pagination using * block names specified * * @param Array $params * @return string * @access public */ function PrintPages($params) { $prefix_special=$this->getPrefixSpecial(); $object =& $this->Application->recallObject($prefix_special,$this->Prefix.'_List',$params); $total = $object->GetTotalPages(); $o = ''; $this->Application->SetVar($prefix_special.'_event',''); $this->Application->SetVar($prefix_special.'_id',''); $current_page = $this->Application->RecallVar($prefix_special.'_page'); $block_params=$this->prepareTagParams($params); for ($i=1; $i<=$total; $i++) { $this->Application->SetVar($prefix_special.'_page',$i); $block = $params[ (($i==$current_page)?'active':'inactive').'_block' ]; $block_params['name']=$block; $block_params['page']=$i; $o .= $this->Application->ParseBlock($block_params, 1); } return $o; } /*function MapField($params) { $object =& $this->Application->recallObject($this->Prefix.'.'.$this->Special); $value = $object->GetField($params['field']); $this->Application->SetVar($params['var_name'],$value); }*/ /** * Returns input field name to * be placed on form (for correct * event processing) * * @param Array $params * @return string * @access public */ function InputName($params) { $prefix_special=$this->getPrefixSpecial(); $item = $this->Application->recallObject($prefix_special); return $prefix_special.'['.$item->GetID().']['.$params['field'].']'; } } ?>