代码之家  ›  专栏  ›  技术社区  ›  user8302249 Edi Modrić

不删除保存数据。如果,我确实卸载了Opencart 3中的模块

  •  1
  • user8302249 Edi Modrić  · 技术社区  · 7 年前

    我已经为OpenCart更新了我的主题模块 . 通常情况下,这很好。但是,确实产生了一个小问题。

    什么时候,我会再次安装&编辑模块。因此,不删除上述保存的数据。此外,保存的数据设置不会从正面删除。它仍然保存数据。

    这在旧版本(2.3.0.2)中运行良好。但是,在这里,我无法判断。为什么在最新版本中会出现这种情况。 你能提出什么建议吗?以下代码是我们的文件。

    神话。php (管理\控制器\扩展\模块)

    <?php
    class ControllerExtensionModuleMytheme extends Controller {
    
        private $error = array(); 
    
        public function index() {   
    
            $language = $this->load->language('extension/module/mytheme');
            $data = array_merge($language);
    
            $this->document->setTitle($this->language->get('heading_title'));
    
            $this->load->model('setting/setting');
    
            $this->load->model('tool/image');  
    
            if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
                $this->model_setting_setting->editSetting('mytheme', $this->request->post);    
    
                $this->session->data['success'] = $this->language->get('text_success');
    
                if(isset($this->request->post['save_stay']) and $this->request->post['save_stay']=1)
                $this->response->redirect($this->url->link('extension/module/mytheme', 'user_token=' . $this->session->data['user_token'], true));
                else
                $this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=module', true));
    
            }
    
                $data['text_image_manager'] = 'Image manager';
                $data['user_token'] = $this->session->data['user_token'];       
    
            if (isset($this->session->data['success'])) {
                $data['success'] = $this->session->data['success'];
                unset($this->session->data['success']);
            } else {
                $data['success'] = '';
            }
    
            // store config data
    
            $config_data = array(
    
            'mytheme_background_color',
            'mytheme_button_color',
            'mytheme_powered_text',
    
            );
    
            foreach ($config_data as $conf) {
                if (isset($this->request->post[$conf])) {
                    $data[$conf] = $this->request->post[$conf];
                } else {
                    $data[$conf] = $this->config->get($conf);
                }
            }
    
    
            if (isset($this->error['warning'])) {
                $data['error_warning'] = $this->error['warning'];
            } else {
                $data['error_warning'] = '';
            }
    
            $data['breadcrumbs'] = array();
    
            $data['breadcrumbs'][] = array(
                'text' => $this->language->get('text_home'),
                'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true)
            );
    
            $data['breadcrumbs'][] = array(
                'text' => $this->language->get('text_extension'),
                'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=module', true)
            );
    
            $data['breadcrumbs'][] = array(
                'text'      => $this->language->get('heading_title'),
                'href'      => $this->url->link('extension/module/mytheme', 'user_token=' . $this->session->data['user_token'], true)
            );
    
    
            $data['action'] = $this->url->link('extension/module/mytheme', 'user_token=' . $this->session->data['user_token'], true);
    
            $data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=module', true);
    
            if (isset($this->request->post['mytheme_module'])) {
                $modules = explode(',', $this->request->post['mytheme_module']);
            } elseif ($this->config->get('mytheme_module') != '') {
                $modules = explode(',', $this->config->get('mytheme_module'));
            } else {
                $modules = array();
            }           
    
            $this->load->model('localisation/language');
    
            $data['languages'] = $this->model_localisation_language->getLanguages();
    
            $data['modules'] = $modules;
    
            if (isset($this->request->post['mytheme_module'])) {
                $data['mytheme_module'] = $this->request->post['mytheme_module'];
            } else {
                $data['mytheme_module'] = $this->config->get('mytheme_module');
    
            }
    
            $data['mytheme_modules'] = array();
    
            $data['header'] = $this->load->controller('common/header');
            $data['column_left'] = $this->load->controller('common/column_left');
            $data['footer'] = $this->load->controller('common/footer');
    
            $this->response->setOutput($this->load->view('extension/module/mytheme', $data));
        }
    
        protected function validate() {
            if (!$this->user->hasPermission('modify', 'extension/module/mytheme')) {
                $this->error['warning'] = $this->language->get('error_permission');
            }
    
            return !$this->error;
        }
    }
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   Adnan Ahmad    7 年前

    您可以在控制器中创建卸载功能。

    public function uninstall() {
          $this->load->model('setting/setting');
          $this->model_setting_setting->deleteSetting('mytheme');
    
    }
    

    你不需要调用这个函数。卸载模块时,它将自动调用。

    推荐文章