[email protected] Posted October 19, 2015 Share Posted October 19, 2015 Здравствуйте. Разрабатываю админку для модуля и стала твориться одна странная вещь, с которой ранее мне еще не доводилось встречаться. Не переопределяется только один из многих метод дочернего класса, остальные работают. Есть класс контроллера AdminStoresController.php. Он при установке модуля оверрайдится class AdminStoresController extends AdminStoresControllerCore в нем перегружаются несколько методов родителя, а один метод ПЕРЕОПРЕДЕЛЯТЬСЯ НЕ ХОЧЕТ public function renderForm() Ничего экстраординарного в дочернем методе нет, тоже публик и тоже без аргументов. Кто сталкивался с подобным можете подсказать в чем может быть дело? Или хотя бы в какую сторону копать? Буду безмерно благодарен за помощь. Link to comment Share on other sites More sharing options...
Kerm Posted October 19, 2015 Share Posted October 19, 2015 (edited) Может уже что то еверайдит эту функцию? А вообще что у Вас возвращает функция? Должен быть return типа такого:: return AdminController::renderForm(); Edited October 19, 2015 by Kerm (see edit history) Link to comment Share on other sites More sharing options...
[email protected] Posted October 19, 2015 Author Share Posted October 19, 2015 (edited) Может уже что то еверайдит эту функцию? А вообще что у Вас возвращает функция? Должен быть 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 October 19, 2015 by [email protected] (see edit history) Link to comment Share on other sites More sharing options...
Kerm Posted October 19, 2015 Share Posted October 19, 2015 (edited) Возвращает функция как и в родительскком классе вот это return parent::renderForm(); Так это в родительском классе возвратная функция то....а ты из другого файла ее возвращает то, тебе нужно вернуть ее обратно в тот класс который ты оверайдишь, типа return AdminStoresController::renderForm(); Edited October 19, 2015 by Kerm (see edit history) Link to comment Share on other sites More sharing options...
[email protected] Posted October 19, 2015 Author Share Posted October 19, 2015 Так это в родительском классе возвратная функция то....а ты из другого файла ее возвращает то, тебе нужно вернуть ее обратно в тот класс который ты оверайдишь, типа return AdminStoresController::renderForm(); Да вот вся то беда в том, что такое обращение работает для других методов, там во всех сплошь return parent::... и все работает, и в этой тоже самое. Я пробовал уж от печали и return AdminStoresController::renderForm(); и даже return AdminStoresControllerCore::renderForm(); первое вводит php в бесконечную рекурсию, даже ответа нету, а второе дает тот же хреновый результат. ж`опа какая то. Может правда то и рядом, но в каком рядом именно блин понять не могу. Link to comment Share on other sites More sharing options...
Kerm Posted October 19, 2015 Share Posted October 19, 2015 Да вот вся то беда в том, что такое обращение работает для других методов, там во всех сплошь return parent::... и все работает, и в этой тоже самое. Я пробовал уж от печали и return AdminStoresController::renderForm(); и даже return AdminStoresControllerCore::renderForm(); первое вводит php в бесконечную рекурсию, даже ответа нету, а второе дает тот же хреновый результат. ж`опа какая то. Может правда то и рядом, но в каком рядом именно блин понять не могу. А пробовали return AdminController::renderForm();? 1 Link to comment Share on other sites More sharing options...
[email protected] Posted October 19, 2015 Author Share Posted October 19, 2015 А пробовали return AdminController::renderForm();? Нет, я забыл про него как буд то в нем ничего и нет! с return AdminController::renderForm(); заработало. Спасибо большое. Долгострой продолжается)) Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now