public function GetFilterValue($uid, $refresh = FALSE) { $filterData = $this->GetFilterInfo($uid); if (!is_array($filterData)) { return NULL; } if (isset($filterData['value'])) { return $filterData['value']; } // for union modules, we cannot get a value from currentmodule because it is itself, part of the query if ($filterData['it'] === itNONE && utopia::GetCurrentModule() !== get_class($this) && (!isset($this->UNION_MODULE) || $this->UNION_MODULE !== TRUE)) { $parents = utopia::GetParents(get_class($this)); foreach ($parents as $parent => $childLinks) { if ($parent == '/') { $parent = utopia::GetCurrentModule(); } if (!$parent || !class_exists($parent)) { continue; } $parentObj = utopia::GetInstance($parent); foreach ($childLinks as $info) { if (isset($info['fieldLinks'])) { foreach ($info['fieldLinks'] as $link) { if ($link['toField'] == $filterData['fieldName']) { $row = $parentObj->GetCurrentRecord($refresh); if (!$row && !$refresh) { $row = $parentObj->GetCurrentRecord(true); } if (isset($row[$link['fromField']])) { return $row[$link['fromField']]; } $fltrLookup =& $parentObj->FindFilter($link['fromField'], ctEQ); return $parentObj->GetFilterValue($fltrLookup['uid']); } } } } } } $filters = GetFilterArray(); if (isset($filters[$uid])) { return $filters[$uid]; } return $filterData['default']; }