【问题标题】:Getting a product attribute from within another product attribute?从另一个产品属性中获取产品属性?
【发布时间】:2012-05-16 16:31:44
【问题描述】:

我们遇到了 WYSIWYS 编辑器弄乱了我们的视频嵌入代码的问题。

我们想出的一个解决方案是让嵌入代码成为自己的属性,然后从产品描述中调用该属性。

这可能吗?

我们不想将它添加到 .phtml 中,我们宁愿将它放在描述中。

【问题讨论】:

    标签: php magento wysiwyg


    【解决方案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 类以获取您的新功能。为此,请创建一个模块!

    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>
    

    app/code/local/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> 
    

    app/code/local/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!
    

    那么您应该可以在您的 .phtml 文件中使用$_product-&gt;getProcessedDescription()

    显然有很多东西丢失了,这一切似乎都是一个 hack(我什至不确定我的 preg_replace 语句),但你明白了。我们在这里所做的只是制作一个模块,只是为了重写一个 magento 核心类来做更多的处理!

    此外,您可能还想获得一份Magento Cheatsheet 的副本,以了解有关重写的更多信息。

    祝你好运!

    赛斯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多