Маски
[Перейти к справочнику по маскам]
При создании и редактирования письма часто нужно вставить имя отправителя,
подпись, дату, и вручную это делать совсем неудобно. Для быстрой и удобной
вставки в текст письма необходимой текстовой информации был разработан
механизм масок.
Механизм масок представляет собой текстово-ориентированный язык,
позволяющий манипулировать текстовыми строками. Конструкция языка представляет
собой строку символов, первый из которых - '%'. Если такая конструкция
прописана в одном из полей шаблона,
Fidolook обрабатывает ее и подставляет на ее место результирующую строку.
В язык входят условные операторы, встроенные функции (маски) и внешние
функции (внешние маски, выполненные в виде плагинов EMH).
Пример
Простейшим случаем применения масок является автоматическая подпись.
Если в поле Signature шаблона NewMail
прописать текст
-- Всего наилучшего, %fname
при создании нового письма будет добавлено имя из текущего почтового аккаунта,
например:
-- Всего наилучшего, Вася Пупкин
Встроенные маски
Как уже упоминалось, маски представляют собой функции,
принимающие аргументы - в основном аргументом является имя заголовка сообщения,
имя корзины, файла и т.п.
Начинаются маски с префиксов обозначающих еще один скрытый аргумент: %f - означает, что маска получает скрытым аргументом исходное (внешнее и обычно read only) сообщение,
на базе которого построен ответ, форвард и т.п. Cоответственно все заголовки и данные маска будет извлекать из него. %c - означает, что маска получает аргументом текущее (местное) редактируемое сообщение.
Остальные аргументы, если они есть, указыватся в скобках, например %fhdrf(X-Comment-To).
Регистр конструкции не имеет значения, т.е. %FHDRF(X-COMMENT-TO) и %fhdrf(x-comment-to)
эквивалентны.
Для упрощения ввода масок можно применять мастер масок. Для этого надо в поле ввода, поддерживающем маски,
вызвать меню правой кнопкой мыши и использовать пункт Insert Mask.
Замечание: Fidolook убирает все пробелы и переносы после операторов, поэтому для начала новой строки
после маски надо поставить точку, или указать html-тег. Например:
%fname.
другой абзац
Полный преречень масок приведен в конце этой страницы.
Условные операторы
Условные операторы - специализированые маски с помощью которых можно определить условия обработки масок.
К ним относятся %if, %then, %else и %match.
Синтаксис:
%if(exp1)%then(exp2)%else(exp3)
или:
%if(exp1)
%then(exp2)
%else(exp3)
где exp - любое выражение. До 10 вложений %if обрабатывается. Если выражение exp1 возвращает непустую
строку, то результатом всего выражения будет exp2, иначе exp3. Последний операнд - %else - может отсутствовать.
%match(exp1;exp2)
- сравнивает строку exp1 и exp2, и если они совпадают, возвращает exp1. В exp2 допустимы спецсимволы ? и *,
обозначающие соответственно любую букву и любую строку.
Пример применения:
%if(%match( %faddrname(From); andrey?no ))
%then(MUMU)
%else(BUBU)
Маски AND и XOR
Для выполнения некоторых условий удобно использовать консткукции =??= (AND) и =!!= (XOR).
Синтаксис:
=? exp1 exp2 exp3 ... ?=
=! exp1 exp2 exp3 ... !=
В первом случае возвращается строка выражений между =? и ?= если все выражения вернули ненулевые строки.
Во втором случае - если только одно выражение вернуло ненулевую стрроку.
Пример (приветствие в шаблоне ReplyMail):
You wrote =?in conference %fngrp ?==?to %f_to_?==?to %fx_ct?=, %fdate:
Замечание: Внутри %if или %match НЕЛЬЗЯ использовать =??= и =!!=.
Но внутри =??= в принципе МОЖНО использовать %if или %match, но имея ввиду
что если первая маска будет пустая, то весь =??= будет проигнорирован.
Специальные маски
Маски %htmlschrs, %squotrev предназначены для обработки исключительных ситуаций при обработке строк.
Синтаксис:
%squotrev(exp)
Эта функция для преодоления ограничений, накладываемых Windows Script Components.
Если какая-либо маска (например, %faddrname(From)) даст в итоге строку,
содержащую т.н. singlequote, возникает ошибка. Например - 'From: Andr Luk'yanov'.
Причем, даже если заменить "'" на &_#039, для Windows Script это проблему не
решает: 'From: Andr Luk' а остальное - yanov' - есть fatal error - когда возникает
исключение и вступает в игру Sсript Debugger. Возможно, это баг Windows Script Engine.
Поскольку выражения языка масок в FL могут давать непредсказуемый в смысле набора
символов результат, введена эта маска, которая заменяет в exp
все символы "'" на "`". Обманывая таким образом Script Engine и
позволяя быть выполненной невыполнимой задаче.
%htmlschrs(exp)
- помогает отобразить исходный код HTML, преобразовывая символы < > и другие спецсимволы разметки HTML в их
текстовый эквивалент. Например, строка "<Я люблю угловые скобки>" будет интерпретипрована как
html-тег и не отобразится. %htmlschrs(<Я люблю угловые скобки>) поможет отобразить ее правильно.
Внешние маски
Внешние маски реализованны в виде плагинов и
вызываются при помощи оператора %extrn.
Синтаксис:
%extrn(mask_name,parameters)
где mask_name - имя внешней маски, parameters - строка, передающаяся внешней маске как входные данные.
Список некоторых внешних масок можно посмотреть тут.
Вы можете сами написать необходимую маску используя приятый интерфейс.
Справочник по маскам
Атрибуты исходного сообщения
|
|
Sender Attribs |
Атрибуты отправителя |
%ffrom |
Name and Address |
|
|