FL Online Help

Последнее обновление: [ 03.06.2004 ] Билд: [ 020 ]
[ FidoLook ]
[ Fidolook SL ]
[ Скриншоты ]
[ Что нового ]
[ Последние версии ]


[ Справка ]
[ Установка ]
[ Панель FL ]
[ Настройки ]
[ Горячие клавиши ]
[ Командная строка ]
[ FAQ ]


[ Работа с почтой ]
[ Редактирование ]
[ Шаблоны ]
[ Маски ]
[ Корзины ]
[ Заголовки ]
[ Привязка папок ]
[ Статьи ]


[ Plugins, Modules ]
[ Квотеры ]
[ EMH ]
[ yEnc ]
[ Skiper ]
[ Skin ]
[ TCode ]
[ NewsSaver ]
[ NewArcWizard ]
[ FTNStub ]
[ X-Face ]
[ Локализация ]
[ Файлы справки ]
[ AntiSpam ]


[ Разработчику ]
[ О проекте ]
[ Баг-репорт ]
[ Пожелания ]


[ Линки ]


Маски

[Перейти к справочнику по маскам]

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

Механизм масок представляет собой текстово-ориентированный язык, позволяющий манипулировать текстовыми строками. Конструкция языка представляет собой строку символов, первый из которых - '%'. Если такая конструкция прописана в одном из полей шаблона, 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