public function Acquiadam::getBreadcrumb in Media: Acquia DAM 8
1 call to Acquiadam::getBreadcrumb()
- Acquiadam::getForm in src/Plugin/EntityBrowser/Widget/Acquiadam.php
File
- src/Plugin/EntityBrowser/Widget/Acquiadam.php, line 521
Class
- Acquiadam
- Uses a view to provide entity listing in a browser's widget.
Namespace
Drupal\media_acquiadam\Plugin\EntityBrowser\Widget
Code
public function getBreadcrumb(Folder $current_folder, array $breadcrumbs = []) {
if (array_key_exists($current_folder->id, $breadcrumbs) && count($breadcrumbs) > 1) {
do {
end($breadcrumbs);
$id = key($breadcrumbs);
if ($id != $current_folder->id && count($breadcrumbs) > 1) {
array_pop($breadcrumbs);
}
} while ($id != $current_folder->id && count($breadcrumbs) > 1);
}
if (is_object($current_folder) && property_exists($current_folder, 'parent') && array_key_exists($current_folder->parent, $breadcrumbs)) {
end($breadcrumbs);
if (key($breadcrumbs) == $current_folder->parent) {
$breadcrumbs[$current_folder->id] = $current_folder->name;
}
}
reset($breadcrumbs);
$form['breadcrumb-container'] = [
'#type' => 'container',
'#breadcrumbs' => $breadcrumbs,
'#attributes' => [
'class' => [
'breadcrumb acquiadam-browser-breadcrumb-container',
],
],
];
foreach ($breadcrumbs as $folder_id => $folder_name) {
$form['breadcrumb-container'][$folder_id] = [
'#type' => 'button',
'#value' => $folder_name,
'#name' => 'acquiadam_folder',
'#acquiadam_folder_id' => $folder_id,
'#acquiadam_parent_folder_id' => $folder_name,
'#prefix' => '<li>',
'#suffix' => '</li>',
'#attributes' => [
'class' => [
'acquiadam-browser-breadcrumb',
],
],
];
}
return $form;
}