protected function MediaDirectoriesController::buildTree in Media Directories 2.x
Same name and namespace in other branches
- 8 modules/media_directories_ui/src/Controller/MediaDirectoriesController.php \Drupal\media_directories_ui\Controller\MediaDirectoriesController::buildTree()
Populates a tree array given a taxonomy term tree object.
Parameters
array $tree: An array representing the tree.
object $object: A taxonomy term.
string $vocabulary: The vocabulary id.
1 call to MediaDirectoriesController::buildTree()
- MediaDirectoriesController::directoryTree in modules/
media_directories_ui/ src/ Controller/ MediaDirectoriesController.php - Return directory tree as JSON.
File
- modules/
media_directories_ui/ src/ Controller/ MediaDirectoriesController.php, line 578
Class
- MediaDirectoriesController
- Main controller class.
Namespace
Drupal\media_directories_ui\ControllerCode
protected function buildTree(array &$tree, $object, $vocabulary) {
if ($object->depth !== 0) {
return;
}
$tree[$object->tid] = $object;
$tree[$object->tid]->children = [];
$tree[$object->tid]->text = $object->name;
if ($this->contentTranslationEnabled) {
$current_language = $this->languageManager
->getCurrentLanguage();
$term = Term::load($object->tid);
if ($term && $term
->hasTranslation($current_language
->getId())) {
$term = $term
->getTranslation($current_language
->getId());
$tree[$object->tid]->text = $term
->label();
}
}
$tree[$object->tid]->a_attr = [
'data-tid' => $object->tid,
];
$tree[$object->tid]->id = 'dir-' . $object->tid;
$object_children =& $tree[$object->tid]->children;
$children = $this->termStorage
->loadChildren($object->tid);
if (!$children) {
return;
}
$child_tree_objects = $this->termStorage
->loadTree($vocabulary, $object->tid);
foreach ($children as $child) {
foreach ($child_tree_objects as $child_tree_object) {
if ($child_tree_object->tid === $child
->id()) {
$this
->buildTree($object_children, $child_tree_object, $vocabulary);
}
}
}
$tree[$object->tid]->children = array_values($tree[$object->tid]->children);
}