浏览代码

Class icon defined in the data model, use either the static method GetClassIcon, or GetIcon (this one could be overloaded for an icon depending on the object state)

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@462 a333f486-631f-4898-b8df-5754b55c2be0
romainq 15 年之前
父节点
当前提交
df84916019
共有 2 个文件被更改,包括 24 次插入0 次删除
  1. 5 0
      core/dbobject.class.php
  2. 19 0
      core/metamodel.class.php

+ 5 - 0
core/dbobject.class.php

@@ -492,6 +492,11 @@ abstract class DBObject
 		$this->m_iKey = $iNewKey;
 	}
 
+	public function GetIcon()
+	{
+		return MetaModel::GetClassIcon(get_class($this));
+	}
+
 	public function GetName()
 	{
 		$sNameAttCode = MetaModel::GetNameAttributeCode(get_class($this));

+ 19 - 0
core/metamodel.class.php

@@ -280,6 +280,25 @@ abstract class MetaModel
 			return self::GetClassDescription($sClass);
 		}
 	}
+	final static public function GetClassIcon($sClass)
+	{
+		self::_check_subclass($sClass);
+
+		$sIcon = '';
+		if (array_key_exists('icon', self::$m_aClassParams[$sClass]))
+		{
+			$sIcon = self::$m_aClassParams[$sClass]['icon'];
+		}
+		if (strlen($sIcon) == 0)
+		{
+			$sParentClass = self::GetParentPersistentClass($sClass);
+			if (strlen($sParentClass) > 0)
+			{
+				return self::GetClassIcon($sParentClass);
+			}
+		}
+		return $sIcon;
+	}
 	final static public function IsAutoIncrementKey($sClass)
 	{
 		self::_check_subclass($sClass);