我们遇到了WYSIWYS编辑器弄乱我们的视频嵌入代码的问题。
我们提出的一个解决方案是使嵌入代码成为自己的属性,然后在产品描述中调用该属性。
这甚至可能吗?
我们不想将其添加到.phtml中,我们宁愿将其放在说明中。
答案 0 :(得分:1)
实际上,如果您计划在没有任何代码修改的情况下进行此操作,则不可能。
但是,如果你想通过在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 /模块/ 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 /型号/ 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!
然后您应该可以在.phtml文件中使用$_product->getProcessedDescription()
。
显然有很多东西丢失了,而且似乎它几乎都是黑客攻击(我甚至不确定我的preg_replace语句)但是你明白了。我们在这里做的是制作一个模块,仅仅是为了重写一个magento核心类来做更多的处理!
此外,您可能还想获得Magento Cheatsheet的副本,以获取有关重写的更多信息。
祝你好运!赛斯