我想指定一个CSS类来应用于我的自定义选项字段。这将允许我在产品视图页面上使用更强大的JavaScript选择器。
所以在产品>管理员中的自定义选项我想要这样的东西:
我已将CSS Class属性添加到字段中。
这可以在adminhtml模板文件中添加得足够简单:
app\design\adminhtml\default\default\template\catalog\product\edit\options\option.phtml
但我不知道我需要覆盖/扩展哪些文件,以便在单击“保存”时保存该额外属性。 有人能指出我正确的方向吗?
答案 0 :(得分:11)
假设您为选项类型“text”执行此操作。您需要提供一种输入,编辑,存储和输出此新属性的方法。
要输入:您已经发现,必须编辑后端模板文件。应用\设计\ adminhtml \默认\默认\模板\目录\产品\编辑\选项\类型\ text.phtml:
'<th class="type-last last"><?php echo Mage::helper('catalog')->__('Custom CSS') ?> </th>'+
'<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();