Magento自定义选项 - 将CSS className添加到自定义选项字段

时间:2013-01-28 14:47:24

标签: magento

我想指定一个CSS类来应用于我的自定义选项字段。这将允许我在产品视图页面上使用更强大的JavaScript选择器。

所以在产品>管理员中的自定义选项我想要这样的东西: Added CSS class in Custom Options

我已将CSS Class属性添加到字段中。

这可以在adminhtml模板文件中添加得足够简单:

app\design\adminhtml\default\default\template\catalog\product\edit\options\option.phtml

但我不知道我需要覆盖/扩展哪些文件,以便在单击“保存”时保存该额外属性。 有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:11)

假设您为选项类型“text”执行此操作。您需要提供一种输入,编辑,存储和输出此新属性的方法。

要输入:您已经发现,必须编辑后端模板文件。应用\设计\ adminhtml \默认\默认\模板\目录\产品\编辑\选项\类型\ text.phtml:

after line 36 enter

'<th class="type-last last"><?php echo Mage::helper('catalog')->__('Custom CSS') ?> </th>'+

after line 47

'<td class="type-last last"><input type="text" class="input-text" name="product[options][{{option_id}}][custom_css]" value="{{custom_css}}"></td>'+

这将添加一个字段以输入自定义css类。

编辑:您需要重写输出选项HTML的块,以便新字段可以从模型中获取值。在模块中创建一个声明如下的块:

class YourPackage_YourModule_Block_Adminhtml_Option extends Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Options_Option 
{

从类getOptionValues()复制/粘贴函数Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Options_Option并添加代码

##.......code omitted for brevity.......##
$value['sku'] = $this->htmlEscape($option->getSku());
$value['max_characters'] = $option->getMaxCharacters();

// your new field output to the adminhtml form
$value['custom_css'] = $option->getCustomCss();

$value['file_extension'] = $option->getFileExtension();
##.......code omitted  for brevity.......##

存储。这有点棘手。您需要扩展表catalog_product_option;使用一列存储新属性。使用以下内容创建安装/更新脚本:

$installer = $this;
$installer->startSetup();
$installer->run("
    ALTER TABLE `catalog_product_option` ADD
    `custom_css` text");
$installer->endSetup();

运行脚本后,请确保该表具有新列custom_css

要输出:最后,通过添加代码来更新模板文件frontend/yourpackage/yourtheme/template/catalog/product/view/options/type/text.phtml,以输出新的自定义CSS类属性,例如

$_option->getCustomCss();