[Bug] Negace ifCurrent nefunguje

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

Podle návodu zde jsem chtěl použít ve svých šablonách negaci ifCurrent. Bohužel se zdá, že nefunguje. Šablona:

<pre>
`ifCurrent default`: {ifCurrent default}(1) default is current{else /}(2) default is not current{/if}<br />
`ifCurrent !default`: {ifCurrent !default}(3) default is not current{else /}(4) default is current{/if}
</pre>

sice v akci default vygeneruje správný výsledek, ale to jen proto, že podmínka (4) nastane vždy. Tedy v jiných akcích bude výstup chybný. Předpokládám, že je to způsobeno kódem, který se vygeneruje:

<?php
$presenter->link('!default'); //neexistujici odkaz, hm?
if ($presenter->getLastCreatedRequestFlag("current")): ?>
...
<?php endif ?>

Editoval mancze (7. 5. 2009 15:13)

kravčo
Člen | 721
+
0
-

V návode v dokumentácii bol zjavný preklep, bolo tam totiž dvojité negovanie.

{* štandardný ifCurrent *}
{ifCurrent destination}<strong>CURRENT</strong>{/if}
{* negovanie -- LEN použitie else, bez výkričníka *}
{ifCurrent destination}{else}<strong>NOT CURRENT</strong>{/if}

Chyba v dokumentácii má zrejme pôvod v copy+paste chyby z fóra. Keď si to vyjasníš, chybu vo fóre opravím. Dokumentáciu som už opravil.

mancze
Člen | 58
+
0
-

Jojo, tak jsem to taky řešil. Ještě nejsem natolik v Nette zběhlý, abych poznal, zda je o chybu v docu nebo nette :). Protože jsem však čekal nějakou formu negace u ifu (jiné, než použití else větve), tak jsem předpokládal chybu v nette.

Dík za vysvětlení.