Jak vynechat funkcnost Texy helperu „uvnitr“ zpracovavaneho textu ?

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

Ahoj vsem,

mam v @layout.latte

...
<div id="content"><section>{include #content|texy}</section></div>
...

tj. veskere texty v sablone jsou formatovany pomoci Texy (tj. resi se tim spousta crcani s typografii)

Avsak narazim na vykresleni @ pomoci & #064;, kdy mi to helper automaticky prevadi na zavinac → tj. zajimalo by me, zda existuje zpusob, jak ten Texy helper „na chvilku“ vypnout. Tedy neco ala toto
@layout.latte

...
{include #content|texy}
...

sablona pro kontakty → kontakt.latte

{block content}
nejaky text, ktery se ma formatovat skrze Texy helper
</texy helper> email & #064; example.com <texy helper>
a opet text, ktery se ma formatovat skrze Texy helper
{/block}

Je to vubec mozne?

Diky za info.

Radek

(tento thread castecne prekryva jiny muj na toto tema a sice Jak zapsat @ do sablony pri nacitani z configu ?

jtousek
Člen | 951
+
0
-

Napadá mě po texy pustit ještě druhý helper, který sekvenci &amp;#064; nahradí za &#064;

vvoody
Člen | 910
+
0
-

http://www.ascii.cl/htmlcodes.htm

S medzerami
& a m p ; # 0 6 4 ;

A to iste bez medzer :)
&#064;

Edit:
jtousek: typujem ze to chce na jednom mieste (alebo zopar miestach) a nie globalne

Editoval vvoody (19. 6. 2012 16:08)

bojovyletoun
Člen | 667
+
0
-

Možná tě bude zajímat https://api.texy.info/2.1/Texy.html#… . Jiné řešení jsem hledal a neexistují.

ras
Člen | 135
+
0
-

Diky za tip … uz jsem k nemu taky dosel .. kdyz jsem si zkousel hrat s temi ascii zastupnymi symboly…

ale nejak to nedokazu presvedcit …

mam v configu.neon

common:
  parameters:
    email: web@example.com

mam v presenterech po castech, zde uvadim jako jeden celek

protected function createTemplate($class = NULL)
{
  $tpl = parent::createTemplate($class);

  // registrace Texy helperu
  $tpl->registerHelper('texy', callback(new Texy(), 'process'));
  $tpl->emailTest = str_replace('@', '&#064;', $this->context->params['email']);
  return $tpl;
}

mam v @layout.latte

{include #content|texy}

a nakonec mam v salone kontakt.latte

{$emailTest}<br>
{!$emailTest}<br>

mam tam oboje, abych mohl pozorovat rozdilnosti v chovani ;o)

… ???

vvoody
Člen | 910
+
0
-

Zle som pochopil problem :) ako vzdy.

ras napsal(a):
… tj. veskere texty v sablone jsou formatovany pomoci Texy (tj. resi se tim spousta crcani s typografii)

Ak to dobre chapem tie tvoje texty co idu na web ako content obsahuju &#064;?
Takze texy prelozi:
&#064; na &amp;#064; co sa zobrazi na webe ako &#064;

Neda sa zabezpecit aby v tom zdrojovom texte boli nahradene vsetky &#064; za @?

jtousek
Člen | 951
+
0
-

@vvoody: Přečti si toto vlákno, takhle jsi trochu mimo. ;-)

vvoody
Člen | 910
+
0
-

Jo aha, uplne naopak :D tak potom ten zavinac z emailu nahradit tymto &amp;#064; a texy by to malo preformatovat na &#064;. Stale som mimo? :)

jtousek
Člen | 951
+
0
-

@vvoody: Teď jsem možná mimo zase já. :-D Proč by proboha texy převádělo &amp; na &? Texy nemá žádný důvod něco takového dělat, ne?

Editoval jtousek (19. 6. 2012 21:26)

vvoody
Člen | 910
+
0
-

No ja ani netusim preco prevadza &#064; na @ :D z tohoto topicu mi vypliva, ze to tak robi, preto som tak nejako usudil, ze prelozi aj &amp; na &.

jtousek
Člen | 951
+
0
-

Tak o tom tedy silně pochybuju. :-D

vvoody
Člen | 910
+
0
-

A jo, vobec som sa nezamyslel co by to znamenalo pre bezpecnost keby to ten ampersand prekladalo. Tak potom nic no :D Html entitu cez texy neprepasujeme. Sa tu blbec snazim o nieco, comu vlastne texy zabranuje.

ras
Člen | 135
+
0
-

To bojovyletoun>

Co se tyce Texy promenne $obfuscateEmail … tak jsem ji zkousel pouzit .. tj. doufam, ze dobre je to takto

// registrace Texy helperu
  $tpl->registerHelper('texy', callback(new Texy($obfuscateEmail = true/false), 'process'));
  $tpl->emailTest = str_replace('@', '&#064;', $this->context->params['email']);
  $tpl->emailTest2 = $this->context->params['email'];
  return $tpl;

→ at jiz to bylo true ci false, tak jsem nezaznamenal zmenu v kodu, bohuzel … at jiz jsem delal logicke zruseni toho str_replace ci je pouzil → vzdy se & prelozil na & amp; → a zde jadro pudla, ktere jsem jeste nerozloukl …

Aurielle
Člen | 1281
+
0
-

To, co se snažíš udělat pomocí toho str_replace, udělá Texy se zapnutým $obfuscateEmail za tebe.

ras
Člen | 135
+
0
-

to gmvasek: prispevek pred Tvym jiz obsahuje zapis s $obfuscateEmail (uz jsem se k nemu coby potencialnimu reseni dopracoval), ale nedokazu docilit mnou pozadovaneho vysledku … resp. mam pocit, ze Texy vubec na zadani toho parametru nereaguje … zadavam ho spravne?

Aurielle
Člen | 1281
+
0
-

Možná si budeš chtít upravit způsob vytváření Texy:

$texy = new Texy();
$texy->obfuscateEmail = TRUE;

$tpl->registerHelper('texy', callback($texy, 'process'));
ras
Člen | 135
+
0
-

diky gmvasek

co jsem zjistil …

kdyz udelam v sablone

{block content}
{!$email|texy}
{/block}

tak to opravdu texy zformatuje a zohledni nastaveni $obfuscateEmail na TRUE/FALSE

pokud to vsak v sablone provedu

{block content|texy}
{!$email}
{/block}

nebo pres kombinaci @layout.latte + sablona

{include #content|texy}
{block content}
{!$email}
{/block}

tak to nefunguje, resp. v kombinaci @layout+sablona je Texy funkcni, tj. formatovani napr. * * neco * * fukcni a vysledny text je tucne, ale nastaveni $obfuscateEmail zcela ignoruje

Takze ted uz vim, proc se s tim tak dlouho crcam … a vysledkem je zjisteni, tudy cesta nevede, tj.

Pouzit Texy jako helper na cely CONTENT skrze zapis {include #content|texy} v @layout.latte je sice mozne, ale se zavinacem si pak musim stejne vyhrat rucne, protoze Texy to proste neudela.

Diky vsem prispevovatelum.