Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Kohana]Kohana->menu->zmiana widoków
elita4all
post 19.11.2010, 08:25:28
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 28.10.2009

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


Panie, Panowie raczkuję baaaardzo. Jak elegancko zrobić, żeby po kliknięciu w <oferta> też było widoczne menu, (ewentualny head, title). Chyba, że z takim kontrolerem już nie da rady nic elegancko zrobić?

classes/controller/index.php
Kod
<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Index extends Controller {
public function action_index()
    {    
     $main_menu = new View('main_menu');
                $main_menu->options = array(
              array(
                 'option_name'        => 'Strona główna',
                 'option_url'        => 'index'                
                   ),
              array(
                 'option_name'        => 'Oferta',
                 'option_url'        => 'oferta'                           
                   )
    
                );
                $view = new View('index');                
                $view->main_menu = $main_menu->render();
                $view->title = 'Witaj!';
                $this->request->response = $view->render();          

    }
}


classe/controller/oferta.php
Kod
<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Oferta extends Controller_Index {

public function action_index()
    {
    }    
}


views/index.php
Kod
<TABLE WIDTH=800 BORDER=1>
  <TR HEIGHT=30>
    <TD><?=$main_menu;?></TD>
  </TR>
  <TR HEIGHT=500>
    <TD><?=$title;?></TD>
  </TR>
</TABLE>

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
phpion
post 19.11.2010, 08:32:06
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




W KO3 są bodajże metody uruchamiane przed i po wykonaniu kontrolera. Najlepiej więc jeśli dasz kod z Controller_Index::action_index() do metody uruchamianej przed samym kontrolerem. Jeśli jednak czegoś takiego nie ma to:
1. Wrzuć ten kod do konstruktora, ale pamiętaj o wywołaniu konstruktora nadrzędnego (lepsze rozwiązanie).
2. Do metody Controller_Oferta::action_index() dodaj parent::action_index() co wywoła jeszcze metodę z klasy nadrzędnej (gorsze rozwiązanie).
Go to the top of the page
+Quote Post
elita4all
post 19.11.2010, 09:55:30
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 28.10.2009

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


dzięki, wstawiłem do kontrolera i jest OK. Before w KO3 jest, ale póki nie muszę nię będę się uzależniał (od KO3) smile.gif
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 25.06.2025 - 00:34