Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]PEAR i szablony
Forum PHP.pl > Forum > Przedszkole
kokokola
Witam.

Od kilku dni tworzę swoje szablony przy użyciu PEARa i do tej pory wszystko szło idealnie.
Jednak dzisiaj postanowiłem zrobić stronę, gdzie na stronie głównej będą inne divy niż na pozostałych podstronach i tutaj rodzi się problem.

Jeżeli w pliku np. home.html (który odpowiada za kontent na stronie głównej) umieszczę znaczniki zdefiniowane w index.php takie jak {informacje}{wiadomosc} itp to po prostu zostaną one pominięte tak jakby te szablony przestały działać.


Wie może ktoś jak mi pomóc?
Fragment pliku index.php (tak jakbym z okazji późnej pory napisał niezrozumiale)
  1. $tpl4 = new HTML_Template_IT(HTML_FOLDER);
  2. $tpl4->loadTemplatefile('naglowek.html', true, false);
  3. $tpl->setVariable('naglowek', $tpl4->get());
  4.  
  5. $tpl5 = new HTML_Template_IT(HTML_FOLDER);
  6. $tpl5->loadTemplatefile('promocje.html', true, false);
  7. $tpl->setVariable('promocje', $tpl5->get());
  8.  
  9. $tpl6 = new HTML_Template_IT(HTML_FOLDER);
  10. $tpl6->loadTemplatefile('plakat.html', true, false);
  11. $tpl->setVariable('plakat', $tpl6->get());
  12.  
  13. $tpl7 = new HTML_Template_IT(HTML_FOLDER);
  14. $tpl7->loadTemplatefile('stopka.html', true, false);
  15. $tpl->setVariable('stopka', $tpl7->get());


Fragment pliku index.html
  1. <body>
  2. <div id="content">
  3. <div id="naglowek">{naglowek}</div>
  4. <div id="menu">{menu}</div>
  5. <div id="partnerzy">{partnerzy}</div>
  6. <div id="box">{tresc}
  7.  
  8. <div id="promocje"></div>
  9. <div id="wkrotce"></div>
  10. <div id="rozklad"></div>
  11. <div id="newsletter"></div>
  12. <div id="dol">{dol}</div>
  13.  
  14. </div>
  15. <div id="stopka">{stopka}</div>
  16. </div>
  17.  
  18. </body>


Fragment pliku home.html
  1. <div id="promocje">{promocje}</div>
  2. <div id="wkrotce">{wkrotce}</div>
  3. <div id="rozklad">{rozklad}</div>
  4. <div id="newsletter">{newsletter}</div>
  5. <div id="dol">{dol}</div>


jak z index.html wyrzucę divy powielone w home.html to również nic się nie dzieje.
l0ud
Eh, nagmatwałeś strasznie (zwłaszcza z tym podaniem {informacje}{wiadomosc} jako przykładu, którego nie ma w kodzie).

Ale domyślam się, o co może chodzić. Zmienne, które deklarujesz w szablonie używając setVariable(), nie są globalne. Przypisując coś do $tpl , nie stanie się to magicznie widoczne dla $tpl4, $tpl5 i innych. Podejrzewam, że w $tpl masz załadowany plik index.html , przypisujesz mu jakieś zmienne. Następnie dla home.html tworzysz inny obiekt, np. $tpl6 . To nie sprawi, że zmienne zadeklarowane dla $tpl staną się w nim widoczne. Musisz przypisać je do niego oddzielnie ($tpl6->setVariable(...)). Nie sądzę jednak, żeby w dobrze zaprojektowanym szablonie było to potrzebne. Po co ci w treści podstrony dostęp do danych np. stopki, loga?

...jeżeli nie trafiłem opisz problem dokładniej 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.