Autor | Zpráva | ||
---|---|---|---|
_fantomas Profil |
#1 · Zasláno: 22. 3. 2015, 15:05:30
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 |
#2 · Zasláno: 22. 3. 2015, 15:19:46
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 |
#3 · Zasláno: 22. 3. 2015, 15:26:18
ja nechcem napísať šablonovací systém, pre začiatok mi stači len ten {$basePath}
|
||
Keeehi Profil |
#4 · Zasláno: 22. 3. 2015, 15:41:11
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 |
#5 · Zasláno: 22. 3. 2015, 15:44:29
Môžeš mi to trochu vysvetliť? :D
|
||
Kubo2 Profil |
#6 · Zasláno: 22. 3. 2015, 15:50:42
_fantomas:
„Môžeš mi to trochu vysvetliť?“ Môžeš skonkretizovať, ktorému z tých piatich riadkov nerozumieš? |
||
_fantomas Profil |
#7 · Zasláno: 22. 3. 2015, 15:52:12
return $pos === FALSE ? '' : substr($_SERVER['REQUEST_URI'], 0, $pos + 1);
a premenná $inputHTML je akože čo? |
||
Kubo2 Profil |
#8 · Zasláno: 22. 3. 2015, 16:03:26
$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 |
#9 · Zasláno: 22. 3. 2015, 18:05:29
A ako to funguje v praxi?
stačí <a href="{$basePath}">Test</a> alebo budem musiet miešať HTML s PHP ? |
||
Alphard Profil |
#10 · Zasláno: 22. 3. 2015, 18:11:46
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 |
#12 · Zasláno: 23. 3. 2015, 15:37:18
[#11] snazimse a dopracoval si sa k tomu?
|
||
Kubo2 Profil |
#13 · Zasláno: 23. 3. 2015, 16:22:57
_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.
|
||
Časová prodleva: 9 let
|
0