Autor | Zpráva | ||
---|---|---|---|
Lukasss Profil * |
#1 · Zasláno: 23. 4. 2008, 15:33:28
Dobrý den začal jsem používat šablonovací systém Smarty.
Chci si do něj přepsat svůj CMS a chci tím oddělit vrstvy. Narazil jsem však na problém a tak prosím o radu. Mám soubor index.php a v něm je tento case if(isset($_GET['c'])) { switch(htmlspecialchars(addslashes($_GET['c']))) { case 'page': $url = './page.php'; break; case 'guestbook': $url = './guestbook.php'; break; case 'search': $url = './search.php'; break; case 'sitemap': $url = './sitemap.php'; break; default: if($row_head['config_homepage']==='url') { $url=$row_head["config_homepage_url"]; } else { $url='./page.php'; } } } else { if($row_head['config_homepage']==='url') { $url=$row_head['config_homepage_url']; } else { $url="./page.php"; } } include $url; poté dole v souboru index.php mám $smarty->display('index.tpl'); no a do prostřed toho souboru index.php vkládám tím casem stránky, a potřebuji pomocí toho smarty ostylovat i ty ostatní soubory jako např page.php atd, mám vytvořenou už i šablonu page.tpl, ale nevím kde mám dát $smarty->display('page.tpl'); a jak to vlastně správně includovat by to fungovalo a správně se mi zobrazoval i ten střed |
||
ninja Profil |
#2 · Zasláno: 23. 4. 2008, 15:49:40
primo ve Smarty sablone na pozadovane misto dej:
{include file="page.tpl"} Pripadne si pozadovany obsah stranky (search, sitemap, guestbook, atd). uloz do Smarty pormene $stranka a pak: {include file="`$stranka`.tpl"} |
||
Lukasss Profil * |
#3 · Zasláno: 23. 4. 2008, 16:28:21
Dal sem do index.php napevno
$smarty->assign('url','sitemap'); a do souboru index.tpl {include file="./templates/`$url`.tpl"} ale píše to Warning: Smarty error: unable to read resource: "./templates/sitemap.tpl" in C:\Program Files\VertrigoServ\www\grygarcms\libs\Smarty.class.php on line 1092 nemůže to najít zdroj, jinak všechny šablony mám ve složce ./templates/ a v souboru sitemap.php je $smarty->display('sitemap.tpl'); |
||
ninja Profil |
#4 · Zasláno: 23. 4. 2008, 16:44:09
Lukasss: vyhod z includu to './templates/', cesty se tam zadavaji relativni vuci aktualnimu templatu.
|
||
Lukasss Profil * |
#5 · Zasláno: 23. 4. 2008, 16:49:12
a ted mi to vyhazuje Notice: Undefined index: title_id1 in C:\Program Files\VertrigoServ\www\grygarcms\templates_c\%%BC^BCC^BCC4CBB3%%sitema p.tpl.php on line 3
což vlastně znamená, že mi to nenačte ty data z toho souboru sitemap.php na konci toho souboru mám $smarty->display('sitemap.tpl'); |
||
ninja Profil |
#6 · Zasláno: 23. 4. 2008, 18:51:53
A v jake casti kodu includujes sitemap.php?
Vsechny podcasti PHP kodu musis naincludovat primo v PHPcku a priradit Smarty promene, pak zavolas jednou Smarty->display() a ve vlastni smarty sablone includujes jendotlive podcasti stranky (header, content, footer). |
||
Lukasss Profil * |
#7 · Zasláno: 23. 4. 2008, 23:41:46
j uz mi to jde pridal jsem to include v php a umazal jsem $smarty->display('sitemap.tpl'); a funguje
|
||
S. Profil * |
#8 · Zasláno: 25. 4. 2008, 10:22:01
Zdravím,
mám takový zvláštní dotaz ohledně Smarty, na který nemůžu nikde na webu najít odpověď. Mám dvouúrovňovou stromovou strukturu, kterou v php kódu načítám takto: $result = mysql_query("SELECT * FROM obsah WHERE up = 0"); while ($row = mysql_fetch_array ($result)) { $content[] = $row; $id = $row['id']; $result2 = mysql_query ("SELECT * FROM obsah WHERE up = ".$id); while ($row2 = mysql_fetch_array ($result2)) { $subcontent[] = $row2; } } V šabloně teď potřebuji stromovou strukturu vypsat, a to takto: Pod každým hlavním nadpisem chci vypsat jeho druhé úrovně, ale tak, aby se nevypsaly celé (protože záznamů je tam hodně), ale jen první 4 slova a za nimi tři tečky. Zatím vypadá šablona takto: (je tam ale chyba, že vypíše první čtyři řádky jen pod prvním nadpisem, další nadpisy zobrazí, ale jejich druhé úrovně už ignoruje a nezobrazí) {section name=nazev loop=$content} <li class="main"> <br />{$content[nazev].nazev} </li> <ul class="sub"> {section name=nazev2 loop=$subcontent max=4} {if $content[nazev].id eq $subcontent[nazev2].up} {$subcontent[nazev2].nazev} {/if} {/section} </ul> {/section} Pomocí té funkce "max" v příkazu "section" to nešlo, pomocí truncate taky ne, protože ten ořezal každé slovo na danou délku, a ne celý řetězec slov na danou délku. Už si nevím rady, pomohl byste mi někdo, prosím? Předem děkuji a přeji hezký den. |
||
Časová prodleva: 17 let
|
0