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

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

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

Отображение содержимого страницы материала.

Dim oMaterial : Set oMaterial = New CMaterial

If Not oMaterial.GetInfo(matId) Then RaiseError 404

oMaterial.pNo = QSL("pNo") oMaterial.Form = 1234 oMaterial.Navigation = False

If RTest(oMaterial.Rights, 0, crRF + crWF + crCF) Then UserSession.FailPageLoad "article authorization"

Response.Redirect _SystemInfo.URLAuthPage&"&err=accessdeny&backpage="&_ Server.URLEncode(MakeSelfRefUrl("&matid="&matid))

End If oMaterial.Show

CMaterials

Предназначен для работы со списком материалов.

Расположен в папке общих файлов фронтофиса и бэкофиса и подключается директивой:

<!--#include file="CMaterials.asp" -->

Свойства

1.fID – ID фолдера из которого берется список материалов

2.Subfolders – (true/false) – показывать материалы из подфолдеров (по умолчанию - true)

3.ShowHide – (true/false) – показывать материалы из скрытых фолдеров (по умолчанию - true)

4.MatCnt – максимальное кол-во материалов в списке (по умолчанию - все)

5.CByFolders, CByDate, CbySeqNo – константы , метод сортировки (по подфолдерам, по дате публикации , по порядку)

6.OrderType - порядок сортировки (пример использования : oML.OrderType = oML.CByDate)

7.IgnoredFolders – список ID фолдеров через точку из которых не выбирать материалы

8.StartDate,EndDate – Начальная и конечная дата периода выборки материалов (по умолчанию выбираются все)

9.count – Кол-во материалов

10.Distinct – Получение списка только различных материалов (по умолчанию false). Список различных материалов не поддерживает права на раздел (FRights(i) возвращает -1).

11.Title(i) - Название I-го материала

12.ID(i) – ID I-го материала

13.pID(i) – ID первой страницы I-го материала

14.Url(i) – URL материала

15.FUrl(i) – URL фолдера материала

16.MatIcons(i) – иконки директедита

17.ARights(i) – права на материал

18.FRights(i) – права на фолдер материала

19.PubDate(i) – дата публикации материала

20.Title(i) – название материала

21.FTitle(i) – название фолдера материала

22.FRights(i) – права на фолдер материала

23.FolderID(i) – фолдер материала

24.Comment(i) – комментарий материала

25.ShortComment(i) – краткая сопроводительная надпись материала

26.Details(i) – Характеристики материала

27.Raiting(i) – рейтинг материала

28.Img(i) – обьект CImg – маленькая картинка к материалу

29.Exists (fID) - Возвращает true/false , выбрались ли материалы из указанного фолдера

30.ExistsBefore(aID ,begI) - Возвращает true/false , есть ли материалы с ID = aID , в списке раньше по порядку чем begI(счетчик)

Методы

1.GetInfo(fID, UserID) – загружает из базы данных список материалов. Возвращает true (удачно)/false. В качестве fID можно передавать ID раздела или ID нескольких разделов через точку.

2.IsInit - Возвращает true/false , загрузилась ли информация из базы со списком материалов.

3.Near (matID , fID , ByRef upMatUrl ,ByRef upMatTitle ,ByRef downMatUrl , ByRef downMatTitle ) - заполняет переменные upMatUrl – (URL ближайшего материала выше по списку, если нет пустую строку), upMatTitle - (Название ближайшего материала выше по списку, если нет пустую строку), downMatUrl - (URL ближайшего материала ниже по списку, если нет пустую строку), downMatTitle - (Название ближайшего материала ниже по списку, если нет пустую строку) для

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

211 из 211

 

 

материала с ID = matID в фолдере fID

Пример использования

Отображение списка материалов на фронтофисе. <%

Dim i

Dim oAL: set oAL = New CMaterials ' класс со списком материалов oAL.MatCnt = 2

oAL.ShowHide = false oAL.OrderType = oAL.CByDate

oAL.GetInfo FolderID, UserInfo.UserID ' заполнение обьекта класса If oAL.IsInit Then

for i=0 to oAL.count

If not RTest (oAL.ARights(i) , 0 , crRF + crWF + crCF + crSF) Then If not RTest (oAL.ARights(i) , 0 , crRF + crWF + crCF ) Then

%><a href="<%=oAL.Url(i)%>"> <%end if%>

<%=oAL.Title(i)&IIF(oAL.Comment(i)<>""," ("&oAL.Comment(i)&")","")%><%If not RTest (oAL.ARights(i) , 0 , crRF + crWF + crCF ) Then%></a><%end if%><%=oAL.MatIcons(i)%><br><%

End If

Next

End If %>

CMetaDataField

Предназначение

Предназначен для работы с полями метаданных, хранящихся в Универсальном хранилище

Свойства

1.ID – Идентификатор значения

2.Form - ID формы, которой принадлежит поле

3.Title - название поля

4.Description – описание

5.FieldType - тип поля

6.FieldTypeTitle - название типа поля

7.ErrorMessage - сообщение об ошибке заполнения поля

8.Options - битовое поле, содержащее параметры отображения поля. 1 – поле обязательно для заполнения; 2 - показывать

на странице

9.Position - положение поля в списке полей

10.Variants - массив с вариантами заполнения поля

11.Required – признак обязательности для заполнения

12.Visible – признак, предписывающий отобрадать поле на странице

Методы

1.Load(Field) - загрузка структуры поля из БД. Field – идентификатор поля

2.Save – сохранение структуры поля в БД

3.Delete – удаление структуры поля, вариантов ответов и результатов заполнений из БД.

4.AddVariant(Title) – добавление для поля нового варианта ответа. Title – текст для варианта

5.DeleteVariant(ID) - удаление варианта ответа. ID – идентификатор варианта

CMetaDataForm

Предназначение

Предназначен для работы с метаданными

Свойства

 

1.

ID – уникальный идентификатор формы

 

2.

TextBegin – текст в заголовке формы

 

3.

TextEnd – завершающий текст формы

 

4.

ErrorBegin – текст ошибки в заголовке формы

 

5.

ErrorEnd - текст ошибки в конце формы

 

 

 

 

 

Copyright © 2005 Individ company

Страница

 

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

212 из 212

6.ErrorTemplate – шаблон сообщения об ошибке

7.Fields - массив полей формы (объекты типа CMetaDataField)

Методы

1.Load(Form) - загрузка структуры формы и полей. Form – идентификатор формы

2.Save - сохранение структуры формы.

3.Delete – удаление формы и всех связанных данных

4.DeleteField(ID) – удаление поля формы. Удаляются также и варианты ответов для поля. ID – идентификатор поля

CNavigator

Предназначен для вывода разнообразных навигаций. Сводит всю работу с навигациями в одно место, благодаря чему ускоряется выборка данных. Встроены механизмы кэширования данных.

Схема работы: загружает выбранную информацию в экземпляр CXMLDOM, затем кэширует ее при необходимости.

Свойства

Флаги считывания различных навигаций:

1.TopNav – считывать верхнюю навигацию

2.LeftNav – считывать левую навигацию

3.BottomNav – считывать нижнюю навигацию

4.SubNav – считывать поддерево заданного раздела

5.Map – считывать все дерево разделов

Пометки для отдельных навигаций:

6.TopNavNote – для верхней навигации

7.BottomNavNote – для нижней навигации Флаги отображения навигаций:

8.ShowMenuPanels – показывать панели верхнего меню

9.ExtractLeftMenu – раскрывать левое меню

10.TopIcons – выводить иконки DirectEdit в верхней навигации

11.LeftIcons – выводить иконки DirectEdit в левой навигации

12.SelectionLanguage – Установка языка выборки для SelectNodes

13.FoldersCount – Количество выбранных разделов

14.MaterialsCount – Количество выбранных материалов

15.Count(RSName) – Количество элементов в рекордсете с именем RSName

Методы

Методы загрузки:

1.GetInfo(fID, mID, User) – загрузить выбранную информацию

2.StoreInfo(Name, Duration) – закэшировать XML

3.FetchInfo(Name) – загрузка XML из кэша

4.GetRS(SQL, RSNames) – загрузка указанной процедуры с указанием названий рекордсетов

5.AGetRS(SP, args, RSNames) – То же что и GetRS, только указание процедуры в другом формате

6.DelRS(RSNames) – Удаление рекордсета(ов). Применяется, когда, например, процедура возвращает лишние данные

7.SetParam(name,value) – Установить параметр в XML

8.DelParam(name) – Удалить установленный раннее параметр

9.AddLink(Name, URL) – Добавление данных «руками», применяется для «жестких» ссылок.

Вывод контента:

10.Output(FileName) – Возвращает результат преобразования XSL файлом

11.Debug() – Выводит отладочную информацию

12.Escape() – Экранирует данные в XML

13.Split() - Разбивает длинные названия

14.data(RSName) – Возвращает XMLDOMNode рекордсета с именем RSName

15.GetItem(RSName, I) – Возвращает I-тый элемент из рекордсета с именем RSName

16.GetField(RSName, I, FieldName) – Возвращает значение указанного поля I-того элемента из рекордсета с именем RSName

Пример использования

Navigator.BottomNav = True Navigator.BottomNavNote = ".nav3root."

Navigator.SetParam "bottomnavnote", Navigator.BottomNavNote If FolderID <> SystemInfo.SiteRootFolderID Then

Navigator.LeftNav = True

Navigator.SubNav = True

Navigator.GetInfo IIF(IFolderID>0,IFolderID,FolderID), 0, UserInfo.UserID

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

213 из 213

 

 

End if

CNavigationBar

Предназначен для хранения и вывода стандартных элементов «листатель страниц» вида вперед-назад-текущий.

Свойства:

1.PrevName, PrevLink, CurrentName, CurrentLink, NextName, NextLink – ссылки (текст и URL) для секций «предыдущая», «текущая» и «следующая».

2.BGColor – цвет фона для элемента.

Методы:

1.Show() – выводит элемент «листатель страниц». Тексты и URL’ы д.б. предварительно заданы в свойствах объекта.

Пример использования:

Dim MatNavigationBar: set MatNavigationBar = New CNavigationBar If IsArray(aPrevMat) Then

MatNavigationBar.PrevName = "Предыдущий материал" MatNavigationBar.PrevLink = _

MakeShortURL("materials-document.asp",aPrevMat(0,0))&"&matId="&aPrevMat(4,0) End If

MatNavigationBar.CurrentName = "Все материалы раздела" MatNavigationBar.CurrentLink = MakeShortURL(FolderInfo.FileName,FolderInfo.Id) If IsArray(aNextMat) Then

MatNavigationBar.NextName = "Следующий материал" MatNavigationBar.PrevLink =_

MakeShortURL("materials-document.asp",aNextMat(0,0))&"&matId="&aNextMat(4,0) End If

MatNavigationBar.Show()

CNews

Список новостей отсортированных по дате.

Свойства

1.StartDate – Начальная дата выборки новостей (может быть null)

2.EndDate – Конечная дата выборки новостей (может быть null)

3.Lower – Нижняя граница выборки (для пэйджинга)

4.Upper – Верхняя граница выборки

5.Count – Количество выбранных новостей

Методы

1.GetInfo (fID, UserID) – Выбрать данные

2.Store(Name, Duration) – Закэшировать выбранные данные

3.Fetch(Name) – Достать данные из кэша

4.ID(I) – Идентификатор I-той выбранной новости

5.Url(I) – Ссылка I-той выбранной новости

6.Title(I) – Название I-той выбранной новости

7.Comment(I) – Комментарий I-той выбранной новости

8.ShortComment(I) – Дополнительный комментарий I-той выбранной новости

9.Notes(I) – Пометки I-той выбранной новости

10.Picture(I) – Картинка I-той выбранной новости

11.SmallPicture(I) – Маленькая картинка I-той выбранной новости

12.Date(I) – Дата I-той выбранной новости

Пример использования

Dim NewsList : Set NewsList = New CNews NewsList.GetInfo FolderID, UserInfo.UserID Pager.Total = NewsList.Count + 1

For I = Pager.First - 1 To Pager.Last – 1 Response.Write NewsList.Title(I) & "<br>"

Next

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

214 из 214

 

 

CNewsDecoration

Фронтофисный класс для вывода одной новости.

Свойства

1.id – Идентификатор новости

2.title – Название новости

3.content – Содержание новости

4.author – Автор новости

5.date – Дата новости

6.srcurl – Ссылка на источник

7.srctitle – Название источника

8.comment – Комментарий новости

9.picture – Изображение новости

10.smallpicture – Маленькая картинка новости

11.shortcomment – Дополнительный комментарий новости

12.notes – Пометки новости

Методы

1.GetInfo(FolderID, NewsID, UserID) – Получение данных

2.Show() – Вывод новости

Пример использования

Dim News : Set News = New CNewsDecoration News.GetInfo FolderID, NewsID, UserInfo.UserID News.Show

CObject

Работа с абстрактным объектом.

Свойства

1.XML – XML с данными объекта.

Методы

1.ID – идентификатор объекта

2.Name – название объекта

3.Description – описание объекта

4.TypeID – идентификатор типа объекта

5.TypeName – название типа объекта

6.OwnerID – идентификатор владельца

7.Rights – права на объект для текущего пользователя

8.StatusID – идентификатор статуса объекта

9.Order – расположение в структуре объектов

10.ParentID – идентификатор родительского объекта

11.System – признак «системности» объекта

12.Active – признак «активности» объекта

13.Created – время создания объекта

14.Changed – время последнего изменения объекта

15.SubTypeName – название подтипа объекта

16.OwnerName – имя владельца объекта

17.StatusName – название статуса объекта

18.OwnersCount – количество пользователей, назначенных на объект

19.OwnersID(I) – идентификатор пользователя

20.OwnersName(I) – логин пользователя

21.FieldsCount() – количество конструируемых полей объекта

22.FieldsID(I) – идентификатор поля

23.FieldsType(I) – идентификатор типа поля

24.FieldsName(I) – название поля

25.Error – признак ошибки при обработке объекта

26.CreateOrder(Parent) – сгенерировать положение в структуре объектов в зависимости от родительского объекта

27.Create(ObjectTypeName, TypeID, ParentID, User) – создать новый пустой объект в памяти

28.Load(ObjectTypeName, Object, User) – загрузить данные объекта

29.Delete() – удалить объект

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

215 из 215

 

 

30.LoadList(User, WithDeleted) – прочитать список объектов одного типа

31.LoadType() – прочитать информацию о типе объекта

32.LoadFieldVariants() – прочитать варианты полей

33.Save – сохранить общие свойства объекта

34.SaveFields – сохранить поля объекта

35.SavePeople(Roles) – сохранить пользователей, назначенных на объект

36.AddField(FieldID, FieldType) – добавить конструируемое поле

37.AddValue(Field) – выделить место для хранения значения конструируемого поля

38.DeleteValue(Field) – удалить значение конструируемого поля

39.GetValue(Field, GetDefault) – получить значение конструируемого поля, с учетом дефолтного

40.SetValue(Field, Value, Inherit) – присвоить значение конструируемого поля

41.SetExtendedValue(Field, Value, Inherit) – присвоить значение расширенному полю

42.AddUser(Login) – назначить пользователя на объект

43.Icons() – HTML иконок DE

44.CheckRights(RequiredRights) – проверить наличие необходимых прав на объект

CObjectDecoration

Вывод элементов объектов во фронтофисе.

Методы

1.LoadNavigation(TypeName, UserID) – загрузить объект Navigator деревом однотипных объектов

2.LoadTypes(TypeName) – прочитать список типов

3.TaskAddLinks(ProjectID) – вывести ссылки для добавления задачи в проект

4.WriteTypes(Checked) – вывести список типов для настройки фильтра по типам

5.WriteField(TypeID, Value) – вывести значение конструируемого поля

CObjectFiles

Предназначен для управления одновременно всеми файлами, присоединенными к объекту произвольного типа.

Свойства:

1.IsInit – возвращает True, если объект был правильно проинициализирован, иначе False

2.Count – количество файлов в списке

3.ID (Index) – идентификатор файла с индексом Index

4.OwnedFile (Index, UserID) – возвращает объект класса CFile, для которого owner – это пользователь с идентификатором

UserID

5.File (Index) – аналогично вызову свойства OwnedFile (Index, 0)

Методы:

1.FromObject (oID, oType) – получение списка файлов, присоединенных к объекту oID типа oType. Информация о связях берется из таблицы ObjectLinks

2.FromArticle (oID) – получение списка файлов, присоединенных к материалу oID. Информация о связях берется из хранилища, специфичного для материалов (сейчас это также таблица ObjectLinks)

3.FromMaillist (oID) – получение списка файлов, присоединенных к списку рассылки с идентификатором раздела oID. Информация берется из хранилища, специфичного для списков рассылки. Если в качестве oID передан идентификатор раздела, не являющегося списком рассылки, то полученный список файлов будет пустым, как и в случае, если раздела с идентификатором oID не существует.

4.UpdateRights (AccountID, oType, Rights, Delete) – установка указанного права на все файлы из списка.

5.InheritRights (oID, oType) – наследование прав на каждый файл от объекта с идентификатором oID и типом oType.

6.UpdateExpired (ExpiresBefore, ExpiresAfter) – обновление дат доступности для всех файлов из списка. В качестве параметров можно передавать значение Null или дату и время.

7.UpdateState (State) – обновление статуса для всех файлов из списка.

8.DeleteVirtual – виртуальное удаление всех файлов из списка, аналогично вызову метода DeleteVirtual класса CFile для каждого файла из текущего списка.

9.Recover – восстановление удаленных файлов, присутствующих в списке (если они были ранее удалены виртуально без удаления связей, т.е. методом DeleteVirtual).

Пример использования:

Получение списка файлов для материала с идентификатором aID, наследование их прав от этого материала и обновление

некоторых их свойств

Dim Files : Set Files = New CObjectFiles

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

216 из 216

 

 

Files.FromArticle aID

Files.InheritRights aID, "Articles"

Files.UpdateStatus 4

Files.UpdateExpired Null, Null

CObjectProps

Предназначен для получения и отображения общих свойств и значков быстрого редактирования для объектов произвольного типа. Класс может работать как на бэкофисе, так и на фронтофисе. Для облегчения использования данного класса существуют глобальные функции GetObjectProp, GetObjectPropEx и FormatObjectProps. Для вывода свойств и значков

быстрого редактирования объекта рекомендуется использовать последнюю функцию ввиду простоты и широких возможностей ее применения.

Свойства:

1.QueryStaticString – это свойство, доступное для чтения и записи и принимающее значения True/False, определяет, будет ли при получении информации об объекте запрошена информация о его имени из журнала событий. Такой запрос позволяет узнать имена удаленных объектов (и должен использоваться на страницах статистики), но несколько снижает быстродействие. Значение этого свойства по умолчанию определяется при создании объекта из значения глобальной переменной CObjectProps_DefaultQueryStatusString. Значение этой глобальной переменной по умолчанию равно True для обратной совместимости. Если требуется, измените значение этого свойства перед вызовом метода GetInfo

2.IsInit – возвращает True, если объект был правильно проинициализирован, иначе False.

3.Path (Name) – возвращает путь к объекту для типа пути Name. Поддерживаемые значения параметра Name: prop, edit, structure, access, statistics, site, а также Null (или Empty, пустая строка), обозначающий тип пути по умолчанию, определяемый методом GetDefaultLinkPathType. Параметр Name может быть также одним из псевдонимов типа пути.

4.Field (Name) – возвращает значение поля с именем Name из таблицы объекта.

5.Param (Name) – возвращает значение дополнительного параметра с именем Name для объекта данного типа.

6.ID – возвращает идентификатор объекта.

7.Exists – возвращает True, если объект реально существует в таблице объекта, иначе False.

8.MainType – возвращает мнемонику основного типа (не подтипа) для данного объекта.

9.MainTypeName – возвращает имя основного типа (не подтипа) для данного объекта.

10.ObjType – возвращает мнемонику типа или подтипа объекта.

11.TypeName – возвращает имя типа или подтипа объекта.

12.Rights – возвращает права на объект.

13.RawName – возвращает имя объекта без учета прав на объект и стиля отображения.

14.DisplayStyle – возвращает стиль отображения для текущего объекта, представляющий из себя значение, подставляемое в значение атрибута id HTML-тега <a> при выводе имени или ссылки объекта. Это свойство можно переопределить.

15.Name – возвращает имя объекта с экранированием для прямого вывода на странице и включает в себя обработку прав и стиля отображения.

16.Link (LinkType) – возвращает код для вывода имени объекта со ссылкой. Производит экранирование и обработку прав и стиля отображения. Параметр соответствует параметру Name свойства Path

17.DirectEdit (aTypes) – возвращает код для вывода значков быстрого редактирования. Параметр может соответствовать параметру Name свойства Path или быть массивом либо перечислением через запятую без пробелов таких параметров. Если параметр равен Null, Empty или пустой строке, то выводится стандартный набор значков для данного типа объектов, определяемый методом GetDefaultIcons. Если параметр равен строке «all», то выводятся значки для всех типов путей, проинициализированных в GetInfo независимо от их применимости к данному типу объектов (неприменимые значки будут неактивными). Набор неприменимых значков определяется в функции GetAllIcons

Public-методы:

1.GetInfo (oID, oType, uID) – получение информации об объекте с идентификатором oID, типом (подтипом) oType и правах на него для пользователя с идентификатором oID. В качестве параметра oType можно передать мнемонику типа (подтипа) объекта, идентификатор типа (подтипа) или имя таблицы объекта.

2.Format (Pattern) – заменяет подстановочные последовательности в строке Pattern на их значения и возвращает результат. Подстановочные последовательности могут быть следующими (с учетом регистра):

a.%id% – значение свойства ID

b.%maintype% – значение свойства MainType

c.%maintypename% – значение свойства MaintypeName

d.%type% – значение свойства ObjType

e.%typename% – значение свойства TypeName

f.%rawname% – значение свойства RawName

g.%name% – значение свойства Name

h.%path% – значение свойства Path(null)

i.%path:type% – значение свойства Path(type), type может быть одним из допустимых типов пути

j.%link% – значение свойства Link(null)

k.%link:type% – значение свойства Link(type), type может быть одним из допустимых типов пути

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

217 из 217

 

 

l.%directedit% – значение свойства DirectEdit(null)

m.%directedit:types% – значение свойства DirectEdit(types), types может быть перечислением через запятую без пробелов допустимых типов пути.

n.%field:name% – значение поля с именем name таблицы объекта. Имя поля должно быть записано в нижнем регистре.

o.%param:name% - значение дополнительного параметра с именем name. Имя дополнительного параметра должно быть записано в нижнем регистре.

Private-методы, которые можно переопределить:

1.PreProcessPath (Path, PathType) – переопределяет маску пути для типа пути PathType. Path – значение маски типа пути из таблицы ObjectTypes.

2.GetDefaultIcons – возвращает набор значков быстрого редактирования по умолчанию для текущего объекта (массив из типов путей, которые можно передать в свойство DirectEdit). В текущей реализации это набор всех применимых для текущего объекта типов путей.

3.GetAllIcons – возвращает набор значков быстрого редактирования для варианта «all» (все). В текущей версии это набор из всех значков, определенных в функции GetInfo. Эту функцию не требуется переопределять при добавлении нового типа пути (этот путь автоматически будет включен в набор всех значков), переопределение может потребоваться в каких-либо других случаях (например, специальное поведение для определенного типа объектов).

4.GetDefaultLinkPathType – возвращает тип пути по умолчанию для текущего объекта. Не может возвращать псевдоним типа пути.

Руководство по использованию и расширению функциональности (для опытных программистов)

В реализацию класса заложены возможности по простому расширению текущей функциональности в зависимости от меняющихся требований отображения свойств и значков быстрого редактирования объектов. Поясним работу данного класса, смысл свойств и необходимые действия для доработки функциональности:

1.Информацию об объекте класс получает из хранимой процедуры Object_Properties. Эта процедура возвращает три рекордсета: поля объекта, дополнительные параметры и основные параметры объекта. Поля объекта в классе будут доступны через свойство Field, дополнительные параметры через свойство Param, а основные параметры через все остальные свойства объекта. Если об объекте какого-то нового типа для правильного вывода его свойств или значков быстрого редактирования требуется знание каких-то дополнительных параметров, не являющихся полями этого объекта, то требуется доработать механизм получения второго рекордсета в хранимой процедуре (это делается вставкой дополнительных операторов после комментария «Дополнительные параметры, зависящие от типа объекта» в теле процедуры).

2.Правила построения путей от значков быстрого редактирования хранятся в таблице ObjectTypes в полях …Path. Если значение поля для какого-то типа или подтипа объектов – NULL, то такой путь к объектам этого типа (подтипа) неприменим. При добавлении нового значка быстрого редактирования требуется добавить еще одно поле в таблицу ObjectTypes, заполнить его соответствующим образом, и доработать метод GetInfo данного класса (в конце метода к имеющимся вызовам процедуры GetTypeMask добавить по аналогии еще один для нового типа пути), а также при надобности определить для него псевдонимы (см. п. 3), соответствие атрибуту тега <imageprops> (добавив запись в словарь mdTypePropNames в конструкторе класса), путь к изображению значка быстрого редактирования в фронтофисе (добавив в конструкторе класса запись в словарь mdFOImgs) и подсказку от значка в фронтофисе (добавив в конструкторе запись в словарь mdFOAlts). В путях, записанных в соответствующих полях, могут использоваться подстановочные последовательности нескольких категорий:

a.Специальные параметры (заключаются в одиночные символы «%»): %ID% - идентификатор объекта, %URL% - полный URL текущей страницы, %ThemeID% - идентификатор темы для объекта (значение дополнительного параметра ThemeID), %ThemeName% - имя темы для объекта (значение дополнительного параметра ThemeName), %FileName% - имя файла для объекта (значение дополнительного параметра FileName), %VirtPath% – виртуальный путь к сайту (значение дополнительного параметра VirtPath), %ParentID% - идентификатор родительского объекта (значение дополнительного параметра ParentID). Отсюда видно, что большинство специальных параметров это значения дополнительных параметров объекта, и для их использования в путях нужно, чтобы для соответствующего типа объекта эти параметры возвращались хранимой процедурой Object_Properties. Для того, чтобы добавить новый специальный параметр с произвольным значением, нужно аналогично остальным добавить его в словарь stdDict в функции ExpandPath данного класса.

b.Значения полей объекта (из таблицы объекта). Это параметры, имена которых с учетом регистра совпадают с именами полей таблицы объекта. Чтобы сделать имя объекта подстановочной последовательностью, в начале и в конце к нему нужно приписать символы «%%» (например, %%Name%%, если поле Name присутствует в таблице объекта). Таблица объекта это таблица, имя которой находится в поле TableName таблицы ObjectTypes для соответствующего типа (подтипа) объектов.

c.Последовательность «%%%» заменяется на одинарный символ процента (%).

3.Существует понятие «тип пути» – это аргумент, передаваемый в свойства Path, Link, DirectEdit (свойство DirectEdit в качестве аргумента может принимать и массив типов путей). Каждому полю …Path из таблицы ObjectTypes ставится в соответствие мнемоника типа пути (это соответствие определяется в методе GetInfo при вызовах метода GetTypeMask).

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

218 из 218

 

 

Таким образом, набор поддерживаемых путей расширяется без существенной переработки класса. Для типа пути могут существовать псевдонимы мнемоники, обозначающие тот же путь. Псевдонимы могут использоваться для обеспечения обратной совместимости с ранними версиями. Набор псевдонимов определяется в конструкторе класса добавлением записей в словарь mdTypeAliases. Текущий набор типов путей: prop, edit, structure, access, statistics, site. Текущий набор псевдонимов: props -> prop, view->structure, stat-> statistics, url->site. Если в качестве типа пути передано значение Empty, Null или пустая строка, то вместо него подставляется тип пути по умолчанию, определяемый в функции GetDefaultLinkPathType. Текущая логика работы функции такова: для фронтофиса тип пути по умолчанию это site, для бэкофиса, если для объекта неприменим тип пути edit, то тип пути по умолчанию – props, иначе – edit.

4.Маски типов путей, определенные в таблице ObjectTypes, можно переопределить в функции PreProcessPath, в которую передаются 2 параметра: определенный в таблице ObjectProps путь и тип обрабатываемого пути. Функция возвращает переопределенное значение для обрабатываемого типа пути. Функция также обрабатывает права на объект, обнуляя маски типов путей, на которые у текущего пользователя нет прав.

Примеры использования:

Непосредственное использование объекта класса CObjectProps:

Dim Props : Set Props = New CObjectProps Props.QueryStaticString = False Props.GetInfo 4, "DF", RI.UsrID

' Непосредственное использование свойств

RI.Write Props.TypeName & " """ & RI.Link("statistics") & """" & RI.DirectEdit(null) ' То же самое через вызов Format:

RI.Write Props.Format "%typename% ""%link:stat""%directedit%"

Использование через функцию FormatObjectProps:

CObjectProps_DefaultQueryStatusString = False

RI.Write FormatObjectProps 4, "DF", "%typename% ""%link:stat""%directedit%"

CPageDecoration

Предназначен для вывода обшего оформления всех регулярных страниц

Свойства:

1.ColumnsWidth – массив из ширин колонок основной таблицы содержимого. Число элементов массива должно быть равно числу колонок в таблице, определенному дизайном сайта.

2.WidthType – html-обозначение размерности чисел из массива ColumnsWidth

3.MyCSS – код переопределенных стилей

4.MainIcons – признак отображения значков быстрого редактирования при выводе заголовка содержания.

5.ListIcons – признак отображения значков быстрого редактирования при выводе списков элементов.

6.NavigationTemplate – xsl-шаблон для вывода навигационного меню.

Методы:

1.Title – выводит название страницы (обычно используется для формирования содержимого тега <title>).

2.CSS – выводит HTML-код для подключения CSS.

3.Top – выводит HTML-код начала страницы, общий для всех страниц.

4.Bottom – выводит HTML-код кнца страницы, общий для всех страниц.

5.StartPage – выводит HTML-код начала главной таблицы содержимого страницы.

6.DividePageColumn – закрывает текущий и начинает следующий столбец главной таблицы содержимого страницы.

7.PassPageColumn – закрывает текущий и начинает следующий столбец главной таблицы содержимого страницы, пропуская один столбец.

8.EndPage – закрывает главную таблицу содержимого страницы.

9.Heading (Title, Icons, PrintUrl, UpdateDate) – выводит заголовок содержания страницы.

10.Heading1 (Title, Url) – выводит заголовок в теге <h1> (со ссылкой, если Url <> “”).

11.Heading2 (Title, Url) – выводит заголовок в теге <h2> (со ссылкой, если Url <> “”).

12.Notes(Note) – выводит HTML-код для визуального отображения мнемоник объектов (notes).

13.StatusBar – выводит статусную строку.

14.LeftNavigation – выводит навигационное меню.

15.StartSettings (Title, LeftHTML) – начинает блок настроек, LeftHTML – HTML-код, отображаемый в левой части заголовка блока.

16.EndSettings – закрывает блок настроек.

17.Error (Message) – выводит сообщение об ошибке.

18.Warning (Message) – выводит статусное сообщение.

19.NavigationBar (PrevName, PrevUrl, CurrentName, CurrentUrl, NextName, NextUrl) – выводит строку навигации. Если

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

219 из 219

 

 

какой-либо из Url не задан (пустая строка), то соответствующий Name выводится без ссылки.

20.StartList – начинает список элементов (разделов, материалов и т.п.).

21.ListItem (Href, Title, Icons, Date, Note, Img, Comment, Category, Link) – выводит элемент списка. Если изображение (Img)

не задано (пустая строка), выводится изображение по умолчанию.

22.EndList – закрывает список элементов.

23.PagerBar – выводит HTML пейджинга из объекта Pager (для того, чтобы объект Pager был определен на странице,

необходимо подключить файл /common/include/Cpager.asp).

Пример использования:

Подробное описание и предназначение класса содержится в разделе «Структура HTML»

CPager

Предназначен для управления пэйджингом страниц.

Расположен в папке общих файлов фронтофиса и бэкофиса и подключается директивой:

<!-- #include virtual="/common/include/CPager.asp"-->

На фронтофисе вместо этого файла следует подключать файл pager-init.asp из текущей темы. Этот файл содержит код инициализации объекта Pager для текущей темы.

Свойства

1.Pg – текущая страница

2.PgSize – количесво элементов, одновременно отображаемых на странице

3.Target – URL страницы, на которую будет осуществлен переход при клике на ссылку пэйджера

4.Total – общее количество элементов на странице

5.MaxPg – количество ссылок, одновременно отображаемых статусной в строке

6.ShowAll отвечает за показ страниц, true - показывать все страницы, иначе нет

7.Delimiter – визуальное представление разделителя страниц. По умолчанию это « | »

8.QSName – имя параметра в запросе, отвечающего за текущую страницу. По умолчанию это «pg»

9.Clear – говорит о том, сброшен пэйджер или нет. Если true – выставляет pg=1

10.First – номер первой страницы

11.Last – номер последней страницы

12.ActiveMask – шаблон заголовка страницы пейджинга для активной страницы. Последовательность символов %str% из шаблона при формировании навигации заменяется на заголовок страницы.

13.InactiveMask – шаблон заголовка страницы пейджинга для неактивной страницы. Последовательность символов %str% из шаблона при формировании навигации заменяется на заголовок страницы.

Методы

1.Bar() – формирование и вывод навигации.

2.ExportAllPages(ByRef Cont) – этот метод устарел.

3.SetNavigationBar(ByRef oNavigationBar) – устанавливает визуализатор для пэйджера.

Примеры использования

Вывод строки пейджинга на фронтофисе (для списка из 100 элементов):

'Свойства PgSize, MaxPg, Target, ActiveMask и InactiveMask уже

'проинициализированы в файле pager-init.asp

Pager.Total = 100

' Переопределение свойства Target

Pager.Target = URI.ThisRequest.Delete(Pager.QSName).Add("param", value) & "&"

oPD.PagerBar

См. также пример использования в описании класса CFileList.

CPageTracking

Служит для централизованной обработки окончания загрузки страниц как фронтофиса, так и бэкофиса. Методов и классов нет. Для изменения (дополнения) обработки окончания загрузки страниц требуется изменить код события Class_Terminate этого класса.

CParameterBlock

Copyright © 2005 Individ company

Страница

Контакты: www.saitistika.ru | support@saitistika.ru | (0852) 321464

220 из 220