Oznámení

Provoz fóra byl ukončen

Maskování emailu

před 12 lety

Gringo
Člen | 32

Když tvořím pomocí TexyHTML, je možné nějak jednoduše zamaskovat emailovou adresu stejně, jako to dělá Texy? Tzn, abych z odkazu <code>mailto:aaa@bbb.ru</code> měl tu kupku entit?

před 12 lety

David Grudl
Nette Core | 6806

Ano, TexyHtml to dělá automaticky.

před 12 lety

Gringo
Člen | 32

A ještě si dovolím podotázku – jak to udělat, aby se mi zamaskoval text takového odkazu, tzn. abych ve výsledku měl

<a href="(kupka entit)">aaa&#64;<!---->bbb.ru</a>

Případně, jak pomocí TexyHTML můžu vložit komentář?

Editoval Gringo (29. 5. 2007 20:59)

před 12 lety

David Grudl
Nette Core | 6806

Textový obsah dokumentu, který se vytváří pomocí TexyHTML (například metodou setText), je ještě dále zpracováván. Při tom jsou znaky < & > a další nahrazeny za entity atd. Takže není možné přímo takto vložit HTML komentář.

Pokud však chci vložit text, který už dále nemá být nijak zpracováván, musím ho „ochránit“ pomocí funkce $texy->protect(). Příklad:

$text = 'nechráněná <část>';
$text .= $texy->protect('<!-- chráněná část -->', Texy::CONTENT_MARKUP);
$text .= 'opět nechráněná část';

$el = TexyHtml::el('a')->setText($text);

Druhým parametrem funkce protect je jedna z konstant Texy::CONTENT_*. Ta popisuje, co je vlastně obsahem chráněného řetězce, konkrétně určuje, jak tento obsah ovlivňuje tok dokumentu. Možnosti jsou:

  • Texy::CONTENT_MARKUP – obsahuje pouze HTML komentáře nebo inline značky (B, I, EM, …), sami o sobě neviditelné
  • Texy::CONTENT_REPLACED – navíc může obsahovat značky renderující nějaký viditelný řádkový obsah (IMG, INPUT, OBJECT, ale i BR)
  • Texy::CONTENT_TEXTUAL – navíc může obsahovat text (za text se počítají i mezery)
  • Texy::CONTENT_BLOCK – navíc může obsahovat blokové HTML značky (DIV, P, TABLE, TD, …)

V případě HTML komentáře se použije Texy::CONTENT_MARKUP.

před 12 lety

Gringo
Člen | 32

Vyčerpávající odpověď – díky za to! :)