Jump to content

Админка модуля . Странная проблема с переопределением метода


Recommended Posts

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

Есть класс контроллера AdminStoresController.php. Он при установке модуля оверрайдится 

 

class AdminStoresController extends AdminStoresControllerCore

 

в нем перегружаются несколько методов родителя, а один метод ПЕРЕОПРЕДЕЛЯТЬСЯ НЕ ХОЧЕТ

 

public function renderForm()

 

Ничего экстраординарного в дочернем методе нет, тоже публик и тоже без аргументов.

Кто сталкивался с подобным можете подсказать в чем может быть дело? Или хотя бы в какую сторону копать?

 

Буду безмерно благодарен за помощь.

Link to comment
Share on other sites

Может уже что то еверайдит эту функцию?

 

А вообще что у Вас возвращает функция? Должен быть return типа такого::

return AdminController::renderForm();
Edited by Kerm (see edit history)
Link to comment
Share on other sites

 

Может уже что то еверайдит эту функцию?

 

А вообще что у Вас возвращает функция? Должен быть return типа такого::

return AdminController::renderForm();

 

Что может её оверайдить даже не представляю. Не должно. Дело в том что я модуль продолжал ковырять на версии 1.6.011, появилась эта проблема. Я думал что загадил инсталляцию и для эксперимента взял чистую 1.6.1.1(вдруг на ней все будет ок) и поставил модуль на нее - то же самое. Как то до этого все работало.

 

Кстати разве return AdminController::renderForm(); что нибудь вернет? Ведь renderForm() не static .

 

Вы имеете ввиду что нужно попробовать напрямую из класса получить возврат renderForm() что бы убедиться что она вообще рабочая? Ваще это мысль. Вроде проверял это, но попробую еще.

 

Разница в переопределенной функции в том что в форме добавляется еще селекты выбора штата и города, и всего то.

То есть в массив пихнул еще примерно вот это

array(
'type' => 'select',
'label' => $this->l('State'),
'name' => 'id_state',
'required' => true,
'options' => array(
'id' => 'id_state',
'name' => 'name',
                        'query' => $this->reg_module->getStates($this->context->language->id, $this->context->country->id)
)
),
array(
'type' => 'select',
'label' => $this->l('City'),
'name' => 'id_city',
                    'required' => false,
                    'desc' => $this->l('Choose appropriate for selected state city. If such city are missing, then create it in module "'.$this->reg_module->name.'"'),
'options' => array(
'query' => $this->reg_module->getCities($this->context->language->id, null, null, false),
'id' => 'id_city',
'name' => 'name'
)
)
 
 
Возвращает функция как и в родительскком классе вот это
 
return parent::renderForm();

 

Edited by [email protected] (see edit history)
Link to comment
Share on other sites

 

 
Возвращает функция как и в родительскком классе вот это
 
return parent::renderForm();

 

 

 

Так это в родительском классе возвратная функция то....а ты из другого файла ее возвращает то, тебе нужно вернуть ее обратно в тот класс который ты оверайдишь, типа return AdminStoresController::renderForm();

Edited by Kerm (see edit history)
Link to comment
Share on other sites

Так это в родительском классе возвратная функция то....а ты из другого файла ее возвращает то, тебе нужно вернуть ее обратно в тот класс который ты оверайдишь, типа return AdminStoresController::renderForm();

 

Да вот вся то беда в том, что такое обращение работает для других методов, там во всех сплошь 

return parent::...

и все работает, и в этой тоже самое.

 

Я пробовал уж от печали и 

return AdminStoresController::renderForm();

и даже 

return AdminStoresControllerCore::renderForm();

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

 

Может правда то и рядом, но в каком рядом именно блин понять не могу.

Link to comment
Share on other sites

Да вот вся то беда в том, что такое обращение работает для других методов, там во всех сплошь 

return parent::...

и все работает, и в этой тоже самое.

 

Я пробовал уж от печали и 

return AdminStoresController::renderForm();

и даже 

return AdminStoresControllerCore::renderForm();

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

 

Может правда то и рядом, но в каком рядом именно блин понять не могу.

 

А пробовали return AdminController::renderForm();?

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...