瀏覽代碼

- Sort the class hierarchy for easier reference

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@855 a333f486-631f-4898-b8df-5754b55c2be0
dflaven 14 年之前
父節點
當前提交
9654ad5002
共有 1 個文件被更改,包括 26 次插入0 次删除
  1. 26 0
      pages/schema.php

+ 26 - 0
pages/schema.php

@@ -58,11 +58,22 @@ function DisplaySubclasses($oPage, $sClass)
 	if (count($aChildClasses) != 0)
 	if (count($aChildClasses) != 0)
 	{
 	{
 		$oPage->add("<ul>\n");
 		$oPage->add("<ul>\n");
+		$aOrderedClasses = array();
 		foreach($aChildClasses as $sClassName)
 		foreach($aChildClasses as $sClassName)
 		{
 		{
 			// Skip indirect childs, they will be handled somewhere else
 			// Skip indirect childs, they will be handled somewhere else
 			if (MetaModel::GetParentPersistentClass($sClassName) == $sClass)
 			if (MetaModel::GetParentPersistentClass($sClassName) == $sClass)
 			{
 			{
+					$aOrderedClasses[$sClassName] = MetaModel::GetName($sClassName);
+			}
+		}
+		// Sort on the display name
+		asort($aOrderedClasses);
+		foreach($aOrderedClasses as $sClassName => $sDisplayName)
+		{
+			// Skip indirect childs, they will be handled somewhere else
+			if (MetaModel::GetParentPersistentClass($sClassName) == $sClass)
+			{
 					$oPage->add("<li>".MakeClassHLink($sClassName)."\n");
 					$oPage->add("<li>".MakeClassHLink($sClassName)."\n");
 					DisplaySubclasses($oPage, $sClassName);
 					DisplaySubclasses($oPage, $sClassName);
 					$oPage->add("</li>\n");
 					$oPage->add("</li>\n");
@@ -272,10 +283,25 @@ function DisplayClassesList($oPage)
 	$oPage->add("<h1>".Dict::S('UI:Schema:Title')."</h1>\n");
 	$oPage->add("<h1>".Dict::S('UI:Schema:Title')."</h1>\n");
 
 
 	$oPage->add("<ul id=\"ClassesList\" class=\"treeview fileview\">\n");
 	$oPage->add("<ul id=\"ClassesList\" class=\"treeview fileview\">\n");
+	// Get all the "root" classes for display
+	$aRootClasses = array();
 	foreach(MetaModel::GetClasses() as $sClassName)
 	foreach(MetaModel::GetClasses() as $sClassName)
 	{
 	{
 		if (MetaModel::IsRootClass($sClassName))
 		if (MetaModel::IsRootClass($sClassName))
 		{
 		{
+			$aRootClasses[$sClassName] = MetaModel::GetName($sClassName);
+		}
+		elseif (MetaModel::IsStandaloneClass($sClassName))
+		{
+			$aRootClasses[$sClassName] = MetaModel::GetName($sClassName);
+		}
+	}
+	// Sort them alphabetically on their display name
+	asort($aRootClasses);
+	foreach($aRootClasses as $sClassName => $sDisplayName)
+	{
+		if (MetaModel::IsRootClass($sClassName))
+		{
 			$oPage->add("<li class=\"closed\">".MakeClassHLink($sClassName)."\n");
 			$oPage->add("<li class=\"closed\">".MakeClassHLink($sClassName)."\n");
 			DisplaySubclasses($oPage, $sClassName);
 			DisplaySubclasses($oPage, $sClassName);
 			$oPage->add("</li>\n");
 			$oPage->add("</li>\n");