gpt4 book ai didi

magento - 如何在产品页面上显示属性组名称?

转载 作者:行者123 更新时间:2023-12-01 23:25:48 26 4
gpt4 key购买 nike

我创建了Attribute Sets,其中包含更多Grouped 属性。在管理员中,自定义属性显示在组中(选项卡),就像我创建它们一样。但是,在产品页面上,所有属性都一起列出,在列出属性组中的属性之前不显示属性组名称

我怎样才能同时显示属性组名称,而不仅仅是属性?如果您可以在默认模板上显示给我,我会在我的自定义模板中相应地显示。

谢谢!

最佳答案

好的,我找到了答案,希望它对其他搜索相同内容的人有用。首先,我使用的是 Magento 1.5.0。其次,我在德语中找到了答案 here ,已创建扩展名,但安装失败。因此,我使用以下代码添加了 /app/code/local/Mage/Catalog/Block/Product/View/Attributesgroups.php:

<?php
class Mage_Catalog_Block_Product_View_Attributesgroups extends Mage_Core_Block_Template
{
protected $_product = null;

function getProduct()
{
if (!$this->_product) {
$this->_product = Mage::registry('product');
}
return $this->_product;
}

public function getAdditionalData(array $excludeAttr = array())
{
$data = array();

$product = $this->getProduct();
$attributes = $product->getAttributes();
foreach ($attributes as $attribute) {

if ($attribute->getIsVisibleOnFront() && !in_array($attribute->getAttributeCode(), $excludeAttr)) {

$value = $attribute->getFrontend()->getValue($product);

// TODO this is temporary skipping eco taxes
if (is_string($value)) {
if (strlen($value) && $product->hasData($attribute->getAttributeCode())) {
if ($attribute->getFrontendInput() == 'price') {
$value = Mage::app()->getStore()->convertPrice($value,true);
} elseif (!$attribute->getIsHtmlAllowedOnFront()) {
$value = $this->htmlEscape($value);
}

$group = 0;
if( $tmp = $attribute->getData('attribute_group_id') ) {
$group = $tmp;
}

$data[$group]['items'][ $attribute->getAttributeCode()] = array(
'label' => $attribute->getFrontend()->getLabel(),
'value' => $value,
'code' => $attribute->getAttributeCode()
);

$data[$group]['attrid'] = $attribute->getId();

}
}
}
}

// Noch Titel lesen
foreach( $data AS $groupId => &$group ) {
$groupModel = Mage::getModel('eav/entity_attribute_group')->load( $groupId );
$group['title'] = $groupModel->getAttributeGroupName();
}

return $data;
}
}

然后,我创建了包含以下内容的 /app/design/frontend/default/YOUR_TEMPLATE/template/catalog/product/view/attributesgroups.phtml 文件:

<?php
$_helper = $this->helper('catalog/output');
$_product = $this->getProduct()
?>
<?php if($_additionalgroup = $this->getAdditionalData()): ?>
<div class="box-collateral box-additional">
<h2><?php echo $this->__('Additional Information') ?></h2>

<?php $i=0; foreach ($_additionalgroup as $_additional): $i++; ?>
<h3><?php echo $this->__( $_additional['title'] )?></h3>
<table class="data-table" id="product-attribute-specs-table-<?php echo $i?>">
<col width="25%" />
<col />
<tbody>
<?php foreach ($_additional['items'] as $_data): ?>
<tr>
<th class="label"><?php echo $this->htmlEscape($this->__($_data['label'])) ?></th>
<td class="data"><?php echo $_helper->productAttribute($_product, $_data['value'], $_data['code']) ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<script type="text/javascript">decorateTable('product-attribute-specs-table-<?php echo $i?>')</script>
<?php endforeach; ?>

</div>
<?php endif;?>

最后一步是修改第223行的/app/design/frontend/default/YOUR_TEMPLATE/layout/catalog.xml,并替换

<block type="catalog/product_view_attributes" name="product.attributes" as="additional" template="catalog/product/view/attributes.phtml">

<block type="catalog/product_view_attributesgroups" name="product.attributes" as="additional" template="catalog/product/view/attributesgroups.phtml">

我再说一遍,这个答案不属于我,我只是翻译了我找到的内容。 非常感谢美丽的人,他们以简洁明了的答案结束了我三天的搜索:WebGuys.DE另外,感谢@rpSetzer 的热心帮助!

关于magento - 如何在产品页面上显示属性组名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5438750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com