Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态检索CMS页面,并根据Magento中的当前页面标识符添加活动状态_Magento_Dynamic_Content Management System - Fatal编程技术网

动态检索CMS页面,并根据Magento中的当前页面标识符添加活动状态

动态检索CMS页面,并根据Magento中的当前页面标识符添加活动状态,magento,dynamic,content-management-system,Magento,Dynamic,Content Management System,我已经创建了一个左侧边栏导航模板,可以动态浏览类别和手动添加的CMS页面,请参见下面的代码,我已经设法使活动状态正常工作,但我希望动态浏览页面,然后添加活动状态。有什么想法吗?提前谢谢 <?php $_menu = $this->renderCategoriesMenuHtml(0,'level-top') ?> <?php if($_menu): ?> <?php $current_page = ''; /* * Check to see if its a

我已经创建了一个左侧边栏导航模板,可以动态浏览类别和手动添加的CMS页面,请参见下面的代码,我已经设法使活动状态正常工作,但我希望动态浏览页面,然后添加活动状态。有什么想法吗?提前谢谢

<?php $_menu = $this->renderCategoriesMenuHtml(0,'level-top') ?>
<?php if($_menu): ?>
<?php
$current_page = '';
/*
* Check to see if its a CMS page
* if it is then get the page identifier
*/
if(Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms'):
    $current_page = Mage::getSingleton('cms/page')->getIdentifier();
endif
?>
<nav class="nav-container">
<ul id="nav">
    <?php echo $_menu; ?>
    <li <?php if ($current_page == 'home') { echo 'class="active"'; } else { echo 'class="home"'; } ?>><a href="<?php echo $this->getUrl('home')?>"><span><?php echo $this->__('Home') ?></span></a></li>
    <li <?php if ($current_page == 'about') { echo 'class="active"'; } else { echo 'class="about"'; } ?>><a href="<?php echo $this->getUrl('about')?>"><span><?php echo $this->__('About') ?></span></a></li>
    <li <?php if ($current_page == 'faqs') { echo 'class="active"'; } else { echo 'class="faqs"'; } ?>><a href="<?php echo $this->getUrl('faqs')?>"><span><?php echo $this->__('FAQS') ?></span></a></li>
    <li <?php if ($current_page == 'contacts') { echo 'class="active"'; } else { echo 'class="contacts"'; } ?>><a href="<?php echo $this->getUrl('contacts')?>"><span><?php echo $this->__('Contact Us') ?></span></a></li>
    <li <?php if ($current_page == 'artworks') { echo 'class="active"'; } else { echo 'class="artworks"'; } ?>><a href="<?php echo $this->getUrl('artworks')?>"><span><?php echo $this->__('Artworks') ?></span></a></li>
    <li <?php if ($current_page == 'how-it-works') { echo 'class="active"'; } else { echo 'class="how-it-works"'; } ?>><a href="<?php echo $this->getUrl('how-it-works')?>"><span><?php echo $this->__('How it Works') ?></span></a></li>
</ul>
</nav>
<?php endif ?>
Robert Kent通过迭代CMS页面集合并排除非活动页面和系统页面(无Cookie、无路由等),实现了这一点

要处理活动状态,只需将$current_page与foreach循环中$page['identifier']的值进行比较:

foreach ( $_menu_cms as $cmspage ) {
  $page = $cmspage->getData();
  if ( ! in_array( $page['identifier'], array( 'no-route', 'enable-cookies' ) ) ) {
    $class = ( $page['identifier'] == $current_page ? 'active' : '' );
    printf( '<li><a href="%s" title="%s" class="%s">%s</a></li>',
      $this->getUrl( $page['identifier'], $this->htmlEscape( $page['title'] ), $class, $page['title']
    );
  }
}