Oznámení
Handler: jak a) nahradit odpovídající tag, b) ukončit parsování?
před 12 lety

- pmg
- Člen | 372
Dobrý den,
rád bych pomocí handleru odchytil výskyt horizontální čáry (nejspíš funkce horizline) a nahradil její výskyt jiným kódem.
Dále by mě zajímalo, jak říct parseru, aby u určitého tagu parsovat přestal a vrátil dosavadní výsledek.
Děkuji za odpověď.
před 12 lety

- David Grudl
- Nette Core | 6806
Nejprve, stáhněte si poslední revizi 175.
Vytvořte si handler:
$texy->addHandler('horizline', 'horizlineHandler');
/**
* @param TexyHandlerInvocation handler invocation
* @param string
* @param TexyModifier
* @return TexyHtml|string|FALSE
*/
function horizlineHandler($invocation, $type, $modifier)
{
// zde vraťte něco jiného
return $invocation->proceed();
}
Jak pracovat s handlery už bylo popsáno vícekrát:
ad druhá otázka: můžete to více rozvést?
před 12 lety

- pmg
- Člen | 372
Děkuji, dgx.
David Grudl psal:
ad druhá otázka: můžete to více rozvést?
Zkusím to objasnit příkladem. Toto je požadovaný výsledek:
$vstup =
'Lorem
----
Ipsum';
echo $texy->process($vstup); // Vypíše pouze Lorem
Když bude Texy! procházet vstup, narazí na horizontální čáru. Předá
řízení funkci horizlineHandler, jak jste mi ji předložil.
Příkazem, který hledám, bude obeznámen, že už další kód zpracovávat
nemá. První čára ve vstupu bude tudíš posledním zpracovaným kódem: kód
za ní bude ignorován. Je něco takového možné?
Editoval pmg (1. 9. 2007 10:58)
před 12 lety

- David Grudl
- Nette Core | 6806
Zastavit parser možné není, takže bych asi místo horizontální čáry vložil speciální značku a poté výsledný řetězec ořízl po pozici této značky.