2017-08-31 79 views
1

我將Opencart 2.3的擴展遷移到Opencart 3.除了我無法啓用擴展,一切似乎都正常工作。當我去擴展 - >運輸狀態不會改變它保持禁用,但是如果我去設置,下拉顯示選擇啓用。前端或日誌文件中沒有任何錯誤。我試過調試,但一切似乎都很好。任何想法可能是錯誤的?另外,數據庫中的設置(extensionName_status)是1
注意:擴展很大,如果我在這裏發佈它,它會太多。如果你需要特定的代碼片段,我會提供它。擴展未啓用

+0

您是否更改了狀態標誌的名字嗎?如果發貨模塊被命名爲'foo',狀態標誌現在是'shipping_foo'(而它在2.3中只是'foo')。 –

+1

謝謝,這似乎導致了這個問題,不幸的是我沒有注意到這個變化。請注意,如果您將此作爲答案,那麼我可以將其標記爲最佳答案。 –

回答

1

關於2.3-> 3.0遷移的棘手問題是某些變量名稱以微妙的方式發生了變化(正如我在上面的評論中指出的那樣)。狀態變量可能是你的問題。這裏是最好一起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'); 
0

如果你的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'); 
    } 

或者,如果它是標記的分析範疇,那麼你只需要改變moduleanalytics,如下圖所示:

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'); 
}