Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Twig - modyfikowanie kontekstu jednego pliku w kilku linijkach
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy szablonów
mrWodoo
Witam, jak mogę modyfikować kontekst templaty w kilku miejscach?
Normalnie robię to tak:
  1. echo $this->Core->getTwig()->render( 'header.tpl', array(
  2. 'Ceres' => array(
  3. 'template_dir' => Templates_Dir . $this->Core->getCollection()->getMember( 'Settings' )->getSetting( 'board_template' ) . '/',
  4. 'global_css' => Public_Dir . 'Css/' ) ) );


A chciałbym zrobić w niektórych miejscach tak:
  1. ustaw kontekst dla header.tpl
  2. jakies operacje
  3. ustaw dodatkowy kontekst dla header.tpl
  4. echo $this->Core->getTwig()->render( 'header.tpl', array(
  5. 'Ceres' => array(
  6. 'template_dir' => Templates_Dir . $this->Core->getCollection()->getMember( 'Settings' )->getSetting( 'board_template' ) . '/',
  7. 'global_css' => Public_Dir . 'Css/' ) ) );
ano
Nie za bardzo rozumiem... po wyrenderowaniu szablonu nie możesz już zmieniać jego kontekstu. Bo jaki w tym był by sens? Możesz co najwyżej go jeszcze raz wyrenderować ale jw. po co?
  1. ustaw kontekst dla header.tpl
  2. jakies operacje
  3. ustaw dodatkowy kontekst dla header.tpl
  4.  
  5. echo $this->Core->getTwig()->render( 'header.tpl', array(
  6.  
  7. 'Ceres' => array(
  8.  
  9. 'template_dir' => Templates_Dir . $this->Core->getCollection()->getMember( 'Settings' )->getSetting( 'board_template' ) . '/',
  10.  
  11. 'global_css' => Public_Dir . 'Css/' ) ) );


nie chodzi Ci po prostu o:

  1. $context = array();
  2. //ustaw kontekst dla header.tpl
  3. $context['Ceres'] = 'cośtam';
  4. // jakies operacje
  5. // ....
  6. //ustaw dodatkowy kontekst dla header.tpl
  7. $context['Additional'] = 'cośtam2';
  8.  
  9. echo $this->Core->getTwig()->render( 'header.tpl', $context);

?
mrWodoo
Dokladnie, chodzilo mi o.druga opcje. Napisalem sobie do tego klasę TwigIntegration
https://github.com/mrWodoo/CeresBoard/blob/...Integration.php
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-2024 Invision Power Services, Inc.