protected function enhanceLoggingData(&$data, &$fullEntry = null)
{
if (!empty($data['objectClass'])) {
$class = "\\" . ltrim($data['objectClass'], "\\");
if (!empty($data['objectId']) && is_subclass_of($class, "\\Pimcore\\Model\\Element\\ElementInterface")) {
$obj = $class::getById($data['objectId']);
if (is_null($obj)) {
$data['objectPath'] = '';
} else {
$data['objectPath'] = $obj->getRealFullPath();
}
//check for classmapping
if (stristr($class, "\\Pimcore\\Model") === false) {
$niceClassName = "\\" . ltrim(get_parent_class($class), "\\");
} else {
$niceClassName = $class;
}
$niceClassName = str_replace("\\Pimcore\\Model\\", "", $niceClassName);
$niceClassName = str_replace("_", "\\", $niceClassName);
$tmp = explode("\\", $niceClassName);
if (in_array($tmp[0], ['Object', 'Document', 'Asset'])) {
$data['objectClassBase'] = $tmp[0];
$data['objectClassSubType'] = $tmp[1];
}
}
}
foreach ($data as &$value) {
if (is_array($value)) {
$this->enhanceLoggingData($value, $data);
}
}
if ($data['children']) {
foreach ($data['children'] as $key => $entry) {
if (is_string($key)) {
//key must be integers
unset($data['children'][$key]);
}
}
$data['iconCls'] = 'pimcore_icon_folder';
$data['data'] = ['type' => 'simple', 'value' => 'Children (' . count($data['children']) . ')'];
} else {
//setting the icon class
if (!$data['iconCls']) {
if ($data['objectClassBase'] == 'Object') {
$fullEntry['iconCls'] = 'pimcore_icon_object';
} elseif ($data['objectClassBase'] == 'Asset') {
switch ($data['objectClassSubType']) {
case 'Image':
$fullEntry['iconCls'] = 'pimcore_icon_image';
break;
case 'Video':
$fullEntry['iconCls'] = 'pimcore_icon_wmv';
break;
case 'Text':
$fullEntry['iconCls'] = 'pimcore_icon_txt';
break;
case 'Document':
$fullEntry['iconCls'] = 'pimcore_icon_pdf';
break;
default:
$fullEntry['iconCls'] = 'pimcore_icon_asset';
}
} elseif (strpos($data['objectClass'], 'Document') === 0) {
$fullEntry['iconCls'] = 'pimcore_icon_' . strtolower($data['objectClassSubType']);
} else {
$data['iconCls'] = 'pimcore_icon_text';
}
}
$data['leaf'] = true;
}
}