Integracja Open Power Template 2.0 z KohanaPHP 2.2 / 2.3

Styczeń 18th, 2009 · 14 Comments ·

Open Power Template w wersji 2.0 ma się coraz lepiej. Niedawno wyszła jego pierwsza wersja beta. Wraz z wersją dev8 zdecydowałem się wykorzystać OPTv2 w produkcji, ponieważ składnia została już zamrożona – jeśli wierzyć zapewnienion Zyx’a ;-).

Odpowiedni moduł do integracji napisałem już wcześniej, jednak dopiero dzisiaj go publikuję. Tak samo, jak w przypadku modułu dla OPTv1, tak i dla OPTv2 składnia pozostaje zgodna z interfejsem oryginalnego View:

$view = new View('szablon.tpl');
$view->dynamic = 'And this is a dynamic.';
$view->render(TRUE);

Wybór silnika przetwarzania szablonów (natywny KohanaPHP lub OPT) dokonywany jest poprzez rozszerzenie szablonu. Wystarczy do nazwy szablonu dodać rozszerzenie OPT, aby właśnie OPT został użyty do wygenerowania widoku. Rozszerzenie można oczywiście określić w pliku konfiguracyjnym.

Moduł OPTv2:

Uwaga. W wersji OPT2-beta1 jest mały błąd – OPT wyrzuca błąd typu notice podczas przetwarzania szablonu. Drobiazg, ale KohanaPHP ma domyślnie takie ustawienie, że nawet notice uznawany jest jako błąd (zresztą słusznie). W związku z tym mój moduł używa domyślnie OPT2-dev8. Dla tych, którzy chcą używać OPT2-beta1:

  • usunąć katalog vendor/opt2
  • zmienić nazwę katalogu vendor/opt2-beta1 na vendor/opt2
  • zmienić error_reporting w pliku index.php na E_ALL ^ E_NOTICE

Stworzyłem też moduł obsługujący jednocześnie OPTv1 oraz OPTv2. Dla nowych użytkowników OPT nie jest on zalecany. Ja z niego korzystam, ponieważ szablony dla starszych modułów są napisane w składni OPTv1, zaś nowsze w OPTv2. Przepisać te dwieście plików do OPTv2? Nie, dziękuję. ;-)

Moduł OPTv1/v2:

Tags: PHP · Programowanie

Jest już 14 komentarzy ↓

  • Zyx // sty 21, 2009 at 22:14

    Świetna robota! Jednak moim marzeniem jest powstanie kompletnych zestawów portów, które także integrują różne usługi frameworków z OPT. Przykładowo, w Kohanie warto byłoby podpiąć helpery formularzy pod komponenty, domyślnie rejestrować “url” jako jakieś funkcje czy podłączyć klasę Pagination tak, aby mogła korzystać z instrukcji opt:selector, co z kolei umożliwiałoby proste definiowanie wyglądów listy stron (hehe, w OPT jest to parę linijek, w dodatku współdzielonych, w kohanowych widokach PHP półtora ekranu :)).

  • Nowaker // sty 22, 2009 at 09:04

    Rejestrowanie helperów to dobry pomysł. W mojej roboczej wersji modułu rejestruję do OPT kilka klas helperów – m.in. format. Chyba to dobry pomysł, aby w pliku konfiguracyjnym podać listę klas, które mają być zarejestrowane.

    Nie rozumiem jednak Twojej idei podpinania komponentów. Dokumentacja OPT jest bardzo mglista na ten temat – “Components: To be written” ;-] Jak uzupełnisz dokumentację, to wtedy mogę dalej myśleć.

  • nediam // lut 18, 2009 at 10:52

    W MY_controller nie ma w konstruktorze nie ma zdefiniowanej zmiennej $template przez co nie działa na windowsie :( ale może mi się tylko wydaje ;P

  • Nowaker // lut 28, 2009 at 20:22

    A po co ma tam być zmienna $template? Może mam dodać też zmienną $pozdro_dla_waszyngotnu?

  • nediam // mar 5, 2009 at 11:10

    chodzi o to ze jest ona tam niepotrzebna a ty jej używasz

  • lukasz // sie 2, 2009 at 22:01

    po kilku próbach rozwiązania problemu samodzielnie pozwolę sobie zapytać… (moja znajomość tematu zbyt duża nie jest)

    rozpakowuję moduł i uaktywniam go w config… no i trach… “An error was detected which prevented the loading of this page. If this problem persists, please contact the website administrator.

    C:/wamp/www/koncertos/modules/opt2/libraries/MY_Controller.php [37]:

    Undefined variable: template”

    co można poradzić? windows, wamp (jakby mogło coś zasugerować)

    dziękuję.

  • Nowaker // sie 2, 2009 at 22:12

    Nie przetestowałem tego na Windowsie. Zamiast $template wrzuć ‘C’ albo ‘C:’ (włącznie z apostrofami).

  • lukasz // sie 2, 2009 at 22:26

    zamiana pomogła, dzięki! opt wydaje się działać poprawnie.

  • Barthap // kwi 18, 2010 at 19:43

    Mam pytanie. W natywnym systemie szablonów Kohana można wstawić w szablonie A jak to zrobić w OPT w wersji 1 i w wersji 2?

  • Barthap // kwi 18, 2010 at 19:45

    dopisane bo mi w komentarzu nie wstawiło nie wiem czy teraz wstawi: W Kohanie w szablonie można wstawić

  • Barthap // kwi 19, 2010 at 05:45

    (php) echo Kohana::lang(“cos.tekst”) (koniec php)

    w normalnym szablonie Kohany takie cos dziala, nie wiem jak zrobic to w OPT

  • Nowaker // kwi 19, 2010 at 17:00

    Musisz zarejestrować nową klasę z metodami – jakoś podobnie do rejestracji metody, zobacz w phpDoc. http://static.invenzzia.org/docs/opt/2_0/book/en/extending.functions.html

  • Barthap // kwi 21, 2010 at 13:54

    dzięki, działa w OPT2 a w opt 1.1 w szablonie trzeba wstawic {php} echo Kohana::lang(“cos.tekst”) {/php}

  • keedy // cze 28, 2010 at 16:43

    Czesc. Kiedy mozna spodziewac sie wersji dla kohana 3 ? pozdrawiam.

Zostaw swój komentarz

W treści komentarza obowiązuje składnia Markdown.
**pogrubienie**, *kursywa*, nowy akapit - dwa znaki nowej linii