diff --git a/application/cmdbabstract.class.inc.php b/application/cmdbabstract.class.inc.php
index 98220e448..268e2adc2 100644
--- a/application/cmdbabstract.class.inc.php
+++ b/application/cmdbabstract.class.inc.php
@@ -303,13 +303,33 @@ abstract class cmdbAbstractObject extends CMDBObject
{
$oPage->add('
');
//$aDetails[$sTab][$sColIndex] = array();
+ $sLabel = '';
+ $sPreviousLabel = '';
+ $aDetails[$sTab][$sColIndex] = array();
foreach($aFieldsets as $sFieldsetName => $aFields)
{
- $aDetails[$sTab][$sColIndex] = array();
- if (!empty($sFieldsetName))
+ if (!empty($sFieldsetName) && ($sFieldsetName[0] != '_'))
{
- $oPage->add('');
- }
+ }
+ if (!empty($sPreviousLabel))
+ {
+ $oPage->add('');
+ $oPage->add('');
+ }
+ $oPage->Details($aDetails[$sTab][$sColIndex]);
+ if (!empty($sPreviousLabel))
+ {
+ $oPage->add('');
}
$oPage->add(' | ');
}
@@ -1244,15 +1269,35 @@ EOF
$oPage->add('');
foreach($aCols as $sColIndex => $aFieldsets)
{
+ $sLabel = '';
+ $sPreviousLabel = '';
+ $aDetails[$sTab][$sColIndex] = array();
$oPage->add('| ');
//$aDetails[$sTab][$sColIndex] = array();
foreach($aFieldsets as $sFieldsetName => $aFields)
{
- $aDetails[$sTab][$sColIndex] = array();
- if (!empty($sFieldsetName))
+ if (!empty($sFieldsetName) && ($sFieldsetName[0]!='_'))
{
- $oPage->add('');
- $oPage->add('');
+ $sLabel = $sFieldsetName;
+ }
+ else
+ {
+ $sLabel = '';
+ }
+ if ($sLabel != $sPreviousLabel)
+ {
+ if (!empty($sPreviousLabel))
+ {
+ $oPage->add('');
+ $oPage->add('');
+ }
+ $oPage->Details($aDetails[$sTab][$sColIndex]);
+ if (!empty($sPreviousLabel))
+ {
+ $oPage->add('');
+ }
+ $aDetails[$sTab][$sColIndex] = array();
+ $sPreviousLabel = $sLabel;
}
foreach($aFields as $sAttCode)
{
@@ -1308,11 +1353,16 @@ EOF
$aDetails[$sTab][$sColIndex][] = $aVal;
}
}
- $oPage->Details($aDetails[$sTab][$sColIndex]);
- if (!empty($sFieldsetName))
- {
- $oPage->add('');
- }
+ }
+ if (!empty($sPreviousLabel))
+ {
+ $oPage->add('');
+ $oPage->add('');
+ }
+ $oPage->Details($aDetails[$sTab][$sColIndex]);
+ if (!empty($sPreviousLabel))
+ {
+ $oPage->add('');
}
$oPage->add(' | ');
}
@@ -1435,6 +1485,7 @@ EOF
//echo "ZList: ";
//print_r($aList);
//echo "
\n";
+ $index = 0;
foreach($aList as $sKey => $value)
{
if (is_array($value))
@@ -1449,7 +1500,7 @@ EOF
//echo "Found a tab: $sName ($sKey)
\n";
if(!isset($aDetails[$sName]))
{
- $aDetails[$sName] = array('col1' => array('' => array()));
+ $aDetails[$sName] = array('col1' => array());
}
$aDetails = self::ProcessZlist($value, $aDetails, $sName, 'col1', '');
break;
@@ -1468,7 +1519,7 @@ EOF
//echo "Found a column: $sName ($sKey)
\n";
if(!isset($aDetails[$sCurrentTab][$sName]))
{
- $aDetails[$sCurrentTab][$sName] = array('' => array());
+ $aDetails[$sCurrentTab][$sName] = array();
}
$aDetails = self::ProcessZlist($value, $aDetails, $sCurrentTab, $sName, '');
break;
@@ -1478,8 +1529,16 @@ EOF
else
{
//echo "Scalar value: $value, in [$sCurrentTab][$sCurrentCol][$sCurrentSet][]
\n";
- $aDetails[$sCurrentTab][$sCurrentCol][$sCurrentSet][] = $value;
+ if (empty($sCurrentSet))
+ {
+ $aDetails[$sCurrentTab][$sCurrentCol]['_'.$index][] = $value;
+ }
+ else
+ {
+ $aDetails[$sCurrentTab][$sCurrentCol][$sCurrentSet][] = $value;
+ }
}
+ $index++;
}
return $aDetails;
}