diff --git a/pages/schema.php b/pages/schema.php
index f454b91b6..94af2cf00 100644
--- a/pages/schema.php
+++ b/pages/schema.php
@@ -58,7 +58,18 @@ function DisplaySubclasses($oPage, $sClass)
if (count($aChildClasses) != 0)
{
$oPage->add("
\n");
+ $aOrderedClasses = array();
foreach($aChildClasses as $sClassName)
+ {
+ // Skip indirect childs, they will be handled somewhere else
+ 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)
@@ -272,7 +283,22 @@ function DisplayClassesList($oPage)
$oPage->add("".Dict::S('UI:Schema:Title')."
\n");
$oPage->add("\n");
+ // Get all the "root" classes for display
+ $aRootClasses = array();
foreach(MetaModel::GetClasses() as $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))
{