在Magento的产品说明中以编程方式调用产品属性

时间:2014-01-22 13:01:39

标签: php html magento product

在任何地方都没有看到这个问题,所以这里有:

我的Magento商店中有几个属性,但为了让用户免于过度混乱的页面,我在产品页面上用标签分隔了不同类型的信息。第一个选项卡显示产品描述,当前是一堆HTML,它基本上通过显示易于理解的图标及其下方的属性值来反映属性,第二个选项卡显示更深入的信息,其中包含从DB调用的属性

目前,在编辑或添加产品时,我基本上必须添加两次属性:一次作为实际产品属性,一次用于带图标的简单HTML产品说明。

我想要做的是,以编程方式调用属性并插入一个自动加载属性值的变量,从而节省了我手动编辑和仔细检查每个值的时间。

目前没有其他东西的基本示例代码如下所示:

<img src="http://myurl.com/img/profile.jpg" alt="attribute_1_image" /><br /> 70mm

我不想手动写出70mm,而是希望能够从数据库中调用它,所以我可以在每个产品描述页面上复制并粘贴相同的HTML,因为我已经添加了70mm作为attribute_1,所以首选的结果是:

<img src="http://myurl.com/img/profile.jpg" alt="attribute_1_image" /><br />{var.attribute_1}

这个或任何类似的地方,它只是从用户当前所在的同一产品页面加载属性。

我最接近的是:http://www.devinrolsen.com/magento-custom-attributes-value/但是我意识到这不能通过PHP完成,因为编辑器不会支持它,所以我很难理解我是如何实现的这个。我正在运行Magento 1.6。

感谢任何帮助!

感谢。

2 个答案:

答案 0 :(得分:0)

很抱歉aswer,但我不确定产品属性可以直接插入产品的描述字段(如果你想做的话?)

好方法是在描述页面上有一个块并在那里进行布局。用html和php就像你指出的链接一样。 只需在产品页面上显示此块,它就会加载并显示我们所有产品的属性。

希望这有帮助。

答案 1 :(得分:0)

您可以将自定义“变量”用作文本替换。将{var.attribute_1}放在后端的说明中。然后,在产品视图中,执行字符串替换。

档案app/design/frontend/default/YOUR_THEME/template/catalog/product/view.html

$description = $_product->getDescription();

if ($_product->getVariable1()):
    $description = str_replace(
        '{var.attribute_1}',  
        $_product->getResource()->getAttribute('variable_1')->getFrontend()->getValue($_product),
        $description);
endif;
每个属性的

等等,然后echo $description;。您必须在Magento后端启用产品视图的属性。无需延期。

只有当您的产品有不同的“模式”描述时才有意义。否则(例如,如果variable1始终存在),您可以将<img>标记放在此文件中,后跟属性值,并保留描述字段以供实际描述。

修改:即使实际属性为空,也要阻止{var.attribute_1}显示在产品视图中,以下代码看起来更好:

$description = $_product->getDescription();

$attribute_value = 
         ($_product->getVariable1()) ? 
          $_product->getResource()->getAttribute('variable_1')->getFrontend()->getValue($_product) 
          : "";
$description = str_replace(
      '{var.attribute_1}',  
      $attribute_value,
       $description);