Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Smarty
Deotho
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 2.05.2012
Skąd: Hogwart

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


Witam,
mam pytanie, a mianowicie czy mogę w smarty zrobić tak, że:

Header.tpl (początek HTML'a)
Kod
<html>
<head>
<title>test</title>
</head>
<body>

index.tpl (treść strony głównej, bez htmla)
Kod
Przykładowa strona w Smarty.

Footer.tpl (koniec HTML'a)
Kod
</body>
</html>


Chodzi mi o to czy mogę jakoś to połączyć żebym nie musiał w każdym pliku edytować nazwy, opisu, tagów itp.

np.

Test.pl - Strona główna, a gdy przejdę na O nas wyświetla Test.pl - O nas i tak dalej.
Go to the top of the page
+Quote Post
abort
post
Post #2





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Oczywiście, że możesz.
Definiujesz template i go włączasz do kodu, na samym początku po "<?php"
Go to the top of the page
+Quote Post
Deotho
post
Post #3





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 2.05.2012
Skąd: Hogwart

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


Gdyby jakiś początkujący sobie nie radził tak jak ja umieszczam kod.
  1. <?php
  2. require('./configs/config.php');
  3. require('./libs/Smarty.class.php');
  4.  
  5. $tpl = new Smarty;
  6. $tpl -> template_dir = './templates/';
  7. $tpl -> compile_dir = './templates_c/';
  8.  
  9. $tpl -> display('header.tpl');
  10.  
  11. $tpl = new Smarty;
  12. $tpl -> template_dir = './templates/';
  13. $tpl -> compile_dir = './templates_c/';
  14.  
  15. $tpl -> display('index.tpl');
  16.  
  17. $tpl = new Smarty;
  18. $tpl -> template_dir = './templates/';
  19. $tpl -> compile_dir = './templates_c/';
  20.  
  21. $tpl -> display('footer.tpl');
  22. ?>


Działa dziękuje i + mam nadzieje, że dobrze to zrobiłem.

Ten post edytował Deotho 15.08.2012, 19:01:12
Go to the top of the page
+Quote Post
cv65
post
Post #4





Grupa: Zarejestrowani
Postów: 94
Pomógł: 9
Dołączył: 12.04.2009

Ostrzeżenie: (20%)
X----


Kod
{include file="header.tpl"}

tresc strony

{include file="footer.tpl"}


w tpl.

Tak powinno być smile.gif i tylko jedno wywołanie klasy wystarczy

Ten post edytował cv65 15.08.2012, 19:03:56
Go to the top of the page
+Quote Post
abort
post
Post #5





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Możesz to skrócić:
  1. <?php
  2. require('./configs/config.php');
  3. require('./libs/Smarty.class.php');
  4.  
  5. $tpl = new Smarty;
  6. $tpl -> template_dir = './templates/';
  7. $tpl -> compile_dir = './templates_c/';
  8.  
  9. $tpl -> display('header.tpl');
  10. $tpl -> display('index.tpl');
  11. $tpl -> display('footer.tpl');
  12. ?>

bo w Twoim przypadku zmienne i przypisania robisz raz (przecież katalogi templatek i katalog z kompilatami się nie zmieniają w czasie wykonywania kodu, prawda?).
Nieco gorzej jest z ->assign - jeśli używasz chaotycznie templatek, to zmienne mogą "przecieknąć" - choć czasami może być to pożądane. Znaczy się: zmienną przypiszesz raz, a potem wykorzystujesz ją w dwóch kolejnych templatkach.
Go to the top of the page
+Quote Post
Deotho
post
Post #6





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 2.05.2012
Skąd: Hogwart

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


Dziękuje za pomoc. smile.gif
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 Aktualny czas: 22.08.2025 - 01:06