扩展未启用
Extension doesn't get enabled
我正在将 Opencart 2.3 的扩展程序迁移到 Opencart 3。一切似乎都运行良好,只是我无法启用该扩展程序。当我转到扩展-> 运送时,状态不会改变,它会保持禁用状态,但是如果我转到设置,下拉菜单会显示已选择启用。前端或日志文件中没有任何错误。我试过调试,但一切似乎都很好。任何想法可能有什么问题?数据库中的设置(extensionName_status)也是1
注意:扩展名很大,如果我在这里post就太多了。如果你需要具体的代码片段,我会提供。
2.3->3.0 迁移的棘手之处在于一些变量名称发生了微妙的变化(如我在上面的评论中所述)。状态变量可能是您的问题。这是控制器文件中的 Better Together 3.0(左)与 2.3(右):
< $data['total_better_together_status'] = $this->config->get('total_better_together_status');
---
> $data['better_together_status'] = $this->config->get('better_together_status');
如果您的 OpenCart 3.x 模块被标记在模块类别中,则:
if (isset($this->request->post['module_mymodule_status'])) {
$data['module_mymodule_status'] = $this->request->post['module_mymodule_status'];
} else {
$data['module_mymodule_status'] = $this->config->get('module_mymodule_status');
}
或者如果它被标记在分析类别中,那么您只需将 module
更改为 analytics
,如下所示:
if (isset($this->request->post['analytics_mymodule_status'])) {
$data['analytics_mymodule_status'] = $this->request->post['analytics_mymodule_status'];
} else {
$data['analytics_mymodule_status'] = $this->config->get('analytics_mymodule_status');
}
我正在将 Opencart 2.3 的扩展程序迁移到 Opencart 3。一切似乎都运行良好,只是我无法启用该扩展程序。当我转到扩展-> 运送时,状态不会改变,它会保持禁用状态,但是如果我转到设置,下拉菜单会显示已选择启用。前端或日志文件中没有任何错误。我试过调试,但一切似乎都很好。任何想法可能有什么问题?数据库中的设置(extensionName_status)也是1
注意:扩展名很大,如果我在这里post就太多了。如果你需要具体的代码片段,我会提供。
2.3->3.0 迁移的棘手之处在于一些变量名称发生了微妙的变化(如我在上面的评论中所述)。状态变量可能是您的问题。这是控制器文件中的 Better Together 3.0(左)与 2.3(右):
< $data['total_better_together_status'] = $this->config->get('total_better_together_status');
---
> $data['better_together_status'] = $this->config->get('better_together_status');
如果您的 OpenCart 3.x 模块被标记在模块类别中,则:
if (isset($this->request->post['module_mymodule_status'])) {
$data['module_mymodule_status'] = $this->request->post['module_mymodule_status'];
} else {
$data['module_mymodule_status'] = $this->config->get('module_mymodule_status');
}
或者如果它被标记在分析类别中,那么您只需将 module
更改为 analytics
,如下所示:
if (isset($this->request->post['analytics_mymodule_status'])) {
$data['analytics_mymodule_status'] = $this->request->post['analytics_mymodule_status'];
} else {
$data['analytics_mymodule_status'] = $this->config->get('analytics_mymodule_status');
}