Условное содержимое в шаблоне Mandrill

Я передаю ключи словаря (пара ключ-значение) службе, которая, в свою очередь, использует API для отправки электронной почты через Mandrill.

Теперь, если мой ключ пуст, я не хочу, чтобы он был включен в электронное письмо. Как и в следующем сценарии, я хочу, чтобы текст ссылки отображался только в том случае, если мой ключ имеет какое-то значение.

‹a href="|UPDATE_PROFILE|" target="_blank" ›изменить настройки подписки‹/a›

Как я могу написать что-то вроде этого или даже возможно ли это?

if *|UPDATE_PROFILE|* IS NOT EMPTY
BEGIN
<a href="*|UPDATE_PROFILE|*" target="_blank">change subscription preferences</a> 
END

person learning...    schedule 01.08.2014    source источник


Ответы (2)


Я нашел ответ здесь: https://mailchimp.com/developer/transactional/docs/templates-dynamic-content/

Вот информация со страницы:

Условные теги слияния поддерживают традиционную логику IF, ELSE и ELSEIF, а также отрицательные условия IFNOT.

Используйте условия ЕСЛИ для отображения содержимого только в том случае, если условие оценивается как истинное.

*|IF:MERGE|*
content to display if a value for MERGE is provided
*|END:IF|*


*|IF:MERGE=x|*
    content to display if the value for MERGE is x
*|END:IF|*

При использовании такого условия, как |IF:MERGE=x|, и не указано значение для MERGE, условие оценивается как ложное.

Используйте условия IF и ELSE для отображения содержимого, когда условие истинно, и чередуйте содержимое, когда условие оценивается как ложное.

*|IF:MERGE|*
    content to display
*|ELSE:|*
    alternative content
*|END:IF|*

Условие ELSEIF

Используйте ELSEIF для отображения одного из нескольких возможных вариантов. Будет отображаться только содержимое, следующее за первым условием, оцененным как истинное, остальные условия будут пропущены.

*|IF:MERGE=x|*
    <p>content to display if the value for MERGE is x</p>
*|ELSEIF:MERGE=y|*
    <p>content to display if the value for MERGE is not x, but is y</p>
*|ELSEIF:MERGE=z|*
    <p>content to display if the value for MERGE is not x or y, but is z</p>
*|ELSE:|*
    <p>alternate content to display if the value for MERGE is not x, y, or z</p>
*|END:IF|*

Вложенные условия

*|IF:MERGE1=x|*
    *|IF:MERGE2=y|*
          <div mc:edit="main"> 
                <p>content to display if both conditions are true</p>
           </div>
    *|END:IF|*
*|END:IF|*

Отрицательные условия

*|IF:MERGE!=x|*
    content to display if the value for MERGE is not x
*|ELSE:|*
    content to display if the value for MERGE is x
*|END:IF|*


*|IFNOT:MERGE|*
    content to display if MERGE is not provided
*|ELSE:|*
    content to display if MERGE is provided
*|END:IF|*

Использовать в моем случае

*|IF:UPDATE_PROFILE|*
                    <p>IMPORTANT NOTE: *|LAYOUTYEAR|*  
                        available for review at: http://www.somesite.org/SomePage.</p>
                *|ELSE:|*
                    <p>
                        <a href="http://www.somesite.org/SomePage" target="_blank">Click here</a>
                        to view the detailed specs.
                    </p>
                *|END:IF|*
person learning...    schedule 02.08.2014
comment
Я думаю, что это связано с тем, что мы даем только ссылку, которая однажды может быть мертва, и не помещаем какую-либо полезную информацию. Например, если бы вы добавили информацию, как это сделал Хемерсон Варела со своей ссылкой, все было бы в порядке. Или хотя бы решение вашей проблемы - person eXa; 02.11.2015

Mandrill поддерживает условные теги

Основное условие IF

*|IF:UPDATE_PROFILE|*
    content to display if a value for UPDATE_PROFILE is provided
*|END:IF|*

*|IF:UPDATE_PROFILE=x|*
    content to display if the value for UPDATE_PROFILE is x
*|END:IF|*

Основное условие IF-ELSE

*|IF:UPDATE_PROFILE|*
    content to display
*|ELSE:|*
    alternative content
*|END:IF|*

Условие ELSEIF

*|IF:UPDATE_PROFILE=x|*
    <p>content to display if the value for UPDATE_PROFILE is x</p>
*|ELSEIF:UPDATE_PROFILE=y|*
    <p>content to display if the value for UPDATE_PROFILE is not x, but is y</p>
*|ELSEIF:UPDATE_PROFILE=z|*
    <p>content to display if the value for UPDATE_PROFILE is not x or y, but is z</p>
*|ELSE:|*
    <p>alternate content to display</p>
*|END:IF|*

Исключения

*|IF:UPDATE_PROFILE!=x|*
    content to display if the value for UPDATE_PROFILE is not x
*|ELSE:|*
    content to display if the value for UPDATE_PROFILE is x
*|END:IF|*

*|IFNOT:UPDATE_PROFILE|*
    content to display if UPDATE_PROFILE is not provided
*|ELSE:|*
    content to display if UPDATE_PROFILE is provided
*|END:IF|*
person Hemerson Varela    schedule 01.12.2014