Saitistika 4.0.Руководство разработчика.2005
.pdfСправочник хранимых процедур
Всистеме более 1000 хранимых процедур. Описание всех из них не имеет практического смысла, поэтому описаны только наиболее важные и часто используемые.
Вразделе «База Данных» приведены правила именования хранимых процедур, которые могут быть полезны при работе с хранимыми процедурами.
Таблица хранимых процедур
|
Имя и параметры |
|
|
Описание |
|
|
|
AddFile |
|
|
Сохраняет информацию о файле, загруженном на сервер в папку |
||
|
@FileName |
SString, |
|
/common/data/pub/files |
|
|
|
@ContentType |
SString, |
|
|
|
|
|
@Size |
Int |
|
|
|
|
|
AddPicture |
|
|
Сохраняет в базе изображение. AddPicture Null используется совместно с |
||
|
@pict |
image = null |
|
последующим вызовом процедуры SetPictureInfo. Возвращает значение ID |
||
|
|
|
|
новой записи в таблицу Pictures. |
|
|
|
DeleteFolder |
|
|
Удаляет раздел. При создании новых встроенных типов разделов эта |
||
|
@Login |
SString, |
|
процедура должна быть соответствующим образом модифицирована |
||
|
@Passwd |
SString, |
|
|
|
|
|
@Super |
INT, |
|
|
|
|
|
@FolderID |
INT |
|
|
|
|
|
Directories_ListFoldersTree |
|
Возвращает дерево подразделов начиная с заданного раздела |
|
||
|
@userId |
INT, |
|
|
|
|
|
@fID |
INT, |
|
|
|
|
|
@fType |
INT = Null, |
|
|
|
|
|
@Root |
INT = Null |
|
|
|
|
|
Datatypes_GetType |
|
|
|
|
|
|
@TypeName |
SString = null, |
|
|
|
|
|
@SubType |
INT = NULL |
|
|
|
|
|
GetFolderInfo |
|
|
Возвращает информацию о разделе |
|
|
|
@Login |
SString, |
|
|
|
|
|
@Passwd |
SString, |
|
|
|
|
|
@FolderID |
int |
|
|
|
|
|
GetSubFolders |
|
|
Возвращает подразделы начиная с заданного. |
|
|
|
@id |
int, |
|
|
|
|
|
@type |
int |
|
|
|
|
|
NewFolder |
|
|
Создает подраздел в заданном разделе подраздел с названием. При создании |
||
|
@Login |
SString, |
|
новых встроенных типов разделов эта процедура должна быть |
|
|
|
@Passwd |
SString, |
|
соответствующим образом модифицирована. |
|
|
|
@Super |
INT, |
|
|
|
|
|
@Title |
SString, |
|
|
|
|
|
@Type |
INT, |
|
|
|
|
|
@Desc |
LString |
|
|
|
|
|
SetPictureInfo |
|
|
Изменяет параметры хранящегося в базе изображения. |
|
|
|
@id |
int, |
|
|
|
|
|
@Label |
sstring, |
|
|
|
|
|
@Type |
sstring, |
|
|
|
|
|
@w |
int, |
|
|
|
|
|
@h |
int, |
|
|
|
|
|
@size |
int |
|
|
|
|
|
Sait_Articles_GetMaterial |
|
|
Получение информации о материале и содержимого страниц материала |
||
|
oId |
int, |
|
|
|
|
|
@userID |
int = 0 , |
|
|
|
|
|
@State |
int = Null , |
|
|
|
|
|
@folder |
int = Null , |
|
|
|
|
|
@showhide |
bit = 0 |
|
|
|
|
|
Sait_GetSubFolders |
|
|
Выводит дерево подразделов начиная с заданного с учетом прав пользователя |
||
|
@folderId |
int , |
|
на эти подразделы. |
|
|
|
@userID |
int , |
|
|
|
|
|
@level |
int = Null , |
|
|
|
|
|
@type |
int = Null , |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Copyright © 2005 Individ company |
|
Страница |
|
|
|
|
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
|
261 из 261 |
|
@hide |
|
int = Null , |
|
|
|
|
|
@ShowRoot |
varchar(1) = '' |
|
|
|
|
|
|
@mand |
|
int = 0 , |
|
|
|
|
|
@mor1 |
|
int = Null , |
|
|
|
|
|
@mor2 |
|
int = 0, |
|
|
|
|
|
@Notes |
|
SString = '.' |
|
|
|
|
|
Tasks_List |
|
|
|
Получает список задач, удовлетворяющих заданным параметрам |
|
|
|
@User |
|
INT, |
|
|
|
|
|
@Lower |
|
INT = NULL, |
|
|
|
|
|
@Upper |
|
INT = NULL, |
|
|
|
|
|
@Sort |
|
INT = NULL, |
|
|
|
|
|
@Name |
|
SString = null, |
|
|
|
|
|
@SearchStr |
LString = null, |
|
|
|
|
|
|
@Status |
|
SString = null, |
|
|
|
|
|
@Executors |
SString = null, |
|
|
|
|
|
|
@Priority |
SString = null, |
|
|
|
|
|
|
@Control |
SString = null, |
|
|
|
|
|
|
@NotWorkflows |
SString = null, |
|
|
|
|
|
|
@NotTypes |
SString = null, |
|
|
|
|
|
|
@Owner |
INT = NULL, |
|
|
|
|
|
|
@ProcessOwner |
INT = NULL, |
|
|
|
|
|
|
@Executor |
INT = NULL, |
|
|
|
|
|
|
@Project |
INT = NULL, |
|
|
|
|
|
|
@Process |
INT = NULL, |
|
|
|
|
|
|
@System |
BIT = NULL, |
|
|
|
|
|
|
@Active |
TINYINT = 1, |
|
|
|
|
|
|
@Deleted |
TINYINT = 0, |
|
|
|
|
|
|
@CreatedBegin |
DATETIME |
|
|
|
|
|
|
@CreatedEnd |
DATETIME |
|
|
|
|
|
|
@DeletedBegin |
DATETIME |
|
|
|
|
|
|
@DeletedEnd |
DATETIME |
|
|
|
|
|
|
Tasks_DeleteLostProcess |
|
|
Удаление подвисших процессов. Они образуются, когда при создании |
|
||
|
|
|
|
|
процесса «забывают» заполнить вторую страницу добавления. Процедура |
|
|
|
|
|
|
|
удаляет начальные задачи процессов (эти задачи считаются аналогом |
|
|
|
|
|
|
|
процессов), если их не передали в течении 6 или более часов. |
|
|
|
Tasks_ListNodePeople |
|
|
Список пользователей, входящих в роли узлов сценария, отфильтрованный по |
|
||
|
@wId |
|
INT, |
|
участникам заданного проекта |
|
|
|
@Project |
INT = NULL |
|
|
|
|
|
|
Tasks_ListWorkflows |
|
|
Список активных и валидных сценариев. Filter - фильтрация сценариев. |
|
||
|
@UserID |
INT = NULL, |
|
|
|
|
|
|
@Filter |
|
BIT = 1 |
|
|
|
|
|
Tasks_RemoveControl |
|
|
Удаление контроля над задачами. Вызывается на странице списка задач. |
|
||
|
@UserID |
INT, |
|
|
|
|
|
|
@Process |
LString, |
|
|
|
|
|
|
@People |
SString = null |
|
|
|
|
|
|
Datatypes_GetType |
|
|
Загрузка полной информации о типе данных |
|
|
|
|
@TypeName |
SString = null, |
|
|
|
|
|
|
@SubType |
INT = NULL |
|
|
|
|
|
|
AddUserToGroup |
|
|
Назначение пользователя на группу |
|
|
|
|
@Login |
SString, |
|
|
|
|
|
|
@Passwd SString, |
|
|
|
|
||
|
@ID |
INT, |
|
|
|
|
|
|
@Groups SString |
|
|
|
|
||
|
DeleteGroup |
|
|
|
Удаление группы пользователей |
|
|
|
@Login |
SString, |
|
|
|
|
|
|
@Passwd SString, |
|
|
|
|
||
|
@GroupID INT |
|
|
|
|
|
|
|
DeleteUser |
|
|
|
Удаение пользователя |
|
|
|
@Login |
SString, |
|
|
|
|
|
|
@Passwd SString, |
|
|
|
|
||
|
@ID1 INT, |
|
|
|
|
|
|
|
@ID2 INT |
|
|
|
|
|
|
|
GetGroup_Label |
|
|
|
Свойства группы пользователей |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Copyright © 2005 Individ company |
Страница |
|
|
|
|
|
|
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
262 из 262 |
|
|
@Login |
SString, |
|
|
|
|
|
|
@Passwd SString, |
|
|
|
|
||
|
@GrpID INT |
|
|
|
|
|
|
|
ListGroups_ID_Label_AmountOfPeople |
|
Список групп пользователей, с указанием количества входящих |
|
|||
|
|
|
|
|
пользователей |
|
|
|
ListGroups_ID_Label_UserCheck |
|
Список групп пользователей, с указанием вхождения текущего пользователя |
|
|||
|
@Login SString, |
|
|
|
|
|
|
|
@Passwd |
SString, |
|
|
|
|
|
|
@ID |
INT |
|
|
|
|
|
|
ListPeople_ID_Login_Title_Groupcheck |
|
Список пользователей с указанием вхождения заданной группы |
|
|||
|
@Login |
SString, |
|
|
|
|
|
|
@Passwd SString, |
|
|
|
|
||
|
@GrpID INT |
|
|
|
|
|
|
|
NewGroup |
|
|
|
Создание новой группы пользователей |
|
|
|
@Login |
SString, |
|
|
|
|
|
|
@Passwd SString, |
|
|
|
|
||
|
@Title |
SString, |
|
|
|
|
|
|
@Rights SString, |
|
|
|
|
||
|
@People SString, |
|
|
|
|
||
|
@Sites |
SString |
|
|
|
|
|
|
Projects_ShowInfo |
|
|
Возвращает информацию о разделе, назначенном в качестве раздела по- |
|
||
|
@FileName SString |
|
умолчанию для вывода проектов. |
|
|
||
|
Projects_List |
|
|
|
Возвращает список проектов с учетом пейджинга, фильтров и сортировки, а |
|
|
|
@User INT, |
|
|
также общее количество проектов без учета пейджинга. |
|
|
|
|
@Lower INT = NULL, |
|
|
|
|
||
|
@Upper INT = NULL, |
|
|
|
|
||
|
@Sort INT = NULL, |
|
|
|
|
||
|
@Name SString = NULL, |
|
|
|
|
||
|
@Status SString = NULL, |
|
|
|
|
||
|
@Types SString = NULL, |
|
|
|
|
||
|
@Owner INT = NULL, |
|
|
|
|
||
|
@System BIT = NULL, |
|
|
|
|
||
|
@Active TINYINT = 1, |
|
|
|
|
||
|
@Deleted TINYINT = 0, |
|
|
|
|
||
|
@Quantity INT = NULL, |
|
|
|
|
||
|
@Fields INT = 0, |
|
|
|
|
|
|
|
@Rights INT = NULL |
|
|
|
|
||
|
Roles_AddRole |
|
|
|
Создание новой роли |
|
|
|
@Name SString |
|
|
|
|
|
|
|
Roles_Assign_Group |
|
|
Назначение группы пользователей на роль |
|
|
|
|
@RoleID int, |
|
|
|
|
|
|
|
@GroupID int, |
|
|
|
|
|
|
|
@Assign bit = 1 |
|
|
|
|
|
|
|
Roles_Assign_ObjectType |
|
|
Назначение типа данных на роль |
|
|
|
|
@RoleID int, |
|
|
|
|
|
|
|
@ObjectTypeID int, |
|
|
|
|
||
|
@Assign bit = 1 |
|
|
|
|
|
|
|
Roles_Assign_User |
|
|
Назначение пользователя на роль |
|
|
|
|
@RoleID int, |
|
|
|
|
|
|
|
@UserID int, |
|
|
|
|
|
|
|
@Assign bit = 1 |
|
|
|
|
|
|
|
Roles_ListGroupRoles |
|
|
Список ролей, на которые назначена заданная группа пользователей |
|
||
|
@GroupID int |
|
|
|
|
|
|
|
Roles_ListRoles |
|
|
|
Список всех ролей. Указывается количество пользователей, Групп |
|
|
|
|
|
|
|
пользователей, Типов данных, Узлов и Связей сценариев, назначенных на |
|
|
|
|
|
|
|
каждую роль. |
|
|
|
Roles_ListUserRoles |
|
|
Первый рекордсет – список всех ролей, с указанием прямого вхождения |
|
||
|
@UserID int |
|
|
пользователя в роль |
|
|
|
|
|
|
|
|
Второй рекордсет – список всех ролей, с указанием вхождения пользователя в |
|
|
|
|
|
|
|
роль через группы, на которые он назначен |
|
|
|
Roles_RoleProperties |
|
|
Свойства роли. |
|
|
|
|
@RoleID int |
|
|
|
|
|
|
|
Roles_RoleProperties_Set |
|
|
Изменение свойств роли |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Copyright © 2005 Individ company |
Страница |
|
|
|
|
|
|
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
263 из 263 |
|
|
@RoleID int, |
|
|
|
|
||
|
@Name SString, |
|
|
|
|
||
|
@Description LString, |
|
|
|
|
||
|
@Deleted bit = 0, |
|
|
|
|
||
|
@TaskTracking bit = 0 |
|
|
|
|
||
|
Users_Add2Clients |
|
|
Добавление / изменение свойств клиента |
|
|
|
|
@login as SString , |
|
|
|
|
||
|
@passwd as SString , |
|
|
|
|
||
|
@email as SString , |
|
|
|
|
||
|
@Comment as SString , |
|
|
|
|
||
|
@uId as int |
|
|
|
|
|
|
|
Users_Add2People |
|
|
Добавление / изменение свойств пользователя |
|
|
|
|
@login as SString , |
|
|
|
|
||
|
@passwd as SString , |
|
|
|
|
||
|
@email as SString , |
|
|
|
|
||
|
@fname as SString , |
|
|
|
|
||
|
@lname as SString , |
|
|
|
|
||
|
@picture as int, |
|
|
|
|
||
|
@Comment as SString , |
|
|
|
|
||
|
@userId as int , |
|
|
|
|
||
|
@uId as int, |
|
|
|
|
||
|
@SMode tinyint = null, |
|
|
|
|
||
|
@UCHSecSettings bit = Null |
|
|
|
|
||
|
Users_CheckLogin |
|
|
Проверка на существование пользователя с заданным ID и логином |
|
||
|
@login as SString , |
|
|
|
|
||
|
@uid as INT |
|
|
|
|
||
|
Users_GetUserInfo |
|
|
Свойства пользователя |
|
|
|
|
@userId as int |
|
|
|
|
||
|
Users_SetGroupSettings |
|
Изменение свойств группы пользователей |
|
|
||
|
@Login SString, |
|
|
|
|
||
|
@Passwd SString, |
|
|
|
|
||
|
@gId Int , |
|
|
|
|
|
|
|
@Title |
SString, |
|
|
|
|
|
|
@Rights SString, |
|
|
|
|
||
|
@Sites |
SString, |
|
|
|
|
|
|
@DelPeople SString, |
|
|
|
|
||
|
@AddPeople SString |
|
|
|
|
||
|
Users_SetUserInfo |
|
|
Изменение свойств пользователя |
|
|
|
|
@Login SString, |
|
|
|
|
||
|
@Passwd SString, |
|
|
|
|
||
|
@Id |
INT, |
|
|
|
|
|
|
@Enabled bit , |
|
|
|
|
||
|
@PublishInfo bit , |
|
|
|
|
||
|
@FOEnabled bit |
|
|
|
|
||
|
Users_SetUserLogonDates |
|
Установка дат активности пользователя |
|
|
||
|
@UserID |
INT, |
|
|
|
|
|
|
@StartDate DATETIME, |
|
|
|
|
||
|
@EndDate |
DATETIME |
|
|
|
|
|
|
Users_UsersList |
|
|
|
Список пользователей |
|
|
|
@login as SString , |
|
|
|
|
||
|
@email as SString , |
|
|
|
|
||
|
@sort as int , |
|
|
|
|
||
|
@groups as LString , |
|
|
|
|
||
|
@uIsnotgroup as bit , |
|
|
|
|
||
|
@uIsdisabled as bit , |
|
|
|
|
||
|
@dat_beg as varchar(8) = Null, |
|
|
|
|
||
|
@dat_end as varchar(8) =Null , |
|
|
|
|
||
|
@L as int = 1, |
|
|
|
|
||
|
@U as int = 20 , |
|
|
|
|
||
|
@sIgnoreGroups |
|
|
|
|
||
|
SetUserSetting |
|
|
|
Установка / изменение пользовательских настроек |
|
|
|
@Login SString, |
|
|
|
|
||
|
@Passwd SString, |
|
|
|
|
||
|
@name SString, |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
Copyright © 2005 Individ company |
Страница |
|
|
|
|
|
|
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
264 из 264 |
|
|
@page SString, |
|
|
|
|
|
@Value SString |
|
|
|
|
|
GetUserSetting |
|
Считывание пользовательских настроек |
|
|
|
@Login SString, |
|
|
|
|
|
@Passwd SString, |
|
|
|
|
|
@name SString, |
|
|
|
|
|
@page SString |
|
|
|
|
|
Sait_Common_GetClientSettings |
Считывание клиентских настроек |
|
|
|
|
@ClientID |
INT, |
|
|
|
|
@Key |
SString, |
|
|
|
|
@SettID |
INT = NULL |
|
|
|
|
Sait_Common_SetClientSettings |
Запись клиентских настроек |
|
|
|
|
@ClientID |
INT, |
|
|
|
|
@SettID |
INT = NULL, |
|
|
|
|
@Key |
SString, |
|
|
|
|
@Expired |
DATETIME, |
|
|
|
|
@Int |
INT = NULL, |
|
|
|
|
@Float |
FLOAT = NULL, |
|
|
|
|
@String |
SString = NULL, |
|
|
|
|
@String2 |
SString = NULL, |
|
|
|
|
@String3 |
SString = NULL, |
|
|
|
|
@Text |
TEXT = NULL |
|
|
|
|
GetRegField_Value |
|
Значение поля из формы регистрации |
|
|
|
@UserID |
Int, |
|
|
|
|
@Field |
Int |
|
|
|
|
access_Add_ORights |
|
Добавить запись о правах пользователя на объект |
|
|
|
@accountId |
INT, |
|
|
|
|
@oType |
char(2), |
|
|
|
|
@ObjID |
int, |
|
|
|
|
@ORights |
int, |
|
|
|
|
@Inherited |
bit |
|
|
|
|
access_DelORights |
|
Удалить запись о правах пользователя на объект |
|
|
|
@accountId |
INT, |
|
|
|
|
@oType |
char(2), |
|
|
|
|
@ObjID |
int |
|
|
|
|
access_GetUserObjectRights |
Получить групповые и индивидуальные права пользователя на объект |
|
||
|
@userId |
int, |
|
|
|
|
@oId |
int, |
|
|
|
|
@oType |
char(1) |
|
|
|
|
access_SetORights |
|
Обновить запись о правах пользователя на объект. Если такой записи нет, она |
|
|
|
@accountId |
INT , |
автоматически добавляется в таблицу. Если право наследуемое и bDeleted = 1, |
|
|
|
@oType |
char(2) , |
запись о правах из таблицы удаляется |
|
|
|
@oId |
INT , |
|
|
|
|
@rights |
INT , |
|
|
|
|
@inherited |
bit =0, |
|
|
|
|
@bDeleted |
bit =0 |
|
|
|
|
Forms_ListTree |
|
Получить восстановленное дерево разделов со всеми формами системы |
|
|
|
@UserID |
INT |
|
|
|
|
Forms_LoadProperties |
|
Получить свойства формы по идентификатору раздела |
|
|
|
@FolderID |
INT, |
|
|
|
|
@user_id |
INT |
|
|
|
|
Forms_SaveProperties |
|
Сохранить свойства формы |
|
|
|
@FolderID |
INT, |
|
|
|
|
VARCHAR(256), |
|
|
|
|
|
@Action |
INT, |
|
|
|
|
@Message |
LString, |
|
|
|
|
@URL VARCHAR(2048) |
|
|
|
|
|
Sait_Search_List |
|
Выполнение поиска (используется на странице результатов поиска). При |
|
|
|
@userID int, |
|
поиске физических файлов учитывается значение параметра @onlydocs. Если |
|
|
|
@searchStr varchar(1024), |
он равен нулю, то поиск производится во всех файлах, если 1, то поиск |
|
||
|
@addStr varchar(1024), |
производится только в тех файлах, которые могут содержать информацию об |
|
||
|
@sFolders SString , |
авторе, ключевые слова и т.д. |
|
|
|
|
@authorSString , |
|
|
|
|
|
|
|
|
|
|
|
|
Copyright © 2005 Individ company |
Страница |
|
|
|
|
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
265 из 265 |
|
@dat_beg datetime, |
|
@dat_end datetime, |
|
@sort int, |
|
@bMaterials bit, |
|
@bNews bit, |
|
@bForums bit, |
|
@bConfs bit, |
|
@bShops bit, |
|
@bFiles bit, |
|
@bLabel bit, |
|
@bAnnotate bit, |
|
@bContent bit, |
|
@bKeyWord bit, |
|
@mask int, |
|
@L int, |
|
@U int, |
|
@onlydocs bit = 0 |
|
Events_AddEvent |
Добавление события с указанными параметрами в таблицу Events |
@EventType char(2), |
|
@ObjectID int = 0, |
|
@ObjectType char(2), |
|
@UserID int, |
|
@SessionID int, |
|
@FolderID int, |
|
@ClientIP varchar(15), |
|
@URI LString, |
|
@UserAgent SString, |
|
@Referer LString, |
|
@Authorized int, |
|
@AdditionalParams int = NULL, |
|
@StaticString varchar(900) = NULL, |
|
@Status int = 0, |
|
@Reserved SString = '', |
|
@GuestID int = 0 |
|
Events_MakeObjectStaticString |
Формрование стандартной суммарной строки события. Если @outputtoresult = |
@UserID int, |
0, то параметр @result игнорируется и суммарная строка возвращается в виде |
@ObjectID int, |
рекордсета. Если @outputtoresult <> 0, то рекордсета не возвращается, а |
@ObjectType char(2), |
суммарная строка записывается в параметр @result. |
@FolderID int = NULL, |
|
@ArticleID int = NULL, |
|
@outputtoresult int = 0, |
|
@result varchar(6000) = NULL output |
|
Events_LinkEvent |
Связывание двух событий (передаются их идентификаторы из таблицы |
@EventID int, |
Events). Если @CopyAttributes <> 0, то некоторые поля главного события |
@MasterEventID int, |
копируются в соответствующие поля связаного события, что удобно при |
@CopyAttributes int = 1 |
добавлении связанного события из хранимой процедуры (хотя такой способ |
|
добавления события не рекомендуется), когда неизвестен, например, IP |
|
пользователя и другие параметры. Копируются следующие поля таблицы |
|
Events: UserID, Authorized, SessionID, FolderID, ClientIP, URI, UserAgent, |
|
Referer, GuestID |
Copyright © 2005 Individ company |
Страница |
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
266 из 266 |
|
|
Системные компоненты и внешние модули
Визуальный редактор
Визуальный редактор предназначен для редасктирования содержимого материалов в режиме html и source.
Логика работы
Файлы визуального редактора находятся в каталоге /VR/ бэкофиса системы. Главным файлом является файл NoMenus.asp. Этот файл должен выводиться в теге iframe страницы редактирования материала /aspscripts/materials/material-page.asp, на некоторые элементы которой ссылаются скрипты из файла NoMenus.asp и которая используется для формирования и обработки POST-запросов. Для вывода iframe визуального редактора в format.xsl определен специальный шаблон – visualeditor.
Для редактирвания документа пользователем в режиме html используется внешний компонент – DHTML Editing Control, находящийся в файле dhtmled.cab. Для загрузки вставленных в визуальный редактор изображений на сервер используется компонент Uplx, находящийся в файле uplx.cab и устанавливающийся на компьютере клиента. Компонент генерирует POST-
запрос на страницу /aspscripts/materials/getimagepost.asp в формате multipart/form-data, которая производит всю необходимую обработку. Редактирование документов в режиме source происходит в <textarea>.
При открытии страницы материала на редактирование в журнал событий записывается событие типа «Открытие объекта на редактирование» («ME»). Если страница уже была открыта на редактирование в течение часа, то при загрузке страницы выводится alert, содержащий информацию о том, кто и когда открывал страницу на редактирование последний раз.
Сохранение материала происходит через POST на страницу /aspacripts/materials/material-savepage.asp. Эта страница загружается в невидимом iframe и использует кустомную обработку ошибок SQL с целью вывести пользователю сообщение об ошибке связи с базой данных в понятном виде, если такая ошибка возникла. Если в системе включено автоматическое созранение версий при сохранении материала, то новая версия материала при сохранении создается автоматически каждые 10 минут или чаще, если сохранение идет несколькими пользователями. Другими словами, если в течение последних 10 минут пользователь уже сохранял документ и это образовало новую версию, а другие пользователи после этого не производили сохранение документа, то новая версия перезаписывает последнюю созданную, во всех остальных случаях новая версия добавляется к истории версий материала. Версию материала можно также сохранить принудительно, пользуясь специальной формой на странице редактирования страницы материала. Версии содержимого материалов хранятся в таблице PageVersions. Включение и выключение опции автоматического сохранеия версий материала происходит на странице настроек контента и отражается в значении поля EnableSaveInterval таблицы SystemSettings.
В различных конфигурациях операционной системы и броузера пользователя кодировка символов, используемая JavaScript, может не совпадать с кодировкой символов, используемой компонентом DHTML Editing Control. При этом после загрузки содержимого страницы материала на русском (или другом, использующем символы с кодами более 127) языке в визуальный редактор (которое происходит через JavaScript, как и множество других операций на странице визуального редактора) пользователь видит неправильные символы, которые затем сохраняются в том же виде при сохранении документа. Содержимое материала при этом теряется. Для помощи пользователю в такой ситуации в визуальном редакторе имеется механизм перекодировки символов, который запускается каждый раз при загрузке содержимого в визуальный редактор через JavaScript. Механизм перекодировки находится в файле xlat.js. В настоящее время реализована перекодировка windows-1251 à Unicode, разрешающая проблему перекодировки на компьютерах с конфигурацией Windows NT 4.0 + IE 5.0, но возможно добавление других перекодировок. Для реализации новой перекодировки необходимо сгенерировать новую таблицу перекодировки. ASP-код генерации таблицы перекодировки приведен в комментарии в начале файла xlat.js. Для его использования требуется создать временную ASP-страницу, вставить в нее прилагаемый код, и загрузить ее, установив в броузере желаемую кодировку. В результате работы страницы будет сгенерирован js-код массива, являющегося таблицей перекодировки. Внимательно просмотрите этот массив на предмет наличия «лишних» символов (например, в таблице перекодировки windows1251 à Unicode существует лишний символ «пробел», заменяющийся на символ с кодом 240 (в восьмеричной системе), что приводит к замене пробела на . Эта ситуация возникла, т.к. при копировании из броузера и вставке кода в файл xlat.js пробел с кодом 240 автоматически преобразовался к пробелу с кодом 32, в то же время пробел с кодом 240 в исходном документе возможно заменять ни на что и не требуется). Вставив таблицу перекодировки в файл xlat.js и исправив имя соответствующим образом, доработайте функцию в том же файле, добавив в нее новый case аналогично уже существующему case ‘windows-1251’. Для того чтобы новую перекодировку можно было выбрать в персональных настройках пользователя, в ASP-коде страницы /aspscripts/settings/settings-personal.asp в select с именем vrCoding (под заголовком «Перекодировка для визуального редактора») следует добавитьновый option с именем, понятным для пользователя, и значением, равным значению для нового case, добавленного в функцию xlat(t, coding) файла xlat.js.
Copyright © 2005 Individ company |
Страница |
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
267 из 267 |
|
|
Загрузчик изображений для визуального редактора
Загрузчик изображений для визуального редактора является ActiveX-компонентом, загружаемым на компьютер клиента и устанавливаемым на нем при первой загрузке страницы визуального редактора. Код компонента находится в файле /VR/uplx.cab от каталога бэкофиса. CAB-файл компонента подписан цифровой подписью. Компонент читает содержимое файла, указанного в свойствах, и формирует POST-запрос в формате multipart/form-data на указанную веб-страницу. На этой веб-странице можно воспользоваться компонентом DrAsp.Upl для загрузки файла на сервер (файл находится в поле с именем «file»). Перед вызовом методов компонента требуется проинициализировать его свойства path и url. Ниже описаны свойства и методы компонента.
Константы:
1.uplxOK = 0 – операция зваершена успешно
2.uplxErrorOpenFile = 1 – ошибка при открытии файла
3.uplxErrorBigFile = 2 – слишком большой размер файла
4.uplxErrorInet = 3 – ошибка компонента MsInet
5.uplxErrorServer = 4 – ошибка на стороне сервера (при POST-запросе)
6.uplxErrorBadHeader = 5 – неверный ответ сервера (при POST-запросе)
7.uplxUninitialized = 100 – не был выполнен ни один из методов
Свойства:
1.path – путь до подгружаемого файла на компьютере клиента.
2.url – url страницы для обработки POST-запроса.
3.status – содержит статус вызова последнего метода. Значение является равным одному из перечисленных значений констант.
4.cookie – не используется.
5.src – после успешного вызова метода SendFile содержит url на сервере, по которому было подгружено изображение.
6.w – после успешного вызова метода SendFile содержит ширину подгруженного изображения.
7.h – после успешного вызова метода SendFile содержит высоту подгруженного изображения.
8.maxsize – максимальный размер файла (в Кб), который разрешено подгружать. При попытке подгрузки файла больше этого размера возвращается статус uplxErrorBigFile. Значение по умолчанию – 1024 (1 Мб).
Методы:
1.SendFile – выполнение подгрузки файла. Возвращает true (успешно)/false (неуспешно). Более детальную информацию о выполнении операции можно получить через свойство status.
2.TestConnection – тестирование сединения с сервером. Производит те же операции, что и SendFile, но не читает файл и не посылает его содержимое. Возвращает true (успешно)/false (неуспешно). Более детальную информацию о выполнении операции можно получить через свойство status.
Требования к странице, обрабатывающей POST-запрос (обычно это /aspscripts/materials/getimagepost.asp):
1.В случае неуспеха страница должна возвратить статус «500 NON».
2.В случае успеха страница должна возвратить статус «200 OK» и следующие заголовки сервера:
–Image-Src – url подгруженного изображения на сервере.
–Image-Width – ширина подгруженного изображения.
–Image-Height – высота подгруженного изображения.
Copyright © 2005 Individ company |
Страница |
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
268 из 268 |
|
|
Программа установки
Система установки – это стандартное диалоговое Win32-приложение, осуществляющее установку Saitistika на сервер.
Вся работа по предоставлению пользовательского интерфейса и установке ведется в классе главного диалога программы – CInstallerDlg. В функции OnInitDialog происходит общая инициализация, включающая в себя чтение конфигурации из ini- файла. Последовательный вывод дочерних диалогов пользовательского интерфейса происходит в функциях OnBack и OnForward, вызывающихся при нажатии кнопок соответственно «Назад» и «Далее». После завершающего шага сбора сведений выполняется процесс установки с помощью вызова метода DoInstall.
Для выполнения операций установки существует класс CInstall.
INI-файл конфигурации
При инициализации диалога CInstallerDlg производится чтение данных из файла конфигурации. Этот файл является INI- файлом в стандартном формате и содержит как информацию, необходимую для правильной обработки данных в архиве Data.exe, так и значения по умолчанию полей диалогов сбора сведений. Файл конфигурации должен иметь имя setup.ini, находиться в одной директории с файлом Setup.exe и иметь следующую структуру:
1.Секция [common]. Содержит следующие параметры:
1.1.Path – путь по умолчанию, по которому будет установлена документация, например, C:\Saitistika\Documentation\
1.2.ComponentPath – путь по умолчанию для установки компонентов, например, C:\Saitistika\Components\
1.3.ComponentDirectory – путь к директории компонентов внутри архива Data.exe от корня архива без \ в начале,
например, COMponents.
1.4.Readme – имя с расширением файла Readme.txt. Этот файл должен находиться в одной директории с Setup.exe,
например, Readme.txt
1.5.Version – имя системы, содержащее информацию о версии, например, Saitistika Software 4.0
2.Секция [system]
2.1.Name – имя системы, например, Saitistika 4.0
2.2.ApplicationName – имя приложения IIS (используется только для IIS верси не ниже 6.0).
3.Секция [database]. Содержит следующие параметры:
3.1.Source – имя и расширение файла бэкапа базы данных, находящегося в корне архива Data.exe, например, Saitistika40.bak
3.2.Name – имя по умолчанию для создаваемой при установке базы данных, например, Saitistika40
3.3.Alias – значение по умолчанию псевдонима для сервера БД, например, S40
3.4.Path – путь по умолчанию для файлов базы данных, например, C:\Saitistika\Database\
3.5.Filename – имя создаваемого при установке файла базы данных, например, Saitistika40
4.Секция [backoffice]. Содержит следующие параметры:
4.1.Path – путь по умолчанию для установки файлов сайта бэкофиса, например, C:\Inetpub\Saitistika\BackOffice\
4.2.Directory – имя директории внутри архива Data.exe, в которой находятся файлы сайта бэкофиса, например, BackOffice
4.3.Name – имя бэкофиса по умолчанию, например, Saitistika 4.0 (бэкофис)
4.4.Domain – значение по умолчанию для создаваемого домена бэкофиса, например, saitistika.project.ru
4.5.Login – значение по умолчанию логина NT-пользователя, под которым будет работать сайт бэкофиса. Для этого параметра значение можно оставить пустым, если при каждой установке требуется вводить логин пользователя бэкофиса вручную.
4.6.Password – значение по умолчанию пароля NT-пользователя, под которым будет работать сайт бэкофиса. Для этого параметра значение можно оставить пустым, если при каждой установке требуется вводить пароль пользователя бэкофиса вручную. Так как пароль задается в файле конфигурации в текстовой форме, то подтверждение этого пароля в Setup.exe запрашиваться не будет, однако если изменить значение по умолчанию, то подтверждение пароля будет запрашиваться. Пароль NT-пользователя игнорируется, если указан логин локального NT- пользователя. Локальным пользователем считается пользователь, в имени которого нет символа «\» (отделяющего имя компьютера от собственно имени пользователя). Если даже имя компьютера в имени пользователя совпадает с именем компьютера, на котором производится установка, такой пользователь все равно считается сетевым. Для того, чтобы пользователь считался локальным, не включайте имя компьютера и символ «\» в его имя.
5.Секции [frontoffice1] … [frontofficeN]. Этих секций должно быть столько, сколько различных версий фронтофиса находится в архиве Data.exe. Каждая из секций содержит следующие параметры:
5.1.Path – путь по умолчанию для установки файлов сайта фронтофиса, например, C:\Inetpub\Saitistika\FrontOffice\
5.2.Directory – имя директории внутри архива Data.exe, в которой находятся файлы сайта фронтофиса, например, FrontOffice
5.3.Name – имя фронтофиса по умолчанию, например, Saitistika 4.0
5.4.Domain – значение по умолчанию для создаваемого домена фронтофиса, например, www.project.ru
5.5.Login – значение по умолчанию логина NT-пользователя, под которым будет работать сайт фронтофиса. Для этого
Copyright © 2005 Individ company |
Страница |
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
269 из 269 |
|
|
параметра значение можно оставить пустым, если при каждой установке требуется вводить логин пользователя этого фронтофиса вручную.
5.6.Password – значение по умолчанию пароля NT-пользователя, под которым будет работать сайт бэкофиса. Для этого параметра значение можно оставить пустым, если при каждой установке требуется вводить пароль пользователя этого фронтофиса вручную. Поведение этого параметра аналогично поведению параметра Password, описанного в секции [backoffice].
5.7.ID – идентификатор сайта фронтофиса в базе данных, например, 1
5.8.ThemeName – имя темы, присвоенной этому фронтофису, например, default.
Установочные модули
Процесс установки разбит на установочные модули. Установочный модуль – это класс, унаследованный от класса Installation::CInstallationModule. Установочный модуль может быть временным (удаляется после завершения установки) или постоянным (удаляется только при удалении продукта). В классах, унаследованных от CInstallationModule, обычно требуется переопределить 3 функции: OnInstall, OnRollback, Serialize. Функция OnInstall вызывается для установки модуля, OnRollback
– для удаления модуля и Serialize – для стандартной процедуры сериализации.
Установочные модули образуют древовидную структуру. Главный установочный модуль, производящий установку и удаление всех модулей, называется менеджер установки (класс Installation::CInstallationManager). Менеджер установки напрямую содержит шаги установки (классы, унаследованные от Installation::CInstallationStep), которые содержат собственно установочные модули.
Модернизация ядра
При следующих изменениях требуется доработка и перекомпиляция файла Setup.exe:
1.Изменение структуры ВИРТУАЛЬНЫХ директорий БО и ФО.
2.Изменение расстановки прав
3.Изменение маппинга
4.Изменение состава ISAPI-фильтров
5.Изменение состава используемых компонентов
6.Изменение пользовательского интерфейса инсталлятора
7.Изменение остального состава дистрибутива, кроме сайтов и БД.
Используемые таблицы и хранимые процедуры
При обращении к базе данных компонент использует ряд хранимых процедур, перечисленных ниже. Изменять или удалять указанные таблицы и процедуры следует только при параллельном изменении кода компонента.
Используемые таблицы:
1.FilesPaths
2.Folders
3.Pages
4.ScheduleSettings
5.Sites
6.SystemSettings
Используемые хранимые процедуры:
1.CreateFTCatalog2000
2.CreateFullTextSchedule
3.Installer_SetupRussianSearch_70
4.Installer_SetupRussianSearch_2000
5.Material_GetReplaceList
Класс Utils
Содержит статические вспомогательные методы.
Методы:
1.LoadString – загрузка строки из реестра за 1 шаг.
2.Format, FormatV, FormatMessage, FormatMessageV – форматирование строк за 1 шаг.
3.GetErrorMessage – получение описания ошибки по ее коду (SCODE или HRESULT), а также по объекту _com_error.
4.GetComputerName – получение имени компьютера. Результат кэшируется.
5.GetPrimaryDomainName – возвращает имя главного домена на контроллере домена и имя компьютера на других компьютерах. Результат кэшируется.
6.FullLogin – если логин не содержит домена (или имени компьютера), то дописывает к логину результат выполнения
Copyright © 2005 Individ company |
Страница |
Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464 |
270 из 270 |
|
|