Функции доступа к базе данных

dbget(table,id,field) - Если field=%null (не задан), то возвращает ассоциативный массив, содержащий запись с номером id из таблицы table БД системы. Индексами элементов массива являются имена столбцов таблицы table, а значениями - значения соответствующих полей в записи. Если задан параметр field, то возвращает значение поля записи с указанным именем. Если запись не существует или данный пользователь не имеет к ней доступа - вернет %null. Функция доступна только vip-пользователям.
dbload(table,filter) - загружает записи таблицы table базы данных. Если filter=0 или не задан, функция возвращает буфер данных, содержащий все записи таблицы. Использование этого режима рекомендуется только опытным пользователям. Если filter - массив, то он используется для выборки данных. В этом случае считается, что индексы массива - это названия определенных полей таблицы, а значения - указание на выбор только тех записей, значения соответствующих полей которых совпадает с указанными в массиве значениями. Если filter строка, то она рассматривается как аналог массива: отдельные элементы разделены пробелами. При этом каждое слово строки имеет структуру имя:значение, где имя - имя столбца таблицы БД, а значение - значение записи в данном столбце. Если filter является не пустым значением - функция возвращает массив записей таблицы, удовлетворяющий условиям отбора. Каждой записью этого массива является массив, отдельные элементы которого являются полями записи (см. функцию dbget()). Функция доступна только vip-пользователям.
doc(id,field) - эквивалент dbget('DATA',id,field) - возвращает запись об узле или документе id, либо значение поля field этой записи.
docnode(node,order) - возвращает массив, содержащий все записи узла node, доступные данному пользователю, отсортированные в порядке, зависящем от необязательного параметра order. По умолчанию order=0.
0 В установленном для узла порядке
1 По возрастанию номера записи
2 По возрастанию заголовков
3 По возрастанию имен владельцев
4 По убыванию номера записи
5 По убыванию числа просмотров
6 По убыванию даты/времени обновления (новые сверху)
7 Сначала узлы, потом записи по возрастанию заголовков
doclist(list) - возвращает массив записей таблицы DATA (записи об узлах и документах), удовлетворяющих условиям отбора, заданным в массиве list. Элемент list может содержать либо числовой номер записи, либо имя записи. list может быть строкой, каждое слово которой рассматривается как элемент фильтра. Если list не задан, возвращаются все записи таблицы, доступные данному пользователю.
docsect(doc,seclist) - возвращает массив описания секций документа doc, имена или типы которых заданы в массиве или строке seclist. Если seclist не задан, то возвращаются описания всех именованных секций документа doc. Для включения в выходной массив всех секций определенного типа должна использоваться конcтрукция $тип_секции (подробнее см. описание секций документа и команду :load). Индексами элементов возвращаемого массива являются имена загруженных секций. Каждый элемент возвращаемого массива является массивом, содержащим следующие элементы:
name - имя секции;
type - тип секции;
parm - массив групп параметров секции;
cond - условие включения секции в документ;
head - полный текст заголовка секции;
doc - номер документа;
body - строки секции;
docdata(doc,list) - загружает секции data и csv документа doc, имена которых заданы в list, в текущий контекст. Секции других типов не загружаются. Результатом выполнения функции является появление переменных, описанных секциями data и csv документа doc в текущем контексте.
ddl(doc,list) - синоним docdata - использовать не рекомендуется. Будет исключен.
import(doc,names) - импортирует секции списка names документа doc в тело документа аналогично команде :import. Функцию можно использовать только в контексте документа. При использовании в теле секций .do или .module приведет к ошибке.
union(doc,type,mode) - выбирает из документа doc все секции типа type и объединяет их в одну последовательность строк.
insrand(doc,type,mode) - считывает из документа doc все секции типа type, случайно выбирает одну из них и вставляет в документ в месте вызова функции. Если mode>0, то секция исключается из допустимых для вставки при последующих вызовах insrand(), если mode=0, то может быть вставлена повторно. По умолчанию mode=1.
randtext(doc,mode) - выводит (mode#0) или возвращает (mode=0) случайно выбранную цитату (абзац текста) из документа doc. При mode#0 аналог команды :cite.
randlink(id,n,show) - выбирает случайным образом n элементов из списка (сборника) с номером id. Если show=0, то возвращает массив этих элементов (n>1) или один скалярный элемент (n=1). Если show#0, то строит и возвращает ссылки. В этом случае предполагается, что id - номер сборника документов. Поэтому возвращаются ссылки (ссылка) на выбранные документы. Функция может быть использована для вывода в выходной документ ссылок на другие документы по данной теме.
minds(doc) - возвращает в виде массива все записи обсуждения документа doc.
users(list) - возвращает массив записей таблицы USER (записи о пользователях), удовлетворяющих условиям отбора, заданным в массиве list. Элемент list может содержать либо числовой номер записи, либо имя пользователя. list может быть строкой, каждое слово которой рассматривается как элемент фильтра. Если list не задан, возвращается вся таблица.
files(list,mode) - функция вывода списков файлов. Параметр list - это массив или строка, содержащая список файлов. Файлы могут быть указаны полным именем или маской с использованием символов * и ?. Маски могут указывать только на файлы, размещенные на том же сайте. Маски раскрываются и замещаются реальными списками файлов. Если mode=1, то возвращает массив гиперссылок, указывающих на файлы. Если mode=2, выводится таблица, каждая строка которой содержит имя файла в виде ссылки, размер и дату создания файла. Функцию могут использовать только пользователи со статусом не ниже "Эксперт".
Функции обработки массивов
Создание/Изменение узлов и документов
Меню пользователя
Встроенный язык программирования
Функции формирования выходного документа