Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CakePHP] Integracja z RainTPL
Forum PHP.pl > Forum > PHP > Frameworki
Walian
Czy mógłby mnie ktoś naprowadzić jak zintegrować CakePHP 2.x z najnowszym RainTPL?
Chcemy w pracy móc zrobić coś takiego:

  1. <?php
  2. class TestController extends AppController
  3. {
  4. var $viewClass = 'RainTPL'; // To udało mi się zrobić - RainTPL jest ładowany poprawnie.
  5.  
  6. function index()
  7. {
  8. // Ustawianie zmiennych wykorzystując metodę assign() z RainTPL:
  9. $this->View->assign('hello', 'hello');
  10. }
  11. }


+ zachować możliwość wykorzystywania Cake'owych helperów w szablonie poprzez zdefiniowanie nowego znacznika w Rainie, który sprawi, że Rain zignoruje zawarty w szablonie kod PHP w trakcie cache-owania szablonu.
Czyli:

index.tpl:
Kod
{$hello}
<br>
<?php echo $this->Html->link('edit', array('action' => 'edit', 3)); ?>


Chodzi po prostu o pełną integrację RainTPL z CakePHP 2.0. Próbowałem przerobić SmartyView, ale niewiele mi się udało.
erix
Z tego, co przejrzałem dokumentację, to nie ma takiej możliwości... Jest jedynie {noparse}, ale podejrzewam, że to nie jest to, czego potrzebujesz...

Śmiem twierdzić, że lepiej będzie poszukać innego systemu szablonów niż przerabiać RainTPL.
Walian
Co do samych znaczników: da się w ten sposób:
  1. raintpl::configure('php_enabled', true);


Ale chciałbym jeszcze jak już wspomniałem - jakoś sensownie podłączyć RainTPL do kontrolera. Nie musi to być oryginalna metoda, byle jakoś znośnie wyglądało.
erix
Musisz napisać klasę pośredniczącą, czyli to, co masz ustalone w viewClass.
Walian
Mam już napisaną taką klasę, ale częściowo. Działa na razie wstrzykiwanie zmiennych do szablonu i jego automatyczne wywołanie:
  1. <?php
  2. class TestController extends AppController
  3. {
  4. var $viewClass = 'RainTPL';
  5.  
  6. function index()
  7. {
  8. $this->set('hello_world', 'Hello World!');
  9. }


Ale nie bardzo wiem, jak się dostać do reszty metod Raina. Nie ma w kontrolerze jakiejś metody w stylu:
  1. $view = $this->getViewInstance();

?
erix
Pytanie: w jakim celu chcesz się dostać do metod Raina?

Mówiłem o klasie pośredniczącej (czyt: instancjującej RainTPL, ustawiającej jej opcje), a nie podpięciu RTPL bezpośrednio jako klasę widoku w Cake'u.

Widok jest instancjowany w późniejszym etapie, z tego, co pamiętam, to w wywołaniu metody render.
kleus
Pytanie po co w MVC system szablonów?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.