You are here

protected function MediaDirectoriesTreeBuilder::buildTree in Media Directories 3.x

Populates a tree array given a taxonomy term tree object.

Parameters

$tree:

$object:

$vocabulary:

1 call to MediaDirectoriesTreeBuilder::buildTree()
MediaDirectoriesTreeBuilder::tree in modules/media_directories_ui/src/MediaDirectoriesTreeBuilder.php
Return complete directory tree.

File

modules/media_directories_ui/src/MediaDirectoriesTreeBuilder.php, line 89

Class

MediaDirectoriesTreeBuilder

Namespace

Drupal\media_directories_ui

Code

protected function buildTree(&$tree, $object, $vocabulary) {
  if ($object->depth !== 0) {
    return;
  }
  $tree[$object->tid] = $object;
  $tree[$object->tid]->children = [];
  $tree[$object->tid]->text = $object->name;
  $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);
}