![]() |
Версия 5.2 |
||||||||||||||||||||||||||||||||
|
|
Обычные HTTP сервера являются независимыми от состояния обработчиками: браузер пользователя может отправлять несколько последовательных запросов, но HTTP сервер не сохраняет между запросами информацию о браузере или клиенте. Каждый запрос обрабатывается индивидуально.
Сервер Веб Приложений позволяет пользователям "войти" на сервер, задав имя Пользователя CommuniGate Pro и пароль пользователя. После каждого успешного входа, начинается Сессия. Сессия хранит информацию о запросах и действиях пользователя, так что все HTTP запросы, отправляемый в рамках одной сессии, используют один и тот же набор данных сессии.
Для того, что бы запросы обслуживались в сессии, они должны иметь следующий вид:Сессии Веб Приложений имеют счётчики времени. Если сессии не было отправлено никакого HTTP запроса в течении определённого интервала времени, то Сессия закрывается. Пользователь, работающий в сессии, может закрыть сессию, отправив запрос на специальную страницу Bye.
Программное обеспечение CommuniGate Pro поставляется со стандартным Безымянным Видом Интерфейса, обеспечивающим простые, функциональные HTML и WML интерфейсы. В поставке имеются также несколько визуально более насыщенных стандартных Именованных Видов Интерфейса. Это Стандартные Виды Интерфейса хранятся в директории программ, являются частью программного обеспечения и системные администраторы не должны их изменять.
В CommuniGate Pro могут также использоваться Безымянные и Именованные пользовательские Виды Интерфейса. Пользовательские Виды Интерфейса могут создаваться как Виды Интерфейса, Общие для Сервера. Эти Пользовательские Виды Интерфейса доступны всем пользователям. Каждый Домен CommuniGate Pro также имеет свой собственный набор пользовательских Видов Интерфейсов, доступный только для пользователей из этого Домена.
Когда пользователь соединяется с сервисом Веб Интерфейс Пользователя (через порт HTTP User), строка hostname, указанная в URL независимого от состояния запроса, используется для поиска Домена CommuniGate Pro. При нахождении Домена, из него берутся Настройки WebUser Пользователя по Умолчанию, Имя Вида Интерфейса и Настройки Языка.
Настройка SkinName указывает имя используемого Вида Интерфейса (если эта настройка не задана, то используется Безымянный Вид Интерфейса).
Если Вид Интерфейса с указанным Именем не найден в наборе Видов Интерфейса Домена, то проверяется Набор Видов Интерфейса, Общий для Сервера. Если Вид Интерфейса с указанным именем не найден и в этом наборе, то используется Стандартный Вид Интерфейса с указанным именем. Если Именованный Стандартный Вид Интерфейса также не найден, то используется Безымянный Стандартный Вид Интерфейса.
Так как Домены могут иметь свои собственные Наборы Вида Интерфейса, то такой же запрос, отправленный в другой Домен, может отобразить другую страницу: Настройки WebUser Пользователя по Умолчанию могут иметь различные имена Видов Интерфейса для разных Доменов и даже если Настройки совпадают, в разных Доменах могут существовать разные Виды Интерфейса под одними и теми же именами.
Запросы, независимые от состояния, могут использовать любой доступный Вид Интерфейса для адресуемого Домена. Для использования альтернативного Вида Интерфейса, независимый от состояния HTTP запрос должен задавать имя Вида Интерфейса, используя параметр запроса Skin.
Настройка Язык, получаемая из фактически действующих Настроек WebUser Пользователя по Умолчанию, задаёт язык, используемый в странице, независимой от состояния. Для использования другого языка, независимый от Состояния HTTP запрос должен задавать имя языка при помощи параметра запроса Language.
Сессионные HTTP запросы не используют строку hostname, указанную в URL. Вместо этого при входе пользователя на сервер создаётся сессия Веб Приложения для указанного Пользователя CommuniGate Pro и для всей этой сессии берутся фактически действующие Настройки WebUser Пользователя. Эти настройки содержат в себе название используемого Вида Интерфейса (пустое значение означает Безымянный Вид Интерфейса). Вид Интерфейса с указанным названием выбирается из набора Видов Интерфейса Домена Пользователя (обратите внимание, что Домен, указанный в URL запроса, может быть другим).
Если в Домене Пользователя указанный Вид Интерфейса отсутствует, то используется Вид Интерфейса, Общий для Сервера.
Сессионные HTTP запросы используют Язык, заданный в Настройках WebUser Пользователя.
HTTP модуль проверяет содержимое поля заголовка Accept запроса. Если это поле содержит подстроку wml, то модуль предполагает, что запрос поступил от WML браузера.
Запросы, приходящие от WML браузеров, обрабатываются с использованием Вида Интерфейса WML. Для Запросов, независимых от Состояния, название Вида Интерфейса берётся из параметра WAP/WML Настроек WebUser по Умолчанию для адресуемого Домена. Когда пользователь входит на сервер, используя WML браузер, то название Вида Интерфейса берётся из параметра WAP/WML Настроек WebUser этого Пользователя.
Все имена Вида Интерфейса, начинающиеся с букв WML, считаются Видами WML Интерфейса. Эти Виды Интерфейса появляются в списке доступных Видов Интерфейса для параметров WAP/WML и эти Виды Интерфейса удаляются из списка доступных Видов Интерфейса для параметров обычного Вида Интерфейса.
HTTP модуль проверяет содержимое поля заголовка запроса User-Agent.
Если это поле содержит подстроку DoCoMo, то модуль предполагает, то запрос поступил от Японского I-Mode браузера.
Если это поле содержит подстроку portalmmm, то модуль предполагает, то запрос поступил от Европейского I-Mode браузера.
Запросы I-Mode обрабатываются специальными I-Mode Видами Интерфейса, аналогично тому, как WML запросы обрабатываются WML Видами Интерфейса. Специальный параметр Настроек WebUser I-Mode/cHTML используется для задания имени используемого I-Mode Вида Интерфейса.
Все имена Вида Интерфейса, начинающиеся с букв IMode, считаются cHTML Видами Интерфейса. Эти Виды Интерфейса появляются в списке доступных Видов Интерфейса для параметров I-Mode/cHTML и эти Виды Интерфейса удаляются из списка доступных Видов Интерфейса для параметров обычного Вида Интерфейса.
Для всех страниц, получаемых Японскими cHTML браузерами, кодировка устанавливается в значение Shift-JIS и все страницы конвертируются в эту кодировку.
Для всех страниц, получаемых Европейскими cHTML браузерами, кодировка устанавливается в значение Windows-1251 и все страницы конвертируются в эту кодировку.
При обработке запроса Веб Интерфейса Пользователя, Серверу необходимо получать определённый файлы из выбранного Вида Интерфейса. Если требуемый файл не обнаружен в выбранном Виде Интерфейса и выбранный Вид Интерфейса является Видом Интерфейса Домена, то берётся файл с тем же именем из Вида Интерфейса, Общего для Сервера. Если требуемый файл не обнаружен в Виде Интерфейса, Общем для Сервера, то проверяется Стандартный Вид Интерфейса с таким же именем. Если файл не обнаружен и там, и выбранный Вид Интерфейса является Именованным Видом Интерфейса, то проверяются общесерверный Безымянный Вид Интерфейса и безымянный Стандартный Вид Интерфейса.
Первоначально, когда в Домене отсутствуют Пользовательские Виды Интерфейса и нет Видов Интерфейса, Общих для Сервера, все Домены могут использовать только Стандартные Виды Интерфейса. По умолчанию, выбирается Безымянный Вид Интерфейса.
Загружая файлы в общесерверный Безымянный Вид Интерфейса, Администратор Сервера может "заменить" файлы Безымянного Стандартного Вида Интерфейса, что, соответственно, изменит внешний вид приложения для всех Доменов.
Загружая файлы в Безымянный Вид Интерфейса какого-нибудь Домена CommuniGate Pro, Администратор Сервера или Домена может "заменять" файлы Стандартного Вида Интерфейса и файлы общесерверного Безымянного Вида Интерфейса, что, соответственно, изменит внешний вид приложения для этого конкретного Домена.
Такая иерархия позволяет Администраторам Сервера и Домена использовать как новые Виды Интерфейса, созданные "с нуля", так и делать небольшие изменения в Видах Интерфейса, повторно используя уже существующий файлы Видов Интерфейса.
В Установках с Динамическим Кластером имеется два набора Видов Интерфейса, Общих для Сервера - один набор используется для локальных Доменов Сервера, а другой, Кластерный набор, используется для всех Общих Доменов в Кластере. Изменения этих Видов Интерфейса, Общих для Кластера, а также изменения любого Вида Интерфейса для Общих Доменов, автоматически распространяются на всех членов Кластера.
Каждый Вид Интерфейса может иметь текстовый набор данных - текстовый файл strings.data. Этот файл "языка по умолчанию" содержит словарь. Страницы с WSSP cценариями могут использовать различные команды для получения данных из этого словаря с текстовым набором данных.
Вид Интерфейса может содержать также дополнительные, локализованные файлы с текстовыми наборами данных - файлы language.data, где language является названием языка (french.data, japanese.data и т.п.). Если выбран язык, не являющийся языком по умолчанию, то используется Текстовый Набор Данных из соответствующего языкового файла.
Когда выбранный Текстовый Набор Данных для выбранного Вида не содержит требуемых данных, то проверяется Текстовый Набор Данных того же языка во всех "родительских" Видах Интерфейса (как показано выше). Если требуемые данные не найдены и там, то используется Текстовый Набор Данных для "языка по умолчанию".
Используйте кодировку UTF-8 для не ASCII символов в строках в файле с Текстовым Набором Данных. Дополнительную информацию о Юникод и кодировке UTF-8 вы можете найти на сайте http://www.unicode.org.
Если в URL содержится имя с любым расширением имени файла, отличным от .wssp, то модуль Веб Приложения получает этот файл из выбранного Вида Интерфейса, помещает его во внутренний Кэш Вида Интерфейса и возвращает файл браузеру клиента через соединение, установленное HTTP модулем.
Указанные имена файлов всегда преобразовываются в нижний регистр.
Когда модуль Веб Приложения получает запрос на тот же файл, он берётся из Кэша Вида Интерфейса.
Если файл был затребован при помощи сессионного URL, то счётчик времени этой сессии сбрасывается. Это может использоваться для создания фрейма в окне браузера клиента и периодического запроса какого-либо файла с использованием сессионного URL. В результате, таймер неактивности сессии будет сбрасываться и сессия будет оставаться активной все время, пока этот фрейм отображается в браузере клиента.
Администраторы Системы и Домена могут загружать пользовательские файлы в общесерверные и Доменные Виды Интерфейса для изменения внешнего вида Веб Приложений.
Например, Стандартный Вид Интерфейса использует файл Logo.gif в большинстве своих страниц. Загрузив пользовательский файл Logo.gif в общесерверный Безымянный Вид Интерфейса, вы можете изменить вид страниц Веб Приложения даже не создавая и не загружая пользовательские файлы WSSP.
Когда URL указывает на ресурс с именем расширения файла .wssp, модуль Веб Приложения получает указанный файл WSSP из Вида Интерфейса, а затем компилирует его в некоторый внутренний код. Затем модуль запускает код Веб Приложения, связанный с именем файла. Этот код производит набор данных, содержащий различные строки, массивы и словарные данные. Затем модуль, используя этот набор данных, запускает внутренний (скомпилированный) код для создания HTML страницы и возвращает результирующую HTML страницу браузеру через соединение, установленное HTTP модулем.
Указанные имена ресурсов всегда преобразовываются в нижний регистр.
Формат WSSP файла описывается в разделе WSSP Сценарии. Администраторы Системы и Домена могут создавать пользовательские WSSP файлы и загружать их в общесерверные и Доменные Виды Интерфейса для изменения внешнего вида Веб Приложений.
В разделе ниже приводятся доступные компоненты Веб Приложений, определяющие набор страниц WSSP, которые могут создаваться в этой версии сервера CommuniGate Pro. В нём также указывается, как каждый компонент обрабатывает параметры отправляемой ему формы и какие данные включаются в создаваемые компонентом наборы данных.
Веб Интерфейс Администратора имеет страницы для Редактирования Вида Интерфейса, которые позволяют обслуживать Общие для Сервера, Общие для Кластера и Общие для Домена Виды Интерфейса.
Для обслуживания Общих для Сервера и Общих для Кластера Видов Интерфейса откройте через Веб Интерфейс Администратора область Домены нажмите на ссылку Интерфейсы.
Для обслуживания Вида Интерфейса Домена откройте через Веб Интерфейс Администратора область Домены, выберите требуемый Домен и нажмите на ссылку Интерфейсы. Для создания и изменения Интерфейсов Домена Администратор Домена должен обладать правом доступа "Может модифицировать Интерфейсы".
При открытии страницы Редактирования Видов Интерфейсов Домена, в случае, если Безымянный Вид Интерфейса для Домена отсутствует, то на странице имеется кнопка Создать Особый Интерейс. Нажмите на эту кнопку Для того, что бы создать Безымянный Вид Интерфейса.
Страница Редактирование Вида Интерфейса содержит список всех "видимых" в этом Виде Интерфейса файлов: тут перечисляются как файлы, непосредственно загруженные в этот конкретный Вид Интерфейса, так и все файлы, загруженные в Виды Интерфейса и используемые как источник "файлов по умолчанию" для этого Вида Интерфейса:
Файлы, непосредственно загруженные в Вид Интерфейса, имеют флажок в столбце Помеченные. Файлы из других Видов Интерфейса, "видимые" в этом Виде Интерфейса, имеют в этом столбце слово default.
Вы можете скачать любой файл из Имени Интерфейса, щёлкнув по имени файла.
Вы можете загрузить в Вид Интерфейса файл, нажав на кнопку Browse и выбрав файл, находящийся на вашем компьютере, а затем нажав на кнопку Загрузить Файл.
Вы можете удалить любой из загруженных в Вид Интерфейса файлов, отметив его флажком и нажав на кнопку Удалить Помеченные.
Когда вы загружаете .wssp или .wssi файл, Редактор сначала пытается скомпилировать этот WSSP файл.
Когда вы загружаете .wcgp или .wcgi файл, Редактор сначала пытается скомпилировать этот CG/PL файл.
Когда вы загружаете .data файл, Редактор сначала пытается разобрать этот файл как словарь.
Если компилятор обнаруживает ошибку, то файл не загружается в Среду, содержимое файла отображается на странице Редактирования, и маркер красного цвета <--ERROR--> показывает точное место ошибки.
Если вы загружаете файл в любой Вид Интерфейса, то Кэш Вида Интерфейса очищается автоматически. Если вы загружаете файл в Вид Интерфейса Общего Домена или в Вид Интерфейса, Общий для Кластера, то изменённый файл автоматически распространяется на всех членов Кластера.
Вы можете загрузить набор файлов, выбрав TAR-архив (файл с именем расширения .tar). Например, если у вас есть TAR-архив с созданными ранее Видами Интерфейса, вы можете открыть Вид Интерфейса, который вы хотите изменить (общесерверный Безымянный Вид Интерфейса, общедоменный Безымянный Вид Интерфейса или какой-либо Именованный Вид Интерфейса) и загрузить в него файл .tar. Сервер распакует архив и будет сохранять каждый файл индивидуально, как будто бы они загружались один за одним.
На странице Редактирования для Безымянного Вида Интерфейса содержится также список всех Именованных Видов Интерфейса:Для создания Именованного Интерфейса, введите его имя и нажмите на кнопку Создать.
Для удаления Именованного Интерфейса, отметьте флажком этот Интерфейс и затем нажмите на кнопку Удалить Помеченные. Удалены могут быть только пустые Интерфейсы (Интерфейсы без каких-либо файлов).
Для удаления Безымянного Интерфейса, удалите все его файлы и все Именованные Интерфейсы, а затем нажмите на кнопку Удалить Особый Интерфейс.
Для того, что бы открыть Интерфейс, щёлкните мышкой по его имени. Редактор отобразит Имя Интерфейса и ссылку Наверх, с помощью которой вы можете вернуться к Безымянному Интерфейсу.
Редактор Именованных Видов Интерфейса позволяет вам переименовать Вид Интерфейса, введя Имя Нового Интерфейса и нажав на кнопку Переименовать Интерфейс.
Модуль Веб Приложения CommuniGate Pro обрабатывает запросы для WSSP файлов вызывая компонент, который создаёт набор данных - словарь, содержащий ключи - текстовые строки и значения, связанный с этими ключами. Значения могут быть текстовыми строками, массивами значений или словарями.
Например, когда требуется вывести страницу Домена по умолчанию, вызывается специальный компонент и он создаёт словарь, в котором содержатся такие ключи, как canAutoSignup, hasMailLists, hasCertificate.
Модуль Веб Приложения может затем использовать код сценария из WSSP файла для преобразования этих данных в HTML страницу или в любой другой язык разметки страниц.
В этом разделе перечисляются доступные компоненты CommuniGate Pro, указывается, когда вызываются такие компоненты, объясняется, как компоненты обрабатывают параметры <FORM> и приводится содержимое набора данных, создаваемого такими компонентами.
Модуль Веб Приложения проверяет HTTP параметр Skin для всех запросов, независимых от Состояния. Если этот параметр существует, то модуль пытается открыть Именованный Вид Интерфейса с указанным именем; в противном случае используется Безымянный Интерфейс (для адресуемого Домена).
Модуль Веб Приложения проверяет HTTP параметр Language для всех запросов, независимых от Состояния. Если этот параметр существует, то модуль использует его для выбора Текстового Набора Данных, не применяемого по умолчанию для выбранного Вида Интерфейса.
Модуль Веб Приложения помещает определённые данные в наборы данных, создаваемые всеми компонентами Запросов, независимых от Состояния. В следующим списке приводятся эти "общие" элементы набора данных, которые могут использоваться во всех Независимых от Состояния WSSP страницах:
В следующем разделе приводятся независимые от Состояния URLы, имена вызываемых компонентов, действия, предпринимаемые этими компонентами и имена WSSP файлов, используемые для формирования HTTP ответов.
URLы: /, /default.html
эти URLы используются для обработки операции входа.
Если HTTP запрос имеет параметры username и password, то, используя эти параметры, предпринимается попытка аутентифицировать клиента. Если полученная пара параметров является корректной, то создаётся новая Сессия WebUser и в эту Сессию направляется запрос на "начальную страницу". Обычно этот запрос возвращает HTML "страницу переадресации", которая отсылается обратно браузеру пользователя. Она заставляет браузер войти в "область Сессии".
Если запрос имеет параметр DisableIPWatch, то "Защита по Фиксированному Адресу" будет для этой сессии выключена, даже если в Настройках WebUser Пользователя она было включена.
Если запрос имеет параметр DisableUseCookie, то "Защита при помощи Cookies" для этой сессии будет выключена, даже если в Настройках WebUser Пользователя она было включена.
Если запрос имеет параметр SessionSkin со строковым значением, не равным *, то сессия открывается с использованием Вида Интерфейса, заданного этим параметром. Вид Интерфейса ищется в том Домене, куда фактически вошёл пользователь (который может отличаться от Домена, показываемого на Странице Входа).
Если операция Входа завершилась успешно, то возвращается ответ HTTP Redirect, с URL переадресации, указывающим на WSSP страницу StartPage с вновь созданной Сессией. StartPage указывается как строка Вида Интерфейса StartPage (для WML сессий - wStartPage).
Если операция Входа закончилась успешно, но в запросе содержится параметр restoreSessionPage, то отображается страница resume.wssp (как независимая от Состояния), а для WML сессии - страница wresume.wssp.
Результирующий Набор Данных для этой страницы содержит:Компонент проверяет содержит ли запрос один (или более) строковый параметр PublicInfo. Значением этого параметра должны быть Публично Доступные атрибуты, указанные в установках Центрального Справочника. Затем компонент проверяет, существует ли непустой параметр запроса с таким именем и добавляет значение параметра в начальные Установки Пользователя.
Пример: для того, что бы добавить поле City на странице Регистрации, добавьте управляющий элемент <INPUT type="hidden" name="PublicInfo" value="City"> и управляющий элемент <INPUT type="text" name="City" value="" size=30 maxlength=255> в HTML код страницы Signup.wssp.
Если Пользователь был создан, то создаётся новая Сессия WebUser, и в эту Сессию направляется запрос на "начальную страницу" (смотрите выше).
Компонент проверяет, содержит ли HTTP запрос параметр PrevMessage с числовым значением. Если он существует, то это значение интерпретируется как уникальный идентификатор сообщения (UID) в архивной папке списка рассылки и компонент пытается найти это сообщение в выбранном режиме просмотра папки, а также пытается найти предыдущее сообщение в этом режиме просмотра.
Если следующее или предыдущее сообщение найдено, то его UID добавляется в набор данных (смотрите ниже) и общий компонент Mailbox не используется для обработки.
Если следующего/предыдущего сообщение не было найдено, то для обработки параметров HTTP запроса и генерации результирующего набора данных используется общий компонент Mailbox.
Механизм WSSP используется для генерации тела HTTP ответов для сообщений об ошибках. В следующей таблице приводится список кодов ошибок HTTP, ситуаций, когда возникает такая ошибка и WSSP файлов, используемых для создания тела HTTP ответа об ошибке.
|
Страница disconnected.wssp используется, если HTTP запрос был отправлен в Сессию WebUser, но сессия не была найдена. Эта страница обрабатывается с использованием набора данных, создаваемого для всех запросов, независимых от Состояния.
При создании новой Сессии WebUser открывается и используется в качестве "Интерфейса Сессии" Вид Интерфейса, указанный Настройках WebUser Пользователя. Из Текстового Набора Данных Вида Интерфейса берётся строка StartPage, создаётся страница переадресации и отправляется браузеру клиента. Страница переадресации перенаправляет браузер пользователя в "Область Сессии", на страницу, заданную строкой StartPage.
HTTP запросы в "область Сессии" (запросы, в которых URL начинается с /Session/) обрабатываются как Сессионные Запросы. Вторым компонентом URL Сессионного Запроса является уникальный идентификатор Сессии, используемый HTTP модулем для нахождения сессии WebUser.
Если указанная сессия не найдена или у Сессии установлена опция Защита по Фиксированному Адресу, но HTTP запрос поступил с IP адреса, отличного от того, с которого поступил запрос на Вход, начавший сессию, то отображается страница disconnected.wssp (смотрите выше).
После того, как Сессия найдена, Модуль Веб Приложения обрабатывает оставшуюся часть URL запроса как "запрос внутри области сессии". Если URL запроса указывает на обычный файл, то этот файл берётся из Вида Интерфейса Сессии и отправляется обратно браузеру клиента.
Для каждого .wssp запросы вызывается соответствующий компонент. Он обрабатывает параметры HTTP запроса и создаёт результирующий набор данных. Затем из Вида Интерфейса берётся .wssp файл, который используется для создания HTTP ответа.
Если Результирующий Набор Данных не содержит элемента blockAlerts, то модуль Веб Приложения проверяет, не существует ли для пользователя сессии ожидающих его Предупреждений. Если найдено одно или несколько предупреждений, то вызывается компонент Alerts и для создания HTTP запроса используется файл Alerts.wssp.
Модуль Веб Приложения проверяет определённые параметры HTTP запроса и обрабатывает их при запросах всех .wssp страниц. В следующим списке приводятся эти "общие" действия:Если .wssp запрос указывает на неизвестный компонент, но .wssp файл с указанным именем может быть получен из Вида Интерфейса Сессии, то этот .wssp файл обрабатывается с использованием только "общих" элементов набора данных и результат отправляется обратно браузеру клиента.
В следующем разделе приводятся названия существующих компонентов (имена для .wssp запросов), действия, предпринимаемые этими компонентами и наборы данных, создаваемые этими компонентами.
Результаты компонентов обрабатываются с использованием .wssp файлов, имеющих имена, совпадающие с названиями компонентов.
Если HTTP запрос содержит параметр Create и параметр NewName не является пустой строкой, то компонент пытается создать папку с указанными именем. Если эта операция заканчивается неуспешно, то в результирующий набор данных добавляется элемент errorCode с текстом кода ошибки. Если папка создана, то элемент messageCode со строковым значением MailboxCreated добавляется в результирующий набор данных и, если в Настройках WebUser Пользователя выбрана опция "Показывать Все Подписанные Папки", то имя созданной папки добавляется в список подписанных папок.
Если запрос содержит параметр newClass, то созданная папка получает указанный класс.
Если HTTP запрос содержит параметр Filter, то в список включаются только те папки, в чьих именах содержится значение этого параметра.
Результирующий Набор ДанныхКомпонент создаёт список всех Папок Пользователя и Псевдонимов Папок (если в Настройках WebUser Пользователя выбрана опция "Показывать Все мои Папки") или список всех подписанных папок (если выбрана опция "Показывать Все Подписанные Папки"). Если выбраны обе опции, то эти два списка объединяются в один.
HTTP запрос должен содержать параметр Mailbox - имя отображаемой Папки.
ДействияДля каждой Папки модуль создаёт объект сессии, в котором содержатся параметры просмотра Папки. При создании такого объекта, эти параметры устанавливаются в соответствующие значения из Настроек WebUser.
Параметры Msg HTTP запроса интерпретируются как "элементы набора сообщений". Запрос может содержать несколько параметров и каждый параметр должен иметь числовое значение - Уникальный Идентификатор Сообщения в Папке.
Если HTTP запрос содержит параметр Forward или параметр Redirect, и параметр RedirectAddresses не является пустым, то "набор сообщений" создаётся с использованием параметров Msg и сообщения из набора сообщений переадресуются или перенаправляются на указанные адреса.
Если HTTP запрос содержит параметр ListApprove и папка является папкой "approval" или "requests" для какого-либо списка рассылки, то запрос обрабатывается как запрос Redirect, с фактическим адресом, являющимся адресом списка рассылки или запросом "subscription" для этого списка.
Если операция закончилась успешно, то в результирующий набор данных добавляется элемент messageCode со строковым значением MessagesForwardedInfo или MessagesRedirectedInfo. В противном случае в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.
Если HTTP запрос содержит параметр Copy или параметр Move, а параметр MailboxName содержит имя какой-либо "выбираемой" папки, то "набор сообщений" создаётся с использованием параметров Msg и сообщения из набора сообщений копируются в указанную папку. Если был указан параметр Move, то сообщения из набора сообщений, в зависимости от Настроек WebUser, либо помечаются как Удалённые, либо физически удаляются, либо передвигаются в Мусорную Корзину.
Если операция закончилась успешно, то в результирующий набор данных добавляется элемент messageCode со строковым значением MessagesCopiedInfo. В противном случае в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.
Если опция Способ Стирания установлена в значение Перенести в Корзину и HTTP запрос содержит параметр Delete, то "набор сообщений" создаётся с использованием параметров Msg и сообщения из набора сообщений копируются в папку Trash и удаляются. Если папка Trash не существует, то она будет создана.
Если HTTP запрос содержит параметр DeleteAll, то все сообщения из папки удаляются с использованием метода, указанного в опции "Способ Стирания" Настроек WebUser.
Если HTTP запрос содержит параметры read, unread, flag, unflag, delete или undelete, то "набор сообщений" создаётся с использованием параметров Msg и у сообщений из набора сообщений изменяются соответствующие флаги. Параметры delete и undelete обрабатываются таким образом только в том случае, если опция "Способ Стирания" в Настройках WebUser не установлена в значение Перенести в Корзину.
Если эта операция не закончилась успешно, то в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.
Если опция "Способ Стирания" в Настройках WebUser не установлена в значение Перенести в Корзину и HTTP запрос содержит параметр Purge, то все сообщения папки, имеющие флаг Deleted, удаляются.
Если эта операция не закончилась успешно, то в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.
Если HTTP запрос имеет параметр NextMessage с числовым значением, то значение интерпретируется как уникальный идентификатор (UID) сообщения папки и компонент пытается найти следующее сообщение папки. Если такое сообщение найдено, то UID добавляется в Результирующий Набор Данных как элемент messageJump.
Если HTTP запрос имеет параметр PrevMessage с числовым значением, то значение интерпретируется как уникальный идентификатор (UID) сообщения папки и компонент пытается найти предыдущее сообщение папки. Если такое сообщение найдено, то UID добавляется в Результирующий Набор Данных как элемент messageJump.
Если HTTP запрос имеет параметр NextUnread и в папке содержится непрочитанное сообщение, то UID этого непрочитанного сообщения добавляется в Результирующий Набор Данных как элемент messageJump.
Если элемент messageJump не был добавлен в Результирующий Набор Данных, то компонент использует общий компонент Mailbox для обработки параметров HTTP запроса и для формирования результирующего набора данных.
Результирующий Набор ДанныхДля генерирования остальной части результирующего набора данных используется общий компонент Mailbox.
Обрабатывается также, как страница Mailbox.
Обрабатывается также, как страница Mailbox.
HTTP запрос должен содержать параметр Mailbox - имя отображаемой Папки типа Календарь.
ДействияДля каждой папки модуль создаёт объект сессии, в котором содержатся параметры просмотра Папки. При создании такого объекта, эти параметры устанавливаются в соответствующие значения из Настроек WebUser. Объект также содержит номер месяца для "помесячного просмотра календаря". Первоначально его значение устанавливается равным текущему месяцу. Объект содержит номер дня, задающий первый день, который должен отображаться при просмотре календаря. Объект также содержит флаг "byDay", управляющий тем, как данные календаря сохраняются в наборе данных (по дням или по временным интервалам).
Параметр HTTP запроса prevMonthlyCalendar может задавать число месяцев, которое будет вычитаться из номера месяца при "помесячном просмотре календаря".
Параметр HTTP запроса nextMonthlyCalendar может задавать число месяцев, которое будет добавляться к номеру месяца при "помесячном просмотре календаря".
Параметр HTTP запроса JumpDay может задавать "номер дня в эпохе", задающий первый день, который должен отображаться при просмотре календаря.
Параметр HTTP запроса byDay может указывать новое значение флага byDay.
Параметры Msg HTTP запроса интерпретируются как "элементы набора сообщений". Запрос может содержать несколько параметров и каждый параметр должен иметь числовое значение - Уникальный Идентификатор сообщения в папке.
Если опция Способ Стирания установлена в значение Перенести в Корзину и HTTP запрос содержит параметр Delete, то "набор сообщений" создаётся с использованием параметров Msg, а сообщения из набора сообщений копируются в папку Trash и удаляются. Если папка Trash не существует, то она будет создана.
Если HTTP запрос содержит параметры read, unread, flag, unflag, delete или undelete, то "набор сообщений" создаётся с использованием параметров Msg и у сообщений из набора сообщений изменяются соответствующие флаги. Параметры delete и undelete обрабатываются таким образом только в том случае, если опция "Способ Стирания" в Настройках WebUser не установлена в значение Перенести в Корзину.
Если эта операция не закончилась успешно, то в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.
Если опция "Способ Стирания" в Настройках WebUser не установлена в значение Перенести в Корзину и HTTP запрос содержит параметр Purge, то все сообщения папки, имеющие флаг Deleted, удаляются.
Если эта операция не закончилась успешно, то в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.
HTTP запрос должен содержать параметр Mailbox - имя отображаемой Папки типа Задания.
ДействияДля каждой папки модуль создаёт объект сессии, в котором содержатся параметры просмотра Папки. При создании такого объекта, эти параметры устанавливаются в соответствующие значения из Настроек WebUser. Объект содержит номер дня, задающий первый день, который должен отображаться при просмотре Заданий.
Параметр HTTP запроса JumpDay может задавать "номер дня в эпохе", задающий первый день, который должен отображаться при просмотре Заданий.
Параметры Msg HTTP запроса интерпретируются как "элементы набора сообщений". Запрос может содержать несколько параметров и каждый параметр должен иметь числовое значение - Уникальный Идентификатор сообщения в папке.
Если опция Способ Стирания установлена в значение Перенести в Корзину и HTTP запрос содержит параметр Delete, то "набор сообщений" создаётся с использованием параметров Msg, а сообщения из набора сообщений копируются в папку Trash и удаляются. Если папка Trash не существует, то она будет создана.
Если HTTP запрос содержит параметры read, unread, flag, unflag, delete или undelete, то "набор сообщений" создаётся с использованием параметров Msg и у сообщений из набора сообщений изменяются соответствующие флаги. Параметры delete и undelete обрабатываются таким образом только в том случае, если опция "Способ Стирания" в Настройках WebUser не установлена в значение Перенести в Корзину.
Если эта операция не закончилась успешно, то в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.
Если опция "Способ Стирания" в Настройках WebUser не установлена в значение Перенести в Корзину и HTTP запрос содержит параметр Purge, то все сообщения папки, имеющие флаг Deleted, удаляются.
Если эта операция не закончилась успешно, то в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.
Параметр HTTP запроса showCompleted может указывать новое значение флага showCompleted.
Результирующий Набор ДанныхHTTP запрос должен содержать параметр Mailbox - имя папки, содержащей отображаемые сообщения и параметр MSG - Уникальные Идентификаторы этих сообщений в папке.
Если HTTP запрос содержит параметр Redirect и параметр RedirectAddresses не является пустым, то сообщение перенаправляется на указанные адреса.
Если HTTP запрос содержит параметр ListApprove и папка сообщений является папкой "approval" для какого-либо списка рассылки, то запрос обрабатывается как запрос Redirect, с фактическим адресом, являющимся адресом списка рассылки.
Если операция закончилась успешно, то в результирующий набор данных добавляется элемент messageCode со строковым значением MessageRedirected. В противном случае в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.
Если HTTP запрос содержит параметр TakeAddress, то адрес From: сообщения добавляется в записную книгу Пользователя.
Если HTTP запрос содержит параметр TakeCertificate, то сертификат из цифровой подписи сообщения добавляется в записную книгу Пользователя.
Если HTTP запрос содержит параметр StoreFiles и параметр selectedWebFolder содержит имя папки Хранилища Файлов, то файловые части сообщения (приложения, изображения) сохраняются в указанную папку.
Если операция закончилась успешно, то в результирующий набор данных добавляется элемент messageCode со строковым значением FilesCopied. В противном случае в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.
Если HTTP запрос содержит параметры read, unread, flag, unflag, delete или undelete, то у сообщения изменяются соответствующие флаги.
Если эта операция не закончилась успешно, то в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.
Затем компонент использует общий компонент Message для обра