Перезапись модели, которую можно легко отключить


Мне нужно настроить модель в стороннем расширении.

Мне нужно переопределить модель, чтобы я не редактировал исходные файлы. Я также хотел бы, чтобы в случае возникновения ошибки по какой-либо причине, исходящей от моей модели, ее мог легко отключить кто-то, не имеющий навыков программирования.

У меня была идея, возможно, каким-то образом поместить мою отредактированную модель в свой пользовательский модуль, объявив, что она будет использоваться вместо стандартной, но если я отключу свою пользовательскую модуль (содержащий модель) из панели администратора будет использоваться модель по умолчанию.

Возможно ли это? И если нет: каков предпочтительный способ переопределения сторонней модели?

Author: sv3n, 2017-05-09

1 answers

Вы можете проверить в разделе настройки администратора, отключен ли ваш модуль. Если он отключен, возвращаемое значение перезаписанного метода.

class Your_Module_Model_Xyz extends Another_Module_Model_Xyz
{
    public function methodYouWantToRewrite()
    {
        if (!Mage::getStoreConfigFlag('your/config/path')) {
            return parent::methodYouWantToRewrite();
        }

        // You code ...
    }
}
 2
Author: sv3n, 2017-08-06 13:53:08