Skip to main content

How to create navigation in ZF2 with partial template

Step -1 : Create partial template

location : Application/view/partial/navigation.phtml

in navigation.phtml file put your custome html  code. like
<ul class="sidebar-menu">
 <li class="header">MAIN NAVIGATION</li>
 <?php $count = 0 ?>
<?php foreach ($this->container as $page): ?>
 <?php /* @var $page Zend\Navigation\Page\Mvc */ ?>
    <?php // when using partials we need to manually check for ACL conditions ?>
    <?php if( ! $page->isVisible() || !$this->navigation()->accept($page)) continue; ?>
    <?php $hasChildren = $page->hasPages() ?>
    <?php if( ! $hasChildren): ?>
    <li <?php if($page->isActive()) echo 'class="active treeview"'?>>
        <a class="nav-header" href="<?php echo $page->getHref() ?>">
            <i class="fa fa-dashboard"></i><span> <?php echo $this->translate($page->getLabel()) ?> </span> <i class="fa fa-angle-left pull-right"></i>
        </a>
    </li>
    <?php else: ?>
        <li class="treeview">
            <a  href="#">
                <i class="fa fa-dashboard"></i> <span>  <?php echo $this->translate($page->getLabel()) ?></span> <i class="fa fa-angle-left pull-right"></i> 
            </a>
            <ul class="treeview-menu " id="page_<?php echo $count ?>">
            <?php foreach($page->getPages() as $child): ?>
                <?php // when using partials we need to manually check for ACL conditions ?>
                <?php if( ! $child->isVisible() || !$this->navigation()->accept($child)) continue; ?>
                <li>
                    <a href="<?php echo $child->getHref() ?>">
                        <i class="fa fa-circle-o"></i> <?php echo $this->translate($child->getLabel()) ?>
                    </a>
                </li>
            <?php endforeach ?>
            </ul>
         </li>   
        <?php endif ?>

    <?php $count++ ?> 
<?php endforeach ?> 
</ul>

Step -2 : In you layout.phtml 

  1.   <?php $partial = array('partial/navigation.phtml', 'default') ?>
      <?php $this->navigation('navigation')->menu()->setPartial($partial) ?>
      <?php echo $this->navigation('navigation')->menu()->render() ?>

Step -3 In module.config.php  

'service_manager' => array(
       ----your code -
        'factories' => array(
            'navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory'
        ),
       - --your code ----
),
'navigation' => array(
    'default' => array(
        array(
            'label' => 'Home',
            'route' => 'home', //you can also use uri
           ), 
        ),
    ),

Comments

Popular posts from this blog

HTML Emailing in ZF2

<?php namespace Application\Model; use Zend\Mail\Message; use Zend\Mime\Message as MimeMessage; use Zend\Mime\Part as MimePart; use Zend\Mail\Transport\Sendmail as SendmailTransport; use Zend\Mail\Transport\Smtp as SmtpTransport; use Zend\Mail\Transport\SmtpOptions; use Zend\View\Renderer\PhpRenderer; use Zend\View\Resolver\TemplatePathStack; use Zend\View\Model\ViewModel; use Zend\View\Model\ModelInterface; class ApiEmail extends ApiInterface {    protected $From = "XXXXX@gmail.com";    protected $FromName = "XXXX";    protected $To = "" ;    protected $Subject = "" ;    protected $Body = "" ;    protected $Cc = "XXXXXX@gmail.com";    protected $Bcc = "XXXXX@gmail.com" ;    protected $ReplyTo = "XXXX@gmail.com" ;    protected $Sender = "" ;    protected $Encoding = "UTF-8" ;    protected $MESSAGE ; // getter setter ...

How to Set Up a Home Smart Office – A Step-by-Step Guide

  By Luna Lush In today's world, working from home has become the norm for many, making it essential to have a smart, efficient, and comfortable home office. With the right tech tools, you can transform any space into a productivity hub. In this tutorial, we'll walk you through setting up a home smart office that maximizes efficiency, comfort, and connectivity. Step 1: Choose the Right Space Before diving into tech, pick the ideal spot in your home. Whether it's a dedicated room or a cozy corner, ensure the area is quiet, well-lit, and free from distractions. Good lighting is crucial for video calls and reduces eye strain during long hours of work. Step 2: Invest in a Smart Desk Setup A smart desk setup is the foundation of your home office. Consider the following: Adjustable Standing Desk: Invest in a desk that allows you to switch between sitting and standing. Many options come with programmable settings to easily adjust the height. Ergonomic Chair: A chair that support...

Grouped CheckboxSelectMultiple in Django template

from itertools import groupby from django import forms from django . forms . models import ModelChoiceIterator , ModelMultipleChoiceField from . models import Feature , Widget class GroupedModelMultipleChoiceField ( ModelMultipleChoiceField ): def __init__ ( self , group_by_field , group_label = None , * args , ** kwargs ): """ ``group_by_field`` is the name of a field on the model ``group_label`` is a function to return a label for each choice group """ super ( GroupedModelMultipleChoiceField , self ). __init__ (* args , ** kwargs ) self . group_by_field = group_by_field if group_label is None : self . group_label = lambda group : group else : self . group_label = group_label def _get_choices ( self ): if hasattr ( self , '_choices' ): return self . _choices return GroupedModelCho...