Vlastni makro pro upravu HTML

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
JuniorJR
Člen | 181
+
0
-

Mam dotaz ohledne problemu, ktery se mi nedari vyresit.

Chtel bych dosahnout vytvoreni urciteho makra (v danem pripade se jedna o vypis HTML video tagu), pricemz bych rad umoznil oba nasledujici zapisy:

{video 3} {* vypise <video id="3" ...></video> *}

ekvivalentni s:

<video id="3" n:video="params..." ...></video>

V podstate si to predstavuji tak, ze na vystupem bude Html::el(), ale nedari se mi docilit spravneho chovani (pri pouziti n:video zapisu dojde k vypisu html mimo puvodni element, ktery zustane prazdny).

// obsah makra mam definovan cca takto (%node.word obsahuje ID videa)
$writer->write('echo %escape($myObj->getVideoHtml(%node.word))');

// makro jako takove registruji jako callback (druhy parametr v MacroSet::addMacro(...))

function getVideoHtml($id)
{
    $html = Html::el('video', array(
        'id' => $id,
        ... // dalsi defaultni atributy videa (prednost by mely mit ty uvedene primo v HTML sablone)
    ));
    return $html;
}

Prosim o radu, resp. navedeni spravnym smerem. Dekuji.