Magento 静态页面菜单

2021-12-19 00:00:00 static templates php magento menu

我想制作一个菜单,可以动态显示来自 CMS 的活动静态页面;例如,如果在我的 CMS 中我有这些页面:

  • 关于我们(已启用)
  • 航运和退款(禁用)
  • 条款和条件(已启用)
  • 联系人(已启用)

然后菜单看起来像:

关于我们 |条款和条件 |联系人

我需要一些关于如何开始的提示;也许之前有人已经这样做了?

解决方案

Dougle非常感谢,真的很有帮助!

联邦在 Magento CMS 中,您可以制作只能使用其 IDENTIFIER 访问的静态页面;我想要的是以某种方式制作一个菜单,该菜单将自动显示 ACTIVE(启用)静态页面;如果您将状态设置为禁用,则不应出现在菜单中;

这是我使用的代码,注意有 IF $PageData['identifier']!='no-route'; no-rute 是 404 页面,所以我不需要它在菜单中,但必须启用,以便 Magento 将 404 错误重定向到此页面;

<?php $collection = Mage::getModel('cms/page')->getCollection()->addStoreFilter(Mage::app()->getStore()->getId());?><?php $collection->getSelect()-> where('is_active = 1');?><ul><?php foreach ($collection as $page): ?><?php $PageData = $page->getData();?><?php if($PageData['identifier']!='no-route') { ?><li><a href="/<?php echo $PageData['identifier']?>"><?php echo $PageData['title'] ?></a><?php } ?><?php endforeach;?>

I want to make a menu that will dynamically show the active static pages from CMS; for example if in my CMS I have these pages:

  • About Us (enabled)
  • Shipping & Refund (disabled)
  • Terms and Conditions (enabled)
  • Contacts (enabled)

then the menu would look like:

About US | Terms and Conditions | Contacts

I need just a few tips on how to get started; maybe somebody has already done this before?

解决方案

Dougle thanks a lot, that was really helpful!

Fede in Magento CMS you can make static pages that you can only access using its IDENTIFIER; what I wanted is somehow make a menu that will automatically display the ACTIVE (enabled) static pages; and if you set status to Disable it should not be in the menu;

here is the code i used, note there is IF $PageData['identifier']!='no-route'; no-rute is the 404 page, so i don't need it in the menu, but it must be enabled so Magento redirects 404 errors to this page;

<div>
    <?php $collection = Mage::getModel('cms/page')->getCollection()->addStoreFilter(Mage::app()->getStore()->getId());?>
    <?php  $collection->getSelect()
          ->where('is_active = 1'); ?>
    <ul>
    <?php foreach ($collection as $page): ?>
      <?php $PageData = $page->getData(); ?>
      <?php if($PageData['identifier']!='no-route') { ?>
      <li>
        <a href="/<?php echo $PageData['identifier']?>"><?php echo $PageData['title'] ?></a>
      </li>
      <?php } ?>
    <?php endforeach; ?>
</div>

相关文章