/** * Создание элементов дерева * @param array $elements * @param string $element_tpl * @param int|null $parent_id * * @return string */ protected function buildElements($elements, $element_tpl, $parent_id = null) { $tpl = new Mtpl(); $tpl->setTemplate($element_tpl); foreach ($elements as $node) { if ($node['parent_id'] === $parent_id) { $tpl->assign('[URL]', $node['url']); $tpl->assign('[TITLE]', $node['title']); $tpl->assign('[ELEMENT_OPTIONS]', !empty($node['options']) ? json_encode($node['options']) : ''); $sub_elements = $this->buildElements($elements, $element_tpl, $node['id']); $tpl->assign('[SUB_ELEMENTS]', $sub_elements !== $element_tpl ? '<ul>' . $sub_elements . '</ul>' : ''); $tpl->reassign(); } } return $tpl->render(); }