فهرست منبع

Handle filtering of non-existent attributes in hierarchical ZLists.

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@979 a333f486-631f-4898-b8df-5754b55c2be0
dflaven 14 سال پیش
والد
کامیت
f021acd1c9
1فایلهای تغییر یافته به همراه12 افزوده شده و 3 حذف شده
  1. 12 3
      core/metamodel.class.php

+ 12 - 3
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)