Ako použiť {ifCurrent} makro na otváranie sekcie v menu
- Čamo
- Člen | 798
Zdravím vás,
potreboval by som poradiť s takouto vecou: Mám menu a v ňom sekcie
<ul class="navig">
<li><a n:href=":Default:default" {ifCurrent :Default:default}class="current"{/ifCurrent}>Úvod</a></li>
<li><a n:href=":Blog:Default:default" {ifCurrent :Blog:default:default}class="current"{/ifCurrent}>Blog</a></li>
{ifCurrent :Blog:default:default}
<ul>
<li><a n:href=":Blog:Autori:default">Autori</a></li>
<li><a n:href=":Blog:Clanky:default">Najnovšie</a></li>
<li><a n:href=":Blog:Clanky:oblubene">Najobľúbenejšie</a></li>
</ul>
{/ifCurrent}
</ul>
Teraz ako vidíte, je to tak, že ak sa klikne na sekciu blog, tak sa
zobrazí ten vnorený zoznam.
Lenže teraz, keď kliknem na odkaz Autori, tak sa ten vnorený zoznam zase
skryje. Dá sa to nejako vyriešiť, aby to {ifCurrent} platilo pre všetko, čo
začína na :Blog ???
- Michal Vyšinský
- Člen | 608
A co když použiješ:
{if $presenter->isLinkCurrent(':Blog:*')}
{/if}
Myslím, že macro ifCurrent je deprecated, ale jistý si nejsem.
Podle dokumentace by to mělo fungovat. Možná je problém v tom modulu…
Editoval Michal Vyšinský (1. 7. 2014 15:54)
- David Matějka
- Moderator | 6445
Tohle je asi mozne pouzit pouze jako „kterakoliv akce“ a nikoliv uz „kterykoliv presenter“
- Michal Vyšinský
- Člen | 608
Ještě můžeš zkusit dát do BasePresenteru toto:
public function isModuleCurrent($module)
{
return \Nette\Utils\Strings::startsWith($this->getName(), $module);
}
A požít v podmínce:
{if $presenter->isModuleCurrent('Blog')}
Editoval Michal Vyšinský (1. 7. 2014 16:34)
- Čamo
- Člen | 798
Nefunguje mi to. Teraz to mám takto:
<ul class="navig">
<li><a n:href=":Default:default" {ifCurrent :Default:default}class="current"
{/ifCurrent}>Úvod</a></li>
<li><a n:href=":Blog:Default:default" {ifCurrent :Blog:default:default}class="current"{/ifCurrent}>Blog</a></li>
{ifCurrent :Blog:*}
<ul>
<li><a n:href=":Blog:Autori:default">Autori</a></li>
<li><a n:href=":Blog:Clanky:default">Najnovšie</a></li>
<li><a n:href=":Blog:Clanky:oblubene">Najobľúbenejšie</a></li>
</ul>
{/ifCurrent}
</ul>
- Čamo
- Člen | 798
To mi vyhadzuje chybu: „Cannot load presenter ‚Blog‘, class ‚App\Presenters\BlogPresenter‘ was not found in ‚C:\Apache24\htdocs\myNetteCMS\app/presenters/BlogPresenter.php‘.“
<ul class="navig">
<li><a n:href=":Default:default" {ifCurrent :Default:default}class="current"{/ifCurrent}>Úvod</a></li>
<li><a n:href=":Blog:Default:default" {ifCurrent :Blog:default:default}class="current"{/ifCurrent}>Blog</a></li>
{if $presenter->isLinkCurrent(':Blog:*')}
<ul>
<li><a n:href=":Blog:Autori:default">Autori</a></li>
<li><a n:href=":Blog:Clanky:default">Najnovšie</a></li>
<li><a n:href=":Blog:Clanky:oblubene">Najobľúbenejšie</a></li>
</ul>
{/if}