繁体   English   中英

Joomla:文章未触发onContentAfterSave

[英]Joomla: onContentAfterSave not triggered for articles

我正在开发一个带有onContentAfterSave事件的Joomla插件,以在保存新文章后发送电子邮件。

当我保存新菜单项或新类别时触发该事件。 但不适用于新文章。

Joomla! 3.7.5

public function onContentAfterSave($context, $article, $isNew){ 
    $link = JRoute::_(ContentHelperRoute::getArticleRoute(  $article->id,  $article->catid ));

    $mailer = JFactory::getMailer();
    $config = JFactory::getConfig();
    $sender = array( 
        $config->get( 'mailfrom' ),
        $config->get( 'fromname' ) 
    );
    $mailer->setSender($sender);


    $user = JFactory::getUser();
    $recipient = $user->email;

    $recipient = array($recipient);
    $mailer->addRecipient($recipient);

    $body   = '<p>Bonjour</p>'
              .'Un nouveau <a href="'.$link.'">article</a> a été ajouté.';
    $mailer->isHtml(true);
    $mailer->Encoding = 'base64';

    $mailer->setSubject('Nouveau article - BBN Times');
    $mailer->setBody($body);


    $send = $mailer->Send();

    if ( $send !== true ) {
        echo 'Error sending email: ';
    } else {
        echo 'Mail sent';
    }

    return true;
}       

onContentAfterSave是由Joomla核心而不是扩展模型触发的,这意味着它应该由任何内容保存触发。

我可以想到2个在您的情况下未触发的原因:

  • 您的构造函数中有一个条件检查扩展类型,并且仅允许某些扩展使用该事件(或插件中的其他位置)。
  • 您在上面的代码中有错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM