Autor Zpráva
_fantomas
Profil
Ahoj, potreboval by som si vytvoriť PHP triedu na vlastné makra ak by som do HTML napísal napr {$basePath} aby mi vypísalo základnú URL webu,
zatiaľ som na webe nič čo by mi pomohlo vytvoriť vlastné makro nanašiel. Potrebujem buď vysvetlenie alebo odkaz na tutorial. Pozeral som na súbory
v Nette frameworku od latte kde sú tie makra napísane ale som z toho zmätený. Za pomoc dakujem :)
Keeehi
Profil
Napsat šablonovací systém s né jen tupým nahrazováním řetězců není nic snadného. Pokud nechceš používat celé nette tak můžeš použít klidně jen jeho šablonovací část. Po tom, co bylo nette rozděleno do cca 20ti menších projektů je to snazší než kdy dříve.
_fantomas
Profil
ja nechcem napísať šablonovací systém, pre začiatok mi stači len ten {$basePath}
Keeehi
Profil
function getBasePath() {
    $pos = strrpos($_SERVER['REQUEST_URI'], '/');
    return $pos === FALSE ? '' : substr($_SERVER['REQUEST_URI'], 0, $pos + 1);
}

$outputHtml = str_replace('{$basePath}', getBasePath(), $inputHtml);
_fantomas
Profil
Môžeš mi to trochu vysvetliť? :D
Kubo2
Profil
_fantomas:
Môžeš mi to trochu vysvetliť?

Môžeš skonkretizovať, ktorému z tých piatich riadkov nerozumieš?
_fantomas
Profil
return $pos === FALSE ? '' : substr($_SERVER['REQUEST_URI'], 0, $pos + 1);

a premenná $inputHTML je akože čo?
Kubo2
Profil
$inputHTML je argument funkcie str_replace(). Má obsahovať text, v ktorom sa „makro“ {$basePath} nahradí za svoju reprezentáciu.
Riadok 3 ti z URL adresy požiadavku vygeneruje základnú cestu (base path).
_fantomas
Profil
A ako to funguje v praxi?

stačí <a href="{$basePath}">Test</a>

alebo budem musiet miešať HTML s PHP ?
Alphard
Profil
Podobný dotaz tady byl nedávno.

Kdo chce takto používat makra, musí si je sám vyhodnocovat, to znamená zpracovávat zdrojový kód jako text. Načíst ho lze pomocí souborových funkcí (možnost zachytávání z bufferu moc nedoporučuji) a tak získáte proměnnou $inputHtml z [#4] Keeehi.
Po vlastním zpracování se výsledky vypíší na výstup.
snazimse
Profil
_fantomas:

Nedávno jsem měl stejný dotaz viz: Jak na vlastní makra v php?
_fantomas
Profil
[#11] snazimse a dopracoval si sa k tomu?
Kubo2
Profil
_fantomas:

Však si prečítaj to snazimsemom odkázané vlákno.
snazimse
Profil
_fantomas:

Jo, však tam je všechno napsané ,jestli chceš např jen to baseurl, tak to uděláš přes php funkci str_replace, když chceš jednoduché makro ,když si nechceš tahat celý šablonovací systém, jinak pak vlastní preprocesor, jak píše Alphard. Ještě bych dodal v mém dotazu, jak píše i Jan Tvrdík, že to vlastně nejsou makra officiálně v php, ale nějaká html značka, která se vyhodnotí jako php hodnota a třeba Nette to nazývá makra.

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: