Email-Benachrichtigung für Blog-Kommentare nachrüsten

 

  1. Im ersten Schritt muss die Datei item.php im Verzeichnis /components/com_k2/models/ bearbeitet werden.
  2. Ganz am Ende der Funktion comment() , etwa bei Zeile 1080, muss vor

    $application->close();

    folgender Code (Kurzform) ergänzt werden:

     // Versenden einer Email an "blog@komet-hamburg.de" bei neuem Kommentar im Blog
     $mailer =& JFactory::getMailer();
     $config =& JFactory::getConfig();
     $sender = array(
     $config->get( 'config.mailfrom' ),
     $config->get( 'config.fromname' ) );
     $mailer->setSender($sender);
     $recipient = explode(",", "blog@komet-hamburg.de");
     $mailer->addRecipient($recipient);
     $mailer->setSubject(JText::_('K2_NEWCOMMENT_EMAIL'));
     if  (!trim($commentURL)=="") {
        $commentURL = "Site: ". $commentURL. "\n";
        }
     $body = "Name: ". $userName.  "\n". "E-mail: "
     . $commentEmail. "\n". $commentURL. "Comment: ". $commentText;
     $mailer->setBody($body);
     $mailer->isHTML(true);
     $mailer->Send();

    bzw. ausführlich [ Diese Version verwenden !]

    // Versenden einer Email an "blog@komet-hamburg.de"; bei neuem Kommentar im Blog
    $mailer =& JFactory::getMailer();
    $config =& JFactory::getConfig();
    $sender = array(
    $config->get( 'config.mailfrom' ),
    $config->get( 'config.fromname' ) );
    $mailer->setSender($sender);
    $recipient = explode(",", "blog@komet-hamburg.de";);
    $mailer->addRecipient($recipient);
    //Read more link
    $link = K2HelperRoute::getItemRoute($item->id.':'.urlencode($item->alias), $item->catid.':'.urlencode($item->category->alias));
    $item->link = urldecode(JRoute::_($link));
    $item->cleanTitle = $item->title;
    $item->title = htmlspecialchars($item->title, ENT_QUOTES);
    $item->image_caption = htmlspecialchars($item->image_caption, ENT_QUOTES);
    //Author
    $author = JFactory::getUser($item->created_by);
    $item->author = $author;
    $item->author->link = JRoute::_(K2HelperRoute::getUserRoute($item->created_by));
    $mailer->setSubject(JText::_($item->author->name. 's Beitrag wurde gerade kommentiert'));
    if (!trim($commentURL)=="") {
    $commentURL = "Site: ". $commentURL. "\n";
    }
     
    $body = "<h1>Neuer Kommentar zu ". $item->author->name. "s Beitrag: <i>'". "<a href='". JURI::root().$item->link. "'>". $item->title. "</a>'</i>". "</h1>". $item->introtext. "<h1>Kommentar:</h1><i>". $commentText. "</i><br><br>von ". $userName. "<br>". "Kontakt: ". $commentEmail. "<br>". "<br>";
    $mailer->setBody($body);
    $mailer->isHTML(true);
    $mailer->Send();
    // Ende

    veralteter Code [nicht verwenden]

     // Versenden einer Email an "blog@komet-hamburg.de" bei neuem Kommentar im Blog
     $mailer =& JFactory::getMailer();
     $config =& JFactory::getConfig();
     $sender = array(
     $config->get( 'config.mailfrom' ),
     $config->get( 'config.fromname' ) );
     $mailer->setSender($sender);
     $recipient = explode(",", "blog@komet-hamburg.de");
     $mailer->addRecipient($recipient);
            
     //Read more link
     $link = K2HelperRoute::getItemRoute($item->id.':'.urlencode($item->alias), $item->catid.':'.urlencode($item->category->alias));
     $item->link = urldecode(JRoute::_($link));

     $item->cleanTitle = $item->title;
     $item->title = htmlspecialchars($item->title, ENT_QUOTES);
     $item->image_caption = htmlspecialchars($item->image_caption, ENT_QUOTES);

            
     // Author
     $metaAuthor = K2_JVERSION != '15' && $application->getCfg('MetaAuthor');
     if ($metaAuthor || ($view == 'item' && ($item->params->get('itemAuthorBlock') || $item->params->get('itemAuthor'))) ||  ($view == 'itemlist' && ($task == '' || $task == 'category') && ($item->params->get('catItemAuthorBlock') || $item->params->get('catItemAuthor'))) || ($view == 'itemlist' && $task == 'user') || ($view == 'relatedByTag'))
     {
     if (!empty($item->created_by_alias)) {
        $item->author = new stdClass;
        $item->author->name = $item->created_by_alias;
        $item->author->avatar = K2HelperUtilities::getAvatar('alias');
        $item->author->link = JURI::root();
        }
     else {
        $author = JFactory::getUser($item->created_by);
        $item->author = $author;
        $item->author->link = JRoute::_(K2HelperRoute::getUserRoute($item->created_by));
        $item->author->profile = $this->getUserProfile($item->created_by);
        $item->author->avatar = K2HelperUtilities::getAvatar($author->id, $author->email, $params->get('userImageWidth'));
        }

     if (!isset($item->author->profile) || is_null($item->author->profile)) {
        $item->author->profile = new JObject;
        $item->author->profile->gender = NULL;
        }
     }            
            
     $mailer->setSubject(JText::_($item->author->name. 's Beitrag wurde gerade kommentiert'));
     if  (!trim($commentURL)=="") {
        $commentURL = "Site: ". $commentURL. "\n";
        }

     $body = "<h1>Neuer Kommentar zu ". $item->author->name. "s Beitrag: <i>'". "<a href='". JURI::root().$item->link. "'>". $item->title. "</a>'</i>". "</h1>". $item->introtext. "<h1>Kommentar:</h1><i>". $commentText. "</i><br><br>von ". $userName.  "<br>". "Kontakt: ". $commentEmail. "<br>". "<br>";
     $mailer->setBody($body);
     $mailer->isHTML(true);
     $mailer->Send();
     // Ende

  3. Nach einem Update von K2 muss diese ergänzung erneut erfolgen. Ggf. kann es langfristig als Override realisiert werden. Siehe hierzu