Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Szablony
Forum PHP.pl > Forum > Przedszkole
Jantar
Witam.

Chciałem Was się poradzić jak wprowadzić obsługę kodu php w plikach szablonów TPL. Oto moje pliki:

./includes/template.php
  1. <?
  2. class Template {
  3. var $TplEx = 'tpl';
  4. var $TemplateVars = array();
  5.  
  6. function AddBlock($Name, $Value) {
  7. $this->TemplateVars[$Name] = $Value;
  8. }
  9.  
  10. function Block($Name, $Value, $String) {
  11. return str_replace('{' . $Name . '}', $Value, $String);
  12.  
  13. }
  14.  
  15. function Display($Page) {
  16. $FHandle = file_get_contents($Page . '.' . $this->TplEx);
  17. foreach ($this->TemplateVars As $Name => $Value) {
  18. $FHandle = $this->Block($Name, $Value, $FHandle);
  19. }
  20.  
  21. return $FHandle;
  22. }
  23. }
  24. ?>


./includes/parse.php
  1. <?
  2. include (&#092;"template.\" . $PhpEx);
  3. include (&#092;"languages/\" . $CurrentLanguage . \"/main.\" . $PhpEx);
  4.  
  5. $Tpl = new Template;
  6.  
  7. $Tpl->AddBlock('Global_CurrentTemplate' , $Language['Global']['CurrentTemplate']);
  8. $Tpl->AddBlock('Global_RootPath' , $Language['Global']['RootPath']);
  9. $Tpl->AddBlock('Global_IncludeModule' , $Language['Global']['IncludeModule']);
  10.  
  11. echo $Tpl->Display($RootPath . &#092;"templates/\" . $CurrentTemplate . \"/overall_header\");
  12. echo $Tpl->Display($RootPath . &#092;"templates/\" . $CurrentTemplate . \"/index_body\");
  13. echo $Tpl->Display($RootPath . &#092;"templates/\" . $CurrentTemplate . \"/overall_footer\");
  14. ?>


./languages/polish/main.php
  1. <?
  2. $Language['Global']['CurrentTemplate'] = $CurrentTemplate;
  3. $Language['Global']['RootPath'] = $RootPath;
  4. $Language['Global']['IncludeModule'] = @include(&#092;"./a.php\");
  5. ?>


Od razu uprzedzam, że obciąłem kilkadziesiąt zmiennym w plikach: ./includes/parse.php i ./languages/polish/main.php. Bo po co zaśmiecać kod? Są przykłady.

To jest działający system szablonów. Tylko prosiłbym Was o pomoc jak zmodyfikować skrypt by obsługiwał kod php w plikach TPL.

Z góry dziękuje i serdecznie pozdrawiam!
Gość_kuziu
eval()
Jantar
Witam!

Dziękuje za zainteresowanie się tematem. Właśnie domyślam się, że coś z funkcją Eval. Podobno tam trzeba przestawić znaki php. Ich kolejność... jakoś tak. Czy umiesz to jakoś dopasować by działało to z moim systemem.

Pozdrawiam!
shima
Cytat(Jantar @ 2005-01-18 16:39:39)
Chciałem Was się poradzić jak wprowadzić obsługę kodu php w plikach szablonów TPL.

Przyznam, że nie do końca rozumiem Twoje plany. Szablony są po to, żeby oddzielić logikę od designu, a Ty chcesz zrobić coś dokladnie przeciwnego? Może coś źle rozumiem? Może podaj cel tych modyfikacji i przykład działania.

Chyba łapię: Chodzi o działanie jak
  1. <?php
  2. {php}
  3. {/php}
  4. ?>

w Smarty?
crash
Szablony są po to by oddzielić logikę skryptu od części wizualnej, więc po co wrzucać kod php do plików szablonu? Zrezygnuj z systemu szablonów i tyle...
Jantar
Witam!

Chodzi mi o coś takiego:
Kod
<HTML>
<HEAD>
<TITLE>{Site_Title}</TITLE>
</HEAD>
<BODY>
<? include ("plik.php"); ?><? $a="aaa"; echo $a; ?><BR>{Tekst1}<BR>{Tekst2}
</BODY>
</HTML>


Może to głupie ale muszę mieć obsługę znaczników php w plikach TPL by móc rozwinąć serwis. Chciałem zrobić by dało się jednoczesnie korzystać z: <? echo "Aaa"; ?> i {Aaa}. Wiem, że to zdaję się zbednę, ale muszę to tak zrobić.

Pozdrawiam!
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.