Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Kohana]Problem z kilkupoziomowym menu
henio
post
Post #1





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 15.10.2004
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Witam, od niedawna używam Kohany i mam taki problem. Stworzylem 3 tabele w bazie danych (menu-adm-1, menu-adm-2 i menu-adm-3) chce pobrać dane z pierwszej tabeli i wyświetlić potrafię. Chciałbym jednak osiągnąć taki cel: po pobraniu danych z tabeli menu-adm-1 i ich wyświetleniu zostały pobrane dane z tabeli menu-adm-2 ale tylko dla konkretnego pobranego wcześniej rekordu z tabeli menu-adm-1.

Model Admin_Menu
  1. <?php defined('SYSPATH') or die('No direct script access.');
  2.  class Admin_Menu_Model extends Model {
  3.    public function __construct()
  4.    {
  5.    parent::__construct();
  6.    }
  7.    
  8.    public function menu_adm1()
  9.    {
  10.    return $this->db->select('id', 'tekst', 'url', 'kolejny_poziom')
  11.            ->from('menu-adm-1')
  12.            ->orderby(array('kolejnosc' => 'ASC'))
  13.            ->get();
  14.    }
  15.  }
  16. ?>


Widok (fragment)
  1. <ul id="nav">
  2.        <?php foreach($menu as $m): ?>
  3.            <li><a href="<?php echo url::base().$m->url;?>"><?php echo $m->tekst;?></a></li>
  4.        <?php endforeach; ?>
  5.        </ul>


Kontroler
  1. <?php defined('SYSPATH') OR die('No direct access allowed.');
  2. class Glowna_Controller extends Controller {
  3.  
  4.        public function index()
  5.        {
  6.        $view = new View('layout/adm');
  7.        $menu = new Admin_Menu_Model;
  8.        $view->menu = $menu->menu_adm1();
  9.        $view->content = new View('adm/glowna');
  10.        $view->render(true);
  11.        }
  12. }
  13. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
henio
post
Post #2





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 15.10.2004
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Może aż tak źle ze mną nie jest.
Stworzyłem taką tablicę i chciałbym wiedzieć czy tak ona powinna wyglądać?
Kod
[menu] => Array
        (
            [1] => Array
                (
                    [id] => 1
                    [tekst] => Główna
                    [url] => adm/glowna
                    [kolejny_poziom] => NIE
                )

            [2] => Array
                (
                    [id] => 2
                    [tekst] => Newsy
                    [url] => #
                    [kolejny_poziom] => TAK
                    [1] => Array
                        (
                            [id] => 1
                            [tekst] => Zwykłe
                            [url] => #
                            [kolejny_poziom] => TAK
                            [1] => Array
                                (
                                    [id] => 1
                                    [tekst] => Dodaj
                                    [url] => adm/newsy/dodaj
                                )

                        )

                    [2] => Array
                        (
                            [id] => 2
                            [tekst] => Wydarzenia
                            [url] => #
                            [kolejny_poziom] => TAK
                        )

                    [3] => Array
                        (
                            [id] => 3
                            [tekst] => Artykuły
                            [url] => #
                            [kolejny_poziom] => TAK
                        )

                    [4] => Array
                        (
                            [id] => 4
                            [tekst] => Tagi
                            [url] => #
                            [kolejny_poziom] => TAK
                        )

                )

            [3] => Array
                (
                    [id] => 3
                    [tekst] => Komentarze
                    [url] => #
                    [kolejny_poziom] => TAK
                )

            [4] => Array
                (
                    [id] => 4
                    [tekst] => Użytkownicy
                    [url] => #
                    [kolejny_poziom] => TAK
                )

            [5] => Array
                (
                    [id] => 5
                    [tekst] => Terminarz
                    [url] => #
                    [kolejny_poziom] => TAK
                )

            [6] => Array
                (
                    [id] => 6
                    [tekst] => Galeria
                    [url] => #
                    [kolejny_poziom] => TAK
                )

            [7] => Array
                (
                    [id] => 7
                    [tekst] => Działy
                    [url] => #
                    [kolejny_poziom] => TAK
                )

            [8] => Array
                (
                    [id] => 8
                    [tekst] => Menu
                    [url] => #
                    [kolejny_poziom] => TAK
                )

            [9] => Array
                (
                    [id] => 9
                    [tekst] => Inne
                    [url] => #
                    [kolejny_poziom] => TAK
                )

            [10] => Array
                (
                    [id] => 10
                    [tekst] => Wyjdź
                    [url] => adm/wyloguj
                    [kolejny_poziom] => NIE
                )

        )


Teraz w widoku biorę się za odczytanie danych, ale w rezultacie mam coś takiego:
Kod
<ul id="nav">
   <li><a href="/heniek_cms/adm/glowna">Główna</a></li>
   <li><a href="/heniek_cms/#">Newsy</a>
     <ul>
       <li><a href="/heniek_cms/2">2</a></li>
       <li><a href="/heniek_cms/W">W</a></li>
       <li><a href="/heniek_cms/#">#</a></li>
       <li><a href="/heniek_cms/T">T</a></li>
     </ul>
   </li>
   <li><a href="/heniek_cms/#">Komentarze</a></li>
   <li><a href="/heniek_cms/#">Użytkownicy</a></li>
   <li><a href="/heniek_cms/#">Terminarz</a></li>
   <li><a href="/heniek_cms/#">Galeria</a></li>
   <li><a href="/heniek_cms/#">Działy</a></li>
   <li><a href="/heniek_cms/#">Menu</a></li>
   <li><a href="/heniek_cms/#">Inne</a></li>
   <li><a href="/heniek_cms/adm/wyloguj">Wyjdź</a></li>
</ul>


  1. <ul id="nav">
  2.         <?php foreach($menu as $m): ?>
  3.             <li>
  4.                 <a href="<?php echo url::base().$m['url'];?>"><?php echo $m['tekst'];?></a>
  5.                 <?php if($m['kolejny_poziom'] == "TAK" && !empty($m[$m['id']]['url'])) : ?>
  6.                 <ul>
  7.                 <?php foreach($m[$m['id']] as $m1): ?>
  8.                     <li>
  9.                         <a href="<?php echo url::base().$m1['url'];?>"><?php echo $m1['tekst'];?></a>
  10.                     </li>
  11.                 <?php endforeach; ?>
  12.                 </ul>
  13.                 <?php endif; ?>
  14.             </li>
  15.         <?php endforeach; ?>
  16.         </ul>

Mam nadzieję, że tym razem ktoś mi podpowie, co źle zrobiłem

Temat do zamknięcia, już sobie poradziłem
Go to the top of the page
+Quote Post

Posty w temacie
- henio   [Kohana]Problem z kilkupoziomowym menu   15.06.2009, 19:24:53
- - Cypherq   Przejedź foreach po rekordach z menu1 wyjmując rek...   15.06.2009, 22:49:36
- - henio   Ale to mam umieścić w kontrolerze?   16.06.2009, 09:30:06
- - skowron-line   W modelu zrób sobie zapytanie o główne menu i w pę...   16.06.2009, 09:34:02
|- - henio   Cytat(skowron-line @ 16.06.2009, 10...   16.06.2009, 10:01:23
|- - Cypherq   Cytat(skowron-line @ 15.06.2009, 23...   16.06.2009, 14:45:06
- - skowron-line   W modelu tworzysz metodę powiedzmy getMenu i ...   16.06.2009, 10:06:19
- - henio   Z Kohany korzystam dopiero od kilku dni i nie potr...   17.06.2009, 15:15:14
|- - skowron-line   Cytat(henio @ 17.06.2009, 14:15:14 ) ...   17.06.2009, 18:04:35
- - Cypherq   Nie obraź się, ale Skowron podał Ci wszystko na ta...   17.06.2009, 17:06:45
- - henio   Wróciłem niedawno z wakacyjnego wyjazdu i wypoczęt...   30.06.2009, 11:38:50
- - skowron-line   Według mnie tablica 2 wymiarowa była by najlepszym...   30.06.2009, 11:44:47
|- - henio   Cytat(skowron-line @ 30.06.2009, 12...   30.06.2009, 11:54:51
- - skowron-line   Nie wiesz jak wygląda tablica wielowymiarowa htt...   30.06.2009, 11:57:45
|- - henio   Cytat(skowron-line @ 30.06.2009, 12...   30.06.2009, 11:58:58
- - skowron-line   No ale powiedz w czym ty masz problem ze zrobieni...   30.06.2009, 12:11:44
|- - henio   Cytat(skowron-line @ 30.06.2009, 13...   30.06.2009, 12:39:31
- - phpion   Pokaż jak próbowałeś, a my Cię naprowadzimy pokazu...   30.06.2009, 12:56:04
|- - henio   Cytat(phpion @ 30.06.2009, 13:56:04 )...   30.06.2009, 13:40:32
- - skowron-line   a gdzie wrzucasz to do tablicy   30.06.2009, 14:31:43
|- - henio   Cytat(skowron-line @ 30.06.2009, 15...   1.07.2009, 08:07:35
|- - skowron-line   Cytat(henio @ 1.07.2009, 07:07:35 ) J...   1.07.2009, 08:10:03
- - phpion   Dobrze to pojęcie względne ale powinno działać.   1.07.2009, 08:10:06
- - henio   zrobiłem na mniej więcej na podstawie tego co tu z...   1.07.2009, 08:16:24
- - skowron-line   Dlaczego mam wrażenie że z każdą pierdołą piszesz ...   1.07.2009, 08:37:10
- - henio   Może aż tak źle ze mną nie jest. Stworzyłem taką ...   3.07.2009, 16:33:13


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.01.2026 - 08:28