8

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

所以在管理员的产品>自定义选项中,我想要这样的东西: 在自定义选项中添加 CSS 类

我在该字段中添加了 CSS Class 属性。

这可以在 adminhtml 模板文件中简单地添加:

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

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

4

1 回答 1

12

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

进入:正如您已经发现的,您必须编辑后端模板文件。app\design\adminhtml\default\default\template\catalog\product\edit\options\type\text.phtml:

在第 36 行之后输入

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

在第 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();
于 2013-01-28T15:50:11.913 回答