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
<?php http://www.php.net/ob_start(); http://www.php.net/session_start(); ?> <?php //pełne ścieżki // put full path to Smarty.class.php require('./smarty/Smarty.class.php'); $smarty = new Smarty(); $smarty->setTemplateDir('./templates'); $smarty->setCompileDir('./smarty/templates_c'); $smarty->setCacheDir('./smarty/cache'); $smarty->setConfigDir('./smarty/configs'); $menu[0] = http://www.php.net/array( 'Strona główna','',); $menu[1] = http://www.php.net/array( 'Aktualności','aktualnosci',); $menu[2] = http://www.php.net/array( 'Galeria','galeria'); $menu[3] = http://www.php.net/array( 'Mapa','gmaps',); $menu[4] = http://www.php.net/array( 'Kontakt', 'kontakt'); $menu[5] = http://www.php.net/array( 'Księga gości', 'goscie'); $menu[6] = http://www.php.net/array( 'Logowanie', 'logowanie'); 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; $smarty->assign("site_title", "Strona domowa"); $smarty->assign("str", $_GET["str"]); $smarty->assign("menu", $menu); $smarty->display('site_head.tpl'); $smarty->display('site_header.tpl'); //$smarty->display('footer.tpl'); ?>
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?
Ok, dodałem body do site_header.tpl, "test" się pojawia, jednak na wszystkich podstronach i niestety pozostaje również na górze :/
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');
w strona_glowna.php jest jedynie odwołanie do szablonu:
<?php $smarty->display('strona_glowna.tpl'); ?>
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.
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.
...
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
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 .
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.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)