WYSIWYS エディターがビデオの埋め込みコードを台無しにするという問題が発生しています。
私たちが思いついた解決策の 1 つは、埋め込みコードを独自の属性にし、その属性を製品説明内から呼び出すことです。
それは可能ですか?
.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 クラスを書き直すことができます。それを行うには、モジュールを作成します!
app/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 ファイルで使用できるようになります。
明らかに多くのものが欠落しており、それはほとんどハックのように見えます (私の preg_replace ステートメントについてもよくわかりません) が、その考えは理解できます。ここで行ったことは、magento コア クラスを書き直してさらに処理を行うためだけにモジュールを作成することです。
さらに、書き換えの詳細については、 Magento Cheatsheetのコピーを取得することもできます。
幸運を!
セス