Autor Zpráva
Plikr
Profil *
Zdravím, potřeboval bych poradit. Potřebuji udělat systém na vlastní šablony k webu který vytvářím. U hodně větších systémů jako např. phpbb jsem viděl v šablonách vkládané proměnné pomocí {neco}. Jak toho docílit? PHP se v souboru s šablonou ani nemusí nikde otevírat, pouze vkládat proměnné takhle, děkuji za pomoc.
ShiraNai7
Profil
Je to template systém, jako například smarty. Je jich víc, nicméně nemůžu žádny doporučit, protože s žádným nemám větší zkušenosti (používám své vlastní výtvory).
Joker
Profil
Plikr:
Viz ShiraNai7, je potřeba použít šablonovací systém. Já taky používám svůj vlastní, jestli chcete nějaký jednoduchý anebo nějaký základ pro vlastní pokusy, tady je.
Plikr
Profil *
Děkuji oboum, využiji systém od Jokera.
Plikr
Profil *
Akorát bych měl ještě otázku. Tohle jsem dal do index.php:
<?php
include("templates.php");

$tpl = new tpl("default");
$tpl->register_tpl("index.html");
$tpl->assign("TEST", "testik");
?>

//JoresTemplate() jsem předělal na tpl()
ve složce default, v souboru index.html mám
{TEST}

A normálně se vypisuje. Prosím, v čem dělám chybu? Děkuji
Joker
Profil
Plikr:
Děkuji oboum
Oběma ;-)

Ad kód, register_tpl nemá správný argument, viz dokumentace: Parametrem metody je pole ve tvaru název=>soubor, kde soubor je jméno souboru se šablonou a název je zvolený název šablony, přes který se pak lze na šablonu odkazovat.
A ještě tam chybí zpracování a vypsání kódu (ale jestli to něco vypisuje, nejspíš bude někde mimo tu vloženou část):
<?php
include("templates.php");

$tpl = new tpl("default");
$tpl->register_tpl(array("sablona"=>"index.html")); // zaregistruje soubor index.html jako šablonu sablona
$tpl->assign("TEST", "testik"); // to přiřadí proměnné {TEST} v šabloně hodnotu „testik“
echo($tpl->parse("sablona")); // metoda parse zpracuje šablonu a vrátí výsledný kód
?>
edit: opravy chyb.
Plikr
Profil *
Děkuji
Plikr
Profil *
Prosimtě, mám problém ještě s podmínkou. Viz.
<!-- JTPL: IF {SESSION_ADMIN} [NOT] = "1" ID: admin_menu -->
a
<!-- JTPL: ELSE: admin_menu -->
b
<!-- JTPL: ENDIF: admin_menu -->


Vypisuje to a i b :(
Joker
Profil
Plikr:
Tam nemají být ty složené závorky a hranaté závorky u NOT (v dokumentaci to jen značí, že to je nepovinné)
<!-- JTPL: IF SESSION_ADMIN NOT = "1" ID: admin_menu -->
I když já se obvykle snažím dávat spíš pozitivní podmínky, je to kratší a jednodušší na pochopení
<!-- JTPL: IF SESSION_ADMIN = "1" ID: admin_menu -->
b
<!-- JTPL: ELSE: admin_menu -->
a
<!-- JTPL: ENDIF: admin_menu -->

Vypisuje to a i b :(
Další informace jde vyčíst ze zdrojového kódu; Když se vůbec nerozpozná příkaz šablonovacího systému, zůstane ve výstupu původní kód beze změny. Když se rozpozná blok IF, ale nepodaří se ho zpracovat, bude ve výstupu <!-- JTPL ERROR -->.
Případně do $tpl->errors se ukládají chybové hlášky ze šablonovacího systému anebo pro sestování stačí na začátku zavolat $tpl->debug(); a budou se vypisovat i do stránky.

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: