diff --git a/pages/schema.php b/pages/schema.php
index 8713cae6a..c1471a928 100644
--- a/pages/schema.php
+++ b/pages/schema.php
@@ -269,34 +269,21 @@ function DisplayClassesList($oPage)
$oPage->add("
".Dict::S('UI:Schema:Title')."
\n");
$oPage->add("\n");
- foreach(MetaModel::EnumCategories() as $sCategory)
+ foreach(MetaModel::GetClasses() as $sClassName)
{
- if (empty($sCategory)) continue; // means 'all' -> skip
-
- $sClosed = ($sCategory == 'bizmodel') ? '' : ' class="closed"';
- $oPage->add("- ".Dict::Format('UI:Schema:CategoryMenuItem', $sCategory)."\n");
-
- $oPage->add("
\n");
- foreach(MetaModel::GetClasses($sCategory) as $sClassName)
+ if (MetaModel::IsRootClass($sClassName))
{
- if (MetaModel::IsStandaloneClass($sClassName))
- {
- $oPage->add("- ".MakeClassHLink($sClassName)."
\n");
- }
- else if (MetaModel::IsRootClass($sClassName))
- {
- $oPage->add("- ".MakeClassHLink($sClassName)."\n");
- DisplaySubclasses($oPage, $sClassName);
- $oPage->add("
\n");
- }
+ $oPage->add("- ".MakeClassHLink($sClassName)."\n");
+ DisplaySubclasses($oPage, $sClassName);
+ $oPage->add("
\n");
+ }
+ elseif (MetaModel::IsStandaloneClass($sClassName))
+ {
+ $oPage->add("- ".MakeClassHLink($sClassName)."
\n");
}
- $oPage->add("
\n");
-
- $oPage->add(" \n");
}
$oPage->add("
\n");
-
$oPage->add("".Dict::S('UI:Schema:Relationships')."
\n");
$oPage->add("\n");
@@ -320,7 +307,7 @@ function DisplayClassesList($oPage)
*/
function DisplayClassDetails($oPage, $sClass)
{
- $oPage->p("$sClass
\n".MetaModel::GetClassDescription($sClass)."
\n");
+ $oPage->add("$sClass - ".MetaModel::GetClassDescription($sClass)."
\n");
if (MetaModel::IsAbstract($sClass))
{
$oPage->p(Dict::S('UI:Schema:AbstractClass'));
@@ -329,32 +316,33 @@ function DisplayClassDetails($oPage, $sClass)
{
$oPage->p(Dict::S('UI:Schema:NonAbstractClass'));
}
- $oPage->p("".Dict::S('UI:Schema:ClassHierarchyTitle')."
");
- $oPage->p("[".Dict::S('UI:Schema:AllClasses')."]");
- // List the parent classes
- $sParent = MetaModel::GetParentPersistentClass($sClass);
- $aParents = array();
- $aParents[] = $sClass;
- while($sParent != "" && $sParent != 'cmdbAbstractObject')
+
+// $oPage->p("".Dict::S('UI:Schema:ClassHierarchyTitle')."
");
+
+ $aParentClasses = array();
+ foreach(MetaModel::EnumParentClasses($sClass) as $sParentClass)
{
- $aParents[] = $sParent;
- $sParent = MetaModel::GetParentPersistentClass($sParent);
+ $aParentClasses[] = MakeClassHLink($sParentClass);
}
- $iIndex = count($aParents);
- $sSpace ="";
- $oPage->add("");
- while ($iIndex > 0)
+ if (count($aParentClasses) > 0)
{
- $iIndex--;
- $oPage->add("- ".MakeClassHLink($aParents[$iIndex])."\n");
- $oPage->add("
\n");
+ $sParents = implode(' >> ', $aParentClasses)." >> $sClass";
}
- for($iIndex = 0; $iIndex < count($aParents); $iIndex++)
+ else
{
- $oPage->add("
\n \n");
+ $sParents = '';
+ }
+ $oPage->p("[".Dict::S('UI:Schema:AllClasses')."] $sParents");
+
+ if (MetaModel::HasChildrenClasses($sClass))
+ {
+ $oPage->add("");
+ $oPage->add("- ".$sClass."\n");
+ DisplaySubclasses($oPage, $sClass);
+ $oPage->add("
\n");
+ $oPage->add("
\n");
+ $oPage->add_ready_script('$("#ClassHierarchy").treeview();');
}
- $oPage->add("
\n");
- $oPage->add_ready_script('$("#ClassHierarchy").treeview();');
$oPage->p('');
$oPage->AddTabContainer('details');
$oPage->SetCurrentTabContainer('details');