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

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

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

CFile

Предназначен для работы с объектами типа «Файл».

Коды операций (определены в файле /common/include/files-functions.asp):

Некоторые методы для работы с файлами могут возвращать следующие коды операций:

1.CFile_Err_Success – операция выполнена успешно

2.CFile_Err_Arg_Uploader – неверное значение параметра mUploader

3.CFile_Err_Arg_FieldName – неверное значение параметра mFieldName

4.CFile_Err_Arg_Path – неверное значение параметра mPath

5.CFile_Err_InvalidPath – неверное имя или путь подгружаемого файла

6.CFile_Err_LoadError – ошибка при загрузке файла

Свойства:

1.ID – идентификатор объекта. Это свойство доступно только для чтения

2.Name – имя объекта

3.ContentType – тип содержимого файла

4.Size – размер файла в байтах

5.FileName – реальное имя файла на диске (имя объекта может отличаться от реального имени файла)

6.Path – локальный путь к файлу на сервере

7.State – статус файла, аналогичен статусу материала. Если доступ к файлу производится через FileAccess.dll на фронтофисе, то при этом доступны файлы только со статусом 4

8.ExpiresBefore – дата, до которой файл недоступен (используется при выводе файла через FileAccess.dll)

9.ExpiresAfter – дата, после которой файл недоступен (используется при выводе файла через FileAccess.dll)

10.ServerID – идентификатор сервера (из таблицы Sites), на котором находится файл. Это свойство определяется из настроек поиска файлов (таблица FilesPaths) и доступно только для чтения.

11.NetworkPath – сетевой путь к файлу или пустая строка, если путь не задан. Это свойство определяется из настроек поиска файлов (таблица FilesPaths) и доступно только для чтения.

12.VirtualPath – виртуальный путь к файлу (через http://…) или пустая строка, если путь не задан. Это свойство определяется из настроек поиска файлов (таблица FilesPaths) и доступно только для чтения.

Методы:

1.From (mIDorPath, Owner) – загрузка информации о файле. mIDorPath может быть как идентификатором файла из таблицы Files, так и локальным путем к файлу на сервере, а также нулем в этом случае создается новый объект. Owner

идентификатор пользователя, являющегося собственником объекта.

2.UploadFile (mOwner, mUploader, mFieldName, mPath) – загрузка файла на сервер. mOwner – идентификатор пользователя,

являющегося собственником файла. Если по физическому пути для подгружаемого файла на сервере уже существует файл с таким же именем, то в конец имени подгружаемого файла дописывается минимальное положительное целое число, при котором не возникает конфликта с именами существующих файлов. mUploader – объект класса DrAsp.Upl, используемый для загрузки файла. mFieldName – имя поля файла в форме. mPath – виртуальный путь от корня сервера, по которому будет подгружен файл. Метод возвращает один из кодов операции. После успешной загрузки файла все свойства объекта будут возвращать параметры загруженного файла. Если значения свойств после загрузки файла не изменяются, то сохранять объект не требуется.

3.ReplaceFile (mOwner, mUploader, mFieldName, mPath) – этот метод аналогичен методу UploadFile с той разницей, что если файл с таким же именем уже существует на сервере, то он переписывается.

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

5.DeleteVirtual – «виртуальное» удаление файла. Метод возвращает один из кодов операции. Файл не удаляется ни физически, ни из базы данных, но помечается в таблице Files как удаленный. Получение свойств удаленного файла невозможно, но, сняв пометку, файл можно восстановить. Связи файла с другими объектами не удаляются.

6.DeleteWithLinks – аналогичен методу DeleteVirtual, но связи файла с другими объектами удаляются.

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

8.Debug – вывод отладочной информации.

9.LinkTo (Parent, ParentType) – связь файла с объектом произвольного типа как дочернего с родительским. Parent – идентификатор родительского объекта. ParentType – тип родительского объекта.

Глобальные методы, работающие с классом CFile (определены в файле /common/include/files-functions.asp):

1.CFile_Error_Description (Code) – получение строки описания для кода операции Code.

2.CFile_Error_IsSuccess (Code) – определение, является ли код операции Code кодом успешного выполнения операции.

3.CFile_Error_IsInternal (Code) – возвращает True, если код операции Code обозначает скриптовую ошибку. Такие ошибки могут использоваться как отладочная информация.

4.CFile_Error_IsUserInterface (Code) – возвращает True, если код операции Code обозначает ошибку пользователя при вводе данных. Такие ошибки можно отображить пользователю.

5.CFile_UploadFile (Owner, Uploader, FieldName, Path, ByRef Message) – расширенная загрузка файла. Owner –

Copyright © 2005 Individ company

Страница

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

191 из 191

 

 

идентификатор пользователя, ялвяющегося собственником файла. Uploader – объект класса DrASP.Upl, используемый для загрузки файла. FieldName – имя поля формы для подгрузки файла. Path – виртуальный путь от корня сервера, по которому следует подгрузить файл. Message – в случае ошибки возвращает сообщение об ошибке, иначе пустую строку. Метод аналогичен методу UploadFile класса CFile, в случае успеха возвращает объект класса CFile, содержащий подгруженный файл, в случае ошибки – Nothing. Если во время выполнения метода возникла скриптовая ошибка, метод генерирует VBS-ошибку, в качестве описания которой подставляется описание ошибки.

6.CFile_ReplaceFile (Owner, Uploader, FieldName, Path, ByRef Message) – этот метод аналогичен методу CFile_UploadFile с

той разницей, что для подгрузки файла используется метод ReplaceFile класса CFile.

7.CFile_ProcessObjectField (Object, oRequest, Field, Path, Inherit) – обработка POST-а для поля типа «Файл» произвольного объекта, построенного на классе CObject. В процессе работы метод может подгрузить файл в хранилище объекта или удалить файл из него. Object – объект класса CObject, для которого происходит обработка. oRequest – на БО объект класса CRequest, на ФО объект класса DrAP.Upl. Field – идентификатор поля объекта. Path – виртуальный путь от корня сервера, по которому следует подгрузить файл. Inherit – аналогичен параметру Inherit в методе SetValue класса CObject. Для подгрузки файла используется метод UploadFile класса CFile, т.е. подгружаемый файл не перезаписывает существующий.

8.CFile_NewID () – генерация уникального идентификатора (GUID). GUID – это строка, не число. Этот метод можно использовать для генерации уникального пути для подгрузки файла.

9.UploadFile (Owner, Uploader, FieldName, Path, ByRef Message) – упрощеннаф загрузка файла, надстройка над методом

CFile_UploadFile. В случае успеха возвращает идентификатор файла, в случае неуспеха возвращает 0.

10.ReplaceFile (Owner, Uploader, FieldName, Path, ByRef Message) – упрощеннаф загрузка файла, надстройка над методом

CFile_ReplaceFile. В случае успеха возвращает идентификатор файла, в случае неуспеха возвращает 0.

11.DeleteFile (Path, ByRef Message) – логическое удаление файла, аналогично вызову метода DeleteWithLinks объекта CFile. Path – идентификатор или локальный путь файла. В случае скриптовой ошибки генерирует ошибку VBS аналогично методу CFile_UploadFile.

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

Вывод файла с указанным ID

<%

Dim File : Set File = New CFile

File.From ID, UserInfo.UserID

If File.ID > 0 And FileFolder <> "" Then%>

<a href="<%=FileFolder%>/<%=File.FileName%>"><%=TXS(File.Name)%></a> %>

CFileList

Предназначен для загрузки и хранения списка файлов.

Типы сортировки (свойства-константы):

1.Sort_Unsorted – без сортировки

2.Sort_Created – по дате создания

Свойства:

1.RightsMask – маска прав. Значение по умолчанию – crSF.

2.Lower – минимальный номер в списке, для которого требуется получить информацию (для поддержки пейджинга). Значение по умолчанию – Null (самый первый элемент).

3.Upper – максимальный номер в списке, для которого требуется получить информацию (для поддержки пейджинга). Значение по умолчанию – Null (самый последний элемент).

4.Sort – тип сортировки. Возможные значения перечислены под заголовком «Типы сортировки».

5.States – перечисление через точку (с точками в начале и конце) статусов файлов. Список будет заполнен файлами только тех статусов, которые указаны в этом свойстве. Значение по умолчанию – «.4.» (только файлы со статусом «завершено и опубликовано»).

6.Owners – перечисление через точку (с точками в начале и конце) собственников файлов. Список будет заполнен файлами только тех собственников, которые указаны в этом свойстве. Значение по умолчанию – Null (все собственники).

7.IsInit – возвращает True, если сисок был загружен и содержит хотя бы один элемент, иначе False.

8.Count – возвращаетколичество элементов в списке.

9.Total – возвращает общее количество файлов, удовлетворяющих условиям запроса.

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

11.nType (I) – идентификатор типа объекта для файла с индексом I.

12.Name (I) – имя объекта для файла с индексом I.

13.Descripriotn (I) – описание объекта для файла с индексом I.

14.Created (I) – дата создания объекта для файла с индексом I.

15.Changed (I) – дата изменения объекта для файла с индексом I.

16.Deleted (I) – дата удаления объекта для файла с индексом I (всегда будет Null, так как из базы данных запрашиваются

Copyright © 2005 Individ company

Страница

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

192 из 192

 

 

только неудаленные файлы).

17.Flags (I) – флаги объекта для файла с индексом I.

18.Notes (I) – пометки объекта для файла с индексом I.

19.Owner (I) – собственник объекта для файла с индексом I.

20.Status (I) – статус объекта для файла с индексом I.

21.Ord (I) – поле ord бъекта для файла с индексом I (для файлов всегда пустая строка).

22.FileName (I) – физическое имя файла с индексом I.

23.Path (I) – локальный путь к файлу с индексом I на веб-сервере.

24.ContentType (I) – тип содержимого файла с индексом I.

25.Size (I) – размер файла с индексом I в байтах.

26.Author (I) – автор файла с индексом I.

27.Keywords (I) – ключевые слова файла с индексом I.

28.ExpiresBefore (I) – дата, до которой файл с индексом I недоступен.

29.ExpiresAfter (I) – дата, после которой файл с индексом I недоступен.

30.State (I) – статус файла с индексом I (свойство States является фильтром для этого свойства).

31.Rights (I) – права на файл с индексом I пользователя, для которого был сделан запрос.

32.nServer (I) – сервер, на котором располагается файл с индексом I.

33.StrSize (I) – строковое представление размера файла с индексом I для отображения пользователю, основано на свойстве

Size(I).

34.VirtPath (I) – виртуальный путь файла с индексом I.

35.NetworkPath (I) – сетевой путь файла файла с индексом I.

36.Url (I) – стандартный url файла (виртуальный путь) с индексом I для вывода пользователю.

37.Title (I) – название файла для вывода пользователю, возвращает либо имя объекта, либо физическое имя файла, если имя объекта не задано.

38.Ext (I) – расширение файла с индексом I.

39.Icon (I) – виртуальный путь (в виде /images/icon-ext-<расширение>.gif) к файлу изображения на сервере, графически отображающему расширение файла с индексом I. Это свойство возвращает путь «/images/icon-ext-unknown.gif», если файла изображения для расширения файла с индексом I физически не существует (т.е. для неизвестных типов файлов).

Методы:

1.GetInfo (ServerFolderID, UserID) – загрузка списка файлов, логически находящихся на том же сервере, на котором находится раздел с идентификатором ServerFolderID (раздел ServerFolderID необязательно должен быть корневым). Если раздела ServerFolderID в системе не существует, будет возвращен список файлов для всех серверов.

2.Store (Name, Duration) – запись списка фалов в кэш.

3.Fetch (Name) – щагрузка списка файлов из кэша.

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

Вывод списка файлов на текущем сервере с пейджингом по умолчанию

<!-- #include file="pager-init.asp" --> <%

Dim Files : Set Files = New CfileList

'Получение списка файлов

Files.Lower = Pager.First Files.Upper = Pager.Last Files.Sort = Files.Sort_Created

Files.GetInfo FolderID, UserInfo.UserID

'Установка свойств пейджера

Pager.Total = Files.Total

If Files.IsInit Then

'Вывод пейджинга oPD.PagerBar

'Вывод списка файлов в некотором формате oPD.Heading2 "Список файлов", ""

%>

<table width="100%" border="0" cellspacing="0" cellpadding="0"> <%

Copyright © 2005 Individ company

Страница

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

193 из 193

 

 

Dim I : For I = 0 To Files.Count %>

<tr>

<td width="11">

<img alt=">" width="9" height="9" src="/images/bullet-arrow- right.gif" border="0" hspace="4" vspace="2">

</td>

<td class="content2" width="100%">

<a href="<%=Files.Url(I)%>"><%=TXS(Files.Title(I))%></a><br> <img alt="<%=TXS(UCase(Files.Ext(I)))%>" src="<%=Files.Icon(I)%>" width="16" height="16" align="absmiddle" vspace="2" hspace="2"> <%=TXS(UCase(Files.Ext(I)))%>; <%=Files.StrSize(I)%><br>

</td>

</tr>

<% Next

%>

</table> <%End If%>

CFlashGraph

Служит для отображения на странице одного из трех типов Flash-графиков, используемых на страницах статистики. Файлы Flash-графиков находтся в директории /aspscripts/eventlog/statistics и имеют расширение .swf.

Все свойства класса, кроме ID, доступны для чтения и записи. При присвоении значений свойствам GraphCount, PageCount и XCount происходит переинициализация свойств-массивов, размеры которых зависят от значений изменяемых свойств. Поэтому сначала нужно указать значения свойств GraphCount, PageCount и XCount, а затем инициализировать свойства- массивы.

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

Свойства:

1.ID – идентификатор объекта, доступен только для чтения. Для идентификации в клиентском JavaScript каждый Flash- график имеет уникальный для данной страницы идентификатор. Присвоение идентификатора новому объекту производится автоматически при создании объекта.

2.GraphCount – количество отображаемых графиков (только для линейчатого графика, для остальных типов графиков используйте значение 0)

3.XCount – количество делений по оси X

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

5.GraphChecked – строка, в которой через запятую перечисляются номера изначально отображаемых графиков

6.Values – трехмерный массив значений. Первое измерение номер страницы (от 0 до PageCount), второе номер графика (от 0 до GraphCount), третье значение функции в точке (от 0 до XCount)

7.YTop – одномерный массив максимальных значений по оси Y (измерение массива номер страницы, от 0 до PageCount)

8.GNames – одномерный массив названий трафиков (измерение массива номер графика, от 0 до GraphCount)

9.XLabels – одномерный массив из подписей по X (измерение массива номер деления, от 0 до XCount). Для линейчатого графика каждый элемент массива должен быть строкой, содержащей запятую, при этом содержимое строки после запятой выводится под содержимым строки перед запятой, а самя запятая не выводится.

10.PageLabels – одномерный массив заголовков страниц (измерение массива номер страницы, от 0 до PageCount)

11.ShowButtons – True, если требуется выводить заголовки страниц, иначе False

12.XColors – одномерный массив из цветов подписей по оси X (изменение массива номер деления, от 0 до XCount). Цвет задается в виде строки формата #RRGGBB, значение Empty (по умолчанию) означает черный цвет (#000000).

Методы:

1.ScriptCheckBox (Name, Number) – вывод JavaScript для динамического включения и выключения отображения графика с некоторым номером при нажатии на чекбокс. Name – имя чекбокса (параметр name тега input type=”checkbox”), Number

номер графика в текущем объекте CFlashGraph.

2.ScriptCheckBoxEx (Name, Number, Max) – расширенный вывод JavaScript для динамического включения и выключения отображения графика при нажатии на чекбокс. От метода ScriptCheckBox отличается наличием аргумента Max, обозначающего, сколько графиков можно отобразить одновременно.

3.ShowTop (mPage) – вывод «верхнего» графика столбчатого. mPage – номер страницы, отображаемой по умолчанию

4.ShowBottom (mPage) – вывод «нижнего» графика линейчатого. mPage – номер страницы, отображаемой по умолчанию

Copyright © 2005 Individ company

Страница

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

194 из 194

 

 

5.ShowCircle (mPage) – вывод кругового графика. mPage – номер страницы, отображаемой по умолчанию (от 1 до

PageCount + 1)

6.AutoCalcTop – автоматическое заполнение массива YTop, основываясь на значениях массива Values.

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

Вывод простого столбчатого графика из одной страницы и трех значений

Dim oGraph : Set oGraph = New CFlashGraph oGraph.ShowButtons = True oGraph.GraphCount = 0

oGraph.PageCount = 0 oGraph.PageLabels(0) = "Мой график" oGraph.XCount = 3 oGraph.XLabels(0) = "1" oGraph.XLabels(1) = "2" oGraph.XLabels(2) = "3" oGraph.Values(0,0,0) = 10 oGraph.Values(0,0,1) = 20 oGraph.Values(0,0,0) = 5 oGraph.AutoCalcTop

oGraph.ShowTop 1

Вызов функции ScriptBodyLoad необходим для вывода содержимого графика.

Во время вызова методов Show... объект добавляет код JavaScript, который

должен выполниться при загрузке страницы для инициализации графика, в глобальную

переменную BodyLoadScript, определенную в файле flash-functions.asp. Данная

функция выводит скрипт, содержащийся в этой переменной

ScriptBodyLoad

CFolderDecoration

Не используется.

CFolderInfo

Предназначен для получения и хранения информации о разделе сервера

Свойства:

1.ID – ID раздела

2.ServerID – ID сервера

3.ParentID – ID родительского раздела

4.ThemeID – ID темы раздела

5.FolderType – тип раздела

6.SubType – кустомный тип раздела для разделов типа 0

7.Ord – значение поля Ord в таблице folders

8.Title – название раздела

9.Description – описание раздела

10.Notes – пометки раздела

11.ThemeName – имя темы раздела

12.FileName – имя главного файла раздела

13.MaxMats – значение свойства Максимальное количество материалов

14.MaxDays – значение свойства Максимальное количество дней за которые показывать материалы

15.Icons – иконки директедита

16.ServerUrl – урл сайта

17.IndexArticleID – ID индесного материала

18.Comment – комментарий к фолдеру

19.RedirUrl – url, на который перейти при загрузке раздела

20.Rights– права на раздел для пользователя, указанного при последнем вызове GetUserRights.

21.Hide – (TRUE/FALSE) – возвращает свойство (скрытый/не скрытый)

22.PictureHTML – возвращает HTML для картинки раздела. Реально достается из базы только в момент первого

использования

23.PictureHTMLForTests – возвращает HTML для картинки раздела, сжатой пропорционально до ширины 200px. Реально

достается из базы только в момент первого использования

24.BigImg – объект класса CImg, представляющий большую картинку раздела.

Copyright © 2005 Individ company

Страница

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

195 из 195

 

 

25.SmallImg – объект класса CImg, представляющий маленькую картинку раздела.

26.Url – урл фолдера

27.FullUrl – полный урл фолдера

28.MetaDescription (MinLength) - Возвращает CONTENT тега META DESCRIPTION для раздела. <meta name="description" content="То, что возвращает это свойство">. MinLength - минимально допустимая длина описания, которое будет найдено.

29.MetaKeywords (Delimiter) - Возвращает CONTENT тега META KEYWORDS для раздела. Delimiter - символ-разделитель,

который будет вставлен между ключевыми словами.

30.IndexArticle – объект класса CArticle, представляющий индексный материал раздела.

Методы:

1.GetInfo(FolderID) загружает информацию из базы по ID раздела. Возвращает true (удачно)/false (нет такого раздела). Повторные вызовы с тем же значением аргумента не приводят к лишним обращениям к БД.

2.GetUserRights(UserID) – возвращает права пользователя на этот раздел. Повторные вызовы с тем же значением аргумента не приводят к лишним обращениям к БД.

3.CheckRights (UserID, ReqRights) - выполняет все необходимые действия для проверки прав(заполняет Icons и т.п.)

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

<%=FolderInfo.Title%>

CFoldersListDecoration

Класс для вывода списка подразделов.

Методы

1.Load(Folder, User) – загрузить список подразделов

2.Write() – вывести список подразделов.

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

В примере возвращается список подразделов определенного раздела

<%

Dim oFoldersListDecoration

Set oFoldersListDecoration = New CFoldersListDecoration oFoldersListDecoration.Load oFolder.ID, UserInfo.UserID oFoldersListDecoration.Write()

%>

CForm

Предназначен для вывода стандартных форм на фронтофисе, в основном для форм, содержащих поля «Логин» и «Email» для текущего пользователя. Механизм вывода этих стандартных полей, зависящих от степени авторизованности пользователя, реализован в классе CForm и не требует дополнительных действий от программиста. Класс также поддерживает множество других типов полей, а также автоматически производит проверку на заполнение обязательных полей и правильность заполнения таких полей, как поля логина, пароля, email-а. Стандартную обработку правильности заполнения полей можно легко дополнить специфичной для страницы обработкой правильности заполнения и затем вывести все ошибки на страницу, пользуясь встроенным классом CFormError (см. свойство FormError).

Все типы полей формы делятся на простые (public) и специальные (private). Поля простых типов можно добавлять через метод Field в неограниченном количестве. Поля специальных типов можно добавлять только через специальные методы для добавления этих полей. Можно добавить только по одному полю для каждого специального типа полей. Имена специальных полей формы зарезервированы и не могут использоваться в качестве имен простых полей. Значения специальных полей можно получить через свойство Value, передав в него зарезервированное имя поля, либо через специальные свойства (например, Login, Email). Кроме типов полей существуют флаги полей, которые при определении простого поля можно через Or добавить к типу поля. Флаги различным способом модифицируют поведение поля. Список и описание типов и флагов полей см. ниже.

Следует отметить, что для полей «Логин» и «Email» существует два типа полей: стандартное поле и простое поле. Стандартные (специальные) поля содержат логин и email текущего пользователя и выводятся в соответствии со степенью авторизованности пользователя и другими факторами. Значения этих полей после заполнения формы сохраняются в куках и восстанавливаются при следующем отображении этих полей в любой форме. Простые поля логина и email-а выводятся как простые текстовые поля, можно задавать их значение по умолчанию, а введенные пользователем значения в эти поля при стандартной обработке нигде не сохраняются. От текстовых полей эти поля отличаются лишь проверкой на правильность логина и email-а.

Copyright © 2005 Individ company

Страница

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

196 из 196

 

 

Механизм использования класса Cform на страницах фронтофиса следующий:

1.Определяем поля формы, пользуясь функциями определения полей (общей – Field или специфичными для специальных типов полей). При этом набор полей не должен меняться при перезагрузке страницы. Значение поля по умолчанию может изменяться от одной перезагрузки к другой.

2.С помощью свойства IsPost определяем, был ли POST, и если был, то производим обработку POST-а. Стандартная обработка POST-а производится вызовом метода ProcessPost. Для определения результата стандартной проверки правильности заполнения полей можно воспользоваться свойством IsValid. Метод ProcessFiles, вызываемый при обработке POST-а, если форма содержит поля для подгрузки файлов, физически подгружает файлы, для правильной его работы требуется задать значение свойства FileFolder. Так как раздел, в который следует подгрузить файлы, может быть известен только после частичной обработки запроса, то метод ProcessFiles следует вызвать вручную, когда в нем возникнет необходимость. Если форма заполнена правильно, то можно (если требуется) произвести дополнительную проверку правильности заполнения полей, добавляя сообщения об ошибках через объект FormError. При этом значение свойства IsValid будет изменяться соответственно. После окончания проверки правильности заполнения в случае успеха производим обработку POST.

3.Выводим форму на страницу с помощью вызова метода Show. Если были ошибки при заполнении формы, метод Show также выведет их на страницу.

Замечания по доработке класса CForm (при возникновении такой необходимости) находятся в комментариях в файле класса.

Ниже приводятся описания типов полей. В описаниях приведена трактовка значений для этих типов полей. Значения по умолчанию для полей, определяемых через метод Field, следует задавать в соответствии с этой трактовкой. Причем если значение поля это массив, то изменяющимся в процессе обработки POST-а элементом является только его нулевой элемент, а остальные элементы содержат дополнительную информацию о поле. Свойство Value для таких полей возвращает текущее значение только нулевого элемента массива. В случаях, где специально не оговорено, значение поля это одно значение типа VARIANT, которое и выводится на страницу.

Простые типы полей

1.Type_Hidden – поле input type=”hidden”.

2.Type_Text – однострочное текстовое поле.

3.Type_Area – многострочное текстовое поле.

4.Type_CheckBox – одиночный чекбокс. Заголовок выводится не над чекбоксом, а справа от него. В случае, если поле этого типа является обязательным, то для успешного заполнения формы чекбокс должен быть отмечен. Значение поля – True (отмечен) или False (не отмечен).

5.Type_Select – ниспадающее меню. Значение поля одномерный массив из 2K+1 элементов. Нулевой элемент текущее значение, далее элементы следуют парами в следующем порядке: значение, текст[, значение, текст[, …]].

6.Type_CheckBoxes – группа чекбоксов. Значение поля одномерный массив из 2K+1 элементов. Нулевой элемент строка из выбранных в текущий момент значений, перечисленных через точку, с точками в начале и конце строки. Пустая строка (только при передаче в метод Field) означает, что выбраны все элементы, значение «.» означает, что не выбран ни один элемент. Далее элементы массива сделуют в порядке: значение, текст[, значение, текст[, …]].

7.Type_Radio – группа радиобоксов. Значение поля точно такое же, как у типа поля Type_Select.

8.Type_SimpleLogin – простое текстовое поле, автоматически проверяемое при заполнении на правильность логина.

9.Type_SimpleEmail – простое текстовое поле, автоматически проверяемое при заполнении на правильность email-а.

10.Type_Password – поле пароля.

11.Type_Header – выводится только заголовок. Значение поля игнорируется.

12.Type_File – поле для подгрузки файла (для обработки при POST-е требует вызова метода ProcessFiles с предварительно заданным значением свойства FileFolder). Значение поля идентификатор (ID) файла из таблицы Files.

13.Type_Image – поле для подгрузки изображения (для обработки при POST-е требует вызова метода ProcessFiles). Значение поля идентификатор (ID) файла из таблицы Pictures. Этот тип поля предназначен для работы с изображениями, хранящимися в базе данных, а не в файловой системе.

14.Type_Calendar – поле для ввода даты и времени с выводом всплывающего календаря (только для IE4+, в остальных броузерах поле отображается в виде простого текстового поля). Значение поля одномерный массив из двух элементов. Первый элемент дата, второй время по умолчанию, подставляемое при выборе даты из календаря. Если значение второго элемента массива равно пустой строке, после выбора даты остается то же время, которое было при вызове календаря. Значением поля может быть и не массив, эта ситуация аналогична значению в виде массива, в котором второй элемент содержит пустую строку.

Специальные типы полей

1.Type_Login – специальное поле логина, добавляется через метод LoginField.

2.Type_Email – специальное поле email-а, добавляется через метод EmailField.

Флаги полей

1.Type_Required – служит для обозначения обязательного поля.

Copyright © 2005 Individ company

Страница

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

197 из 197

 

 

2.Type_PreserveName – при выводе html-кода к имени поля добавляются префиксы, обеспечивающие уникальность имени поля на странице. Если же к значению поля требуется иметь доступ через стандартные функции FFS, FFL и т.п., то следует указать этот флаг при определении поля. Имя поля с этим флагом выводится на страницу без изменений.

Свойства (Read/Write)

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

ПРИМЕЧАНИЕ ДЛЯ РАЗРАБОТЧИКОВ: при доработке класса при явном использовании имени формы в новых свойствах и методах установите значение переменой mAllowChangeName в False.

2.Action – значение параметра action, выводимого в теге <form>. Значение по умолчанию – url страницы до символа # (если есть). В случае, если POST формы должен производиться на другую страницу, то на ней для правильной обработки POST-а должно присутствовать идентичное определение формы.

3.Method – значение параметра method, выводимого в теге <form>. Значение по умолчанию – POST. В настоящее время поддерживается автоматическая обработка только метода POST.

4.SubmitTitle – заголовок кнопки (submit) формы. Значение по умолчанию пустая строка.

5.AllowSubmit – True/False, выводить ли кнопку в форме. Значение по умолчанию – True.

6.ShowNote – True/False, выводить ли стандартное сообщение об обязательных полях в методе Show. Значение по умолчанию – True.

7.SubmitClass – Класс кнопки из CSS. Значение по умолчанию имя основного класса для вывода кнопок форм. Рекомендуется изменять этозначение только когда требуется отклонение дизайна кнопки от стандартного.

8.SubmitName – переопределенное имя кнопки (submit). Пустая строка (значение по умолчанию) означает стандартное имя кнопки.

9.Message – Сообщение об успешном заполнении формы. Значение по умолчанию пустая строка. Текст, заданный в этом свойстве (если задана непустая строка), будет выводиться вместо формы после успешной обработки POST-а (вывод производится автоматически в методе Show).

10.PostQueryMethod – метод, используемый для определения наличия POST-запроса. Может принимать следующие значения: PostQuery_ViaSubmit – POST определяется по имени кнопки; PostQuery_ViaHidden – для определения POST-а

вформу при выводе добавляется скрытое поле (hidden) с непустым значением и затем проверяется значение этого поля; PostQuery_Default – метод определения POST-а выбирается автоматически в зависимости от набора полей, добавленных

вформу: если форма содержит только одно текстовое поле, выбирается PostQuery_ViaHidden, в остальных случаях

PostQuery_ViaSubmit. Значение по умолчанию – PostQuery_Default.

11.FileFolder – виртуальный каталог на сервере, в котором следует сохранить подгружаемые файлы. Значение по умолчанию пустая строка. Для подгрузки файлов в процессе обработки POST-а вызовом метода ProcessFiles требуется задать значение этого свойства.

Свойства (Read-Only)

1.Value (Field) – получение текущего значения поля по его имени. Если значение поля это массив, то свойство возвращает значение его нулевого (значащего) элемента. Это свойство является свойством по умолчанию.

2.IsPost – True/False – был ли POST.

3.Login – получение текущего значения специального поля логина.

4.Email – получение текущего значения специального поля email-а.

5.IsValid – True/False – признак отсутствия ошибок при обработке POST-а.

6.ErrorMessage – сообщение об ошибках заполнения формы.

7.FormError – объект класса CFormError, содержащий информацию об ошибках заполнения формы.

Методы

1.Filed (FType, Name, Title, Value) – определение простого поля. FType – тип и флаги поля (допускаются только простые типы и флаги), Name – имя поля, Title – заголовок поля, Value – значение поля по умолчанию. Возвращаемое значение – True/False – было ли добавлено поле. Поле может не быть добавлено, если его имя совпадает с одним из зарезервированных имен для специальных типов полей или если поле с таким именем уже добавлено в форму.

2.LoginField (Required) – определение специального поля типа «Логин». Required (True/False) – является ли поле обязательным. Возвращает True в случае успеха, иначе False.

3.TestLoginField (Required) – определение специального поля типа «Логин». Required (True/False) – является ли поле обязательным. Возвращает True в случае успеха, иначе False. Для этого поля, в отличие от поля, определяемого через метод LoginField, не производится встроенная проверка на правильность заполнения.

4.EmailField (Required) – определение специального поля типа «Email». Required (True/False) – является ли поле обязательным. Возвращает True в случае успеха, иначе False.

5.Hidden (Name, Value) – определение поля типа Type_Hidden. Поля этого типа можно добавлять и через метод Field, но некоторые параметры этого метода не имеют смысла для поля типа Type_Hidden, поэтому для упрощения добавления скрытых полей создан этот метод.

6.Show – вывод формы, включающий в себя сообщение об ошибках заполнения формы (если такие ошибки были) или вывод сообщения об успешном заполнении формы, если был POST, не было ошибок и задано значение свойства

Message.

7.ProcessPost – стандартная обработка POST-а.

Copyright © 2005 Individ company

Страница

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

198 из 198

 

 

8.ProcessFiles – подгрузка файлов и изображений.

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

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

Dim Form : Set Form = New CForm

Form.Name = "numberform"

Form.SubmitTitle = "Отправить"

' Определение формы

Form.Field Form.Type_Text Or Form.Type_Required, "number", "Номер", 0

If Form.IsPost Then

'Обработка POST, уже включает в себя проверку на то, что значение

'поля number непустое

Form.ProcessPost

If Form.IsValid Then

Dim Number : Number = Form("number")

If Not IsNumeric(Number) Then

Form.FormError.AddCommon "Введите число"

Else

Form.Message = "Вы ввели число " & Number

End If

End If

End If

' Отображение формы

Form.Show

CFormDecoration

Используется для вывода и обработки заполнения конструируемой формы во фронтофисе.

Свойства

1.ErrorMessage – сообщение о неуспешном заполнении формы

2.SuccessMessage – сообщение об успешном заполнении формы.

Методы

1.IsInvalid – проверить правильность заполнения формы

2.IsSubmitted – проверить, отправлена ли форма

3.Title – получить название формы (с иконками DE)

4.Load(FolderID, UserID) – загрузить свойства и список полей формы

5.WriteAnchor – вывести якорь, на который будет отправлятся форма

6.Write(SubmitName, ActionURL, Uploader) – вывести форму. SubmitName – надпись на кнопке отправки, ActionURL –

адрес отправки формы, Uploader – объект DrASP.Upl для доступа к данным формы

7.Validate(Uploader) – проверить, заполнены ли обязательные поля формы

8.Submit(Uploader) – обработать результаты заполнения формы (сохранить в БД, отправить почту)

CFormError

Предназначен для накапливания и вывода пользователю сообщений об ошибках заполнения форм. Класс может использоваться как самостоятельно, так и в составе класса CForm (см. описание свойства FormError этого класса).

Свойства:

1.ErrorMessage – возвращает сформированное сообщение об ошибках заполнения формы (в виде HTML). Это свойство является свойством по умолчанию.

2.IsValid – возвращает True, если объект не содержит информации об ошибках, иначе False.

Методы:

1.Reset – сброс состояния объекта (очистка добавленных сообщений об ошибках)

2.AddCommon (Value) – добавление сообщения об общей ошибке заполнения формы.

3.AddRequired (Field, Value) – добавление сообщения о незаполненном обязательном поле. Field – уникальный ключ для

Copyright © 2005 Individ company

Страница

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

199 из 199

 

 

поля, Value – имя поля для отображения пользователю.

4.AddInvalid (Field, Value) – добавление сообщения о некорректно введенном значении. Field – уникальный ключ для поля, Value – имя поля для отображения пользователю.

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

Данный пример предполагает, что в переменной Email находится введенный пользователем в обязательное поле email. Обратите внимание, что если поле Email не было заполнено пользователем, то функция CheckEmail (Email) вернет False. Но несмотря на это сообщения о некорректном заполнении поля Email не появится ввиду внутренней проверки в классе CFormError, т.к. метод AddInvalid вызывается с тем же ключом поля, что и метод AddRequired.

Dim FormError : Set FormError = New CFormError

' Проверка заполненности обязательных полей

If Trim(Email) = "" Then FormError.AddRequired "email", "Email"

' Проверка правильности заполнения полей

If Not CheckEmail(Email) Then FormError.AddInvalid "email", "Email"

' Вывод сообщения об ошибке пользователю

If Not FormError.IsValid Then oPD.Error FormError

CForum

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

определенных в файле forums-functions.asp.

Свойства:

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

2.Page – номер текущей страницы

3.Parent – идентификатор родительского сообщения

4.Thread – идентфикатор текущей темы

5.Active – идентификатор активного сообщения

6.IP – IP-адрес клиента

7.FolderID – идентификатор раздела форума

8.PageSize – количество тем на странице из свойств форума

9.Rights – права на форум

10.Moderation – 0 (премодерируемый форум) или 1 (постмодерируемыый форум)

11.Count – количество сообщений в форуме

12.ThreadCount – количество тем в форуме

13.ThreadName – название текущей темы

14.ParentName – название темы родительского сообщения

15.ActiveName – название темы активного сообщения

16.ActiveTopic – название темы активного сообщения

17.ActiveText – текст активного сообщения

18.CurrentFirst – номер первой темы на текущей странице для пейджинга по темам

19.CurrentLast – номер последней темы на текущей странице для пейджинга по темам

20.PrevFirst – номер первой темы на предыдущей странице для пейджинга по темам

21.PrevLast – номер последней темы на предыдущей странице для пейджинга по темам

22.NextFirst – номер первой темы на следующей странице для пейджинга по темам

23.NextLast – номер последней темы на следующей странице для пейджинга по темам

24.HasPrevPage – признак наличия предыдущей страницы для пейджинга по темам

25.HasCurrentPage – признак наличия текущей страницы для пейджинга по темам

26.HasNextPage – признак наличия следующей страницы для пейджинга по темам

27.PrevPageName – заголовок предыдущей страницы для пейджинга по темам

28.PrevPageLink – ссылка на предыдущую страницу для пейджинга по темам

29.CurrentPageName – заголовок текущей страницы для пейджинга по темам

30.CurrentPageLink – ссылка на текущую страницу для пейджинга по темам

31.NextPageName – заголовок следующей страницы для пейджинга по темам

32.NextPageLink – ссылка на следующую страницу для пейджинга по темам

33.HasPrevThread – признак наличия предыдущей темы для пейджинга предыдущая/следующая тема

34.HasNextThread – признак наличия следующей темы для пейджинга предыдущая/следующая тема

35.PrevThreadIndex – номер предыдущей темы для пейджинга предыдущая/следующая тема

Copyright © 2005 Individ company

Страница

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

200 из 200