Версия 6.2 |
||||||||||||||||||||||||||||||||||
|
|
Ниже приводится образец документа WSSP:
<html> <body> <h1>Welcome to %%server%%. Your ID is %%ID%%.</h1> <!--%%IF EXISTS(lastLogin)--> Last time you visited us on %%lastLogin%% <!--%%ENDIF--> </body> </html>
Этот WSSP документ содержит текстовые элементы %%server%%, %%ID%% и %%lastLogin%%, а также структурные элементы <!--%%IF EXISTS(lastLogin)--> и <!--%%ENDIF--> (эти текстовые элементы являются фиктивными, не пытайтесь использовать эти примеры в ваших .wssp страницах).
Если документ WSSP должен содержать символы вне таблицы ASCII, то должна использоваться кодировка UTF-8. При обработки документа WSSP, модуль Веб Приложения запрашивает значение строки charset из созданного словаря с данными. Если этот значение не равно UTF-8, то текст WSSP преобразовывается в эту кодировку страницы.
Текстовые и структурные элементы WSSP используют выражения - комбинации имён и символов, при помощи которых задаются данные, получаемые из словарей и других доступных источников данных.
В сценариях WSSP используется несколько типов выражений:
Алфавитно-цифровая строка (такая как system или id) является именем элемента данных. Значением такого выражения является значение из набора данных, связанного с этим именем. Если в наборе данных не имеется указанного ключа, то значением выражения является нулевое значение.
Пример: набор данных имеет ключ system и связанное с ним значение строку Sun Solaris; соответственно, значением выражения system является строка Sun Solaris.
Словарь набора данных является независимым от регистра, так что имена элементов данных также являются независимыми от регистра.
Алфавитно-цифровая строка, за которой следуют символы []интерпретируется как имя итератора индекса. Оно может использоваться только внутри структуры <!--%%FOREACH name...--> ....<!--%%ENDFOR name-->, где определён этот элемент с индексом (смотрите ниже). Имена итераторов индекса независимы от регистра.
Выражение, за которым следует символ точка (.) и алфавитно-цифровая строка является элементом с ключом. Выражение до символа точки вычисляется, и его значение должно быть словарём. Алфавитно-цифровая строка после символа точки задаёт ключ, который будет использоваться для получения значения из этого словаря. Если значением выражения до символа точка не является словарь, или если он не содержит указанного ключа, то значение элемента с ключом является нулевым.
Ключи могут быть указаны как строки в кавычках, в этом случае они могут содержать не алфавитно-цифровые символы.
Пример: набор данных имеет ключ settings и связанный с ним словарь из двух элементов {OS = "Sun Solaris"; CPU = "sparc";}. Значением выраженияsettings.OS будет строка Sun Solaris, занчение выражения settings."OS1" будет пустым.
Выражение, за которым следует выражение индекса в квадратных скобках ([index]) является элементом с индексом. Выражение до квадратной скобки вычисляется, его значение должно быть массивом или словарём. Выражение индекса вычисляется и его значением должно быть число или числовая строка. Это число указывает, какой именно элемент массива или ключ словаря будет значением этого индексированного выражения. Если значение выражения индекса равно 0, то возвращается первый элемент массива или первый ключ словаря.
Выражение индекса может быть задано как числовая константа.
Если значение выражения до символа квадратная скобка не является массивом или словарём, или значение выражения индекса не является числом, или если значение выражения индекса имеет отрицательное, либо больше либо равное, чем число элементов массива/словаря, значение, то значение выражения индекса считается пустым.
Алфавитно-цифровая строка, за которой следует символ (, является вызовом функции. Элементы после символа ( задают параметры функции, за которыми должен следовать символ ).
Имена функций независимы от регистра.
В списке ниже приводятся все доступные функции и их параметры.
Строковая константа заключается в двойные кавычки. Символы двойной кавычки и обратной косой черты должны быть защищены в константной строке символом обратной косой черты \: "My \"test\" string".
Ключ | Значение |
---|---|
ID | строка с уникальным идентификатором этой сессии |
accountName | строка с именем Пользователя сессии |
domainName | строка с именем Домена, которому принадлежит Пользователь этой сессии |
filesRef | строка с префиксом URL, необходимым для получения файлов Вида Интерфейса сессии |
fullAccountName | строка с полным именем Пользователя сессии accountName@domainName |
loginAddress | строка, содержащая сетевой (IP) адрес, с которого этот пользователь установил сессию |
loginTime | отметка времени начала сессии |
selectableMailboxes | массив, в котором содержатся имена всех "выбираемых" папок |
addressBooks | массив, в котором содержатся имена всех доступных адресных книг |
webFolders | массив с именами папок в Хранилище Файлов |
selectedMailbox | строка с именем Папки назначения для последней операции Копировать/Передвинуть |
selectedAddressBook | строка с именем выбранной адресной книги. |
selectedWebFolder | строка с именем Папки в Хранилище Файлов, выбранной для последней операции Записать Файлы |
webSiteEnabled | этот элемент - строка со значением "YES" существует, если Лимит Хранилища для Хранилища Файлов не установлен в ноль |
openMailboxes | словарь со всеми открытыми Папками (ключами словаря являются имена Папок в кодировке UTF8). |
Текстовые элементы указываются в двойных знаках процентов. Телом текстового элемента является выражение (возможно с префиксом).
>=GO=>
>=GO=>
Stop%20It%3F
What do \"they\" think
["What do \"they\" think",124]
%%TIME:elapsedTime%%будет заменяться следующей строкой:
40 minutes
%%TIME:elapsedTime%%будет заменяться на строку
40mins
символы | заменяются на |
^D | день месяца (2 цифры) |
^d | день месяца (1 или 2 цифры) |
^M | имя месяца (одно из возвращаемых функцией MONTHNAMES()), транслированное через словарь DICTIONARY("DatePictures")) |
^N | номер месяца (2 цифры, от 01 до 12) |
^Y | год (2 цифры) |
^y | год (4 цифры) |
^s | значение секунд (2 цифры) |
^m | значение минут (2 цифры) |
^H | значение часов (2 цифры), от 00 до 23 |
^h | значение часов (1 или 2 цифры), от 12, 1 и до 11 |
^t | строка AM или PM, транслированная через DICTIONARY("DatePictures") |
^w | номер дня недели (Воскресенье - 0) |
^W | имя дня недели (одно из возвращаемых функцией WEEKDAYS()), транслированное через словарь DICTIONARY("DatePictures") |
Test Subje..
%%HTMLSUBST(STRING("text1"),var2):STRING("text2")%%будет заменяться на строку
comparing My String1 & My Var2.
Структурные элементы начинаются с маркера <!--%% и заканчиваются маркером -->. Сами структурные элементы всегда удаляются из результирующего кода разметки.
<!--%%IF EXISTS(lastLogin)-->We have not seen you since <i>%%HTML:lastLogin%%<iI> <!--%%ELSE-->Welcome, new user! <!--%%ENDIF-->Если в этом примере набор данных содержит элемент lastLogin со строковым значением 20-Apr-2007, то эта часть сценария выведет следующий текст:
<table border="1"> <tr><td>File Name</td><td>File Size</td></tr> <!--%%FOREACH elem in fileList--> <tr><td>%%HTML:elem[].name%%</td><td>%%elem[].size%%</td></tr> <!--%%EMPTYFOR elem--> <tr><td colspan="0"> </td></tr> <!--%%ENDFOR elem--> </table>
<table border="1"> <tr><td>File Name</td><td>File Size</td></tr> <tr><td>MyReport</td><td>2300</td></tr> <tr><td>My Old Report</td><td>4000</td></tr> </table>
<!--%%NUMERICMENU sizeLimit IN (-1,0,100,200,300)-->будет заменяться следующим текстом кода разметки:
<option value="-1">-1<option value="0">0 <option value="100">100<option value="200" selected>200<option value="300">300
<!--%%NUMERICMENU sizeLimit IN (-1,0,100,200,300) DISPLAY DICTIONARY("Limits")-->будет заменяться следующим текстом кода разметки:
<option value="-1">Unlimited<option value="0">Off & Shut <option value="100">100<option value="200" selected>200<option value="300">300
<!--%%NUMERICMENU sizeLimit DEFAULT defLimit IN (-1,0,100,200,300) DISPLAY DICTIONARY("Limits")-->будет заменяться на следующий текст разметки (HTML):
<option value="-2">default(Unlimited) <option value="-1">Unlimited<option value="0">Off & Shut <option value="100">100<option value="200" selected>200<option value="300">300
<!--%%ENUMMENU color IN colors-->будет заменяться на следующий текст разметки (HTML):
<option value="0">Blue<option value="1" selected>Green<option value="2">Red
<!--%%ENUMMENU color IN colors DISPLAY DICTIONARY("Colors")-->будет заменяться на следующий текст разметки (HTML):
<option value="0">Night Blue<option value="1" selected>Grass Green<option value="2">Red
<!--%%ENUMMENU color DEFAULT defColor IN colors DISPLAY DICTIONARY("Colors")-->будет заменяться на следующий HTML код:
<option value="-1">default(Night Blue)<option value="0">Night Blue <option value="1" selected>Grass Green<option value="2">Red