Skip to content
Snippets Groups Projects
Commit 8c593bb9 authored by Cyril Vazquez's avatar Cyril Vazquez
Browse files

Add configuration of depth and length

parent 22cc6f82
No related branches found
No related tags found
No related merge requests found
......@@ -115,10 +115,12 @@ class message
}
}
$maxDepth = 3;
$maxCount = 10;
$conf = \laabs::Configuration('presentation.maarchRM');
$maxDepth = isset($conf['seda2.displayMaxDepth'])? $conf['seda2.displayMaxDepth'] :10;
$maxCount = isset($conf['seda2.displayMaxLength'])? $conf['seda2.displayMaxLength'] :1000;
$this->simplifyTree($message->object->dataObjectPackage->descriptiveMetadata);
$this->simplifyTree($message->object->dataObjectPackage->descriptiveMetadata, 1, $maxDepth, $maxCount);
}
}
......@@ -133,31 +135,32 @@ class message
return $this->view->saveHtml();
}
protected function simplifyTree($archiveUnitContainer, $depth=1)
protected function simplifyTree($archiveUnitContainer, $depth=1, $maxDepth, $maxCount)
{
// No child node
if (!is_array($archiveUnitContainer->archiveUnit)) {
return;
}
// Keep only 10 child nodes
$childNodeCount = count($archiveUnitContainer->archiveUnit);
if ($childNodeCount > 10) {
$archiveUnitContainer->archiveUnit = array_slice($archiveUnitContainer->archiveUnit, 0, 10);
$archiveUnitContainer->siblingArchiveUnits = $childNodeCount - 10;
}
// Keep only 4 levels
if ($depth > 3) {
// Keep only allowed depth levels
if ($depth > $maxDepth) {
$archiveUnitContainer->archiveUnit = null;
$archiveUnitContainer->otherArchiveUnits = $childNodeCount;
return;
}
// Keep only allowed child nodes length
if ($childNodeCount > $maxCount) {
$archiveUnitContainer->archiveUnit = array_slice($archiveUnitContainer->archiveUnit, 0, $maxCount);
$archiveUnitContainer->siblingArchiveUnits = $childNodeCount - $maxCount;
}
// recursively apply procedure
$depth++;
foreach ($archiveUnitContainer->archiveUnit as $key => $archiveUnit) {
$this->simplifyTree($archiveUnit, $depth);
$this->simplifyTree($archiveUnit, $depth, $maxDepth, $maxCount);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment