Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: include skryptu php w szablonie
Forum PHP.pl > Forum > Przedszkole
nagg
Niedawno zrobilem pierwsz, prosta stronke w szablonie. Dumny jestem jak paw, choc do konca nie kapuje jak to wszystko tam dziala tongue.gif
Jednak spotkalem sie z niemilym problemem.

Wygląda to tak. Chce dodac skrypt kontaktu do szablonu:

kontakt.php
  1. <?php
  2.  
  3.  
  4. require_once 'tpl/functions.php';
  5.  
  6. $tplTresc = file_get_contents('feedback.php'); // tutaj normalnie jest zawartosc strony. w tym przypadku ma to byc skrypt kontakt
  7. ...
  8. $tplTytul = 'tytul';
  9. $tplStopa = file_get_contents('stopa.tpl');
  10. $tplMenuTop = file_get_contents('menu-top.tpl');
  11.  
  12.  
  13. $page = new simpleTemplate();
  14. $page -> loadFromFile('tpl/strona.tpl');
  15.  
  16.  
  17. $page -> addChange('{tresc}', $tplTresc);
  18. $page -> addChange('{tytul}', $tplTytul);
  19. $page -> addChange('{menu}', $tplMenuTop);
  20. $page -> addChange('{stopa}', $tplStopa);
  21.  
  22. echo $page -> executeChanges();
  23.  
  24. ?>


Jezeli plik feedback.php to plik skryptu, na stronie wyswietli sie caly tekst skryptu. Jesli plik feedback.php to jedynie plik w ktorym jest include pliku ze skryptem nic sie nie wyswietla. W zrodle strony pokazuje sie komenda <?php include "feedback.php";?> ale nie jest to interpretowane.
Czy jest wiec jakis sposob na "szablonowanie" plikow ktore includuja skrypty phpquestionmark.gif

Cos mi sie wydaje, ze trzeba jakos oddzielic skrypt od formularza html, i includowac sam form? dobrze mysle? Jest to jedyne wyjscie?

Szczerze mowiac nie chodzi mi tylko o ten konkretny przypadek, tylko ogolnie. Musi byc jakis sposob chyba. A bardzo by to mi ulatwilo zycie smile.gif
Z gory Wam dziekuje smile.gif


hwao
tiraeth
linia 18...
  1. <?
  2. $page -> addChange('{tresc}', $tplTresc)
  3. ?>

zamień na
  1. <?
  2. $page -> addChange('{tresc}', eval('?>'.$tplTresc.'<?'))
  3. ?>


eval" title="Zobacz w manualu PHP" target="_manual() -> dokonuje parsowania php kodu umieszczonego w np. zmiennej...
nagg
Wtedy formularz leci na gore strony, a nie w wyznaczone templatem miejsce...
tiraeth
No to nie poprawiaj 18 linijki tylko zmień 23 na:
  1. <?php
  2. eval('?>'.$page -> executeChanges().'<?');
  3. ?>
nagg
Świetnie. dokładnie o to chodziło. Dzięki wielkie!
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.