我们遇到了 WYSIWYS 编辑器弄乱了我们的视频嵌入代码的问题。
我们提出的一种解决方案是让嵌入代码成为自己的属性,然后从产品描述中调用该属性。
这甚至可能吗?
我们不想将它添加到 .phtml 中,我们宁愿将它放在描述中。
事实上,如果您打算完全不修改任何代码,这是不可能的。
但是,如果你想通过调用一个全新的函数来处理描述中的某些内容Mage_Catalog_Model_Product
,比如
$_product = Mage::getModel('catalog/product');
$_product->getProcessedDescription(); // assuming this is the function you will be using in stead of $_product->getDescription(); in your PHTML files
然后说你喜欢你的产品描述是这样的:
Lorem Ipsum Dolor Test Description
See our video below!
[[video]]
video
自定义产品属性在哪里
您可以重写 Mage_Catalog_Model_Product 类以获取新功能。为此,请创建一个模块!
应用程序/etc/modules/Electricjesus_Processeddescription.xml:
<?xml version="1.0"?>
<config>
<modules>
<Electricjesus_Processeddescription>
<active>true</active>
<codePool>local</codePool>
<version>0.0.1</version>
</Electricjesus_Processeddescription>
</modules>
</config>
应用程序/代码/本地/Electricjesus/Processeddescription/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Electricjesus_Processeddescription>
<version>0.0.1</version>
</Electricjesus_Processeddescription>
</modules>
<global>
<models>
<catalog>
<rewrite>
<product>Electricjesus_Processeddescription_Model_Product</product>
</rewrite>
</catalog>
</models>
</global>
</config>
应用程序/代码/本地/Electricjesus/Processeddescription/Model/Product.php:
<?php
class Electricjesus_Processeddescription_Model_Product extends Mage_Catalog_Model_Product {
public function getProcessedDescription() {
$desc = $this->getDescription();
return preg_replace("/\[\[video\]\]/", $this->getVideo(), $desc);
}
}
//NEVER close <?php tags in Magento class files!
然后你应该能够$_product->getProcessedDescription()
在你的 .phtml 文件中使用。
显然有很多东西丢失了,这一切似乎都是一个 hack(我什至不确定我的 preg_replace 声明),但你明白了。我们在这里所做的只是制作一个模块,只是为了重写一个 magento 核心类来做更多的处理!
此外,您可能还想获得一份Magento 备忘单,以获取有关重写的更多信息。
祝你好运!
赛斯