Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Szablony, Obsługa PHP w TPL...
Jantar
post 18.01.2005, 16:39:39
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 18.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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!

Ten post edytował Jantar 18.01.2005, 16:40:03
Go to the top of the page
+Quote Post
-Gość_kuziu-
post 18.01.2005, 17:13:02
Post #2





Goście







eval()
Go to the top of the page
+Quote Post
Jantar
post 18.01.2005, 17:14:36
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 18.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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!
Go to the top of the page
+Quote Post
shima
post 18.01.2005, 17:16:44
Post #4





Grupa: Zarejestrowani
Postów: 245
Pomógł: 0
Dołączył: 9.09.2002

Ostrzeżenie: (0%)
-----


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?

Ten post edytował shima 18.01.2005, 17:18:54


--------------------
Nie ma nic stałego prócz zmiany...
Go to the top of the page
+Quote Post
crash
post 18.01.2005, 17:25:53
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
Jantar
post 18.01.2005, 17:41:52
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 18.01.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 17:53