From c8384cc8a4624b6ad3dd182935547ca81bb327bd Mon Sep 17 00:00:00 2001 From: Denis Flaven Date: Fri, 26 Nov 2010 13:25:00 +0000 Subject: [PATCH] Handle filtering of non-existent attributes in hierarchical ZLists. SVN:trunk[979] --- core/metamodel.class.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/core/metamodel.class.php b/core/metamodel.class.php index a91f4605e..687774695 100644 --- a/core/metamodel.class.php +++ b/core/metamodel.class.php @@ -1350,14 +1350,23 @@ abstract class MetaModel // Discard attributes that do not make sense // (missing classes in the current module combination, resulting in irrelevant ext key or link set) // - foreach($aItems as $iFoo => $sAttCode) + self::Init_CheckZListItems($aItems, $sTargetClass); + self::$m_aListData[$sTargetClass][$sListCode] = $aItems; + } + + protected static function Init_CheckZListItems(&$aItems, $sTargetClass) + { + foreach($aItems as $iFoo => $attCode) { - if (isset(self::$m_aIgnoredAttributes[$sTargetClass][$sAttCode])) + if (is_array($attCode)) + { + self::Init_CheckZListItems($attCode, $sTargetClass); + } + else if (isset(self::$m_aIgnoredAttributes[$sTargetClass][$attCode])) { unset($aItems[$iFoo]); } } - self::$m_aListData[$sTargetClass][$sListCode] = $aItems; } public static function Init_DefineState($sStateCode, $aStateDef)