こんにちは、そこに親愛なる開発者。カスタムバックオフィスモジュールのプロダクトキーのリストに「Mail」という名前のカスタムAddRowActionを作成しました。このアクションフックの内容がトリガされないことを除いてほとんど動作します。テストのために、私はそれが動作するかどうかをテストするためのデフォルトのmail()関数を入れます。しかし、私のprocessMail()ではうまくいきません。ボタンをエクスポートに変更するとメールが機能します。Prestashop V1.6 - 私のRowAction "mail"は動作しません。
この私が作った今日:
マイバックオフィスコントローラ:FINE WORKS
class AdminAvantokeyLogController extends ModuleAdminController
{
public function __construct()
{
$this->bootstrap = true;
$this->table = 'avanto_log';
$this->className = "AvantoLog";
$this->_defaultOrderBy = 'id_avanto_log';
$this->addRowAction('edit');
$this->addRowAction('delete');
$this->addRowAction('mail'); //this is my custom button
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'),
'confirm' => $this->l('Delete selected items?')),);
$this->fields_list = array(
'id_avanto_log' => array(
'title' => $this->l('Key ID'),
'width' => 20,
),
'serial_key' => array(
'title' => $this->l('Serial Keys'),
'width' => 200,
),
'product_name' => array(
'title' => $this->l('Product Name'),
'width' => 50,
),
);
parent::__construct();
}
これは、同じコントローラでdisplayMaillink方法:FINE WORKS
public function displayMailLink($token, $id)
{
$this->context->smarty->assign(
array(
'href' => self::$currentIndex.'&token='.$this->token.'&'.$this->identifier.'='.$id.'&mail'.$this->table.'=1',
'action' => $this->l('Mail')
)
);
$content = $this->context->smarty->fetch(_PS_MODULE_DIR_ . "avanto_key/views/templates/admin/list_action_test.tpl");
return $content;
}
このprocessMail()メソッドは、メールバットをクリックしてもトリガされませんon:
public function processMail()
{
mail("[email protected]" , "test message from export" , "this is my message content");
}
誰かが私を正しい方向に向けることができますか?私は、Admincontrollerとexportcontrollerのビルドからメソッドをコピーしました。しかし私は誘発されません。みんなありがとう!!!
こんにちはTheDrot。あなたは素晴らしいです。実際にはこのコードが欠けていました。今私はそれを理解する。 this-> actionは、私がprocessMail()に入れたコードを参照しています。大変ありがとう! – vanhims