Magento只读和隐藏的产品属性

Epi*_*rus 15 hidden attributes readonly magento

我想要一些不能从管理界面编辑的Magento产品属性和一些在该界面中根本看不到的产品属性(作为存储一些人类用户不应查看的产品的持久性信息的方法.这是我能想到的唯一方法,欢迎任何其他建议.

所以我的问题是:所有Magento属性都必须从管理界面可见和可编辑吗?如果没有,它们如何变为只读或隐藏?

我注意到在管理界面中有一些只读字段,因此必须以这种或那种方式执行此操作.在搜索了stackoverflow之后,我找到了一个涉及JavaScript的可能解决方案,但是如果可能的话,我想不要走这条路.

Epi*_*rus 15

好吧,看起来毕竟可以做到.在为catalog_product_load_after事件添加观察者之后,可以使用该类的lockAttribute方法Mage_Catalog_Model_Abstract将产品属性设置为只读.以下是观察者方法的代码:

public function lockAttributes($observer) {
    $event = $observer->getEvent();
    $product = $event->getProduct();
    $product->lockAttribute('attribute_code');
}
Run Code Online (Sandbox Code Playgroud)


Aad*_*sen 12

由于catalog_product_load_after每个产品负载调度事件,因此lock_attributes在每次产品加载后,方法中提供的属性都会被锁定.这可能会产生意外结果:如果lock_attributes不明确解锁它们,则无法更改方法中属性的值.

catalog_product_load_after添加catalog_product_edit_action事件的观察者就足以代替使用事件:只有在管理界面中编辑产品时才会调度此事件.