对于cakephp 2.9,我有以下需求:
我应该检查显示的页面上是否有特定标签。
如果存在,则不得做任何其他事情,必须给我发送电子邮件。
这时候我想创建一个助手,并在 default.ctp
中调用一个方法类似:
$s = this-> fetch (‘content’);
$result_check = $this->myHelper->debug_content ($s);
echo $s;
在 myHelper 功能中:
public function debug_content( $s) {
$pos = strpos ( $s, "<div class = \"box-body\">");
if ( $pos === false) { echo “Error tag is not present!”;
return false;
}
在 AppController 中:
public $helpers = array (…, ‘myHelper’);
现在到这里好...但是现在?
我如何召回电子邮件组件(由我个性化)以发送电子邮件?
我在哪里叫它?
你会怎么做?
谢谢
最大
答案 0 :(得分:0)
我不知道我是否正确回答了您的问题。但是您可以在检查标记的功能中实现所需的电子邮件发送功能。
App::uses('CakeEmail', 'Network/Email');
public function debug_content( $s) {
$pos = strpos ( $s, "<div class = \"box-body\">");
if ( $pos === false) { echo “Error tag is not present!”;
$Email = new CakeEmail();
$Email->emailFormat('html');
$Email->template('default');
$Email->from('sending@adress.com');
$Email->to('receiving@adress.com');
$Email->subject('YOUR SUBJECT');
$Email->send();
return false;
}
答案 1 :(得分:0)
Implement一个View.afterRenderFile
事件的侦听器,看能否解决问题。查看View
类的源代码you can see,该回调在调用View::render()
期间接收视图文件名和评估的内容。然后,您可以使用此侦听器检查标签的内容,并在必要时发送该电子邮件。