Ako použiť {ifCurrent} makro na otváranie sekcie v menu
- Čamo
- Člen | 780
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 | 6443
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 | 780
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 | 780
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}