有没有更好的方法来检查 opencart 中是否安装了模块。我敢肯定,对于像这样的常见任务,我一定会遗漏一些明显的东西。
我希望它在前端(目录)和管理区域中都能工作。这就是检查该方法是否存在以及它是否是多维数组的原因。
$this->load->model('setting/extension');
$this->model_setting_extension = new ModelSettingExtension($this->registry);
if(method_exists($this->model_setting_extension, "getExtensions")){
$extensions = $this->model_setting_extension->getExtensions('module');
} else {
$extensions = $this->model_setting_extension->getInstalled('module');
}
$installed = false;
foreach($extensions as $extension){
if(is_array($extension) && $extension['code'] == "myfoo"){
$installed = true;
} elseif($extension == "myfoo") {
$installed = true;
}
}
if(!$installed){
exit('Error: Could not load module: myfoo!');
}
Run Code Online (Sandbox Code Playgroud)
最简单的方法是通过数据库查询简单地检查
$result = $this->db->query("SELECT * FROM `" . DB_PREFIX . "extension` WHERE `code` = 'myfoo'");
if($result->num_rows) {
// .. installed
} else {
// .. not installed
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4074 次 |
最近记录: |