Verspringende Smarty-code in de e-maileditor

Het kan voorkomen dat je merkt dat jouw Smarty-code in de broncode van een e-mail plotseling op een andere plek staat dan waar je deze had geplaatst. Dit wordt veroorzaakt door de e-maileditor, die er automatisch voor zorgt dat de HTML-code van je e-mail correct blijft. Wanneer de editor merkt dat bepaalde teksten of codes zich op onjuiste posities bevinden (bijvoorbeeld tussen <table> en <tr> tags in), wordt de code automatisch verplaatst naar een locatie waar deze wél correct is volgens de HTML-structuur.

Hoe voorkom je dat de code verspringt?

Als je wilt voorkomen dat de editor je code automatisch verplaatst, zijn er twee manieren om dit te doen:

1. Gebruik de tools van de editor

In de e-maileditor zit een optie om bij structuurelementen voorwaarden in te voeren. Als je bij een structuurelement op de button voorwaarden klikt en daarna het schuifknopje voorwaarden voor weergave toepassen activeert, kun je hier zelf Smarty-code invoeren. De editor zorgt er vervolgens voor dat deze code op de juiste plek in de broncode wordt geplaatst, zonder verschuivingen.

2. Gebruik de <unchanged> tag

Wanneer je handmatig Smarty-code invoert, kun je de <unchanged>-tag gebruiken. Dit zorgt ervoor dat de editor de code niet verplaatst of wijzigt, zelfs als deze op een locatie staat die normaal gesproken problematisch zou kunnen zijn. Bijvoorbeeld:

<table>
    <tr>
        <th>Kop 1</th>
        <th>Kop 2</th>
    </tr>
    <!--<unchanged>{foreach $items as $item}</unchanged>-->
        <tr>
            <td>{$item.naam}</td>
            <td>{$item.prijs}</td>
        </tr>
    <!--<unchanged>{/foreach}</unchanged>-->
</table>

In het bovenstaande voorbeeld zorgt de <unchanged> tag ervoor dat de e-maileditor de positie van de Smarty-code niet wijzigt. Dit is vooral handig wanneer de editor geneigd is de code naar een andere plek te verplaatsen.

Samenvatting

De e-maileditor probeert je HTML altijd in een geldige staat te houden, waardoor code soms verspringt. Gebruik bij voorkeur de ingebouwde editor-tools om voorwaarden toe te voegen. Gebruik de <unchanged> tag als je code op een specifieke plek wilt forceren.