Saitistika 4.0.Руководство разработчика.2005
.pdfPageSize |
Количество сообщений на одной странице |
ForumsPostings – Сообщения форумов |
|
Поле |
Описание |
ID |
Уникальный идентификатор |
Forum |
Идентификатор форума |
Parent |
Идентификатор родительского сообщения |
Text |
Текст сообщения |
Author |
Имя автора сообщения |
AuthorID |
Идентификатор автора сообщения |
Date |
Дата сообщение |
IsValid |
Признак того, что сообщение прошло проверку модератором |
Topic |
Тема сообщения |
Thread |
Идентификатор темы |
Адрес электронной почты автора |
|
ByModer |
Не используется |
Notify |
Признак, предписывающий уведомлять автора по электронной почте о размещении ответов |
|
на это сообщение |
IP |
IP-адрес автора сообщения |
Changed |
Дата редактирования сообщения |
Searched |
Признак, предписывающий осуществлять поиск в тексте данного сообщения |
ForumsBannedIP – список форумов на которые заперщен доступ по IP |
|
Поле |
Описание |
Forum |
Идентификатор форума |
IP |
Адрес |
Mark |
Не используется |
Хранимые процедуры
AddForum_IP AddForums_IPDf Forums_GetIndex Forums_GetMenu Forums_ListTree Forums_LoadProperties Forums_SaveIPs Forums_SaveProperties Forums_SetUserObjRights GetForum_Info GetForum_Properties ListForum_Defaults ListForum_IPs ListForum_Messages ListForum_Messages_For_Topic ListForums_IpsDf Sait_Forum_GetParent Sait_Forums_AddPosting Sait_Forums_GetForum Sait_Forums_IsBannedIP Sait_Forums_ListForums SetForum_Defaults SetForum_Properties
Классы
UML-диаграмма
Copyright © 2005 Individ company |
Страница |
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
131 из 131 |
|
|
Рисунок 31. UML-диаграмма классов модуля «Форумы»
Список классов
CForum CForumList CForumForm
Copyright © 2005 Individ company |
Страница |
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
132 из 132 |
|
|
Чаты
Модуль «Чаты» служит для организации общения между посетителями веб-сайта в режиме прямого эфира. С помощью чатов можно устраивать онлайн-совещания, в том числе и закрытые. Чаты являются разделами сервера и создаются так же, как и другие разделы. Настройки чата производятся на странице свойств чата. Кроме того, существуют общие настройки по умолчанию, использующиеся при создании новых чатов.
Логика работы
Доступ пользователей в чат на фронтофисе контролируется (т.е. разрешается или запрещается) по IP или маске IP пользователя, а также по нику. Существует два вида доступа пользователей в чат: для просмотра сообщений и для отправки сообщений.
Блокировка пользователя по нику производится через механизм объектных прав. Для того, чтобы пользователь мог просмотреть сообщения чата, он должен иметь право Чтение (ФО) для этого чата. Для отправки сообщения в чат пользователь должен иметь право Запись (ФО). Заблокировать по нику можно только зарегистрированных пользователей, которые не имеют права Управление (ФО) для чата. При блокировке по нику (если она возможна) запись для индивидуального пользователя добавляется в список объектных прав чата, если ее еще не было, причем у этого пользователя снимается право Запись (ФО), а остальные права остаются без изменения.
Также для отправки сообщений в чат IP (или маска IP) пользователя не должен быть заблокирован. Список заблокированных IP и масок хранится в таблице ChatBannedIPs. При блокировке пользователя по IP его IP добавляется в эту таблицу. При блокировке пользователя по маске IP в таблицу добавляется строка, получаемая из IP пользователя заменой последнего числа на * (например, если IP пользователя был 192.168.0.57, то при блокировке по маске IP в таблицу добавится запись
192.168.0.*).
Принципы работы
1.На фронтофисе на странице чата список сообщений обновляется с частотой, указанной в поле RateOfRefreshTalk таблицы Chats, список пользователей – с частотой, указанной в RateOfRefreshList. При каждом обновлении этих страниц в таблицу ChatList для данного чата и пользователя в поле DateLastRefresh записывается дата и время обновления страницы.
2.На всех страницах фронтофиса чатов при загрузке проверяются даты последнего обновления страниц всех пользователей из таблицы ChatList. Если страницы не обновлялись больше, чем указано в поле TimeOut из таблицы Chats для соответствующего чата, то производится автоматический выход пользователя из чата.
3.Если во время нахождения пользователя в чате были так изменены свойства пользователя, что у него больше нет доступа в этот чат, то при первом рефреше страниц чата он будет перенаправлен на страницу входа в чат.
База данных
Диаграмма таблиц
Copyright © 2005 Individ company |
Страница |
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
133 из 133 |
|
|
|
|
Рисунок 32. Диаграма таблиц базы данных модуля «Чаты» |
|
|
Описания таблиц |
|
|
|
Chats – таблица для хранения настроек чата |
|
|
|
Поле |
Описание |
|
|
ID |
Идентификатор чата |
|
|
Folder |
Идентификатор раздела чата (раздел должен иметь тип «Чат») |
|
|
RghtRegstrUsers |
Не используется |
|
|
RghtNotRegstrUsers |
Не используется |
|
|
RghtParticipant |
Не используется |
|
|
RghtSpclGuests |
Не используется |
|
|
CountMsgs |
Максимальное количество сообщений на экране внутри системы |
|
|
RateOfRefreshTalk |
Частота обновления списка сообщений на веб-сайте, в секундах |
|
|
RateOfRefreshList |
Частота обновления списка находящихся в чате людей на веб-сайте, в секундах |
|
|
TimeOut |
Время, через которое пользователь, не совершая активных действий, считается вышедшим |
|
|
|
из чата, в минутах |
|
|
FontForUnReg |
Не используется |
|
|
BoldForUnReg |
Не используется |
|
|
ItalicForUnReg |
Не используется |
|
|
FontForReg |
Не используется |
|
|
BoldForReg |
Не используется |
|
|
ItalicForReg |
Не используется |
|
|
FontForPart |
Не используется |
|
|
BoldForPart |
Не используется |
|
|
ItalicForPart |
Не используется |
|
|
FontForSpclGuests |
Не используется |
|
|
|
|
|
|
|
Copyright © 2005 Individ company |
Страница |
|
|
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
134 из 134 |
|
BoldForSpclGuests |
Не используется |
|
|
|
ItalicForSpclGuests |
Не используется |
|
|
|
ListRefresh |
Не используется |
|
|
|
TalkRefresh |
Не используется |
|
|
|
AnFont |
Цвет сообщений для незарегистрированных пользователей: |
|
|
|
|
0 |
– выбирает пользователь |
|
|
|
1 |
– черный |
|
|
|
2 |
– синий |
|
|
|
3 |
– фиолетовый |
|
|
|
4 |
– красный |
|
|
|
5 |
– зеленый |
|
|
|
6 |
– коричневый |
|
|
|
7 |
– оранжевый |
|
|
AnColor |
Стиль текста для незарегистрированных пользователей: |
|
|
|
|
0 |
– выбирает пользователь |
|
|
|
1 |
– нормальный |
|
|
|
2 |
– жирный |
|
|
|
3 |
– курсив |
|
|
|
4 |
– жирный и курсив |
|
|
RegFont |
Цвет сообщений для зарегистрированных пользователей: |
|
|
|
|
0 |
– выбирает пользователь |
|
|
|
1 |
– черный |
|
|
|
2 |
– синий |
|
|
|
3 |
– фиолетовый |
|
|
|
4 |
– красный |
|
|
|
5 |
– зеленый |
|
|
|
6 |
– коричневый |
|
|
|
7 |
– оранжевый |
|
|
RegColor |
Стиль текста для зарегистрированных ползователей: |
|
|
|
|
0 |
– выбирает пользователь |
|
|
|
1 |
– нормальный |
|
|
|
2 |
– жирный |
|
|
|
3 |
– курсив |
|
|
|
4 |
– жирный и курсив |
|
|
ChatsDf – настройки чатов по умолчанию, эти настройки используются только при создании нового чата |
|
||
|
Поле |
Описание |
|
|
|
CountMsgs |
|
|
|
|
RateOfRefreshTalk |
|
|
|
|
RateOfRefreshList |
|
|
|
|
TimeOut |
Аналогичны соотвтетсвующим полям из таблицы Chats (см. выше) |
|
|
|
AnColor |
|
||
|
|
|
|
|
|
AnFont |
|
|
|
|
RegColor |
|
|
|
|
RegFont |
|
|
|
|
ChatList – таблица для хранения списка участников чатов |
|
||
|
Поле |
Описание |
|
|
|
ID |
Идентификатор записи |
|
|
|
Chat |
Идентификатор чата (из таблицы Chats) |
|
|
|
Nick |
Логин, который пользователь ввел при входе в чат |
|
|
|
Man |
Идентификатор пользователя (из таблицы Clients). Если пользователь не был |
|
|
|
|
зарегистрирован, то значение этого поля равно нулю |
|
|
|
Email пользователя |
|
||
|
DateLastRefresh |
Дата и время последнего обновления страниц чата для этого пользователя |
|
|
|
Status |
Статус пользователя: |
|
|
|
|
Reg – зарегистрированный пользователь |
|
|
|
|
UnReg – незарегистрированый пользователь |
|
|
|
|
SGuest – специальный гость |
|
|
|
IP |
IP пользователя (строка вида 127.0.0.1) |
|
|
|
FontColor |
Цвет сообщений, установленный для пользователя (строка в формате #RRGGBB) |
||
|
Bold |
Установлен ли для пользователя жирный шрифт (0 или 1) |
|
|
|
Italic |
Установлен ли для пользователя курсивный шрифт (0 или 1) |
|
|
|
|
|
|
|
|
|
|
Copyright © 2005 Individ company |
Страница |
|
|
|
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
135 из 135 |
ChatTalking – таблица для хранения сообщений в чатах
Поле |
Описание |
ID |
Идентификатор записи |
Chat |
Идентификатор чата, в котором находится это сообщение |
Author |
Логин пользователя, отправившего сообщение |
AuthorID |
Идентификатор пользователя (из таблицы Clients), отправившего сообщение или: |
|
0, если пользователь незарегистрирован; |
|
-1, если это сообщение о присоединении пользователя к чату |
|
-2, если это сообщение о том, что пользователь покидает чат |
Date |
Дата и время отправки сообщения |
Text |
Текст сообщения (для сообщений о входе и выходе пользователя это пустая строка) |
Status |
Статус пользователя: |
|
Reg – зарегистрированный пользователь |
|
UnReg – незарегистрированый пользователь |
|
SGuest – специальный гость |
IP |
IP пользователя (строка вида 127.0.0.1) |
FontColor |
Цвет, которым следует выводить это сообщение (строка формата #RRGGBB) |
Bold |
Следует ли выводить сообщение жирным шрифтом (0 или 1) |
Italic |
Следует ли выводить сообщение курсивным шрифтом (0 или 1) |
ChatSpclGuests – таблица для хранения списка пользователей, являющихся специальными гостями чата |
|
Поле |
Описание |
Chat |
Идентификатор чата |
Man |
Идентификатор пользователя (из таблицы Clients) |
Mark |
Служит для внутреннего использования |
ChatSpclGuestsDf – список специальных гостей по умолчанию (используется только при создании нового чата) |
|
Поле |
Описание |
Nick |
Логин пользователя (при создании чата в список его спечиальных гостей добавляется |
|
идентификатор записи из Clients с таким логином, если на момент создания чата такого |
|
логина в таблице Clients нет, то в таблицу ChatSpclGuests запись не добавляется) |
Mark |
Служит для внутреннего использования |
ChatBannedIPs – таблица для хранения списка IP пользователей, которым запрещена отправка сообщений в чат |
|
Поле |
Описание |
Chat |
Идентификатор чата |
IP |
IP пользователя (строка вида 127.0.0.1) |
Mark |
Служит для внутреннего использования |
ChatBannedIPsDf – список IP пользователей, которым запрещена отправка сообщений в чат по умолчанию (используется только при создании нового чата)
|
Поле |
Описание |
|
|
IP |
IP пользователя (строка вида 127.0.0.1) |
|
|
Mark |
Служит для внутреннего использования |
|
|
Хранимые процедуры |
|
|
|
Chats_DenyPosting |
|
|
|
Chats_GetChatInfo |
|
|
|
Chats_GetSettings |
|
|
|
Chats_ListTree |
|
|
|
Chats_SetSettings |
|
|
|
Chats_SetStrings |
|
|
|
Chats_UpdateChatList |
|
|
|
Sait_Chats_AddChater |
|
|
|
Sait_Chats_AddFrase |
|
|
|
Sait_Chats_CheckTimeOut |
|
|
|
Sait_Chats_DeleteChater |
|
|
|
Sait_Chats_GetChatInfo |
|
|
|
Sait_Chats_GetFont |
|
|
|
Sait_Chats_GetTalking |
|
|
|
Sait_Chats_IsBannedIP |
|
|
|
Sait_Chats_ListChats |
|
|
|
|
|
|
|
|
Copyright © 2005 Individ company |
Страница |
|
|
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
136 из 136 |
Sait_Chats_ListChatsSimple
Sait_Chats_SetChaterProp
Sait_Chats_SetChaterRefresh
Классы
UML-диаграмма
Рисунок 33. UML-диаграмма классов модуля «Чаты»
Список классов
CChat CChatList CChatLoginForm CChatTalking
Copyright © 2005 Individ company |
Страница |
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
137 из 137 |
|
|
Тесты
Предназначены для on-line тестирования пользователей с целью выявления уровня знания тестируемых в каком либо вопросе. Тесты являются разделами сервера и создаются через структуру также как и разделы сервера. Настройки тестов происходят на странице свойств раздела «Тесты». Редактирование и специфическая настройка производится через «Интерактив - Тесты».
Логика работы
Критерии корректности
1.Тест – содержит 1 или более корректных вопросов и не содержит некорректных вопросов. Некорректные тесты не отображаются на фронтофисе и не могут быть пройдены.
2.Вопрос – содержит 2 и более ответов. Некорректный вопрос может быть включен в тесты.
Особенности реализации фронтофиса
1.Некорректные тесты не отображаются, и не могут быть пройдены. При прямом набирании URL теста доступ блокируется.
2.На каждый вопрос можно выбрать только один вариант ответа и только один раз, повторная попытка ответить на вопрос приведет к сообщению об ошибке.
3.Каждое прохождение теста образует сессию прохождения теста (начинается при логине в тест). В сессии теста хранятся все промежуточные результаты тестирования.
4.Один пользователь, в том числе и анонимный, может одновременно (в разных окнах одной копии броузера) пройти несколько тестов (а также 1 тест несколько раз). Каждая сессия независима от других.
5.Залогиниться в тест можно как реальным, так и псевдопользователем, то есть предусмотрена возможность прохождения теста под вымышленным именем. Для логина реальным пользователем необходимо ввести имя и пароль. Если они корректны – вход в тест будет осуществлен от имени владельца данных логина и пароля. Для входа в тест псевдопользователем нужно не вводя пароля ввести логин. От типа логина зависит то, на кого будет вестись журналирование и на кого будут записаны результаты прохождения теста. Ниже описана реакция на ввод логина-пароля при разных типах пользователя:
5.1.Анонимный
5.1.1.Логин авторизованным Х – пишется на авторизованного Х
5.1.2.Логин псевдопользователем Y – пишется на анонима, с указанием пользователя Y в дополнительных
параметрах
5.2.Узнаваемый Z
5.2.1.Логин авторизованным Х – пишется на авторизованного Х
5.2.2.Логин псевдопользователем Y – пишется на неавторизованного Z, с указанием пользователя Y в
дополнительных параметрах
5.3.Авторизованный Z
5.3.1.Логин авторизованным Х – пишется на авторизованного Х
5.3.2.Логин псевдопользователем Y – пишется на авторизованного Z, с указанием пользователя Y в
дополнительных параметрах
Основные страницы тестов фронтофиса хранятся в текущей теме и начинающихся с префикса «test».
Бэкофис
Тесты с точки зрения бэкофиса тесты являются разделами типа «Тест» и добавляются в структуру также как и разделы других типов. Тесты также занесены в меню «Интерактив» и работа по их специфической настройке ведется через него. Связь между тестами и вопросами устанавливается на страницах редактирования тестов и вопросов.
Тесты на бэкофисе реализованы при помощи технологии ASP с применением XML и XSL. Cтраницы тестов расположены в бэкофисе в каталоге «aspscripts\tests\».
База данных
Вся информация о тестах хранится в таблицах базы данных, их диаграмма и описние представлены ниже.
Copyright © 2005 Individ company |
Страница |
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
138 из 138 |
|
|
Рисунок 34. Диаграмма таблиц базы данных модуля «Тесты»
Описание таблиц
Tests – таблица хранения тестов.
Поле |
Описание |
ID |
Идентификатор теста. |
IDFolder |
Раздел сервера которым является тест. Подразумевается, что типом этого раздела будет |
|
«Тест». Название этого раздела является названием теста. |
QuestsOnPage |
Количество вопросов на странице |
TestsLimits – таблица хранения трактования результатов теста. |
|
Поле |
Описание |
ID |
Идентификатор результата. |
IDTest |
Идентификатор теста, к которому относится граница |
HightLimit |
Численное значение порога |
ResultText |
Текст трактования для данной границы |
Tests_Results – таблица хранения результатов теста. |
|
Поле |
Описание |
ID |
Идентификатор результата. |
IDTest |
Тест, к которому относится результат. |
IDClient |
Идентификатор пользователя, проходившего тест |
Points |
Набранные очки |
TDate |
Дата прохождения теста |
TestsTestsQuestions – таблица связи тестов и вопросов. |
|
Поле |
Описание |
IDTest |
Идентификатор теста. |
IDQuestion |
Идентификатор вопроса |
SeqNo |
Порядковый номер вопроса в тесте |
Tests_Questions – таблица вопросов. |
|
Поле |
Описание |
ID |
Идентификатор вопроса. |
QuestionText |
Текст вопроса. |
Picture |
Картинка к вопросу. |
Tests_Answers – таблица ответов на вопрос.
Copyright © 2005 Individ company |
Страница |
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
139 из 139 |
|
|
Поле |
Описание |
ID |
Идентификатор ответа. |
IDQuestion |
Вопрос, к которому относится ответа. |
SeqNo |
Порядковый номер варианта в вопросе. |
AnswerText |
Текст варианта ответа. |
Point |
Балл за этот вариант. |
EventParamsTest – таблица дополнительных параметров журналирования событий, связанных с тестами.
Поле |
Описание |
ID |
Идентификатор дополнительных параметров. |
Login |
Дополнительный параметр - логин. |
Result |
Дополнительный параметр – результат. |
В описание таблиц не вошли дополнительные таблицы, которые являются общими для всех функциональностей.
Хранимые процедуры
Простые. Описание не требуется.
Классы
Часть логики по работе с тестами сосредоточена в классах, их диаграмма и ссылки на описания представлены ниже.
Рисунок 35. UML-диаграмма классов модуля «Тесты»
Список
CTest CTestList
Функции
test-functions.asp
Примеры использования
Вывод списка тестов на фронтофисе
<%
CheckFolders0 IFolderID
Dim oTests : Set oTests = New CTestList
Copyright © 2005 Individ company |
Страница |
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
140 из 140 |
|
|