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 Имя, фамилия, адрес (e-mail или ФИДО)
%fname Full Name Имя и фамилия
%ffnam First Name Имя
%fmail Address Адрес (e-mail)
%ffidoem Fido Address Адрес (ФИДО)
%fabbr Abbreviation Инициалы
 
  Recepient Attribs Атрибуты получателя
%f_to_ Full Name and Address Имя, фамилия, адрес (e-mail или ФИДО)
%ftonm Full Name Имя и фамилия
%ftofn First Name Имя
%ftoem Address Адрес (e-mail)
%ftofidoem Fido Address Адрес (ФИДО)
%ftoab Abbreviation Инициалы
 
  CC Attribs Атрибуты CC (CarbonCopy)
%f_cc_ Full Name and Address Имя, фамилия, адрес (e-mail или ФИДО)
%fccnm Full Name Имя и фамилия
%fccfn First Name Имя
%fccem Address Адрес (e-mail)
%fccfidoem Fido Address Адрес (ФИДО)
%fccab Abbreviation Инициалы
 
  Reply-To Attribs Атрибуты Reply-To
%frpto Full Name and Address Имя, фамилия, адрес (e-mail или ФИДО)
%frtnm Full Name Имя и фамилия
%frtfn First Name Имя
%frtem Address Адрес (e-mail)
%frtfidoem Fido Address Адрес (ФИДО)
%frtab Abbreviation Инициалы
 
  Original Message Attribs Атрибуты исходного сообщения
%flins Lines count Число строк
%fsize Size Размер (байт)
%fmsid MessageID Содержимое Message ID
%fmsgURL Message URL URL
%fhost NNTP-Posting-Host Значение заголовка NNTP-Posting-Host
%fsubj Subject Тема сообщения
%fngrp Newsgroup Название группы новостей
%forga Organization Организация
%fx_ct X-Comment-To X-Comment-To
%fdist Distribution Distribution
%fkeyw Keywords Keywords
%ftrln X-FTN-Tearline X-FTN-Tearline
%forig X-FTN-Origin X-FTN-Origin
%farea X-FTN-AREA X-FTN-AREA
%faccserver Account Server Адрес сервера, назначенный аккаунту
%faccuser Account User Пользователь аккаунта
%faccname Account Name Имя аккаунта
%facceml Account Email E-mail аккаунта
%faccid Account ID Идентификатор аккаунта
 
  Original Time Attribs Атрибуты времени исходного сообщения
%fdate Date Дата
%fYYYY Long Year Год, четыре цифры
%fYY Short Year Год, две цифры
%fMMM Month as short text (en-us) Месяц, сокращ., англ.
%fMMMR Month as short text (ru) Месяц, сокращ., рус.
%fMMMM Month as long text (en-us) Месяц, англ.
%fMMMMR Month as long text (ru) Месяц, рус.
%fMMMMFR Month as long text (ru) Месяц (в падеже), рус.
%fMM Month number MM Месяц, номер
%fWWW Weekday as short text (en-us) День недели, сокращ., англ.
%fWWWR Weekday as short text (ru) День недели, сокращ., рус.
%fWWWW Weekday as long text (en-us) День недели, англ.
%fWWWWR Weekday as long text (ru) День недели, рус.
%fDD Day of Month DD Число
%fDDDDR Day of Month as text (ru) Число, текст, рус.
%fDDDDFR Day of Month as text (ru) Число, текст (в падеже), рус.
%ftime Time HH:MM:SS Время ЧЧ:ММ:СС
%fHHMM Time HH:MM Время ЧЧ:ММ
%fHH Hour of Time HH Время ЧЧ
%fNN Noun of Time NN Время ММ
%fSS Second of Time SS Время СС
 
  Original Header Functions Функции для работы с заголовками исходного сообщения
%fhdrf(hdr) Get text of header текст заголовка
%faddrfull(hdr) Extract full address полный канонизированный адрес, извлеченный из заголовка, имеющего адресный тип. Например: %faddrfull(From) %faddrfull(To) %faddrfull(CC) %faddrfull(BCC) %faddrfull(Reply-To) и т.д и т.п. Результатом будет строка типа "andrey_no" <ANDREY_NO@MAIL.PRIMORYE.RU>. Или набор, если адресов указано несколько.
%faddrname(hdr) Extract name извлекает только полное имя, например andrey_no или набор, если имен указано несколько.
%faddrfname(hdr) Extract first name первое имя, например andrey.
%faddreml(hdr) Extract e-mail e-mail, или их набор, если указано несколько.
%faddrfido(hdr) Extract FIDO address адрес ФИДО (если он есть).
%faddrabbr(hdr) Extract first letters of name создаст из адресного заголовка аббревиатуру.

Атрибуты создающегося сообщения

  New Message Attribs Атрибуты нового сообщения
%cflbuild Fidolook build Версия FL
%caccserver Account Server Адрес сервера, назначенный аккаунту
%caccuser Account User Пользователь аккаунта
%caccname Account Name Имя аккаунта
%cacceml Account Email E-mail аккаунта
%caccid Account ID Идентификатор аккаунта
%cngrp Newsgroup Группа новостей
%cngrprev Newsgroup revert Параметр NewsMailer
 
  Current Time Attribs Атрибуты времени текущего сообщения
%cdate Date Дата
%cdateYYYYMMDD   Date YYYYMMDD Дата ГГГГММДД
%cYYYY Long Year YYYY Год, четыре цифры
%cYY Short Year YY Год, две цифры
%cMMM Month as short text (en-us) Месяц, сокращ., англ.
%cMMMR Month as short text (ru) Месяц, сокращ., рус.
%cMMMM Month as long text (en-us) Месяц, англ.
%cMMMMR Month as long text (ru) Месяц, рус.
%cMMMMFR Month as long text (ru) Месяц (в падеже), рус.
%cMM Month number MM Месяц, номер
%cWWW Weekday as short text (en-us) День недели, сокращ., англ.
%cWWWR Weekday as short text (ru) День недели, сокращ., рус.
%cWWWW Weekday as long text (en-us) День недели, англ.
%cWWWWR Weekday as long text (ru) День недели, рус.
%cDD Day of Month DD Число
%cDDDDR Day of Month as text (ru) Число, текст, рус.
%cDDDDFR Day of Month as text (ru) Число, текст (в падеже), рус.
%ctime Time HH:MM:SS Время ЧЧ:ММ:СС
%cHHMM Time HH:MM Время ЧЧ:ММ
%cHH Hour of Time HH Время ЧЧ
%cNN Noun of Time NN Время ММ
%cSS Second of Time SS Время СС
 
  Original Header Functions Функции для работы с заголовками создаваемого сообщения
%сhdrf(hdr) Get text of header текст заголовка
%сaddrfull(hdr) Extract full address полный канонизированный адрес, извлеченный из заголовка, имеющего адресный тип. Например: %faddrfull(From) %faddrfull(To) %faddrfull(CC) %faddrfull(BCC) %faddrfull(Reply-To) и т.д и т.п. Результатом будет строка типа "andrey_no" <ANDREY_NO@MAIL.PRIMORYE.RU>. Или набор, если адресов указано несколько.
%сaddrname(hdr) Extract name извлекает только полное имя, например andrey_no или набор, если имен указано несколько.
%сaddrfname(hdr) Extract first name первое имя, например andrey.
%сaddreml(hdr) Extract e-mail e-mail, или их набор, если указано несколько.
%сaddrfido(hdr) Extract FIDO address адрес ФИДО (если он есть).
%сaddrabbr(hdr) Extract first letters of name создаст из адресного заголовка аббревиатуру.

Маски доступа к корзинам
[подробнее о корзинах]

%randA Rand A Случайная строка из корзины A
%randB Rand B Случайная строка из корзины B
%randC Rand C Случайная строка из корзины C
%randD Rand D Случайная строка из корзины D
%randE Rand E Случайная строка из корзины E
%randF Rand F Случайная строка из корзины F
%randG Rand G Случайная строка из корзины G
%randH Rand H Случайная строка из корзины H
%randI Rand I Случайная строка из корзины I
%randJ Rand J Случайная строка из корзины J
%rand(Basket) Rand line from basket Случайная строка из указанной корзины
%listA List A Выбор очередной строки из корзины А
%listB List B Выбор очередной строки из корзины B
%listC List C Выбор очередной строки из корзины C
%listD List D Выбор очередной строки из корзины D
%listE List E Выбор очередной строки из корзины E
%listF List F Выбор очередной строки из корзины F
%listG List G Выбор очередной строки из корзины G
%listH List H Выбор очередной строки из корзины H
%listI List I Выбор очередной строки из корзины I
%listJ List J Выбор очередной строки из корзины J
%list(Basket) Next line from basket Выбор очередной строки из указанной корзины

Маски для работы с файлами

%file(file) All text from file Весь текст из файла. Синтаксис:
%file(drive:\path\file.txt)
%filerand(file) One text row from file in random order Случайная текстовая строка из файла. Синтаксис:
%filerand(drive:\path\file.txt)

Условные операторы

%if(exp) IF(expression) Условный оператор IF
%then(exp) THEN(expression) Условный оператор THEN
%else(exp) ELSE(expression) Условный оператор ELSE
%match(exp1,exp2) Match Соответствие строк. В параметре exp2 допускаются шаблоны * и ?
=? exp1 exp2 ... ?= Logical AND Логическое И
=! exp1 exp2 ... != Logical XOR Логическое исключающее ИЛИ

Функции для обработки строк

%squotrev(exp) Replace quotes Замещает двойные и одинарные скобки на апостровы
%htmlschrs(exp) Replase HTML special chars Заменить спецсимволы HTML на их текстовые эквиваленты

Вызов внешних масок

%extrn(mask,prm) Call external mask Вызвать внешнюю маску



  Хотите дополнить этот раздел? Пишите: help-team@fidolook.org
    2002-2004 (c) Пользователи FidoLook