如何将属性值作为列表添加到 Magento 的页脚?

Posted

技术标签:

【中文标题】如何将属性值作为列表添加到 Magento 的页脚?【英文标题】:How to add attribute values to the footer in Magento, as a list? 【发布时间】:2013-09-11 20:03:47 【问题描述】:

我在 Magento 中的产品具有品牌属性。我需要做的是在页脚中显示品牌列表。类似于:我们的品牌:品牌 1、品牌 2、品牌 3...

据我了解,我需要以某种方式从高级搜索中检索值并将它们作为列表显示在页脚中,但我不知道该怎么做。有人对此有解决方案吗?

【问题讨论】:

【参考方案1】:

有几个步骤可以遵循

这里我将详细说明如何在页脚添加自定义属性。

1.您必须在块上创建以获取您的所有品牌产品并分配您的自定义属性

用于块。

$attributes = Mage::getSingleton('eav/config')
    ->getEntityType(Mage_Catalog_Model_Product::ENTITY) // pass your attribute id
    ->getAttributeCollection()
    ->addSetInfo();

foreach ($attributes as $attribute)

    if ($attribute->usesSource())
    
        echo "$attribute->getFrontendLabel():\n";
        foreach ($attribute->getSource()->getAllOptions() as $option)
        
            echo "  $option['label']\n";
        
        echo "\n";
    

以上是打印逻辑,您应该将其存储在一个数组中,以返回一个变量。

2. 在您的主题中创建视图文件以用于显示目的,并在该 home_logo 文件中调用该块函数。

<?php $_brandsCollection = $this->getBrandsLogoCollection();?>
<div class="block block-layered-nav">
<div class="block-title">
    <strong><span><?php echo $this->__('Brands') ?></span></strong>
</div>
 <div class="block-content" > 
          <div id="Carousel2" class="carousel">
                <div class="button navButton previous" style="display:none;">Back</div>
                <div class="button navButton next" style="display:none;">More</div>
                <div class="container">
                    <div class="items">
                    <?php foreach ($_brandsCollection as $_brand): ?>                    
                        <div class="item">
                            <div class="key caption"></div>
                            <div class="icon">
                                                        <img class="brand-base-logo"  src="<?php echo $_brand->getBrandLogo(); ?>"  >            
                            </div>                    
                            <div class="picture">
                            </div>
                        </div>                            
                        <?php endforeach; ?>
                    </div>
                </div>
            </div>
        </div> <!-- end block content-->            
</div> 

3. 使用 your_layout.xml 将该文件分配给页脚,并在页脚之前引用。

<reference name="footer">
       <block type="brand/left" name="brands_logolist" before="-" template="brand/home_logo.phtml" />
  </reference>

希望你能理解我的逻辑。

【讨论】:

嗨,莉亚卡特!谢谢你的回答,但这不是我想要的。我不希望产品出现在页脚中,并且我的品牌没有徽标。我想要的是显示“产品属性 - 品牌”。我已经在高级搜索中将它作为多选。我只需要高级搜索中的这些值作为列表显示在页脚中。 我不需要搜索结果(不是产品),而是品牌名称,这样用户就可以点击品牌名称,它会将他带到包含所有产品的页面品牌属性。 是的,只需尝试上面的块,您将在控制器中获得品牌名称,只需调试即可 @Artur Klassen,很高兴为您提供帮助。请您投票给我的答案,以便有人可以信任并使用 if 以供将来参考。

以上是关于如何将属性值作为列表添加到 Magento 的页脚?的主要内容,如果未能解决你的问题,请参考以下文章

magento 主题中的页脚仅在产品中出现故障

iOS 8:将视图作为应用程序中所有视图控制器的页脚通用

如何在 Magento 2.2.4 中编辑页脚?

如何在 r 中的可反应表的页脚(包含每列的总值)中添加分隔符?

Listview 的页脚视图未显示在一台设备上,但在另一台设备上?

在添加新产品时向 magento 下拉列表或多选产品属性添加值