protected function _partConfig(Db_Query $query, Db_Query_Part $part) { $cfg = array(); $fields = $part->getFields(); $objectConfig = Db_Object_Config::getInstance($part->getObject()); $mainPanel = new stdClass(); $mainPanel->xtype = 'panel'; $mainPanel->border = false; ksort($fields); foreach ($fields as $name => $config) { $obj = new stdClass(); $obj->xtype = 'reportfield'; $obj->valueSelected = $config['select']; $obj->valueTitle = $config['title']; $obj->valueAlias = $config['alias']; $obj->valueField = $name; $obj->valueIsLink = false; $obj->valueSelectSub = $config['selectSub']; $obj->valueObject = $part->getObject(); $obj->valuePartId = $part->getId(); $obj->valueSubObject = ''; $obj->valueSubObjectTtile = ''; if ($config['isLink'] && !$objectConfig->isDictionaryLink($name)) { $obj->valueIsLink = true; $child = $query->findChild($part->getId(), $name); if ($child !== false) { $linked = $child->getObject(); } else { $linked = $objectConfig->getLinkedObject($name); } if ($linked) { $obj->valueSubObject = $linked; $obj->valueSubObjectTtile = Db_Object_Config::getInstance($linked)->get('title'); } } $cfg[] = $obj; } $mainPanel->items = $cfg; return array('items' => $mainPanel, 'objectcfg' => array('join' => $part->joinType, 'title' => $objectConfig->get('title'), 'object' => $part->getObject(), 'childField' => $part->getChildField())); }