web-dev-qa-db-fra.com

Comment créer un email HTML pour Kunena

J'ai un site joomla avec Kunena installé dessus. Mes utilisateurs ne sont pas satisfaits de la mise en page du courrier électronique qui leur est envoyé à partir du forum.

Voici une partie du code responsable de la création de cet email:

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 );
}

J'ai donc décidé d'ajouter une image du logo de mon site en bas, comme ceci:

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

mais quand l'e-mail a été envoyé, il a renvoyé la même chose que je lui ai donnée

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

alors j'ai pensé que je devrais utiliser htmlspecialchars_decode () php fonctionne comme dans:

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

Mais je n'ai toujours rien de nouveau. Aidez-moi gentiment!

2
Jack Siro

Je suggérerais d'utiliser JUri::root() lors de la définition du chemin de votre site, comme ceci:

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

De plus, j'ai supprimé les crochets que vous avez ajoutés en dehors de la balise d'image, car ils ne sont pas obligatoires.

1
Lodder

Hey Jack si vous pouviez essayer d'utiliser JUri :: root () lors de la définition du chemin de votre site, comme ceci:

   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