Jak pisałem w poprzednim poście – pierwsze co należało zrobić z Kohaną to zintegrować ją z systemem szablonów OPT.
Poszło wszystko dość gładko, już przy pierwszym podejściu. Łatwo bo miałem już zintegrowane CI z OPT, w Kohanie było analogicznie. Więc krok po kroku:
- Stworzyć katalog application/libraries/opt i wgrać do niego pliki OPT
- Stworzyć plik Opt.php i umieścić w nim kod:
defined(’SYSPATH’) or die(’No direct script access.’);
define( ‘OPT_DIR’, ‘application/libraries/opt/’ );
require_once( OPT_DIR . ‘opt.class.php’ );
class OPT extends optClass
{
public function __construct()
{
$this -> root = ‘application/views/’;
$this -> compile = ‘application/views_c/’;
$this -> cache = ‘application/cache/’;
$this -> plugins = OPT_DIR . ‘plugins/’;
$this -> charset = ‘UTF-8′;
$this -> httpHeaders( OPT_HTML );
}
}; - Stworzyć katalog application/views_c i nadać mu chmod 0777
- Można w application/config/config.php dodać autoładowanie biblioteki:
$config['preload'] = array
(
‘libraries’ => ‘Opt’,
‘models’ => ”,
);
Teraz w kodzie kontrolera można umieścić przykładowy kod:
//$this->Opt = new Opt(); // jeśli nie ma autoładowania biblioteki Opt
$this->Opt->assign( ‘title’, ‘My welcome to Kohana!’ );
$this->Opt->parse( ‘welcome.tpl’ );
Oczywiście szablon welcome.tpl musi istnieć i mieć zmienną $title, aby można było zobaczyć efekt. I to tyle, można się cieszyć tandemem Kohana + OPT
U siebie już o tym pisałem dwa miesiące temu :)
preload jest wycofany, nie używać.
@Nowaker: no już dostałem linka w komentarzu do poprzedniego wpisu, ale nieraz lubię sobie pogrzebać zanim poszukam gotowca ;)
@n: szczerze mówiąc nie zauważyłem tego nigdzie takiej informacji, możesz podać linka?
pzdr.
Też nie słyszałem o wycofaniu preloada (a często jestem na Kohanowym TRAC’u). Aczkolwiek nie widzę zbytnio potrzeby umieszczania Opt w preloadzie, ja mam to w tzw. MY_Controller.
No u mnie niestety to nie dziala,nie wiem co jest grane…ale wywala ciagle:
“Fatal error: Class ‘Opt’ not found ….gorowicz_com\application\controllers\welcome.php on line 16″
hmm a tak wyglada u mnie linijka 16:
$this->Opt = new Opt();
Nie wiem co jest grane…,zaczynam sie zniechecac do kohany …
A próbowałeś z autoloaderem? W dobrym miejscu umieściłeś plik Opt.php?
Witam serdecznie,ponownie…taki blad wywalalo mi gdy probowalem zaladowac OPT bez preload’a.
Jesli uzyje preloada,dostaje taki komunikat:
“Undefined property: Welcome_Controller::$Opt”
Czyli na moj nos,wyglada na to ze Opt nie jest zaladowane.
Moze to wina ciaglych z mian w kohanie,nie wiem :]
Podaj ścieżkę do pliku Opt.php, sprawdź czy nazwa pliku/klasy zaczyna się wielką literą.
Definicja klasy wygląda: class OPT
Utworzenie obiektu: new Opt
Widzisz błąd? Ja widzę – autoloader Kohany jest case-sensitive. Na Linuksie to nie zadziała.