skeeks\cms\helpers\TreeOptions::_buildTreeArrayRecursive PHP Метод

_buildTreeArrayRecursive() приватный Метод

Строит рекурсивно массив дерева
private _buildTreeArrayRecursive ( Tree $model, array $filter ) : array
$model skeeks\cms\models\Tree
$filter array
Результат array
    private function _buildTreeArrayRecursive(Tree $model, $filter)
    {
        $is_filter_set = !empty($filter);
        if ($model->isNewRecord) {
            $childs = static::findRoots()->all();
        } else {
            $childs = $model->children;
        }
        foreach ($childs as $child) {
            $level = $child->level;
            $id = $child->id;
            if (!$is_filter_set || in_array($id, $filter)) {
                $name = $child->name;
                if ($level == 0) {
                    $name = "[" . $child->site->name . "] " . $child->name;
                }
                $child->name = str_repeat($this->repeat, $level) . $name;
                $this->_tmpResult[$id] = $child;
            }
            $this->_buildTreeArrayRecursive($child, $filter);
        }
        return $this->_tmpResult;
    }