/** * Converts flat unitData into a tree (which only includes the extension children, but at any depth) * @param \Render\APIs\APIv1\CSSAPI $api * @param $unitData * @param string $unitId * * @return array */ private function buildUnitTree($api, $unitData, $unitId) { // map data in newly create tree $tree = array(); $data = $unitData[$unitId]['dyncss']; $tree[$unitId]['data'] = $data; // children (only extension modules, but at any nesting level) foreach ($api->getChildren($api->getUnitById($unitId)) as $child) { $childId = $child->getId(); if ($unitData[$childId]['dyncss']['isExtension']) { $tree[$unitId]['children'][] = $this->buildUnitTree($api, $unitData, $childId); } } return $tree; }