在任何地方都没有看到这个问题,所以这里有:
我的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。
感谢任何帮助!
感谢。
答案 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);