Parsing Magento,修改产品自定义选项的管理HTML,解析器在哪里?

Parsing Magento,修改产品自定义选项的管理HTML,解析器在哪里?,parsing,magento,options,product,Parsing,Magento,Options,Product,对于我的一个Magento开发,我需要编辑产品的自定义选项选项卡的HTML。 对于每个自定义选项,都有一个带有类选项框的div 我需要在这个类中添加选项的sku,以便识别它 我找到了app/design/adminhtml/default/default/template/catalog/product/edit/options/option.phtml。 该文件似乎使用javascript加载带有模板系统的存储选项 我需要找到解析器的位置以及它是如何工作的。我的主要问题是:我在模板中添加了一个

对于我的一个Magento开发,我需要编辑产品的自定义选项选项卡的HTML。 对于每个自定义选项,都有一个带有类选项框的div

我需要在这个类中添加选项的sku,以便识别它

我找到了app/design/adminhtml/default/default/template/catalog/product/edit/options/option.phtml。 该文件似乎使用javascript加载带有模板系统的存储选项

我需要找到解析器的位置以及它是如何工作的。我的主要问题是:我在模板中添加了一个{{sku}},但是对于下拉类型的自定义选项,我无法在html中获取sku,不知道为什么

我试过一些东西: -加载选项时,我在getOptionValues函数中添加了每种情况下的SKU,但该选项卡没有打开,并且我没有收到任何错误。。。 -加载选项时,我在getOptionValues函数中添加了一个带有SKU的类属性,并用{{class}}替换了{{SKU}},但该选项卡没有打开,也没有出现错误

我需要找到解析器的位置,以确定是否可以编辑它以接受class属性

谢谢你的帮助


PS:getOptionValues函数位于Mage\u Adminhtml\u Block\u Catalog\u Product\u Edit\u Tab\u Options\u Option中,您无需更改解析器。它的工作原理完全符合您的预期

您遇到的问题是,产品选项没有自己的sku。Sku是根据选项值设置的,如果自定义选项只有一个值,它将保存在目录\产品\选项的Sku列中,您可以在getOptionValues函数中使用

$value['class'] = $this->htmlEscape($_value->getSku());
但在下拉列表或多选sku未设置的情况下,表中的sku设置为NULL,而是在目录\产品\选项\类型\值中为每个选项值设置一个sku

如果您希望将所有sku-s都放在带有类的div选项框中,则必须执行以下操作:

在getOptionValues函数中:

//...
$value = array();
$value[ 'skus' ] = $this->htmlEscape($option->getSku());
//...
//code for select and multi-select
if ($option->getGroupByType() == Mage_Catalog_Model_Product_Option::OPTION_GROUP_SELECT) {
    foreach ($option->getValues() as $_value) {
       $value[ 'skus' ] .= ' ' . $this->htmlEscape($_value->getSku());
    //...
在option.phtml中:

var firstStepTemplate = '<div class="option-box {{skus}}" id="option_{{id}}">'+
编辑: 尽管如此,我不建议您以这种方式使用sku。首先,选项值的sku可以更改,甚至不存在。第二个原因是选项和选项值由其ID唯一标识。第三个原因是,将SKU放入类属性中(如示例中所示)不是一种可行的方法,可能添加您自己的数据-my_attribute={{SKU}}会更好一些,但对于单个选项,仍然存在选项值过多的问题

我建议您不要更改option.php/.phtml中的任何内容,如果可能的话,甚至不要使用您自己的派生类,或者至少只在phtml模板中添加您的类值,然后您可以在外部javascript文件中使用该模板,从中可以动态更改html结构


关于空白页,我会说,您对PHP或JavaScript代码的更改犯了错误,而不是向模板提供错误命名的值。我没有注意到任何问题,无论我如何命名变量,只要它们的javascript变量sintax正确。

我走错了路。这种开发模块的方法是不正确的。 我重新思考了它,在phtml文件中完成了我所有的工作,我做到了


谢谢您的帮助。

好的,我必须承认,这不是开发我的模块的正确方法。