Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Smarty
Forum PHP.pl > Forum > Przedszkole
Deotho
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.
abort
Oczywiście, że możesz.
Definiujesz template i go włączasz do kodu, na samym początku po "<?php"
Deotho
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.
cv65
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
abort
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.
Deotho
Dziękuje za pomoc. smile.gif
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.