2015-12-11 41 views
2

我是OpenCart 2的新手。默認情況下,OpenCart提供客戶註冊表單。我希望爲公司的用戶創建另一個註冊表單,該表單的輸入字段與客戶註冊表單不同。如何在OpenCart 2中創建單獨的自定義註冊表單?

我複製了以下文件並正確地重命名它們。

- catalog/controller/account/register.php 
- catalog/model/account/customer.php 
- template/account/register.tpl 

我爲註冊公司創建了一個新的數據庫表。當我查看ModelAccountCustomer模型中的addCustomer($data)函數時,我堅持使用以下代碼行。

$this->event->trigger('pre.customer.add', $data); 

我想把它變成$this->event->trigger('pre.company.add', $data);我在我的ModelAccountCompany模型addCompany($data)功能。但它會導致錯誤。我該如何解決它?

另一個問題是我的ControllerAccountRegisterCustomer控制器內部的以下代碼行。

$this->customer->isLogged() 
and 
$this->customer->login(); 

我要放置類似的代碼在我ControllerAccountRegisterCompany控制器如下。

$this->company->isLogged() 
and 
$this->company->login(); 

$this->company不返回公司對象來調用它的'功能。我該如何解決它?

+0

你能發佈錯誤嗎? –

+0

您是否創建了'公司'的庫文件。並在'index.php'文件中創建對象或不是? –

回答

1

如果您想創建自定義事件處理程序,如$this->event->trigger('pre.company.add', $data);。首先你需要在數據庫中安裝這個事件。請檢查以下樣本。

<?php class ControllerModuleA2bizz extends Controller { 

public function install() { 
    $this->load->model('extension/event'); 
    $this->model_extension_event->addEvent('a2bizz', 'pre.admin.store.delete', 'module/a2bizz/on_store_delete'); 
    $this->model_extension_event->addEvent('a2bizz', 'post.customer.add', 'module/a2bizz/on_customer_add'); 

} 

public function uninstall() { 
    $this->load->model('extension/event'); 
    $this->model_extension_event->deleteEvent('a2bizz'); 
} 

public function on_store_delete($store_id) { 
    $this->load->model('setting/store'); 
    $store_info = $this->model_setting_store->getStore($store_id); 
    $admin_mail = $this->config->get('config_email'); 
    mail($admin_mail, "A store has been deleted", "The store " . $store_info['url'] . " was deleted."); 
} 
} 

更多關於opencart 2.x中的事件處理程序的信息。 Read Here

+0

我明白你的上面的答案。您的代碼示例將在第一次安裝模塊/擴展時執行。如何在我已經安裝此模塊後想要註冊更多事件?例如。 $ this-> model_extension_event-> addEvent('a2bizz','post.customer.newAction','module/a2bizz/on_customer_newAction');在添加更多代碼以註冊更多事件後,是否需要卸載擴展並重新安裝? –

+0

如果你想添加更多的事件與卸載模塊。您需要通過手動sql查詢在** event **表中添加事件。參考:http://awesomescreenshot.com/0d85hyc136 –

相關問題