Здравствуйте Форумчани, суть такова, пытаюсь сделать кое-что на OpenCart 2.x, в данный момент не могу понять почему не передаётся функцию и не вызывается в модуле. По порядку, есть базовый модуль: Controller: Код (PHP): <?php class ControllerModuleCatapulta extends Controller { protected function index() { $this->language->load('module/test1'); $this->document->addScript('catalog/view/javascript/jquery/colorbox/jquery.colorbox-min.js'); $this->document->addStyle('catalog/view/javascript/jquery/colorbox/colorbox.css'); $this->data['heading_title'] = $this->language->get('heading_title'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/test1.tpl')) { $this->response->setOutput($this->config->get('config_template') . '/template/module/test1.tpl', $data); } else { $this->response->setOutput('default/template/module/test1.tpl', $data); } } } ?> View: Код (PHP): <input type="button" value="<?php echo $heading_title; ?>" class="button"/> Дальше я пытаюсь вызвать его в openCart Production: Controller: Код (PHP): $data['test1'] = $this->load->controller('module/test1'); View: Код (PHP): <?php echo $test1; ?>
Код (PHP): protected function index() { Как вызывают index() метод? Там же protected и это важно. https://php.net/manual/ru/language.oop5.visibility.php
Не буду даже интересоваться что вы там вызываете и как, но если предполагается что в итоге должен отрабатывать метод index указанного класса, то: Код (PHP): $this->data['heading_title'] = $this->language->get('heading_title'); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/test1.tpl')) { $this->response->setOutput($this->config->get('config_template') . '/template/module/test1.tpl', $data); Вы определяете свойство класса data в теле метода, а в шаблон передаете переменную $data которая в видимом контексте метода не определена.