Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SMARTY]Przeniesienie podstron na smarty
dawideq03
post 15.02.2013, 11:16:55
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.11.2011

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


Witam,

mam dwie strony, jedna oparta o czysty PHP + MySQL znajduje się pod adresem: http://dawidbtest.home.pl/foreach/index2.php (taki testowy adres), druga, która znajduje się pod adresem http://dawidbtest.home.pl/smarty/ chciałby aby działała na szablonach smarty, problemem jest tu niestety "wyjeżdżanie" tekstu poza cały szablon ( np. na stronie głównej napis "test" znajduje się na samej górze po prawej stronie), wygląda to jakby np. jakiś div nie był domknięty, ale niestety nie znalazłem przyczyny. Może przedstawię nieco kodu:

plik index.php w smarty

  1. <?php
  2. ?>
  3.  
  4. <?php
  5. //pełne ścieżki
  6. // put full path to Smarty.class.php
  7. require('./smarty/Smarty.class.php');
  8. $smarty = new Smarty();
  9. $smarty->setTemplateDir('./templates');
  10. $smarty->setCompileDir('./smarty/templates_c');
  11. $smarty->setCacheDir('./smarty/cache');
  12. $smarty->setConfigDir('./smarty/configs');
  13.  
  14. $menu[0] = array(
  15. 'Strona główna','',);
  16. $menu[1] = array(
  17. 'Aktualności','aktualnosci',);
  18. $menu[2] = array(
  19. 'Galeria','galeria');
  20. $menu[3] = array(
  21. 'Mapa','gmaps',);
  22. $menu[4] = array(
  23. 'Kontakt', 'kontakt');
  24. $menu[5] = array(
  25. 'Księga gości', 'goscie');
  26. $menu[6] = array(
  27. 'Logowanie', 'logowanie');
  28.  
  29. if($_GET['str']=='') include('podstrony/strona_glowna.php');
  30. elseif($_GET['str']=='aktualnosci') include('podstrony/aktualnosci.php');
  31. elseif($_GET['str']=='galeria') include('podstrony/galeria.php');
  32. elseif($_GET['str']=='mapa') include('podstrony/gmaps.php');
  33. elseif($_GET['str']=='kontakt') include('podstrony/contact_form.php');
  34. elseif($_GET['str']=='goscie') include('podstrony/goscie.php');
  35. elseif($_GET['str']=='logowanie') include('podstrony/logowanie.php');
  36. else;
  37.  
  38.  
  39. $smarty->assign("site_title", "Strona domowa");
  40.  
  41. $smarty->assign("str", $_GET["str"]);
  42.  
  43.  
  44. $smarty->assign("menu", $menu);
  45.  
  46.  
  47. $smarty->display('site_head.tpl');
  48.  
  49. $smarty->display('site_header.tpl');
  50.  
  51. //$smarty->display('footer.tpl');
  52.  
  53. ?>



w katalogu /templates, znajduje się plik site_header.tpl , który zawiera strukturę strony"

Kod
<div id="content">
<div id="top">
    Tutaj będzie nagłówek
</div>
  <div id="left">
    {include file="site_menu.tpl"}
</div>
  <div id="page">
    <h1>Witaj na mojej stronie</h1>
    {include file="main_site.tpl"}
    </div>
<div id="right">
    </div>
<div class="clear">
    {include file="footer.tpl"}
    </div>
    </div>
</div>



w site_menu.tpl natomiast pętla foreach, która odpowiada za przeskakiwanie po menu:

Kod
  <ul>
  {foreach item=item from=$menu}
  <li><a href = "index.php?str={$item[1]}">{$item[0]}</a></li>
  {/foreach}
  </ul>



jak zrobić aby napis "test" wyświetlał się pod napisem - "Witaj na mojej stronie"?

dodatkowo mam też zakładki takie jak Aktualności, czy Formularz - to też muszę przerobić na smarty, czy istnieje jakiś prostszy sposób (np. dodanie do /templates np. formularz.tpl i tam przeniesienie kodu a następnie odwołanie się do niego przez np. plik formularz.php? )

Byłbym wdzięczny za każdą pomoc. Wiem że pytania dla niektórych wydają się banalne, ale walczę z tym już jakiś czas i nie daje rady tongue.gif. Dziękuje i pozdrawiam.
Go to the top of the page
+Quote Post
nospor
post 15.02.2013, 11:20:12
Post #2





Grupa: Moderatorzy
Postów: 34 301
Pomógł: 5681
Dołączył: 27.12.2004




Naprawdę w źródle tej drugiej strony nie widzisz, ze nie ma tam w ogóle BODY??

o jakiś tekstach typu TEST przed DOCTYPE nie wspominając?


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dawideq03
post 15.02.2013, 11:32:20
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.11.2011

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


Ok, dodałem body do site_header.tpl, "test" się pojawia, jednak na wszystkich podstronach i niestety pozostaje również na górze :/

Go to the top of the page
+Quote Post
nospor
post 15.02.2013, 11:37:05
Post #4





Grupa: Moderatorzy
Postów: 34 301
Pomógł: 5681
Dołączył: 27.12.2004




To może pokaż kod, gdzie ty ten test masz.... no skad mamy wiedziec jak pomoc, skoro nie wiemy z czym mamy do czynienia...
pokaz tez kod include('podstrony/strona_glowna.php');


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dawideq03
post 15.02.2013, 11:42:51
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.11.2011

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


w strona_glowna.php jest jedynie odwołanie do szablonu:

  1. <?php
  2. $smarty->display('strona_glowna.tpl');
  3. ?>
Go to the top of the page
+Quote Post
nospor
post 15.02.2013, 11:45:34
Post #6





Grupa: Moderatorzy
Postów: 34 301
Pomógł: 5681
Dołączył: 27.12.2004




Czyli najpierw wyświetlasz stronę główną, a dopiero potem site_head.tpl oraz site_header.tpl.... wg. mnie coś tu nie tak, niesądzisz?

Poza tym prosiłem cię o kod, gdzie masz to nieszczęsne TEST. Czytaj proszę wszystko co do Ciebie piszą. No chyba ze pomocy jednak nie potrzebujesz.


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dawideq03
post 15.02.2013, 11:51:51
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.11.2011

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


sam napis "test" znajduje się w strona_glowna.tpl (i tylko to się w nim znajduje) ( w katalogu /templates).

a wywołanie rzeczywiście jest jakieś nie takie, niby teraz napis "test" się teraz pojawia, ale również pozostaje na górze.
Go to the top of the page
+Quote Post
nospor
post 15.02.2013, 11:54:12
Post #8





Grupa: Moderatorzy
Postów: 34 301
Pomógł: 5681
Dołączył: 27.12.2004




...
wywal to:
if($_GET['str']=='') include('podstrony/strona_glowna.php');

elseif($_GET['str']=='aktualnosci') include('podstrony/aktualnosci.php');

elseif($_GET['str']=='galeria') include('podstrony/galeria.php');

elseif($_GET['str']=='mapa') include('podstrony/gmaps.php');

elseif($_GET['str']=='kontakt') include('podstrony/contact_form.php');

elseif($_GET['str']=='goscie') include('podstrony/goscie.php');

elseif($_GET['str']=='logowanie') include('podstrony/logowanie.php');

else;
w calosci


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dawideq03
post 15.02.2013, 12:00:33
Post #9





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.11.2011

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


Super, jest postęp, ten górny napis zniknął, teraz napis test pojawia się na każdej z podstron, przydałoby się aby na każdej było co innego smile.gif.
Go to the top of the page
+Quote Post
nospor
post 15.02.2013, 12:05:12
Post #10





Grupa: Moderatorzy
Postów: 34 301
Pomógł: 5681
Dołączył: 27.12.2004




w site_header masz coś takiego
{include file="main_site.tpl"}
Ładujesz tam zawsze jeden szablon z treścią. Masz tam ładować szablon tresci w zaleznosci od strony czyli:
{include file=$site}

a zmienną $site ustalasz w php i przekazujesz do smarty przed wywołaniem site_header.


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Wersja Lo-Fi Aktualny czas: 17.12.2018 - 04:32