2017-06-05 10 views
1

Opencartモジュールの開発に新しく、OC 2.3.xでイベントを含むカスタムモジュールを作成しようとしています。 は、ここで私がやったコードされていますopencart 2.3.xカスタムモジュール内のイベントはトリガーされません

class ControllerExtensionModuleFSElias extends Controller 
{ 
    public function install() 
    { 
     $this->load->model('extension/event'); 
     $this->model_extension_event->addEvent('fselias', 'admin/model/catalog/product/addProduct/after', 'fselias/events/add_product'); 
    } 

    public function add_product($route, $product_id) 
    { 
     $this->load->model('sale/order'); 
     $this->load->model('catalog/product'); 

     //$product_id - you can get the product id that was recentlt added in this function 
     $log = date("F j, Y, g:i a") . ': ' . $route . ': ' . $product_id . PHP_EOL; 
     file_put_contents('./products_log_' . date("j.n.Y") . '.txt', $log, FILE_APPEND); 
    } 
} 

イベントは、まだ新製品を追加するとき、私はそこに間違ってやっていること喜ばトリガーなっていないが登録されていますか?

答えて

0

引数3(fselias/events/add_product)に指定した文字列が正しいとは確信していません。それはコントローラへのルートになっているはずです。しかし、これをデバッグするために何ができるのかは、ポストイベントがトリガーされ、あなたのイベントで何が起こっているかを見るsystem/engine/loader.phpにブレークポイントが設定されています。イベントが見つからない場合、システムは黙って失敗します。これが私にとって起こりました。デバッガでシステムを実行することは、私がそれを追跡する唯一の方法でした。

+0

「あなたのイベントで何が起こっているのか見てみましょうか?」ということを詳しく教えてください。 –

+0

ローダーでブレークポイントを設定すると、イベントの処理方法がわかります。たとえば、あなたのイベントがそこに着くことはないかもしれません。多分、それは何らかのエラーを伴います。 –

関連する問題