[FLOW3-general] checking for active uri
Robin Lehrmann
robin at snow-hamster.de
Tue Dec 11 17:44:51 CET 2012
Hello together.
I want to create a simple menu template:
Controller:
public function initializeView(\TYPO3\Flow\Mvc\View\ViewInterface $view) {
/* @var $view \TYPO3\Fluid\View\TemplateView */
$view->setPartialRootPath('../Packages/Application/SNOW.Start/Resources/Private/Partials');
$this->uriBuilder->setCreateAbsoluteUri(TRUE);
$view->assign('active-menu-item', $this->uriBuilder->uriFor());
}
Template (eq Partial):
<div class="menu">
<div class="menu-item">
<a id="projects"<f:if condition="{active-menu-item} ==
{f:uri.action(absolute: true, package: 'SNOW.Projects', controller:
'Standard', action: 'index')}">class="active"</f:if>
href="{f:uri.action(absolute: true, package: 'SNOW.Projects',
controller: 'Standard', action: 'index')}">
<img alt="projects" src="{f:uri.resource(path:
'Images/projects.png', package: 'SNOW.Start')}" />
</a>
</div>
<div class="menu-item">
<a id="blog"<f:if condition="{active-menu-item} ==
{f:uri.action(absolute: true, package: 'SNOW.Blog', controller:
'Standard', action: 'index')}">class="active"</f:if>
href="{f:uri.action(absolute: true, package: 'SNOW.Blog', controller:
'Standard', action: 'index')}">
<img alt="blog" src="{f:uri.resource(path: 'Images/blog.png',
package: 'SNOW.Start')}" />
</a>
</div>
<div class="menu-item">
<a id="person"<f:if condition="{active-menu-item} ==
{f:uri.action(absolute: true, package: 'SNOW.Person', controller:
'Standard', action: 'index')}">class="active"</f:if>
href="{f:uri.action(absolute: true, package: 'SNOW.Person', controller:
'Standard', action: 'index')}">
<img alt="person" src="{f:uri.resource(path:
'Images/person.png', package: 'SNOW.Start')}" />
</a>
</div>
<div class="menu-item">
<a id="justice"<f:if condition="{active-menu-item} ==
{f:uri.action(absolute: true, package: 'SNOW.Justice', controller:
'Standard', action: 'index')}">class="active"</f:if>
href="{f:uri.action(absolute: true, package: 'SNOW.Justice', controller:
'Standard', action: 'index')}">
<img alt="justice" src="{f:uri.resource(path:
'Images/justice.png', package: 'SNOW.Start')}" />
</a>
</div>
</div>
it works, but it's really involved.
My Idea is maybe to add an function to check if the menu entry is active.
<f:link.action activeClass="active">Link</f:link.action>
<output>
<a href="http://example.de/route.html" class="active"></a>
</output>
I would set the default classname to active.
Cheers, Robin
More information about the FLOW3-general
mailing list