我想从core/Mage/Adminhtml/controllers/Catalog/ProductController.php重载saveAction方法,它不起作用 - 我现在已经搜索并尝试了一整天:(
背景:我想在保存产品之前更改自定义属性的值.我发现,_initProductSave设置属性,我认为,在init_ProductSave之后更改它们将是一个好点(如果有人知道更好的地方,请告诉我)...
愿任何人请帮助我... :)
Magento版本: Community Edition版本1.7.0.1没有扩展,没有安装主题,我刚安装这个版本完全空白...
版本1:通过复制到本地/ Mage文件夹覆盖控制器
首先,我尝试将文件复制到app/code/local文件夹中,在正确的结构中 - 但它不起作用(我已经使用Varient.php进行本地测试系统和stores.php来纠正价格错误 - 因为它的工作......)
版本2:用扩展名覆盖控制器
我的扩展程序如下所示:
文件结构:
code/local/MyOne/MyExtension/controllers/Catalog/ProductController.php
code/local/MyOne/MyExtension/etc/config.xml
etc/modules/MyOne_MyExtension.xml
Run Code Online (Sandbox Code Playgroud)
这些文件如下所示:MyOne_MyExtension.xml:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<MyOne_MyExtension>
<active>true</active>
<codePool>local</codePool>
</MyOne_MyExtension>
</modules>
</config>
Run Code Online (Sandbox Code Playgroud)
代码/本地/ MyOne/MyExtension的/ etc/config.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<MyOne_MyExtension>
<version>1.0.0</version>
</MyOne_MyExtension>
</modules>
<admin>
<routers>
<adminhtml>
<args>
<modules>
<MyOne_MyExtension before="Mage_Adminhtml">MyOne_MyExtension_Catalog_ProductController</MyOne_MyExtension>
</modules>
</args>
</adminhtml>
</routers>
</admin>
</config>
Run Code Online (Sandbox Code Playgroud)
最后一个,代码/ local/MyOne/MyExtension/controllers/Catalog/ProductController.php:
<?php
require_once 'Mage/Adminhtml/controllers/Catalog/ProductController.php';
class MyOne_MyExtension_Catalog_ProductController extends Mage_Adminhtml_Catalog_ProductController
{
public function saveAction()
{
// do my stuff
die('reached …
Run Code Online (Sandbox Code Playgroud) 我正在搜索一个观察者/事件,它将在保存属性时触发.
示例:当新颜色,fe black添加到属性颜色时,我想检查我的自定义表中是否已有此选项.
有谁知道这样的事件?
搜索超过一天...... :(
(这也是http://www.nicksays.co.uk/magento_events_cheat_sheet/)
谢谢和问候,
马蒂亚斯
可能重复:
为什么我的对象不符合键值编码?
我有一个字典,我想将键/值添加到自定义类,但我总是得到错误,该类不符合KVC,但Apple文档声明它应该是.
我的代码:
ContactObject.h:
@interface ContactObject : NSObject
+ (ContactObject *)testAdding;
@end
Run Code Online (Sandbox Code Playgroud)
ContactObject.m:
@implementation ContactObject
- (id)init {
self = [super init];
if (self) {
// customize
}
return self;
}
+ (ContactObject *)testAdding
{
// create object
ContactObject *theReturnObject = [[ContactObject alloc] init];
[theReturnObject setValue:@"Berlin" forKey:@"city"];
[theReturnObject setValue:@"Germany" forKey:@"state"];
return theReturnObject;
}
@end
Run Code Online (Sandbox Code Playgroud)
我想我错过了一些非常愚蠢的东西:)
请,任何帮助表示赞赏......
问候,马提亚
magento ×2
adminhtml ×1
attributes ×1
controller ×1
events ×1
kvc ×1
nsobject ×1
objective-c ×1
observers ×1
option ×1
overwrite ×1
product ×1