public function getTreeFields($fields = null)
{
//use default fields from object definition
$definition = $this->objectDefinition;
$fields2 = array();
if ($fields && $this->getAllowCustomFieldSelection()) {
if (is_array($fields)) {
$fields2 = $fields;
} else {
$fields2 = explode(',', trim(preg_replace('/[^a-zA-Z0-9_,]/', '', $fields)));
}
}
if ($definition && !$fields2) {
if ($treeFields = $definition->getTreeFields()) {
$fields2 = explode(',', trim(preg_replace('/[^a-zA-Z0-9_,]/', '', $treeFields)));
} else {
$fields2 = $definition->getDefaultSelection() ? explode(',', trim(preg_replace('/[^a-zA-Z0-9_,]/', '', $definition->getDefaultSelection()))) : array();
}
$fields2[] = $definition->getSingleItemLabelField();
if ($definition->getTreeIcon()) {
$fields2[] = $definition->getTreeIcon();
}
}
return $fields2;
}