Привет Всем! Сейчас запарился разбирать варианты как можно прикрутить готовый массив :
Код:
// ВЫборка из модели
$this->arrMenu = ORM::factory('Menu');
$this->arrMenu = $this->arrMenu->fulltree();
Код:
// Подключение и импорт в шаблон
$this->pathPageTemplate = View::factory('подключение шаблона');
$this->pathPageTemplate->bind('arrMenu', $this->arrMenu);
Код:
// в шаблоне
<? /** Вывод всего дерева **/?>
<? if(!empty($arrMenu) && isset($arrMenu)): ?>
<div id="treeMenu">
<ul id="navigation">
<? foreach($arrMenu As $Menu):?>
<li><?=$Menu->h1?></li>
<? endforeach ?>
</ul>
</div>
Как привести к тому чтобы был вывод:
Код:
Главная
Под главная 1
Под главная 1-1
О нас
Контакты
и т.д
Надеюсь кто-то уже решал такую задачу и удачно!
Вот мой пример, он конечно не идеален, но рабочий:Код:
// Запрос к таблице
$this->selectTreeTable = ORM::factory('Menu');
// выбираем все корневые разделы
$this->selectTreeTable = $this->selectTreeTable->where('parent_id','=','0')->find_all();
// вызываем метод и передаём данные
$this->tree($this->selectTreeTable);
// Генерация меню
public function tree($array = null, $parent_id = null)
{
// первый уровень
echo '<ul>';
foreach($array as $array2)
{
echo '<li>';
echo $array2->h1;
// вызов метода для дочерних пунктов
$this->tree2($array2);
echo '</li>';
}
echo '</ul>';
}
// Под меню
public function tree2($array)
{
if($array->has_children())
{
echo '<ul>';
foreach($array->children() As $arrayChild)
{
echo '<li>';
echo $arrayChild->h1;
$this->tree2($arrayChild);
echo '</li>';
}
echo '</ul>';
}
}
pathPageTemplate = View