Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Kohana]własna klasa template
areli
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.10.2008

Ostrzeżenie: (10%)
X----


czy ktoś może mi coś podpowiedzieć?

Dotychczas robiąc różne stronki korzystałem z własnej klasy template, która była odpowiedzialna za wygląd? od kilku dni bawię się w kohana i chciałem sobie to zaimplementować, ale nie za bardzo mi to idzie

Chce stworzyć
  • kontroler,
  • klase template która będzie sterowała wyglądem,
  • pliki php które będą dziedziczyły z template i w których będzie można nadpisywać metody, oraz
  • pliki w katalogu view?
jak to ogarnąć? ;/


stworzyłem sobie kontroler w którym nie bardzo wiem co wpisać żeby mi ten template działał?

  1. <?php defined('SYSPATH') OR die('No direct access allowed.');
  2. class Costam_Controller extends Controller
  3. {
  4. function index()
  5. {
  6. //(...)
  7. }
  8. }


template wygląda tak

  1. <?php
  2. class Template
  3. {
  4. $dane = array
  5. (
  6. //(...)
  7. );
  8. $dane = array
  9. (
  10. //(...)
  11. );
  12. function showPage()
  13. {
  14. $this->showHeader();
  15. $this->showMenu();
  16. $this->showContent();
  17. $this->showFoot(); }
  18.  
  19.  
  20. function showHeader()
  21. {
  22. $this->showDTD();
  23. $this->showHTML();
  24. $this->dane['page'] .= "<head>\n";
  25. $this->showEncoding();
  26. $this->showLanguage();
  27. $this->showTitle();
  28. $this->showStyle();
  29. $this->dane['page'] .= "</head>\n<body>\n";
  30. }
  31.  
  32. function showMenu()
  33. {
  34. $this->showLeftMenu()
  35. }
  36.  
  37. //(...)
  38.  
  39. }
  40. ?>
  41.  


a plik główny, powiedzmy pageGeneral.php dotychczas wyglądał tak


  1. <?php
  2. class General extends Template
  3. {
  4. public function ShowContent()
  5. {
  6. //(…)
  7. }
  8. }
  9.  
  10. $general = new General();
  11. $general -> Show();
  12. ?>


teraz trzeba wykombinować coś innego, ale nie bardzo wiem co i jak

Ten post edytował areli 4.11.2009, 15:40:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Można zrobić to na 2 sposoby:
1) Majstrujesz w klasie Template Kohany i później po niej dziedziczysz, ale nie sądzę by to było sensowne, bo możesz coś schrzanić i wtedy będziesz miał problem, a na dodatek taki template przejdzie do wszystkich serwisów jakie potem zechcesz utworzyć.
2) Tworzysz kontroler, który dziedziczy po Template_Controller Kohany i staje się on dla Ciebie bazowym, mieszasz w jego konstruktorze, ustawiasz domyślny widok, po nim dziedziczysz we wszystkich innych kontrolerach, które tego wymagają.

Ostatecznie więc masz:
Template_Controller w katalogu Kohany (domyślny dla wszystkich projektów - zostawiasz w spokoju)
class Main_Controller extends Template_Controller (to Twój domyślny dla serwisu)
class JakiesTam_Controller extends Main_Controller (to będą podstrony w Twoim serwisie)

Zależnie jak zdefiniujesz sobie konstruktor Main_Controller, tak się będziesz musiał w podstronach do niego dopasować. To myślę najbardziej elastyczne podejście do tworzenia serwisu.

Ten post edytował thek 4.11.2009, 16:05:49
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 02:54