diff --git a/core/attributedef.class.inc.php b/core/attributedef.class.inc.php index 3e27014a0..f409adfe2 100644 --- a/core/attributedef.class.inc.php +++ b/core/attributedef.class.inc.php @@ -3269,10 +3269,13 @@ class AttributeClassState extends AttributeString $sClass = $oHostObj->Get($sTargetClass); $aAllowedStates = array(); - $aValues = MetaModel::EnumStates($sClass); - foreach(array_keys($aValues) as $sState) + foreach (MetaModel::EnumChildClasses($sClass, ENUM_CHILD_CLASSES_ALL) as $sChildClass) { - $aAllowedStates[$sState] = $sState.' ('.MetaModel::GetStateLabel($sClass, $sState).')'; + $aValues = MetaModel::EnumStates($sChildClass); + foreach (array_keys($aValues) as $sState) + { + $aAllowedStates[$sState] = $sState.' ('.MetaModel::GetStateLabel($sChildClass, $sState).')'; + } } return $aAllowedStates; } @@ -3291,9 +3294,15 @@ class AttributeClassState extends AttributeString { $sTargetClass = $this->Get('class_field'); $sClass = $oHostObject->Get($sTargetClass); - - $sHTML = ''.$sValue.''; - return $sHTML; + foreach (MetaModel::EnumChildClasses($sClass, ENUM_CHILD_CLASSES_ALL) as $sChildClass) + { + $aValues = MetaModel::EnumStates($sChildClass); + if (in_array($sValue, $aValues)) + { + $sHTML = ''.$sValue.''; + return $sHTML; + } + } } return $sValue;