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.