假设您为选项类型“文本”执行此操作。您需要提供一种输入、编辑、存储和输出此新属性的方法。
进入:正如您已经发现的,您必须编辑后端模板文件。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();