суть проблемы: в версии 2.3 автор Opencart решил перенести папки /module в /extension. в связи с чем разработчикам модулей приходится под версию 2.3 не только создавать новый архив с новыми путями, но и переписывать код, который эти пути учитывает
но ведь хочется поддерживать 1 модуль, а не два, потому я решил подумать как можно сохранить один архив, но заставить модуль работать на всей ветке 2.x
покажу на примере своего модуля seogen, чье название будет встреться по тексту
в архив, либо отдельно нужно будет добавить два файла
admin\controller\extension\module\seogen\install.php
admin\controller\extension\module\seogen\uninstall.php
первый с таким содержимым
<?php
class ControllerExtensionModuleSeogenInstall extends Controller {
public function index() {
$this->install();
}
private function install() {
$this->load->model('extension/event');
$this->model_extension_event->addEvent('seogen', 'admin/model/user/user_group/editUserGroup/after', 'module/seogen/eventSetPermissions_23');
$this->session->data['success'] = $this->language->get('text_install_success');
}
}
второй с таким
<?php
class ControllerExtensionModuleSeogenUninstall extends Controller {
public function index() {
$this->uninstall();
}
private function uninstall() {
$this->load->model('extension/event');
$this->model_extension_event->deleteEvent('seogen');
}
}
в код вашего родного контроллера такой метод
public function eventSetPermissions_23($route, $arr){
if($this->validate()) {
$this->load->model('user/user_group');
$this->model_user_user_group->addPermission($this->user->getGroupId(), 'access', 'extension/module/seogen');
$this->model_user_user_group->addPermission($this->user->getGroupId(), 'modify', 'extension/module/seogen');
}
}