Перейти к содержанию

Рекомендуемые сообщения

Здравствуйте, я новичок в opencart , пока только осваиваю создание модулей , не могу подключить свой модуль, модуль создавал по этой статье:
http://s-engineer.ru/sozdaem-modul-v-opencart-2-x-ocmod/
версия osctore 2.3.0.2.3
Создал 6 файлов(admin catalog(view model controller)), создал все каталоги для этих файлов поместил файлы в каталоги, все это засунул в папку upload, далее заархивировал, через панель админа- установка дополнений загрузил свой архив(без ошибок)
Установщик показал следующие пути:

admin/controller/extension/module/mymodul.php
admin/language/ru-ru/extension/module/mymodul.php
admin/view/template/extension/module/mymodul.tpl
catalog/controller/extension/module/mymodul.php
catalog/language/ru-ru/extension/module/mymodul.php
catalog/view/theme/default/template/extension/module/mymodul.tpl

Нажал "продолжить"
Дополнение успешно установлено!
Дал права на редактирования модуля в панели админа.
Во вкладке Дополнений-Модули , мой модуль отобразился, но кнопка редактировать неактивна, активна кнопка "Установить", при ее нажатии выходит ошибка 

Fatal error: Class 'Controllerextensionmodulemymodul' not found in D:\OpenServer\domains\lightning.loc\system\storage\modification\system\engine\action.php on line 43

Помогите пожалуйста включить модуль, подскажите что я делаю не так
ВОт код файла  mymodul.php (admin-controller)


<?php
class ControllerModulemymodul extends Controller {
    private $error = array();
 
    public function index() {
        $this->load->language('extension/module/mymodul'); //подключаем наш языковой файл
 
        $this->load->model('setting/setting');   //подключаем модель setting, он позволяет сохранять настройки модуля в БД
 
        if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { //если мы нажали "Сохранить"  в панели, мы сохраняем текущие настройки
            $this->model_setting_setting->editSetting('mymodul', $this->request->post);
            $this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL'));
        }
 
         // ваши переменные
        $data['heading_title'] = $this->language->get('heading_title');
        $data['text_edit'] = $this->language->get('text_edit');
        $data['text_enabled'] = $this->language->get('text_enabled');
        $data['text_disabled'] = $this->language->get('text_disabled');     
 
        $data['entry_status'] = $this->language->get('entry_status');
 
        // если метод validate вернул warning, передадим его представлению
        if (isset($this->error['warning'])) {
            $data['error_warning'] = $this->error['warning'];
        } else {
            $data['error_warning'] = '';
        }
 
        // далее идет формирование массива breadcrumbs (хлебные крошки)
        $data['breadcrumbs'] = array();
        $data['breadcrumbs'][] = array(
            'text' => $this->language->get('text_home'),
            'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], 'SSL')
        );
        $data['breadcrumbs'][] = array(
            'text' => $this->language->get('text_module'),
            'href' => $this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')
        );
        $data['breadcrumbs'][] = array(
            'text' => $this->language->get('heading_title'),
            'href' => $this->url->link('module/category', 'token=' . $this->session->data['token'], 'SSL')
        );
 
        //ссылки для формы и кнопки "cancel"
        $data['action'] = $this->url->link('module/mymodul', 'token=' . $this->session->data['token'], 'SSL');
        $data['cancel'] = $this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL');
 
        //переменная с статусом модуля
        if (isset($this->request->post['mymodul_status'])) {
            $data['mymodul_status'] = $this->request->post['mymodul_status'];
        } else {
            $data['mymodul_status'] = $this->config->get('mymodul_status');
        }
 
        //ссылки на контроллеры header,column_left,footer, иначе мы не сможем вывести заголовок, подвал и левое меню в файле представления
        $data['header'] = $this->load->controller('common/header');
        $data['column_left'] = $this->load->controller('common/column_left');
        $data['footer'] = $this->load->controller('common/footer');
 
        //в качестве файла представления модуля для панели администратора использовать файл mymodul.tpl
        $this->response->setOutput($this->load->view('extension/module/mymodul.tpl', $data));
    }
 
    //обязательный метод в контроллере, он запускается для проверки разрешено ли пользователю изменять настройки данного модуля
    protected function validate() {
        if (!$this->user->hasPermission('modify', 'module/category')) {
            $this->error['warning'] = $this->language->get('error_permission');
        }
        return !$this->error;
    }
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Класс должент быть не такой: class ControllerModulemymodul

А такой: class ControllerExtensionModuleMymodul

 

О чём и говорит ошибка: 

Fatal error: Class 'Controllerextensionmodulemymodul' not found 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И почему 

'SSL'

?

Такая запись для версий 2.0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], true )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
34 минуты назад, mpn2005 сказал:

Класс должент быть не такой: class ControllerModulemymodul

А такой: class ControllerExtensionModuleMymodul

 

О чём и говорит ошибка: 

Fatal error: Class 'Controllerextensionmodulemymodul' not found 

Спасибо большое ,  в контроллере каталога так же поменял имя класса, дополнение установилось, все выводит отлично, однако есть маленькая проблема, когда редактирую этот модуль в панели дополнений, нажимаю сохранить  выводит ошибку "У вас нет прав для доступа к этой странице" даже при ошибке, при сохранении , статус модуля все равно меняется(включился даже с ошибкой),  в группах пользователей админу дал права на редактирование всех объектов, не помогло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

судя по коду, ваше руководство не для 2.x, а для 2.[0-2]

отсюда и проблемы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, freelancer сказал:

судя по коду, ваше руководство не для 2.x, а для 2.[0-2]

отсюда и проблемы

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Vladislav33 сказал:

 

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

Самый просто вариант - это посмотеть как всё сделано в штатном модуле движка.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 20.04.2018 в 17:34, legioner26 сказал:

И почему 


'SSL'

?

Такая запись для версий 2.0

по большому счету, какая разница?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, fanatic сказал:

по большому счету, какая разница?

Да разницы особо нет. Просто чистота кода должна быть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

дело не в чистоте, семантически не верно писать SSL там, где должно быть true

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 20.04.2018 в 19:52, Vladislav33 сказал:

"У вас нет прав для доступа к этой странице" даже при ошибке, при сохранении , статус модуля все равно меняется(включился даже с ошибкой),  в группах пользователей админу дал права на редактирование всех объектов, не помогло.

validate в контроллере смотрите

 

if (!$this->user->hasPermission('modify', 'module/category')) {

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.