Версия 5.1 |
|||||||||||||||||||||||||||||||||
|
|
Ниже приводится образец 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]) является индексированным элементом. Выражение до квадратной скобки вычисляется и его значение должно быть массивом. Выражение индекса вычисляется и его значением должна быть строка, представляющая число. Это число указывает, какой именно элемент массива будет значением этого индексированного выражения. Первый элемент массива выдаётся в случае, если значение выражения индекса равно нулю.
Выражение индекса может быть задано как числовая константа.
Если значение выражения до символа квадратная скобка не является массивом, или значение выражения индекса не является числом, или если значение выражения индекса имеет отрицательное или больше либо равное чем число элементов массива значение, то значение индексированного выражения считается нулевым.
Алфавитно-цифровая строка, за которой следует символ (, является вызовом функции. Элементы после символа ( задают параметры функции, за которыми должен следовать символ ).
Имена функций независимы от регистра.
В следующем списке приводятся все доступные функции и их параметры.
Логическое (булево) значение выражения является позитивным (истинно), если значение выражение является строкой, не начинающейся с символов N, n, - и 0 или же если значение выражения является ненулевым числом.
Ключ | Значение |
---|---|
ID | строка с уникальным идентификатором этой сессии |
accountName | строка с именем Пользователя сессии |
domainName | строка с именем Домена, которому принадлежит Пользователь этой сессии |
filesRef | строка с URL-префиксом, необходимым для получения файлов Вида Интерфейса сессии |
fullAccountName | строка с полным именем Пользователя сессии accountName@domainName |
loginAddress | строка, содержащая сетевой (IP) адрес, с которого этот пользователь установил сессию |
loginTime | отметка о времени начала сессии |
mailboxes | массив, в котором содержатся имена всех "выбираемых" папок |
selectedMailbox | строка с именем требуемой Папки для последней операции Копировать/Передвинуть |
webFolders | массив с именами папок в Хранилище Файлов |
selectedWebFolder | строка с именем требуемой Папки в Хранилище Файлов для последней операции Записать Файлы |
webSiteEnabled | этот элемент - строка со значением "YES" существует, если Лимит Хранилища для Хранилища Файлов не установлен в ноль |
Текстовые элементы указываются в двойных знаках процентов. Телом текстового элемента является выражение с (опционально) префиксом.
>=GO=>
>=GO=>
Stop%20It%3F
What do \"they\" think
%%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