Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] System szablonow
Forum PHP.pl > Forum > Przedszkole
gohu
Witam. na wstępie chcialbym zaznaczyc, ze tytanem w php nie jestem, jeszcze wiele nauki przede mna smile.gif Ale do rzeczy. Pracuje dosyc ambitnie nad pewnym systemem szablonow, bedzie to prosty system gdzie klient bedzie mogl sobie wybrac wyglad strony i miec do niego pelen panel edycji od tresci az po style ale przegladajc rozne fora, czytajac opisy itp itd wpadlem przypadkowo na taki pomysl i niewiem jak to wyglada od strony technicznej czy takie rozwiazanie ma sens ze wzgledu chyba na swoja totalna glupote w prostocie. Wiec jest tak

Mam katalog _/templatki/katalog/templatka a w nim plik index.php ktory wyglada mniejwiecej tak:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>{title}</title>
  5. <meta content="text/html; charset=utf-8" http-equiv="content-type" />
  6. <link href="../_template/a03/css/styl.css" rel="stylesheet" type="text/css" />
  7.  
  8.  
  9. </head>
  10. <body>
  11.  
  12. <div id="www">
  13.  
  14. <div id="menu">{menu_link1} {menu_link2} {menu_link3}</div>
  15.  
  16. <div id="top">
  17. <div class="logo">logo</div>
  18. <div class="foto">tutaj foto</div>
  19. </div>
  20.  
  21.  
  22. <div id="glowna">
  23. <div class="lewa">{table}<br></div>
  24. <div class="zawartosc">
  25.  
  26. <?php echo $test; ?>
  27.  
  28.  
  29.  
  30. </div>
  31.  
  32. </div>
  33.  
  34. <div id="dol">tutaj dol</div>
  35.  
  36. </div>
  37.  
  38.  
  39. </body>
  40. </html>
  41.  


a nastepnie w katalogu klienta jest plik index.php

  1. <?php
  2. $id = $_GET['id'];
  3.  
  4.  
  5. $test = "dsadsadasdsadsada 123";
  6.  
  7. include "../_template/templatka/index.php";
  8.  
  9.  
  10.  
  11. ?>


Moje pytanie brzmi czy to nie jest za bardzo głupie? Chcialem zrobic system szablonow na plikach tpl gdzie w odpowiednich miejscach bedzie wstawiany plik php jako ze chcialbym w tych wstawianych plikach wykonywac rozne funkcje ale nie poradzilem sobie z tym narazie i postanowilem zrobic cos takiego testowego w celu wysluchania opinii. Jaki to ma sens takie rozwiazanie jakie wyżej przedstawilem? Poniewaz tym sposobem mam praktycznei wszytsko na dloni i moge do szablonu ktory wybral klient wstawiac wszytsko w taki sposob jaki potrzebuje.
-gohu-
Niewiem. Moze ten post gdzies umknoł w goszczu tutaj:) ale ponawiam pytanie czy budowa takiego systemuma sens? stron na takich szablonach bedzie okolo 100, jak by bylo z wydajnoscia takiego systemu? czy lepiej odrazu pchac sie w smarty itp ?
maniana
Budowa takiego systemu ma sens z uwagi na to, że trochę się nauczysz smile.gif

Ogólnie to kod zawarty w inkludowanych plikach PHP się ładnie wykona. Jeśli chcesz pobrać wynik inkludowanego pliku do zmiennej to skożystaj z:
Cytat
ob_start();
include ( NAZWA_PLIKU );
$wynik = ob_get_contents();
ob_end_clean();

echo $wynik;

Dodatkowo przetworzenie tagów zamkniętych w {} możesz dokonać za pomocą funkcji:
Cytat
function replaceModules($t) {
global $zmienne;
return 'znalazłem '.$t.' i zawiera ona wartość: '.$zmienne[$t];
}
function replaceTags($txt) {
return preg_replace("/{([^}]+)}/e", "replaceModules('\\1')", $txt);
}

ob_start();
include ( 'test.tpl' );
$wynik = ob_get_contents();
ob_end_clean();

$zmienne = array(
'template'=>'xXx'
);

echo replaceTags($wynik);
test.tpl
Cytat
<h1>To jest {template}</h1>


Z templejtów polecam na początek coś lżejszego i szybkiego: http://www.raintpl.com/ 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.