Odkaz $this->link bez action Default
- dotTwelve
- Člen | 167
Ahoj, v šabloně mám tento zápis:
<script>
<script language="javascript">
terms = [<?php
foreach ($dictionary as $term) {
echo '"' . $term . '",';
}
?>];
links = [<?php
foreach ($dictionary as $term) {
$args = array('id' => String::webalize($term));
$link = $presenter->link('Dictionary:', $args);
echo '"' . $link . '",';
}
?>];
</script>
</script>
a chci se zeptat jestli tento zápis je v pořádku, nebo jestli to lze
zapsat elegantněji.
Taky bych rád, aby se mi odkaz generoval bez action:Default.
Nyní mám odkazy v tomto formatu: /public/cs/slovnik/default/css a potřebuji
/public/cs/slovnik/css.
Jít na pouze přes routy? Jak?
Děkuji
- Ondřej Mirtes
- Člen | 1536
Tohle Nette svým escapováním nezvládne, protože tam vůbec není využit Latte filter. A souhlasím, v Presenteru si připravit pole, poslat ho do json_encode a v šabloně jen vypsat tu proměnnou. Tohle skládání stringu je ošklivé a navíc se nebude líbit Internet Exploreru – ten nesnáší čárky, za kterými už nic není.
A pro tamten tvar URL musíš správně definovat routu ;)
Editoval Ondřej Mirtes (9. 2. 2010 17:51)
- dotTwelve
- Člen | 167
Dobře, v presenteru si tedy pole do šablony předám pomocí funkce json_encode.
Tím pádem mám v šabloně výstup {!$dictionary}:
<script>
"{"1":"ajax","2":"css","3":"PPC reklama"}"
</script>
respektive {$dictionary}:
<script>
"{\"1\":\"ajax\",\"2\":\"css\",\"3\":\"PPC reklama\"}"
</script>
No ale co s tím dál?
Editoval dotTwelve (10. 2. 2010 9:35)
- dotTwelve
- Člen | 167
Tak jsem dosel zatim sem:
<script>
var pole = {"1":"ajax","2":"css","3":"PPC reklama"};
</script>
<script>
var pole = {!$dictionary};
var a = $.JSON.encode(pole);
var b = $.JSON.decode(a);
alert('klic 1:'+b[1]);
</script>
timto si dokazu vypsat hodnotu klice 1, tedy ajax. Jak ale postupovat abych vypsal kyzeny vysledek.
Editoval dotTwelve (12. 2. 2010 13:53)