Magento: наблюдатель не получает форму - PullRequest
0 голосов
/ 03 апреля 2012

Magento 1.6.1 Я пытаюсь получить данные формы от моего наблюдателя.Я попытался $ наблюдатель-> getEvent () -> getForm ();
, и он пуст.вот мой кодФорма на наблюдателя, но ничего не происходит, и я потратил на просмотр учебников, но все они дают вам этот метод действий.

Событие запускается, и я могу что-то делать внутри него, но не получаю форму.

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

    $form = $observer->getEvent()->getForm();//returns NULL
$element = $form->getElement('attribute_code');
$value = 'test';

$element->setValue($test);
$element->setDisabled(true);

Но не повезло.Буду очень признателен за любую помощь.

Ответы [ 2 ]

2 голосов
/ 03 апреля 2012

К сожалению, с этим событием нет способа получить форму. Вот как это называется (app / code / core / Mage / Adminhtml / controllers / ProductController.php: 192):

Mage::dispatchEvent('catalog_product_new_action', array('product' => $product));

В зависимости от того, что вы пытаетесь сделать, вам, возможно, придется переопределить некоторые файлы. Пожалуйста, не изменяйте файлы ядра! Реальность такова, что если вы что-то экономите, то не время отключать элемент управления. Вы захотите сделать это при загрузке страницы.

1 голос
/ 03 апреля 2012

Я решил заблокировать атрибут

$product->lockAttribute('attribute_code');  

в новом действии.Затем добавлен второй наблюдатель для подготовки сохранения, чтобы разблокировать и сохранить атрибут.

$product = $observer->getEvent()->getProduct();
$product->unlockAttribute('attribute_code');  

Это помогло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...