Autor Zpráva
Lukasss
Profil *
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
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 *
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
Lukasss: vyhod z includu to './templates/', cesty se tam zadavaji relativni vuci aktualnimu templatu.
Lukasss
Profil *
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');
je to správně?
ninja
Profil
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 *
j uz mi to jde pridal jsem to include v php a umazal jsem $smarty->display('sitemap.tpl'); a funguje
S.
Profil *
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: