Jak zapsat @ do sablony pri nacitani z configu?
- ras
- Člen | 135
Ahoj vsem,
v config.neon bych rad uvedel par udaju, ktere budou jednotne pro celou prezentaci a mimo jine je jedna z techto polozek i kontaktni email.
Co vsak nedokazu rozseknout je jak zajistit, aby adresa v configu zapsana klasicky
common:
parameters:
email: web@example.com
se skrze presenter
// nacitani promennych do sablon specifickych pro tento web
protected function createTemplate($class = NULL)
{
$tpl = parent::createTemplate($class);
// data z config.neon
$tpl->email = str_replace('@', '@', $this->context->params['email']);
return $tpl;
}
a skrze sablonu
...
{$email}
...
vykreslila pro uzivatele jako web@example.com, ale v kodu bylo uvedeno web& #064;example.com (ta mezera je tam proto, aby to engine fora nezformatoval jako @, jinak tam samozrejme nepatri) → duvod toho vseho je prosty, snaha o minimalizaci spamu.
Diky za tip.
Radek
Editoval ras (16. 6. 2012 9:00)
- ras
- Člen | 135
… tak se s tim sice peru, ale prohravam na body → porad ve vyslednem kodu dostavam bude vypsane znaky &, #, 0, 6, 4 a ; a nebo @ → ale zapisu v kodu stranky & #064, ktery by se v prohlizeci zobrazil jako @ proste dosahnout nedokazu …
Ano, dokazu si email rozdelit na dve casti, tj. tu pred zavinacem a tu po zavinacu a primo do sablony to pak zapsat jako <pred zavinacem>& #064;<za zavinacem> … ale takto resit bych to nechtel.
Nejde se u nekoho z Vas chvilka a chut pro reseni ?
Dekuji predem velmi.
Radek
PS
Veskere mezery mezi znakem & a #064; jsou
umyslne, aby se Vam na vystupu nezobrazoval @ misto tech 6-ti
znaku, ktere jsou jeho ekvivalentem .. tj. v realu tam ty mezery samozrejme
nemaji co delat
- Filip Procházka
- Moderator | 4668
Co takhle?
$template->registerHelper('email', function ($email) use ($template) {
list($name, $domain) = explode('@', $email, 2);
return $template->escapeHtml($name) . '@' . $template->escapeHtml($domain);
});
{!$email|email}
Editoval HosipLan (18. 6. 2012 20:19)
- ras
- Člen | 135
Diky za kod … je to v podstate to co jsem zkousel na zaklade odkazu od Schmutzky.
Vysledek, tedy to co je v kodu stranky
pri
{$email}
Email: web@profi-vtp.cz<br>
→ coz je stav, ktery nechci
a pri
{!$email}
Email: web&#064;profi-vtp.cz<br>
→ coz browser nevykresli jako „@“
Cely problem je v podstate v tom, ze ten & je potreba NEprepsat na & amp;, protoze pak to bude interpretovano jako @ …
- bojovyletoun
- Člen | 667
hlavně $template->escape nefunguje
Mě funguje tohle (použití {!="tohle@uj.de"
|email}`)
$template->registerHelper('email', function ($email) {
return str_replace('@', '@', $email);
- bojovyletoun
- Člen | 667
Zbytečné je… ale řešil jsem stejnou věc a text se vypisoval, tak jak byl v šabloně a pak už jsem to bez něj nezkoušel.
- ras
- Člen | 135
$template->escape nefunguje, ale kdyz se to udela pres staticke volani, tak to fungje … ale nic to neresi
Ted uz vim, ze za vsim hledej … ;o) ne zenu, idkyz ;o) … Texy.
Nad celym content blockem sablony mam spusteny helper, ktery pousti Texy a udela to, ze prelozi & na & amp; → a to je duvod, proc mi to cele nefunguje.
Zalozil jsem jine vlakno na reseni tohoto problemu → Jak vynechat funkcnoct Texy helperu
Diky za vsechny prispevky zde … bylo to podnetne a posunulo me to dal … byt zatim bez vysledku !