Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 28 мар 2024, 23:46

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 15 фев 2013, 18:56 
Не в сети
Зеленый

Зарегистрирован: 15 фев 2013, 18:10
Сообщения: 2
Привет Всем! Сейчас запарился разбирать варианты как можно прикрутить готовый массив :

Код:
// ВЫборка из модели
$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


Последний раз редактировалось olegKazan 16 фев 2013, 09:00, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 фев 2013, 04:00 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
как минимум 3 темы на форуме


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 фев 2013, 08:23 
Не в сети
Зеленый

Зарегистрирован: 15 фев 2013, 18:10
Сообщения: 2
Поискал, но к сожалению не нашёл ответа. Если не трудно, скиньте ссылку на темы.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group