Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Saitistika 4.0.Руководство разработчика.2005

.pdf
Скачиваний:
11
Добавлен:
23.08.2013
Размер:
3.22 Mб
Скачать

PageSize

Количество сообщений на одной странице

ForumsPostings – Сообщения форумов

Поле

Описание

ID

Уникальный идентификатор

Forum

Идентификатор форума

Parent

Идентификатор родительского сообщения

Text

Текст сообщения

Author

Имя автора сообщения

AuthorID

Идентификатор автора сообщения

Date

Дата сообщение

IsValid

Признак того, что сообщение прошло проверку модератором

Topic

Тема сообщения

Thread

Идентификатор темы

Email

Адрес электронной почты автора

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

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