getObject($params); $parent_item =& $this->Application->recallObject($params['SourcePrefix']); $field = $this->SelectParam($params, 'name,field'); return $parent_item->GetField('cust_'.$object->GetField($field)); } function CustomInputName($params) { $object =& $this->getObject($params); $source_prefix = $this->Application->Parser->GetParam('SourcePrefix'); $source_tp =& $this->Application->recallTagProcessor($source_prefix); $params['name'] = 'cust_'.$object->GetDBField('FieldName'); return $source_tp->InputName($params); } /** * Prints list content using block specified * * @param Array $params * @return string * @access public */ function PrintList($params) { $list =& $this->GetList($params); $id_field = $this->Application->getUnitOption($this->Prefix,'IDField'); $list->Query(); $o = ''; $list->GoFirst(); $block_params=$this->prepareTagParams($params); $block_params['name'] = $this->SelectParam($params, 'render_as,block'); $block_params['pass_params'] = 'true'; $prev_heading = ''; $source_prefix = getArrayValue($params, 'SourcePrefix'); if ($source_prefix) { $source_object =& $this->Application->recallObject($source_prefix); } if ($this->Special == 'general') { $this->sortCustomFields($list->Records); } while (!$list->EOL()) { $this->Application->SetVar( $this->getPrefixSpecial().'_id', $list->GetDBField($id_field) ); // for edit/delete links using GET if ($source_prefix) { $list->SetDBField($params['value_field'], $source_object->GetDBField('cust_'.$list->GetDBField('FieldName'))); $block_params['show_heading'] = ($prev_heading != $list->GetDBField('Heading') ) ? 1 : 0; } $o.= $this->Application->ParseBlock($block_params, 1); $prev_heading = $list->GetDBField('Heading'); $list->GoNext(); } $this->Application->SetVar( $this->getPrefixSpecial().'_id', ''); return $o; } function sortCustomFields(&$records) { $sorted = Array(); $i = 0; $record_count = count($records); while ($i < $record_count) { $sorted[ $records[$i]['Heading'] ][] = $records[$i]; $i++; } $records = Array(); foreach ($sorted as $heading => $heading_records) { $records = array_merge_recursive($records, $heading_records); } } } ?>