Joomla:onContentAfterSave没有触发文章

时间:2017-09-15 08:37:50

标签: php plugins joomla joomla3.0 joomla-extensions

我正在使用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;
}       

1 个答案:

答案 0 :(得分:0)

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

我可以想到在你的情况下没有触发它的两个原因:

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