it-swarm.com.de

So erstellen Sie eine HTML-E-Mail für Kunena

Ich habe eine Joomla-Site mit Kunena installiert. Meine Benutzer sind mit dem Layout der E-Mail, die sie vom Forum erhalten, nicht zufrieden.

Hier ist ein Teil des Codes, der für die Erstellung dieser E-Mail verantwortlich ist:

protected function createEmailBody($subscription, $subject, $url, $message, $once) {
    $config = KunenaFactory::getConfig();
    if ($subscription) {
        $msg1 = $this->get ( 'parent' ) ? JText::_ ( 'COM_KUNENA_POST_EMAIL_NOTIFICATION1' ) : JText::_ ( 'COM_KUNENA_POST_EMAIL_NOTIFICATION1_CAT' );
        $msg2 = $this->get ( 'parent' ) ? JText::_ ( 'COM_KUNENA_POST_EMAIL_NOTIFICATION2' ) : JText::_ ( 'COM_KUNENA_POST_EMAIL_NOTIFICATION2_CAT' );
    } else {
        $msg1 = JText::_ ( 'COM_KUNENA_POST_EMAIL_MOD1' );
        $msg2 = JText::_ ( 'COM_KUNENA_POST_EMAIL_MOD2' );
    }

    $msg = $msg1 . " " . $config->board_title . "\n\n";
    // DO NOT REMOVE EXTRA SPACE, JMailHelper::cleanBody() removes "Subject:" from the message body
    $msg .= JText::_ ( 'COM_KUNENA_MESSAGE_SUBJECT' ) . " : " . $subject . "\n";
    $msg .= JText::_ ( 'COM_KUNENA_CATEGORY' ) . " : " . $this->getCategory()->name . "\n";
    $msg .= JText::_ ( 'COM_KUNENA_VIEW_POSTED' ) . " : " . $this->getAuthor()->getName('???', false) . "\n\n";
    $msg .= "URL : $url\n\n";
    if ($config->mailfull == 1) {
        $msg .= JText::_ ( 'COM_KUNENA_MESSAGE' ) . " :\n-----\n";
        $msg .= $message;
        $msg .= "\n-----\n\n";
    }
    $msg .= $msg2 . "\n";
    if ($subscription && $once) {
        if ($this->parent) {
            $msg .= JText::_ ( 'COM_KUNENA_POST_EMAIL_NOTIFICATION_MORE_READ' ) . "\n";
        } else {
            $msg .= JText::_ ( 'COM_KUNENA_POST_EMAIL_NOTIFICATION_MORE_SUBSCRIBE' ) . "\n";
        }
    }
    $msg .= "\n";
    $msg .= JText::_ ( 'COM_KUNENA_POST_EMAIL_NOTIFICATION3' ) . "\n";
    return JMailHelper::cleanBody ( $msg );
}

Also habe ich beschlossen, ein Bild des Logos von meiner Website unten hinzuzufügen:

$msg .= ('<img src="http://mysite.me.ke/templates/jsn_nuru_free/images/colors/red/logo.png" width="100"/>');

aber als die E-Mail verschickt wurde, gab sie das Gleiche zurück, was ich ihr gegeben habe

 <img src="http://mysite.me.ke/templates/jsn_nuru_free/images/colors/red/logo.png" width="100"/>

deshalb dachte ich, ich sollte die PHP-Funktion htmlspecialchars_decode () wie folgt verwenden:

$msg .= htmlspecialchars_decode('<img src="http://mysite.me.ke/templates/jsn_nuru_free/images/colors/red/logo.png" width="100"/>');

Trotzdem habe ich nichts Neues bekommen. Bitte helfen Sie mir raus!

2
Jack Siro

Ich würde vorschlagen, JUri::root() zu verwenden, wenn Sie den Pfad Ihrer Site wie folgt definieren:

$msg .= '<img src="' . JUri::root() . 'templates/jsn_nuru_free/images/colors/red/logo.png" width="100"/>';

Außerdem habe ich die Klammern entfernt, die Sie außerhalb des Image-Tags hinzugefügt haben, da sie nicht erforderlich sind

1
Lodder

Hey Jack, wenn Sie versuchen könnten, JUri :: root () zu verwenden, wenn Sie den Pfad Ihrer Site definieren, wie folgt:

   protected function createEmailBody($subscription, $subject, $url, $message, $once) {
        $config = KunenaFactory::getConfig();
        if ($subscription) {
            $msg1 = $this->get ( 'parent' ) ? JText::_ ( 'COM_KUNENA_POST_EMAIL_NOTIFICATION1' ) : JText::_ ( 'COM_KUNENA_POST_EMAIL_NOTIFICATION1_CAT' );
            $msg2 = $this->get ( 'parent' ) ? JText::_ ( 'COM_KUNENA_POST_EMAIL_NOTIFICATION2' ) : JText::_ ( 'COM_KUNENA_POST_EMAIL_NOTIFICATION2_CAT' );
        } else {
            $msg1 = JText::_ ( 'COM_KUNENA_POST_EMAIL_MOD1' );
            $msg2 = JText::_ ( 'COM_KUNENA_POST_EMAIL_MOD2' );
        }

        $msg = $msg1 . " " . $config->board_title . "\n\n";
        // DO NOT REMOVE EXTRA SPACE, JMailHelper::cleanBody() removes "Subject:" from the message body
        $msg .= JText::_ ( 'COM_KUNENA_MESSAGE_SUBJECT' ) . " : " . $subject . "\n";
        $msg .= JText::_ ( 'COM_KUNENA_CATEGORY' ) . " : " . $this->getCategory()->name . "\n";
        $msg .= JText::_ ( 'COM_KUNENA_VIEW_POSTED' ) . " : " . $this->getAuthor()->getName('???', false) . "\n\n";
        $msg .= "URL : $url\n\n";
        if ($config->mailfull == 1) {
            $msg .= JText::_ ( 'COM_KUNENA_MESSAGE' ) . " :\n-----\n";
            $msg .= $message;
            $msg .= "\n-----\n\n";
            $msg .= '<img src="' . JUri::root() . 'templates/jsn_nuru_free/images/colors/red/logo.png" width="100"/>';
        }
        $msg .= $msg2 . "\n";
        if ($subscription && $once) {
            if ($this->parent) {
                $msg .= JText::_ ( 'COM_KUNENA_POST_EMAIL_NOTIFICATION_MORE_READ' ) . "\n";
            } else {
                $msg .= JText::_ ( 'COM_KUNENA_POST_EMAIL_NOTIFICATION_MORE_SUBSCRIBE' ) . "\n";
            }
        }
        $msg .= "\n";
        $msg .= JText::_ ( 'COM_KUNENA_POST_EMAIL_NOTIFICATION3' ) . "\n";
        return JMailHelper::cleanBody ( $msg );
    }
1
Jack Siro