Основные сведения

Bitrix Framework - технологическое ядро (платформа) для создания и управления проектами (веб-сайтами и корпоративными порталами). Платформа позволяет создавать неограниченное количество проектов с применением одной копии (лицензии) продукта, размещая ядро и базу данных системы в единственном экземпляре на сервере.

На данный момент не все возможности старого ядра продублированы в D7. Но новое ядро D7 в Bitrix Framework постепенно замещает старое. Если использование старого ядра привело к предупреждению от IDE: Method/class is deprecated, значит нужно использовать методы D7 [image].

В силу ряда причин API документация может не охватывать все методы. Для понимания работы иногда лучше просмотреть собственно программный код. Для этого можно использовать бесплатный модуль из Маркетплейса: Живое описание АПИ [image].

Данная документация носит только справочный характер. Детальное описание принципов работы с системой описаны в учебном курсе Разработчик Bitrix Framework [image]. Следить за изменениями в документации можно с помощью страницы Что нового? , либо подпиской на твиттер BitrixDocDev [image], а также в блоге Отдела документации [image].

Примечание: добавив к адресу любой страницы #examples можно быстро перейти к примеру, если он на ней есть. (В файлах документации формата CHM это не работает.)

На каждой странице документации авторизованный на сайте посетитель может дать комментарий к содержимому страницы. Для этого воспользуйтесь расположенной в правом нижнем углу окна браузера кнопкой:

Версии сущностей

Bitrix Framework постоянно развивается. Появляются новые функции, некоторые устаревают, в функциях появляются новые параметры. Однако достаточно большое число проектов не обновляются. Для облегчения программистского труда в документации проставлено с какой и по какую версию продукта класс, метод, параметр, событие существовали (существуют).

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

В таблицах указывается версия, с которой сущность появилась в продукте, только в том случае, если её появление не совпадает с моментом появления самого класса, метода и так далее. На иллюстрации ниже: параметр COURSE_ID появился вместе с методом (то есть с 5.1.0), а параметр CHAPTER_ID только с версии 9.5.4.

Если с развитием продукта параметр (обычно это относится к параметрам) изменялся, то будет соответствующее примечание в его описании. (Например: до версии х.х.х параметр назывался *****).

Пример

Примечания:
  • Отметка Устарел у метода, параметра, ключа означает, что его не рекомендуется использовать так как расширений и исправлений не будет.
  • Простановка версий выполнена не полностью, работы в этом направлении ведутся в данный момент.

© «Битрикс», 2001-2008, «1C-Битрикс», 2008-2022 1С-Битрикс: Управление сайтом


Для разработчиков

Описание

Раздел предназначен для технических специалистов со знанием PHP и HTML. Раздел содержит сведения о технологиях и основных принципах, заложенных в систему Bitrix Framework, описание классов и функций модуля Главный модуль.

Документация носит справочный характер. Для дополнительного изучения рекомендуются учебные курсы Администратор. Базовый [image] и Разработчик Bitrix Framework [image].

Смотрите также:

  • Пользовательская документация по Главному модулю

Компоненты

Модуль включает в себя следующие Компоненты 2.0:

Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Рабочий стол | desktop | Позволяет создать настраиваемый рабочий стол с использованием разнофункциональных гаджетов.
Упрощенный HTML-редактор | fileman.light_editor | Выводит упрощенный визуальный HTML-редактор.
Элемент управления "Календарь" | main.calendar | Используется для ввода даты/времени.
Элемент управления "Часы" | main.clock | Служит для удобного ввода времени с использованием часов.
Элемент управления "Палитра" | main.colorpicker | Служит для удобного ввода таблицы выбора цвета.
Журнал изменений | event_list | Позволяет вывести историю изменений, произошедших на проекте.
Форма обратной связи | main.feedback | Выводит форму для отправки сообщения с сайта на E-mail.
Включаемые области
Вставка включаемой области | main.include | Располагается в шаблоне дизайна сайта и определяет место расположения включаемых областей страниц и разделов.
Навигация
Выбор сайта | main.site.selector | Включен в шаблон дизайна сайта и служит для переключения между сайтами, созданными на базе данной копии продукта.
Меню | menu | Выводит меню указанного типа.
Навигационная цепочка | breadcrumb | Выводит навигационную цепочку в шаблоне.
Пункты меню | menu.sections | Осуществляет дополнение созданного меню названиями разделов инфоблоков.
Карта сайта
Карта сайта | main.map | Осуществляет отображение карты сайта.
Пользователи
Имя пользователя с тултипом | main.user.link | Выводит имя пользователя с всплывающей подсказкой (тултипом), который содержит информацию о пользователе социальной сети..
Настраиваемая регистрация | main.register | Позволяет настроить форму регистрации на сайте.
Параметры пользователя | main.profile | Выводит в публичную часть сайта информацию о пользователе.
Форма авторизации | system.auth.form | Выводит форму авторизации.
Форма подтверждения регистрации | system.auth.confirmation | Выводит форму подтверждения регистрации.
Системные компоненты (не описываются)
Форма авторизации | system.auth.authorize | Осуществляет вывод формы авторизации.
Форма смены пароля | system.auth.changepasswd | Осуществляет вывод форма смены пароля.
Форма отправки контрольного слова для смены пароля | system.auth.forgotpasswd | Осуществляет вывод форма отправки контрольного слова для смены пароля.
Форма регистрации | system.auth.registration | Осуществляет отображение формы регистрации.
Форма ввода настраиваемого пользовательского свойстства | system.field.edit | Осуществляет ввод настраиваемого пользовательского свойства.
Форма вывода настраиваемого пользовательского свойстсва system.field.view Осуществляет вывод настраиваемого пользовательского свойства. Чтобы не использовать API классов пользовательских полей для получения значений, можно использовать этот компонент:
$arUserFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("IBLOCK_30_SECTION", 144, LANGUAGE_ID);
foreach ($arUserFields as $FIELD_NAME => $arUserField):

$APPLICATION->IncludeComponent(
"bitrix:system.field.view",
$arUserField["USER_TYPE"]["USER_TYPE_ID"],
array("arUserField" => $arUserField), null, array("HIDE_ICONS"=>"Y"));

endforeach;

Где:
IBLOCK_30_SECTION - объект (группа инфоблока 30)
144 - ID группы.
Шаблон постраничной навигации | system.pagenavigation | шаблон постраничной навигации.
Форма вывода сообщения об ошибке | system.show_message | Осуществляет вывод сообщения об ошибке.
Компонент вывода формы | main.interface.form | Осуществляет вывод форм в рамках универсальных списков.
Компонент вывода таблицы | main.interface.grid | Осуществляет вывод таблиц в рамках универсальных списков.
Компонент вывода панели инструментов | main.interface.toolbar | Осуществляет вывод панели инструментов в рамках универсальных списков.
Компонент вывода кнопок меню | main.interface.buttons | Осуществляет вывод своего меню на странице [image].


Настройки

Список настроек

  • Позволять ли пользователям регистрироваться самостоятельно?
  • При регистрации добавлять в группу
  • Разрешить запоминание авторизации
  • Использовать защищенное хранение авторизации в cookies
  • E-Mail адрес или список адресов через запятую на который будут дублироваться все исходящие сообщения
  • Отправлять в письме идентификаторы почтового события и шаблона
  • Дублировать E-Mail адрес в заголовок
  • E-Mail администратора сайта (отправитель по умолчанию)
  • Конвертировать символы новой строки Unix формата в Windows формат при отправке email
  • Конвертировать 8-битные символы в заголовке письма
  • Название сайта
  • URL сайта (без http://). Например: www.mysite.com
  • Имя сервера, содержащего обновления
  • Имя префикса для названия cookies
  • Папка по умолчанию для загрузки файлов
  • Посылать в заголовке статус 200 на 404 ошибку
  • Тип меню для нулевого уровня карты сайта
  • Тип меню для остальных уровней карты сайта
  • Режим вывода ошибок (error_reporting)
  • Распространять авторизацию на все домены
  • Сохранять исходные имена загружаемых файлов
  • Автоматически заменять невалидные символы в именах загружаемых файлов
  • Закрытие публичной части

Детальное описание настроек

Заголовок: | Позволять ли пользователям регистрироваться самостоятельно?
Идентификатор: | new_user_registration
Описание: | Если данный параметр установлен (равен "Y"), то в стандартных компонентах /main/auth/authorize.php, /main/auth/authorize_registration.php будет доступна ссылка "Регистрация".
По умолчанию: | Y
Заголовок: | При регистрации добавлять в группу.
Идентификатор: | new_user_registration_def_group
Описание: | В данном параметре можно указать группы к которым будет автоматически приписываться новый пользователь при его регистрации (при вызове функций CUser::Register, CUser::SimpleRegister).
По умолчанию: | 2 (группа Everyone)
Заголовок: | Разрешить запоминание авторизации.
Идентификатор: | store_password
Описание: | Если данный параметр установлен (равен "Y"), то авторизация пользователя будет сохраняться в его cookie файлах, при установке флага "Запомнить меня на этом компьютере" в момент авторизации. Данный параметр также используется в стандартных компонентах /main/auth/authorize.php, /main/auth/auth_form.php, /main/auth/authorize_registration.php для показа/скрытия флага "Запомнить меня на этом компьютере".
По умолчанию: | Y
Заголовок: | Использовать защищенное хранение авторизации в cookies
Идентификатор: | use_secure_password_cookies
Описание: | Если параметр "Разрешить запоминание авторизации" установлен (равен "Y"), то данный параметр будет управлять типом cookie переменной в которой будет храниться информация необходимая для авторизации. Если значение данного параметра равно "Y", то cookie авторизации будут устанавливаться с флагом secure, это означает что пользователь сможет автоматически авторизовываться на сайте только если он заходит на него по защищенному протоколу HTTPS.
По умолчанию: | N
Заголовок: | E-Mail адрес или список адресов через запятую на который будут дублироваться все исходящие сообщения.
Идентификатор: | all_bcc
Описание: | E-Mail адрес или список адресов через запятую на который будут дублироваться все исходящие сообщения.
По умолчанию: |
Заголовок: Отправлять в письме идентификаторы почтового события и шаблона.
Идентификатор: send_mid
Описание: Если данный параметр установлен (равен "Y"), то к телу письма снизу будет добавлено:
MID: EVENT_ID.TEMPLATE_ID (DATE_EVENT)
Где:
  • EVENT_ID - ID почтового события
  • TEMPLATE_ID - ID почтового шаблона
  • DATE_EVENT - дата создания почтового события
По умолчанию: N
Заголовок: | Дублировать E-Mail адрес в заголовок.
Идентификатор: | fill_to_mail
Описание: | Если данный параметр установлен (равен "Y"), то заголовок письма будет дополнительно продублировано поле "To".
По умолчанию: | N
Заголовок: | E-Mail администратора сайта (отправитель по умолчанию)
Идентификатор: | email_from
Описание: | В данном параметре как правило хранят EMail администратора сайта. Этот EMail будет доступен при редактировании почтовых шаблонов в поле #DEFAULT_EMAIL_FROM#.
По умолчанию: | "admin@".$_SERVER["SERVER_NAME"]
Заголовок: | Конвертировать символы новой строки Unix формата в Windows формат при отправке email
Идентификатор: | CONVERT_UNIX_NEWLINE_2_WINDOWS
Описание: | Если значение данного параметра "Y", то в теле сообщения все символы "новая строка" (\n) будут заменены парой символов "перевод каретки"+"новая строка" (\r\n). Зачастую это необходимо в ситуации, когда сайт был собран изначально на Unix хостинге (где во всех почтовых шаблонах в теле сообщения новая строка обозначалась символом \n), а затем перенесен на Windows хостинг (где новая строка обозначается уже парой символов \r\n). А так как в соответствии со стандартом RFC 2822 (стандарт формирования почтовых сообщений) в теле сообщения недопустимо использование по отдельности символов \n (или \r), то при разборе сообщения почтовым сервером могут быть ошибки. Зачастую символ "новая строка" обозначают как LF (line feed), а символ "перевод каретки" обозначают как CR (carriage return).
По умолчанию: | N (не конвертировать)
Заголовок: | Конвертировать 8-битные символы в заголовке письма.
Идентификатор: | convert_mail_header
Описание: | В соответствии с стандартом RFC 2822 в заголовке письма (в полях "To", "From", "Subject", "CC", "BCC" и т.п.) допустимо использование только символов с кодами от 33 (100001) до 126 (1111110) (это латинские символы, цифры, знаки препинания), данные символы называют 7-битными. Символы, коды которых лежат выше данного диапазона (начиная с кода 128), называют 8-ми и более битными символами, их использование в заголовках писем по стандарту RFC 2822 недопустимо и многие почтовые сервера не поддерживают 8-битные символы в заголовках писем в соответствии с этим стандартом. Поэтому, если вы например, используете кириллические символы (русские) в заголовке своих писем, то вам необходимо установить данный параметр в значение "Y", что позволит сконвертировать 8-битные символы в формат "MIME base64", используемый для передачи бинарных данных в системах не поддерживающих 8-битные символы.
По умолчанию: | Y (конвертировать)
Заголовок: | Название сайта.
Идентификатор: | site_name
Описание: | В данном параметре можно задать значение по умолчанию для названия сайта (поле "Название сайта" в настройках сайта). Использует как правило в почтовых шаблонах в поле #SITE_NAME#.
По умолчанию: | равен значению стандартной PHP переменной $_SERVER["SITE_NAME"]
Заголовок: | URL сайта (без http://). Например: www.mysite.com
Идентификатор: | server_name
Описание: | В данном параметре можно задать значение по умолчанию для адреса сайта (поле "URL сервера" в настройках сайта). Использует как правило в почтовых шаблонах в поле #SERVER_NAME#.
По умолчанию: | равен значению стандартной PHP переменной $_SERVER["SERVER_NAME"]
Заголовок: | Имя сервера, содержащего обновления.
Идентификатор: | update_site
Описание: | URL сервера содержащего обновления.
По умолчанию: | www.bitrixsoft.ru
Заголовок: | Имя префикса для названия cookies
Идентификатор: | cookie_name
Описание: | Префикс имен cookie переменных устанавливаемых данным порталом.
По умолчанию: | BITRIX_SM
Заголовок: | Папка по умолчанию для загрузки файлов.
Идентификатор: | upload_dir
Описание: | Любой подкаталог каталога DocumentRoot в котором будут храниться все файлы загружаемые на сервер и сохраняемые функцией CFile::SaveFile. Данный параметр широко используется в функциях класса CFile. Под термином "загруженные файлы" понимаются как правило все файлы загружаемые через HTML формы, за исключением файлов которые могут быть загружены в любой каталог через меню "Структура сайта" -> "Управление" -> "Загрузить файл".
По умолчанию: | upload
Заголовок: | Посылать в заголовке статус 200 на 404 ошибку.
Идентификатор: | header_200
Описание: | Если данный параметр установлен (равен "Y"), то при возникновении 404 ошибки на сервере (страница не найдена) будет отсылаться статус 200 (страница найдена). Как правило данный параметр устанавливают для индексирующих роботов поисковых систем при создании каких либо сервисов на сайте на базе 404 ошибки. Например, для создания "красивых адресов" без параметров (например, /news/345.php), это также называют ЧПУ (человеко-понятные URL'ы).
По умолчанию: | Y
Заголовок: | Тип меню для нулевого уровня карты сайта.
Идентификатор: | map_top_menu_type
Описание: | Данный параметр используется стандартным компонентом /main/map/default.php выводящим карту сайта. В нем хранится тип меню с которого будет построен начальный уровень карты сайта.
По умолчанию: | top
Заголовок: | Тип меню для остальных уровней карты сайта.
Идентификатор: | map_left_menu_type
Описание: | Данный параметр используется стандартным компонентом /main/map/default.php выводящим карту сайта. В нем хранится тип меню с которого будет построены последующие уровни карты сайта (после начального уровня).
По умолчанию: | left
Заголовок: | Режим вывода ошибок (error_reporting)
Идентификатор: | error_reporting
Описание: | Данный параметр используется в служебной части пролога для установки уровня сообщений об ошибках (error) и предупреждениях (warning) PHP.
По умолчанию: | Только ошибки (E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR|E_PARSE)
Заголовок: | Распространять авторизацию на все домены.
Идентификатор: | auth_multisite
Описание: | Если данный параметр установлен (равен "Y"), то авторизация пользователя (хранимая в cookie или текущая сессионная) будет распространяться [image] на все домены всех сайтов портала.
По умолчанию: | N
Заголовок: | Сохранять исходные имена загружаемых файлов.
Идентификатор: | save_original_file_name
Описание: | Если данный параметр установлен (равен "Y"), то все имена всех загружаемых файлов будут сохранены в исходном виде. В противном случае, эти имена будут преобразованы в уникальные с помощью хэш функции MD5.
По умолчанию: | N
Заголовок: | Автоматически заменять невалидные символы в именах загружаемых файлов.
Идентификатор: | convert_original_file_name
Описание: | Если данный параметр установлен (равен "Y"), то в именах загружаемых файлов все невалидные символы не являющиеся символами латинского алфавита, цифрами, тире (-), подчеркиванием (_), точкой (.) будут преобразованы в произвольные валидные символы.
По умолчанию: | Y
Заголовок: | Закрытие публичной части
Идентификатор: | site_stopped
Описание: | Позволяет закрыть публичную часть сайта. Возможные значения: "Y" (публичная часть закрыта) и "N" (публичная часть открыта).
По умолчанию: | N


Главный модуль в ядре D7

Список классов

Список классов Главного модуля в ядре D7

Класс, пространство имён | Описание
Application | Базовый класс для любых приложений.
Authentication | Пространство имён для классов аутентификации пользователей.
Context | Класс для работы с контекстом
Config | Пространство имён для классов настроек.
Data | Пространство имён классов для работы с кешем, в том числе с управляемым.
DB | Пространства имён для классов, работающих с Базой данных
Diag | Пространства имён для классов диагностики.
Entity | Пространство имён для работы с сущностями.
Environment | Класс работы с окружением.
EventManager | Класс кратко- и долгосрочной регистрации обработчиков событий.
FinderDestTable | класс для работы с таблицей сущностей, выбираемые в диалоге выбора, в списке Последние.
Grid | Пространство имён для работы с гридом (табличным элементом управления).
GroupTaskTable | класс описывает ORM-сущность GroupTaskTable.
HttpApplication | класс отвечает за обычный http-хит на сайте.
HttpRequest | Класс управляет объектом HTTP запросов, содержащим информацию о текущем запросе.
IO | Объектно-ориентированная работа с файлами.
Loader | класс для загрузки необходимых файлов, классов и модулей.
Localization | Пространство имён для работы с языковыми файлами.
Mail | Описание пространства имён.
Page | Пространство имён для классов, работающих со страницей продукта.
Replica | Пространство имён для классов репликации главного модуля.
Request | Класс для работы с объектом запроса.
Result | Класс результата выполнения запроса.
Security | Пространство имён для классов, отвечающих за безопасность.
Server | Класс объектов сервера.
Service | Пространство имён для классов интеграций с различными сервисами.
Text | пространство имён для работы с текстом: классы для конвертации текста и другие.
Type | Пространство имён для работы с типами данных: дата, файл и другие.
UI | Пространство имён пользовательских интерфейсов.
UrlPreview | Пространство имён для работы с "богатыми ссылками".
UrlRewriterRuleMaker | Класс для работы с правилами переадресации.
UserConsent | Пространство имён для работы с соглашениями пользователей.
UserField | Пространство имён для классов и событий Пользовательских полей.
UserTable | Класс для работы с пользователями.
UserUtils | Класс утилит для работы с пользователями.
Web | Пространство имён для классов, работающих с WEB.
XmlWriter | класс для экспорта в XML.

Классы для работы с ошибками

Класс, пространство имён | Описание
Error | Класс ошибок.
ErrorCollection | Коллекция ошибок.

Классы для работы с исключениями

Класс, пространство имён | Описание
SystemException | Базовый класс фатальных исключений.
ArgumentException | Исключение выводится когда аргумент функции не валидный
ArgumentNullException | Исключение выводится когда передаётся пустое значение в метод который не принимает такого значения как валидное.
ArgumentOutOfRangeException | Исключение выводится когда значение аргумента находится вне допустимого диапазона значений.
ArgumentTypeException | Исключение выводится, когда тип аргумента не принимается функцией.
ObjectNotFoundException | Исключение выводится когда отсутствует объект.
ObjectException | Исключение выводится, когда объект не может быть создан.
ObjectPropertyException | Исключение выводится когда свойство объекта не валидно.
InvalidOperationException | Исключение выводится когда вызываемый метод не является валидным для текущего состояния объекта.
NotSupportedException | Исключение выводится когда операция не поддерживается.
NotImplementedException | Исключение выводится, когда операция не осуществлена, хотя должна была быть выполнена.


Введение

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

  • Список терминов [image] - определения основных терминов используемых в системе;
  • Структура файлов [image] - описание структуры файлов системы
  • Права доступа [image] - описание идеологии распределения прав доступа
  • Специальные константы - специальные константы используемые в системе
  • Специальные переменные - специальные переменные используемые в системе
  • Работа с датой и временем - примеры основных операций связанных в датой и временем
  • Навигационная цепочка [image] - описание принципов работы с навигационной цепочкой
  • Меню [image] - описание принципов работы с меню
  • Технологии - описание основных технологий реализованных в системе
  • Модули [image] - описание принципов модульности и основных вопросов связанных с разработкой собственного модуля
  • Сайты [image] - принципы многосайтовости
  • Языки - перевод скриптов системы на другие языки
  • Страницы [image] - структура страницы
  • Компоненты [image] - описание принципов работы с компонентами


Технологии

Bitrix Framework использует следующие технологии:

  • Агенты [image] - технология позволяющая запускать PHP функции с заданной периодичностью.
  • Почтовая система - позволяет отправлять E-Mail письма с использованием заранее заданных почтовых шаблонов.
  • Кеширование [image] - позволяет кешировать ресурсоемкие куски кода, при этом заметно увеличивая производительность сайта.
  • Отложенные функции [image] - технология позволяющая задавать некоторые элементы страницы (заголовок, дополнительные пункты навигационной цепочки, мета-тэги, кнопки в панель управления, CSS стили) непосредственно в теле страницы.
  • Перенос посетителей [image] - технология позволяющая синхронизировать по мере возможности набор cookie для разных сайтов, имеющих разные доменные имена и принадлежащие одному порталу.
  • Панель управления и интерфейс Эрмитаж - технология позволяющая облегчить администрирование сайта.
  • Обработка событий [image] - технология изменения выполнения какой-нибудь API функции с помощью событий.
  • Внешняя авторизация [image] - технология использования собственных алгоритмов проверки и(или) внешние БД для хранения пользователей.
  • Многосайтовость [image] - технология создания нескольких сайтов на одной установке Bitrix Framework.


Модули

Описание

Bitrix Framework имеет модульную структуру [image]. Каждый модуль отвечает за управление определенными элементами и параметрами сайта: информационным наполнением и структурой сайта, форумами, рекламой, рассылкой, распределением прав между группами пользователей, сбором статистики посещений, оценкой эффективности рекламных кампаний и т.д.

При необходимости у разработчика есть возможность:

  • модифицировать [image] штатный модуль (не рекомендуется);
  • создать собственный модуль [image];
  • создать типовое решение [image].

Таблица идентификаторов стандартных модулей

Примечание. Модули указаны на текущий момент и могут не соответствовать старым версиям.

Если у модуля не предусмотрено API или оно не описано, то ссылки ведут на пользовательскую документацию, документацию D7, учебные курсы или на статьи Поддержки24.

Идентификатор | Название | Продукт | Функционал
1С | Интеграция с 1С | БУС, Битрикс24 | Модуль управления интеграцией с 1С.
abtest | А/В тестирование | БУС, Битрикс24 | Модуль для сравнения конверсии двух вариантов страницы.
ldap | AD/LDAP интеграция | БУС, Битрикс24 | Модуль для работы с Active Directory и LDAP.
advertising | Реклама, баннеры | БУС, Битрикс24 | Модуль управления рекламой на сайте.
b24connector | Интеграция с Битрикс24 | БУС, Битрикс24 | Модуль для подключения Битрикс Управление Сайтом к Битрикс24.
bitrixcloud | Облако 1С-Битрикс | БУС, Битрикс24 | Модуль управления резервным копированием в облаке 1С-Битрикс и CDN.
bizproc | Бизнес процессы | БУС, Битрикс24 | Модуль для создания бизнес-процессов и работы с ними.
bizprocdesigner | Дизайнер бизнес-процессов | БУС, Битрикс24 | Модуль для проектирования, создания и изменения бизнес-процессов.
blog | Блоги | БУС, Битрикс24 | Модуль дает возможность ведения блогов на сайте.
calendar | Календарь событий | Битрикс24 | Календарь событий.
catalog | Торговый каталог | БУС, Битрикс24 | Модуль торгового каталога позволяет создавать торговые каталоги товаров и услуг с ценами, наценками и импортом/экспортом данных.
cluster | Веб-кластер | БУС, Битрикс24 | Модуль поддержки веб-кластера.
clouds | Облачные хранилища | БУС, Битрикс24 | Модуль поддержки облачных хранилищ файлов.
compression | Компрессия | БУС, Битрикс24 | Модуль компрессирующий страницы сайта для ускорения их загрузки. Исключён из продукта с версии 19.0.0
controller | Контроллер | БУС, Битрикс24 | Удаленное управление сайтами.
conversion | Конверсия | БУС, Битрикс24 | Вычисление конверсии для любого выбранного целевого действия.
crm | CRM | Битрикс24 | Модуль дает возможность создания CRM.
currency | Валюты | БУС, Битрикс24 | Модуль управления валютами позволяет управлять валютами сайта и их курсами.
DAV | dav | Битрикс24 | Модуль поддержки доступа к объектам и коллекциям
desktop | Десктопное приложение | Битрикс24 | Десктопное приложение
disk | Диск | Битрикс24 | Модуль работы с файлами
documentgenerator | Генератор документов | Битрикс24 | Модуль для генерации документов
extranet | Экстранет | Битрикс24 | Модуль, поддерживающий работу сотрудников компании с внешними партнерами.
faceid | Распознавание лиц | Битрикс24 | Модуль распознавание лиц для Битрикс24.
fileman | Управление структурой | БУС, Битрикс24 | Модуль для управления информационным наполнением и структурой сайта (ов), меню и правами доступа.
form | Веб-формы | БУС, Битрикс24 | Модуль организует работу с произвольными веб-формами, позволяет хранить и фильтровать данные заполненных форм.
forum | Форум | БУС, Битрикс24 | Модуль для создания форумов.
highloadblock | Highload-блоки | БУС, Битрикс24 | Быстрые справочники, без поддержки иерархии, с ограниченной поддержкой свойств.
iblock | Информационные блоки | БУС, Битрикс24 | Модуль работы с информационными блоками позволяет управлять и каталогизировать информацию различного характера - новости, вакансии, список продуктов.
idea | Менеджер идей | БУС, Битрикс24 | Менеджер идей
im | Веб-мессенджер | БУС, Битрикс24 | Модуль мгновенных сообщений и уведомлений.
imbot | Чат-боты Битрикс24 | Битрикс24 | Модуль чат-боты для Битрикс24.
imconnector | Коннекторы для внешних мессенджеров | Битрикс24 | Модуль позволяет организовать работу с внешними мессенджерами.
imopenlines | Открытые линии | Битрикс24 | Модуль открытые линии.
intranet | Интранет | Битрикс24 | Интранет - корпоративный портал
ldap | AD/LDAP | БУС, Битрикс24 | Модуль для работы с Active Directory и LDAP.
learning | Обучение | БУС, Битрикс24 | Модуль дистанционного обучения.
lists | Универсальные списки | БУС, Битрикс24 | Модуль для организации работы с различной информацией из публичной части сайта.
location | Адреса и Местоположения | БУС, Битрикс24 | Модуль для работы с адресами и местоположениями.
landing | Сайты 24 | БУС, Битрикс24 | Модуль для организации работы с различной информацией из публичной части сайта.
mail | Почта | БУС, Битрикс24 | Почтовый модуль, для получения почты, фильтрации писем и выполнения заданных действий.
main | Главный модуль | БУС, Битрикс24 | Ядро продукта с технологией SiteUpdate.
messageservice | Служба сообщений | БУС, Битрикс24 | Модуль осуществляет отправку текстовых и иных сообщений.
meeting | Планерки и собрания | Битрикс24 | Модуль для организации и проведения планерок и собраний.
mobile | Мобильное приложение | Битрикс24 | Мобильное приложение для портала.
mobileapp | Мобильная платформа | Битрикс24 | Модуль позволяет создавать мобильные приложения.
ml | Машинное обучение | Битрикс24 | Модуль позволяет обучать и использовать модели машинного обучения.
perfmon | Монитор производительности | БУС, Битрикс24 | Модуль мониторинга параметров производительности сайта.
photogallery | Фотогалерея 2.0 | БУС, Битрикс24 | Модуль позволяет организовать на сайте фотогалереи с массовой загрузкой изображений.
pull | Push and Pull | БУС, Битрикс24 | Модуль позволяет организовать транспорт мгновенных нотификаций и сообщений клиентам.
recyclebin | Корзина удаленных сущностей | Битрикс24 | Модуль управления корзиной удаленных сущностей (задач и шаблонов).
report | Конструктор отчетов | БУС, Битрикс24 | Создание и генерация отчетов
rest | REST API | БУС, Битрикс24 | Программный интерфейс для внешних и внутренних приложений
rpa | Роботизация бизнеса | Битрикс24 | Модуль для организации роботизации бизнеса (RPA)
sale | Интернет-магазин | БУС, Битрикс24 | Позволяет осуществлять продажи товаров посетителям сайта.
salescenter | Продажи в чате | Битрикс24 | Модуль для организации удобных продаж в мессенджерах.
scale | Масштабирование | БУС, Битрикс24 | Инструментах масштабирования сервера до отказоустойчивой кластерной системы.
search | Поиск | БУС, Битрикс24 | Поисковый модуль, осуществляющий индексирование и поиск на сайте.
security | Проактивная защита | БУС, Битрикс24 | Модуль проактивной защиты сайта.
seo | Поисковая оптимизация | БУС, Битрикс24 | Статистика и инструменты для поисковой оптимизиции сайта.
sender | Email-маркетинг | БУС, Битрикс24 | Модуль для организации работы Email-маркетинга.
socialnetwork | Социальная сеть | БУС, Битрикс24 | Модуль дает возможность создания социальной сети на сайте.
socialservices | Социальные сервисы | БУС, Битрикс24 | Интеграция с внешними социальными сетями и сервисами.
statistic | Веб-аналитика | БУС, Битрикс24 | Модуль сбора и отображения статистики сайта.
storeassist | Мастер магазина | БУС, Битрикс24 | Помощник настройки интернет-магазина
subscribe | Подписка, рассылки | БУС, Битрикс24 | Модуль для организации списков рассылки.
support | Техподдержка | БУС, Битрикс24 | Модуль позволяющий организовать на сайте систему обращений посетителей к группе техподдержки.
tasks | Задачи | Битрикс24 | Модуль управления задачами
timeman | Учет рабочего времени | Битрикс24 | Модуль учета и контроля рабочего времени
translate | Перевод | БУС, Битрикс24 | Модуль перевода языковых файлов.
transformer | Конвертер файлов | Битрикс24 | Модуль выполняет отправку файлов на конвертацию.
transformercontroller | Сервер конвертации файлов | Битрикс24 | Модуль для выполнения конвертации файлов.
video | Видеоконференции | Битрикс24 | Модуль предоставляет возможность проведения видеоконференций. Исключён из продукта с версии 16.0.0
vote | Опросы, голосования | БУС, Битрикс24 | Модуль позволяющий организовать систему опросов и голосований посетителей сайта.
voximplant | Телефония | Битрикс24 | Реализация телефонных звонков.
webdav | Библиотека документов | Битрикс24 | Библиотека документов
webservice | Веб-сервисы | БУС, Битрикс24 | Модуль позволяющий организовать систему веб-сервисов и SOAP.
wiki | Wiki | БУС, Битрикс24 | Модуль дает возможность ведения wiki-страниц на сайте.
workflow | Документооборот | БУС, Битрикс24 | Модуль позволяющий организовать поэтапную обработку документов сайта.
xdimport | Импорт данных из внешних источников | Битрикс24 | Инструменты для импорта данных в систему из внешних источников.
xmpp | XMPP сервер | Битрикс24 | Модуль позволяет использовать Jabber-клиенты для общения внутри корпоративного портала.
ui | UI-библиотека | БУС, Битрикс24 | Библиотека пользовательских интерфейсов.


Компоненты

Компонент - это логически завершённый код, предназначенный для извлечения информации из инфоблоков и других источников и преобразования её в HTML-код для отображения в виде фрагментов web-страниц. Состоит из собственно компонента (контроллер) и шаблона (представление). Компонент, с помощью API одного или нескольких модулей, манипулирует данными. Шаблон компонента выводит данные на страницу.

Компоненты - это основной инструмент разработчика при работе с проектами, созданными на Bitrix Framework. От умения владеть этим инструментом во многом зависит профессионализм разработчика.

Список компонентов, относящихся к модулю размещён в таблице на индексной странице главы каждого модуля. Само описание компонента, код его вызова и описание параметров размещено в Пользовательской документации [image] к продукту.

Полная информация о кастомизации компонентов и шаблонов компонентов, а так же о создании собственных компонентов, размещена в главе Компоненты [image] курса Разработчик Bitrix Framework.


Административная панель и интерфейс Эрмитаж

Описание

Административная панель управления - HTML-код, который может быть выведен авторизованному пользователю при наличии у него достаточных прав на операции, представленные на панели управления. HTML-код представляет из себя область с кнопками, в самом верху страницы, каждая из которых предназначена для той или иной операции.

Текущая версия Административной панели представлена в учебных курсах Контент-менеджер [image], Администратор. Базовый [image] и Разработчик Bitrix Framework

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

Эволюционируя, Панель управления не раз меняла свой внешний вид и функционал. Так как возможно использование сайтов на прежних версиях "1С-Битрикс: Управление сайтом", то описания старых Панелей управления сохраняются в курсе Интерфейс до версии 9.5 [image].

Смотрите также

  • CMain::ShowPanel
  • CMain::AddPanelButton
  • CMain::IncludeFile
  • CMain::IncludeString
  • CMain::GetShowIncludeAreas


Сайт и шаблон сайта

Сайт

Сайт - это совокупность таких понятий как:

  • учетная запись в базе данных - создаётся в административном меню "Сайты", включает в себя следующие основные параметры:
    • идентификатор - набор символов идентифицирующий сайт
    • доменное имя - одно или более доменное имя сайта
    • папка сайта - путь к каталогу в котором будет храниться публичная часть сайта
    • язык сайта
    • формат даты
    • формат времени
    • URL - протокол и доменное имя по умолчанию (например, "http://www.site.ru")
    • DocumentRoot - если многосайтовость организована как многосайтовость на разных доменах [image], то в данном параметре должен храниться путь в файловой системе сервера к корню сайта
    • условия подключения шаблонов - каждый сайт может иметь один или более шаблонов для отображения скриптов своей публичной части, каждый такой шаблон может быть подключен по тому или иному условию
  • публичная часть - совокупность скриптов (страниц) лежащих в "папке сайта" и принадлежащих этому сайту
  • настройки - каждый модуль может иметь ряд настроек связанных с сайтом, например, у модуля "Информационные блоки" эти настройки представляют из себя привязку информационного блока к тому или иному сайту, у модуля "Техподдержка" - привязку статуса, категории и т.п. к сайту.

В публичной части ID текущего сайта хранится в константе SITE_ID [image].

Шаблон сайта

Синонимы термина шаблон сайта: дизайн сайта, скин сайта. Для показа одного сайта можно использовать несколько различных шаблонов. В шаблон сайта входят:

  • набор файлов в каталоге /bitrix/templates/ID шаблона сайта/
    где ID шаблона сайта - поле "ID" в форме редактирования шаблона сайта (административный пункт меню "Шаблоны сайта"); ниже представлена структура данного каталога:
    • header.php - пролог данного шаблона
    • footer.php - эпилог данного шаблона
    • styles.css - CSS стили шаблона
    • .тип меню.menu_template.php - шаблон вывода меню соответствующего типа
    • chain_template.php - шаблон по умолчанию для вывода навигационной цепочки
    • /components/ - каталог с компонентами принадлежащими тому или иному [link=89613]модулю[/link]
    • /lang/ - языковые файлы, принадлежащие как данному шаблону в целом, так и отдельным компонентам
    • /images/ - каталог с изображениями данного шаблона сайта
    • /page_templates/ - каталог с шаблонами страниц и их описанием хранящимся в файле .content.php
    • а также ряд других вспомогательных произвольных файлов входящих в данный шаблон

Применить тот или иной шаблон к сайту можно в форме настроек сайта [image], раздел Шаблоны. Возможно использование разных условий применения того или иного шаблона.

Если свойство раздела "phone" равно "Y"

$APPLICATION->GetDirProperty("phone")=="Y"

Если текущий раздел равен "/ru/catalog/phone/"

$APPLICATION->GetCurDir()=="/ru/catalog/phone/"

Если текущий пользователь - администратор

$USER->IsAdmin()

Примечание. Возможно подключение пролога/эпилога на странице без использования шаблона:

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");

Между этими подключениями можно ввести свой код.

Смотрите также

  • Сайт в понятии Bitrix Framework [image] в курсе Разработчик Bitrix Framework
  • Интеграция дизайна [image] в курсе Разработчик Bitrix Framework
  • Как создать простой сайт [image] в курсе Разработчик Bitrix Framework
  • Многосайтовость [image] - способы организации многосайтовости


Страница и порядок её выполнения

Страница представляет из себя PHP файл, состоящий из пролога, тела страницы (основной рабочей области) и эпилога:

  • header (/bitrix/header.php )
  • workarea
  • footer (/bitrix/footer.php)

Страница [image] имеет определённую структуру, свойства и параметры. Она может использовать свои собственные шаблоны.

Порядок выполнения страницы:

№ | Операция | Определяемые константы и переменные | Примечание
1. Служебная часть пролога (/bitrix/modules/main/include/prolog_before.php)
1.1 | Подключение /bitrix/php_interface/dbconn.php |  | Подключаемый файл должен содержать определения переменных для соединения с базой данных, констант для отладки и прав доступа. Файл с настройками ядра D7 подключается при первом запросе конфигурации.
1.2 | Соединение с базой данных | $DB | В случае ошибки соединения будет подключен файл /bitrix/php_interface/dbconn_error.php.
1.3 | Подключение /bitrix/php_interface/after_connect.php |  | Подключаемый файл может содержать операции, необходимые для выполнения сразу после соединения с БД.
1.4 | Определение текущего сайта | $APPLICATION, SITE_ID, SITE_DIR, SITE_SERVER_NAME, SITE_CHARSET, FORMAT_DATE, FORMAT_DATETIME, LANGUAGE_ID, Определяются все классы и функции Главного модуля. | Если к этому моменту определена константа с кодом сайта SITE_ID , то сайт не будет определяться по текущей папке и доменному имени, а все остальные константы будут определены для этого сайта.
1.5 | Подключение /bitrix/php_interface/init.php |  | Может содержать в себе инициализацию обработчиков событий, подключение дополнительных функций - общие для всех сайтов.
1.6 | Подключение /bitrix/php_interface/ID сайта/init.php |  | Содержит параметры, определения функций для конкретного сайта.
1.7 | Открытие сессии | Все сессионные переменные $_SESSION |
1.8 | Событие OnPageStart |  |
1.9 | Определение пользователя, авторизация пользователя, завершение сеанса, регистрация (в зависимости от параметров в запросе) | $USER |
1.10 | Определение текущего шаблона сайта | SITE_TEMPLATE_ID |
1.11 | Событие OnBeforeProlog |  |
1.12 | Проверка прав доступа уровня 1 |  | В случае если прав недостаточно, то выводится форма авторизации и страница завершает выполнение.
1.13 | Начало буфферизации вывода |  | После начала буферизации можно делать вывод, до установки куков и наоборот, устанавливать куки после вывода в поток.
1.14 | Событие OnProlog |  |
2. Визуальная часть пролога (/bitrix/modules/main/include/prolog_after.php)
2.1 | Подключение /bitrix/templates/ID шаблона сайта/header.php |  |
3. Тело страницы
4. Визуальная часть эпилога (/bitrix/modules/main/include/epilog_before.php)
4.1 | Подключение /bitrix/templates/ID шаблона сайта/footer.php |  |
4.2 | Вызов функции CMain::ShowSpreadCookieHTML |  | Данная функция выводит набор невидимых IFRAME'ов используемых в Технология переноса посетителей
5. Служебная часть эпилога (/bitrix/modules/main/include/epilog_after.php)
5.1 | Событие OnEpilog |  |
5.2 | Завершение буферизации страницы |  | Завершение и вывод в поток буффера инициализированного в п. 1.14
5.3 | Событие OnAfterEpilog |  |
5.4 | Проверка агентов |  |
5.5 | Отправка E-Mail писем |  | Подробнее о E-Mail письмах можно прочитать в разделе "Почтовая система"
5.6 | Завершение соединения с базой данных | Переменная $DB больше недоступна |

См. также

  • Структура страницы


Обработка адресов

Понятие обработки адресов

Обработка адресов (UrlRewrite) применяется для того, чтобы скрипт мог отвечать не только по своему физическому, но и по любому другому указаному адресу. Например, можно задать настройки обработки адресов, чтобы скрипт в файле /fld/c.php, отвечающий по адресу

/fld/c.php?id=15

отвечал также по адресу

/catalog/15.php

Адрес, по которому будет отвечать скрипт, не должен физически существовать на сервере. Если такой адрес физически существует, то будет вызван скрипт по этому адресу. Система обработки адресов запущена в этом случае не будет.

Правила обработки

Правила обработки адресов настраиваются отдельно для каждого сайта и хранятся в корне сайта в файле urlrewrite.php. Файл содержит массив $arUrlRewrite, каждая запись которого является правилом обработки адреса. Файл urlrewrite.php имеет следующий вид:

<?
$arUrlRewrite = array(
    array(
        "CONDITION" => "#^/gallery/#",
        "RULE" => "",
        "ID" => "bitrix:photo",
        "PATH" => "/max/images/index.php",
    ),
    array(
        "CONDITION" => "#^/forum/#",
        "ID" => "bitrix:forum",
        "PATH" => "/forum/index.php",
    ),
    array(
        "CONDITION" => "#^/index/([0-9]+)/([0-9]+)/#",
        "RULE" => "mode=read&CID=$1&GID=$2",
        "ID" => "bitrix:catalog.section",
        "PATH" => "/newforum/index.php",
    ),
    array(
        "CONDITION" => "#(.+?)\\.html(.*)#",
        "RULE" => "$1.php$2",
    ),
);
?>

Каждое правило должно содержать уникальное в рамках сайта условие выполнения правила. Условие выполнения записывается в ключ "CONDITION" массива и является шаблоном Perl-совместимого регулярного выражения. Например, условие:

"CONDITION" => "#^/index/([0-9]+)/([0-9]+)/#"

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

/index/<число>/<число>/

Правило может содержать адрес физически существующего скрипта, который будет подключен при выполнении условия. Этот адрес записывается в ключ "PATH". Например, если в системе обработки адресов зарегистрировано правило:

array(
    "CONDITION" => "#^/gallery/#",
    "PATH" => "/max/images/index.php",
)

и пользователь запросил страницу:

/gallery/38.php

которая физически не существует, то система обработки адресов подключит скрипт:

/max/images/index.php

Правило может содержать правило замены, которое записывается в ключ "RULE". Если правило замены установлено, то адрес реально существующего подключаемого скрипта формируется заменой регулярным варажением условия выполнения (шаблона выражения) на конкатенацию физического пути (ключ "PATH") и правила замены (ключ "RULE"). Например, если в системе обработки адресов зарегистрировано правило:

array(
    "CONDITION" => "#^/index/([0-9]+)/([0-9]+)/#",
    "RULE" => "mode=read&CID=$1&GID=$2",
    "PATH" => "/newforum/index.php",
)

и пользователем запрошена страница:

/index/5/48/

то для формирования адреса скрипта, который будет подключен, выполнится код:

$url = preg_replace("#^/index/([0-9]+)/([0-9]+)/#", "/newforum/index.php?mode=read&CID=$1&GID=$2", "/index/5/48/");

и будет подключен скрипт:

/newforum/index.php?mode=read&CID=5&GID=48

Если в системе обработки адресов зарегистрировано правило:

array(
    "CONDITION" => "#(.+?)\\.html(.*)#",
    "RULE" => "$1.php$2",
)

и пользователем запрошена страница:

/about/company.html?show

то для формирования адреса скрипта, который будет подключен, выполнится код:

$url = preg_replace("#(.+?)\\.html(.*)#", "$1.php$2", "/about/company.html?show");

и будет подключен скрипт:

/about/company.php?show

Правило может содержать имя компонента, который создал это правило. Это имя записывается в ключ "ID". При автоматическом пересоздании файла правил urlrewrite.php с помощью средств административной части сайта пересоздаются только правила, у которых заполнен ключ "ID". Эти правила пересоздаются на основании анализа физических файлов в папке сайта. Правила с пустым ключом "ID" при автоматическом пересоздании файла правил не изменяются.

Подключение системы обработки адресов

Перед началом использования система обработки адресов должна быть подключена на сайте. Для этого необходимо:

  • если у вас на веб-сервере настроена обработка ошибки 404 (например, для Apache установлена директива ErrorDocument 404 /404.php), то вы должны изменить файл /404.php, вставив в самое начало файла команду:
    include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/urlrewrite.php');
  • если вы для Apache используете модуль mod_rewrite, то в его настройках вы можете указать (например, как в штатной установке в файле .htaccess):
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
    RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
</IfModule>

Примеры правил и условий для модуля mod_rewrite

  • Настройка переадресации (301 редирект) на папки со слешем ( / ) в конце:
    RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://[имя_вашего_сайта]/$1/ [L,R=301]
  • Переадресация (301 редирект) с индексной страницы index.php на саму папку (корень) для всех страниц сайта:
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^(.*)index\.php$ http://[имя_вашего_сайта]/$1 [R=301,L]

Поддержка компонентов 2.0

При добавлении на страницу компонента с поддержкой ЧПУ ("человеко-понятный URL") (если файл сохраняется с помощью API), автоматически создаётся правило обработки адреса. Если страница создаётся не с помощью API, а, например, записывается через FTP, то необходимо выполнить пересоздание правил (кнопка на панели инструментов на странице настройки правил обработки адресов).

Поддержка ЧПУ включается в компоненте с помощью предопределённого входного параметра SEF_MODE. При этом в предопределённом входном параметре SEF_FOLDER устанавливается папка, в которой работает компонент. Папка может быть виртуальной (т.е. физически может не существовать). При сохранении страницы с размещённым на ней компонентом, переключенным в режим ЧПУ (параметр SEF_MODE равен Y), через стандартный интерфейс правило обработки адресов создаётся следующим образом: в ключ условия применения шаблона ("CONDITION") записывается регулярное выражение, полученое из папки в параметре SEF_FOLDER, в ключ "ID" записывается имя компонента, в ключ пути ("PATH") записывается физический адрес страницы.

Например, пусть компонент "bitrix:catalog" размещён на странице /fld/c.php и его подключение выглядит следующим образом:

$APPLICATION->IncludeComponent(
    "bitrix:catalog",
    "",
    Array(
        "SEF_MODE" => "Y",
        "SEF_FOLDER" => "/mycatalog/",
        "IBLOCK_TYPE_ID" => "catalog",
        "BASKET_PAGE_TEMPLATE" => "/personal/basket.php",
    )
);

Тогда при сохранении страницы /fld/c.php в системе обработки адресов добавится запись:

array(
    "CONDITION" => "#^/mycatalog/#",
    "RULE" => "",
    "ID" => "bitrix:catalog",
    "PATH" => "/fld/c.php",
)

Таким образом, при запросе адресов, начинающихся со строки /mycatalog/, будет подключаться скрипт /fld/c.php. В этом скрипте запрошенный адрес может быть проанализирован и выполнены требуемые действия.

Смотрите также

  • ЧПУ [image] в курсе Администратор Базовый.
  • Настройка ЧПУ [image] в курсе Разработчик Bitrix Framework.
  • Работа комплексного компонента в SEF режиме [image] в курсе Разработчик Bitrix Framework.


Сложная логика в фильтре

Использование запросов

В некоторых полях фильтров (в основном, текстовых или символьных) можно вводить запросы.

Запрос представляет из себя логическое выражение. Например, выборка пользователей по полю ФИО пользователя. Если ввести

Пётр & Иванов

то отфильтруются все пользователи, у которых в поле ФИО встречаются оба эти слова, либо полностью, либо частично. Такого же результата можно добиться, написав эти слова через пробел: Пётр Иванов.

Если нужно отфильтровать всех пользователей, у которых в поле ФИО встречается Пётр или Иванов, необходимо ввести запрос:

Пётр | Иванов

Когда необходимо использовать отрицание, предусмотрен логический оператор "~". Например:

(Пётр | Иванов) & ~Сидоров.

Данный запрос означает: вывести всех пользователей, у которых в поле ФИО встречаются сочетания букв Пётр или Иванов и в то же время не встречаются Сидоров.

В последнем запросе были использованы круглые скобки. Это обусловлено тем, что оператор "|" имеет более низкий приоритет, чем оператор "&" (см. таблицу Приоритеты логических операторов). В противном случае, если бы мы не указали круглых скобок, запрос Пётр | Иванов & ~Сидоров имел бы следующее значение: вывести всех пользователей, у которых в поле ФИО встречаются сочетания букв Иванов и не встречаются Сидоров, либо всех пользователей, у которых в поле ФИО встречается Пётр.

Вы можете использовать скобки и для построения более сложных запросов.

Помимо вышеописанных операторов, возможно использование операторов для задания масок. Например, вы не помните ФИО нужного вам человека, но точно знаете что фамилия начинается на "Пе" и заканчивается на "ова", при этом имя этого человека "Ирина" либо "Ирэна". Для описания данных условий необходимо использовать следующий запрос: Пе%ова & Ир_на. В данном запросе были использованы два оператора: "%", означающий "ноль, либо более любых символов" и оператор "_", означающий "один любой символ".

В случае, если вам необходимо использовать поиск слов, содержащих зарезервированные символы, воспользуйтесь двойными либо одинарными кавычками, например: "~NICK~" | '&Leon&'. Если вам необходимо найти фразу содержащую пробелы, выделите ее двойными либо одинарными кавычками, например: "Microsoft Internet Explorer" | 'Netscape Navigator'.

Во всех выражениях запроса регистр символов значения не имеет.

Операторы, используемые в запросах

Оператор | Описание
& | Логический оператор "и" можно опускать: запрос Пётр & Иванов полностью эквивалентен запросу Пётр Иванов.
| | Логический оператор "или" позволяет искать записи, содержащие хотя бы один из операндов.
~ | Логический оператор "не" позволяет искать записи, не содержащие слово, указанное сразу после оператора, либо означает отрицание выражения, следующего сразу за этим оператором.
( ) | Круглые скобки задают порядок действия логических операторов.
% | Оператор задания маски. Означает "0 или более любых символов".
_ | Оператор задания маски. Означает "1 любой символ".

Приоритеты логических операторов

Оператор | Приоритет
~ | 1
& | 2
| | 3


Работа с датой и временем

Описание

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

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

  • CDatabase::CharToDateFunction
  • CDatabase::DateToCharFunction
  • CDatabase::CurrentDateFunction
  • CDatabase::CurrentTimeFunction
  • CDataBase::DateFormatToPHP
  • CDataBase::DatetimeToTimestampFunction
  • CDataBase::FormatDate
  • ConvertDateTime
  • MakeTimeStamp
  • ConvertTimeStamp
  • CDataBase::IsDate
  • CDataBase::CompareDates
  • AddToTimeStamp
  • ParseDateTime
  • getmicrotime
  • GetTimeFormat
  • GetDateFormat

При задании формата даты и времени используются следующие обозначения:

  • YYYY - год
  • MM - месяц
  • DD - день
  • HH - часы
  • MI - минуты
  • SS - секунды

С версии 11.5.4 главного модуля включена поддержка 12-часового формата времени и некоторые новые отображения месяца:

  • MMMM - полный месяц (использовать только для вывода);
  • M - первые 3 буквы месяца;
  • G - час от 1-12 (без ведущего нуля);
  • GG - 0-23 (без ведущего нуля);
  • H - 01-12;
  • HH - 00-23;
  • TT - отображением AM/PM (верхний регистр);
  • T - am/pm.

Методы, используемые в SQL запросах

  • CDatabase::CharToDateFunction - возвращает SQL код для преобразования строки во время формата базы данных.

    <?
$strSql = "
    SELECT
        ID
    FROM
        my_table
    WHERE
        DATE_CREATE <= ".$DB->CharToDateFunction("10.01.2003 23:59:59")."
    ";
$rs = $DB->Query($strSql, false, $err_mess.__LINE__);
?>

  • CDatabase::DateToCharFunction - возвращает SQL код для преобразования время из формата базы данных в строку.

    <?
$strSql = "
    SELECT
        ID,
        ".$DB->DateToCharFunction("DATE_CREATE")." DATE_CREATE
    FROM
        my_table
    ";
$rs = $DB->Query($strSql, false, $err_mess.__LINE__);
?>

  • CDatabase::CurrentDateFunction - возвращает SQL код для получения текущей даты.

    <?
$strSql = "
    SELECT
        ID
    FROM
        my_table
    WHERE
        DATE_CREATE<=".$DB->CurrentDateFunction()
    ";
$rs = $DB->Query($strSql, false, $err_mess.__LINE__);
?>

  • CDatabase::CurrentTimeFunction - возвращает SQL код для получения текущего времени в формате базы данных.

    <?
$strSql = "
    UPDATE my_table SET
         TIME_CHANGE=".$DB->CurrentTimeFunction()."
    WHERE
         ID=45
    ";
$Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);
?>

  • CDatabase::DatetimeToTimestampFunction - возвращает валидный timestamp без обращения к MakeTimeStamp.

    <?
$strSql = "
    SELECT
         ID,
         ".$DB-> DatetimeToTimestampFunction("DATE_CREATE")." DATE_CREATE
    FROM
         my_table
    ";
$rs = $DB->Query($strSql, false, $err_mess.__LINE__);
?>

Конвертация форматов

  • CDataBase::DateFormatToPHP - конвертирует формат допустимый в настройках сайта в формат принятый в PHP.

    <?
echo $DB->DateFormatToPHP("DD.MM.YYYY HH:MI:SS"); // d.m.Y H:i:s
?>

  • CDataBase::FormatDate - конвертирует время из строки одного формата в строку произвольного формата.

    <?
echo $DB->FormatDate("31.12.2005", "DD.MM.YYYY", "YYYY-MM-DD"); // 2005-12-31
?>

  • ConvertDateTime - конвертирует время из строки в формате сайта в строку произвольного формата.

    <?
echo ConvertDateTime("25.12.2003", "YYYY-MM-DD", "ru"); // 2003-12-25
?>

  • MakeTimeStamp - конвертирует время из строки в Unix-формат.

    <?
echo MakeTimeStamp("07.04.2005 11:32:00", "DD.MM.YYYY HH:MI:SS"); // 1112862720
?>

  • ConvertTimeStamp - конвертирует время из Unix-формата в строку в формате сайта.

    <?
echo ConvertTimeStamp(mktime(0, 0, 0, 10, 25, 2003), "SHORT", "ru"); // 25.10.2003
?>

Дополнительные функции

  • CDataBase::IsDate - проверяет дату заданную в виде строки на корректность.

    <?
echo $DB->IsDate("12.10.2005 22:34:15", "DD.MM.YYYY HH:MI:SS") ? "OK" : "ERROR"; // OK
echo $DB->IsDate("12.13.2005 22:34:15", "DD.MM.YYYY HH:MI:SS") ? "OK" : "ERROR"; // ERROR
echo $DB->IsDate("12.13..2005 ABS", "DD.MM.YYYY HH:MI:SS") ? "OK" : "ERROR"; // ERROR
?>

  • CDataBase::CompareDates - сравнивает между собой две даты заданные как строки.

    <?
echo $DB->CompareDates("01.01.2005", "01.01.2006"); // -1
echo $DB->CompareDates("01.01.2006", "01.01.2005"); // 1
echo $DB->CompareDates("01.01.2006", "01.01.2006"); // 0
?>

  • AddToTimeStamp - добавляет к дате в Unix-формате заданный интервал времени.

    <?
$stmp = MakeTimeStamp("07.04.2005 11:32:00", "DD.MM.YYYY HH:MI:SS");
$stmp = AddToTimeStamp(array("DD" => -1, "MM" => 1), $stmp); // 1115454720
echo date("d.m.Y H:i:s", $stmp); // 06.05.2005 11:32:00
?>

  • ParseDateTime - возвращает ассоциированный массив описывающий дату заданную в виде строки.

    <?
if ($arr = ParseDateTime("21.01.2004 23:44:15", "DD.MM.YYYY HH:MI:SS"))
{
    echo "День:    ".$arr["DD"]."<br>";    // День: 21
    echo "Месяц:   ".$arr["MM"]."<br>";    // Месяц: 1
    echo "Год:     ".$arr["YYYY"]."<br>";  // Год: 2004
    echo "Часы:    ".$arr["HH"]."<br>";    // Часы: 23
    echo "Минуты:  ".$arr["MI"]."<br>";    // Минуты: 44
    echo "Секунды: ".$arr["SS"]."<br>";    // Секунды: 15
}
else echo "Ошибка!";
?>

  • getmicrotime - возвращает текущее время в Unix-формате.

    <?
echo getmicrotime(); // 1115454720
?>

  • GetDateFormat - Возвращает формат даты (времени) сайта.

    <?
// выводит текущую дату в формате текущего сайта
echo date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")), time());
?>

  • GetTimeFormat - Возвращает формат времени, указанный в настройках сайта.

    <?
echo $GLOBALS["DB"]->DateFormatToPHP( CSite::GetTimeFormat() );
?>


Почтовая система

Описание

Почтовая система - это технология предназначенная для работы с E-Mail сообщениями на сайте.

Работа с почтовой системой состоит из следующих этапов:

  1. Создание типа почтового события. Тип почтового события может быть создан с использованием функции CEventType::Add, либо на странице Типы почтовых событий [image].
  2. Создание почтового шаблона. Создание почтового шаблона доступно в административном меню "Почтовые шаблоны", а также при использовании функции CEventMessage::Add.
  3. Создание почтового события. Почтовое событие может быть создано только функцией CEvent::Send.

В конце выполнения каждой страницы, будет автоматически вызвана функция CEvent::CheckEvents, основные задачи которой:

  1. выбрать из таблицы b_event необработанные почтовые события
  2. сгенерировать по ним E-Mail сообщения (письма)
  3. отправить их
  4. записать результат их отправки в таблицу b_event в поле SUCCESS_EXEC, используя одно из следующих обозначений:
    • Y - все письма по всем почтовым шаблонам были успешно отправлены
    • F - все письма по всем почтовым шаблонам не смогли быть отправлены
    • P - часть писем отправлена успешно, часть писем - безуспешно
    • 0 - почтовые шаблоны не были найдены
    • N - почтовое событие ещё не обрабатывалось функцией CEvent::CheckEvents

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

  • Конвертировать символы новой строки Unix формата в Windows формат при отправке email
  • Конвертировать 8-битные символы в заголовке письма
  • E-Mail адрес или список адресов через запятую на который будут дублироваться все исходящие сообщения
  • Дублировать E-Mail адрес в заголовок
  • Отправлять в письме идентификаторы почтового события и шаблона

Помимо вышеописанных параметров, доступна также константа ONLY_EMAIL, инициализация которой позволяет отправлять все письма только на заданный адрес или группу адресов.

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

<?
$obEventType = new CEventType;
$obEventType->Add(array(
    "EVENT_NAME"    => "ADV_BANNER_STATUS_CHANGE",
    "NAME"          => "Изменился статус баннера",
    "LID"           => "ru",
    "DESCRIPTION"   => "
        #ID# - ID баннера
        #CONTRACT_ID# - ID контракта
        #TYPE_SID# - ID типа
        "
    ));
?>

Пример создания почтового шаблона

<?
$arr["ACTIVE"]      = "Y";
$arr["EVENT_NAME"]  = "ADV_BANNER_STATUS_CHANGE";
$arr["LID"]         = array("ru","en");
$arr["EMAIL_FROM"]  = "admin@site.ru";
$arr["EMAIL_TO"]    = "admin@site.ru";
$arr["BCC"]         = "";
$arr["SUBJECT"]     = "Изменен статус баннера #ID#";
$arr["BODY_TYPE"]   = "text";
$arr["MESSAGE"]     = "
Внимание! Статус баннера # #ID# изменен.
Тип баннера - #TYPE_SID#
ID контракта - #CONTRACT_ID#
";
$obTemplate = new CEventMessage;
$obTemplate->Add($arr);
?>

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

<?
$arFields = array(
    "ID"          => 124,
    "CONTRACT_ID" => 1,
    "TYPE_SID"    => "LEFT"
    );
CEvent::Send("ADV_BANNER_STATUS_CHANGE", array("ru", "en"), $arFields);
?>

Смотрите также

  • Класс CEvent
  • Класс CEventMessage
  • Класс CEventType
  • Настройки главного модуля


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

  • SITE_ID
  • SITE_DIR
  • SITE_SERVER_NAME
  • SITE_TEMPLATE_PATH
  • SITE_CHARSET
  • FORMAT_DATE
  • FORMAT_DATETIME
  • LANGUAGE_ID
  • LANG_CHARSET
  • SITE_TEMPLATE_ID
  • START_EXEC_TIME
  • B_PROLOG_INCLUDED
  • SM_VERSION
  • SM_VERSION_DATE
  • ADMIN_SECTION
  • AUTH_404
  • HELP_FILE
  • NEED_AUTH
  • ERROR_EMAIL
  • LOG_FILENAME
  • STATISTIC_ONLY
  • NO_KEEP_STATISTIC
  • STOP_STATISTICS
  • NO_AGENT_STATISTIC
  • NO_AGENT_CHECK
  • PERFMON_STOP
  • NOT_CHECK_PERMISSIONS
  • ONLY_EMAIL
  • BX_CRONTAB
  • BX_FILE_PERMISSIONS
  • BX_DIR_PERMISSIONS
  • SM_SAFE_MODE
  • DIRECTORY_INDEX
  • MYSQL_TABLE_TYPE
  • DBPersistent
  • BX_DISABLE_INDEX_PAGE
  • BX_NO_SQL_BACKTRACE
  • TAGGED_user_card_size
  • BX_NO_ACCELERATOR_RESET
Имя константы | Тип | Описание
SITE_ID А
Т
И 		Идентификатор текущего сайта при использовании в Публичной части, код языка при использовании в административной части.
SITE_DIR | А | Поле "Папка сайта" в настройках сайта. Как правило используется в случае организации многосайтовости на одном домене [image].
SITE_SERVER_NAME | А | Поле "URL сервера" в настройках текущего сайта.
SITE_TEMPLATE_PATH | А | URL от корня сайта до папки текущего шаблона.
SITE_CHARSET А Поле "Кодировка" в настройках текущего сайта.

Примечание: в публичной части понятие языка и сайта отличаются. Поэтому LANG_CHARSET и SITE_CHARSET могут принимать разные значения.

FORMAT_DATE | А | Для публичной части, в данной константе хранится формат даты из настроек текущего сайта. Для административной части - формат даты текущего языка.
FORMAT_DATETIME | А | Для публичной части, в данной константе хранится формат времени из настроек текущего сайта. Для административной части - формат времени текущего языка.
LANGUAGE_ID | А | Если это публичная часть, то в данной константе храниться поле "Язык" из настроек текущего сайта, если административная часть, то в данной константе храниться идентификатор текущего языка.
LANG_CHARSET А В данной константе содержится значение кодировки, указанной в секции Параметры формы настроек текущего сайта.

Примечание: в публичной части понятие языка и сайта отличаются. Поэтому LANG_CHARSET и SITE_CHARSET могут принимать разные значения.

SITE_TEMPLATE_ID | А | Идентификатор текущего шаблона сайта.
START_EXEC_TIME | А | Содержит время начала работы страницы в формате возвращаемом функцией getmicrotime.
B_PROLOG_INCLUDED | А | Если подключена служебная часть пролога, то данная константа будет инициализирована значением "true". Как правило эту константу используют во включаемых файлах в целях безопасности, когда необходимо убедиться, что пролог подключен и все необходимые права проверены.
SM_VERSION | А | Текущая версия главного модуля.
SM_VERSION_DATE | А | Дата выпуска текущей версии главного модуля.
ADMIN_SECTION А
Т 		Если необходимо подключать пролог административной части, то значение данной константы - "true".
AUTH_404 Т

Данную константу необходимо инициализировать до пролога в файлах-обработчиках 404 ошибки (страница не найдена). Подобные файлы-обработчики задаются в настройках веб-сервера.

Инициализация этой константы позволяет в стандартных компонентах авторизации, регистрации, высылки забытого пароля, смены пароля поменять страницу на которую будет осуществляться сабмит соответствующей формы. Этой страницей по умолчанию является - текущая страница, если же константа инициализирована, то это будет - /SITE_DIR/auth.php.

Необходимость инициализации этой константы связана с тем, что на несуществующие страницы отослать данные методом POST нельзя, а именно с этим методом и работают вышеперечисленные компоненты. Поэтому если файл текущей страницы физически не существует на сервере, то без этой константы компоненты работать не будут.

Пример:
define("AUTH_404", "Y");
HELP_FILE Т Данная константа используется как правило в административных скриптах, для хранения имени файла контекстно-зависимой помощи, в случае если это имя отличается от имени данного скрипта. Ссылка на контекстно-зависимую помощь выводится в виде иконки на административной панели.
Пример:
define("HELP_FILE",
       "my_admin_script.php");
NEED_AUTH Т Если инициализировать данную константу значением "true" до подключения пролога, то будет проведена проверка на авторизованность пользователя. Если пользователь не авторизован, то ему будет предложена форма авторизации.

Пример:
define("NEED_AUTH", true);
ERROR_EMAIL Т
И 		Хранит E-Mail адрес (или группу адресов разделенных запятой), используемый функцией SendError для отправки сообщений об ошибках.

Пример:
define("ERROR_EMAIL",
       "admin@site.ru, support@site.ru");
LOG_FILENAME Т
И
С 		Хранит абсолютный путь к log-файлу, используемого функцией AddMessage2Log для записи ошибок или каких-либо сообщений.

Пример:
define("LOG_FILENAME",
       $_SERVER["DOCUMENT_ROOT"].
           "/log.txt");
STATISTIC_ONLY Т
И
С 		Как правило данная константа используется в редакции "Веб-Аналитика". Если ее не инициализировать, то в публичной части будет отсылаться HTTP заголовок:
Content-Type: text/html; charset=SITE_CHARSET

Пример:
define("STATISTIC_ONLY", true);
NO_KEEP_STATISTIC Т
И
С 		Если инициализировать данную константу каким либо значением, то это запретит сбор статистики на данной странице.

Пример:
define("NO_KEEP_STATISTIC", true);
STOP_STATISTICS Т
И
С 		Константа предназначена для отключения автоматического сбора статистики, реализованного как вызов функции CStatistics::Keep в качестве обработчика события OnBeforeProlog. Константу необходимо инициализировать до подключения пролога. Затем, при необходимости, можно использовать "ручной" сбор статистики, вызвав функцию CStatistics::Keep (с первым параметром, равным true).

Пример:
<?
// отключим автоматический
// сбор статистики
define("STOP_STATISTICS", true);
require($_SERVER["DOCUMENT_ROOT"].
        "/bitrix/header.php");

// включим сбор статистики
CStatistics::Keep(true);

...
NO_AGENT_STATISTIC Т И
С 		Инициализация этой константы каким-либо значением приведет к запрету следующих действий модуля "Статистика", выполняемых ежедневно при помощи технологии агентов [image]:
  • перевод на новый день;
  • очистка устаревших данных статистики;
  • отсылка ежедневного статистического отчета.
Пример:
define("NO_AGENT_STATISTIC", true);
NO_AGENT_CHECK Т И
С 		При установке в true отключает выполнение всех агентов

Пример:

define("NO_AGENT_CHECK", true);
NOT_CHECK_PERMISSIONS Т
И
С 		Если инициализировать данную константу значением "true" до подключения пролога, то это отключит проверку прав на доступ к файлам и каталогам [image].

Пример:
define("NOT_CHECK_PERMISSIONS", true);
ONLY_EMAIL Т
И
С 		Если на странице задана константа ONLY_EMAIL и email из настроек почтового шаблона с ее значением не совпадает, то письмо не отсылать. То есть отсылка письма будет происходить только в том случае если значение данной константы будет соответствовать адресу отправителя в настройках шаблона.

Пример:
define("ONLY_EMAIL", "admin@site.ru");
BX_CRONTAB Т
И
С 		Если данная константа инициализирована значением "true", то функция проверки агентов на запуск будет отбирать только те агенты для которых не критично количество их запусков (т.е. при добавлении этого агента параметр period=N). Как правило данная константа используется для организации запуска агентов на cron'е.

Пример:
define("BX_CRONTAB", true);
BX_FILE_PERMISSIONS Т
И
С 		Unix-права для вновь создаваемых файлов.

Пример:
define("BX_FILE_PERMISSIONS", 0755);
BX_DIR_PERMISSIONS Т
И
С 		Unix-права для вновь создаваемых каталогов.

Пример:
define("BX_DIR_PERMISSIONS", 0755);
SM_SAFE_MODE Т
И
С 		Инициализация данной константы значением "true" позволит отключить все модули системы за исключением главного и модуля "Управление структурой".

Пример:
define("SM_SAFE_MODE", true);
DIRECTORY_INDEX Т
И
С 		Данная константа используется в функции GetDirIndex для определения индексного файла каталога.

Пример:
define("DIRECTORY_INDEX", "
    index.php
    index.html
    index.htm
    index.phtml
    default.html
    index.php3
");
MYSQL_TABLE_TYPE С Значение данной константы содержит тип таблиц создаваемый в MySQL по умолчанию: "MyISAM" или "InnoDB".

Пример:
define("MYSQL_TABLE_TYPE", "InnoDB");
DBPersistent С Если данная константа инициализирована значением "true", то будет создаваться постоянное соединение с базой.

Пример:
define("DBPersistent", true);
BX_DISABLE_INDEX_PAGE | C | Может принимать значение true/false. Константа регулирует значение по умолчанию для параметра get_index_page функций GetPagePath(), CMain::GetCurPage(), CMain::GetCurPageParam(). Параметр get_index_page указывает, нужно ли для индексной страницы раздела возвращать путь, заканчивающийся на "index.php". Если значение параметра равно true, то возвращается путь с "index.php", иначе - путь, заканчивающийся на "/". Параметр имеет значение, обратное значению константы.
BX_NO_SQL_BACKTRACE | А | Может принимать значение true/false. Если инициализировать данную константу каким либо значением,то она отключает/включает сбор бектрейсов при включенной отладке.
TAGGED_user_card_size | И | Константа для регулирования тегированного кеша пользователей.
BX_NO_ACCELERATOR_RESET | И | Константа запрещающая сброс кеша акселератора.
PERFMON_STOP | При установке константы в true не используется монитор производительности.

Обозначения типов констант:

  • А (авто) - константа инициализируется системой в прологе автоматически
  • Т (страница) - константу можно определить на любой публичной странице до подключения пролога
  • И (инициализация) - константу можно определить в одном из следующих файлов:
    • /bitrix/php_interface/init.php - дополнительные параметры портала
    • /bitrix/php_interface/ID сайта/init.php - дополнительные параметры сайта
  • С (соединение с базой) - константу можно определить только в файле хранящим параметры соединения к базе: /bitrix/php_interface/dbconn.php


Специальные переменные

  • APPLICATION
  • USER
  • DB
  • DBType
  • DBHost
  • DBName
  • DBLogin
  • DBPassword
  • DBDebug
  • DBDebugToFile
  • clear_cache
  • clear_cache_session
  • compress
  • show_page_exec_time
  • show_include_exec_time
  • show_lang_files
  • no_keep_statistic_KEY
  • no_agent_statistic_KEY
  • key

Имя переменной | Тип | Описание
APPLICATION | Г | Глобальный объект класса CMain, предназначен для выполнения большинства общих стандартных операций (вывод заголовка, навигационной цепочки, меню и т.д.).
USER | Г | Глобальный объект класса CUser, хранит в себе данные авторизации текущего пользователя, предназначен для манипуляции параметрами текущего пользователя.
DB | Г | Глобальный объект класса CDataBase, предназначен для работы с базой данных.
DBType С Тип базы: "mysql", "mssql" или "oracle".

Пример:
$DBType = "mysql";
DBHost С Для следующих типов базы данных:
  • MySQL - адрес сервера базы данных, например, - "localhost"
  • Oracle - не используется
Пример:
$DBHost = "localhost";
$DBHost = "localhost:3307";
DBName С Для следующих типов базы данных:
  • MySQL - имя базы
  • Oracle - строка соединения
Пример для MySQL:
$DBName = "bitrix";
Пример для Oracle:
$DBName = "
    (DESCRIPTION =
        (ADDRESS_LIST =
            (ADDRESS =
                (PROTOCOL = TCP)
                (HOST = 192.168.0.1)
                (PORT = 1521)
            )
        )
        (CONNECT_DATA =
            (SERVICE_NAME = BX)
        )
    )
";
DBLogin С Логин пользователя для доступа в базу данных.

Пример:
$DBLogin = "root";
DBPassword С Пароль пользователя для доступа в базу данных.

Пример:
$DBPassword = "123456";
DBDebug С
И 		Если данная переменная будет равна "true", то в случае ошибки при создании соединения с базой или в любом SQL запросе, сообщение об ошибке и полный текст этой ошибки будет отображаться в браузере. В противном случае - полный текст ошибки будет показан только администратору сайта.

Пример:
$DBDebug = true;
DBDebugToFile С
И 		Если данная переменная будет равна "true", то все SQL запросы к базе данных и время их выполнения будут записываться в лог-файл /mysql_debug.sql (или /oracle_debug.sql). Данная возможность используется как правило для получения данных о скорости выполнения SQL запросов к базе данных.

Ведение подобного лога может серьезно замедлить работу сайта, поэтому пользоваться этим стоит кратковременно.

Пример:
$DBDebugToFile = true;
clear_cache Т Если значение данной переменной - "Y", то это отключает кеширование [image] [image] на текущей странице.

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

Пример:
http://www.site.ru/?clear_cache=Y
clear_cache_session Т Если значение данной переменной - "Y", то это отключает кеширование [image] [image] в рамках сессии. Для включения кэширования - достаточно один раз присвоить этой переменной значение "N".

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

Пример:
http://site.ru/?clear_cache_session=Y
http://site.ru/?clear_cache_session=N
compress Т Если значение данной переменной - "Y", то внизу страницы в рамках сессии будет выведена рамка показывающая информацию по сжатию данной страницы модулем "Компрессия [image] ": размер страницы до сжатия, размер страницы после сжатия, коэфициент сжатия. Для отключения вывода данной информации - достаточно один раз присвоить этой переменной значение "N".

Пример:
http://www.site.ru/?compress=Y
http://www.site.ru/?compress=N
show_page_exec_time Т Если значение данной переменной - "Y", то внизу страницы будет выводиться время выполнения данной страницы на сервере. Данная информация будет выводиться в рамках сессии. Для отключения ее вывода - достаточно один раз присвоить этой переменной значение "N".

Данная переменная позволяет получить объективную информацию о скорости работы сайта.

Пример:
http://site.ru/?show_page_exec_time=Y
http://site.ru/?show_page_exec_time=N
show_include_exec_time Т Если значение данной переменной - "Y", то на странице будет показано время выполнения всех функций CMain::IncludeFile, подключающей как компоненты так и обычные файлы. Данная информация будет выводиться в рамках сессии. Для отключения ее вывода - достаточно один раз присвоить этой переменной значение "N".

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

Пример:
http://site.ru/?show_include_exec_time=Y
http://site.ru/?show_include_exec_time=N
show_lang_files Т Если значение данной переменной - "Y", то внизу страницы будет выводиться список используемых на данной странице языковых файлов с возможностью поиска по ним. Данная информация будет выводиться в рамках сессии. Для отключения ее вывода - достаточно один раз присвоить этой переменной значение "N".

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

Пример:
http://www.site.ru/?show_lang_files=Y
http://www.site.ru/?show_lang_files=N
no_keep_statistic_KEY Т Если значение данной переменной - "Y", то это позволит отключить сбор статистики в рамках сессии. Для включения сбора статистики - достаточно один раз присвоить этой переменной значение "N". Как правило данную переменную используют для отключения сбора статистики в момент захода на сайт администратора.

KEY - лицензионный ключ хранимый в файле /bitrix/license_key.php

Пример:
http://site.ru/?no_keep_statistic_SM4-ML-PZDIO7TUMT3WP7H=Y
http://site.ru/?no_keep_statistic_SM4-ML-PZDIO7TUMT3WP7H=N
no_agent_statistic_KEY Т Если значение данной переменной - "Y", то это позволит отключить отработку агентов [image] статистики в рамках сессии. Для включения отработки агентов в данной сесси - достаточно один раз присвоить этой переменной значение "N".

KEY - лицензионный ключ хранимый в файле /bitrix/license_key.php

Пример:
http://site.ru/?no_agent_statistic_SM4-ML-PZDIO7TUMT3WP7H=Y
http://site.ru/?no_agent_statistic_SM4-ML-PZDIO7TUMT3WP7H=N
key Данную переменную можно использовать только при вызове скрипта /bitrix/admin/phpinfo.php. Если ее значение будет равным лицензионному ключу, то вышеупомянутый скрипт отрабатает без подключения административного пролога.

Пример:
http://site.ru/bitrix/admin/phpinfo.php?key=SM4-ML-PZDIRTH

Обозначения типов переменных:

  • Г (глобальная) - переменная автоматически создаётся в служебной части пролога
  • С (соединение с базой) - переменную можно определить только в файле хранящим параметры соединения к базе: /bitrix/php_interface/dbconn.php
  • И (инициализация) - переменную можно определить в одном из следующих файлов:
    • /bitrix/php_interface/init.php - дополнительные параметры портала
    • /bitrix/php_interface/ID сайта/init.php - дополнительные параметры сайта
  • Т (страница) - переменную можно задать в параметрах страницы при открытии ее в браузере


Понятие мастера

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

В общем случае существует 2 модели программирования мастера:

  • Фиксация по мере выполнения действий – на каждом шаге выполняется элементарная операция, которую нельзя отменить.
  • Фиксация в конце работы мастера – на каждом шаге мастера осуществляется сбор данных для операции, выполняемой в самом конце работы мастера.

Начиная с версии 6.5.2, продукт предоставляет механизм (API) для создания мастеров.


Физическое расположение мастера

Все мастера находятся в папке /bitrix/wizards/. Папка для кастомных наработок /local не поддерживает работу мастеров.

Системные (поставляемые разработчиками продукта) мастера находятся в директории /bitrix/wizards/bitrix/. Содержимое этой папки обновляется системой SiteUpdate и не может изменяться пользователем. Пользовательские мастера могут находиться в любых других подпапках директории /bitrix/wizards/ или прямо в директории /bitrix/wizards/.

Название подпапки директории /bitrix/wizards/ образует пространство имен (namespace) мастеров. Например, все системные мастера расположены в пространстве имен bitrix. При создании пользовательских мастеров рекомендуется создать какое-либо пространство имен и размещать пользовательские мастера в нем. Полное имя мастера включает в себя пространство имен и имеет вид "пространство_имен:имя_мастера". Например, "bitrix:sale.install". Если мастер лежит вне пространства имен, то пространство имен не указывается. Например, "sale.install".

Мастера централизованно хранятся в одной папке (репозитарии). Это обеспечивает большую целостность и понятность структуры сайта. Папка доступна для запросов по HTTP протоколу, а, значит, мастер может легко подключать свои дополнительные ресурсы. Мастер хранит все, что ему нужно для работы, в своей папке. Поэтому мастера можно легко переносить между проектами. Мастер неделим.

Внимание! Файлы, к которым нельзя обращаться напрямую, должны содержать в начале следующий код:
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>


Структура папки мастера

Папка мастера может содержать следующие файлы и папки:

  • Файл wizard.php, в котором определяются все шаги мастера. Этот файл должен всегда присутствовать в папке мастера;

  • Файл .description.php, содержащий название, описание, а также ряд других характеристик мастера (см. описание файла .description.php) . Этот файл должен всегда присутствовать в папке мастера;

  • Подпапка lang, содержащая языковые сообщения (перевод) мастера. В этой папке находятся подпапки с именами, равными кодам языков. В этих подпапках находятся файлы языковых сообщений (переводов) мастера. Файл языковых сообщений для какого-либо файла мастера должен иметь такое же имя, как и файл мастера, и находиться в той же иерархии относительно папки /lang/код_языка/, в которой файл располагается относительно папки мастера. Например, языковой файл с английскими фразами для файла /wizard.php требуется располагать по пути /lang/en/wizard.php. Подпапка lang может отсутствовать, если в мастере нет зависящих от языка фраз;

  • Любые другие папки и файлы с ресурсами, необходимыми мастеру. Все ресурсы мастера должны находиться в папке мастера.


Определение шагов мастера

Определение шагов мастера

Чтобы создать мастер, нужно в файле wizard.php определить все шаги и их содержимое. Каждый шаг определяется классом, который обязательно должен наследоваться от класса CWizardStep. В классе шага необходимо переопределить 3 метода:

  • InitStep – вызывается при добавлении шага в мастер. Метод предназначен для инициализации свойств шага: идентификатора (ID), заголовка, подзаголовка, кнопок перехода на следующие шаги и др. В этом методе обязательно нужно определить ID шага;
  • ShowStep – вызывается в момент показа шага пользователю. Метод предназначен для определения содержимого шага: в переменную $this->content необходимо записать весь вывод шага;
  • OnPostForm – вызывается при нажатии на любую из кнопок навигации мастера. В этом методе можно проверить входные данные, вернуть ошибки, изменить текущий шаг, выполнить любые другие действия;

Методы ShowStep и OnPostForm переопределять необязательно. Метод InitStep обязательно должен присутствовать в классе, т.к. в нем с помощью функции SetStepID определяется ID шага. В случае динамического определения шагов устанавливать ID шага в InitStep необязательно.

Класс СWizardBase является оболочкой мастера и содержит методы общие для всех шагов (работа с переменными мастера, управление кнопками навигации и др.). Для каждого подключаемого мастера создаётся экземпляр класса СWizardBase. Для получения доступа к методам класса СWizardBase в теле переопределяемых функций (InitStep, ShowStep, OnPostFrom) нужно получить объект мастера с помощью метода CWizardStep::GetWizard:

$wizard =& $this->GetWizard(); //Получаем ссылку на объект мастера
$myVar = $wizard->GetVar("myVar"); //Используем метод мастера (класс CWizardBase)

Для каждого шага, добавляемого в мастер, создаётся экземпляр класса CWizardStep. В переопределяемых функциях шага методы класса CWizardStep доступны через переменную-псевдоним $this. Каждый шаг мастера сам определяет, какие кнопки навигации (Назад, Далее, Готово, Отмена) будут показаны, и на какой шаг они будут вести. Названия кнопок можно изменить по своему усмотрению. Как правило, содержимое шага представляет собой набор полей Web-формы. Для упрощения работы с элементами Web-формы класс CWizardStep содержит методы для создания текстовых полей, переключателей, флажков и др.

Пример определения шагов мастера в файле wizard.php:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class MainUserFields extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("main_fields");//ID шага

        $this->SetTitle("Основные поля пользователя");//Заголовок
        $this->SetSubTitle("Введите логин, пароль и e-mail нового пользователя"); //Подзаголовок

        //Навигация
        $this->SetNextStep("success");
        $this->SetCancelStep("cancel");

        $wizard =& $this->GetWizard(); // Получаем ссылку на объект мастера
        $wizard->SetDefaultVar("active", "Y"); //Устанавливаем значение по умолчанию
    }

    function OnPostForm()
    {
        $wizard =& $this->GetWizard();

        if ($wizard->IsCancelButtonClick())
            return;

        $success = true;
        $login = $wizard->GetVar("login");
        if (strlen($login) < 3)
            $this->SetError("Логин должен быть больше 3 символов", "login");
        else
        {
            $obUser = CUser::GetList($by="id", $order="desc", Array("LOGIN_EQUAL" => $login));
            if ($obUser->Fetch())
            {
                $this->SetError("Такой логин уже существует", "login");
                $success = false;
            }
        }

        $password = $wizard->GetVar("password");
        if (strlen($password) < 6)
        {
            $this->SetError("Пароль должен быть не меньше 6 символов", "password");
            $success = false;
        }

        $email = $wizard->GetVar("email");
        if (strlen($email) < 3 || !check_email($email))
        {
            $this->SetError("Вы ввели неверный E-mail", "email");
            $success = false;
        }

        if (!$success)
            return;

        //Добавляем пользователя
        $user = new CUser;
        $arFields = Array(
            "NAME" => $wizard->GetVar("user_name"),
            "LAST_NAME" => $wizard->GetVar("user_surname"),
            "EMAIL" => $wizard->GetVar("email"),
            "LOGIN" => $wizard->GetVar("login"),
            "ACTIVE" => ($wizard->GetVar("active") == "Y" ? "Y" : "N"),
            "PASSWORD" => $wizard->GetVar("password"),
            "CONFIRM_PASSWORD" => $wizard->GetVar("password"),
        );

        $userID = $user->Add($arFields);
        if (intval($userID) > 0)
        {
            $wizard->SetVar("userID", $userID);
            CFile::Delete($photo); //Удаляем временный файл
        }
        else
            $this->SetError($user->LAST_ERROR);
    }

    function ShowStep()
    {
        $this->content .= '<table class="wizard-data-table">';

        $this->content .= '<tr><th align="right">Активен:</th><td>'.$this->ShowCheckBoxField("active", "Y").'</td></tr>';

        $this->content .= '<tr><th align="right"><span class="wizard-required">*</span>Логин (мин. 3 символа):</th><td>';
        $this->content .= $this->ShowInputField("text", "login", Array("size" => 25));
        $this->content .= '</td></tr>';

        $this->content .= '<tr><th align="right"><span class="wizard-required">*</span>Пароль (мин. 6 символов):</th><td>';
        $this->content .= $this->ShowInputField("password", "password", Array("size" => 25));
        $this->content .='</td></tr>';

        $this->content .= '<tr><th align="right"><span class="wizard-required">*</span>E-mail:</th><td>';
        $this->content .= $this->ShowInputField("text", "email", Array("size" => 25));
        $this->content .= '</td></tr>';

        $this->content .= '<tr><th align="right">Имя:</th><td>'.$this->ShowInputField("text", "user_name", Array("size" => 25)).'</td></tr>';
        $this->content .= '<tr><th align="right">Фамилия:</th><td>'.$this->ShowInputField("text", "user_surname", Array("size" => 25)).'</td></tr>';

        $this->content .= '</table>';
        $this->content .= '<br /><div class="wizard-note-box"><span class="wizard-required">*</span> Поля, обязательные для заполнения.</div>';
    }
}

class SuccessStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("success");//ID шага
        $this->SetTitle("Работа мастера успешно завершена");//Заголовок
        //Навигация
        $this->SetCancelStep("success");
        $this->SetCancelCaption("Готово");
    }

    function ShowStep()
    {
        $this->content .= "Мастер успешно добавил нового пользователя. ";

        $wizard =& $this->GetWizard();
        $userID = intval($wizard->GetVar("userID"));
        if ($userID > 0)
            $this->content .= 'Идентификатор нового пользователя
                <a target="_blank" href="/bitrix/admin/user_edit.php?ID='.$userID.'&lang='.LANGUAGE_ID.'">'.$userID.'</a>';
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Мастер прерван");
        $this->SetStepID("cancel");
        $this->SetCancelStep("cancel");
        $this->SetCancelCaption("Закрыть");
    }

    function ShowStep()
    {
        $this->content .= "Мастер создания нового пользователя прерван. Новый пользователь не был создан.";
    }
}
?>

После того как мы определили классы в файле wizard.php, их имена необходимо описать в файле .description.php:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мастер создания нового пользователя",
    "STEPS" => Array("MainUserFields", "SuccessStep", "CancelStep"), //Описание шагов
);

?>

Система автоматически создаст мастер и добавит в него шаги с названиями, описанные в файле .description.php.

Шаг ввода данных нового пользователя

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

Динамическое определение шагов

Статическое описание шагов мастера в файле .description.php, облегчает задачу инициализации шагов мастера, но в то же время уменьшает гибкость. Часто необходимо инициализировать шаги мастера по какому-либо условию. При динамическом определении инициализация шагов происходит непосредственно в файле wizard.php, поэтому описывать названия классов в файле .description.php не нужно. В файле wizard.php необходимо создать объект мастера (экземпляр класса СWizardBase) и затем добавить в него объекты шагов c помощью методов AddStep или AddSteps. Метод Display выведет мастер на экран.

<?
//Создаем мастер
$wizard = new CWizardBase("Мастер создания нового пользователя", $package);

//Добавляем шаги
$wizard->AddStep(new MainUserFields);
$wizard->AddStep(new SuccessStep);
$wizard->AddStep(new CancelStep);

/*
Или с помощью AddSteps:
$wizard->AddSteps(Array("MainUserFields", "SuccessStep", "CancelStep"));
*/

//Выводим
$wizard->Display();
?>

Вторым параметром метод CWizardBase::AddStep может принимать ID добавляемого шага. При инициализации шага с помощью AddStep с указанным вторым параметром, в классе шага необязательно переопределять метод InitStep для установки ID шага с помощью метода SetStepID.

<?
//Создаем мастер
$wizard = new CWizardBase("Мастер создания нового пользователя", $package);

//Добавляем шаги с указанием идентификаторов
$wizard->AddStep(new MainUserFields, "main_fields");
$wizard->AddStep(new SuccessStep, "success");
$wizard->AddStep(new CancelStep, "cancel");

//Выводим
$wizard->Display();
?>

Вы также можете динамически задать свойства мастера и шагов:

<?
//Создаем мастер
$wizard = new CWizardBase("Мастер создания нового пользователя", $package);

//Устнавим значение по уомлчанию для поля Логин
$wizard->SetDefaultVar("login", "new_user");

$mainStep = new MainUserFields;
//Изменим надпись кнопки Далее
$mainStep->SetNextCaption("Создать пользователя");

//Добавляем шаги
$wizard->AddStep($mainStep, "main_fields");
$wizard->AddStep(new SuccessStep, "success");
$wizard->AddStep(new CancelStep, "cancel");

//Выводим
$wizard->Display();
?>


Файл описания мастера .description.php

Файл .description.php содержит название, описание, а также ряд других характеристик мастера. Этот файл должен всегда присутствовать в папке мастера. Языковой файл подключается автоматически (должен лежать в папке /lang/<язык>/.description.php относительно папки мастера).

Структура типичного файла .description.php такова:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => GetMessage("WD_TITLE"),
    "DESCRIPTION" => GetMessage("WD_TITLE_DESCR"),
    "ICON" => "images/icon.gif",
    "VERSION" => "1.0.0",
    "DEPENDENCIES" => Array(
        "main" => "6.5.0",
        "sale" => "6.0.0",
        "currency" => "6.0.0",
    ),
    "STEPS" => Array("Step0", "Step1", "Step2", "Step3", "Step4", "Step5","Install", "FinalStep", "CancelStep"),

    "TEMPLATES" => Array(
        Array("SCRIPT" => "wizard_template.php", "CLASS" => "DemoSiteTemplate"),
    ),
);
?>

В файле определяется массив $arWizardDescription, который описывает мастер. Этот массив может иметь следующие ключи:

  • "NAME" – название мастера;
  • "DESCRIPTION" – описание мастера;
  • "ICON" – иконка мастера, путь к файлу относительно папки мастера;
  • "VERSION" – версия мастера;
  • "DEPENDENCIES" – зависимости мастера от модулей. Значением этого ключа должен быть массив вида Array("ID модуля"=>"версия модуля" [, ...]);
  • "STEPS" – массив названий классов, определяющих шаги в файле wizard.php;
  • "TEMPLATES" – шаблоны мастера. Значением этого ключа должен быть массив, элементами которого должен быть массив, имеющий следующие ключи:
    • "CLASS" – имя класса, описывающего шаблон;
    • "SCRIPT" – путь к файлу, в котором определён класс шаблона относительно папки мастера;
    • "STEP" – ID шага, для которого определяется шаблон. Если ключ "STEP" не указан, шаблон будет определён для всех шагов мастера.

По умолчанию первый элемент в массиве названий классов является первым шагом мастера. Именно этот шаг появляется при запуске мастера. Изменить первый шаг мастера можно динамически с помощью метода CWizardBase::SetFirstStep.


Шаблон мастера

Описание

Для мастера системой определены два шаблона по умолчанию. Один подключается при запуске мастера из административного раздела, второй – при запуске мастера из публичной части сайта (подробнее см. запуск мастера).

Вы можете разработать собственный интерфейс, отличный от интерфейса по умолчанию. Шаблон мастера определяется классом, который обязательно должен наследоваться от класса CWizardTemplate. В этом классе необходимо переопределить метод GetLayout, который должен вернуть HTML шаблона мастера. Внутри шаблона мастера обязательно должны быть определены следующие макросы:

  • {#FORM_START#} – начало формы, макрос будет заменен тегом <form>;
  • {#FORM_END#} – конец формы, макрос будет заменен тегом </form>;
  • {#CONTENT#} – область содержимого шага, макрос будет заменен содержимым текущего шага;
  • {#BUTTONS#} – область кнопок навигации, макрос будет заменен кнопками навигации.

Если необходимо разделить область навигации на отдельные кнопки, то для этого можно использовать следующие макросы:

  • {#BUTTON_PREVIOUS#} - кнопка Назад;
  • {#BUTTON_NEXT#} - кнопка Далее;
  • {#BUTTON_CANCEL#} - кнопка Отмена;
  • {#BUTTON_FINISH#} - кнопка Готово.

Чтобы воспользоваться методами класса CWizardBase в теле переопределяемой функции GetLayout необходимо получить ссылку на экземпляр мастера:

<?
class MyTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard(); //Получаем ссылку на объект мастера
        /*
            Определение шаблона
            ...
        */
    }
}

?>

После определения класса шаблона мастера в файле .description.php в ключе "TEMPLATES" массива $arWizardDescription необходимо описать шаблон, указав название класса, файл, где находится класс, а также ID шага, для которого будет применен шаблон. Шаблон можно определить как для всех шагов мастера, так и для конкретного, указав в ключе "STEP" ID шага:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("Step0", "Step1", "Step2", "Install", "FinalStep", "CancelStep"),
    "TEMPLATES" => Array(
        Array("SCRIPT" => "wizard_pink.php", "CLASS" => "PinkTemplate"), //Для всех шагов шаблон PinkTemplate
        Array("SCRIPT" => "template_red.php", "CLASS" => "RedTemplate", "STEP" => "Step0"), //А для шага Step0 шаблон RedTemplate
    ),
);

?>

Особенности системных шаблонов по умолчанию

1. Если навигация шага содержит только кнопку Отмена, по ее нажатию системный шаблон закроет pop-up окно мастера.

2. В системных шаблонах определены следующие каскадные стили оформления:

  • wizard-data-table - применяется для оформления таблиц;
  • wizard-note-box - применяется для оформления подсказки;
  • wizard-required - выделяет текст красным цветом.
3. В системных шагах определены следующие CSS-классы:
  • wizard-license-iframe - класс для тега iframe, выводящего лицензионное соглашение;
  • wizard-iframe-container - класс для тега div, содержащий фрейм с лицензионным соглашением;
  • wizard-prev-button - класс для кнопки Назад;
  • wizard-next-button - класс для кнопки Далее;
  • wizard-finish-button - класс для кнопки Готово;
  • wizard-cancel-button - класс для кнопки Отмена.
Подробнее см. Мастер создания нового пользователя

Примеры

Пример шаблона мастера для использования его в административном разделе (высота таблицы совпадет с высотой всплывающего окошка на странице Список мастеров.)

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

//Красный шаблон мастера
class MyRedTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        $formName = $wizard->GetFormName(); //имя формы
        $wizardName = $wizard->GetWizardName(); //имя мастера
        $charset = LANG_CHARSET; //текушая кодировка

        //Получаем значения атрибута name кнопок мастера
        $nextButtonID = $wizard->GetNextButtonID();
        $prevButtonID = $wizard->GetPrevButtonID();
        $cancelButtonID = $wizard->GetCancelButtonID();
        $finishButtonID = $wizard->GetFinishButtonID();

        //Получаем ссылку на объект текущего шага
        $obStep =& $wizard->GetCurrentStep();

        $stepTitle = $obStep->GetTitle(); //Заголовок шага
        $stepSubTitle = $obStep->GetSubTitle(); //Подзаголовк шага

        //Получим ошибки шага
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<div id="step_error">'.$strError.'</span>';
        }

        /*
            Возвращаем HTML-код шаблона, в котором обязательно
            должны быть определны следующие макросы:
                {#FORM_START#} - начало формы
                {#CONTENT#} - содержимое текущего шага
                {#BUTTONS#} - кнопки навигации
                {#FORM_END#} - конец формы
        */
        return <<<HTML
<html>
    <head>
        <title>{$wizardName}</title>
        <meta http-equiv="Content-Type" content="text/html; charset={$charset}">
        <style type="text/css">
            body
            {
                margin:0; padding:0; background-color: #FFDEDE;
                font-family:Verdana,Arial,helvetica,sans-serif;font-size:75%;
            }
            table {font-size:100%;}
            form {margin:0;}
            #border-box{margin:2px 2px 0 2px; border:1px dashed red;}
            #step_info
            {
                height:45px;padding:8px 30px;border-bottom:1px dashed red;
                box-sizing:border-box;-moz-box-sizing:border-box;overflow:hidden;background:#FFC4C4;
            }
            #step_title{font-weight:bold;}
            #step_description {font-size:95%; margin-left:10px;}
            #step_content {padding:20px 20px;box-sizing:border-box;-moz-box-sizing:border-box;float:left;}
            #step_buttons
            {
                height:50px; text-align:right; padding-right:20px; padding-top:5px;
                overflow:hidden; box-sizing:border-box;-moz-box-sizing:border-box;
            }
            #step_content_container { height:290px; overflow:auto;background:#fff;}
            #step_error {color:red; margin:6px;}
        </style>

        <script type="text/javascript">

            function OnLoad()
            {
                /*Установим в окошке мастера заголовок*/
                var title = self.parent.window.document.getElementById("wizard_dialog_title");
                if (title)
                    title.innerHTML = "{$wizardName}";

                /*Получаем объект формы*/
                var form = document.forms["{$formName}"];

                if (!form)
                    return;

                /*Получаем объекты кнопок*/
                var cancelButton = form.elements["{$cancelButtonID}"];
                var nextButton = form.elements["{$nextButtonID}"];
                var prevButton = form.elements["{$prevButtonID}"];
                var finishButton = form.elements["{$finishButtonID}"];

                /*Если в шаге только кнопка Отмена, то закроем окно мастера,
                    иначе запросим подтверждение*/
                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            /*Подтвержение по кнопке Отмена*/
            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            /*Закроем окошко мастера*/
            function CloseWindow()
            {
                if (self.parent.window.WizardWindow)
                    self.parent.window.WizardWindow.Close();
            }

        </script>
    </head>
    <body onload="OnLoad();">
        {#FORM_START#}
            <div id="border-box">
                <div id="step_info">
                    <div id="step_title">{$stepTitle}</div>
                    <div id="step_description">{$stepSubTitle}</div>
                </div>
                <div id="step_content_container">
                    {$strError}
                    <div id="step_content">{#CONTENT#}</div>
                </div>
            </div>
            <div id="step_buttons">{#BUTTONS#}</div>
        {#FORM_END#}
    </body>
</html>
HTML;
    }
}

Пример шаблона для использования в публичной части сайта

class MyPinkTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard();
        $obStep =& $wizard->GetCurrentStep();

        $wizardName = htmlspecialcharsEx($wizard->GetWizardName());

        //Получаем ошибки
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<tr><td style="padding-top: 10px; padding-left: 20px; color:red;">'.$strError.'</td></tr>';
        }

        //Заголовок и подзаголовок
        $stepTitle = $obStep->GetTitle();
        $stepSubTitle = $obStep->GetSubTitle();

        return <<<HTML

            {#FORM_START#}
            <table style="border:2px outset #D4D0C8; background-color: #FFDEDE;" border="0" cellpadding="0" cellspacing="0" height="370" width="100%">
                <tr>
                    <td style="background-color: #142F73" height="1"><span style="color:white; font-weight:bold; text-align:left; padding-left: 2px;">{$wizardName}</span></td>
                </tr>

                <tr>
                    <td style="height: 60px; border-bottom:2px groove  #aca899; background-color: #FFC4C4; padding: 8px;" valign="top">
                        <div style="padding-top: 5px; padding-left: 20px;"><b>{$stepTitle}</b></div>
                        <div style="padding-left: 40px;">{$stepSubTitle}</div>
                    </td>
                </tr>

                {$strError}

                <tr>
                    <td style="padding: 20px; padding-left: 28px;padding-right: 28px;" valign="top" id="wizard-content-area">{#CONTENT#}</td>
                </tr>

                <tr>
                    <td style="background-color: #FFC4C4; height: 40px; border-top:2px groove #ffffff; padding-right: 15px;" align="right">{#BUTTONS#}</td>
                </tr>
            </table>
            {#FORM_END#}

            <script type="text/javascript">

            function WizardOnLoad()
            {
                var cancelButton = document.forms["my_form"].elements["cancel_button"];
                var nextButton = document.forms["my_form"].elements["next_button"];
                var prevButton = document.forms["my_form"].elements["prev_button"];
                var finishButton = document.forms["my_form"].elements["finish_button"];

                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            function CloseWindow()
            {
                window.location = '/';
                return false;
            }

            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            WizardOnLoad();

            </script>

HTML;
    }
}


Запуск мастера

Запуск из административного раздела

На странице Списка мастеров [image] (Настройки > Настройки продукта > Список мастеров) в колонке Действия необходимо выбрать пункт Установить. Запустится pop-up окно c нужным мастером:

Запуск мастера из публичной части сайта

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); //Подключаем механизм создания мастеров
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/wizard.php");
$wizard = new CWizard("help:new_user");
$wizard->Install();
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>

Запуск не из репозитария /bitrix/wizards/

Существует также возможность определить шаги мастера в произвольном файле.
Запуск мастера не из репозитария /bitrix/wizards/ имеет 2 ограничения:

  • Механизм мастера создания сайта работать не будет;
  • Методы класса CWizard будут недоступны в переопределяемых методах шага.
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/wizard.php");

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("step1");
        $this->SetNextStep("step2");
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("step2");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1");
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetTitle("Третий шаг");
    }
}

//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package = null);

//Добавляем шаги
$wizard->AddStep(new Step1);
$wizard->AddStep(new Step2);
$wizard->AddStep(new Step3);

//Выводим на экран
$wizard->Display();

?>

<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>


Общие понятия

Общие понятия

Мастер создания сайта – это мастер, ориентированный на развёртывание полнофункционального сайта. Типичный конструктор (мастер) сайта представляет собой следующую последовательность шагов: Выбор типа сайта -> Выбор дизайна -> Выбор сервисов -> Адаптация дизайна (изменение заголовка, логотипа сайта и т.п.). С помощью API, предоставляемого системой, можно создать мастер с любой логикой. Однако чтобы облегчить разработчику задачу по созданию именно мастера создания сайта, существует упрощённый механизм. Вместо создания шагов по выбору типа сайта, дизайна, сервисов и др. в файле wizard.php, разработчик создает описательные файлы, на основе которых "на лету" генерируются соответствующие шаги.

В общем случае, сайт в «1C-Битрикс: Управление сайтом» представляет собой:

  • шаблоны сайта;
  • компоненты;
  • публичные файлы;
  • демо-данные (информационные блоки, веб-формы, опросы и др.).

Упрощённый механизм создания мастера сайта представляет собой следующую последовательность шагов:
Приветствие -> Лицензионное соглашение -> Выбор типа сайта -> Выбор группы шаблонов -> Выбор шаблона сайта -> Выбор сервисов -> Готовность к установке -> Установка сайта -> Установка шаблона -> Установка сервисов -> Установка завершена -> Установка прервана.

  • Шаг Приветствие – первый шаг мастера;
  • Шаг Лицензионное соглашение выводит текст лицензионного соглашения и обязует пользователя с ним согласиться; данный шаг определяется файлом license.php;
  • Шаг Выбор типа сайта предлагает выбрать один тип сайта из списка, определяется файлом .sites.php;
  • Шаг Выбор группы шаблонов предлагает выбрать одну группу шаблонов сайта из списка, определяется файлом .templates.php;
  • Шаг Выбор шаблона сайта предлагает выбрать один шаблон сайта из списка, определяется файлом .templates.php и директорией templates, находящейся в папке мастера;
  • Шаг Выбор сервисов предлагает выбрать устанавливаемые на сайт сервисы, определяется файлом .services.php;
  • Шаг Готовность к установке – промежуточный шаг между шагами выбора и шагами установки, суммирует все данные, установленные пользователем в шагах выбора;
  • Шаг Установка сайта выполняет копирование файлов, зависящих от выбранного типа сайта;
  • Шаг Установка шаблона копирует выбранный шаблон в директорию /bitrix/templates/, регистрирует его в системе как шаблон по умолчанию для сайта по умолчанию, копирует дополнительные файлы, зависящие от выбранного шаблона;
  • Шаг Установка сервисов копирует файлы выбранных сервисов;
  • Шаг Установка завершена является конечным шагом мастера;
  • Шаг Установка прервана является конечным шагом мастера, переход на этот шаг осуществляется по нажатию кнопки "Отмена" в шагах выбора.

Шаги Приветствие, Готовность к установке, Установка завершена и Установка прервана всегда присутствуют в цепочке шагов мастера создания сайта. Остальные шаги могут отсутствовать. После любого шага, кроме шага Выбора группы можно добавить свои пользовательские шаги.

Физическое расположение мастера создания сайта такое же, как и у обычного мастера. Если в директории мастера есть файл wizard.php, то мастер состоит из тех шагов, которые описаны в этом файле. Если файла wizard.php нет, то считается, что это мастер создания сайта, в папке мастера ищутся файлы описания и на их основе генерируются шаги.

Смотрите также

  • Создание мастера создания сайта [image] в курсе Разработчик Bitrix Framework
  • Установка иконки мастера настройки сайта [image] в курсе Разработчик Bitrix Framework


Структура файлов мастера создания сайта

Папка мастера создания сайта может содержать следующие файлы и папки:

  • Файл .description.php, содержащий название, описание, а также ряд других характеристик мастера. Этот файл должен всегда присутствовать в папке мастера.

  • Файл .sites.php, описывающий шаги Выбор типа сайта и Установка сайта. Тип сайта – сущность, которая может объединять группы шаблонов, шаблоны, сервисы. От выбора типа сайта может зависеть дальнейший выбор группы шаблонов, шаблонов сайта и сервисов. Этот файл может отсутствовать в папке мастера.

  • Файл .templates.php, описывающий шаги Выбор группы шаблонов, Выбор шаблона и Установка шаблона. В файле .templates.php можно описать зависимости шаблона от типа сайта, определить группы шаблонов. Этот файл может отсутствовать в папке мастера.

  • Подпапка templates, содержащая шаблоны сайта. Если в этой папке есть шаблоны, то шаги Выбор шаблона и Установка шаблона добавятся в мастер автоматически. В файле .templates.php описываются шаблоны, находящиеся в подпапке templates. Эта директория может отсутствовать в папке мастера.

  • Файл .services.php, описывающий шаги Выбор сервисов и Установка сервисов. Этот файл может отсутствовать в папке мастера. Под сервисом понимается совокупность программных модулей (публичных файлов, компонентов, данных), направленных на реализацию конкретного функционала сайта. Примерами сервисов могут быть доска объявлений, фотогалерея, каталог ссылок, каталог товаров, новости, форум и т.п.

  • Подпапка lang, содержащая языковые сообщения (перевод) мастера. В этой папке находятся подпапки с именами, равными кодам языков. В этих подпапках находятся файлы языковых сообщений (переводов) мастера. Файл языковых сообщений для какого-либо файла мастера должен иметь такое же имя, как и файл мастера и находиться в той же иерархии относительно папки /lang/код_языка/, в которой файл располагается относительно папки мастера. Например, языковой файл с английскими фразами для файла /.sites.php требуется располагать по пути /lang/en/.sites.php. Подпапка lang может отсутствовать, если в мастере нет зависящих от языка фраз;

  • Файл license.php, определяющий шаг Лицензионное соглашение. Если в директории мастера создания сайта лежит файл license.php (например, /bitrix/wizards/my_company/demo/license.php), то после шага Приветствие автоматически добавится шаг Лицензионное соглашение. В этом шаге пользователю будет предложено согласиться с лицензионным соглашением, текст которого находится в файле license.php. Файл с текстом лицензионного соглашения может зависеть от языка интерфейса мастера. Для это сначала ищется файл license_идентификатор_текущего_языка.php и если такого файла нет, текст берется из файла license.php.

  • Любые другие папки и файлы с ресурсами, необходимыми мастеру. Все ресурсы мастера должны находиться в папке мастера.


Файл описания мастера создания сайта

В файле .description.php определяется массив $arWizardDescription, который описывает характеристики мастера. Структура типичного файла .description.php такова:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Сайт компании",
    "DESCRIPTION" => "Мастер создания сайта компании",
    "ICON" => "images/icon.gif",
    "VERSION" => "1.0.3",
    "DEPENDENCIES" => Array(
        "main" => "6.0.5",
    ),

    "TEMPLATES" => Array(
        Array("SCRIPT" => "scripts/wizard_template.php", "CLASS" => "DemoSiteTemplate")
    ),

    "STEPS_SETTINGS" => Array(
        "WELCOME" => Array(
            "CONTENT" => "Добро пожаловать в мастер создания сайта компании",
        ),

        "START_INSTALL" => Array(
        "CLASS" => "MyStartInstall",
        "SCRIPT" => "scripts/start_install.php",
        ),
    )
);

?>

Массив $arWizardDescription может иметь следующие ключи:

  • "NAME" – название мастера;
  • "DESCRIPTION" – описание мастера;
  • "VERSION" – версия мастера;
  • "ICON" – иконка мастера, путь к файлу относительно папки мастера;
  • "CHARSET" - кодировка файлов мастера. Используется для создания дистрибутива с решением.
  • "DEPENDENCIES" – зависимости мастера от модулей. Значением этого ключа должен быть массив вида Array("ID модуля"=>"версия модуля" [, ...]);
  • "TEMPLATES" – шаблоны мастера. Значением этого ключа должен быть массив, элементами которого должен быть массив, имеющий следующие ключи:
    • "CLASS" – имя класса, описывающего шаблон;
    • "SCRIPT" – путь к файлу, в котором определён класс шаблона относительно папки мастера;
    • "STEP" – ID шага, для которого определяется шаблон. Если ключ "STEP" не указан, шаблон будет определён для всех шагов мастера.
  • "STEPS_SETTINGS" – настройки системных шагов. Значением этого ключа является массив, описывающий настройки системных шагов. Массив состоит из элементов следующего вида:

    "Код системного шага" => Array(
    "TITLE" => заголовок шага,
    "SUBTITLE" => подзаголовок шага,
    "CONTENT" => описание шага,
    "CLASS" => имя класса, определяющего пользовательский шаг,
    "SCRIPT" => путь к файлу, в котором определён класс CLASS и/или классы STEPS относительно папки мастера,
    "STEPS" => массив названий классов вида Array("ID шага" => "Название класса шага"), определяющих дополнительные шаги после системных шагов Приветствие, Лицензионное соглашение, Готовность к установке, Установка завершена, Установка прервана;
    )

  • Код системного шага может принимать следующие значения:

    • WELCOME – шаг Приветствие;
    • LICENSE – шаг Лицензионное соглашение;
    • SELECT_SITE – шаг Выбор сайта;
    • SELECT_GROUP – шаг Выбор группы шаблона;
    • SELECT_TEMPLATE – шаг Выбор шаблона;
    • SELECT_SERVICE – шаг Выбор сервисов;
    • START_INSTALL – шаг Готовность к установке;
    • INSTALL_SITE – шаг Установка сайта;
    • INSTALL_TEMPLATE – шаг Установка шаблона;
    • INSTALL_SERVICE – шаг Установка сервиса;
    • FINISH – шаг Установка завершена;
    • CANCEL – шаг Установка прервана;

    Только шаги Приветствие, Готовность к установке, Установка завершена, Установка прервана можно подменить на собственные пользовательские шаги. Для этого необходимо в ключах CLASS и SCRIPT указать имя класса и путь к файлу, в котором определён класс, соответственно.


Файл описания типов сайта .sites.php

Файл .sites.php определяет шаги Выбор типа сайта и Установка сайта в цепочке шагов мастера создания сайта. Тип сайта – сущность, которая может объединять группы шаблонов, шаблоны, сервисы. От выбора типа сайта может зависеть дальнейший выбор группы шаблонов, шаблонов сайта, сервисов. Если файла .sites.php нет в папке мастера, то шаги Выбор типа сайта и Установка сайта отсутствуют.

Структура типичного файла .sites.php такова:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

$arWizardSites = Array(

    "homepage" => Array(
        "NAME" => "Сайт-визитка",
        "DESCRIPTION" => "Представляет набор страниц, создаваемых пользователем. ",
        "FILES" => Array(
            Array("FROM" => "public/homepage/", "TO" => "/"),
            Array("DELETE" => "/special_file.php"),
        ),
        "DEFAULT" => "Y",
        "INSTALL_STEPS" => Array(
            "SCRIPT" => "scripts/homepage_site.php",
            "STEPS" => Array(
                "homepagestep1" => "HomePageStep1",
                "homepagestep2" => "HomePageStep2",
                "homepagestep3" => "HomePageStep3",
            )
        ),
    ),

    "blog" => Array(
        "NAME" => "Блог",
        "DESCRIPTION" => "Публичный сетевой дневник пользователя.",
        "FILES" => Array(
            Array("FROM" => "public/blog/", "TO" => "/"),
        ),

        "SELECT_STEPS" => Array(
            "SCRIPT" => "scripts/blog_site.php",
            "STEPS" => Array(
                "blogstep1" => "BlogStep1",
                "blogstep2" => "BlogStep2",
            )
        ),
    ),

    "gallery" => Array(
        "NAME" => "Фотогалерея",
        "DESCRIPTION" => "Фотогалерея",
        "FILES" => Array(
            Array("FROM" => "public/gallery/", "TO" => "/"),
        ),
    ),

);
?>

В файле .sites.php определяется массив $arWizardSites, состоящий из элементов следующего вида:

"ID сайта" => Array(
    "NAME" => имя сайта,
    "DESCRIPTION" => описание сайта,
    "SCREENSHOT" => путь относительно папки мастера к изображению сайта,
    "PREVIEW" => путь относительно папки мастера к уменьшенной копии изображения сайта,
    "DEFAULT" => если равно "Y", то данный сайт будет выбран по умолчанию
    "SELECT_STEPS" => массив, описывающий дополнительные шаги после шага Выбор сайта
     Array(
       "SCRIPT" => путь к файлу с классами шагов относительно папки мастера
       "STEPS" => массив шагов, добавляемых в мастер
        Array(
          "ID шага 1" => "Имя класса шага 1",
          "ID шага 2" => "Имя класса шага 2",
          …
        )
    ),

    "INSTALL_STEPS" => массив, описывающий дополнительные шаги после шага Установка сайта
     Array(
      "SCRIPT" => путь к файлу с классами относительно папки мастера,
      "STEPS" => массив шагов, добавляемых в мастер
       Array(
          ID шага 1" => "Имя класса шага 1",
          ID шага 2" => "Имя класса шага 2",
          …
       )
    ),

    "FILES" => массив, описывающий файлы для копирования/удаления
     Array(
      Array(
        "FROM" => путь к каталогу (файлу) относительно папки мастера,
        содержимое которого нужно скопировать,
        "TO" => путь к файлу или папке относительно корня сайта,
        куда будут скопированы файлы,
        "REWRITE" => перезаписывать ли существующие файлы;
        необязательный параметр, по умолчанию равен "Y" (перезаписывать),
        "RECURSIVE" => копировать ли рекурсивно все подкаталоги и файлы,
        входящие в путь, указанный в параметре FROM; необязательный параметр,
        по умолчанию равен "Y" (копировать рекурсивно),
        "DELETE" => путь к папке (файлу), которую нужно удалить
      ),
      …
     )
),


Файл описания шаблонов сайта .templates.php

Файл .templates.php определяет шаги Выбор группы шаблонов, Выбор шаблона и Установка шаблона в цепочке шагов мастера создания сайта. Если в папке мастера нет файла .templates.php, то шаги Выбор группы шаблонов, Выбор шаблона и Установка шаблона отсутствуют. Группа шаблонов предоставляет возможность сгруппировать шаблоны сайта, например, по тематике или компоновке (layout).

В файле .templates.php описываются шаблоны, находящиеся в поддиректории templates папки мастера. В поддиректории templates должны находиться папки шаблонов сайта. Данные (название, описание, скриншоты шаблонов сайта) для шага Выбор шаблона берутся из файлов (description.php, screen.gif и preview.gif), находящихся в папке шаблона.

Если в поддиректории templates есть шаблоны сайтов, а файл .templates.php отсутствует, то шаги Выбор шаблона и Установка шаблона все равно добавятся в цепочку шагов мастера создания сайта.

Структура типичного файла .templates.php такова:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

$arWizardTemplates = Array(

    "GROUPS" => Array(
        "BUSINESS" => Array(
            "NAME" => GetMessage("TEMPLATE_GROUP_BUSINESS"),
            "SITE_ID" => "homepage",
            "SCREENSHOT" => "images/comp1.gif",
            "PREVIEW" => "images/comp1_prev.gif"
        ),

        "COMPUTER" => Array(
            "NAME" => "Компьютер",
            "SITE_ID" => "homepage",
            "SCREENSHOT" => "images/comp2.gif",
            "PREVIEW" => "images/comp2_prev.gif"
        ),

        "BLOGS" => Array(
            "NAME" => "Блоги",
            "SITE_ID" => "blog",
            "SCREENSHOT" => "images/comp3.gif",
            "PREVIEW" => "images/comp3_prev.gif",
            "DEFAULT" => "Y",
        ),

        "CARS" => Array(
            "NAME" => "Машины",
            "SITE_ID" => Array("blog", "homepage"),
            "SCREENSHOT" => "images/comp4.gif",
            "PREVIEW" => "images/comp4_prev.gif"
        ),
    ),

    "TEMPLATES" => Array(
        "template1" => Array(
            "GROUP_ID" => "BUSINESS",
            "INSTALL_STEPS" => Array(
                "SCRIPT" => "scripts/template1.php",
                "STEPS" => Array(
                    "step100" => "Step100",
                    "step200" => "Step200",
                )
            ),
        ),

        "template2" => Array(
            "GROUP_ID" => "BUSINESS",
        ),

        "three_columns" => Array(
            "GROUP_ID" => Array("BLOGS", "BUSINESS", "CARS", "COMPUTER"),
            "DEFAULT" => "Y",
            "FILES" => Array(
                Array("FROM" => "files/three_columns", "TO" => "/"),
            ),
            "SELECT_STEPS" => Array(
                "SCRIPT" => "three_columns.php",
                "STEPS" => Array(
                    "templatestep" => "TemplateStep",
                )
            ),
        ),

        "two_columns" => Array(
            "GROUP_ID" => "COMPUTER",
        ),
    ),

);

?>
В файле .templates.php определяется массив $arWizardTemplates, имеющий следующие ключи:
  • "GROUPS" – значением этого ключа является массив групп шаблонов. Если этот ключ не определён, шаг Выбор группы шаблонов отсутствует в цепочке шагов мастера создания сайта. Массив групп шаблонов состоит из элементов следующего вида:
    "ID группы шаблона" => Array(
      "NAME" => имя группы шаблона
      "SITE_ID" => ID сайта (одиночное значение или массив)
      "SCREENSHOT" => путь относительно папки мастера к картинке группы
      "PREVIEW" => путь относительно папки мастера к уменьшенной копии картинки группы
      "DEFAULT" => если равно "Y", то данная группа будет выбрана по умолчанию
    ),
  • "TEMPLATES" – значением этого ключа является массив шаблонов. Массив шаблонов состоит из элементов следующего вида:
    "ID шаблона" => Array(
      "GROUP_ID" => ID группы, к которой принадлежит шаблон (одиночное значение или массив)
      "SITE_ID" => ID сайта, к которому принадлежит шаблон (одиночное значение или массив)
      "DEFAULT" => если параметр равен "Y", то данный шаблон будет
      выбран по умолчанию в шаге Выбор шаблона
      "SORT" => индекс сортировки
  "REWRITE" => если параметр равен "N", то выбранный шаблон не будет перезаписывать файлы
      существующего в системе шаблона при совпадении идентификаторов;
      по умолчанию параметр равен "Y" (перезаписывать);
      "SELECT_STEPS" => массив, описывающий дополнительные шаги после шага Выбор шаблона
   Array(
     "SCRIPT" => путь к файлу с классами шагов относительно папки мастера
         "STEPS" => массив шагов, добавляемых в мастер
          Array(
            "ID шага 1" => "Имя класса шага 1",
            "ID шага 2" => "Имя класса шага 2",
            …
          )
       )
      ),
      "INSTALL_STEPS" => массив, описывающий дополнительные шаги после шага Установка шаблона
   Array(
     "SCRIPT" => путь к файлу с классами относительно папки мастера,
         "STEPS" => массив шагов, добавляемых в мастер
          Array(
            "ID шага 1" => "Имя класса шага 1",
            "ID шага 2" => "Имя класса шага 2",
            …
          )
       ),
      "FILES" => массив, описывающий файлы для копирования/удаления
      Array(
       Array(
         "FROM" => путь к каталогу (файлу) относительно папки мастера,
         содержимое которого нужно скопировать,
         "TO" => путь к файлу или папке относительно корня сайта,
         куда будут скопированы файлы
         "REWRITE" => перезаписывать ли существующие файлы;
         необязательный параметр, по умолчанию равен "Y" (перезаписывать),
         "RECURSIVE" => копировать ли рекурсивно все подкаталоги и файлы,
         входящие в путь, указанный в параметре FROM;
         необязательный параметр, по умолчанию равен "Y" (копировать рекурсивно),
         "DELETE" => путь к папке (файлу), которую нужно удалить
       ),
       …
      )
    ),


Файл описания сервисов сайта .services.php

Файл .services.php определяет шаги Выбор сервисов и Установка сервисов в цепочке шагов мастера создания сайта. Если в папке мастера нет файла .services.php, то шаги Выбор сервисов и Установка сервисов отсутствуют. Под сервисом понимается совокупность программных модулей (публичных файлов, компонентов, данных), направленных на реализацию конкретного функционала сайта. Примерами сервисов могут быть доска объявлений, фотогалерея, каталог ссылок, каталог товаров, новости, форум и т.п.

Структура типичного файла .services.php такова:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardServices = Array(
    "news" => Array(
        "NAME" => "Новости",
        "DESCRIPTON" => "Новости с поиском, рсс и разделами",
        "SITE_ID" => Array("blog","homepage"),
        "ICON" => "images/icon.gif",
        "FORM" => Array(
            "TYPE" => "radio",
            "DEFAULT" => "Y",
        ),

        "INSTALL_STEPS" => Array(
            "SCRIPT" => "scripts/news.php",
            "STEPS" => Array(
                "newsstep1" => "NewsStep1",
                "newsstep2" => "NewsStep2",
                "newsstep3" => "NewsStep3",
            )
        ),
        "FILES" => Array(
            Array("DELETE" => "/folder"),
            Array("FROM" => "files/blog_site", "TO" => "/myblog"),
        )
    ),

    "forum" => Array(
        "NAME" => "Форум",
        "ICON" => "images/icon2.gif",
        "FORM" => Array(
            "TYPE" => "radio",
        ),
        "DESCRIPTON" => "Новости с поиском, рсс и разделами",
        "SITE_ID" => Array("blog","homepage"),
        "DEFAULT" => "Y",
        "FILES" => Array(
            Array("FROM" => "news/components", "TO" => "/bitrix/components"),
            Array("FROM" => "news/public", "TO" => "/news")
        )
    ),

    "articles" => Array(
        "NAME" => "Статьи",
        "DESCRIPTON" => "Статьи",
        "SITE_ID" => Array("blog","homepage"),
        "SELECT_STEPS" => Array(
            "SCRIPT" => "scripts/articles.php",
            "STEPS" => Array(
                "article1" => "ArticleStep1",
                "article2" => "ArticleStep2",
            )
        )
    ),

    "foto" => Array(
        "NAME" => GetMessage("SERVICE_FOTO"),
        "FORM" => Array(
            "TYPE" => "checkbox",
            "DEFAULT" => "Y",
        ),
        "DESCRIPTON" => "Красивая фотогалерея на вашем сайте",
        "SITE_ID" => Array("blog","homepage"),
    ),

    "blog_components" => Array(
        "NAME" => "Компоненты Блога",
        "SITE_ID" => "blog",
        "DESCRIPTON" => "Компоненты Блога",
        "FORM" => Array(
            "TYPE" => "checkbox",
            "DEFAULT" => "Y",
        ),
    ),

    "homepage_components" => Array(
        "NAME" => "Компоненты дом. странички",
        "SITE_ID" => "homepage",
        "FORM" => Array(
            "DEFAULT" => "Y",
            "TYPE" => "checkbox"
        ),
        "DESCRIPTON" => "Компоненты дом. странички",
    ),
);

?>

В файле .services.php определяется массив $arWizardServices, состоящий из элементов следующего вида:

"ID сервиса" => Array(
  "NAME" => имя сервиса,
  "DESCRIPTON" => описание сервиса,
  "ICON" => иконка сервиса, путь к файлу относительно папки мастера,
  "SITE_ID" => ID сайта, к которому принадлежит сервис (одиночное значение или массив)
  "FORM" => массив, описывающий вид элемента Web-формы
   Array(
     "TYPE" => тип элемента Web-формы. Допустимые значения "radio" (переключатель),
     "checkbox" (флажок) и "required" (обязателен для установки).
      По умолчанию равен "checkbox" (флажок),
     "DEFAULT" => если равно "Y", данный сервис будет выбран по умолчанию,
     "GROUP" => ID группы, к которой принадлежит элемент Web-формы.
     Применяется для группировки переключателей (radio) Web-формы.
   ),
  "SELECT_STEPS" => массив, описывающий дополнительные шаги после шага Выбор сервисов
   Array(
     "SCRIPT" => путь к файлу с классами шагов относительно папки мастера
     "STEPS" => массив шагов, добавляемых в мастер
      Array(
        "ID шага 1" => "Имя класса шага 1",
        "ID шага 2" => "Имя класса шага 2",
        …
      )
   )
  "INSTALL_STEPS" => массив, описывающий дополнительные шаги после шага Установка сервиса
   Array(
     "SCRIPT" => путь к файлу с классами относительно папки мастера,
     "STEPS" => массив шагов, добавляемых в мастер
      Array(
        "ID шага 1" => "Имя класса шага 1",
        "ID шага 2" => "Имя класса шага 2",
        …
      )
   ),
  "FILES" => массив, описывающий файлы для копирования/удаления
   Array(
    Array(
      "FROM" => путь к каталогу (файлу) относительно папки мастера,
      содержимое которого нужно скопировать,
      "TO" => путь к файлу или папке относительно корня сайта,
      куда будут скопированы файлы
      "REWRITE" => перезаписывать ли существующие файлы;
      необязательный параметр, по умолчанию равен "Y" (перезаписывать),
      "RECURSIVE" => копировать ли рекурсивно все подкаталоги и файлы,
      входящие в путь, указанный в параметре FROM;
      необязательный параметр, по умолчанию равен "Y" (копировать рекурсивно),
      "DELETE" => путь к папке (файлу), которую нужно удалить
    ),
    …
   )
),


Пользовательские шаги

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

В массивах $arWizardSites, $arWizardTemplates, $arWizardServices (файлы .sites.php, .templates.php, .services.php соответственно) для описания пользовательских шагов существуют 2 ключа: "SELECT_STEPS" и "INSTALL_STEPS". Ключ "SELECT_STEPS" описывает пользовательские шаги выбора, "INSTALL_STEPS" – пользовательские шаги установки.

Типичное описание пользовательских шагов:

"SELECT_STEPS" => массив, описывающий дополнительные шаги
Array(
  "SCRIPT" => путь к файлу с классами шагов относительно папки мастера
  "STEPS" => массив шагов, добавляемых в мастер
   Array(
     "ID шага 1" => "Имя класса шага 1",
     "ID шага 2" => "Имя класса шага 2",
     …
   )
)

В файле, указанном в ключе "SCRIPT", необходимо описать (подробнее см. Определение шагов мастера) классы шагов, добавляемых в мастер создания сайта. Число добавляемых шагов неограниченно. Если количество добавляемых шагов превышает один шаг, то необходимо учитывать следующее правило описания пользовательских шагов в ключе "STEPS":

  • Первый элемент массива шагов является первым шагом цепочки пользовательских шагов. Именно на него будет ссылаться кнопка Далее в стандартных шагах.
  • Последний элемент массив является последним шагом цепочки пользовательских шагов. Именно на него будет ссылаться кнопка Назад в стандартных шагах.

Кроме того, шаги Приветствие, Готовность к установке, Установка завершена, Установка прервана можно полностью подменить на собственные пользовательские шаги. Для этого необходимо в ключах CLASS и SCRIPT массива $arWizardDescription указать имя класса и путь к файлу, в котором определён класс, соответственно. Подробнее см. файл описания мастера создания сайта .description.php.


Идентификаторы системных шагов

Описание

В пользовательских шагах мастера создания сайта часто бывает необходимо перейти (с помощью метода СWizardBase::SetCurrentStep) на произвольный системный шаг. Ниже представлена таблица идентификаторов системных шагов, которые определяются PHP-константами.

Таблица идентификаторов системных шагов

Константа | Шаг
BX_WIZARD_WELCOME_ID | Приветствие
BX_WIZARD_LICENSE_ID | Лицензионное соглашение
BX_WIZARD_SELECT_SITE_ID | Выбор типа сайта
BX_WIZARD_SELECT_GROUP_ID | Выбор группы шаблонов
BX_WIZARD_SELECT_TEMPLATE_ID | Выбор шаблона сайта
BX_WIZARD_SELECT_SERVICE_ID | Выбор сервисов сайта
BX_WIZARD_START_INSTALL_ID | Готовность к установке
BX_WIZARD_INSTALL_SITE_ID | Установка сайта
BX_WIZARD_INSTALL_TEMPLATE_ID | Установка шаблона
BX_WIZARD_INSTALL_SERVICE_ID | Установка сервисов
BX_WIZARD_FINISH_ID | Установка завершена
BX_WIZARD_CANCEL_ID | Установка прервана

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

<?
class MyStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Мой шаг");
    }

    function OnPostForm()
    {
        $wizard =& $this->GetWizard();
        $login = $wizard->GetVar("login");

        if ($login == "admin")
        {
            $wizard->SetCurrentStep(BX_WIZARD_START_INSTALL_ID);//Перейдем на шаг Готовность к установке
            return;
        }
    }
}
?>


Создание дистрибутива с решением

Создание дистрибутива с решением

Начиная с седьмой версии, дистрибутив «1С-Битрикс:Управление сайтом» представляет собой два мастера: мастер установки продукта и мастер установки демо-сайта. Первый устанавливает все модули в минимальной объеме (таблицы базы данных, агенты, события, файлы). Второй - пример сайта, демонстрирующего функциональность продукта.

Для запуска своего мастера создания сайта необходимо добавить в дистрибутив мастер с названием demo. Это мастер может находится как в собственном namespace'е (в подпапке директории /bitrix/wizards/, например, /bitrix/wizards/my_company/demo/) так и непосредственно в папке /bitrix/wizards/.

Для создания дистрибутива со своим решением необходимо выполнить следующее:
  1. Изготовить мастер создания сайта, который развернет решение на сайте клиента. Мастер должен иметь название demo. В мастере может находиться лицензия решения.
  2. Скачать демо версию или дистрибутив в исходных текстах нужной редакции с сайта «1С-Битрикс». Распаковать архив.
  3. В папку /bitrix/wizards/<опциональная подпапка> скопировать свой мастер.
  4. Если в решение включаются дополнительные модули, скопировать их в папку /bitrix/modules. Модули должны удовлетворять новым требованиям инсталлятора продукта.
  5. В корне дистрибутива создать файл install.config следующей структуры:
    <config>
 <productName>Название продукта</productName>
 <welcomeText>Текст приветствия мастера</welcomeText>
 <imageLogoSrc>Путь к логотипу компании относительно корня сайта</imageLogoSrc>
 <imageBoxSrc>Путь к изображению коробки продукта относительно корня сайта</imageBoxSrc>
 <copyrightText>Текст копирайта</copyrightText>
 <supportText>Ссылки на инструкцию по установке и техподдержку </supportText>
</config>
  6. Если в этом файле описываются imageLogoSrc и imageBoxSrc, то скопировать эти картинки в указанные папки (можно и на корень). Если текст приветствия включает картинки, их тоже нужно скопировать.
  7. Запаковать все файлы в архив нужного формата.
  8. Если требуется создать EXE, то:
    • Скачать bitrix_win_installer.zip
    • Распаковать в любую папку
    • Скопировать все файлы проекта в папку solution
    • Запустить run.cmd
    • Изменить все необходимые параметры (если файлы не были скопированы, то указать на папку где они находятся)
    • Нажать иконку Compile;
    • Готовый дистрибутив будет в папке output

Установка дистрибутива в кодировке UTF-8

Если пользователь устанавливает продукт в кодировке UTF-8, то файлы мастера с расширениями .php, .sql, .js, .snp, .csv конвертируются в кодировку UTF-8. По умолчанию считается, что файлы мастера находятся в кодировке windows-1251. Файлы должны располагаться в папке /ru данного мастера. Например: \bitrix\wizards\bitrix\demo\modules\blog\public\ru\. Если файлы мастера созданы в другой кодировке, то необходимо ее прописать в ключе СHARSET массива $arWizardDescription (см. Файл описания мастера создания сайта).

Смотрите также

  • Сборка дистрибутива решения


Отправить отзыв по этому разделу

Примеры

  • Мастер создания нового пользователя
  • Мастер создания сайта: установка шаблона
  • Мастер создания сайта: пользовательские шаги


Мастер создания нового пользователя

Данный пример демонстрирует следующие аспекты программирования мастеров:

  • Обработку входных даннных;
  • Обработку ошибок шага;
  • Javascript-проверку входных данных;
  • Работу с элементами Web-форм;
  • Работу с переменными мастера.
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class MainUserFields extends CWizardStep
{
    function InitStep()
    {
        //ID шага
        $this->SetStepID("main_fields");

        //Заголовок
        $this->SetTitle("Основные поля пользователя");
        $this->SetSubTitle("Введите логин, пароль и e-mail нового пользователя");

        //Навигация
        $this->SetNextStep("additional_fields");
        $this->SetCancelStep("cancel");

        $wizard =& $this->GetWizard(); // Получаем ссылку на объект мастера
        $wizard->SetDefaultVar("active", "Y"); //Устанавливаем значение по умолчанию
    }

    function OnPostForm()
    {
        $wizard =& $this->GetWizard();

        if ($wizard->IsCancelButtonClick())
            return;

        $login = $wizard->GetVar("login");
        if (strlen($login) < 3)
            $this->SetError("Логин должен быть больше 3 символов", "login");
        else
        {
            $obUser = CUser::GetList($by="id", $order="desc", Array("LOGIN_EQUAL" => $login));
            if ($obUser->Fetch())
                $this->SetError("Такой логин уже существует", "login");
        }

        $password = $wizard->GetVar("password");
        if (strlen($password) < 6)
            $this->SetError("Пароль должен быть не меньше 6 символов", "password");

        $email = $wizard->GetVar("email");
        if (strlen($email) < 3 || !check_email($email))
            $this->SetError("Вы ввели неверный E-mail", "email");
    }

    function ShowStep()
    {
        $this->content .= '<table class="wizard-data-table">';

        $this->content .= '<tr><th align="right">Активен:</th><td>'.$this->ShowCheckBoxField("active", "Y").'</td></tr>';

        $this->content .= '<tr><th align="right"><span class="wizard-required">*</span>Логин (мин. 3 символа):</th><td>';
        $this->content .= $this->ShowInputField("text", "login", Array("size" => 25));
        $this->content .= '</td></tr>';

        $this->content .= '<tr><th align="right"><span class="wizard-required">*</span>Пароль (мин. 6 символов):</th><td>';
        $this->content .= $this->ShowInputField("password", "password", Array("size" => 25));
        $this->content .='</td></tr>';

        $this->content .= '<tr><th align="right"><span class="wizard-required">*</span>E-mail:</th><td>';
        $this->content .= $this->ShowInputField("text", "email", Array("size" => 25));
        $this->content .= '</td></tr>';

        $this->content .= '<tr><th align="right">Имя:</th><td>'.$this->ShowInputField("text", "user_name", Array("size" => 25)).'</td></tr>';
        $this->content .= '<tr><th align="right">Фамилия:</th><td>'.$this->ShowInputField("text", "user_surname", Array("size" => 25)).'</td></tr>';

        $this->content .= '</table>';
        $this->content .= '<br /><div class="wizard-note-box"><span class="wizard-required">*</span> Поля, обязательные для заполнения.</div>';

        $wizard =& $this->GetWizard();
        $formName = $wizard->GetFormName();
        $nextButton = $wizard->GetNextButtonID();

        $login = $wizard->GetRealName("login");
        $password = $wizard->GetRealName("password");
        $email = $wizard->GetRealName("email");

        $this->content .= <<<JS
            <script type="text/javascript">

                function CheckMainFields()
                {
                    var form = document.forms["{$formName}"];
                    if (!form)
                        return;

                    var login = form.elements["{$login}"].value;
                    var password = form.elements["{$password}"].value;
                    var email = form.elements["{$email}"].value;

                    var error = "";

                    if (login.length < 3)
                        error += "Логин должен быть больше 3 символов.\\n";

                    if (password.length < 6)
                        error += "Пароль должен быть не меньше 6 символов.\\n";

                    if (email.length < 3)
                        error += "Вы ввели неверный E-mail.\\n";

                    if (error.length > 0)
                    {
                        alert(error);
                        return false;
                    }
                }

                function AttachEvent()
                {
                    var form = document.forms["{$formName}"];
                    if (!form)
                        return;

                    var nextButton = form.elements["{$nextButton}"];
                    if (!nextButton)
                        return;

                    nextButton.onclick = CheckMainFields;

                }

                if (window.addEventListener)
                    window.addEventListener("load", AttachEvent, false);
                else if (window.attachEvent)
                    window.attachEvent("onload", AttachEvent);
                //setTimeout(AttachEvent, 500);
            </script>
JS;
    }
}

class AddtionalUserFields extends CWizardStep
{
    function InitStep()
    {
        //ID шага
        $this->SetStepID("additional_fields");

        //Заголовок
        $this->SetTitle("Дополнительные поля пользователя");
        $this->SetSubTitle("Введите дополнительные поля нового пользователя");

        //Навигация
        $this->SetPrevStep("main_fields");
        $this->SetNextStep("user_summary");
        $this->SetCancelStep("cancel");

        $wizard =& $this->GetWizard();
        $wizard->SetDefaultVar("group_id", "2");
    }

    function OnPostForm()
    {
        $this->SaveFile("photo", Array("max_file_size" => 1024*50, "extensions" => "gif,jpg,png"));
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();

        $this->content .= '<table class="wizard-data-table">';

        $this->content .= '<tr><th align="right">Пол:</th><td>';
        $this->content .= $this->ShowRadioField("sex", "M", Array("id" => "sex_m")).'<label for="sex_m">Мужской</lable>';
        $this->content .= $this->ShowRadioField("sex", "F", Array("id" => "sex_f")).'<label for="sex_f">Женский</lable>';
        $this->content .= '</td></tr>';

        $this->content .= '<tr><th align="right">Фото<br />(max. 50кб, <br />JPG, GIF, PNG):</th><td>';
        $this->content .= $this->ShowFileField("photo", Array("size" => 25, "max_file_size" => 1024*50));
        $this->content .= "<br />".CFile::ShowImage($wizard->GetVar("photo"), 150, 150, "border=0", "", true);
        $this->content .= '</td></tr>';

        $obGroup = CGroup::GetList($by="name", $order="asc");
        $arSelectGroup = Array();
        while ($arGroup = $obGroup->Fetch())
            $arSelectGroup[$arGroup["ID"]] = htmlspecialchars($arGroup["NAME"]);

        $this->content .= '<tr><th align="right" valign="top">Группа:</th><td>';
        $this->content .= $this->ShowSelectField("group_id[]", $arSelectGroup , Array("multiple" => "multiple", "size" => "10"));
        $this->content .= '</td></tr>';

        $this->content .= '</table>';
    }
}

class UserSummary extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("user_summary");

        //Заголовок
        $this->SetTitle("Создание пользователя");
        $this->SetSubTitle("Нажмите кнопку <i>Создать</i>, чтобы добавить нового пользователя");

        //Навигация
        $this->SetPrevStep("additional_fields");
        $this->SetNextStep("success");
        $this->SetNextCaption("Создать");
        $this->SetCancelStep("cancel");
    }

    function OnPostForm()
    {
        $wizard =& $this->GetWizard();

        if (!$wizard->IsNextButtonClick())
            return;

        //Добавляем пользователя
        $user = new CUser;
        $arFields = Array(
            "NAME" => $wizard->GetVar("user_name"),
            "LAST_NAME" => $wizard->GetVar("user_surname"),
            "EMAIL" => $wizard->GetVar("email"),
            "LOGIN" => $wizard->GetVar("login"),
            "ACTIVE" => ($wizard->GetVar("active") == "Y" ? "Y" : "N"),
            "GROUP_ID" => $wizard->GetVar("group_id"),
            "PASSWORD" => $wizard->GetVar("password"),
            "CONFIRM_PASSWORD" => $wizard->GetVar("password"),
            "PERSONAL_GENDER" => $wizard->GetVar("sex")
        );

        $photo = intval($wizard->GetVar("photo"));
        if ($photo > 0)
            $arFields["PERSONAL_PHOTO"] = CFile::MakeFileArray($photo) + Array("MODULE_ID" => "main");

        $userID = $user->Add($arFields);
        if (intval($userID) > 0)
        {
            $wizard->SetVar("userID", $userID);
            CFile::Delete($photo); //Удаляем временный файл
        }
        else
            $this->SetError($user->LAST_ERROR);
    }

    function ShowStep()
    {
        $this->content .= "Текущие настройки:<br /><br />";

        $wizard =& $this->GetWizard();

        $this->content .= "<i>Логин</i>: ".htmlspecialchars($wizard->GetVar("login"))."<br />";
        $this->content .= "<i>E-mail</i>: ".htmlspecialchars($wizard->GetVar("email"))."<br />";

        $user_name = $wizard->GetVar("user_name");
        if (strlen($user_name) > 0)
            $this->content .= "<i>Имя</i>: ".htmlspecialchars($user_name)."<br />";

        $user_surname = $wizard->GetVar("user_surname");
        if (strlen($user_surname) > 0)
            $this->content .= "<i>Фамилия</i>: ".htmlspecialchars($user_surname)."<br />";

        $sex = $wizard->GetVar("sex");
        if (strlen($sex) > 0)
            $this->content .= "<i>Пол</i>: ".($sex == "M" ? "Мужской": "Женский")."<br />";

        $photo = $wizard->GetVar("photo");
        if (intval($photo) > 0)
        {
            $this->content .= "<i>Фото</i>:<br />";
            $this->content .= CFile::ShowImage($photo, 150, 150, "border=0", "", true);
        }
    }
}

class SuccessStep extends CWizardStep
{
    function InitStep()
    {
        //ID шага
        $this->SetStepID("success");

        //Заголовок
        $this->SetTitle("Работа мастера успешно завершена");

        //Навигация
        $this->SetCancelStep("success");
        $this->SetCancelCaption("Готово");
    }

    function ShowStep()
    {
        $this->content .= "Мастер успешно добавил нового пользователя. ";

        $wizard =& $this->GetWizard();
        $userID = intval($wizard->GetVar("userID"));
        if ($userID > 0)
            $this->content .= 'Идентификатор нового пользователя <a target="_blank" href="/bitrix/admin/user_edit.php?ID='.$userID.'&lang='.LANGUAGE_ID.'">'.$userID.'</a>';
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Мастер прерван");
        $this->SetStepID("cancel");
        $this->SetCancelStep("cancel");
        $this->SetCancelCaption("Закрыть");
    }

    function ShowStep()
    {
        $this->content .= "Мастер создания нового пользователя прерван. Новый пользователь не был создан.";
    }
}
?>

Статическое определение шагов в файле .description.php:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мастер создания нового пользователя",
    "STEPS" => Array("MainUserFields", "AddtionalUserFields", "UserSummary", "SuccessStep", "CancelStep")
);
?>

Или динамическое определение в файле wizard.php:

<?
$wizard = new CWizardBase("Мастер создания нового пользователя", $package);
$wizard->AddSteps(Array("MainUserFields", "AddtionalUserFields", "UserSummary", "SuccessStep", "CancelStep"));
$wizard->Display();
?>


Мастер создания сайта: установка шаблона

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

1. Создайте директорию my_site_master в папке /bitrix/wizards/.

2. Поместите в папку my_site_master файл .description.php со следующим содержимым:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мастер создания сайта: установка шаблона",
);

?>

3. В директории мастера создайте папку templates и скопируйте в нее несколько шаблонов сайта (например, шаблоны сайта из демо-версии).

Мастер готов. Система сама "на лету" сгенерирует необходимые шаги.


Мастер создания сайта: пользовательские шаги

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

1. Скопируйте папку мастера установки шаблона в новую директорию, например, в my_site_master_pro.

2. Измените название нового мастера в файле .description.php и добавьте ключ STEPS_SETTINGS для кастомизации стандартных заголовков:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мастер создания сайта: пользовательские шаги",
    "STEPS_SETTINGS" => Array(
        "WELCOME" => Array(
            "TITLE" => "Добро пожаловать в мастер создания сайта",
            "SUBTITLE" => "Нажмите кнопку <i>Далее</i> для выбора шаблонов",
            "CONTENT" => "Данный мастер демонстрирует работу с пользовательскими шагами",
        ),

        "SELECT_TEMPLATE" => Array(
            "TITLE" => "Шаблоны вашего сайта",
        ),
    ),
);
?>

3. Кроме выбора шаблона сайта пользователю будет предоставлена возможность адаптировать дизайн: например, изменить название и заголовок. В шаблонах мастера слоган и название сайта находятся в файле include_areas/company_name.php (относительно папки шаблона):

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
  <h1>Моя компания</h1>
    <span>Слоган компании</span>

Замените названия в этом в файле на соответствующие макросы:

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
  <h1>#COMPANY_NAME#</h1>
    <span>#COMPANY_SLOGAN#</span>

4. Создайте файл customize.php в папке мастера со следующим содержимым:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

class CustomizeSiteData extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Данные сайта");
        $this->SetSubTitle("Настройка данных сайта");

        $wizard =& $this->GetWizard();
        $wizard->SetDefaultVars(
            Array(
                "company_name" => "Моя компания",
                "company_slogan" => "Быстро. Просто. Эффективно",
            )
        );
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();

        $this->content .= "Укажите название вашего сайта, слоган, адрес сайта и загрузите свой логотип.
                Название, слоган и логотип будут размещены вверху на всех страницах сайта.<br /><br />";

        $this->content .= '<table class="wizard-data-table"><tr>';
        $this->content .= "<td>Название сайта (компании):</td>";
        $this->content .= "<td>".$this->ShowInputField("text", "company_name", Array("size" => "35"))."</td>";
        $this->content .= "</tr>";

        $this->content .= "<tr><td>Слоган компании:</td>";
        $this->content .= "<td>".$this->ShowInputField("text", "company_slogan", Array("size" => "35"))."</td>";
        $this->content .= "</tr>";

        $this->content .= "</table>";

    }
}

class InstallTemplateData extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Установка данных шаблона...");
        $this->SetAutoSubmit();
    }

    function OnPostForm()
    {
        $wizard =& $this->GetWizard();
        $package =& $wizard->GetPackage();

        $templateID = $package->GetSiteTemplateID(); //ID выбранного шаблона
        $templatePath = "/bitrix/templates/".$templateID;

        $arReplace = Array(
            "COMPANY_NAME" => $wizard->GetVar("company_name"),
            "COMPANY_SLOGAN" => $wizard->GetVar("company_slogan"),
        );

        CWizardUtil::ReplaceMacros($_SERVER["DOCUMENT_ROOT"].$templatePath."/include_areas/company_name.php", $arReplace);
    }

    function ShowStep()
    {
        $this->content .= "Установка данных шаблона...";
    }
}
?>

Этот файл определяет 2 пользовательских шага: шаг выбора и шаг установки. Первый предлагает пользователю ввести название и слоган сайта, второй - заменяет макросы в файле include_areas/company_name.php на нужные значения.

5. Наконец, в файле .templates.php необходимо описать пользовательские шаги:

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

$arWizardTemplates = Array(

    "TEMPLATES" => Array(
        "web20" => Array(
            "SELECT_STEPS" => Array(
                "SCRIPT" => "customize.php",
                "STEPS" => Array(
                    "customize_data" => "CustomizeSiteData",
                )
            ),

            "INSTALL_STEPS" => Array(
                "SCRIPT" => "customize.php",
                "STEPS" => Array(
                    "install_template_data" => "InstallTemplateData",
                )
            ),
        ),

        "xml_catalog" => Array(
            "SELECT_STEPS" => Array(
                "SCRIPT" => "customize.php",
                "STEPS" => Array(
                    "customize_data" => "CustomizeSiteData",
                )
            ),

            "INSTALL_STEPS" => Array(
                "SCRIPT" => "customize.php",
                "STEPS" => Array(
                    "install_template_data" => "InstallTemplateData",
                )
            ),
        ),

        "books" => Array(
            "SELECT_STEPS" => Array(
                "SCRIPT" => "customize.php",
                "STEPS" => Array(
                    "customize_data" => "CustomizeSiteData",
                )
            ),

            "INSTALL_STEPS" => Array(
                "SCRIPT" => "customize.php",
                "STEPS" => Array(
                    "install_template_data" => "InstallTemplateData",
                )
            ),
        ),
    )
);

?>

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


Для разработчиков

Класс | Описание | С версии
CWizard | Класс позволяет запускать мастера из общего репозитария. | создан ранее 8.6.0
СWizardBase | Класс - оболочка мастера. | создан ранее 8.6.0
CWizardStep | Класс - шаги мастера. | создан ранее 8.6.0
CWizardTemplate | Класс - оболочка для шаблона мастера. | создан ранее 8.6.0
CWizardUtil | Класс инкапсулирует вспомогательные методы. | создан ранее 8.6.0


Класс CWizard

Описание

Класс CWizard позволяет запускать мастера из общего репозитария, а также поддерживает механизм мастера создания сайта. Для того чтобы использовать методы класса CWizard в теле переопределяемых функций (InitStep, ShowStep, OnPostFrom), нужно получить объект класса CWizard с помощью метода CWizardBase::GetPackage:

<?
class MyClass extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step01");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard(); //Получаем ссылку на мастер
        $package =& $wizard->GetPackage(); //Получаем ссылку на объект класса CWizard

        $this->content .= "ID мастера:".$package->GetID(); //Используем метод класса CWizard
    }
}
?>

Список методов

Метод | Описание | С версии
СWizard | Конструктор. |
GetDescription | Вывод описаний. |
GetErrors | Вывод ошибок. |
GetID | Вывод имени мастера. | 6.5.3
GetPath | Метод возвращает путь к текущему мастеру относительно корня сайта. | 6.5.3
GetServices | Вывод сервисов. |
GetSiteGroupID | Вывод шаблонов. | 6.5.3
GetSiteID | Вывод типа сайта. | 6.5.3
GetSiteServiceID | Возвращает массив ID выбранных сервисов. | 6.5.3
GetSiteTemplateID | Возвращает ID выбранного шаблона сайта. | 6.5.3
GetTemplateGroups | Возвращает массив групп шаблонов сайта по фильтру. |
GetTemplates | Возвращает массив шаблонов сайта по фильтру. |
IncludeWizardLang | Подключает языковой файл для скрипта. |
Install | Метод запускает мастер. |
SetError | Метод устанавливает ошибку мастера. |

Смотрите также

  • Конструктор CWizard
  • CWizardBase::GetPackage
  • Физическое расположение мастеров


Конструктор СWizard

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>Конструктор СWizard (6.5.0)

CWizard::Конструктор СWizard

Описание и параметры

CWizard(
 string wizardID
);

Создает объект класса CWizard.

Параметры

Параметр | Описание
wizardID | Полное имя мастера.

Смотрите также

  • Класс CWizard
  • CWizard::Install
  • Физическое расположение мастеров

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

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/wizard.php");

$wizard = new CWizard("help:condition");
$wizard->Install();

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>


GetDescription

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>GetDescription (6.5.0)

CWizard::GetDescription

Описание

array
GetDescription();

Метод возвращает массив $arWizardDescription из файла описания .description.php.

Смотрите также

  • CWizard::GetTemplates
  • CWizard::GetTemplateGroups
  • CWizard::GetServices

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class MyStartInstall extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Выбранные параметры");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();
        $package =& $wizard->GetPackage();

        $this->content .= "Полное имя мастера: ".$package->GetID()."<br />";
        $this->content .= "Путь к папке мастера: ".$package->GetPath()."<br />";
        $this->content .= "ID выбранного шаблона: ".$package->GetSiteTemplateID()."<br />";
        $this->content .= "ID выбранной группы шаблонов: ".$package->GetSiteGroupID()."<br />";
        $this->content .= "ID выбранного сайта: ".$package->GetSiteID()."<br />";
        $this->content .= "Массив ID сервисов: ".print_r($package->GetSiteServiceID(), true)."<br />";
        $this->content .= "Массив шаблонов мастера:<pre>".print_r($package->GetTemplates(), true)."</pre>";
        $this->content .= "Массив описания мастера:<pre>".print_r($package->GetDescription(), true)."</pre>";
        $this->content .= "Массив сервисов мастера:<pre>".print_r($package->GetServices(), true)."</pre>";
    }
}

?>


GetErrors

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>GetErrors (6.5.0)

CWizard::GetErrors

array
GetErrors();

Метод возвращает массив ошибок мастера.

Смотрите также

  • CWizard::SetError


GetID

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>GetID (6.5.3)

CWizard::GetID

Описание

string
GetID();

Метод возвращает полное имя мастера.

Смотрите также

  • Физическое расположение мастеров
  • CWizard::GetPath

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class MyStartInstall extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Выбранные параметры");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();
        $package =& $wizard->GetPackage();

        $this->content .= "Полное имя мастера: ".$package->GetID()."<br />";
        $this->content .= "Путь к папке мастера: ".$package->GetPath()."<br />";
        $this->content .= "ID выбранного шаблона: ".$package->GetSiteTemplateID()."<br />";
        $this->content .= "ID выбранной группы шаблонов: ".$package->GetSiteGroupID()."<br />";
        $this->content .= "ID выбранного сайта: ".$package->GetSiteID()."<br />";
        $this->content .= "Массив ID сервисов: ".print_r($package->GetSiteServiceID(), true)."<br />";
        $this->content .= "Массив шаблонов мастера:<pre>".print_r($package->GetTemplates(), true)."</pre>";
        $this->content .= "Массив описания мастера:<pre>".print_r($package->GetDescription(), true)."</pre>";
        $this->content .= "Массив сервисов мастера:<pre>".print_r($package->GetServices(), true)."</pre>";
    }
}

?>


GetPath

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>GetPath (6.5.3)

CWizard::GetPath

Описание

string
GetPath();

Метод возвращает путь к текущему мастеру относительно корня сайта.

Смотрите также

  • Физическое расположение мастеров
  • CWizard::GetID

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class MyStartInstall extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Выбранные параметры");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();
        $package =& $wizard->GetPackage();

        $this->content .= "Полное имя мастера: ".$package->GetID()."<br />";
        $this->content .= "Путь к папке мастера: ".$package->GetPath()."<br />";
        $this->content .= "ID выбранного шаблона: ".$package->GetSiteTemplateID()."<br />";
        $this->content .= "ID выбранной группы шаблонов: ".$package->GetSiteGroupID()."<br />";
        $this->content .= "ID выбранного сайта: ".$package->GetSiteID()."<br />";
        $this->content .= "Массив ID сервисов: ".print_r($package->GetSiteServiceID(), true)."<br />";
        $this->content .= "Массив шаблонов мастера:<pre>".print_r($package->GetTemplates(), true)."</pre>";
        $this->content .= "Массив описания мастера:<pre>".print_r($package->GetDescription(), true)."</pre>";
        $this->content .= "Массив сервисов мастера:<pre>".print_r($package->GetServices(), true)."</pre>";
    }
}

?>


GetServices

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>GetServices (6.5.0)

CWizard::GetServices

Описание и параметры

array
GetServices(
 array arFilter = Array()
);

Если текущий мастер является мастером создания сайта, метод вернет массив сервисов по фильтру arFilter.

Параметры функции

Параметр Описание
arFilter Массив вида Array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • SITE_ID - ID типа сайта.
Необязательный параметр, по умолчанию сервисы не фильтруются.

Смотрите также

  • Файл описания сервисов сайта .services.php
  • CWizard::GetDescription
  • CWizard::GetTemplates
  • CWizard::GetTemplateGroups

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class MyStartInstall extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Выбранные параметры");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();
        $package =& $wizard->GetPackage();

        $this->content .= "Полное имя мастера: ".$package->GetID()."<br />";
        $this->content .= "Путь к папке мастера: ".$package->GetPath()."<br />";
        $this->content .= "ID выбранного шаблона: ".$package->GetSiteTemplateID()."<br />";
        $this->content .= "ID выбранной группы шаблонов: ".$package->GetSiteGroupID()."<br />";
        $this->content .= "ID выбранного сайта: ".$package->GetSiteID()."<br />";
        $this->content .= "Массив ID сервисов: ".print_r($package->GetSiteServiceID(), true)."<br />";
        $this->content .= "Массив шаблонов мастера:<pre>".print_r($package->GetTemplates(), true)."</pre>";
        $this->content .= "Массив описания мастера:<pre>".print_r($package->GetDescription(), true)."</pre>";
        $this->content .= "Массив сервисов мастера:<pre>".print_r($package->GetServices(), true)."</pre>";
    }
}

?>


GetSiteGroupID

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>GetSiteGroupID (6.5.3)

CWizard::GetSiteGroupID

Описание

mixed
GetSiteGroupID();

Если текущий мастер является мастером создания сайта, метод вернет ID выбранной группы шаблонов, иначе вернет null.

Смотрите также

  • CWizard::GetSiteID
  • CWizard::GetSiteServiceID
  • CWizard::GetSiteTemplateID

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class MyStartInstall extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Выбранные параметры");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();
        $package =& $wizard->GetPackage();

        $this->content .= "Полное имя мастера: ".$package->GetID()."<br />";
        $this->content .= "Путь к папке мастера: ".$package->GetPath()."<br />";
        $this->content .= "ID выбранного шаблона: ".$package->GetSiteTemplateID()."<br />";
        $this->content .= "ID выбранной группы шаблонов: ".$package->GetSiteGroupID()."<br />";
        $this->content .= "ID выбранного сайта: ".$package->GetSiteID()."<br />";
        $this->content .= "Массив ID сервисов: ".print_r($package->GetSiteServiceID(), true)."<br />";
        $this->content .= "Массив шаблонов мастера:<pre>".print_r($package->GetTemplates(), true)."</pre>";
        $this->content .= "Массив описания мастера:<pre>".print_r($package->GetDescription(), true)."</pre>";
        $this->content .= "Массив сервисов мастера:<pre>".print_r($package->GetServices(), true)."</pre>";
    }
}

?>


GetSiteID

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>GetSiteID (6.5.3)

CWizard::GetSiteID

Описание

mixed
GetSiteID();

Если текущий мастер является мастером создания сайта, метод вернет ID выбранного типа сайта, иначе вернет null.

Смотрите также

  • CWizard::GetSiteGroupID
  • CWizard::GetSiteServiceID
  • CWizard::GetSiteTemplateID

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class MyStartInstall extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Выбранные параметры");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();
        $package =& $wizard->GetPackage();

        $this->content .= "Полное имя мастера: ".$package->GetID()."<br />";
        $this->content .= "Путь к папке мастера: ".$package->GetPath()."<br />";
        $this->content .= "ID выбранного шаблона: ".$package->GetSiteTemplateID()."<br />";
        $this->content .= "ID выбранной группы шаблонов: ".$package->GetSiteGroupID()."<br />";
        $this->content .= "ID выбранного сайта: ".$package->GetSiteID()."<br />";
        $this->content .= "Массив ID сервисов: ".print_r($package->GetSiteServiceID(), true)."<br />";
        $this->content .= "Массив шаблонов мастера:<pre>".print_r($package->GetTemplates(), true)."</pre>";
        $this->content .= "Массив описания мастера:<pre>".print_r($package->GetDescription(), true)."</pre>";
        $this->content .= "Массив сервисов мастера:<pre>".print_r($package->GetServices(), true)."</pre>";
    }
}

?>


GetSiteServiceID

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>GetSiteServiceID (6.5.3)

CWizard::GetSiteServiceID

Описание

mixed
GetSiteServiceID();

Если текущий мастер является мастером создания сайта, метод вернет массив ID выбранных сервисов, иначе вернет пустой массив Array().

Смотрите также

  • CWizard::GetSiteID
  • CWizard::GetSiteGroupID
  • CWizard::GetSiteTemplateID

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class MyStartInstall extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Выбранные параметры");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();
        $package =& $wizard->GetPackage();

        $this->content .= "Полное имя мастера: ".$package->GetID()."<br />";
        $this->content .= "Путь к папке мастера: ".$package->GetPath()."<br />";
        $this->content .= "ID выбранного шаблона: ".$package->GetSiteTemplateID()."<br />";
        $this->content .= "ID выбранной группы шаблонов: ".$package->GetSiteGroupID()."<br />";
        $this->content .= "ID выбранного сайта: ".$package->GetSiteID()."<br />";
        $this->content .= "Массив ID сервисов: ".print_r($package->GetSiteServiceID(), true)."<br />";
        $this->content .= "Массив шаблонов мастера:<pre>".print_r($package->GetTemplates(), true)."</pre>";
        $this->content .= "Массив описания мастера:<pre>".print_r($package->GetDescription(), true)."</pre>";
        $this->content .= "Массив сервисов мастера:<pre>".print_r($package->GetServices(), true)."</pre>";
    }
}

?>


GetSiteTemplateID

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>GetSiteTemplateID (6.5.3)

CWizard::GetSiteTemplateID

Описание

mixed
GetSiteTemplateID();

Если текущий мастер является мастером создания сайта, метод вернет ID выбранного шаблона сайта, иначе вернет null.

Смотрите также

  • CWizard::GetSiteID
  • CWizard::GetSiteGroupID
  • CWizard::GetSiteServiceID

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class MyStartInstall extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Выбранные параметры");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();
        $package =& $wizard->GetPackage();

        $this->content .= "Полное имя мастера: ".$package->GetID()."<br />";
        $this->content .= "Путь к папке мастера: ".$package->GetPath()."<br />";
        $this->content .= "ID выбранного шаблона: ".$package->GetSiteTemplateID()."<br />";
        $this->content .= "ID выбранной группы шаблонов: ".$package->GetSiteGroupID()."<br />";
        $this->content .= "ID выбранного сайта: ".$package->GetSiteID()."<br />";
        $this->content .= "Массив ID сервисов: ".print_r($package->GetSiteServiceID(), true)."<br />";
        $this->content .= "Массив шаблонов мастера:<pre>".print_r($package->GetTemplates(), true)."</pre>";
        $this->content .= "Массив описания мастера:<pre>".print_r($package->GetDescription(), true)."</pre>";
        $this->content .= "Массив сервисов мастера:<pre>".print_r($package->GetServices(), true)."</pre>";
    }
}

?>


GetTemplateGroups

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>GetTemplateGroups (6.5.0)

CWizard::GetTemplateGroups

Описание и параметры

array
GetTemplateGroups(
 array arFilter = Array()
);

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

Параметры функции

Параметр Описание
arFilter Массив вида Array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • SITE_ID - ID типа сайта.
Необязательный параметр, по умолчанию группы шаблонов сайта не фильтруются.

Смотрите также

  • Файл описания шаблонов сайта .templates.php
  • CWizard::GetDescription
  • CWizard::GetTemplates
  • CWizard::GetServices

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class MyStartInstall extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Выбранные параметры");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();
        $package =& $wizard->GetPackage();

        $this->content .= "Полное имя мастера: ".$package->GetID()."<br />";
        $this->content .= "Путь к папке мастера: ".$package->GetPath()."<br />";
        $this->content .= "ID выбранного шаблона: ".$package->GetSiteTemplateID()."<br />";
        $this->content .= "ID выбранной группы шаблонов: ".$package->GetSiteGroupID()."<br />";
        $this->content .= "ID выбранного сайта: ".$package->GetSiteID()."<br />";
        $this->content .= "Массив ID сервисов: ".print_r($package->GetSiteServiceID(), true)."<br />";
        $this->content .= "Массив шаблонов мастера:<pre>".print_r($package->GetTemplates(), true)."</pre>";
        $this->content .= "Массив групп шаблонов:<pre>".print_r($package->GetTemplateGroups(), true)."</pre>";
        $this->content .= "Массив описания мастера:<pre>".print_r($package->GetDescription(), true)."</pre>";
        $this->content .= "Массив сервисов мастера:<pre>".print_r($package->GetServices(), true)."</pre>";
    }
}

?>


GetTemplates

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>GetTemplates (6.5.0)

CWizard::GetTemplates

Описание и параметры

array
GetTemplates(
 array arFilter = Array()
);

Если текущий мастер является мастером создания сайта, метод вернет массив шаблонов сайта по фильтру arFilter.

Параметры функции

Параметр Описание
arFilter Массив вида Array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • SITE_ID - ID типа сайта;
  • GROUP_ID - ID группы шаблона сайта;
Необязательный параметр, по умолчанию шаблоны сайта не фильтруются.

Смотрите также

  • Файл описания шаблонов сайта .templates.php
  • CWizard::GetDescription
  • CWizard::GetTemplateGroups
  • CWizard::GetServices

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class MyStartInstall extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Выбранные параметры");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();
        $package =& $wizard->GetPackage();

        $this->content .= "Полное имя мастера: ".$package->GetID()."<br />";
        $this->content .= "Путь к папке мастера: ".$package->GetPath()."<br />";
        $this->content .= "ID выбранного шаблона: ".$package->GetSiteTemplateID()."<br />";
        $this->content .= "ID выбранной группы шаблонов: ".$package->GetSiteGroupID()."<br />";
        $this->content .= "ID выбранного сайта: ".$package->GetSiteID()."<br />";
        $this->content .= "Массив ID сервисов: ".print_r($package->GetSiteServiceID(), true)."<br />";
        $this->content .= "Массив шаблонов мастера:<pre>".print_r($package->GetTemplates(), true)."</pre>";
        $this->content .= "Массив описания мастера:<pre>".print_r($package->GetDescription(), true)."</pre>";
        $this->content .= "Массив сервисов мастера:<pre>".print_r($package->GetServices(), true)."</pre>";
    }
}

?>


IncludeWizardLang

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>IncludeWizardLang (6.5.0)

CWizard::IncludeWizardLang

Описание и параметры

void
IncludeWizardLang(
 string relativePath = "",
 bool lang = false
);

Метод подключает языковой файл для скрипта, путь к которому передается в параметре relativePath.

Параметры функции

Параметр | Описание
relativePath | Путь к файлу (относительно папки мастера), для которого необходимо подключить языковой файл.
lang | Идентификатор языка. Необязательный параметр, по умолчанию равен false (текущий язык).

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $wizard =& $this->GetWizard();
        $package =& $wizard->GetPackage();

        //Подключаем произвольный файл переводов
        $package->IncludeWizardLang("lang.php");

        $this->SetTitle(GetMessage("TITLE"));
        $this->SetStepID("first");
    }
}
?>


Install

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>Install (6.5.0)

CWizard::Install

Описание

string
Install();

Метод запускает мастер и выводит его на экран.

Смотрите также

  • Конструктор CWizard
  • Запуск мастера

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

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/wizard.php");

$wizard = new CWizard("help:condition");
$wizard->Install();

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>


SetError

...->Главный модуль>Основные сведения>Мастера>Классы>CWizard>SetError (6.5.0)

CWizard::SetError

Описание и параметры

void
SetError(
 string strError,
 bool id = false
);

Метод устанавливает ошибку мастера с текстом strError и идентификатором id. Если мастер содержит ошибки, то его запуск невозможен (на экран выйдет сообщение об ошибках).

Параметры функции

Параметр | Описание
strError | Текст ошибки.
id | Идентификатор ошибки. Необязательный параметр, по умолчанию равен false.

Смотрите также

  • CWizard::GetErrors

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

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/wizard.php");

$wizard = new CWizard("help:condition");

$hour = date("G");
if ($hour < 16 || $hour >= 20)
    $wizard->SetError("Запуск мастера возможен только c 16 до 20");

$wizard->Install();

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>


Класс CWizardBase

Описание

Класс СWizardBase является оболочкой мастера и содержит методы общие для всех шагов (работа с переменными мастера, управление кнопками навигации и др.). Для каждого подключаемого мастера создаётся экземпляр класса СWizardBase. Для получения доступа к методам класса СWizardBase в теле переопределяемых функций (InitStep, ShowStep, OnPostFrom) нужно получить объект мастера с помощью метода CWizardStep::GetWizard:

<?
class MyFirstStep extends CWizardStep
{
    function InitStep()
    {
        $wizard =& $this->GetWizard(); //Получаем ссылку на объект мастера
        $myVar = $wizard->GetVar("myVar"); //Используем метод мастера (класс CWizardBase)
    }
}
?>

Список методов

Метод | Описание | С версии
CWizardBase | Конструктор. |
AddStep | Метод добавляет в мастер новый шаг. |
AddSteps | Метод добавлет шаги в мастер. |
DisableAdminTemplate | Метод запрещает использовать системный шаблон. |
Display | Метод выводит содержимое мастера на экран. |
GetCancelButtonID | Возвращает значение атрибута name кнопки Отмена. |
GetCancelStepID | Возвращает ID шага, на который ссылается кнопка Отмена. |
GetCurrentStep | Метод возвращает ссылку на объект текущего шага. |
GetCurrentStepID | Метод возвращает ID текущего шага. |
GetDefaultVar | Метод возвращает значение по умолчанию для переменной varName. |
GetDefaultVars | Метод возвращает массив со значениями по умолчанию для всех переменных. |
GetFinishButtonID | Метод возвращает значение атрибута name кнопки Готово. |
GetFinishStepID | Возвращает ID шага, на который ссылается кнопка Готово. |
GetFormActionScript | Метод возвращает значение атрибута action формы мастера. |
GetFormName | Метод возвращает значение атрибута name формы мастера. |
GetNextButtonID | Метод возвращает значение атрибута name кнопки Далее. |
GetNextStepID | Возвращает ID шага, на который ссылается кнопка Далее. |
GetPackage | Метод возвращает ссылку на объект класса CWizard. | 6.5.3
GetPrevButtonID | Метод возвращает значение атрибута name кнопки Назад. |
GetPrevStepID | Возвращает ID шага, на который ссылается кнопка Назад. |
GetRealName | Метод возвращает имя переменной с префиксом. |
GetVar | Метод возвращает значение переменной varName. |
GetVarPrefix | Метод возвращает префикс для переменных мастера. |
GetVars | Метод возвращает массив значений всех переменных мастера. |
GetWizardName | Метод возвращает название мастера. |
GetWizardSteps | Метод возвращает ассоциативный массив шагов мастера. | 7.0.2
IsCancelButtonClick | Метод возвращает true, если была нажата кнопка Отмена. |
IsFinishButtonClick | Метод возвращает true, если была нажата кнопка Готово. |
IsNextButtonClick | Метод возвращает true, если была нажата кнопка Далее. |
IsPrevButtonClick | Метод устанавливает значение атрибута name кнопки Назад. |
SetCancelButtonID | Метод устанавливает значение атрибута name кнопки Отмена. | 6.5.3
SetCurrentStep | Метод устанавливает шаг stepID текущим. |
SetDefaultVar | Метод устанавливает для переменной varName значение по умолчанию varValue. | 6.5.3
SetDefaultVars | Метод устанавливает переменным мастера значения по умолчанию. |
SetFinishButtonID | Метод устанавливает значение атрибута name кнопки Готово. | 6.5.3
SetFirstStep | Метод устанавливает шаг stepID первым в цепочке шагов мастера. |
SetFormActionScript | Метод устанавливает значение атрибута action формы мастера. |
SetFormName | Метод устанавливает значение атрибута name формы мастера. |
SetNextButtonID | Метод устанавливает значение атрибута name кнопки Далее. | 6.5.3
SetPrevButtonID | Метод устанавливает значение атрибута name кнопки Назад. | 6.5.3
SetReturnOutput | Метод устанавливает флаг возврата в значение mode. |
SetTemplate | Метод устанавливает шаблон obStepTemplate для шага stepID. |
SetVar | Устанавливает переменную мастера varName в значение varValue. |
SetVarPrefix | Метод устанавливает префикс для переменных мастера. |
UnSetVar | Уничтожает переменную с именем varName. |


Конструктор CWizardBase

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>Конструктор CWizardBase (6.5.0)

СWizardBase::Конструктор CWizardBase

Описание и параметры

CWizardBase(
 string wizardName,
 object &package
);

Создает объект класса CWizardBase.

Параметры

Параметр | Описание
wizardName | Имя создаваемого мастера. До версии 6.5.3 был необязательным.
&package | Объект класса СWizard. В файле wizard.php определена переменная $package, которая содержит ссылку на объект класса CWizard. До версии 9.5.0 передавался по ссылке.

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("step1");
        $this->SetNextStep("step22");
    }

}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("step22");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1");
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step3");
        $this->SetPrevStep("step22");
        $this->SetTitle("Третий шаг");
    }
}

//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3"));

//Выводим на экран
$wizard->Display();
?>


AddStep

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>AddStep (6.5.0)

СWizardBase::AddStep

Описание и параметры

void
AddStep(
 object obStep,
 mixed stepID = null
);

Метод добавляет в мастер новый шаг.

Параметры

Параметр | Описание
obStep | Экземпляр класса, определяющего шаг мастера. До версии 9.5.0 передавался по ссылке.
stepID | ID добавляемого шага. Переопределяет ID шага, установленного с помощью метода SetStepID в функции InitStep. Необязательный параметр, по умолчанию равен null.

Смотрите также

  • Определение шагов мастера
  • CWizardBase::AddSteps
  • CWizardStep::SetStepID

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("step1");
        $this->SetNextStep("step22");
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("step2"); //Переопределяется в AddStep
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1");
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step22");
        $this->SetTitle("Третий шаг");
    }
}

//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddStep(new Step1); // Шаг Step1 имеет ID = step1
$wizard->AddStep(new Step2, "step22"); // Шаг Step2 имеет ID = step22
$wizard->AddStep(new Step3, "step3"); // Шаг Step3 имеет ID = step3

//Выводим на экран
$wizard->Display();
?>


AddSteps

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>AddSteps (6.5.0)

СWizardBase::AddSteps

Описание и параметры

void
AddSteps(
 array arClasses
);

Метод добавлет шаги в мастер.

Параметры функции

Параметр | Описание
arClasses | Массив с названиями классов, определяющих шаги.

Смотрите также

  • Определение шагов мастера
  • CWizardBase::AddStep

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("step1");
        $this->SetNextStep("step22");
    }

}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("step22");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1");
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step3");
        $this->SetPrevStep("step22");
        $this->SetTitle("Третий шаг");
    }
}

//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3"));

//Выводим на экран
$wizard->Display();
?>


DisableAdminTemplate

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>DisableAdminTemplate (6.5.0)

СWizardBase::DisableAdminTemplate

Описание

void
DisableAdminTemplate();

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

Смотрите также

  • CWizardBase::SetTemplate
  • Шаблон мастера

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("step1");
        $this->SetNextStep("step2");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 1";
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("step2");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1");
        $this->SetCancelStep("cancel");
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetCancelStep("cancel");
        $this->SetTitle("Третий шаг");
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("cancel");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Отмена";
    }
}

//Красный шаблон мастера
class MyRedTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        $formName = $wizard->GetFormName(); //имя формы
        $wizardName = $wizard->GetWizardName(); //имя мастера
        $charset = LANG_CHARSET; //текушая кодировка

        //Получаем значения атрибута name кнопок мастера
        $nextButtonID = $wizard->GetNextButtonID();
        $prevButtonID = $wizard->GetPrevButtonID();
        $cancelButtonID = $wizard->GetCancelButtonID();
        $finishButtonID = $wizard->GetFinishButtonID();

        //Получаем ссылку на объект текущего шага
        $obStep =& $wizard->GetCurrentStep();

        $stepTitle = $obStep->GetTitle(); //Заголовок шага
        $stepSubTitle = $obStep->GetSubTitle(); //Подзаголовк шага

        //Получим ошибки шага
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<div id="step_error">'.$strError.'</span>';
        }

        /*
            Возвращаем HTML-код шаблона, в котором обязательно
            должны быть определны следующие макросы:
                {#FORM_START#} - начало формы
                {#CONTENT#} - содержимое текущего шага
                {#BUTTONS#} - кнопки навигации
                {#FORM_END#} - конец формы
        */
        return <<<HTML
<html>
    <head>
        <title>{$wizardName}</title>
        <meta http-equiv="Content-Type" content="text/html; charset={$charset}">
        <style type="text/css">
            body
            {
                margin:0; padding:0; background-color: #FFDEDE;
                font-family:Verdana,Arial,helvetica,sans-serif;font-size:75%;
            }
            table {font-size:100%;}
            form {margin:0;}
            #border-box{margin:2px 2px 0 2px; border:1px dashed red;}
            #step_info
            {
                height:45px;padding:8px 30px;border-bottom:1px dashed red;
                box-sizing:border-box;-moz-box-sizing:border-box;overflow:hidden;background:#FFC4C4;
            }
            #step_title{font-weight:bold;}
            #step_description {font-size:95%; margin-left:10px;}
            #step_content {padding:20px 20px;box-sizing:border-box;-moz-box-sizing:border-box;float:left;}
            #step_buttons
            {
                height:50px; text-align:right; padding-right:20px; padding-top:5px;
                overflow:hidden; box-sizing:border-box;-moz-box-sizing:border-box;
            }
            #step_content_container { height:290px; overflow:auto;background:#fff;}
            #step_error {color:red; margin:6px;}
        </style>

        <script type="text/javascript">

            function OnLoad()
            {
                /*Установим в окошке мастера заголовок*/
                var title = self.parent.window.document.getElementById("wizard_dialog_title");
                if (title)
                    title.innerHTML = "{$wizardName}";

                /*Получаем объект формы*/
                var form = document.forms["{$formName}"];

                if (!form)
                    return;

                /*Получаем объекты кнопок*/
                var cancelButton = form.elements["{$cancelButtonID}"];
                var nextButton = form.elements["{$nextButtonID}"];
                var prevButton = form.elements["{$prevButtonID}"];
                var finishButton = form.elements["{$finishButtonID}"];

                /*Если в шаге только кнопка Отмена, то закроем окно мастера,
                    иначе запросим подтверждение*/
                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            /*Подтвержение по кнопке Отмена*/
            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            /*Закроем окошко мастера*/
            function CloseWindow()
            {
                if (self.parent.window.WizardWindow)
                    self.parent.window.WizardWindow.Close();
            }

        </script>
    </head>
    <body onload="OnLoad();">
        {#FORM_START#}
            <div id="border-box">
                <div id="step_info">
                    <div id="step_title">{$stepTitle}</div>
                    <div id="step_description">{$stepSubTitle}</div>
                </div>
                <div id="step_content_container">
                    {$strError}
                    <div id="step_content">{#CONTENT#}</div>
                </div>
            </div>
            <div id="step_buttons">{#BUTTONS#}</div>
        {#FORM_END#}
    </body>
</html>
HTML;
    }
}

//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Запретим применять системный шаблон по умолчанию
//при запуске мастера из административного раздела
$wizard->DisableAdminTemplate();

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3", "CancelStep"));

//Определим для всех шагов красный шаблон
$wizard->SetTemplate(new MyRedTemplate);

//Выводим на экран
$wizard->Display();
?>


Display

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>Display (6.5.0)

СWizardBase::Display

Описание

mixed
Display();

Метод выводит содержимое мастера на экран. Если с помощью метода CWizardBase::SetReturnOutput флаг возврата установлен в значение true, метод Display возвратит весь вывод мастера.

Смотрите также

  • CWizardBase::SetReturnOutput

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("step1");
        $this->SetNextStep("step2");
    }

}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("step2");
        $this->SetPrevStep("step1");
    }
}

//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2"));

//Выводим на экран
$wizard->Display();
?>

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("step1");
        $this->SetNextStep("step2");
    }

}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("step2");
        $this->SetPrevStep("step1");
    }
}

//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2"));

//Устанавливаем флаг возврата
$wizard->SetReturnOutput();

//Получаем вывод мастера
$output = $wizard->Display();

/*здесь можно обработать вывод мастера*/

//Выводим на экран
echo $output;
?>


GetCancelButtonID

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetCancelButtonID (6.5.0)

СWizardBase::GetCancelButtonID

Описание

string
GetCancelButtonID();

Возвращает значение атрибута name кнопки Отмена.

Смотрите также

  • CWizardBase::SetCancelButtonID

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

<?
class MyRedTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        $formName = $wizard->GetFormName(); //имя формы
        $wizardName = $wizard->GetWizardName(); //имя мастера
        $charset = LANG_CHARSET; //текушая кодировка

        //Получаем значения атрибута name кнопок мастера
        $nextButtonID = $wizard->GetNextButtonID();
        $prevButtonID = $wizard->GetPrevButtonID();
        $cancelButtonID = $wizard->GetCancelButtonID();
        $finishButtonID = $wizard->GetFinishButtonID();

        //Получаем ссылку на объект текущего шага
        $obStep =& $wizard->GetCurrentStep();

        $stepTitle = $obStep->GetTitle(); //Заголовок шага
        $stepSubTitle = $obStep->GetSubTitle(); //Подзаголовк шага

        //Получим ошибки шага
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<div id="step_error">'.$strError.'</span>';
        }

        /*
            Возвращаем HTML-код шаблона, в котором обязательно
            должны быть определны следующие макросы:
                {#FORM_START#} - начало формы
                {#CONTENT#} - содержимое текущего шага
                {#BUTTONS#} - кнопки навигации
                {#FORM_END#} - конец формы
        */
        return <<<HTML
<html>
    <head>
        <title>{$wizardName}</title>
        <meta http-equiv="Content-Type" content="text/html; charset={$charset}">
        <style type="text/css">
            body
            {
                margin:0; padding:0; background-color: #FFDEDE;
                font-family:Verdana,Arial,helvetica,sans-serif;font-size:75%;
            }
            table {font-size:100%;}
            form {margin:0;}
            #border-box{margin:2px 2px 0 2px; border:1px dashed red;}
            #step_info
            {
                height:45px;padding:8px 30px;border-bottom:1px dashed red;
                box-sizing:border-box;-moz-box-sizing:border-box;overflow:hidden;background:#FFC4C4;
            }
            #step_title{font-weight:bold;}
            #step_description {font-size:95%; margin-left:10px;}
            #step_content {padding:20px 20px;box-sizing:border-box;-moz-box-sizing:border-box;float:left;}
            #step_buttons
            {
                height:50px; text-align:right; padding-right:20px; padding-top:5px;
                overflow:hidden; box-sizing:border-box;-moz-box-sizing:border-box;
            }
            #step_content_container { height:290px; overflow:auto;background:#fff;}
            #step_error {color:red; margin:6px;}
        </style>

        <script type="text/javascript">

            function OnLoad()
            {
                /*Установим в окошке мастера заголовок*/
                var title = self.parent.window.document.getElementById("wizard_dialog_title");
                if (title)
                    title.innerHTML = "{$wizardName}";

                /*Получаем объект формы*/
                var form = document.forms["{$formName}"];

                if (!form)
                    return;

                /*Получаем объекты кнопок*/
                var cancelButton = form.elements["{$cancelButtonID}"];
                var nextButton = form.elements["{$nextButtonID}"];
                var prevButton = form.elements["{$prevButtonID}"];
                var finishButton = form.elements["{$finishButtonID}"];

                /*Если в шаге только кнопка Отмена, то закроем окно мастера,
                    иначе запросим подтверждение*/
                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            /*Подтвержение по кнопке Отмена*/
            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            /*Закроем окошко мастера*/
            function CloseWindow()
            {
                if (self.parent.window.WizardWindow)
                    self.parent.window.WizardWindow.Close();
            }

        </script>
    </head>
    <body onload="OnLoad();">
        {#FORM_START#}
            <div id="border-box">
                <div id="step_info">
                    <div id="step_title">{$stepTitle}</div>
                    <div id="step_description">{$stepSubTitle}</div>
                </div>
                <div id="step_content_container">
                    {$strError}
                    <div id="step_content">{#CONTENT#}</div>
                </div>
            </div>
            <div id="step_buttons">{#BUTTONS#}</div>
        {#FORM_END#}
    </body>
</html>
HTML;
    }
}
?>


GetCancelStepID

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetCancelStepID (6.5.0)

СWizardBase::GetCancelStepID

mixed
GetCancelStepID();

Возвращает ID шага, на который ссылается кнопка Отмена. Если кнопка Отмена не установлена, метод возвращает null.

Смотрите также

  • CWizardBase::GetCancelButtonID


GetCurrentStep

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetCurrentStep (6.5.0)

СWizardBase::GetCurrentStep

Описание

object &
GetCurrentStep();

Метод возвращает ссылку на объект текущего шага.

Смотрите также

  • CWizardBase::GetCurrentStepID
  • CWizardBase::SetCurrentStep
  • CWizardBase::SetFirstStep

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

<?
class MyRedTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        $formName = $wizard->GetFormName(); //имя формы
        $wizardName = $wizard->GetWizardName(); //имя мастера
        $charset = LANG_CHARSET; //текушая кодировка

        //Получаем значения атрибута name кнопок мастера
        $nextButtonID = $wizard->GetNextButtonID();
        $prevButtonID = $wizard->GetPrevButtonID();
        $cancelButtonID = $wizard->GetCancelButtonID();
        $finishButtonID = $wizard->GetFinishButtonID();

        //Получаем ссылку на объект текущего шага
        $obStep =& $wizard->GetCurrentStep();

        $stepTitle = $obStep->GetTitle(); //Заголовок шага
        $stepSubTitle = $obStep->GetSubTitle(); //Подзаголовк шага

        //Получим ошибки шага
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<div id="step_error">'.$strError.'</span>';
        }

        /*
            Возвращаем HTML-код шаблона, в котором обязательно
            должны быть определны следующие макросы:
                {#FORM_START#} - начало формы
                {#CONTENT#} - содержимое текущего шага
                {#BUTTONS#} - кнопки навигации
                {#FORM_END#} - конец формы
        */
        return <<<HTML
<html>
    <head>
        <title>{$wizardName}</title>
        <meta http-equiv="Content-Type" content="text/html; charset={$charset}">
        <style type="text/css">
            body
            {
                margin:0; padding:0; background-color: #FFDEDE;
                font-family:Verdana,Arial,helvetica,sans-serif;font-size:75%;
            }
            table {font-size:100%;}
            form {margin:0;}
            #border-box{margin:2px 2px 0 2px; border:1px dashed red;}
            #step_info
            {
                height:45px;padding:8px 30px;border-bottom:1px dashed red;
                box-sizing:border-box;-moz-box-sizing:border-box;overflow:hidden;background:#FFC4C4;
            }
            #step_title{font-weight:bold;}
            #step_description {font-size:95%; margin-left:10px;}
            #step_content {padding:20px 20px;box-sizing:border-box;-moz-box-sizing:border-box;float:left;}
            #step_buttons
            {
                height:50px; text-align:right; padding-right:20px; padding-top:5px;
                overflow:hidden; box-sizing:border-box;-moz-box-sizing:border-box;
            }
            #step_content_container { height:290px; overflow:auto;background:#fff;}
            #step_error {color:red; margin:6px;}
        </style>

        <script type="text/javascript">

            function OnLoad()
            {
                /*Установим в окошке мастера заголовок*/
                var title = self.parent.window.document.getElementById("wizard_dialog_title");
                if (title)
                    title.innerHTML = "{$wizardName}";

                /*Получаем объект формы*/
                var form = document.forms["{$formName}"];

                if (!form)
                    return;

                /*Получаем объекты кнопок*/
                var cancelButton = form.elements["{$cancelButtonID}"];
                var nextButton = form.elements["{$nextButtonID}"];
                var prevButton = form.elements["{$prevButtonID}"];
                var finishButton = form.elements["{$finishButtonID}"];

                /*Если в шаге только кнопка Отмена, то закроем окно мастера,
                    иначе запросим подтверждение*/
                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            /*Подтвержение по кнопке Отмена*/
            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            /*Закроем окошко мастера*/
            function CloseWindow()
            {
                if (self.parent.window.WizardWindow)
                    self.parent.window.WizardWindow.Close();
            }

        </script>
    </head>
    <body onload="OnLoad();">
        {#FORM_START#}
            <div id="border-box">
                <div id="step_info">
                    <div id="step_title">{$stepTitle}</div>
                    <div id="step_description">{$stepSubTitle}</div>
                </div>
                <div id="step_content_container">
                    {$strError}
                    <div id="step_content">{#CONTENT#}</div>
                </div>
            </div>
            <div id="step_buttons">{#BUTTONS#}</div>
        {#FORM_END#}
    </body>
</html>
HTML;
    }
}
?>


GetCurrentStepID

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetCurrentStepID (6.5.0)

СWizardBase::GetCurrentStepID

string
GetCurrentStepID();

Метод возвращает ID текущего шага.

Смотрите также

  • CWizardBase::GetCurrentStep
  • CWizardBase::SetCurrentStep
  • CWizardBase::SetFirstStep


GetDefaultVar

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetDefaultVar (6.5.0)

СWizardBase::GetDefaultVar

Описание и параметры

mixed
GetDefaultVar(
 string varName
);

Метод возвращает значение по умолчанию для переменной varName. Если для varName значение по умолчанию не установлено, метод вернет null.

Параметры функции

Параметр | Описание
varName | Имя переменной, для которой необходимо получить значение по умолчанию. Имя переменной может быть составным, например, myvar[key].

Смотрите также

  • CWizardBase:GetDefaultVars
  • CWizardBase:SetDefaultVar
  • CWizardBase:SetDefaultVars

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Множественный checkbox");
        $this->SetNextStep("step2");
        $this->SetStepID("step1");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");

        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        //Устанавливаем для переменной vote[car] значение по умолчанию
        $wizard->SetDefaultVar("vote[car]", "reno");

        //Устанавливаем значения по умолчанию нескольким переменным
        $wizard->SetDefaultVars(
            Array(
                "vote[country]" => Array("poland", "lietva"),
                "subject" => "history",
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();
        $this->content = "В каких странах вы были?<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "russia")." Россия<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "usa")." США<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "poland")." Польша<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "lietva")." Литва<br />";

        $this->content .= "<br />Ваши любимые марки авто?<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "bmw")." BMW<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "hyundai")." Hyundai<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "vaz")." Ваз<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "reno")." Рено<br />";

        $this->content .= "<br />Какие науки Вас интересуют?<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "math")." Математика<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "history")." История<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "programming")." Программирование<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "physics")." Физика<br />";

        //Устанавливаем переменную myVar.
        //Значение будет доступно на следующем шаге
        $wizard->SetVar("myVar", Array("AAA", "BBB", "CCC"));
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetPrevStep("step1");
        $this->SetNextStep("step3");
        $this->SetStepID("step2");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменная vote[car]: ".print_r($wizard->GetVar("vote[car]"), true)."<br />";
        $this->content .= "Значение по умолчанию для vote[car]: ".print_r($wizard->GetDefaultVar("vote[car]"), true)."<br />";
        $this->content .= "Значение всех переменных мастера:";
        $this->content .= "<pre>".print_r($wizard->GetVars(), true)."</pre>";

    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step2");
        $this->SetNextStep("step4");
        $this->SetStepID("step3");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
        $this->SetTitle("Множественный select с дефолтными значениями");

        $wizard = &$this->GetWizard();
        $wizard->SetDefaultVars(
            Array(
                "operation[os]" => Array("windows"),
                "mathematics[twoandwo]" => Array("four", "twotwo"),
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        //Уничтожаем переменную myVar
        $wizard->UnSetVar("myVar");

        $this->content = "Какая ОС стоит на вашем рабочем компьютере?<br />";
        $this->content .= $this->ShowSelectField(
            "operation[os][]",
            Array(
                "linux" => "Linux",
                "windows" => "Windows",
                "freebsd" => "FreeBSD",
                "macos" => "MacOS",
                "dos" => "MS DOS",
            ),
            Array("multiple" => "multiple")
        );

        $this->content .= "<br /><br />Сколько будет 2+2?<br />";

        $this->content .= $this->ShowSelectField(
            "mathematics[twoandwo][]",
            Array(
                "four" => "Четыре",
                "five" => "Пять",
                "twotwo" => "Двадцать два",
                "two_plus_two" => "Два плюс Два",
            ),
            Array("multiple" => "multiple")
        );
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step3");
        $this->SetStepID("step4");
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменные мастера с учётом дефолтных значений:";
        $this->content .= "<pre>".print_r($wizard->GetVars($useDefault = true), true)."</pre>";
    }
}

class FinalStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("final");
        $this->SetTitle("Финиш");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $this->content = "Последний шаг";
    }
}
?>

Описание классов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Дефотные значения",
    "STEPS" => Array("Step1", "Step15", "Step2", "Step3", "Step4", "Step5", "FinalStep"),
);

?>


GetDefaultVars

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetDefaultVars (6.5.0)

СWizardBase::GetDefaultVars

Описание

array
GetDefaultVars();

Метод возвращает массив со значениями по умолчанию для всех переменных.

Смотрите также

  • CWizardBase:GetDefaultVar
  • CWizardBase:SetDefaultVar
  • CWizardBase:SetDefaultVars

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Множественный checkbox");
        $this->SetNextStep("step2");
        $this->SetStepID("step1");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");

        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        //Устанавливаем для переменной vote[car] значение по умолчанию
        $wizard->SetDefaultVar("vote[car]", "reno");

        //Устанавливаем значения по умолчанию нескольким переменным
        $wizard->SetDefaultVars(
            Array(
                "vote[country]" => Array("poland", "lietva"),
                "subject" => "history",
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();
        $this->content = "В каких странах вы были?<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "russia")." Россия<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "usa")." США<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "poland")." Польша<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "lietva")." Литва<br />";

        $this->content .= "<br />Ваши любимые марки авто?<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "bmw")." BMW<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "hyundai")." Hyundai<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "vaz")." Ваз<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "reno")." Рено<br />";

        $this->content .= "<br />Какие науки Вас интересуют?<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "math")." Математика<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "history")." История<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "programming")." Программирование<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "physics")." Физика<br />";

        //Устанавливаем переменную myVar.
        //Значение будет доступно на следующем шаге
        $wizard->SetVar("myVar", Array("AAA", "BBB", "CCC"));
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetPrevStep("step1");
        $this->SetNextStep("step3");
        $this->SetStepID("step2");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменная vote[car]: ".print_r($wizard->GetVar("vote[car]"), true)."<br />";
        $this->content .= "Значение по умолчанию для vote[car]: ".print_r($wizard->GetDefaultVar("vote[car]"), true)."<br />";
        $this->content .= "Значение всех переменных мастера:";
        $this->content .= "<pre>".print_r($wizard->GetVars(), true)."</pre>";

    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step2");
        $this->SetNextStep("step4");
        $this->SetStepID("step3");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
        $this->SetTitle("Множественный select с дефолтными значениями");

        $wizard = &$this->GetWizard();
        $wizard->SetDefaultVars(
            Array(
                "operation[os]" => Array("windows"),
                "mathematics[twoandwo]" => Array("four", "twotwo"),
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        //Уничтожаем переменную myVar
        $wizard->UnSetVar("myVar");

        $this->content = "Какая ОС стоит на вашем рабочем компьютере?<br />";
        $this->content .= $this->ShowSelectField(
            "operation[os][]",
            Array(
                "linux" => "Linux",
                "windows" => "Windows",
                "freebsd" => "FreeBSD",
                "macos" => "MacOS",
                "dos" => "MS DOS",
            ),
            Array("multiple" => "multiple")
        );

        $this->content .= "<br /><br />Сколько будет 2+2?<br />";

        $this->content .= $this->ShowSelectField(
            "mathematics[twoandwo][]",
            Array(
                "four" => "Четыре",
                "five" => "Пять",
                "twotwo" => "Двадцать два",
                "two_plus_two" => "Два плюс Два",
            ),
            Array("multiple" => "multiple")
        );
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step3");
        $this->SetStepID("step4");
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменные мастера с учётом дефолтных значений:";
        $this->content .= "<pre>".print_r($wizard->GetVars($useDefault = true), true)."</pre>";
    }
}

class FinalStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("final");
        $this->SetTitle("Финиш");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $this->content = "Последний шаг";
    }
}
?>

Описание классов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Дефотные значения",
    "STEPS" => Array("Step1", "Step15", "Step2", "Step3", "Step4", "Step5", "FinalStep"),
);

?>


GetFinishButtonID

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetFinishButtonID (6.5.0)

СWizardBase::GetFinishButtonID

Описание

string
GetFinishButtonID();

Метод возвращает значение атрибута name кнопки Готово.

Смотрите также

  • CWizardBase::SetFinishButtonID

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

<?
class MyRedTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        $formName = $wizard->GetFormName(); //имя формы
        $wizardName = $wizard->GetWizardName(); //имя мастера
        $charset = LANG_CHARSET; //текушая кодировка

        //Получаем значения атрибута name кнопок мастера
        $nextButtonID = $wizard->GetNextButtonID();
        $prevButtonID = $wizard->GetPrevButtonID();
        $cancelButtonID = $wizard->GetCancelButtonID();
        $finishButtonID = $wizard->GetFinishButtonID();

        //Получаем ссылку на объект текущего шага
        $obStep =& $wizard->GetCurrentStep();

        $stepTitle = $obStep->GetTitle(); //Заголовок шага
        $stepSubTitle = $obStep->GetSubTitle(); //Подзаголовк шага

        //Получим ошибки шага
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<div id="step_error">'.$strError.'</span>';
        }

        /*
            Возвращаем HTML-код шаблона, в котором обязательно
            должны быть определны следующие макросы:
                {#FORM_START#} - начало формы
                {#CONTENT#} - содержимое текущего шага
                {#BUTTONS#} - кнопки навигации
                {#FORM_END#} - конец формы
        */
        return <<<HTML
<html>
    <head>
        <title>{$wizardName}</title>
        <meta http-equiv="Content-Type" content="text/html; charset={$charset}">
        <style type="text/css">
            body
            {
                margin:0; padding:0; background-color: #FFDEDE;
                font-family:Verdana,Arial,helvetica,sans-serif;font-size:75%;
            }
            table {font-size:100%;}
            form {margin:0;}
            #border-box{margin:2px 2px 0 2px; border:1px dashed red;}
            #step_info
            {
                height:45px;padding:8px 30px;border-bottom:1px dashed red;
                box-sizing:border-box;-moz-box-sizing:border-box;overflow:hidden;background:#FFC4C4;
            }
            #step_title{font-weight:bold;}
            #step_description {font-size:95%; margin-left:10px;}
            #step_content {padding:20px 20px;box-sizing:border-box;-moz-box-sizing:border-box;float:left;}
            #step_buttons
            {
                height:50px; text-align:right; padding-right:20px; padding-top:5px;
                overflow:hidden; box-sizing:border-box;-moz-box-sizing:border-box;
            }
            #step_content_container { height:290px; overflow:auto;background:#fff;}
            #step_error {color:red; margin:6px;}
        </style>

        <script type="text/javascript">

            function OnLoad()
            {
                /*Установим в окошке мастера заголовок*/
                var title = self.parent.window.document.getElementById("wizard_dialog_title");
                if (title)
                    title.innerHTML = "{$wizardName}";

                /*Получаем объект формы*/
                var form = document.forms["{$formName}"];

                if (!form)
                    return;

                /*Получаем объекты кнопок*/
                var cancelButton = form.elements["{$cancelButtonID}"];
                var nextButton = form.elements["{$nextButtonID}"];
                var prevButton = form.elements["{$prevButtonID}"];
                var finishButton = form.elements["{$finishButtonID}"];

                /*Если в шаге только кнопка Отмена, то закроем окно мастера,
                    иначе запросим подтверждение*/
                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            /*Подтвержение по кнопке Отмена*/
            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            /*Закроем окошко мастера*/
            function CloseWindow()
            {
                if (self.parent.window.WizardWindow)
                    self.parent.window.WizardWindow.Close();
            }

        </script>
    </head>
    <body onload="OnLoad();">
        {#FORM_START#}
            <div id="border-box">
                <div id="step_info">
                    <div id="step_title">{$stepTitle}</div>
                    <div id="step_description">{$stepSubTitle}</div>
                </div>
                <div id="step_content_container">
                    {$strError}
                    <div id="step_content">{#CONTENT#}</div>
                </div>
            </div>
            <div id="step_buttons">{#BUTTONS#}</div>
        {#FORM_END#}
    </body>
</html>
HTML;
    }
}
?>


GetFinishStepID

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetFinishStepID (6.5.0)

СWizardBase::GetFinishStepID

mixed
GetFinishStepID();

Возвращает ID шага, на который ссылается кнопка Готово. Если кнопка Готово не установлена, метод возвращает null.

Смотрите также

  • CWizardBase::GetFinishButtonID


GetFormActionScript

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetFormActionScript (6.5.0)

СWizardBase::GetFormActionScript

string
GetFormActionScript();

Метод возвращает значение атрибута action формы мастера (тега <form>).

Смотрите также

  • CWizardBase::SetFormActionScript


GetFormName

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetFormName (6.5.0)

СWizardBase::GetFormName

Описание

string
GetFormName();

Метод возвращает значение атрибута name формы мастера (тега <form>).

Смотрите также

  • CWizardBase::SetFormName
  • CWizardBase::GetFormActionScript

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

<?
class MyRedTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        $formName = $wizard->GetFormName(); //имя формы
        $wizardName = $wizard->GetWizardName(); //имя мастера
        $charset = LANG_CHARSET; //текушая кодировка

        //Получаем значения атрибута name кнопок мастера
        $nextButtonID = $wizard->GetNextButtonID();
        $prevButtonID = $wizard->GetPrevButtonID();
        $cancelButtonID = $wizard->GetCancelButtonID();
        $finishButtonID = $wizard->GetFinishButtonID();

        //Получаем ссылку на объект текущего шага
        $obStep =& $wizard->GetCurrentStep();

        $stepTitle = $obStep->GetTitle(); //Заголовок шага
        $stepSubTitle = $obStep->GetSubTitle(); //Подзаголовк шага

        //Получим ошибки шага
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<div id="step_error">'.$strError.'</span>';
        }

        /*
            Возвращаем HTML-код шаблона, в котором обязательно
            должны быть определны следующие макросы:
                {#FORM_START#} - начало формы
                {#CONTENT#} - содержимое текущего шага
                {#BUTTONS#} - кнопки навигации
                {#FORM_END#} - конец формы
        */
        return <<<HTML
<html>
    <head>
        <title>{$wizardName}</title>
        <meta http-equiv="Content-Type" content="text/html; charset={$charset}">
        <style type="text/css">
            body
            {
                margin:0; padding:0; background-color: #FFDEDE;
                font-family:Verdana,Arial,helvetica,sans-serif;font-size:75%;
            }
            table {font-size:100%;}
            form {margin:0;}
            #border-box{margin:2px 2px 0 2px; border:1px dashed red;}
            #step_info
            {
                height:45px;padding:8px 30px;border-bottom:1px dashed red;
                box-sizing:border-box;-moz-box-sizing:border-box;overflow:hidden;background:#FFC4C4;
            }
            #step_title{font-weight:bold;}
            #step_description {font-size:95%; margin-left:10px;}
            #step_content {padding:20px 20px;box-sizing:border-box;-moz-box-sizing:border-box;float:left;}
            #step_buttons
            {
                height:50px; text-align:right; padding-right:20px; padding-top:5px;
                overflow:hidden; box-sizing:border-box;-moz-box-sizing:border-box;
            }
            #step_content_container { height:290px; overflow:auto;background:#fff;}
            #step_error {color:red; margin:6px;}
        </style>

        <script type="text/javascript">

            function OnLoad()
            {
                /*Установим в окошке мастера заголовок*/
                var title = self.parent.window.document.getElementById("wizard_dialog_title");
                if (title)
                    title.innerHTML = "{$wizardName}";

                /*Получаем объект формы*/
                var form = document.forms["{$formName}"];

                if (!form)
                    return;

                /*Получаем объекты кнопок*/
                var cancelButton = form.elements["{$cancelButtonID}"];
                var nextButton = form.elements["{$nextButtonID}"];
                var prevButton = form.elements["{$prevButtonID}"];
                var finishButton = form.elements["{$finishButtonID}"];

                /*Если в шаге только кнопка Отмена, то закроем окно мастера,
                    иначе запросим подтверждение*/
                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            /*Подтвержение по кнопке Отмена*/
            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            /*Закроем окошко мастера*/
            function CloseWindow()
            {
                if (self.parent.window.WizardWindow)
                    self.parent.window.WizardWindow.Close();
            }

        </script>
    </head>
    <body onload="OnLoad();">
        {#FORM_START#}
            <div id="border-box">
                <div id="step_info">
                    <div id="step_title">{$stepTitle}</div>
                    <div id="step_description">{$stepSubTitle}</div>
                </div>
                <div id="step_content_container">
                    {$strError}
                    <div id="step_content">{#CONTENT#}</div>
                </div>
            </div>
            <div id="step_buttons">{#BUTTONS#}</div>
        {#FORM_END#}
    </body>
</html>
HTML;
    }
}
?>


GetNextButtonID

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetNextButtonID (6.5.0)

СWizardBase::GetNextButtonID

Описание

string
GetNextButtonID();

Метод возвращает значение атрибута name кнопки Далее.

Смотрите также

  • CWizardBase::SetNextButtonID

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

<?
class MyRedTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        $formName = $wizard->GetFormName(); //имя формы
        $wizardName = $wizard->GetWizardName(); //имя мастера
        $charset = LANG_CHARSET; //текушая кодировка

        //Получаем значения атрибута name кнопок мастера
        $nextButtonID = $wizard->GetNextButtonID();
        $prevButtonID = $wizard->GetPrevButtonID();
        $cancelButtonID = $wizard->GetCancelButtonID();
        $finishButtonID = $wizard->GetFinishButtonID();

        //Получаем ссылку на объект текущего шага
        $obStep =& $wizard->GetCurrentStep();

        $stepTitle = $obStep->GetTitle(); //Заголовок шага
        $stepSubTitle = $obStep->GetSubTitle(); //Подзаголовк шага

        //Получим ошибки шага
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<div id="step_error">'.$strError.'</span>';
        }

        /*
            Возвращаем HTML-код шаблона, в котором обязательно
            должны быть определны следующие макросы:
                {#FORM_START#} - начало формы
                {#CONTENT#} - содержимое текущего шага
                {#BUTTONS#} - кнопки навигации
                {#FORM_END#} - конец формы
        */
        return <<<HTML
<html>
    <head>
        <title>{$wizardName}</title>
        <meta http-equiv="Content-Type" content="text/html; charset={$charset}">
        <style type="text/css">
            body
            {
                margin:0; padding:0; background-color: #FFDEDE;
                font-family:Verdana,Arial,helvetica,sans-serif;font-size:75%;
            }
            table {font-size:100%;}
            form {margin:0;}
            #border-box{margin:2px 2px 0 2px; border:1px dashed red;}
            #step_info
            {
                height:45px;padding:8px 30px;border-bottom:1px dashed red;
                box-sizing:border-box;-moz-box-sizing:border-box;overflow:hidden;background:#FFC4C4;
            }
            #step_title{font-weight:bold;}
            #step_description {font-size:95%; margin-left:10px;}
            #step_content {padding:20px 20px;box-sizing:border-box;-moz-box-sizing:border-box;float:left;}
            #step_buttons
            {
                height:50px; text-align:right; padding-right:20px; padding-top:5px;
                overflow:hidden; box-sizing:border-box;-moz-box-sizing:border-box;
            }
            #step_content_container { height:290px; overflow:auto;background:#fff;}
            #step_error {color:red; margin:6px;}
        </style>

        <script type="text/javascript">

            function OnLoad()
            {
                /*Установим в окошке мастера заголовок*/
                var title = self.parent.window.document.getElementById("wizard_dialog_title");
                if (title)
                    title.innerHTML = "{$wizardName}";

                /*Получаем объект формы*/
                var form = document.forms["{$formName}"];

                if (!form)
                    return;

                /*Получаем объекты кнопок*/
                var cancelButton = form.elements["{$cancelButtonID}"];
                var nextButton = form.elements["{$nextButtonID}"];
                var prevButton = form.elements["{$prevButtonID}"];
                var finishButton = form.elements["{$finishButtonID}"];

                /*Если в шаге только кнопка Отмена, то закроем окно мастера,
                    иначе запросим подтверждение*/
                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            /*Подтвержение по кнопке Отмена*/
            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            /*Закроем окошко мастера*/
            function CloseWindow()
            {
                if (self.parent.window.WizardWindow)
                    self.parent.window.WizardWindow.Close();
            }

        </script>
    </head>
    <body onload="OnLoad();">
        {#FORM_START#}
            <div id="border-box">
                <div id="step_info">
                    <div id="step_title">{$stepTitle}</div>
                    <div id="step_description">{$stepSubTitle}</div>
                </div>
                <div id="step_content_container">
                    {$strError}
                    <div id="step_content">{#CONTENT#}</div>
                </div>
            </div>
            <div id="step_buttons">{#BUTTONS#}</div>
        {#FORM_END#}
    </body>
</html>
HTML;
    }
}

?>


GetNextStepID

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetNextStepID (6.5.0)

СWizardBase::GetNextStepID

mixed
GetNextStepID();

Возвращает ID шага, на который ссылается кнопка Далее. Если кнопка Далее не установлена, метод возвращает null.

Смотрите также

  • CWizardBase::GetNextButtonID


GetPackage

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetPackage (6.5.3)

СWizardBase::GetPackage

Описание

object
GetPackage();

Метод возвращает ссылку на объект класса CWizard.

Смотрите также

  • Класс CWizard

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

<?
class MyClass extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step01");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard(); //Получаем ссылку на мастер
        $package =& $wizard->GetPackage(); //Получаем ссылку на объект класса CWizard

        $this->content .= "ID мастера:".$package->GetID(); //Используем метод класса CWizard
    }
}
?>


GetPrevButtonID

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetPrevButtonID (6.5.0)

СWizardBase::GetPrevButtonID

Описание

string
GetPrevButtonID();

Метод возвращает значение атрибута name кнопки Назад.

Смотрите также

  • CWizardBase::GetPrevButtonID

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

<?
class MyRedTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        $formName = $wizard->GetFormName(); //имя формы
        $wizardName = $wizard->GetWizardName(); //имя мастера
        $charset = LANG_CHARSET; //текушая кодировка

        //Получаем значения атрибута name кнопок мастера
        $nextButtonID = $wizard->GetNextButtonID();
        $prevButtonID = $wizard->GetPrevButtonID();
        $cancelButtonID = $wizard->GetCancelButtonID();
        $finishButtonID = $wizard->GetFinishButtonID();

        //Получаем ссылку на объект текущего шага
        $obStep =& $wizard->GetCurrentStep();

        $stepTitle = $obStep->GetTitle(); //Заголовок шага
        $stepSubTitle = $obStep->GetSubTitle(); //Подзаголовк шага

        //Получим ошибки шага
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<div id="step_error">'.$strError.'</span>';
        }

        /*
            Возвращаем HTML-код шаблона, в котором обязательно
            должны быть определны следующие макросы:
                {#FORM_START#} - начало формы
                {#CONTENT#} - содержимое текущего шага
                {#BUTTONS#} - кнопки навигации
                {#FORM_END#} - конец формы
        */
        return <<<HTML
<html>
    <head>
        <title>{$wizardName}</title>
        <meta http-equiv="Content-Type" content="text/html; charset={$charset}">
        <style type="text/css">
            body
            {
                margin:0; padding:0; background-color: #FFDEDE;
                font-family:Verdana,Arial,helvetica,sans-serif;font-size:75%;
            }
            table {font-size:100%;}
            form {margin:0;}
            #border-box{margin:2px 2px 0 2px; border:1px dashed red;}
            #step_info
            {
                height:45px;padding:8px 30px;border-bottom:1px dashed red;
                box-sizing:border-box;-moz-box-sizing:border-box;overflow:hidden;background:#FFC4C4;
            }
            #step_title{font-weight:bold;}
            #step_description {font-size:95%; margin-left:10px;}
            #step_content {padding:20px 20px;box-sizing:border-box;-moz-box-sizing:border-box;float:left;}
            #step_buttons
            {
                height:50px; text-align:right; padding-right:20px; padding-top:5px;
                overflow:hidden; box-sizing:border-box;-moz-box-sizing:border-box;
            }
            #step_content_container { height:290px; overflow:auto;background:#fff;}
            #step_error {color:red; margin:6px;}
        </style>

        <script type="text/javascript">

            function OnLoad()
            {
                /*Установим в окошке мастера заголовок*/
                var title = self.parent.window.document.getElementById("wizard_dialog_title");
                if (title)
                    title.innerHTML = "{$wizardName}";

                /*Получаем объект формы*/
                var form = document.forms["{$formName}"];

                if (!form)
                    return;

                /*Получаем объекты кнопок*/
                var cancelButton = form.elements["{$cancelButtonID}"];
                var nextButton = form.elements["{$nextButtonID}"];
                var prevButton = form.elements["{$prevButtonID}"];
                var finishButton = form.elements["{$finishButtonID}"];

                /*Если в шаге только кнопка Отмена, то закроем окно мастера,
                    иначе запросим подтверждение*/
                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            /*Подтвержение по кнопке Отмена*/
            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            /*Закроем окошко мастера*/
            function CloseWindow()
            {
                if (self.parent.window.WizardWindow)
                    self.parent.window.WizardWindow.Close();
            }

        </script>
    </head>
    <body onload="OnLoad();">
        {#FORM_START#}
            <div id="border-box">
                <div id="step_info">
                    <div id="step_title">{$stepTitle}</div>
                    <div id="step_description">{$stepSubTitle}</div>
                </div>
                <div id="step_content_container">
                    {$strError}
                    <div id="step_content">{#CONTENT#}</div>
                </div>
            </div>
            <div id="step_buttons">{#BUTTONS#}</div>
        {#FORM_END#}
    </body>
</html>
HTML;
    }
}

?>


GetPrevStepID

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetPrevStepID (6.5.0)

СWizardBase::GetPrevStepID

mixed
GetPrevStepID();

Возвращает ID шага, на который ссылается кнопка Назад. Если кнопка Назад не установлена, метод возвращает null.

Смотрите также

  • CWizardBase::GetPrevButtonID


GetRealName

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetRealName (6.5.0)

СWizardBase::GetRealName

string
GetRealName(
 string varName
);

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

Параметры функции

Параметр | Описание
varName | Имя переменной, для которой необходимо получить реальное (с префиксом) имя. Имя переменной может быть составным, например, myvar[key].

Смотрите также

  • CWizardBase::GetVarPrefix
  • CWizardBase::SetVarPrefix


GetVar

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetVar (6.5.0)

СWizardBase::GetVar

Описание и параметры

mixed
GetVar(
 string varName,
 bool useDefault = false
);

Метод возвращает значение переменной varName. Если значение для переменной varName не установлено и параметр useDefault установлен в значение true, метод возвратит значение переменной по умолчанию, иначе возвратит null.

Параметры функции

Параметр | Описание
varName | Имя переменной, значение которой необходимо получить. Имя переменной может быть составным, например, myvar[key].
useDefault | Использовать значение по умолчанию, если значение переменной не установлено. Необязательный параметр, по умолчанию равен false (не использовать значение по умолчанию).

Смотрите также

  • CWizardBase::GetVars
  • CWizardBase::SetVar
  • CWizardBase::UnSetVar

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Множественный checkbox");
        $this->SetNextStep("step2");
        $this->SetStepID("step1");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");

        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        //Устанавливаем для переменной vote[car] значение по умолчанию
        $wizard->SetDefaultVar("vote[car]", "reno");

        //Устанавливаем значения по умолчанию нескольким переменным
        $wizard->SetDefaultVars(
            Array(
                "vote[country]" => Array("poland", "lietva"),
                "subject" => "history",
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();
        $this->content = "В каких странах вы были?<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "russia")." Россия<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "usa")." США<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "poland")." Польша<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "lietva")." Литва<br />";

        $this->content .= "<br />Ваши любимые марки авто?<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "bmw")." BMW<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "hyundai")." Hyundai<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "vaz")." Ваз<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "reno")." Рено<br />";

        $this->content .= "<br />Какие науки Вас интересуют?<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "math")." Математика<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "history")." История<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "programming")." Программирование<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "physics")." Физика<br />";

        //Устанавливаем переменную myVar.
        //Значение будет доступно на следующем шаге
        $wizard->SetVar("myVar", Array("AAA", "BBB", "CCC"));
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetPrevStep("step1");
        $this->SetNextStep("step3");
        $this->SetStepID("step2");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменная vote[car]: ".print_r($wizard->GetVar("vote[car]"), true)."<br />";
        $this->content .= "Значение по умолчанию для vote[car]: ".print_r($wizard->GetDefaultVar("vote[car]"), true)."<br />";
        $this->content .= "Значение всех переменных мастера:";
        $this->content .= "<pre>".print_r($wizard->GetVars(), true)."</pre>";

    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step2");
        $this->SetNextStep("step4");
        $this->SetStepID("step3");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
        $this->SetTitle("Множественный select с дефолтными значениями");

        $wizard = &$this->GetWizard();
        $wizard->SetDefaultVars(
            Array(
                "operation[os]" => Array("windows"),
                "mathematics[twoandwo]" => Array("four", "twotwo"),
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        //Уничтожаем переменную myVar
        $wizard->UnSetVar("myVar");

        $this->content = "Какая ОС стоит на вашем рабочем компьютере?<br />";
        $this->content .= $this->ShowSelectField(
            "operation[os][]",
            Array(
                "linux" => "Linux",
                "windows" => "Windows",
                "freebsd" => "FreeBSD",
                "macos" => "MacOS",
                "dos" => "MS DOS",
            ),
            Array("multiple" => "multiple")
        );

        $this->content .= "<br /><br />Сколько будет 2+2?<br />";

        $this->content .= $this->ShowSelectField(
            "mathematics[twoandwo][]",
            Array(
                "four" => "Четыре",
                "five" => "Пять",
                "twotwo" => "Двадцать два",
                "two_plus_two" => "Два плюс Два",
            ),
            Array("multiple" => "multiple")
        );
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step3");
        $this->SetStepID("step4");
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменные мастера с учётом дефолтных значений:";
        $this->content .= "<pre>".print_r($wizard->GetVars($useDefault = true), true)."</pre>";
    }
}

class FinalStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("final");
        $this->SetTitle("Финиш");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $this->content = "Последний шаг";
    }
}
?>

Описание классов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Дефолтные значения",
    "STEPS" => Array("Step1", "Step15", "Step2", "Step3", "Step4", "Step5", "FinalStep"),
);

?>


GetVarPrefix

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetVarPrefix (6.5.0)

СWizardBase::GetVarPrefix

string
GetVarPrefix();

Метод возвращает префикс для переменных мастера. Имя с префиксом необходимо для того, чтобы названия переменных мастера не пересекались с названиями других переменных страницы. По умолчанию префикс для переменных мастера установлен в значение __wiz_.

Смотрите также

  • CWizardBase::GetRealName
  • CWizardBase::SetVarPrefix


GetVars

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetVars (6.5.0)

СWizardBase::GetVars

Описание и параметры

void
GetVars(
 bool useDefault = false
);

Метод возвращает массив значений всех переменных мастера. Если параметр useDefault установлен в значение true, то переменные, значения для которых не установлены, будут иметь значения по умолчанию.

Параметры функции

Параметр | Описание
useDefault | Устанавливать значения по умолчанию. Необязательный параметр, по умолчанию равен false.

Смотрите также

  • CWizardBase::GetVar
  • CWizardBase::SetVar
  • CWizardBase::UnSetVar

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Множественный checkbox");
        $this->SetNextStep("step2");
        $this->SetStepID("step1");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");

        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        //Устанавливаем для переменной vote[car] значение по умолчанию
        $wizard->SetDefaultVar("vote[car]", "reno");

        //Устанавливаем значения по умолчанию нескольким переменным
        $wizard->SetDefaultVars(
            Array(
                "vote[country]" => Array("poland", "lietva"),
                "subject" => "history",
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();
        $this->content = "В каких странах вы были?<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "russia")." Россия<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "usa")." США<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "poland")." Польша<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "lietva")." Литва<br />";

        $this->content .= "<br />Ваши любимые марки авто?<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "bmw")." BMW<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "hyundai")." Hyundai<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "vaz")." Ваз<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "reno")." Рено<br />";

        $this->content .= "<br />Какие науки Вас интересуют?<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "math")." Математика<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "history")." История<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "programming")." Программирование<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "physics")." Физика<br />";

        //Устанавливаем переменную myVar.
        //Значение будет доступно на следующем шаге
        $wizard->SetVar("myVar", Array("AAA", "BBB", "CCC"));
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetPrevStep("step1");
        $this->SetNextStep("step3");
        $this->SetStepID("step2");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменная vote[car]: ".print_r($wizard->GetVar("vote[car]"), true)."<br />";
        $this->content .= "Значение по умолчанию для vote[car]: ".print_r($wizard->GetDefaultVar("vote[car]"), true)."<br />";
        $this->content .= "Значение всех переменных мастера:";
        $this->content .= "<pre>".print_r($wizard->GetVars(), true)."</pre>";

    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step2");
        $this->SetNextStep("step4");
        $this->SetStepID("step3");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
        $this->SetTitle("Множественный select с дефолтными значениями");

        $wizard = &$this->GetWizard();
        $wizard->SetDefaultVars(
            Array(
                "operation[os]" => Array("windows"),
                "mathematics[twoandwo]" => Array("four", "twotwo"),
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        //Уничтожаем переменную myVar
        $wizard->UnSetVar("myVar");

        $this->content = "Какая ОС стоит на вашем рабочем компьютере?<br />";
        $this->content .= $this->ShowSelectField(
            "operation[os][]",
            Array(
                "linux" => "Linux",
                "windows" => "Windows",
                "freebsd" => "FreeBSD",
                "macos" => "MacOS",
                "dos" => "MS DOS",
            ),
            Array("multiple" => "multiple")
        );

        $this->content .= "<br /><br />Сколько будет 2+2?<br />";

        $this->content .= $this->ShowSelectField(
            "mathematics[twoandwo][]",
            Array(
                "four" => "Четыре",
                "five" => "Пять",
                "twotwo" => "Двадцать два",
                "two_plus_two" => "Два плюс Два",
            ),
            Array("multiple" => "multiple")
        );
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step3");
        $this->SetStepID("step4");
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменные мастера с учётом дефолтных значений:";
        $this->content .= "<pre>".print_r($wizard->GetVars($useDefault = true), true)."</pre>";
    }
}

class FinalStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("final");
        $this->SetTitle("Финиш");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $this->content = "Последний шаг";
    }
}
?>

Описание классов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Дефотные значения",
    "STEPS" => Array("Step1", "Step15", "Step2", "Step3", "Step4", "Step5", "FinalStep"),
);

?>


GetWizardName

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetWizardName (6.5.0)

СWizardBase::GetWizardName

Описание

string
GetWizardName();

Метод возвращает название мастера.

Смотрите также

  • Конструктор CWizardBase

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

<?
class MyRedTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        $formName = $wizard->GetFormName(); //имя формы
        $wizardName = $wizard->GetWizardName(); //имя мастера
        $charset = LANG_CHARSET; //текушая кодировка

        //Получаем значения атрибута name кнопок мастера
        $nextButtonID = $wizard->GetNextButtonID();
        $prevButtonID = $wizard->GetPrevButtonID();
        $cancelButtonID = $wizard->GetCancelButtonID();
        $finishButtonID = $wizard->GetFinishButtonID();

        //Получаем ссылку на объект текущего шага
        $obStep =& $wizard->GetCurrentStep();

        $stepTitle = $obStep->GetTitle(); //Заголовок шага
        $stepSubTitle = $obStep->GetSubTitle(); //Подзаголовк шага

        //Получим ошибки шага
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<div id="step_error">'.$strError.'</span>';
        }

        /*
            Возвращаем HTML-код шаблона, в котором обязательно
            должны быть определны следующие макросы:
                {#FORM_START#} - начало формы
                {#CONTENT#} - содержимое текущего шага
                {#BUTTONS#} - кнопки навигации
                {#FORM_END#} - конец формы
        */
        return <<<HTML
<html>
    <head>
        <title>{$wizardName}</title>
        <meta http-equiv="Content-Type" content="text/html; charset={$charset}">
        <style type="text/css">
            body
            {
                margin:0; padding:0; background-color: #FFDEDE;
                font-family:Verdana,Arial,helvetica,sans-serif;font-size:75%;
            }
            table {font-size:100%;}
            form {margin:0;}
            #border-box{margin:2px 2px 0 2px; border:1px dashed red;}
            #step_info
            {
                height:45px;padding:8px 30px;border-bottom:1px dashed red;
                box-sizing:border-box;-moz-box-sizing:border-box;overflow:hidden;background:#FFC4C4;
            }
            #step_title{font-weight:bold;}
            #step_description {font-size:95%; margin-left:10px;}
            #step_content {padding:20px 20px;box-sizing:border-box;-moz-box-sizing:border-box;float:left;}
            #step_buttons
            {
                height:50px; text-align:right; padding-right:20px; padding-top:5px;
                overflow:hidden; box-sizing:border-box;-moz-box-sizing:border-box;
            }
            #step_content_container { height:290px; overflow:auto;background:#fff;}
            #step_error {color:red; margin:6px;}
        </style>

        <script type="text/javascript">

            function OnLoad()
            {
                /*Установим в окошке мастера заголовок*/
                var title = self.parent.window.document.getElementById("wizard_dialog_title");
                if (title)
                    title.innerHTML = "{$wizardName}";

                /*Получаем объект формы*/
                var form = document.forms["{$formName}"];

                if (!form)
                    return;

                /*Получаем объекты кнопок*/
                var cancelButton = form.elements["{$cancelButtonID}"];
                var nextButton = form.elements["{$nextButtonID}"];
                var prevButton = form.elements["{$prevButtonID}"];
                var finishButton = form.elements["{$finishButtonID}"];

                /*Если в шаге только кнопка Отмена, то закроем окно мастера,
                    иначе запросим подтверждение*/
                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            /*Подтвержение по кнопке Отмена*/
            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            /*Закроем окошко мастера*/
            function CloseWindow()
            {
                if (self.parent.window.WizardWindow)
                    self.parent.window.WizardWindow.Close();
            }

        </script>
    </head>
    <body onload="OnLoad();">
        {#FORM_START#}
            <div id="border-box">
                <div id="step_info">
                    <div id="step_title">{$stepTitle}</div>
                    <div id="step_description">{$stepSubTitle}</div>
                </div>
                <div id="step_content_container">
                    {$strError}
                    <div id="step_content">{#CONTENT#}</div>
                </div>
            </div>
            <div id="step_buttons">{#BUTTONS#}</div>
        {#FORM_END#}
    </body>
</html>
HTML;
    }
}

?>


GetWizardSteps

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>GetWizardSteps (7.0.2)

СWizardBase::GetWizardSteps

Описание

array
GetWizardSteps();

Метод возвращает ассоциативный массив шагов мастера вида ID шага => объект шага (экземплер класса CWizardStep).

Смотрите также

  • СWizardBase::GetCurrentStep
  • СWizardBase::GetCurrentStepID

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

<?
class WizardTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        //Сгенерируем меню мастера
        $wizard =& $this->GetWizard();
        $arSteps = $wizard->GetWizardSteps();
        $currentStep = $wizard->GetCurrentStepID();

        $currentSuccess = false;
        $stepNumber = 1;

        foreach ($arSteps as $stepID => $stepObject)
        {
            if ($stepID == $currentStep)
            {
                $class = 'class="selected"';
                $currentSuccess = true;
            }
            elseif ($currentSuccess)
                $class = '';
            else
                $class = 'class="done"';

            $strNavigation .= '
            <tr '.$class.'>
                <td class="menu-number">'.$stepNumber.'</td>
                <td class="menu-name">'.$stepObject->GetTitle().'</td>
                <td class="menu-end"></td>
            </tr>
            <tr class="menu-separator">
                <td colspan="3"></td>
            </tr>';

            $stepNumber++;
        }

        if (strlen($strNavigation) > 0)
            $strNavigation = '<table width="100%" cellpadding="0" cellspacing="0" id="menu">'.$strNavigation.'</table>';
    }
}
?>


IsCancelButtonClick

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>IsCancelButtonClick (6.5.0)

СWizardBase::IsCancelButtonClick

Описание

bool
IsCancelButtonClick();

Метод возвращает true, если была нажата кнопка Отмена, иначе false.

Смотрите также

  • CWizardBase::IsNextButtonClick
  • CWizardBase::IsPrevButtonClick
  • CWizardBase::IsFinishButtonClick

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");

        $this->SetNextStep("second");
        $this->SetPrevStep("second");
        $this->SetFinishStep("second");
        $this->SetCancelStep("second");
    }

    function OnPostForm()
    {
        $wizard =& $this->GetWizard();

        $code = $wizard->GetVar("code");

        if (strlen($code) <= 0)
            return;

        if ($code == "xxx")
            $this->SetError("Вы ввели запрещённый код", "code");

        if ($wizard->IsNextButtonClick() && $code == "aaa")
            $wizard->SetCurrentStep("first");
        elseif ($wizard->IsPrevButtonClick() && $code == "bbb")
            $wizard->SetCurrentStep("third");
        elseif ($wizard->IsFinishButtonClick() && $code == "ccc")
            $wizard->SetCurrentStep("fourth");
        elseif ($wizard->IsCancelButtonClick() && $code == "ddd")
            $wizard->SetCurrentStep("first");
    }

    function ShowStep()
    {
        $this->content .= '<div class="wizard-note-box">Следующий шаг мастера зависит от введенного кода и нажатой кнопки.</div><br />';
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
        $this->content .= <<<HTML

        <br /><br />Подсказка:<br />
        <table class="wizard-data-table">
                <tr>
                    <th>Кнопка навигации</th>
                    <th>Код</th>
                    <th>Результат</th>
                </tr>
                <tr>
                    <td>Далее</td>
                    <td>aaa</td>
                    <td>Шаг 1</td>
                </tr>
                <tr>
                    <td>Назад</td>
                    <td>bbb</td>
                    <td>Шаг 3</td>
                </tr>
                <tr>
                    <td>Готово</td>
                    <td>ccc</td>
                    <td>Шаг 4</td>
                </tr>
                <tr>
                    <td>Отмена</td>
                    <td>ddd</td>
                    <td>Шаг 1</td>
                </tr>
                <tr>
                    <td>любая</td>
                    <td>xxx</td>
                    <td>ошибка</td>
                </tr>
                <tr>
                    <td colspan="2">любые другие значения</td>
                    <td>Шаг 2</td>
                </tr>
        </table>
HTML;
    }
}

class SecondStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("second");
        $this->SetNextStep("third");
        $this->SetPrevStep("first");
    }
}

class ThirdStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetStepID("third");
        $this->SetNextStep("fourth");
    }
}

class FourthStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetStepID("fourth");
        $this->SetCancelStep("fourth");
    }
}
?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

$wizard = new CWizardBase("Мой мастер", $package);
$wizard->AddSteps(Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"));
$wizard->Display();


IsFinishButtonClick

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>IsFinishButtonClick (6.5.0)

СWizardBase::IsFinishButtonClick

Описание

bool
IsFinishButtonClick();

Метод возвращает true, если была нажата кнопка Готово, иначе false.

Смотрите также

  • CWizardBase::IsNextButtonClick
  • CWizardBase::IsPrevButtonClick
  • CWizardBase::IsCancelButtonClick

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");

        $this->SetNextStep("second");
        $this->SetPrevStep("second");
        $this->SetFinishStep("second");
        $this->SetCancelStep("second");
    }

    function OnPostForm()
    {
        $wizard =& $this->GetWizard();

        $code = $wizard->GetVar("code");

        if (strlen($code) <= 0)
            return;

        if ($code == "xxx")
            $this->SetError("Вы ввели запрещённый код", "code");

        if ($wizard->IsNextButtonClick() && $code == "aaa")
            $wizard->SetCurrentStep("first");
        elseif ($wizard->IsPrevButtonClick() && $code == "bbb")
            $wizard->SetCurrentStep("third");
        elseif ($wizard->IsFinishButtonClick() && $code == "ccc")
            $wizard->SetCurrentStep("fourth");
        elseif ($wizard->IsCancelButtonClick() && $code == "ddd")
            $wizard->SetCurrentStep("first");
    }

    function ShowStep()
    {
        $this->content .= '<div class="wizard-note-box">Следующий шаг мастера зависит от введенного кода и нажатой кнопки.</div><br />';
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
        $this->content .= <<<HTML

        <br /><br />Подсказка:<br />
        <table class="wizard-data-table">
                <tr>
                    <th>Кнопка навигации</th>
                    <th>Код</th>
                    <th>Результат</th>
                </tr>
                <tr>
                    <td>Далее</td>
                    <td>aaa</td>
                    <td>Шаг 1</td>
                </tr>
                <tr>
                    <td>Назад</td>
                    <td>bbb</td>
                    <td>Шаг 3</td>
                </tr>
                <tr>
                    <td>Готово</td>
                    <td>ccc</td>
                    <td>Шаг 4</td>
                </tr>
                <tr>
                    <td>Отмена</td>
                    <td>ddd</td>
                    <td>Шаг 1</td>
                </tr>
                <tr>
                    <td>любая</td>
                    <td>xxx</td>
                    <td>ошибка</td>
                </tr>
                <tr>
                    <td colspan="2">любые другие значения</td>
                    <td>Шаг 2</td>
                </tr>
        </table>
HTML;
    }
}

class SecondStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("second");
        $this->SetNextStep("third");
        $this->SetPrevStep("first");
    }
}

class ThirdStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetStepID("third");
        $this->SetNextStep("fourth");
    }
}

class FourthStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetStepID("fourth");
        $this->SetCancelStep("fourth");
    }
}
?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

$wizard = new CWizardBase("Мой мастер", $package);
$wizard->AddSteps(Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"));
$wizard->Display();


IsNextButtonClick

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>IsNextButtonClick (6.5.0)

СWizardBase::IsNextButtonClick

Описание

bool
IsNextButtonClick();

Метод возвращает true, если была нажата кнопка Далее, иначе false.

Смотрите также

  • CWizardBase::IsPrevButtonClick
  • CWizardBase::IsFinishButtonClick
  • CWizardBase::IsCancelButtonClick

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");

        $this->SetNextStep("second");
        $this->SetPrevStep("second");
        $this->SetFinishStep("second");
        $this->SetCancelStep("second");
    }

    function OnPostForm()
    {
        $wizard =& $this->GetWizard();

        $code = $wizard->GetVar("code");

        if (strlen($code) <= 0)
            return;

        if ($code == "xxx")
            $this->SetError("Вы ввели запрещённый код", "code");

        if ($wizard->IsNextButtonClick() && $code == "aaa")
            $wizard->SetCurrentStep("first");
        elseif ($wizard->IsPrevButtonClick() && $code == "bbb")
            $wizard->SetCurrentStep("third");
        elseif ($wizard->IsFinishButtonClick() && $code == "ccc")
            $wizard->SetCurrentStep("fourth");
        elseif ($wizard->IsCancelButtonClick() && $code == "ddd")
            $wizard->SetCurrentStep("first");
    }

    function ShowStep()
    {
        $this->content .= '<div class="wizard-note-box">Следующий шаг мастера зависит от введенного кода и нажатой кнопки.</div><br />';
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
        $this->content .= <<<HTML

        <br /><br />Подсказка:<br />
        <table class="wizard-data-table">
                <tr>
                    <th>Кнопка навигации</th>
                    <th>Код</th>
                    <th>Результат</th>
                </tr>
                <tr>
                    <td>Далее</td>
                    <td>aaa</td>
                    <td>Шаг 1</td>
                </tr>
                <tr>
                    <td>Назад</td>
                    <td>bbb</td>
                    <td>Шаг 3</td>
                </tr>
                <tr>
                    <td>Готово</td>
                    <td>ccc</td>
                    <td>Шаг 4</td>
                </tr>
                <tr>
                    <td>Отмена</td>
                    <td>ddd</td>
                    <td>Шаг 1</td>
                </tr>
                <tr>
                    <td>любая</td>
                    <td>xxx</td>
                    <td>ошибка</td>
                </tr>
                <tr>
                    <td colspan="2">любые другие значения</td>
                    <td>Шаг 2</td>
                </tr>
        </table>
HTML;
    }
}

class SecondStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("second");
        $this->SetNextStep("third");
        $this->SetPrevStep("first");
    }
}

class ThirdStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetStepID("third");
        $this->SetNextStep("fourth");
    }
}

class FourthStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetStepID("fourth");
        $this->SetCancelStep("fourth");
    }
}
?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

$wizard = new CWizardBase("Мой мастер", $package);
$wizard->AddSteps(Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"));
$wizard->Display();


IsPrevButtonClick

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>IsPrevButtonClick (6.5.0)

СWizardBase::IsPrevButtonClick

Описание

bool
IsPrevButtonClick();

Метод возвращает true, если была нажата кнопка Назад, иначе false.

Смотрите также

  • CWizardBase::IsNextButtonClick
  • CWizardBase::IsFinishButtonClick
  • CWizardBase::IsCancelButtonClick

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");

        $this->SetNextStep("second");
        $this->SetPrevStep("second");
        $this->SetFinishStep("second");
        $this->SetCancelStep("second");
    }

    function OnPostForm()
    {
        $wizard =& $this->GetWizard();

        $code = $wizard->GetVar("code");

        if (strlen($code) <= 0)
            return;

        if ($code == "xxx")
            $this->SetError("Вы ввели запрещённый код", "code");

        if ($wizard->IsNextButtonClick() && $code == "aaa")
            $wizard->SetCurrentStep("first");
        elseif ($wizard->IsPrevButtonClick() && $code == "bbb")
            $wizard->SetCurrentStep("third");
        elseif ($wizard->IsFinishButtonClick() && $code == "ccc")
            $wizard->SetCurrentStep("fourth");
        elseif ($wizard->IsCancelButtonClick() && $code == "ddd")
            $wizard->SetCurrentStep("first");
    }

    function ShowStep()
    {
        $this->content .= '<div class="wizard-note-box">Следующий шаг мастера зависит от введенного кода и нажатой кнопки.</div><br />';
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
        $this->content .= <<<HTML

        <br /><br />Подсказка:<br />
        <table class="wizard-data-table">
                <tr>
                    <th>Кнопка навигации</th>
                    <th>Код</th>
                    <th>Результат</th>
                </tr>
                <tr>
                    <td>Далее</td>
                    <td>aaa</td>
                    <td>Шаг 1</td>
                </tr>
                <tr>
                    <td>Назад</td>
                    <td>bbb</td>
                    <td>Шаг 3</td>
                </tr>
                <tr>
                    <td>Готово</td>
                    <td>ccc</td>
                    <td>Шаг 4</td>
                </tr>
                <tr>
                    <td>Отмена</td>
                    <td>ddd</td>
                    <td>Шаг 1</td>
                </tr>
                <tr>
                    <td>любая</td>
                    <td>xxx</td>
                    <td>ошибка</td>
                </tr>
                <tr>
                    <td colspan="2">любые другие значения</td>
                    <td>Шаг 2</td>
                </tr>
        </table>
HTML;
    }
}

class SecondStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("second");
        $this->SetNextStep("third");
        $this->SetPrevStep("first");
    }
}

class ThirdStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetStepID("third");
        $this->SetNextStep("fourth");
    }
}

class FourthStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetStepID("fourth");
        $this->SetCancelStep("fourth");
    }
}
?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

$wizard = new CWizardBase("Мой мастер", $package);
$wizard->AddSteps(Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"));
$wizard->Display();


SetCancelButtonID

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>SetCancelButtonID (6.5.3)

СWizardBase::SetCancelButtonID

Описание и параметры

void
SetCancelButtonID(
 string buttonID
);

Метод устанавливает значение атрибута name кнопки Отмена.

Параметры функции

Параметр | Описание
buttonID | Значение атрибута name кнопки Отмена.

Смотрите также

  • CWizardBase::GetCancelButtonID

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");
        $this->SetNextStep("second");
        $this->SetCancelStep("fourth");
    }

    function ShowStep()
    {
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
    }
}

class SecondStep extends CWizardStep
{
    function InitStep()
    {
        $wizard =& $this->GetWizard();
        $this->SetTitle("Второй шаг");
        $this->SetStepID("second");
        $this->SetNextStep("third");
        $this->SetPrevStep("first");
        $this->SetCancelStep("fourth");
    }
}

class ThirdStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetStepID("third");
        $this->SetNextStep("fourth");
        $this->SetCancelStep("fourth");
    }
}

class FourthStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetStepID("fourth");
        $this->SetNextStep("fourth");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();

        //На этом шаге форма мастера будет отправлена по адресу /index.php
        $wizard->SetFormActionScript("/index.php");
    }
}

class MyPinkTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard();
        $obStep =& $wizard->GetCurrentStep();

        $wizardName = htmlspecialcharsEx($wizard->GetWizardName());

        //Получаем ошибки
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<tr><td style="padding-top: 10px; padding-left: 20px; color:red;">'.$strError.'</td></tr>';
        }

        //Заголовок и подзаголовок
        $stepTitle = $obStep->GetTitle();
        $stepSubTitle = $obStep->GetSubTitle();

        return <<<HTML

            {#FORM_START#}
            <table style="border:2px outset #D4D0C8; background-color: #FFDEDE;" border="0" cellpadding="0" cellspacing="0" height="370" width="100%">
                <tr>
                    <td style="background-color: #142F73" height="1"><span style="color:white; font-weight:bold; text-align:left; padding-left: 2px;">{$wizardName}</span></td>
                </tr>

                <tr>
                    <td style="height: 60px; border-bottom:2px groove  #aca899; background-color: #FFC4C4; padding: 8px;" valign="top">
                        <div style="padding-top: 5px; padding-left: 20px;"><b>{$stepTitle}</b></div>
                        <div style="padding-left: 40px;">{$stepSubTitle}</div>
                    </td>
                </tr>

                {$strError}

                <tr>
                    <td style="padding: 20px; padding-left: 28px;padding-right: 28px;" valign="top" id="wizard-content-area">{#CONTENT#}</td>
                </tr>

                <tr>
                    <td style="background-color: #FFC4C4; height: 40px; border-top:2px groove #ffffff; padding-right: 15px;" align="right">{#BUTTONS#}</td>
                </tr>
            </table>
            {#FORM_END#}

            <script type="text/javascript">

            function WizardOnLoad()
            {
                var cancelButton = document.forms["my_form"].elements["cancel_button"];
                var nextButton = document.forms["my_form"].elements["next_button"];
                var prevButton = document.forms["my_form"].elements["prev_button"];
                var finishButton = document.forms["my_form"].elements["finish_button"];

                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            function CloseWindow()
            {
                window.location = '/';
                return false;
            }

            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            WizardOnLoad();

            </script>

HTML;
    }
}

//Создаем мастер
$wizard = new CWizardBase("Работа с идентификаторами формы мастера", $package);
$wizard->SetTemplate(new MyPinkTemplate);

//Устанавливаем атрибит name форме мастера
$wizard->SetFormName("my_form");

//Устнавливаем кнопкам навигации атрибут name
$wizard->SetPrevButtonID("prev_button");
$wizard->SetNextButtonID("next_button");
$wizard->SetFinishButtonID("finish_button");
$wizard->SetCancelButtonID("cancel_button");

//Устанавливаем префикс переменным мастера
$wizard->SetVarPrefix("my_prefix_");

//Добавляем шаги
$wizard->AddSteps(Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"));

//Выводим
$wizard->Display();
?>


SetCurrentStep

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>SetCurrentStep (6.5.0)

СWizardBase::SetCurrentStep

Описание и параметры

void
SetCurrentStep(
 string stepID
);

Метод устанавливает шаг stepID текущим.

Параметры функции

Параметр | Описание
stepID | ID шага, который необходимо сделать текущим.

Смотрите также

  • CWizardBase::SetFirstStep
  • CWizardBase::GetCurrentStep
  • CWizardBase::GetCurrentStepID

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");

        $this->SetNextStep("second");
        $this->SetPrevStep("second");
        $this->SetFinishStep("second");
        $this->SetCancelStep("second");
    }

    function OnPostForm()
    {
        $wizard =& $this->GetWizard();

        $code = $wizard->GetVar("code");

        if (strlen($code) <= 0)
            return;

        if ($code == "xxx")
            $this->SetError("Вы ввели запрещённый код", "code");

        if ($wizard->IsNextButtonClick() && $code == "aaa")
            $wizard->SetCurrentStep("first");
        elseif ($wizard->IsPrevButtonClick() && $code == "bbb")
            $wizard->SetCurrentStep("third");
        elseif ($wizard->IsFinishButtonClick() && $code == "ccc")
            $wizard->SetCurrentStep("fourth");
        elseif ($wizard->IsCancelButtonClick() && $code == "ddd")
            $wizard->SetCurrentStep("first");
    }

    function ShowStep()
    {
        $this->content .= '<div class="wizard-note-box">Следующий шаг мастера зависит от введенного кода и нажатой кнопки.</div><br />';
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
        $this->content .= <<<HTML

        <br /><br />Подсказка:<br />
        <table class="wizard-data-table">
                <tr>
                    <th>Кнопка навигации</th>
                    <th>Код</th>
                    <th>Результат</th>
                </tr>
                <tr>
                    <td>Далее</td>
                    <td>aaa</td>
                    <td>Шаг 1</td>
                </tr>
                <tr>
                    <td>Назад</td>
                    <td>bbb</td>
                    <td>Шаг 3</td>
                </tr>
                <tr>
                    <td>Готово</td>
                    <td>ccc</td>
                    <td>Шаг 4</td>
                </tr>
                <tr>
                    <td>Отмена</td>
                    <td>ddd</td>
                    <td>Шаг 1</td>
                </tr>
                <tr>
                    <td>любая</td>
                    <td>xxx</td>
                    <td>ошибка</td>
                </tr>
                <tr>
                    <td colspan="2">любые другие значения</td>
                    <td>Шаг 2</td>
                </tr>
        </table>
HTML;
    }
}

class SecondStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("second");
        $this->SetNextStep("third");
        $this->SetPrevStep("first");
    }
}

class ThirdStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetStepID("third");
        $this->SetNextStep("fourth");
    }
}

class FourthStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetStepID("fourth");
        $this->SetCancelStep("fourth");
    }
}
?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

$wizard = new CWizardBase("Мой мастер", $package);
$wizard->AddSteps(Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"));
$wizard->Display();


SetDefaultVar

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>SetDefaultVar (6.5.3)

СWizardBase::SetDefaultVar

Описание и параметры

void
SetDefaultVar(
 string varName,
 string varValue
);

Метод устанавливает для переменной varName значение по умолчанию varValue.

Параметры функции

Параметр | Описание
varName | Имя переменной, для которой нужно установить значение по умолчанию. Имя переменной может быть составным, например, myvar[key].
varValue | Значение по умолчанию.

Смотрите также

  • CWizardBase:SetDefaultVars
  • CWizardBase:GetDefaultVar
  • CWizardBase:GetDefaultVars

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Множественный checkbox");
        $this->SetNextStep("step2");
        $this->SetStepID("step1");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");

        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        //Устанавливаем для переменной vote[car] значение по умолчанию
        $wizard->SetDefaultVar("vote[car]", "reno");

        //Устанавливаем значения по умолчанию нескольким переменным
        $wizard->SetDefaultVars(
            Array(
                "vote[country]" => Array("poland", "lietva"),
                "subject" => "history",
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();
        $this->content = "В каких странах вы были?<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "russia")." Россия<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "usa")." США<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "poland")." Польша<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "lietva")." Литва<br />";

        $this->content .= "<br />Ваши любимые марки авто?<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "bmw")." BMW<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "hyundai")." Hyundai<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "vaz")." Ваз<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "reno")." Рено<br />";

        $this->content .= "<br />Какие науки Вас интересуют?<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "math")." Математика<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "history")." История<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "programming")." Программирование<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "physics")." Физика<br />";

        //Устанавливаем переменную myVar.
        //Значение будет доступно на следующем шаге
        $wizard->SetVar("myVar", Array("AAA", "BBB", "CCC"));
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetPrevStep("step1");
        $this->SetNextStep("step3");
        $this->SetStepID("step2");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменная vote[car]: ".print_r($wizard->GetVar("vote[car]"), true)."<br />";
        $this->content .= "Значение по умолчанию для vote[car]: ".print_r($wizard->GetDefaultVar("vote[car]"), true)."<br />";
        $this->content .= "Значение всех переменных мастера:";
        $this->content .= "<pre>".print_r($wizard->GetVars(), true)."</pre>";

    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step2");
        $this->SetNextStep("step4");
        $this->SetStepID("step3");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
        $this->SetTitle("Множественный select с дефолтными значениями");

        $wizard = &$this->GetWizard();
        $wizard->SetDefaultVars(
            Array(
                "operation[os]" => Array("windows"),
                "mathematics[twoandwo]" => Array("four", "twotwo"),
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        //Уничтожаем переменную myVar
        $wizard->UnSetVar("myVar");

        $this->content = "Какая ОС стоит на вашем рабочем компьютере?<br />";
        $this->content .= $this->ShowSelectField(
            "operation[os][]",
            Array(
                "linux" => "Linux",
                "windows" => "Windows",
                "freebsd" => "FreeBSD",
                "macos" => "MacOS",
                "dos" => "MS DOS",
            ),
            Array("multiple" => "multiple")
        );

        $this->content .= "<br /><br />Сколько будет 2+2?<br />";

        $this->content .= $this->ShowSelectField(
            "mathematics[twoandwo][]",
            Array(
                "four" => "Четыре",
                "five" => "Пять",
                "twotwo" => "Двадцать два",
                "two_plus_two" => "Два плюс Два",
            ),
            Array("multiple" => "multiple")
        );
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step3");
        $this->SetStepID("step4");
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменные мастера с учётом дефолтных значений:";
        $this->content .= "<pre>".print_r($wizard->GetVars($useDefault = true), true)."</pre>";
    }
}

class FinalStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("final");
        $this->SetTitle("Финиш");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $this->content = "Последний шаг";
    }
}
?>

Описание классов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Дефотные значения",
    "STEPS" => Array("Step1", "Step15", "Step2", "Step3", "Step4", "Step5", "FinalStep"),
);

?>


SetDefaultVars

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>SetDefaultVars (6.5.0)

СWizardBase::SetDefaultVars

Описание и параметры

void
SetDefaultVars(
 array arVars
);

Метод устанавливает переменным мастера значения по умолчанию.

Параметры функции

Параметр | Описание
arVars | Массив значений по умолчанию вида Array("имя_переменной" => "значение_по_умолчанию" [, ...]).

Смотрите также

  • CWizardBase:SetDefaultVar
  • CWizardBase:GetDefaultVar
  • CWizardBase:GetDefaultVars

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Множественный checkbox");
        $this->SetNextStep("step2");
        $this->SetStepID("step1");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");

        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        //Устанавливаем для переменной vote[car] значение по умолчанию
        $wizard->SetDefaultVar("vote[car]", "reno");

        //Устанавливаем значения по умолчанию нескольким переменным
        $wizard->SetDefaultVars(
            Array(
                "vote[country]" => Array("poland", "lietva"),
                "subject" => "history",
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();
        $this->content = "В каких странах вы были?<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "russia")." Россия<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "usa")." США<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "poland")." Польша<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "lietva")." Литва<br />";

        $this->content .= "<br />Ваши любимые марки авто?<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "bmw")." BMW<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "hyundai")." Hyundai<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "vaz")." Ваз<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "reno")." Рено<br />";

        $this->content .= "<br />Какие науки Вас интересуют?<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "math")." Математика<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "history")." История<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "programming")." Программирование<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "physics")." Физика<br />";

        //Устанавливаем переменную myVar.
        //Значение будет доступно на следующем шаге
        $wizard->SetVar("myVar", Array("AAA", "BBB", "CCC"));
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetPrevStep("step1");
        $this->SetNextStep("step3");
        $this->SetStepID("step2");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменная vote[car]: ".print_r($wizard->GetVar("vote[car]"), true)."<br />";
        $this->content .= "Значение по умолчанию для vote[car]: ".print_r($wizard->GetDefaultVar("vote[car]"), true)."<br />";
        $this->content .= "Значение всех переменных мастера:";
        $this->content .= "<pre>".print_r($wizard->GetVars(), true)."</pre>";

    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step2");
        $this->SetNextStep("step4");
        $this->SetStepID("step3");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
        $this->SetTitle("Множественный select с дефолтными значениями");

        $wizard = &$this->GetWizard();
        $wizard->SetDefaultVars(
            Array(
                "operation[os]" => Array("windows"),
                "mathematics[twoandwo]" => Array("four", "twotwo"),
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        //Уничтожаем переменную myVar
        $wizard->UnSetVar("myVar");

        $this->content = "Какая ОС стоит на вашем рабочем компьютере?<br />";
        $this->content .= $this->ShowSelectField(
            "operation[os][]",
            Array(
                "linux" => "Linux",
                "windows" => "Windows",
                "freebsd" => "FreeBSD",
                "macos" => "MacOS",
                "dos" => "MS DOS",
            ),
            Array("multiple" => "multiple")
        );

        $this->content .= "<br /><br />Сколько будет 2+2?<br />";

        $this->content .= $this->ShowSelectField(
            "mathematics[twoandwo][]",
            Array(
                "four" => "Четыре",
                "five" => "Пять",
                "twotwo" => "Двадцать два",
                "two_plus_two" => "Два плюс Два",
            ),
            Array("multiple" => "multiple")
        );
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step3");
        $this->SetStepID("step4");
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменные мастера с учётом дефолтных значений:";
        $this->content .= "<pre>".print_r($wizard->GetVars($useDefault = true), true)."</pre>";
    }
}

class FinalStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("final");
        $this->SetTitle("Финиш");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $this->content = "Последний шаг";
    }
}
?>

Описание классов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Дефотные значения",
    "STEPS" => Array("Step1", "Step15", "Step2", "Step3", "Step4", "Step5", "FinalStep"),
);

?>


SetFinishButtonID

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>SetFinishButtonID (6.5.3)

СWizardBase::SetFinishButtonID

Описание и параметры

void
SetFinishButtonID(
 string buttonID
);

Метод устанавливает значение атрибута name кнопки Готово.

Параметры функции

Параметр | Описание
buttonID | Значение атрибута name кнопки Готово.

Смотрите также

  • CWizardBase::GetFinishButtonID

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");
        $this->SetNextStep("second");
        $this->SetCancelStep("fourth");
    }

    function ShowStep()
    {
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
    }
}

class SecondStep extends CWizardStep
{
    function InitStep()
    {
        $wizard =& $this->GetWizard();
        $this->SetTitle("Второй шаг");
        $this->SetStepID("second");
        $this->SetNextStep("third");
        $this->SetPrevStep("first");
        $this->SetCancelStep("fourth");
    }
}

class ThirdStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetStepID("third");
        $this->SetNextStep("fourth");
        $this->SetCancelStep("fourth");
    }
}

class FourthStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetStepID("fourth");
        $this->SetNextStep("fourth");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();

        //На этом шаге форма мастера будет отправлена по адресу /index.php
        $wizard->SetFormActionScript("/index.php");
    }
}

class MyPinkTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard();
        $obStep =& $wizard->GetCurrentStep();

        $wizardName = htmlspecialcharsEx($wizard->GetWizardName());

        //Получаем ошибки
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<tr><td style="padding-top: 10px; padding-left: 20px; color:red;">'.$strError.'</td></tr>';
        }

        //Заголовок и подзаголовок
        $stepTitle = $obStep->GetTitle();
        $stepSubTitle = $obStep->GetSubTitle();

        return <<<HTML

            {#FORM_START#}
            <table style="border:2px outset #D4D0C8; background-color: #FFDEDE;" border="0" cellpadding="0" cellspacing="0" height="370" width="100%">
                <tr>
                    <td style="background-color: #142F73" height="1"><span style="color:white; font-weight:bold; text-align:left; padding-left: 2px;">{$wizardName}</span></td>
                </tr>

                <tr>
                    <td style="height: 60px; border-bottom:2px groove  #aca899; background-color: #FFC4C4; padding: 8px;" valign="top">
                        <div style="padding-top: 5px; padding-left: 20px;"><b>{$stepTitle}</b></div>
                        <div style="padding-left: 40px;">{$stepSubTitle}</div>
                    </td>
                </tr>

                {$strError}

                <tr>
                    <td style="padding: 20px; padding-left: 28px;padding-right: 28px;" valign="top" id="wizard-content-area">{#CONTENT#}</td>
                </tr>

                <tr>
                    <td style="background-color: #FFC4C4; height: 40px; border-top:2px groove #ffffff; padding-right: 15px;" align="right">{#BUTTONS#}</td>
                </tr>
            </table>
            {#FORM_END#}

            <script type="text/javascript">

            function WizardOnLoad()
            {
                var cancelButton = document.forms["my_form"].elements["cancel_button"];
                var nextButton = document.forms["my_form"].elements["next_button"];
                var prevButton = document.forms["my_form"].elements["prev_button"];
                var finishButton = document.forms["my_form"].elements["finish_button"];

                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            function CloseWindow()
            {
                window.location = '/';
                return false;
            }

            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            WizardOnLoad();

            </script>

HTML;
    }
}

//Создаем мастер
$wizard = new CWizardBase("Работа с идентификаторами формы мастера", $package);
$wizard->SetTemplate(new MyPinkTemplate);

//Устанавливаем атрибит name форме мастера
$wizard->SetFormName("my_form");

//Устнавливаем кнопкам навигации атрибут name
$wizard->SetPrevButtonID("prev_button");
$wizard->SetNextButtonID("next_button");
$wizard->SetFinishButtonID("finish_button");
$wizard->SetCancelButtonID("cancel_button");

//Устанавливаем префикс переменным мастера
$wizard->SetVarPrefix("my_prefix_");

//Добавляем шаги
$wizard->AddSteps(Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"));

//Выводим
$wizard->Display();
?>


SetFirstStep

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>SetFirstStep (6.5.0)

СWizardBase::SetFirstStep

Описание и параметры

void
SetFirstStep(
 string stepID
);

Метод устанавливает шаг stepID первым в цепочке шагов мастера.

Параметры функции

Параметр | Описание
stepID | ID шага, который необходимо сделать первым в цепочке шагов мастера.

Смотрите также

  • Файл описания мастера .description.php
  • CWizardBase::SetCurrentStep
  • CWizardBase::GetCurrentStep
  • CWizardBase::GetCurrentStepID

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");
        $this->SetNextStep("second");
    }
}

class SecondStep extends CWizardStep
{
    function InitStep()
    {
        $wizard =& $this->GetWizard();
        $wizard->SetFirstStep("second"); //Этот шаг будет первым

        $this->SetTitle("Второй шаг");
        $this->SetStepID("second");
        $this->SetNextStep("third");
        $this->SetPrevStep("first");
    }
}

class ThirdStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetStepID("third");
        $this->SetNextStep("fourth");
    }
}

class FourthStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetStepID("fourth");
        $this->SetCancelStep("fourth");
    }
}
?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Второй шаг - первый!",
    "STEPS" => Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

$wizard = new CWizardBase("Второй шаг - первый!", $package);
$wizard->AddSteps(Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"));
$wizard->Display();

Несмотря на то, что шаг FirstStep указан в обоих случаях первым, при запуске мастера будет показан шаг SecondStep.


SetFormActionScript

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>SetFormActionScript (6.5.0)

СWizardBase::SetFormActionScript

Описание и параметры

void
SetFormActionScript(
 string actionScript
);

Метод устанавливает значение атрибута action формы мастера (тега <form>). По умолчанию атрибут action равен адресу текущей страницы.

Параметры

Параметр | Описание
actionScript | Значения атрибута name

Смотрите также

  • CWizardBase::GetFormActionScript

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");
        $this->SetNextStep("second");
        $this->SetCancelStep("fourth");
    }

    function ShowStep()
    {
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
    }
}

class SecondStep extends CWizardStep
{
    function InitStep()
    {
        $wizard =& $this->GetWizard();
        $this->SetTitle("Второй шаг");
        $this->SetStepID("second");
        $this->SetNextStep("third");
        $this->SetPrevStep("first");
        $this->SetCancelStep("fourth");
    }
}

class ThirdStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetStepID("third");
        $this->SetNextStep("fourth");
        $this->SetCancelStep("fourth");
    }
}

class FourthStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetStepID("fourth");
        $this->SetNextStep("fourth");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();

        //На этом шаге форма мастера будет отправлена по адресу /index.php
        $wizard->SetFormActionScript("/index.php");
    }
}

class MyPinkTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard();
        $obStep =& $wizard->GetCurrentStep();

        $wizardName = htmlspecialcharsEx($wizard->GetWizardName());

        //Получаем ошибки
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<tr><td style="padding-top: 10px; padding-left: 20px; color:red;">'.$strError.'</td></tr>';
        }

        //Заголовок и подзаголовок
        $stepTitle = $obStep->GetTitle();
        $stepSubTitle = $obStep->GetSubTitle();

        return <<<HTML

            {#FORM_START#}
            <table style="border:2px outset #D4D0C8; background-color: #FFDEDE;" border="0" cellpadding="0" cellspacing="0" height="370" width="100%">
                <tr>
                    <td style="background-color: #142F73" height="1"><span style="color:white; font-weight:bold; text-align:left; padding-left: 2px;">{$wizardName}</span></td>
                </tr>

                <tr>
                    <td style="height: 60px; border-bottom:2px groove  #aca899; background-color: #FFC4C4; padding: 8px;" valign="top">
                        <div style="padding-top: 5px; padding-left: 20px;"><b>{$stepTitle}</b></div>
                        <div style="padding-left: 40px;">{$stepSubTitle}</div>
                    </td>
                </tr>

                {$strError}

                <tr>
                    <td style="padding: 20px; padding-left: 28px;padding-right: 28px;" valign="top" id="wizard-content-area">{#CONTENT#}</td>
                </tr>

                <tr>
                    <td style="background-color: #FFC4C4; height: 40px; border-top:2px groove #ffffff; padding-right: 15px;" align="right">{#BUTTONS#}</td>
                </tr>
            </table>
            {#FORM_END#}

            <script type="text/javascript">

            function WizardOnLoad()
            {
                var cancelButton = document.forms["my_form"].elements["cancel_button"];
                var nextButton = document.forms["my_form"].elements["next_button"];
                var prevButton = document.forms["my_form"].elements["prev_button"];
                var finishButton = document.forms["my_form"].elements["finish_button"];

                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            function CloseWindow()
            {
                window.location = '/';
                return false;
            }

            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            WizardOnLoad();

            </script>

HTML;
    }
}

//Создаем мастер
$wizard = new CWizardBase("Работа с идентификаторами формы мастера", $package);
$wizard->SetTemplate(new MyPinkTemplate);

//Устанавливаем атрибит name форме мастера
$wizard->SetFormName("my_form");

//Устнавливаем кнопкам навигации атрибут name
$wizard->SetPrevButtonID("prev_button");
$wizard->SetNextButtonID("next_button");
$wizard->SetFinishButtonID("finish_button");
$wizard->SetCancelButtonID("cancel_button");

//Устанавливаем префикс переменным мастера
$wizard->SetVarPrefix("my_prefix_");

//Добавляем шаги
$wizard->AddSteps(Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"));

//Выводим
$wizard->Display();
?>


SetFormName

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>SetFormName (6.5.0)

СWizardBase::SetFormName

Описание и параметры

void
SetFormName(
 string formName
);

Метод устанавливает значение атрибута name формы мастера (тега <form>).

Параметры функции

Параметр | Описание
formName | Значение атрибута name формы мастера (тега <form>).

Смотрите также

  • CWizardBase::GetFormName

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");
        $this->SetNextStep("second");
        $this->SetCancelStep("fourth");
    }

    function ShowStep()
    {
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
    }
}

class SecondStep extends CWizardStep
{
    function InitStep()
    {
        $wizard =& $this->GetWizard();
        $this->SetTitle("Второй шаг");
        $this->SetStepID("second");
        $this->SetNextStep("third");
        $this->SetPrevStep("first");
        $this->SetCancelStep("fourth");
    }
}

class ThirdStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetStepID("third");
        $this->SetNextStep("fourth");
        $this->SetCancelStep("fourth");
    }
}

class FourthStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetStepID("fourth");
        $this->SetNextStep("fourth");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();

        //На этом шаге форма мастера будет отправлена по адресу /index.php
        $wizard->SetFormActionScript("/index.php");
    }
}

class MyPinkTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard();
        $obStep =& $wizard->GetCurrentStep();

        $wizardName = htmlspecialcharsEx($wizard->GetWizardName());

        //Получаем ошибки
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<tr><td style="padding-top: 10px; padding-left: 20px; color:red;">'.$strError.'</td></tr>';
        }

        //Заголовок и подзаголовок
        $stepTitle = $obStep->GetTitle();
        $stepSubTitle = $obStep->GetSubTitle();

        return <<<HTML

            {#FORM_START#}
            <table style="border:2px outset #D4D0C8; background-color: #FFDEDE;" border="0" cellpadding="0" cellspacing="0" height="370" width="100%">
                <tr>
                    <td style="background-color: #142F73" height="1"><span style="color:white; font-weight:bold; text-align:left; padding-left: 2px;">{$wizardName}</span></td>
                </tr>

                <tr>
                    <td style="height: 60px; border-bottom:2px groove  #aca899; background-color: #FFC4C4; padding: 8px;" valign="top">
                        <div style="padding-top: 5px; padding-left: 20px;"><b>{$stepTitle}</b></div>
                        <div style="padding-left: 40px;">{$stepSubTitle}</div>
                    </td>
                </tr>

                {$strError}

                <tr>
                    <td style="padding: 20px; padding-left: 28px;padding-right: 28px;" valign="top" id="wizard-content-area">{#CONTENT#}</td>
                </tr>

                <tr>
                    <td style="background-color: #FFC4C4; height: 40px; border-top:2px groove #ffffff; padding-right: 15px;" align="right">{#BUTTONS#}</td>
                </tr>
            </table>
            {#FORM_END#}

            <script type="text/javascript">

            function WizardOnLoad()
            {
                var cancelButton = document.forms["my_form"].elements["cancel_button"];
                var nextButton = document.forms["my_form"].elements["next_button"];
                var prevButton = document.forms["my_form"].elements["prev_button"];
                var finishButton = document.forms["my_form"].elements["finish_button"];

                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            function CloseWindow()
            {
                window.location = '/';
                return false;
            }

            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            WizardOnLoad();

            </script>

HTML;
    }
}

//Создаем мастер
$wizard = new CWizardBase("Работа с идентификаторами формы мастера", $package);
$wizard->SetTemplate(new MyPinkTemplate);

//Устанавливаем атрибут name форме мастера
$wizard->SetFormName("my_form");

//Устанавливаем кнопкам навигации атрибут name
$wizard->SetPrevButtonID("prev_button");
$wizard->SetNextButtonID("next_button");
$wizard->SetFinishButtonID("finish_button");
$wizard->SetCancelButtonID("cancel_button");

//Устанавливаем префикс переменным мастера
$wizard->SetVarPrefix("my_prefix_");

//Добавляем шаги
$wizard->AddSteps(Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"));

//Выводим
$wizard->Display();
?>


SetNextButtonID

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>SetNextButtonID (6.5.3)

СWizardBase::SetNextButtonID

Описание и параметры

void
SetNextButtonID(
 string buttonID
);

Метод устанавливает значение атрибута name кнопки Далее.

Параметры функции

Параметр | Описание
buttonID | Значение атрибута name кнопки Далее.

Смотрите также

  • CWizardBase::GetNextButtonID

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");
        $this->SetNextStep("second");
        $this->SetCancelStep("fourth");
    }

    function ShowStep()
    {
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
    }
}

class SecondStep extends CWizardStep
{
    function InitStep()
    {
        $wizard =& $this->GetWizard();
        $this->SetTitle("Второй шаг");
        $this->SetStepID("second");
        $this->SetNextStep("third");
        $this->SetPrevStep("first");
        $this->SetCancelStep("fourth");
    }
}

class ThirdStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetStepID("third");
        $this->SetNextStep("fourth");
        $this->SetCancelStep("fourth");
    }
}

class FourthStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetStepID("fourth");
        $this->SetNextStep("fourth");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();

        //На этом шаге форма мастера будет отправлена по адресу /index.php
        $wizard->SetFormActionScript("/index.php");
    }
}

class MyPinkTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard();
        $obStep =& $wizard->GetCurrentStep();

        $wizardName = htmlspecialcharsEx($wizard->GetWizardName());

        //Получаем ошибки
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<tr><td style="padding-top: 10px; padding-left: 20px; color:red;">'.$strError.'</td></tr>';
        }

        //Заголовок и подзаголовок
        $stepTitle = $obStep->GetTitle();
        $stepSubTitle = $obStep->GetSubTitle();

        return <<<HTML

            {#FORM_START#}
            <table style="border:2px outset #D4D0C8; background-color: #FFDEDE;" border="0" cellpadding="0" cellspacing="0" height="370" width="100%">
                <tr>
                    <td style="background-color: #142F73" height="1"><span style="color:white; font-weight:bold; text-align:left; padding-left: 2px;">{$wizardName}</span></td>
                </tr>

                <tr>
                    <td style="height: 60px; border-bottom:2px groove  #aca899; background-color: #FFC4C4; padding: 8px;" valign="top">
                        <div style="padding-top: 5px; padding-left: 20px;"><b>{$stepTitle}</b></div>
                        <div style="padding-left: 40px;">{$stepSubTitle}</div>
                    </td>
                </tr>

                {$strError}

                <tr>
                    <td style="padding: 20px; padding-left: 28px;padding-right: 28px;" valign="top" id="wizard-content-area">{#CONTENT#}</td>
                </tr>

                <tr>
                    <td style="background-color: #FFC4C4; height: 40px; border-top:2px groove #ffffff; padding-right: 15px;" align="right">{#BUTTONS#}</td>
                </tr>
            </table>
            {#FORM_END#}

            <script type="text/javascript">

            function WizardOnLoad()
            {
                var cancelButton = document.forms["my_form"].elements["cancel_button"];
                var nextButton = document.forms["my_form"].elements["next_button"];
                var prevButton = document.forms["my_form"].elements["prev_button"];
                var finishButton = document.forms["my_form"].elements["finish_button"];

                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            function CloseWindow()
            {
                window.location = '/';
                return false;
            }

            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            WizardOnLoad();

            </script>

HTML;
    }
}

//Создаем мастер
$wizard = new CWizardBase("Работа с идентификаторами формы мастера", $package);
$wizard->SetTemplate(new MyPinkTemplate);

//Устанавливаем атрибит name форме мастера
$wizard->SetFormName("my_form");

//Устнавливаем кнопкам навигации атрибут name
$wizard->SetPrevButtonID("prev_button");
$wizard->SetNextButtonID("next_button");
$wizard->SetFinishButtonID("finish_button");
$wizard->SetCancelButtonID("cancel_button");

//Устанавливаем префикс переменным мастера
$wizard->SetVarPrefix("my_prefix_");

//Добавляем шаги
$wizard->AddSteps(Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"));

//Выводим
$wizard->Display();
?>


SetPrevButtonID

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>SetPrevButtonID (6.5.3)

СWizardBase::SetPrevButtonID

Описание и параметры

void
SetPrevButtonID(
 string buttonID
);

Метод устанавливает значение атрибута name кнопки Назад.

Параметры

Параметр | Описание
buttonID | Значение атрибута name кнопки Назад.

Смотрите также

  • CWizardBase::GetPrevButtonID

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");
        $this->SetNextStep("second");
        $this->SetCancelStep("fourth");
    }

    function ShowStep()
    {
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
    }
}

class SecondStep extends CWizardStep
{
    function InitStep()
    {
        $wizard =& $this->GetWizard();
        $this->SetTitle("Второй шаг");
        $this->SetStepID("second");
        $this->SetNextStep("third");
        $this->SetPrevStep("first");
        $this->SetCancelStep("fourth");
    }
}

class ThirdStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetStepID("third");
        $this->SetNextStep("fourth");
        $this->SetCancelStep("fourth");
    }
}

class FourthStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetStepID("fourth");
        $this->SetNextStep("fourth");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();

        //На этом шаге форма мастера будет отправлена по адресу /index.php
        $wizard->SetFormActionScript("/index.php");
    }
}

class MyPinkTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard();
        $obStep =& $wizard->GetCurrentStep();

        $wizardName = htmlspecialcharsEx($wizard->GetWizardName());

        //Получаем ошибки
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<tr><td style="padding-top: 10px; padding-left: 20px; color:red;">'.$strError.'</td></tr>';
        }

        //Заголовок и подзаголовок
        $stepTitle = $obStep->GetTitle();
        $stepSubTitle = $obStep->GetSubTitle();

        return <<<HTML

            {#FORM_START#}
            <table style="border:2px outset #D4D0C8; background-color: #FFDEDE;" border="0" cellpadding="0" cellspacing="0" height="370" width="100%">
                <tr>
                    <td style="background-color: #142F73" height="1"><span style="color:white; font-weight:bold; text-align:left; padding-left: 2px;">{$wizardName}</span></td>
                </tr>

                <tr>
                    <td style="height: 60px; border-bottom:2px groove  #aca899; background-color: #FFC4C4; padding: 8px;" valign="top">
                        <div style="padding-top: 5px; padding-left: 20px;"><b>{$stepTitle}</b></div>
                        <div style="padding-left: 40px;">{$stepSubTitle}</div>
                    </td>
                </tr>

                {$strError}

                <tr>
                    <td style="padding: 20px; padding-left: 28px;padding-right: 28px;" valign="top" id="wizard-content-area">{#CONTENT#}</td>
                </tr>

                <tr>
                    <td style="background-color: #FFC4C4; height: 40px; border-top:2px groove #ffffff; padding-right: 15px;" align="right">{#BUTTONS#}</td>
                </tr>
            </table>
            {#FORM_END#}

            <script type="text/javascript">

            function WizardOnLoad()
            {
                var cancelButton = document.forms["my_form"].elements["cancel_button"];
                var nextButton = document.forms["my_form"].elements["next_button"];
                var prevButton = document.forms["my_form"].elements["prev_button"];
                var finishButton = document.forms["my_form"].elements["finish_button"];

                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            function CloseWindow()
            {
                window.location = '/';
                return false;
            }

            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            WizardOnLoad();

            </script>

HTML;
    }
}

//Создаем мастер
$wizard = new CWizardBase("Работа с идентификаторами формы мастера", $package);
$wizard->SetTemplate(new MyPinkTemplate);

//Устанавливаем атрибит name форме мастера
$wizard->SetFormName("my_form");

//Устнавливаем кнопкам навигации атрибут name
$wizard->SetPrevButtonID("prev_button");
$wizard->SetNextButtonID("next_button");
$wizard->SetFinishButtonID("finish_button");
$wizard->SetCancelButtonID("cancel_button");

//Устанавливаем префикс переменным мастера
$wizard->SetVarPrefix("my_prefix_");

//Добавляем шаги
$wizard->AddSteps(Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"));

//Выводим
$wizard->Display();
?>


SetReturnOutput

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>SetReturnOutput (6.5.0)

СWizardBase::SetReturnOutput

Описание и параметры

void
SetReturnOutput(
 bool mode = true
);

Метод устанавливает флаг возврата в значение mode. Если флаг возврата установлен в значение true, метод CWizardBase::Display возвратит весь вывод мастера, иначе выведет содержимое мастера на экран.

Параметры функции

Параметр | Описание
mode | Флаг возврата. Необязательный параметр, по умолчанию равен true.

Смотрите также

  • CWizardBase::Display

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

<?
class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("step1");
        $this->SetNextStep("step2");
    }

}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("step2");
        $this->SetPrevStep("step1");
    }
}

//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2"));

//Устанавливаем флаг возврата
$wizard->SetReturnOutput();

//Получаем вывод мастера
$output = $wizard->Display();

/*здесь можно обработать вывод мастера*/

//Выводим на экран
echo $output;
?>


SetTemplate

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>SetTemplate (6.5.0)

СWizardBase::SetTemplate

Описание и параметры

void
SetTemplate(
 object obStepTemplate,
 mixed stepID = null
);

Метод устанавливает шаблон obStepTemplate для шага stepID. Если параметр stepID не указан, шаблон устанавливается для всех шагов.

Параметры функции

Параметр | Описание
obStepTemplate | Экземпляр класса CWizardTemplate. До версии 9.5.0 передавался по ссылке.
stepID | ID шага, для которого устанавливается шаблон. Необязательный параметр, по умолчанию равен null (шаблон применяется для всех шагов). До версии 6.5.3 по умолчанию был равен равен false.

Смотрите также

  • Шаблон мастера

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("step1");
        $this->SetNextStep("step2");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 1";
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetStepID("step2");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1");
        $this->SetCancelStep("cancel");
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetCancelStep("cancel");
        $this->SetTitle("Третий шаг");
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("cancel");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Отмена";
    }
}

//Красный шаблон мастера
class MyRedTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        $formName = $wizard->GetFormName(); //имя формы
        $wizardName = $wizard->GetWizardName(); //имя мастера
        $charset = LANG_CHARSET; //текушая кодировка

        //Получаем значения атрибута name кнопок мастера
        $nextButtonID = $wizard->GetNextButtonID();
        $prevButtonID = $wizard->GetPrevButtonID();
        $cancelButtonID = $wizard->GetCancelButtonID();
        $finishButtonID = $wizard->GetFinishButtonID();

        //Получаем ссылку на объект текущего шага
        $obStep =& $wizard->GetCurrentStep();

        $stepTitle = $obStep->GetTitle(); //Заголовок шага
        $stepSubTitle = $obStep->GetSubTitle(); //Подзаголовк шага

        //Получим ошибки шага
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<div id="step_error">'.$strError.'</span>';
        }

        /*
            Возвращаем HTML-код шаблона, в котором обязательно
            должны быть определны следующие макросы:
                {#FORM_START#} - начало формы
                {#CONTENT#} - содержимое текущего шага
                {#BUTTONS#} - кнопки навигации
                {#FORM_END#} - конец формы
        */
        return <<<HTML
<html>
    <head>
        <title>{$wizardName}</title>
        <meta http-equiv="Content-Type" content="text/html; charset={$charset}">
        <style type="text/css">
            body
            {
                margin:0; padding:0; background-color: #FFDEDE;
                font-family:Verdana,Arial,helvetica,sans-serif;font-size:75%;
            }
            table {font-size:100%;}
            form {margin:0;}
            #border-box{margin:2px 2px 0 2px; border:1px dashed red;}
            #step_info
            {
                height:45px;padding:8px 30px;border-bottom:1px dashed red;
                box-sizing:border-box;-moz-box-sizing:border-box;overflow:hidden;background:#FFC4C4;
            }
            #step_title{font-weight:bold;}
            #step_description {font-size:95%; margin-left:10px;}
            #step_content {padding:20px 20px;box-sizing:border-box;-moz-box-sizing:border-box;float:left;}
            #step_buttons
            {
                height:50px; text-align:right; padding-right:20px; padding-top:5px;
                overflow:hidden; box-sizing:border-box;-moz-box-sizing:border-box;
            }
            #step_content_container { height:290px; overflow:auto;background:#fff;}
            #step_error {color:red; margin:6px;}
        </style>

        <script type="text/javascript">

            function OnLoad()
            {
                /*Установим в окошке мастера заголовок*/
                var title = self.parent.window.document.getElementById("wizard_dialog_title");
                if (title)
                    title.innerHTML = "{$wizardName}";

                /*Получаем объект формы*/
                var form = document.forms["{$formName}"];

                if (!form)
                    return;

                /*Получаем объекты кнопок*/
                var cancelButton = form.elements["{$cancelButtonID}"];
                var nextButton = form.elements["{$nextButtonID}"];
                var prevButton = form.elements["{$prevButtonID}"];
                var finishButton = form.elements["{$finishButtonID}"];

                /*Если в шаге только кнопка Отмена, то закроем окно мастера,
                    иначе запросим подтверждение*/
                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            /*Подтвержение по кнопке Отмена*/
            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            /*Закроем окошко мастера*/
            function CloseWindow()
            {
                if (self.parent.window.WizardWindow)
                    self.parent.window.WizardWindow.Close();
            }

        </script>
    </head>
    <body onload="OnLoad();">
        {#FORM_START#}
            <div id="border-box">
                <div id="step_info">
                    <div id="step_title">{$stepTitle}</div>
                    <div id="step_description">{$stepSubTitle}</div>
                </div>
                <div id="step_content_container">
                    {$strError}
                    <div id="step_content">{#CONTENT#}</div>
                </div>
            </div>
            <div id="step_buttons">{#BUTTONS#}</div>
        {#FORM_END#}
    </body>
</html>
HTML;
    }
}

//Аскетичный шаблон
class AsceticTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        $formName = $wizard->GetFormName(); //имя формы
        $wizardName = $wizard->GetWizardName(); //имя мастера
        $charset = LANG_CHARSET; //текушая кодировка

        $obStep =& $wizard->GetCurrentStep();//Получаем ссылку на объект текущего шага
        $stepTitle = $obStep->GetTitle(); //Заголовок шага
        $stepSubTitle = $obStep->GetSubTitle(); //Подзаголовк шага

        return <<<HTML
<html>
    <head>
        <title>{$wizardName}</title>
        <meta http-equiv="Content-Type" content="text/html; charset={$charset}">
        <style type="text/css">body, form, table {margin:0; padding:0;}</style>
    </head>
    <body>
        {#FORM_START#}
            <table width="100%" height="375" cellpadding="8">
                <tr><td height="50">{$stepTitle}<br />{$stepSubTitle}<hr /></td></tr>
                <tr><td valign="top">{#CONTENT#}</td></tr>
                <tr><td height="50" align="right"><hr />{#BUTTONS#}</td></tr>
            </table>
        {#FORM_END#}
    </body>
</html>
HTML;
    }
}

//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Запретим применять системный шаблон по умолчанию
//при запуске мастера из административного раздела
$wizard->DisableAdminTemplate();

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3", "CancelStep"));

//Определим для всех шагов красный шаблон
$wizard->SetTemplate(new MyRedTemplate);

//А для первого шага определим аскетичный шаблон
$wizard->SetTemplate(new AsceticTemplate, "step1");

//Выводим на экран
$wizard->Display();
?>


SetVar

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>SetVar (6.5.0)

СWizardBase::SetVar

Описание и параметры

void
SetVar(
 string varName,
 string varValue
);

Устанавливает переменную мастера varName в значение varValue.

Параметры функции

Параметр | Описание
varName | Имя переменной, для которой нужно установить определённое значение. Имя переменной может быть составным, например, myvar[key].
varValue | Значение переменной.

Смотрите также

  • CWizardBase::GetVar
  • CWizardBase::GetVars
  • CWizardBase::UnSetVar

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Множественный checkbox");
        $this->SetNextStep("step2");
        $this->SetStepID("step1");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");

        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        //Устанавливаем для переменной vote[car] значение по умолчанию
        $wizard->SetDefaultVar("vote[car]", "reno");

        //Устанавливаем значения по умолчанию нескольким переменным
        $wizard->SetDefaultVars(
            Array(
                "vote[country]" => Array("poland", "lietva"),
                "subject" => "history",
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();
        $this->content = "В каких странах вы были?<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "russia")." Россия<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "usa")." США<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "poland")." Польша<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "lietva")." Литва<br />";

        $this->content .= "<br />Ваши любимые марки авто?<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "bmw")." BMW<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "hyundai")." Hyundai<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "vaz")." Ваз<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "reno")." Рено<br />";

        $this->content .= "<br />Какие науки Вас интересуют?<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "math")." Математика<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "history")." История<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "programming")." Программирование<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "physics")." Физика<br />";

        //Устанавливаем переменную myVar.
        //Значение будет доступно на следующем шаге
        $wizard->SetVar("myVar", Array("AAA", "BBB", "CCC"));
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetPrevStep("step1");
        $this->SetNextStep("step3");
        $this->SetStepID("step2");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменная vote[car]: ".print_r($wizard->GetVar("vote[car]"), true)."<br />";
        $this->content .= "Значение по умолчанию для vote[car]: ".print_r($wizard->GetDefaultVar("vote[car]"), true)."<br />";
        $this->content .= "Значение всех переменных мастера:";
        $this->content .= "<pre>".print_r($wizard->GetVars(), true)."</pre>";

    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step2");
        $this->SetNextStep("step4");
        $this->SetStepID("step3");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
        $this->SetTitle("Множественный select с дефолтными значениями");

        $wizard = &$this->GetWizard();
        $wizard->SetDefaultVars(
            Array(
                "operation[os]" => Array("windows"),
                "mathematics[twoandwo]" => Array("four", "twotwo"),
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        //Уничтожаем переменную myVar
        $wizard->UnSetVar("myVar");

        $this->content = "Какая ОС стоит на вашем рабочем компьютере?<br />";
        $this->content .= $this->ShowSelectField(
            "operation[os][]",
            Array(
                "linux" => "Linux",
                "windows" => "Windows",
                "freebsd" => "FreeBSD",
                "macos" => "MacOS",
                "dos" => "MS DOS",
            ),
            Array("multiple" => "multiple")
        );

        $this->content .= "<br /><br />Сколько будет 2+2?<br />";

        $this->content .= $this->ShowSelectField(
            "mathematics[twoandwo][]",
            Array(
                "four" => "Четыре",
                "five" => "Пять",
                "twotwo" => "Двадцать два",
                "two_plus_two" => "Два плюс Два",
            ),
            Array("multiple" => "multiple")
        );
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step3");
        $this->SetStepID("step4");
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменные мастера с учётом дефолтных значений:";
        $this->content .= "<pre>".print_r($wizard->GetVars($useDefault = true), true)."</pre>";
    }
}

class FinalStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("final");
        $this->SetTitle("Финиш");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $this->content = "Последний шаг";
    }
}
?>

Описание классов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Дефотные значения",
    "STEPS" => Array("Step1", "Step15", "Step2", "Step3", "Step4", "Step5", "FinalStep"),
);

?>


SetVarPrefix

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>SetVarPrefix (6.5.0)

СWizardBase::SetVarPrefix

Описание и параметры

void
SetVarPrefix(
 string varPrefix
);

Метод устанавливает префикс для переменных мастера. Имя с префиксом необходимо для того, чтобы названия переменных мастера не пересекались с названиями других переменных страницы. По умолчанию префикс для переменных мастера установлен в значение __wiz_.

Параметры функции

Параметр | Описание
varPrefix | Префикс для переменных мастера.

Смотрите также

  • CWizardBase::GetVarPrefix
  • CWizardBase::GetRealName

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");
        $this->SetNextStep("second");
        $this->SetCancelStep("fourth");
    }

    function ShowStep()
    {
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
    }
}

class SecondStep extends CWizardStep
{
    function InitStep()
    {
        $wizard =& $this->GetWizard();
        $this->SetTitle("Второй шаг");
        $this->SetStepID("second");
        $this->SetNextStep("third");
        $this->SetPrevStep("first");
        $this->SetCancelStep("fourth");
    }
}

class ThirdStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetStepID("third");
        $this->SetNextStep("fourth");
        $this->SetCancelStep("fourth");
    }
}

class FourthStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetStepID("fourth");
        $this->SetNextStep("fourth");
    }

    function ShowStep()
    {
        $wizard =& $this->GetWizard();

        //На этом шаге форма мастера будет отправлена по адресу /index.php
        $wizard->SetFormActionScript("/index.php");
    }
}

class MyPinkTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard();
        $obStep =& $wizard->GetCurrentStep();

        $wizardName = htmlspecialcharsEx($wizard->GetWizardName());

        //Получаем ошибки
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<tr><td style="padding-top: 10px; padding-left: 20px; color:red;">'.$strError.'</td></tr>';
        }

        //Заголовок и подзаголовок
        $stepTitle = $obStep->GetTitle();
        $stepSubTitle = $obStep->GetSubTitle();

        return <<<HTML

            {#FORM_START#}
            <table style="border:2px outset #D4D0C8; background-color: #FFDEDE;" border="0" cellpadding="0" cellspacing="0" height="370" width="100%">
                <tr>
                    <td style="background-color: #142F73" height="1"><span style="color:white; font-weight:bold; text-align:left; padding-left: 2px;">{$wizardName}</span></td>
                </tr>

                <tr>
                    <td style="height: 60px; border-bottom:2px groove  #aca899; background-color: #FFC4C4; padding: 8px;" valign="top">
                        <div style="padding-top: 5px; padding-left: 20px;"><b>{$stepTitle}</b></div>
                        <div style="padding-left: 40px;">{$stepSubTitle}</div>
                    </td>
                </tr>

                {$strError}

                <tr>
                    <td style="padding: 20px; padding-left: 28px;padding-right: 28px;" valign="top" id="wizard-content-area">{#CONTENT#}</td>
                </tr>

                <tr>
                    <td style="background-color: #FFC4C4; height: 40px; border-top:2px groove #ffffff; padding-right: 15px;" align="right">{#BUTTONS#}</td>
                </tr>
            </table>
            {#FORM_END#}

            <script type="text/javascript">

            function WizardOnLoad()
            {
                var cancelButton = document.forms["my_form"].elements["cancel_button"];
                var nextButton = document.forms["my_form"].elements["next_button"];
                var prevButton = document.forms["my_form"].elements["prev_button"];
                var finishButton = document.forms["my_form"].elements["finish_button"];

                if (cancelButton && !nextButton && !prevButton && !finishButton)
                    cancelButton.onclick = CloseWindow;
                else if(cancelButton)
                    cancelButton.onclick = ConfirmCancel;
            }

            function CloseWindow()
            {
                window.location = '/';
                return false;
            }

            function ConfirmCancel()
            {
                return (confirm("Вы действительно хотите прервать мастер?"));
            }

            WizardOnLoad();

            </script>

HTML;
    }
}

//Создаем мастер
$wizard = new CWizardBase("Работа с идентификаторами формы мастера", $package);
$wizard->SetTemplate(new MyPinkTemplate);

//Устанавливаем атрибут name форме мастера
$wizard->SetFormName("my_form");

//Устанавливаем кнопкам навигации атрибут name
$wizard->SetPrevButtonID("prev_button");
$wizard->SetNextButtonID("next_button");
$wizard->SetFinishButtonID("finish_button");
$wizard->SetCancelButtonID("cancel_button");

//Устанавливаем префикс переменным мастера
$wizard->SetVarPrefix("my_prefix_");

//Добавляем шаги
$wizard->AddSteps(Array("FirstStep", "SecondStep", "ThirdStep", "FourthStep"));

//Выводим
$wizard->Display();
?>


UnSetVar

...->Главный модуль>Основные сведения>Мастера>Классы>СWizardBase>UnSetVar (6.5.0)

СWizardBase::UnSetVar

Описание и параметры

void
UnSetVar(
 string varName
);

Уничтожает переменную с именем varName.

Параметры функции

Параметр | Описание
varName | Имя переменной, которую необходимо уничтожить. Имя переменной может быть составным, например, myvar[key].

Смотрите также

  • CWizardBase::GetVar
  • CWizardBase::GetVars
  • CWizardBase::SetVar

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Множественный checkbox");
        $this->SetNextStep("step2");
        $this->SetStepID("step1");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");

        //Получаем ссылку на объект мастера
        $wizard = &$this->GetWizard();

        //Устанавливаем для переменной vote[car] значение по умолчанию
        $wizard->SetDefaultVar("vote[car]", "reno");

        //Устанавливаем значения по умолчанию нескольким переменным
        $wizard->SetDefaultVars(
            Array(
                "vote[country]" => Array("poland", "lietva"),
                "subject" => "history",
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();
        $this->content = "В каких странах вы были?<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "russia")." Россия<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "usa")." США<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "poland")." Польша<br />";
        $this->content .= $this->ShowCheckboxField("vote[country][]", "lietva")." Литва<br />";

        $this->content .= "<br />Ваши любимые марки авто?<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "bmw")." BMW<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "hyundai")." Hyundai<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "vaz")." Ваз<br />";
        $this->content .= $this->ShowCheckboxField("vote[car][]", "reno")." Рено<br />";

        $this->content .= "<br />Какие науки Вас интересуют?<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "math")." Математика<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "history")." История<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "programming")." Программирование<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "physics")." Физика<br />";

        //Устанавливаем переменную myVar.
        //Значение будет доступно на следующем шаге
        $wizard->SetVar("myVar", Array("AAA", "BBB", "CCC"));
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        //Настройки шага
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetPrevStep("step1");
        $this->SetNextStep("step3");
        $this->SetStepID("step2");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменная vote[car]: ".print_r($wizard->GetVar("vote[car]"), true)."<br />";
        $this->content .= "Значение по умолчанию для vote[car]: ".print_r($wizard->GetDefaultVar("vote[car]"), true)."<br />";
        $this->content .= "Значение всех переменных мастера:";
        $this->content .= "<pre>".print_r($wizard->GetVars(), true)."</pre>";

    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step2");
        $this->SetNextStep("step4");
        $this->SetStepID("step3");
        $this->SetCancelStep("final");
        $this->SetFinishStep("step4");
        $this->SetTitle("Множественный select с дефолтными значениями");

        $wizard = &$this->GetWizard();
        $wizard->SetDefaultVars(
            Array(
                "operation[os]" => Array("windows"),
                "mathematics[twoandwo]" => Array("four", "twotwo"),
            )
        );
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        //Уничтожаем переменную myVar
        $wizard->UnSetVar("myVar");

        $this->content = "Какая ОС стоит на вашем рабочем компьютере?<br />";
        $this->content .= $this->ShowSelectField(
            "operation[os][]",
            Array(
                "linux" => "Linux",
                "windows" => "Windows",
                "freebsd" => "FreeBSD",
                "macos" => "MacOS",
                "dos" => "MS DOS",
            ),
            Array("multiple" => "multiple")
        );

        $this->content .= "<br /><br />Сколько будет 2+2?<br />";

        $this->content .= $this->ShowSelectField(
            "mathematics[twoandwo][]",
            Array(
                "four" => "Четыре",
                "five" => "Пять",
                "twotwo" => "Двадцать два",
                "two_plus_two" => "Два плюс Два",
            ),
            Array("multiple" => "multiple")
        );
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetPrevStep("step3");
        $this->SetStepID("step4");
        $this->SetTitle("Шаг отладки");
        $this->SetSubTitle("Смотрим переменные");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $wizard = &$this->GetWizard();

        $this->content .= "Переменные мастера с учётом дефолтных значений:";
        $this->content .= "<pre>".print_r($wizard->GetVars($useDefault = true), true)."</pre>";
    }
}

class FinalStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("final");
        $this->SetTitle("Финиш");
        $this->SetCancelStep("final");
    }

    function ShowStep()
    {
        $this->content = "Последний шаг";
    }
}
?>

Описание классов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Дефотные значения",
    "STEPS" => Array("Step1", "Step15", "Step2", "Step3", "Step4", "Step5", "FinalStep"),
);

?>


Класс CWizardStep

Описание

Для каждого шага, добавляемого в мастер, создаётся экземпляр класса CWizardStep. В переопределяемых функциях (InitStep, ShowStep, OnPostForm) шага методы класса CWizardStep доступны через переменную-псевдоним $this.

<?
class MyFirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг мастера");
    }
}
?>

Список методов

Метод | Описание | С версии
GetErrors | Метод возвращает массив ошибок шага. |
GetStepID | Метод возвращает ID шага. |
GetSubTitle | Метод возвращает подзаголовок шага. |
GetTitle | Метод возвращает заголовок шага. |
GetWizard | Метод возвращает ссылку на объект мастера. | 9.5.0
InitStep | Инициализация свойств шага: идентификатора (ID), заголовка, подзаголовка, кнопок перехода на следующие шаги и др. |
IsAutoSubmit | Метод возвращает значение флага автоматической отправки. |
OnPostForm | Позволяет проверить входные данные, вернуть ошибки, изменить текущий шаг, выполнить любые другие действия. |
SaveFile | Метод сохраняет файл в системе. |
SetAutoSubmit | Метод устанавливает флаг автоматической отправки в значение autoSubmit. |
SetCancelCaption | Метод устанавливает текстовую надпись caption кнопке Отмена. |
SetCancelStep | Метод определяет кнопку Отмена. |
SetError | Метод устанавливает ошибку шага с текстом strError и идентификатором id. |
SetFinishCaption | Метод устанавливает текстовую надпись caption кнопке Готово. |
SetFinishStep | Метод определяет кнопку Готово, ведущую на шаг stepID. |
SetNextCaption | Метод устанавливает текстовую надпись caption кнопке Далее. |
SetNextStep | Метод определяет кнопку Далее, ведущую на шаг stepID. |
SetPrevCaptione | Метод устанавливает текстовую надпись caption кнопке Назад. |
SetPrevStep | Метод определяет кнопку Назад, ведущую на шаг stepID. |
SetStepID | Метод устанавливает идентификатор stepID текущему шагу. |
SetSubTitle | Метод устанавливает подзаголовок шага. |
SetTitle | Метод устанавливает заголовок шага. |
ShowCheckboxField | Метод возвращает HTML-код переключателя с множественным вариантом выбора ответа. |
ShowFileField | Метод возвращает HTML-код поля для загрузки файла на сервер. |
ShowHiddenField | Метод возвращает HTML-код скрытого поля. |
ShowInputField | Метод возвращает HTML-код текстового поля. |
ShowRadioField | Метод возвращает HTML-код переключателя с единственным вариантом выбора ответа. |
ShowSelectField | Метод выводит HTML-код выпадающего списка с одиночным выбором. |
ShowStep | Определяет содержимое шага. |


GetErrors

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>GetErrors (6.5.0)

CWizardStep::GetErrors

Описание

array
GetErrors();

Метод возвращает массив ошибок шага.

Смотрите также

  • CWizardStep::SetError

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

<?
class MyPinkTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard();
        $obStep =& $wizard->GetCurrentStep();

        $wizardName = htmlspecialcharsEx($wizard->GetWizardName());

        //Получаем ошибки
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<tr><td style="padding-top: 10px; padding-left: 20px; color:red;">'.$strError.'</td></tr>';
        }

        //Заголовок и подзаголовок
        $stepTitle = $obStep->GetTitle();
        $stepSubTitle = $obStep->GetSubTitle();

        return <<<HTML

            {#FORM_START#}
            <table style="border:2px outset #D4D0C8; background-color: #FFDEDE;" border="0" cellpadding="0" cellspacing="0" height="370" width="100%">
                <tr>
                    <td style="background-color: #142F73" height="1"><span style="color:white; font-weight:bold; text-align:left; padding-left: 2px;">{$wizardName}</span></td>
                </tr>

                <tr>
                    <td style="height: 60px; border-bottom:2px groove  #aca899; background-color: #FFC4C4; padding: 8px;" valign="top">
                        <div style="padding-top: 5px; padding-left: 20px;"><b>{$stepTitle}</b></div>
                        <div style="padding-left: 40px;">{$stepSubTitle}</div>
                    </td>
                </tr>

                {$strError}

                <tr>
                    <td style="padding: 20px; padding-left: 28px;padding-right: 28px;" valign="top" id="wizard-content-area">{#CONTENT#}</td>
                </tr>

                <tr>
                    <td style="background-color: #FFC4C4; height: 40px; border-top:2px groove #ffffff; padding-right: 15px;" align="right">{#BUTTONS#}</td>
                </tr>
            </table>
            {#FORM_END#}

HTML;
    }
}
?>


GetStepID

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>GetStepID (6.5.0)

CWizardStep::GetStepID

mixed
GetStepID();

Метод возвращает ID шага. Если ID для шага не установлен, метод возвратит null.

Смотрите также

  • CWizardStep::SetStepID


GetSubTitle

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>GetSubTitle (6.5.0)

CWizardStep::GetSubTitle

Описание

string
GetSubTitle();

Метод возвращает подзаголовок шага.

Смотрите также

  • CWizardStep::SetSubTitle
  • CWizardStep::SetTitle
  • CWizardStep::GetTitle

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

<?
class MyPinkTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard();
        $obStep =& $wizard->GetCurrentStep();

        $wizardName = htmlspecialcharsEx($wizard->GetWizardName());

        //Получаем ошибки
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<tr><td style="padding-top: 10px; padding-left: 20px; color:red;">'.$strError.'</td></tr>';
        }

        //Заголовок и подзаголовок
        $stepTitle = $obStep->GetTitle();
        $stepSubTitle = $obStep->GetSubTitle();

        return <<<HTML

            {#FORM_START#}
            <table style="border:2px outset #D4D0C8; background-color: #FFDEDE;" border="0" cellpadding="0" cellspacing="0" height="370" width="100%">
                <tr>
                    <td style="background-color: #142F73" height="1"><span style="color:white; font-weight:bold; text-align:left; padding-left: 2px;">{$wizardName}</span></td>
                </tr>

                <tr>
                    <td style="height: 60px; border-bottom:2px groove  #aca899; background-color: #FFC4C4; padding: 8px;" valign="top">
                        <div style="padding-top: 5px; padding-left: 20px;"><b>{$stepTitle}</b></div>
                        <div style="padding-left: 40px;">{$stepSubTitle}</div>
                    </td>
                </tr>

                {$strError}

                <tr>
                    <td style="padding: 20px; padding-left: 28px;padding-right: 28px;" valign="top" id="wizard-content-area">{#CONTENT#}</td>
                </tr>

                <tr>
                    <td style="background-color: #FFC4C4; height: 40px; border-top:2px groove #ffffff; padding-right: 15px;" align="right">{#BUTTONS#}</td>
                </tr>
            </table>
            {#FORM_END#}

HTML;
    }
}
?>


GetTitle

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>GetTitle (6.5.0)

CWizardStep::GetTitle

Описание

string
GetTitle();

Метод возвращает заголовок шага.

Смотрите также

  • CWizardStep::SetTitle
  • CWizardStep::SetSubTitle
  • CWizardStep::GetSubTitle

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

<?
class MyPinkTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard();
        $obStep =& $wizard->GetCurrentStep();

        $wizardName = htmlspecialcharsEx($wizard->GetWizardName());

        //Получаем ошибки
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<tr><td style="padding-top: 10px; padding-left: 20px; color:red;">'.$strError.'</td></tr>';
        }

        //Заголовок и подзаголовок
        $stepTitle = $obStep->GetTitle();
        $stepSubTitle = $obStep->GetSubTitle();

        return <<<HTML

            {#FORM_START#}
            <table style="border:2px outset #D4D0C8; background-color: #FFDEDE;" border="0" cellpadding="0" cellspacing="0" height="370" width="100%">
                <tr>
                    <td style="background-color: #142F73" height="1"><span style="color:white; font-weight:bold; text-align:left; padding-left: 2px;">{$wizardName}</span></td>
                </tr>

                <tr>
                    <td style="height: 60px; border-bottom:2px groove  #aca899; background-color: #FFC4C4; padding: 8px;" valign="top">
                        <div style="padding-top: 5px; padding-left: 20px;"><b>{$stepTitle}</b></div>
                        <div style="padding-left: 40px;">{$stepSubTitle}</div>
                    </td>
                </tr>

                {$strError}

                <tr>
                    <td style="padding: 20px; padding-left: 28px;padding-right: 28px;" valign="top" id="wizard-content-area">{#CONTENT#}</td>
                </tr>

                <tr>
                    <td style="background-color: #FFC4C4; height: 40px; border-top:2px groove #ffffff; padding-right: 15px;" align="right">{#BUTTONS#}</td>
                </tr>
            </table>
            {#FORM_END#}

HTML;
    }
}
?>


GetWizard

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>GetWizard (9.5.0)

CWizardStep::GetWizard

object
GetWizard();

Метод возвращает ссылку на объект мастера.

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

<?
class MyFirstStep extends CWizardStep
{
    function InitStep()
    {
        $wizard =& $this->GetWizard(); //Получаем ссылку на объект мастера
        $myVar = $wizard->GetVar("myVar"); //Используем метод мастера (класс CWizardBase)
    }
}
?>


InitStep

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>InitStep (6.5.0)

CWizardStep::InitStep

Описание

void
InitStep();

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

Смотрите также

  • Определение шагов мастера
  • CWizardStep::OnPostForm
  • CWizardStep::ShowStep

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

<?
class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");
        $this->SetNextStep("second");
        $this->SetCancelStep("fourth");
    }

    function ShowStep()
    {
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
    }
}
?>


IsAutoSubmit

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>IsAutoSubmit (6.5.0)

CWizardStep::IsAutoSubmit

bool
IsAutoSubmit();

Метод возвращает значение флага автоматической отправки.

Смотрите также

  • CWizardStep::SetAutoSubmit


OnPostForm

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>OnPostForm (6.5.0)

CWizardStep::OnPostForm

Описание

void
OnPostForm();

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

Смотрите также

  • Определение шагов мастера
  • CWizardStep::InitStep
  • CWizardStep::ShowStep

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

<?
class FirstStep extends CWizardStep
{
    function OnPostForm()
    {
        $wizard =& $this->GetWizard();

        $code = $wizard->GetVar("code");

        if (strlen($code) <= 0)
            return;

        if ($code == "xxx")
            $this->SetError("Вы ввели запрещённый код", "code");

        if ($wizard->IsNextButtonClick() && $code == "aaa")
            $wizard->SetCurrentStep("first");
        elseif ($wizard->IsPrevButtonClick() && $code == "bbb")
            $wizard->SetCurrentStep("third");
        elseif ($wizard->IsFinishButtonClick() && $code == "ccc")
            $wizard->SetCurrentStep("fourth");
        elseif ($wizard->IsCancelButtonClick() && $code == "ddd")
            $wizard->SetCurrentStep("first");
    }
}
?>


SaveFile

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>SaveFile (6.5.0)

CWizardStep::SaveFile

Описание и параметры

int
SaveFile(
 string name,
 array arRestriction = Array()
);

Метод сохраняет файл в системе. В случае удачной загрузки метод возвратит ID добавленного файла.

Параметры функции

Параметр | Описание
name | Имя поля для загрузки файла на сервер.
arRestriction Массив ограничений на загружаемый файл вида Array("вид_ограничения" => "значение_ограничения" [,...]). Вид ограничения может принимать следующие значения:
  • max_file_size - максимальный размер загружаемого файла в байтах;
  • max_width - максимальная ширина загружаемой картинки в пикселях;
  • max_height - максимальная высота загружаемой картинки в пикселях;
  • extensions - допустимые расширения загружаемого файла через запятую.
  • make_preview - если параметр установлен в значение Y, то метод создаст уменьшенную копию загружаемого файла с максимальной шириной max_width и максимальной высотой max_height. По умолчанию параметр равен N.
Необязательный параметр, по умолчанию ограничений нет.

Смотрите также

  • CWizardStep::ShowFileField
  • CWizardUtil::CopyFile
  • CWizardUtil::CreateThumbnail

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

Мастер создания нового пользователя

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Загрузка файла");
        $this->SetStepID("step");

        $this->SetNextStep("step");
        $this->SetFinishStep("step");

        $this->SetNextCaption("Загрузить");
        $this->SetFinishCaption("Скопировать");
    }

    function OnPostForm()
    {
        $wizard =& $this->GetWizard();

        if ($wizard->IsNextButtonClick())
            $this->SaveFile("file", Array("max_file_size" => 20*1024, "extensions" => "gif,jpg,png"));
        elseif($wizard->IsFinishButtonClick())
        {
            $fileID = $wizard->GetVar("file");
            if (intval($fileID) > 0)
                CWizardUtil::CopyFile($fileID, "/upload_picture.gif");
        }
    }

    function ShowStep()
    {
        $this->content .= "Загрузить файл:".$this->ShowFileField("file", Array("max_file_size" => 20*1024, "size" => "25"));
    }

}
?>


SetAutoSubmit

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>SetAutoSubmit (6.5.0)

CWizardStep::SetAutoSubmit

Описание и параметры

void
SetAutoSubmit(
 bool autoSubmit = true
);

Метод устанавливает флаг автоматической отправки в значение autoSubmit. Если у шага флаг автоматической отправки установлен в значение true, то в системных шаблонах мастера кнопка Далее будет нажата автоматически.

Параметры функции

Параметр | Описание
autoSubmit | Значение флага автоматической отправки. Необязательный параметр, по умолчанию равен true.

Смотрите также

  • CWizardStep::IsAutoSubmit

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step1"); //ID шага

        $this->SetTitle("Первый шаг"); //Заголовок шага
        $this->SetSubTitle("Шаг приветствие"); //Подзаголовок шага

        $this->SetNextStep("step2"); //Кнопка Далее, ведущая на второй шаг
        $this->SetFinishStep("step4"); //Кнопка Готово, ведущая на 4ый шаг
        $this->SetCancelStep("cancel"); //Кнопк Отмена, ведущая на шаг Отмены
    }

    function ShowStep()
    {
        //Содержимое шага
        $this->content .= "Шаг 1";
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetSubTitle("Свои надписи к кнопкам");

        $this->SetStepID("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1"); //Кнопка Назад, ведущая на первый шаг
        $this->SetCancelStep("cancel");

        //Изменим надписи к кнопкам
        $this->SetPrevCaption("Назад к шагу 1");
        $this->SetNextCaption("Вперед");
        $this->SetFinishCaption("Финиш");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 2";
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetSubTitle("Автосабмит");

        //В системных шаблонах кнопка Далее нажмется автоматически
        $this->SetAutoSubmit();

        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step4");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 3";
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetSubTitle("Финиш");

        $this->SetStepID("step4");
        $this->SetPrevStep("step3");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 4";
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("cancel");

        //В системном шаблоне по уомлчанию
        //JS-обработчик закроет окно мастера,
        //т.к. кнопка отмена одна на странице шага
        $this->SetCancelStep("cancel");

        //Изменим надпись кнопке Отмена
        $this->SetCancelCaption("Закрыть");
    }

    function ShowStep()
    {
        $this->content .= "Отмена";
    }
}

?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("Step1", "Step2", "Step3", "Step4", "CancelStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

<?
//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3", "Step4", "CancelStep"));

//Выводим на экран
$wizard->Display();
?>


SetCancelCaption

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>SetCancelCaption (6.5.0)

CWizardStep::SetCancelCaption

Описание и параметры

void
SetCancelCaption(
 string caption
);

Метод устанавливает текстовую надпись caption кнопке Отмена.

Параметры функции

Параметр | Описание
caption | Надпись кнопки Отмена.

Смотрите также

  • CWizardStep::SetNextCaption
  • CWizardStep::SetPrevCaption
  • CWizardStep::SetFinishCaption

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step1"); //ID шага

        $this->SetTitle("Первый шаг"); //Заголовок шага
        $this->SetSubTitle("Шаг приветствие"); //Подзаголовок шага

        $this->SetNextStep("step2"); //Кнопка Далее, ведущая на второй шаг
        $this->SetFinishStep("step4"); //Кнопка Готово, ведущая на 4ый шаг
        $this->SetCancelStep("cancel"); //Кнопк Отмена, ведущая на шаг Отмены
    }

    function ShowStep()
    {
        //Содержимое шага
        $this->content .= "Шаг 1";
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetSubTitle("Свои надписи к кнопкам");

        $this->SetStepID("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1"); //Кнопка Назад, ведущая на первый шаг
        $this->SetCancelStep("cancel");

        //Изменим надписи к кнопкам
        $this->SetPrevCaption("Назад к шагу 1");
        $this->SetNextCaption("Вперед");
        $this->SetFinishCaption("Финиш");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 2";
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetSubTitle("Автосабмит");

        //В системных шаблонах кнопка Далее нажмется автоматически
        $this->SetAutoSubmit();

        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step4");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 3";
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetSubTitle("Финиш");

        $this->SetStepID("step4");
        $this->SetPrevStep("step3");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 4";
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("cancel");

        //В системном шаблоне по уомлчанию
        //JS-обработчик закроет окно мастера,
        //т.к. кнопка отмена одна на странице шага
        $this->SetCancelStep("cancel");

        //Изменим надпись кнопке Отмена
        $this->SetCancelCaption("Закрыть");
    }

    function ShowStep()
    {
        $this->content .= "Отмена";
    }
}

?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("Step1", "Step2", "Step3", "Step4", "CancelStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

<?
//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3", "Step4", "CancelStep"));

//Выводим на экран
$wizard->Display();
?>


SetCancelStep

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>SetCancelStep (6.5.0)

CWizardStep::SetCancelStep

Описание и параметры

void
SetCancelStep(
 string stepID
);

Метод определяет кнопку Отмена, ведущую на шаг stepID.

Параметры функции

Параметр | Описание
stepID | ID шага, на который ведет кнопка Отмена.

Смотрите также

  • CWizardStep::SetStepID
  • CWizardStep::SetPrevStep
  • CWizardStep::SetNextStep
  • CWizardStep::SetFinishStep

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step1"); //ID шага

        $this->SetTitle("Первый шаг"); //Заголовок шага
        $this->SetSubTitle("Шаг приветствие"); //Подзаголовок шага

        $this->SetNextStep("step2"); //Кнопка Далее, ведущая на второй шаг
        $this->SetFinishStep("step4"); //Кнопка Готово, ведущая на 4ый шаг
        $this->SetCancelStep("cancel"); //Кнопк Отмена, ведущая на шаг Отмены
    }

    function ShowStep()
    {
        //Содержимое шага
        $this->content .= "Шаг 1";
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetSubTitle("Свои надписи к кнопкам");

        $this->SetStepID("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1"); //Кнопка Назад, ведущая на первый шаг
        $this->SetCancelStep("cancel");

        //Изменим надписи к кнопкам
        $this->SetPrevCaption("Назад к шагу 1");
        $this->SetNextCaption("Вперед");
        $this->SetFinishCaption("Финиш");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 2";
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetSubTitle("Автосабмит");

        //В системных шаблонах кнопка Далее нажмется автоматически
        $this->SetAutoSubmit();

        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step4");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 3";
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetSubTitle("Финиш");

        $this->SetStepID("step4");
        $this->SetPrevStep("step3");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 4";
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("cancel");

        //В системном шаблоне по уомлчанию
        //JS-обработчик закроет окно мастера,
        //т.к. кнопка отмена одна на странице шага
        $this->SetCancelStep("cancel");

        //Изменим надпись кнопке Отмена
        $this->SetCancelCaption("Закрыть");
    }

    function ShowStep()
    {
        $this->content .= "Отмена";
    }
}

?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("Step1", "Step2", "Step3", "Step4", "CancelStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

<?
//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3", "Step4", "CancelStep"));

//Выводим на экран
$wizard->Display();
?>


SetError

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>SetError (6.5.0)

CWizardStep::SetError

Описание и параметры

void
SetError(
 string strError,
 bool id = false
);

Метод устанавливает ошибку шага с текстом strError и идентификатором id. Если шаг содержит ошибки, то переход по кнопкам навигации не осуществляется.

Параметры функции

Параметр | Описание
strError | Текст ошибки.
id | Идентификатор ошибки. Необязательный параметр, по умолчанию равен false.

Смотрите также

  • CWizardStep::GetErrors

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

Мастер создания нового пользователя

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Проверка данных");
        $this->SetNextStep("step");
        $this->SetFinishStep("step");
        $this->SetStepID("step");
    }

    function OnPostForm()
    {
        $wizard = &$this->GetWizard();
        if ($wizard->IsNextButtonClick() || $wizard->IsFinishButtonClick())
        {
            $your_name = $wizard->GetVar("your_name");
            $your_surname = $wizard->GetVar("your_surname");

            if (strlen($your_name)<=0)
                $this->SetError("Вы не указали имя", "your_name");

            if (strlen($your_surname)<=0)
                $this->SetError("Вы не указали фамилию", "your_surname");
        }
    }

    function ShowStep()
    {
        $this->content .= "Имя: ".$this->ShowInputField("text", "your_name")."<br />";
        $this->content .= "Фамилия: ".$this->ShowInputField("text", "your_surname")."<br />";
        $this->content .= "О себе:<br />".$this->ShowInputField("textarea", "about_text", Array("cols" => "25", "rows" => "5"))."<br /><br />";
    }
}

?>


SetFinishCaption

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>SetFinishCaption (6.5.0)

CWizardStep::SetFinishCaption

Описание и параметры

void
SetFinishCaption(
 string caption
);

Метод устанавливает текстовую надпись caption кнопке Готово.

Параметры функции

Параметр | Описание
caption | Надпись кнопки Готово.

Смотрите также

  • CWizardStep::SetNextCaption
  • CWizardStep::SetPrevCaption
  • CWizardStep::SetCancelCaption

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step1"); //ID шага

        $this->SetTitle("Первый шаг"); //Заголовок шага
        $this->SetSubTitle("Шаг приветствие"); //Подзаголовок шага

        $this->SetNextStep("step2"); //Кнопка Далее, ведущая на второй шаг
        $this->SetFinishStep("step4"); //Кнопка Готово, ведущая на 4ый шаг
        $this->SetCancelStep("cancel"); //Кнопк Отмена, ведущая на шаг Отмены
    }

    function ShowStep()
    {
        //Содержимое шага
        $this->content .= "Шаг 1";
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetSubTitle("Свои надписи к кнопкам");

        $this->SetStepID("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1"); //Кнопка Назад, ведущая на первый шаг
        $this->SetCancelStep("cancel");

        //Изменим надписи к кнопкам
        $this->SetPrevCaption("Назад к шагу 1");
        $this->SetNextCaption("Вперед");
        $this->SetFinishCaption("Финиш");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 2";
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetSubTitle("Автосабмит");

        //В системных шаблонах кнопка Далее нажмется автоматически
        $this->SetAutoSubmit();

        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step4");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 3";
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetSubTitle("Финиш");

        $this->SetStepID("step4");
        $this->SetPrevStep("step3");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 4";
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("cancel");

        //В системном шаблоне по уомлчанию
        //JS-обработчик закроет окно мастера,
        //т.к. кнопка отмена одна на странице шага
        $this->SetCancelStep("cancel");

        //Изменим надпись кнопке Отмена
        $this->SetCancelCaption("Закрыть");
    }

    function ShowStep()
    {
        $this->content .= "Отмена";
    }
}

?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("Step1", "Step2", "Step3", "Step4", "CancelStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

<?
//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3", "Step4", "CancelStep"));

//Выводим на экран
$wizard->Display();
?>


SetFinishStep

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>SetFinishStep (6.5.0)

CWizardStep::SetFinishStep

Описание и параметры

void
SetFinishStep(
 string stepID
);

Метод определяет кнопку Готово, ведущую на шаг stepID.

Параметры функции

Параметр | Описание
stepID | ID шага, на который ведет кнопка Готово.

Смотрите также

  • CWizardStep::SetStepID
  • CWizardStep::SetPrevStep
  • CWizardStep::SetNextStep
  • CWizardStep::SetCancelStep

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step1"); //ID шага

        $this->SetTitle("Первый шаг"); //Заголовок шага
        $this->SetSubTitle("Шаг приветствие"); //Подзаголовок шага

        $this->SetNextStep("step2"); //Кнопка Далее, ведущая на второй шаг
        $this->SetFinishStep("step4"); //Кнопка Готово, ведущая на 4ый шаг
        $this->SetCancelStep("cancel"); //Кнопк Отмена, ведущая на шаг Отмены
    }

    function ShowStep()
    {
        //Содержимое шага
        $this->content .= "Шаг 1";
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetSubTitle("Свои надписи к кнопкам");

        $this->SetStepID("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1"); //Кнопка Назад, ведущая на первый шаг
        $this->SetCancelStep("cancel");

        //Изменим надписи к кнопкам
        $this->SetPrevCaption("Назад к шагу 1");
        $this->SetNextCaption("Вперед");
        $this->SetFinishCaption("Финиш");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 2";
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetSubTitle("Автосабмит");

        //В системных шаблонах кнопка Далее нажмется автоматически
        $this->SetAutoSubmit();

        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step4");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 3";
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetSubTitle("Финиш");

        $this->SetStepID("step4");
        $this->SetPrevStep("step3");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 4";
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("cancel");

        //В системном шаблоне по уомлчанию
        //JS-обработчик закроет окно мастера,
        //т.к. кнопка отмена одна на странице шага
        $this->SetCancelStep("cancel");

        //Изменим надпись кнопке Отмена
        $this->SetCancelCaption("Закрыть");
    }

    function ShowStep()
    {
        $this->content .= "Отмена";
    }
}

?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("Step1", "Step2", "Step3", "Step4", "CancelStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

<?
//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3", "Step4", "CancelStep"));

//Выводим на экран
$wizard->Display();
?>


SetNextCaption

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>SetNextCaption (6.5.0)

CWizardStep::SetNextCaption

Описание и параметры

void
SetNextCaption(
 string caption
);

Метод устанавливает текстовую надпись caption кнопке Далее.

Параметры функции

Параметр | Описание
caption | Надпись кнопки Далее.

Смотрите также

  • CWizardStep::SetPrevCaption
  • CWizardStep::SetCancelCaption
  • CWizardStep::SetFinishCaption

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step1"); //ID шага

        $this->SetTitle("Первый шаг"); //Заголовок шага
        $this->SetSubTitle("Шаг приветствие"); //Подзаголовок шага

        $this->SetNextStep("step2"); //Кнопка Далее, ведущая на второй шаг
        $this->SetFinishStep("step4"); //Кнопка Готово, ведущая на 4ый шаг
        $this->SetCancelStep("cancel"); //Кнопк Отмена, ведущая на шаг Отмены
    }

    function ShowStep()
    {
        //Содержимое шага
        $this->content .= "Шаг 1";
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetSubTitle("Свои надписи к кнопкам");

        $this->SetStepID("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1"); //Кнопка Назад, ведущая на первый шаг
        $this->SetCancelStep("cancel");

        //Изменим надписи к кнопкам
        $this->SetPrevCaption("Назад к шагу 1");
        $this->SetNextCaption("Вперед");
        $this->SetFinishCaption("Финиш");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 2";
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetSubTitle("Автосабмит");

        //В системных шаблонах кнопка Далее нажмется автоматически
        $this->SetAutoSubmit();

        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step4");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 3";
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetSubTitle("Финиш");

        $this->SetStepID("step4");
        $this->SetPrevStep("step3");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 4";
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("cancel");

        //В системном шаблоне по уомлчанию
        //JS-обработчик закроет окно мастера,
        //т.к. кнопка отмена одна на странице шага
        $this->SetCancelStep("cancel");

        //Изменим надпись кнопке Отмена
        $this->SetCancelCaption("Закрыть");
    }

    function ShowStep()
    {
        $this->content .= "Отмена";
    }
}

?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("Step1", "Step2", "Step3", "Step4", "CancelStep"),
);
?>

Или динамическое определение шагов в файле wizard.php.

<?
//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3", "Step4", "CancelStep"));

//Выводим на экран
$wizard->Display();
?>


SetNextStep

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>SetNextStep (6.5.0)

CWizardStep::SetNextStep

Описание и параметры

void
SetNextStep(
 string stepID
);

Метод определяет кнопку Далее, ведущую на шаг stepID.

Параметры функции

Параметр | Описание
stepID | ID шага, на который ведет кнопка Далее.

Смотрите также

  • CWizardStep::SetStepID
  • CWizardStep::SetPrevStep
  • CWizardStep::SetFinishStep
  • CWizardStep::SetCancelStep

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step1"); //ID шага

        $this->SetTitle("Первый шаг"); //Заголовок шага
        $this->SetSubTitle("Шаг приветствие"); //Подзаголовок шага

        $this->SetNextStep("step2"); //Кнопка Далее, ведущая на второй шаг
        $this->SetFinishStep("step4"); //Кнопка Готово, ведущая на 4ый шаг
        $this->SetCancelStep("cancel"); //Кнопк Отмена, ведущая на шаг Отмены
    }

    function ShowStep()
    {
        //Содержимое шага
        $this->content .= "Шаг 1";
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetSubTitle("Свои надписи к кнопкам");

        $this->SetStepID("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1"); //Кнопка Назад, ведущая на первый шаг
        $this->SetCancelStep("cancel");

        //Изменим надписи к кнопкам
        $this->SetPrevCaption("Назад к шагу 1");
        $this->SetNextCaption("Вперед");
        $this->SetFinishCaption("Финиш");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 2";
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetSubTitle("Автосабмит");

        //В системных шаблонах кнопка Далее нажмется автоматически
        $this->SetAutoSubmit();

        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step4");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 3";
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetSubTitle("Финиш");

        $this->SetStepID("step4");
        $this->SetPrevStep("step3");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 4";
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("cancel");

        //В системном шаблоне по уомлчанию
        //JS-обработчик закроет окно мастера,
        //т.к. кнопка отмена одна на странице шага
        $this->SetCancelStep("cancel");

        //Изменим надпись кнопке Отмена
        $this->SetCancelCaption("Закрыть");
    }

    function ShowStep()
    {
        $this->content .= "Отмена";
    }
}

?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("Step1", "Step2", "Step3", "Step4", "CancelStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

<?
//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3", "Step4", "CancelStep"));

//Выводим на экран
$wizard->Display();
?>


SetPrevCaption

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>SetPrevCaption (6.5.0)

CWizardStep::SetPrevCaption

Описание и параметры

void
SetPrevCaption(
 string caption
);

Метод устанавливает текстовую надпись caption кнопке Назад.

Параметры функции

Параметр | Описание
caption | Надпись кнопки Назад.

Смотрите также

  • CWizardStep::SetNextCaption
  • CWizardStep::SetCancelCaption
  • CWizardStep::SetFinishCaption

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step1"); //ID шага

        $this->SetTitle("Первый шаг"); //Заголовок шага
        $this->SetSubTitle("Шаг приветствие"); //Подзаголовок шага

        $this->SetNextStep("step2"); //Кнопка Далее, ведущая на второй шаг
        $this->SetFinishStep("step4"); //Кнопка Готово, ведущая на 4ый шаг
        $this->SetCancelStep("cancel"); //Кнопк Отмена, ведущая на шаг Отмены
    }

    function ShowStep()
    {
        //Содержимое шага
        $this->content .= "Шаг 1";
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetSubTitle("Свои надписи к кнопкам");

        $this->SetStepID("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1"); //Кнопка Назад, ведущая на первый шаг
        $this->SetCancelStep("cancel");

        //Изменим надписи к кнопкам
        $this->SetPrevCaption("Назад к шагу 1");
        $this->SetNextCaption("Вперед");
        $this->SetFinishCaption("Финиш");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 2";
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetSubTitle("Автосабмит");

        //В системных шаблонах кнопка Далее нажмется автоматически
        $this->SetAutoSubmit();

        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step4");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 3";
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetSubTitle("Финиш");

        $this->SetStepID("step4");
        $this->SetPrevStep("step3");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 4";
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("cancel");

        //В системном шаблоне по уомлчанию
        //JS-обработчик закроет окно мастера,
        //т.к. кнопка отмена одна на странице шага
        $this->SetCancelStep("cancel");

        //Изменим надпись кнопке Отмена
        $this->SetCancelCaption("Закрыть");
    }

    function ShowStep()
    {
        $this->content .= "Отмена";
    }
}

?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("Step1", "Step2", "Step3", "Step4", "CancelStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

<?
//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3", "Step4", "CancelStep"));

//Выводим на экран
$wizard->Display();
?>


SetPrevStep

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>SetPrevStep (6.5.0)

CWizardStep::SetPrevStep

Описание и параметры

void
SetPrevStep(
 string stepID
);

Метод определяет кнопку Назад, ведущую на шаг stepID.

Параметры функции

Параметр | Описание
stepID | ID шага, на который ведет кнопка Назад.

Смотрите также

  • CWizardStep::SetStepID
  • CWizardStep::SetNextStep
  • CWizardStep::SetFinishStep
  • CWizardStep::SetCancelStep

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step1"); //ID шага

        $this->SetTitle("Первый шаг"); //Заголовок шага
        $this->SetSubTitle("Шаг приветствие"); //Подзаголовок шага

        $this->SetNextStep("step2"); //Кнопка Далее, ведущая на второй шаг
        $this->SetFinishStep("step4"); //Кнопка Готово, ведущая на 4ый шаг
        $this->SetCancelStep("cancel"); //Кнопк Отмена, ведущая на шаг Отмены
    }

    function ShowStep()
    {
        //Содержимое шага
        $this->content .= "Шаг 1";
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetSubTitle("Свои надписи к кнопкам");

        $this->SetStepID("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1"); //Кнопка Назад, ведущая на первый шаг
        $this->SetCancelStep("cancel");

        //Изменим надписи к кнопкам
        $this->SetPrevCaption("Назад к шагу 1");
        $this->SetNextCaption("Вперед");
        $this->SetFinishCaption("Финиш");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 2";
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetSubTitle("Автосабмит");

        //В системных шаблонах кнопка Далее нажмется автоматически
        $this->SetAutoSubmit();

        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step4");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 3";
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetSubTitle("Финиш");

        $this->SetStepID("step4");
        $this->SetPrevStep("step3");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 4";
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("cancel");

        //В системном шаблоне по уомлчанию
        //JS-обработчик закроет окно мастера,
        //т.к. кнопка отмена одна на странице шага
        $this->SetCancelStep("cancel");

        //Изменим надпись кнопке Отмена
        $this->SetCancelCaption("Закрыть");
    }

    function ShowStep()
    {
        $this->content .= "Отмена";
    }
}

?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("Step1", "Step2", "Step3", "Step4", "CancelStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

<?
//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3", "Step4", "CancelStep"));

//Выводим на экран
$wizard->Display();
?>


SetStepID

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>SetStepID (6.5.0)

CWizardStep::SetStepID

Описание и параметры

void
SetStepID(
 string stepID
);

Метод устанавливает идентификатор stepID текущему шагу.

Параметры функции

Параметр | Описание
stepID | ID шага.

Смотрите также

  • CWizardStep::GetStepID
  • CWizardStep::SetPrevStep
  • CWizardStep::SetNextStep
  • CWizardStep::SetFinishStep
  • CWizardStep::SetCancelStep

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step1"); //ID шага

        $this->SetTitle("Первый шаг"); //Заголовок шага
        $this->SetSubTitle("Шаг приветствие"); //Подзаголовок шага

        $this->SetNextStep("step2"); //Кнопка Далее, ведущая на второй шаг
        $this->SetFinishStep("step4"); //Кнопка Готово, ведущая на 4ый шаг
        $this->SetCancelStep("cancel"); //Кнопк Отмена, ведущая на шаг Отмены
    }

    function ShowStep()
    {
        //Содержимое шага
        $this->content .= "Шаг 1";
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetSubTitle("Свои надписи к кнопкам");

        $this->SetStepID("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1"); //Кнопка Назад, ведущая на первый шаг
        $this->SetCancelStep("cancel");

        //Изменим надписи к кнопкам
        $this->SetPrevCaption("Назад к шагу 1");
        $this->SetNextCaption("Вперед");
        $this->SetFinishCaption("Финиш");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 2";
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetSubTitle("Автосабмит");

        //В системных шаблонах кнопка Далее нажмется автоматически
        $this->SetAutoSubmit();

        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step4");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 3";
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetSubTitle("Финиш");

        $this->SetStepID("step4");
        $this->SetPrevStep("step3");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 4";
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("cancel");

        //В системном шаблоне по уомлчанию
        //JS-обработчик закроет окно мастера,
        //т.к. кнопка отмена одна на странице шага
        $this->SetCancelStep("cancel");

        //Изменим надпись кнопке Отмена
        $this->SetCancelCaption("Закрыть");
    }

    function ShowStep()
    {
        $this->content .= "Отмена";
    }
}

?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("Step1", "Step2", "Step3", "Step4", "CancelStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

<?
//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3", "Step4", "CancelStep"));

//Выводим на экран
$wizard->Display();
?>


SetSubTitle

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>SetSubTitle (6.5.0)

CWizardStep::SetSubTitle

Описание и параметры

void
SetSubTitle(
 string stepSubTitle
);

Метод устанавливает подзаголовок шага.

Параметры функции

Параметр | Описание
stepSubTitle | Подзаголовок шага.

Смотрите также

  • CWizardStep::GetSubTitle
  • CWizardStep::SetTitle
  • CWizardStep::GetTitle

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step1"); //ID шага

        $this->SetTitle("Первый шаг"); //Заголовок шага
        $this->SetSubTitle("Шаг приветствие"); //Подзаголовок шага

        $this->SetNextStep("step2"); //Кнопка Далее, ведущая на второй шаг
        $this->SetFinishStep("step4"); //Кнопка Готово, ведущая на 4ый шаг
        $this->SetCancelStep("cancel"); //Кнопк Отмена, ведущая на шаг Отмены
    }

    function ShowStep()
    {
        //Содержимое шага
        $this->content .= "Шаг 1";
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetSubTitle("Свои надписи к кнопкам");

        $this->SetStepID("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1"); //Кнопка Назад, ведущая на первый шаг
        $this->SetCancelStep("cancel");

        //Изменим надписи к кнопкам
        $this->SetPrevCaption("Назад к шагу 1");
        $this->SetNextCaption("Вперед");
        $this->SetFinishCaption("Финиш");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 2";
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetSubTitle("Автосабмит");

        //В системных шаблонах кнопка Далее нажмется автоматически
        $this->SetAutoSubmit();

        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step4");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 3";
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetSubTitle("Финиш");

        $this->SetStepID("step4");
        $this->SetPrevStep("step3");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 4";
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("cancel");

        //В системном шаблоне по уомлчанию
        //JS-обработчик закроет окно мастера,
        //т.к. кнопка отмена одна на странице шага
        $this->SetCancelStep("cancel");

        //Изменим надпись кнопке Отмена
        $this->SetCancelCaption("Закрыть");
    }

    function ShowStep()
    {
        $this->content .= "Отмена";
    }
}

?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("Step1", "Step2", "Step3", "Step4", "CancelStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

<?
//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3", "Step4", "CancelStep"));

//Выводим на экран
$wizard->Display();
?>


SetTitle

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>SetTitle (6.5.0)

CWizardStep::SetTitle

Описание и параметры

void
SetTitle(
 string title
);

Метод устанавливает заголовок шага.

Параметры функции

Параметр | Описание
title | Заголовок шага.

Смотрите также

  • CWizardStep::GetTitle
  • CWizardStep::SetSubTitle
  • CWizardStep::GetSubTitle

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step1 extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("step1"); //ID шага

        $this->SetTitle("Первый шаг"); //Заголовок шага
        $this->SetSubTitle("Шаг приветствие"); //Подзаголовок шага

        $this->SetNextStep("step2"); //Кнопка Далее, ведущая на второй шаг
        $this->SetFinishStep("step4"); //Кнопка Готово, ведущая на 4ый шаг
        $this->SetCancelStep("cancel"); //Кнопк Отмена, ведущая на шаг Отмены
    }

    function ShowStep()
    {
        //Содержимое шага
        $this->content .= "Шаг 1";
    }
}

class Step2 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Второй шаг");
        $this->SetSubTitle("Свои надписи к кнопкам");

        $this->SetStepID("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step3");
        $this->SetPrevStep("step1"); //Кнопка Назад, ведущая на первый шаг
        $this->SetCancelStep("cancel");

        //Изменим надписи к кнопкам
        $this->SetPrevCaption("Назад к шагу 1");
        $this->SetNextCaption("Вперед");
        $this->SetFinishCaption("Финиш");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 2";
    }
}

class Step3 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Третий шаг");
        $this->SetSubTitle("Автосабмит");

        //В системных шаблонах кнопка Далее нажмется автоматически
        $this->SetAutoSubmit();

        $this->SetStepID("step3");
        $this->SetPrevStep("step2");
        $this->SetFinishStep("step4");
        $this->SetNextStep("step4");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 3";
    }
}

class Step4 extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Четвертый шаг");
        $this->SetSubTitle("Финиш");

        $this->SetStepID("step4");
        $this->SetPrevStep("step3");
        $this->SetCancelStep("cancel");
    }

    function ShowStep()
    {
        $this->content .= "Шаг 4";
    }
}

class CancelStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetStepID("cancel");

        //В системном шаблоне по уомлчанию
        //JS-обработчик закроет окно мастера,
        //т.к. кнопка отмена одна на странице шага
        $this->SetCancelStep("cancel");

        //Изменим надпись кнопке Отмена
        $this->SetCancelCaption("Закрыть");
    }

    function ShowStep()
    {
        $this->content .= "Отмена";
    }
}

?>

Статическое определение шагов в файле .description.php

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

$arWizardDescription = Array(
    "NAME" => "Мой мастер",
    "STEPS" => Array("Step1", "Step2", "Step3", "Step4", "CancelStep"),
);
?>

Или динамическое определение шагов в файле wizard.php

<?
//Создаем мастер
$wizard = new CWizardBase("Мой мастер", $package);

//Добавляем шаги
$wizard->AddSteps(Array("Step1", "Step2", "Step3", "Step4", "CancelStep"));

//Выводим на экран
$wizard->Display();
?>


ShowCheckboxField

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>ShowCheckboxField (6.5.0)

CWizardStep::ShowCheckboxField

Описание и параметры

string
ShowCheckboxField(
 string name,
 string value,
 array arAttributes = Array()
);

Метод возвращает HTML-код переключателя с множественным вариантом выбора ответа (<input type="checkbox" />).

Параметры функции

Параметр | Описание
name | Имя поля переключателя (значение атрибута name тега input).
value | Значение поля переключателя (значение атрибута value тега input).
arAttributes | Массив дополнительных атрибутов переключателя вида Array("имя_атрибута" => "значение" [, ...]). Необязательный параметр, по умолчанию дополнительных атрибутов нет.

Смотрите также

  • CWizardStep::ShowFileField
  • CWizardStep::ShowHiddenField
  • CWizardStep::ShowInputField
  • CWizardStep::ShowRadioField
  • CWizardStep::ShowSelectField

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

Мастер создания нового пользователя

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Множественный checkbox c дефолтными значениями");
        $this->SetStepID("step");
        $wizard = &$this->GetWizard();
        $wizard->SetDefaultVars(
            Array(
                "subject" => Array("math", "programming"),
                "education" => "university",
            )
        );
    }

    function ShowStep()
    {
        $this->content = "Какие науки Вас интересуют?<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "math")." Математика<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "history")." История<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "programming")." Программирование<br />";
        $this->content .= $this->ShowCheckboxField("subject[]", "physics")." Физика<br />";

        $this->content .= "<br />Ваше образование?<br />";
        $this->content .= $this->ShowCheckboxField("education[]", "elementary")." Начальное<br />";
        $this->content .= $this->ShowCheckboxField("education[]", "highschool")." Среднее<br />";
        $this->content .= $this->ShowCheckboxField("education[]", "university")." Высшее<br />";
        $this->content .= $this->ShowCheckboxField("education[]", "college")." Среднее специальное<br />";
    }
}
?>


ShowFileField

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>ShowFileField (6.5.0)

CWizardStep::ShowFileField

Описание и параметры

string
ShowFileField(
 string name,
 array arAttributes = Array()
);

Метод возвращает HTML-код поля для загрузки файла на сервер (<input type="file" />).

Параметры функции

Параметр | Описание
name | Имя поля (значение атрибута name тега input).
arAttributes Массив дополнительных атрибутов вида Array("имя_атрибута" => "значение" [, ...]). Имя атрибута может принимать следующие значения:
  • max_file_size - максимальный размер загружаемого файла. Метод дополнительно вернет HTML-код скрытого поля MAX_FILE_SIZE [image];
  • show_file_info - показывать информацию о файле (размер, высота, ширина). По умолчанию параметр равен "Y" (показывать);
  • Любые другие HTML-атрибуты тега input.
Необязательный параметр, по умолчанию дополнительных атрибутов нет.

Смотрите также

  • CWizardStep::SaveFile
  • CWizardUtil::CopyFile
  • CWizardStep::ShowCheckboxField
  • CWizardStep::ShowdHiddenField
  • CWizardStep::ShowInputField
  • CWizardStep::ShowRadioField
  • CWizardStep::ShowSelectField

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

Мастер создания нового пользователя

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Загрузка файла");
        $this->SetNextStep("step");
        $this->SetStepID("step");
    }

    function OnPostForm()
    {
        $this->SaveFile("file", Array("max_file_size" => 20*1024, "extensions" => "gif,jpg,png"));
    }

    function ShowStep()
    {
        $this->content .= "Загрузить файл:".$this->ShowFileField("file", Array("max_file_size" => 20*1024, "size" => "25"));
    }

}
?>


ShowHiddenField

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>ShowHiddenField (6.5.0)

CWizardStep::ShowHiddenField

string
ShowHiddenField(
 string name,
 string value,
 array arAttributes = Array()
);

Метод возвращает HTML-код скрытого поля (<input type="hidden" />).

Параметры функции

Параметр | Описание
name | Имя скрытого поля (значение атрибута name тега input).
value | Значение скрытого поля (значение атрибута value тега input).
arAttributes | Массив дополнительных атрибутов вида Array("имя_атрибута" => "значение" [, ...]). Необязательный параметр, по умолчанию дополнительных атрибутов нет.

Смотрите также

  • CWizardStep::ShowCheckboxField
  • CWizardStep::ShowFileField
  • CWizardStep::ShowInputField
  • CWizardStep::ShowRadioField
  • CWizardStep::ShowSelectField


ShowInputField

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>ShowInputField (6.5.0)

CWizardStep::ShowInputField

Описание и параметры

string
ShowInputField(
 string type,
 string name,
 array arAttributes = Array()
);

Метод возвращает HTML-код текстового поля.

Параметры функции

Параметр | Описание
type Тип текстого поля. Может принимать следующие значения:
  • text - однострочное текстовое поле;
  • textarea - многострочное текстовое поле;
  • password - текстовое поле для ввода пароля.
name | Имя текстового поля.
arAttributes | Массив дополнительных атрибутов вида Array("имя_атрибута" => "значение" [, ...]). Необязательный параметр, по умолчанию дополнительных атрибутов нет.

Смотрите также

  • CWizardStep::ShowCheckboxField
  • CWizardStep::ShowFileField
  • CWizardStep::ShowHiddenField
  • CWizardStep::ShowRadioField
  • CWizardStep::ShowSelectField

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

Мастер создания нового пользователя

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("ShowInputField");
        $this->SetStepID("step");

        $wizard = &$this->GetWizard();
        $wizard->SetDefaultVar("your_name", "Default name");
    }

    function ShowStep()
    {
        $this->content .= "Имя: ".$this->ShowInputField("text", "your_name", Array("size" => "20"))."<br />";
        $this->content .= "Фамилия: ".$this->ShowInputField("text", "your_surname", Array("size" => "20"))."<br />";
        $this->content .= "О себе:<br />".$this->ShowInputField("textarea", "about", Array("rows" => "10", "cols" => "15"))."<br />";
    }
}
?>


ShowRadioField

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>ShowRadioField (6.5.0)

CWizardStep::ShowRadioField

Описание и параметры

string
ShowRadioField(
 string name,
 string value,
 array arAttributes = Array()
);

Метод возвращает HTML-код переключателя с единственным вариантом выбора ответа (<input type="radio" />).

Параметры функции

Параметр | Описание
name | Имя поля переключателя (значение атрибута name тега input).
value | Значение поля переключателя (значение атрибута value тега input).
arAttributes | Массив дополнительных атрибутов переключателя вида Array("имя_атрибута" => "значение" [, ...]). Необязательный параметр, по умолчанию дополнительных атрибутов нет.

Смотрите также

  • CWizardStep::ShowCheckboxField
  • CWizardStep::ShowFileField
  • CWizardStep::ShowHiddenField
  • CWizardStep::ShowInputField
  • CWizardStep::ShowSelectField

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

Мастер создания нового пользователя

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Выбор установки");
        $this->SetNextStep("step");
        $this->SetStepID("step");
    }

    function OnPostForm()
    {
        $wizard = &$this->GetWizard();
        $install_type = $wizard->GetVar("install_type");
        $wizard->SetVar("result", $install_type);
    }

    function ShowStep()
    {
        $this->content = "Выберите что-нибудь?<br />";
        $this->content .= $this->ShowRadioField("install_type", "create_user")." Регистрация пользователя<br />";
        $this->content .= $this->ShowRadioField("install_type", "create_iblock")." Создание инфоблока<br />";

        $wizard = &$this->GetWizard();
        $this->content .= "Вы выбрали: ".$wizard->GetVar("result");
    }
}
?>


ShowSelectField

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>ShowSelectField (6.5.0)

CWizardStep::ShowSelectField

Описание и параметры

string
ShowSelectField(
 string name,
 array arValues = Array(),
 array arAttributes = Array()
);

Метод выводит HTML-код выпадающего списка с одиночным выбором (<select></select>). Для выпадающего списка с множественным выбором необходимо в массиве arAttributes указать атрибут multiple (Array("multiple" => "multiple")).

Параметры функции

Параметр | Описание
name | Имя поля выпадающего списка (значение атрибута name тега select).
arValues | Массив элементов списка вида Array("значение_элемента" => "заголовок_элемента" [, ...]). Необязательный параметр.
arAttributes | Массив дополнительных атрибутов списка вида Array("имя_атрибута" => "значение" [, ...]). Необязательный параметр, по умолчанию дополнительных атрибутов нет.

Смотрите также

  • CWizardStep::ShowCheckboxField
  • CWizardStep::ShowFileField
  • CWizardStep::ShowHiddenField
  • CWizardStep::ShowInputField
  • CWizardStep::ShowRadioField

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

Мастер создания нового пользователя

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Множественный select");
        $this->SetStepID("step");

        $wizard = &$this->GetWizard();
        $wizard->SetDefaultVars(
            Array(
                "server[soft]" => Array("php", "js"),
            )
        );
    }

    function ShowStep()
    {

        $this->content = "Какие технологии используются в вашей компании?<br />";
        $this->content .= $this->ShowSelectField(
            "server[soft][]",
            Array(
                "php" => "PHP",
                "mysql" => "MySQL",
                "apache" => "Apache",
                "js" => "Javascript",
                "html" => "Html",
            ),
            Array("multiple" => "multiple")
        );

        $this->content .= "<br /><br />Сколько будет 1+1?<br />";

        $this->content .= $this->ShowSelectField(
            "math[oneandone][]",
            Array(
                "2" => "2",
                "11" => "11",
                "10" => "10",
                "16" => "16",
            ),
            Array("multiple" => "multiple", "size" => "3")
        );

    }

}

?>


ShowStep

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardStep>ShowStep (6.5.0)

CWizardStep::ShowStep

void
ShowStep();

Переопределяемый метод шага. Метод вызывается в момент показа шага пользователю. Метод предназначен для определения содержимого шага: в переменную $this->content необходимо записать весь вывод шага.

Смотрите также

  • Определение шагов мастера
  • CWizardStep::InitStep
  • CWizardStep::OnPostForm

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

<?
class FirstStep extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Первый шаг");
        $this->SetStepID("first");
        $this->SetNextStep("second");
        $this->SetCancelStep("fourth");
    }

    function ShowStep()
    {
        $this->content .= "Введите код: ".$this->ShowInputField("text", "code", Array("size" => "15"));
    }
}
?>


Класс CWizardTemplate

Описание

Класс CWizardTemplate является оболочкой для шаблона мастера. Для каждого шаблона создаётся экземпляр класса CWizardTemplate. Чтобы воспользоваться методами класса CWizardBase в теле переопределяемой функции GetLayout, необходимо получить ссылку на экземпляр мастера:

<?
class MyTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard(); //Получаем ссылку на объект мастера
        /*
            Определение шаблона
            ...
        */
    }
}

?>

Список методов

Метод | Описание | С версии
GetLayout | Возвращает HTML-вывод шаблона мастера. |
GetWizard | Метод возвращает ссылку на объект мастера. | 6.5.3


GetLayout

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardTemplate>GetLayout (6.5.0)

CWizardTemplate::GetLayout

Описание

string
GetLayout();

Переопределяемый метод. Метод должен вернуть HTML-вывод шаблона мастера. Внутри шаблона мастера обязательно должны быть определены следующие макросы:

  • {#FORM_START#} – начало формы, макрос будет заменен тегом <form>;
  • {#FORM_END#} – конец формы, макрос будет заменен тегом </form>;
  • {#CONTENT#} – область содержимого шага, макрос будет заменен содержимым текущего шага;
  • {#BUTTONS#} – область кнопок навигации, макрос будет заменен кнопками навигации.

Если необходимо разделить область навигации на отдельные кнопки, то для этого можно использовать следующие макросы:

  • {#BUTTON_PREVIOUS#} - кнопка Назад;
  • {#BUTTON_NEXT#} - кнопка Далее;
  • {#BUTTON_CANCEL#} - кнопка Отмена;
  • {#BUTTON_FINISH#} - кнопка Готово.

Смотрите также

  • Шаблон мастера

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

<?
class MyPinkTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard();
        $obStep =& $wizard->GetCurrentStep();

        $wizardName = htmlspecialcharsEx($wizard->GetWizardName());

        //Получаем ошибки
        $arErrors = $obStep->GetErrors();
        $strError = "";
        if (count($arErrors) > 0)
        {
            foreach ($arErrors as $arError)
                $strError .= $arError[0]."<br />";

            $strError = '<tr><td style="padding-top: 10px; padding-left: 20px; color:red;">'.$strError.'</td></tr>';
        }

        //Заголовок и подзаголовок
        $stepTitle = $obStep->GetTitle();
        $stepSubTitle = $obStep->GetSubTitle();

        return <<<HTML

            {#FORM_START#}
            <table style="border:2px outset #D4D0C8; background-color: #FFDEDE;" border="0" cellpadding="0" cellspacing="0" height="370" width="100%">
                <tr>
                    <td style="background-color: #142F73" height="1"><span style="color:white; font-weight:bold; text-align:left; padding-left: 2px;">{$wizardName}</span></td>
                </tr>

                <tr>
                    <td style="height: 60px; border-bottom:2px groove  #aca899; background-color: #FFC4C4; padding: 8px;" valign="top">
                        <div style="padding-top: 5px; padding-left: 20px;"><b>{$stepTitle}</b></div>
                        <div style="padding-left: 40px;">{$stepSubTitle}</div>
                    </td>
                </tr>

                {$strError}

                <tr>
                    <td style="padding: 20px; padding-left: 28px;padding-right: 28px;" valign="top" id="wizard-content-area">{#CONTENT#}</td>
                </tr>

                <tr>
                    <td style="background-color: #FFC4C4; height: 40px; border-top:2px groove #ffffff; padding-right: 15px;" align="right">{#BUTTONS#}</td>
                </tr>
            </table>
            {#FORM_END#}

HTML;
    }
}
?>


GetWizard

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardTemplate>GetWizard (6.5.3)

CWizardTemplate::GetWizard

object &
GetWizard();

Метод возвращает ссылку на объект мастера.

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

<?
class MyTemplate extends CWizardTemplate
{
    function GetLayout()
    {
        $wizard =& $this->GetWizard(); //Получаем ссылку на объект мастера
        /*
            Определение шаблона
            ...
        */
    }
}
?>


Класс CWizardUtil

Класс CWizardUtil инкапсулирует вспомогательные методы, полезные при разработке мастеров.

Метод | Описание | С версии
CopyFile | Создает копию зарегистрированного файла. |
CopyWizard | Создает копию мастера wizardName с новым именем newName. |
CreateThumbnail | Метод создает уменьшенную копию изображения sourcePath. | 6.5.5
DeleteWizard | Метод удаляет мастер с именем wizardName. |
GetRepositoryPath | Возвращает путь к папке (репозитарию) мастеров относительно корня сайта. |
ReplaceMacros | Заменяет в файле filePath макросы на заданные в arReplace значения. |


CopyFile

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardUtil>CopyFile (6.5.0)

CWizardUtil::CopyFile

Описание и параметры

bool
CopyFile(
 string fileID,
 string destPath,
 bool deleteAfterCopy = true
);

Метод создает копию зарегистрированного файла, указанного в параметре fileID, в файле с именем destPath. Метод возвращает true при успешном копировании, иначе false.

Параметры функции

Параметр | Описание
fileID | ID файла, предназначенного для копирования.
destPath | Путь к файлу, относительно корня сайта, в который нужно скопировать.
deleteAfterCopy | Удалить ли файл из системы после того, как копирования будет завершено. Необязательный параметр, по умолчанию равен true (удалять).

Смотрите также

  • CWizardStep::SaveFile
  • CWizardStep::ShowFileField

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

<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class Step extends CWizardStep
{
    function InitStep()
    {
        $this->SetTitle("Загрузка файла");
        $this->SetStepID("step");

        $this->SetNextStep("step");
        $this->SetFinishStep("step");

        $this->SetNextCaption("Загрузить");
        $this->SetFinishCaption("Скопировать");
    }

    function OnPostForm()
    {
        $wizard =& $this->GetWizard();

        if ($wizard->IsNextButtonClick())
            $this->SaveFile("file", Array("max_file_size" => 20*1024, "extensions" => "gif,jpg,png"));
        elseif($wizard->IsFinishButtonClick())
        {
            $fileID = $wizard->GetVar("file");
            if (intval($fileID) > 0)
                CWizardUtil::CopyFile($fileID, "/upload_picture.gif");
        }
    }

    function ShowStep()
    {
        $this->content .= "Загрузить файл:".$this->ShowFileField("file", Array("max_file_size" => 20*1024, "size" => "25"));
    }

}
?>


CopyWizard

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardUtil>CopyWizard (6.5.0)

CWizardUtil::CopyWizard

Описание и параметры

bool
CopyWizard(
 string wizardName,
 string newName
);

Метод создает копию мастера wizardName с новым именем newName. Метод возвращает true при успешном копировании, иначе false.

Параметры функции

Параметр | Описание
wizardName | Имя мастера, который необходимо скопировать.
newName | Новое имя мастера.

Смотрите также

  • CWizardUtil::DeleteWizard

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

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/wizard.php");

$success = CWizardUtil::CopyWizard("help:new_user", "nm:sd2");
if ($success)
    echo "Мастер успешно скопирован";
else
    echo "Произошла ошибка копирования мастера";

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>


CreateThumbnail

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardUtil>CreateThumbnail (6.5.5)

CWizardUtil::CreateThumbnail

Описание и параметры

bool
CreateThumbnail(
 string sourcePath,
 string previewPath,
 int maxWidth,
 int maxHeight
);

Метод создает уменьшенную копию изображения sourcePath.

Параметры функции

Параметр | Описание
sourcePath | Абсолютный путь к исходному изображению, для которого необходимо сделать уменьшенную копию.
previewPath | Абсолютный путь к файлу, в который будет сохранена уменьшенная копия изображения.
maxWidth | Максимальная ширина уменьшенного изображения.
maxHeight | Максимальная высота уменьшенного изображения.

Смотрите также

  • CWizardStep::SaveFile

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

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/wizard.php");

$success = CWizardUtil::CreateThumbnail($_SERVER["DOCUMENT_ROOT"]."/big.gif",$_SERVER["DOCUMENT_ROOT"]."/small.gif", 100, 100);

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>


DeleteWizard

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardUtil>DeleteWizard (6.5.0)

CWizardUtil::DeleteWizard

Описание и параметры

bool
DeleteWizard(
 string wizardName
);

Метод удаляет мастер с именем wizardName. Метод возвращает true при успешном удалении, иначе false.

Параметры функции

Параметр | Описание
wizardName | Имя мастера, который необходимо удалить.

Смотрите также

  • CWizardUtil::CopyWizard

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

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/wizard.php");

<?
$success = CWizardUtil::DeleteWizard("nm:sd2");
if ($success)
    echo "Мастер успешно удален";
else
    echo "Произошла ошибка удаления мастера";

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>


GetRepositoryPath

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardUtil>GetRepositoryPath (6.5.0)

CWizardUtil::GetRepositoryPath

string
GetRepositoryPath();

Метод возвращает путь к папке (репозитарию) мастеров относительно корня сайта.


ReplaceMacros

...->Главный модуль>Основные сведения>Мастера>Классы>CWizardUtil>ReplaceMacros (6.5.0)

CWizardUtil::ReplaceMacros

Описание и параметры

void
ReplaceMacros(
 string filePath,
 array arReplace,
 bool skipSharp = false
);

Метод заменяет в файле filePath макросы на заданные в arReplace значения.

Параметры функции

Параметр | Описание
filePath | Абсолютный путь к файлу, в котором нужно заменить макросы. Имя макроса в файле filePath должно быть обрамлено символом #.
arReplace | Массив замен вида Array("имя_макроса" => "замена" [, ...]).
skipSharp | Игнорировать в имени макроса символ #. По умолчанию равен false - не игнорировать.

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

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/wizard.php");

/*
Файл /test_replace.txt:

Ваше имя:#NAME#
Название компании:#COMPANY#
*/

CWizardUtil::ReplaceMacros(
 $_SERVER["DOCUMENT_ROOT"]."/test_replace.txt",
 Array(
    "NAME" => "Леопольд",
    "COMPANY" => "1C-Bitrix",
 )
);

/*
Файл /test_replace.txt после выполнения CWizardUtil::ReplaceMacros:

Ваше имя:Леопольд
Название компании:1C-Bitrix
*/

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>


Введение

Введение

Язык - это учетная запись в базе данных доступная для редактирования в административном меню "Языки" со следующими полями:

  • Идентификатор и кодировка
  • Название
  • Формат даты и времени

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

В административной части язык определяет формат времени, даты, кодировку страниц. В публичной части - данные параметры определяются настройками сайта.

Оглавление раздела

  • Кодировки - таблица кодировок и идентификаторов языков
  • Формат даты и времени - таблица форматов даты и времени, общеупотребительных в различных странах


Кодировки

При задании кодировки языка и выбора его идентификатора используются следующие аббревиатуры и константы.

Язык | Идентификатор | Кодировка
Russian | ru | iso-8859-5, windows-1251, koi8-r
English | en | iso-8859-1, windows-1252
Afrikaans | af | iso-8859-1, windows-1252
Albanian | sq | iso-8859-1, windows-1250
Arabic | ar | iso-8859-6, windows-1256
Basque | eu | iso-8859-1, windows-1252
Bulgarian | bg | iso-8859-5, windows-1251
Belorussian | be | iso-8859-5, windows-1251
Catalan | ca | iso-8859-15, windows-1252
Croatian | hr | iso-8859-2, windows-1250
Czech | cs | iso-8859-2, windows-1250
Danish | da | iso-8859-1, windows-1252
Dutch | nl | iso-8859-1, windows-1252
Esperanto | eo | iso-8859-3
Estonian | et | iso-8859-15, windows-1257
Faroese | fo | iso-8859-1, windows-1252
Finnish | fi | iso-8859-1, windows-1252
French | fr | iso-8859-1, windows-1252
Galician | gl | iso-8859-1, windows-1252
German | de | iso-8859-1, windows-1252
Greek | el | iso-8859-7
Hebrew | iw | iso-8859-8
Hungarian | hu | iso-8859-2, windows-1250
Icelandic | is | iso-8859-1, windows-1252
Irish | ga | iso-8859-1, windows-1252
Italian | it | iso-8859-1, windows-1252
Japanese | ja | shift_jis, iso-2022-jp, euc-jp
Korean | ko | euc-kr
Latvian | lv | iso-8859-13, windows-1257
Lithuanian | lt | iso-8859-13, windows-1257
Macedonian | mk | iso-8859-5, windows-1251
Maltese | mt | iso-8859-3
Norwegian | no | iso-8859-1, windows-1252
Polish | pl | iso-8859-2, windows-1250
Portuguese | pt | iso-8859-1, windows-1252
Portuguese (бразильский) | br | iso-8859-1, windows-1252
Romanian | ro | iso-8859-2, windows-1250
Scottish | gd | iso-8859-1, windows-1252
Serbian cyrillic | sr | iso-8859-5, windows-1251
Serbian latin | sr | iso-8859-2, windows-1250
Slovak | sk | iso-8859-2, windows-1250
Slovenian | sl | iso-8859-2, windows-1250
Spanish | la | iso-8859-1, windows-1252
Swedish | sv | iso-8859-1, windows-1252
Turkish | tr | iso-8859-9, windows-1254
Ukrainian | ua | windows-1251, koi8-u


Формат даты и времени

В таблице сведены основные форматы даты и времени, используемые в разных странах.

Страна/язык | Формат даты | Формат времени | Пример даты | Пример времени
Россия | DD.MM.YYYY | HH:MI:SS | 26.01.1993 | 18:24:00
США | MM-DD-YYYY | HH:MI:SS | 01-26-1993 | 18:24:00
Международный английский | DD-MM-YYYY | HH:MI:SS | 26-01-1993 | 18:24:00
Великобритания | DD/MM/YYYY | HH:MI:SS | 26/01/1993 | 18:24:00
Германия | DD.MM.YYYY | HH:MI:SS | 26.01.1993 | 18:24:00
Бельгия | DD/MM/YYYY | HH:MI:SS | 26/01/1993 | 18:24:00
Бразилия | DD/MM/YYYY | HH:MI:SS | 26/01/1993 | 18:24:00
Венгрия | YYYY-MM-DD | HH:MI:SS | 1993-01-26 | 18:24:00
Дания | DD-MM-YYYY | HH.MI.SS | 26-01-1993 | 18.24.00
Италия | DD/MM/YYYY | HH.MI.SS | 26/01/1993 | 18.24.00
Испания | DD/MM/YYYY | HH:MI:SS | 26/01/1993 | 18:24:00
Канада (франц.) | YYYY-MM-DD | HH:MI:SS | 1993-01-26 | 18:24:00
Латинская Америка | DD/MM/YYYY | HH:MI:SS | 26/01/1993 | 18:24:00
Нидерланды | DD-MM-YYYY | HH:MI:SS | 26-01-1993 | 18:24:00
Норвегия | DD.MM.YYYY | HH:MI:SS | 26.01.1993 | 18:24:00
Польша | YYYY-MM-DD | HH:MI:SS | 1993-01-26 | 18:24:00
Португалия | DD-MM-YYYY | HH:MI:SS | 26-01-1993 | 18:24:00
Сербия/Югославия | DD.MM.YYYY | HH.MI.SS | 26.01.1993 | 18.24.00
Словакия | YYYY-MM-DD | HH:MI:SS | 1993-01-26 | 18:24:00
Словения | YYYY-MM-DD | HH:MI:SS | 1993-01-26 | 18:24:00
Финляндия | YYYY-MM-DD | HH.MI.SS | 1993-01-26 | 18.24.00
Франция | DD.MM.YYYY | HH:MI:SS | 26.01.1993 | 18:24:00
Чехия | YYYY-MM-DD | HH:MI:SS | 1993-01-26 | 18:24:00
Швейцария | DD.MM.YYYY | HH,MI,SS | 26.01.1993 | 18,24,00
Швеция | YYYY-MM-DD | HH.MI.SS | 1993-01-26 | 18.24.00


Создание раздела панели управления

В данном разделе мы разберем создание раздела панели управления на примере раздела "Подписка".

  • Создание списка элементов - описание процесса создания административной страницы со списком элементов
  • Создание формы редактирования - описание процесса создания административной страницы, содержащей форму редактирования/добавления элементов

Также дополнительно рассмотрим создание собственных обработчиков закладок в форму добавления/редактирования элементов, а также конфигурацию административного меню модуля.


Конфигурация административного меню модуля

Описание

В данном разделе описывается управление главным административным меню.

Основная структура

Для каждого модуля параметры меню задаются файлом /bitrix/modules/каталог_модуля/admin/menu.php. Результатом работы этого файла должен стать описательный массив меню модуля. Возможности API позволяют создать древовидное меню с любым уровнем вложенности, а также, с динамической подгрузкой отдельных ветвей.

Файл menu.php должен вернуть ассоциативный массив следующей структуры:

Ключ | Описание
parent_menu Идентификатор раздела меню. Имеет смысл только для элемента верхнего уровня дерева меню модуля. Может принимать одно из следующих значений:
  • global_menu_content - раздел "Контент"
  • global_menu_marketing - раздел "Маркетинг"
  • global_menu_store - раздел "Магазин"
  • global_menu_services - раздел "Сервисы"
  • global_menu_statistics - раздел "Аналитика"
  • global_menu_marketplace - раздел "Marketplace"
  • global_menu_settings - раздел "Настройки"
sort | Относительный "вес" пункта меню для сортировки.
url | Ссылка пункта меню. При переходе пользователем на страницу с таким URL данный пункт меню будет подсвечен.
more_url | Список дополнительных URL, по которым данный пункт меню должен быть подсвечен.
text | Текст ссылки пункта меню.
title | Текст всплывающей подсказки пункта меню.
icon | CSS-класс иконки пункта меню.
page_icon | CSS-класс иконки пункта меню для вывода на странице индекса (класс увеличенной иконки).
module_id | Идентификатор модуля, к которому относится меню.
dynamic | Флаг, показывающий, должна ли ветвь, начинающаяся с текущего пункта, подгружаться динамически.
items_id | Идентификатор ветви меню. Используется для динамического обновления ветви.
items | Список дочерних пунктов меню. Представляет собой массив, каждый элемент которого является ассоциативным массивом аналогичной структуры.

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

Листинг файла menu.php модуля Веб-форм (простое меню без динамической подгрузки).

<?
IncludeModuleLangFile(__FILE__); // в menu.php точно так же можно использовать языковые файлы

if($APPLICATION->GetGroupRight("form")>"D") // проверка уровня доступа к модулю веб-форм
{
  // сформируем верхний пункт меню
  $aMenu = array(
    "parent_menu" => "global_menu_services", // поместим в раздел "Сервис"
    "sort"        => 100,                    // вес пункта меню
    "url"         => "form_list.php?lang=".LANGUAGE_ID,  // ссылка на пункте меню
    "text"        => GetMessage("FORM_MENU_MAIN"),       // текст пункта меню
    "title"       => GetMessage("FORM_MENU_MAIN_TITLE"), // текст всплывающей подсказки
    "icon"        => "form_menu_icon", // малая иконка
    "page_icon"   => "form_page_icon", // большая иконка
    "items_id"    => "menu_webforms",  // идентификатор ветви
    "items"       => array(),          // остальные уровни меню сформируем ниже.
  );

  // далее выберем список веб-форм и добавим для каждой соответствующий пункт меню
  require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/form/include.php");
  $z = CForm::GetMenuList(array("LID"=>LANGUAGE_ID));
  while ($zr=$z->GetNext())
  {
    if (strlen($zr["MENU"]) > 0)
    {
      // массив каждого пункта формируется аналогично
      $aMenu["items"][] =  array(
        "text" => $zr["MENU"],
        "url"  => "form_result_list.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=".$zr["ID"],
        "icon" => "form_menu_icon",
        "page_icon" => "form_page_icon",
        "more_url"  => array(
            "form_view.php?WEB_FORM_ID=".$zr["ID"],
            "form_result_list.php?WEB_FORM_ID=".$zr["ID"],
            "form_result_edit.php?WEB_FORM_ID=".$zr["ID"],
            "form_result_print.php?WEB_FORM_ID=".$zr["ID"],
            "form_result_view.php?WEB_FORM_ID=".$zr["ID"]
            ),
        "title" => GetMessage("FORM_RESULTS_ALT")
       );
    }
  }

  // если нам нужно добавить ещё пункты - точно так же добавляем элементы в массив $aMenu["items"]
  // ............

  // вернем полученный список
  return $aMenu;
}
// если нет доступа, вернем false
return false;
?>

Динамическая подгрузка ветвей меню.

Как уже было сказано выше, возможно реализовать меню с динамической подгрузкой ветвей. Для этого нужно сделать следующие шаги:

  1. установить у пункта меню, начинающего динамическую ветвь параметр "dynamic"=>true;
  2. установить у пункта меню, начинающего динамическую ветвь значение параметра "items_id" и идентификатор модуля;
  3. добавить проверку флага "группа элементов открыта" при создании элементов ветви, предполагающие динамическую подгрузку.

Последний пункт представляет собой проверку метода CAdminMenu::IsSectionActive(). Поскольку скрипт, формирующий меню, выполняется в контексте экземпляра класса CAdminMenu, то достаточно осуществить проверку $this->IsSectionActive(), в качестве параметра указав значение параметра "items_id" требуемой ветви.

Приведем в качестве примера то же самое меню модуля Веб-форм, но уже с динамической подгрузкой списка форм:

<?
IncludeModuleLangFile(__FILE__); // в menu.php точно так же можно использовать языковые файлы

if($APPLICATION->GetGroupRight("form")>"D") // проверка уровня доступа к модулю веб-форм
{
  // верхний пункт меню оставим без изменений
  $aMenu = array(
    "parent_menu" => "global_menu_services", // поместим в раздел "Сервис"
    "sort"        => 100,                    // вес пункта меню
    "url"         => "form_list.php?lang=".LANGUAGE_ID,  // ссылка на пункте меню
    "text"        => GetMessage("FORM_MENU_MAIN"),       // текст пункта меню
    "title"       => GetMessage("FORM_MENU_MAIN_TITLE"), // текст всплывающей подсказки
    "icon"        => "form_menu_icon", // малая иконка
    "page_icon"   => "form_page_icon", // большая иконка
    "items_id"    => "menu_webforms",  // идентификатор ветви
    "items"       => array(),          // остальные уровни меню сформируем ниже.
  );

  // сформируем пункты меню, которые будут подгружаться динамически
  $arFormsList = array();
  if (
    method_exists($this, "IsSectionActive") // для поверки совместимости
    &&
    $this->IsSectionActive("menu_webforms_list") // если активна секция меню с идентфикатором "menu_webforms_list"
    ||
    // можно также добавить любые свои условия. например, показывать эту ветвь на всех страницах,
    // где определена константа FORM_MENU_OPEN со значением 1
    defined('FORM_MENU_OPEN') && FORM_MENU_OPEN == 1)
  {

    // далее выполним ту же самую выборку, что и в простом варианте, но элементы будем сохранять в отдельный массив.
    require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/form/include.php");
    $z = CForm::GetMenuList(array("LID"=>LANGUAGE_ID));
    while ($zr=$z->GetNext())
    {
      if (strlen($zr["MENU"]) > 0)
      {
        // массив каждого пункта формируется аналогично
        $arFormsList[] =  array(
          "text" => $zr["MENU"],
          "url"  => "form_result_list.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=".$zr["ID"],
          "icon" => "form_menu_icon",
          "page_icon" => "form_page_icon",
          "more_url"  => array(
              "form_view.php?WEB_FORM_ID=".$zr["ID"],
              "form_result_list.php?WEB_FORM_ID=".$zr["ID"],
              "form_result_edit.php?WEB_FORM_ID=".$zr["ID"],
              "form_result_print.php?WEB_FORM_ID=".$zr["ID"],
              "form_result_view.php?WEB_FORM_ID=".$zr["ID"]
              ),
          "title" => GetMessage("FORM_RESULTS_ALT")
         );
      }
    }
  }

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

  $aMenu["items"][] = array(
    "text" => GetMessage("FORM_RESULTS_ALL"),
    "url" => "form_result_list.php?lang=".LANGUAGE_ID,
    "title" => GetMessage("FORM_RESULTS_ALL_ALT"),

    "dynamic" => true,                  // !!!!!!!!!!!!!!!!!!!!!!!!!
    "module_id" => "form",              // !!!!!!!!!!!!!!!!!!!!!!!!!
    "items_id" => "menu_webforms_list", // !!!!!!!!!!!!!!!!!!!!!!!!!
    "items" => $arFormsList,            // !!!!!!!!!!!!!!!!!!!!!!!!!

  );

  // если нам нужно добавить ещё пункты - точно так же добавляем элементы в массив $aMenu["items"]
  // ............

  // вернем полученный список
  return $aMenu;
}
// если нет доступа, вернем false
return false;
?>


Создание списка элементов

Собранный полный пример административной страницы со списком можно увидеть здесь.

Принципы работы

Можно выделить следующий функционал, как правило, требуемый от административной страницы со списком элементов:

  • защита страницы от несанкционированногоо доступа
  • получение требуемого списка элементов, разбитого на страницы
  • возможность сортировки списка по любому из столбцов
  • возможность совершения групповых и одиночных действий над элементами списка
  • обработка действий над элементами списка

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

Разберем создание административной страницы, содержащей список элементов. В качестве примера будем использовать административную страницу модуля "Подписка, рассылки".

Начало

Прежде чем приступить к разбору функционала страницы, проведем "предварительную подготовку". Для начала создадим файл /bitrix/modules/subscribe/rubric_admin.php следующей структуры:

<?
// подключим все необходимые файлы:
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); // первый общий пролог

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/subscribe/include.php"); // инициализация модуля
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/subscribe/prolog.php"); // пролог модуля

// подключим языковой файл
IncludeModuleLangFile(__FILE__);

// получим права доступа текущего пользователя на модуль
$POST_RIGHT = $APPLICATION->GetGroupRight("subscribe");
// если нет прав - отправим к форме авторизации с сообщением об ошибке
if ($POST_RIGHT == "D")
    $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
?>
<?
// здесь будет вся серверная обработка и подготовка данных
?>
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); // второй общий пролог
?>
<?
// здесь будет вывод страницы
?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");?>

Это и есть "костяк страницы", обозначенный на схеме.

Далее, создадим языковой файл, например, /bitrix/modules/subscribe/lang/ru/rubric_admin.php для русского языка. В файле будем определять все языковые сообщения в виде элементов массива: $MESS['идентификатор_сообщения'] = "текст_сообщения";

Затем, поскольку с изначальными параметрами установки БУС каталог /bitrix/modules/ недоступен посредством HTTP-протокола, создадим файл /bitrix/admin/rubric_admin.php:

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/subscribe/admin/rubric_admin.php");
?>

Теперь наш файл доступен по ссылке http://mysite.ru/bitrix/admin/rubric_admin.php.

Функционал страницы

Как видно из схемы, весь функционал страницы условно можно разделить на несколько составных частей:

  • Обработка и подготовка данных
    • Создание экземпляров необходимых для работы классов
    • Обработка действий над элементами списка
    • Конфигурация и обработка фильтра списка элементов
    • Выборка из БД (если требуется) и подготовка к выводу элементов списка
    • Задание параметров таблицы элементов (в т.ч., сортировка)
  • Вывод данных
    • Конфигурация и вывод административного меню
    • Вывод фильтра
    • Вывод списка

В процессе работы нам потребуются экземпляры следующих классов:

Класс | Описание
CAdminList | Основной класс для работы со списками элементов в административной панели.
CAdminResult | Расширение класса CDBResult, предназначенное для работы со списками элементов в скриптах административных страниц.
CAdminSorting | Работа с сортировками списка.
CAdminFilter | Работа с фильтром списка.

Обработка и подготовка данных

Для начала, создадим экземпляры классов CAdminList и CAdminSorting:

$sTableID = "tbl_rubric"; // ID таблицы
$oSort = new CAdminSorting($sTableID, "ID", "desc"); // объект сортировки
$lAdmin = new CAdminList($sTableID, $oSort); // основной объект списка

Фильтр результатов

В нашем примере фильтр результатов будет состоять из следующих параметров:

  • Поиск по идентификатору рассылки
  • Выборка по активности рассылки
  • Выборка по публикации рассылки
  • Выборка активности рассылки

Предварительная работа с фильтром осуществляется следующим образом:

// проверку значений фильтра для удобства вынесем в отдельную функцию
function CheckFilter()
{
    global $FilterArr, $lAdmin;
    foreach ($FilterArr as $f) global $$f;

    /*
       здесь проверяем значения переменных $find_имя и, в случае возникновения ошибки,
       вызываем $lAdmin->AddFilterError("текст_ошибки").
    */

    return count($lAdmin->arFilterErrors) == 0; // если ошибки есть, вернем false;
}

// опишем элементы фильтра
$FilterArr = Array(
    "find_id",
    "find_lid",
    "find_active",
    "find_visible",
    "find_auto",
    );

// инициализируем фильтр
$lAdmin->InitFilter($FilterArr);

// если все значения фильтра корректны, обработаем его
if (CheckFilter())
{
    // создадим массив фильтрации для выборки CRubric::GetList() на основе значений фильтра
    $arFilter = Array(
        "ID"		=> $find_id,
        "LID"		=> $find_lid,
        "ACTIVE"	=> $find_active,
        "VISIBLE"	=> $find_visible,
        "AUTO"		=> $find_auto,
    );
}

Обработка действий над элементами

Над элементами списка можно совершать два типа действий:

  • Редактирование элементов непосредственно на странице списка
  • Групповые и одиночные действия на элементами

Определить, что произведены действия над элементами списка можно проверив значения CAdminList::EditAction() и CAdminList::GroupAction(). Не забудьте добавить проверку прав в обоих вариантах (в данном случае - проверка наличия прав на запись для модуля подписки - $POST_RIGHT=="W").

Пример:

// сохранение отредактированных элементов
if($lAdmin->EditAction() && $POST_RIGHT=="W")
{
    // пройдем по списку переданных элементов
    foreach($FIELDS as $ID=>$arFields)
    {
        if(!$lAdmin->IsUpdated($ID))
            continue;

        // сохраним изменения каждого элемента
        $DB->StartTransaction();
        $ID = IntVal($ID);
        $cData = new CRubric;
        if(($rsData = $cData->GetByID($ID)) && ($arData = $rsData->Fetch()))
        {
            foreach($arFields as $key=>$value)
                $arData[$key]=$value;
            if(!$cData->Update($ID, $arData))
            {
                $lAdmin->AddGroupError(GetMessage("rub_save_error")." ".$cData->LAST_ERROR, $ID);
                $DB->Rollback();
            }
        }
        else
        {
            $lAdmin->AddGroupError(GetMessage("rub_save_error")." ".GetMessage("rub_no_rubric"), $ID);
            $DB->Rollback();
        }
        $DB->Commit();
    }
}

// обработка одиночных и групповых действий
if(($arID = $lAdmin->GroupAction()) && $POST_RIGHT=="W")
{
    // если выбрано "Для всех элементов"
    if($_REQUEST['action_target']=='selected')
    {
        $cData = new CRubric;
        $rsData = $cData->GetList(array($by=>$order), $arFilter);
        while($arRes = $rsData->Fetch())
            $arID[] = $arRes['ID'];
    }

    // пройдем по списку элементов
    foreach($arID as $ID)
    {
        if(strlen($ID)<=0)
            continue;
           $ID = IntVal($ID);

        // для каждого элемента совершим требуемое действие
        switch($_REQUEST['action'])
        {
        // удаление
        case "delete":
            @set_time_limit(0);
            $DB->StartTransaction();
            if(!CRubric::Delete($ID))
            {
                $DB->Rollback();
                $lAdmin->AddGroupError(GetMessage("rub_del_err"), $ID);
            }
            $DB->Commit();
            break;

        // активация/деактивация
        case "activate":
        case "deactivate":
            $cData = new CRubric;
            if(($rsData = $cData->GetByID($ID)) && ($arFields = $rsData->Fetch()))
            {
                $arFields["ACTIVE"]=($_REQUEST['action']=="activate"?"Y":"N");
                if(!$cData->Update($ID, $arFields))
                    $lAdmin->AddGroupError(GetMessage("rub_save_error").$cData->LAST_ERROR, $ID);
            }
            else
                $lAdmin->AddGroupError(GetMessage("rub_save_error")." ".GetMessage("rub_no_rubric"), $ID);
            break;
        }

    }
}

Выборка элементов

Выборка списка элементов ничем не отличается от выборки в компоненте или на странице, за исключением того, что из результата выборки нужно сформировать экземпляр класса CAdminResult.

// выберем список рассылок
$cData = new CRubric;
$rsData = $cData->GetList(array($by=>$order), $arFilter);

// преобразуем список в экземпляр класса CAdminResult
$rsData = new CAdminResult($rsData, $sTableID);

// аналогично CDBResult инициализируем постраничную навигацию.
$rsData->NavStart();

// отправим вывод переключателя страниц в основной объект $lAdmin
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("rub_nav")));

Подготовка списка элементов к выводу

Для того, чтобы сформировать таблицу элементов, нужно, во-первых, сформировать массив заголовков таблицы, а, во-вторых, отправить список в основной объект $lAdmin. Первое осуществляется посредством вызова метода СAdminList::AddHeaders(), которому передается массив колонок таблицы. Каждая колонка описывается массивом, содержащим следующие ключи:

Ключ | Описание
id | Идентификатор колонки.
content | Заголовок колонки.
sort | Значение параметра GET-запроса для сортировки.
default | Параметр, показывающий, будет ли колонка по умолчанию отображаться в списке (true|false)

Пример:

$lAdmin->AddHeaders(array(
  array(  "id"    =>"ID",
    "content"  =>"ID",
    "sort"     =>"id",
    "default"  =>true,
  ),
  array(  "id"    =>"NAME",
    "content"  =>GetMessage("rub_name"),
    "sort"     =>"name",
    "default"  =>true,
  ),
  array(  "id"    =>"LID",
    "content"  =>GetMessage("rub_site"),
    "sort"     =>"lid",
    "default"  =>true,
  ),
  array(  "id"    =>"SORT",
    "content"  =>GetMessage("rub_sort"),
    "sort"     =>"sort",
    "align"    =>"right",
    "default"  =>true,
  ),
  array(  "id"    =>"ACTIVE",
    "content"  =>GetMessage("rub_act"),
    "sort"     =>"act",
    "default"  =>true,
  ),
  array(  "id"    =>"VISIBLE",
    "content"  =>GetMessage("rub_visible"),
    "sort"     =>"visible",
    "default"  =>true,
  ),
  array(  "id"    =>"AUTO",
    "content"  =>GetMessage("rub_auto"),
    "sort"     =>"auto",
    "default"  =>true,
  ),
  array(  "id"    =>"LAST_EXECUTED",
    "content"  =>GetMessage("rub_last_exec"),
    "sort"     =>"last_executed",
    "default"  =>true,
  ),
));

Передача списка элементов в основной объект осуществляется следующим образом:

  1. Вызываем CAdminList::AddRow(). Результат метода - ссылка на пустой экземпляр класса CAdminListRow
  2. Формируем поля строки, используя следующие методы класса CAdminListRow:
    • AddField - значение ячейки будет отображаться в заданном виде при просмотре и при редактировании списка
    • AddViewField - при просмотре списка значение ячейки будет отображаться в заданном виде
    • AddEditField - при редактировании списка значение ячейки будет отображаться в заданном виде
    • AddCheckField - значение ячейки будет редактироваться в виде чекбокса
    • AddSelectField - значение ячейки будет редактироваться в виде выпадающего списка
    • AddInputField - значение ячейки будет редактироваться в виде текстового поля с заданным набором атрибутов
    • AddCalendarField - значение ячейки будет редактироваться в виде поля для ввода даты
  3. Формируем контекстное меню для строки (CAdminListRow::AddActions())

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

Контекстное меню элемента задается массивом, элементы которого представлюят собой ассоциативные массивы со следующим набором ключей:

Ключ | Описание
ICON | Имя CSS-класса с иконкой действия.
DISABLED | Флаг "пункт меню заблокирован" (true|false).
DEFAULT | Флаг "пункт меню является действием по умолчанию" (true|false). При двойном клике по строке сработает действие по умолчанию.
TEXT | Название пункта меню.
TITLE | Текст всплывающей подсказки пункта меню.
ACTION | Действие, производимое по выбору пункта меню (Javascript).
SEPARATOR | Вставка разделителя {true|false}. При значении, равном true, остальные ключи пункта меню будут проигнорированы.

Пример:

while($arRes = $rsData->NavNext(true, "f_")):

  // создаем строку. результат - экземпляр класса CAdminListRow
  $row =& $lAdmin->AddRow($f_ID, $arRes);

  // далее настроим отображение значений при просмотре и редактировании списка

  // параметр NAME будет редактироваться как текст, а отображаться ссылкой
  $row->AddInputField("NAME", array("size"=>20));
  $row->AddViewField("NAME", '<a href="rubric_edit.php?ID='.$f_ID.'&lang='.LANG.'">'.$f_NAME.'</a>');

  // параметр LID будет редактироваться в виде выпадающего списка языков
  $row->AddEditField("LID", CLang::SelectBox("LID", $f_LID));

  // параметр SORT будет редактироваться текстом
  $row->AddInputField("SORT", array("size"=>20));

  // флаги ACTIVE и VISIBLE будут редактироваться чекбоксами
  $row->AddCheckField("ACTIVE");
  $row->AddCheckField("VISIBLE");

  // параметр AUTO будет отображаться в виде "Да" или "Нет", полужирным при редактировании
  $row->AddViewField("AUTO", $f_AUTO=="Y"?GetMessage("POST_U_YES"):GetMessage("POST_U_NO"));
  $row->AddEditField("AUTO", "<b>".($f_AUTO=="Y"?GetMessage("POST_U_YES"):GetMessage("POST_U_NO"))."</b>");

  // сформируем контекстное меню
  $arActions = Array();

  // редактирование элемента
  $arActions[] = array(
    "ICON"=>"edit",
    "DEFAULT"=>true,
    "TEXT"=>GetMessage("rub_edit"),
    "ACTION"=>$lAdmin->ActionRedirect("rubric_edit.php?ID=".$f_ID)
  );

  // удаление элемента
  if ($POST_RIGHT>="W")
    $arActions[] = array(
      "ICON"=>"delete",
      "TEXT"=>GetMessage("rub_del"),
      "ACTION"=>"if(confirm('".GetMessage('rub_del_conf')."')) ".$lAdmin->ActionDoGroup($f_ID, "delete")
    );

  // вставим разделитель
  $arActions[] = array("SEPARATOR"=>true);

  // проверка шаблона для автогенерируемых рассылок
  if (strlen($f_TEMPLATE)>0 && $f_AUTO=="Y")
    $arActions[] = array(
      "ICON"=>"",
      "TEXT"=>GetMessage("rub_check"),
      "ACTION"=>$lAdmin->ActionRedirect("template_test.php?ID=".$f_ID)
    );

  // если последний элемент - разделитель, почистим мусор.
  if(is_set($arActions[count($arActions)-1], "SEPARATOR"))
    unset($arActions[count($arActions)-1]);

  // применим контекстное меню к строке
  $row->AddActions($arActions);

endwhile;

Для завершения подготовки таблицы остается добавить к ней "резюме" и настроить групповые операции над элементами.

Резюме таблицы формируется в виде массива, элементами которого являются ассоциативные массивы с ключами "title" - название параметра - и "value" - значение параметра. Кроме того, ассоциативный массив может содержать элемент с ключом "counter" и значением true. В этом случае, элемент резюме будет счетчиком отмеченных элементов таблицы и значение будет динамически изменяться. Прикрепляется резюме вызовом метода CAdminList::AddFooter().

Список возможных групповых операций задается в виде массива элементов вида "идентификатор_операции"=>"название_операции" и прикрепляется к таблице вызовом CAdminList::AddGroupActionTable(). Про обработку групповых действий см. выше.

Пример:

// резюме таблицы
$lAdmin->AddFooter(
  array(
    array("title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$rsData->SelectedRowsCount()), // кол-во элементов
    array("counter"=>true, "title"=>GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value"=>"0"), // счетчик выбранных элементов
  )
);

// групповые действия
$lAdmin->AddGroupActionTable(Array(
  "delete"=>GetMessage("MAIN_ADMIN_LIST_DELETE"), // удалить выбранные элементы
  "activate"=>GetMessage("MAIN_ADMIN_LIST_ACTIVATE"), // активировать выбранные элементы
  "deactivate"=>GetMessage("MAIN_ADMIN_LIST_DEACTIVATE"), // деактивировать выбранные элементы
  ));

Задание параметров административного меню

Также можно задать административное меню, которое обычно отображается над таблицей со списком (только если у текущего пользователя есть права на редактирование). Административное формируется в виде массива, элементами которого являются ассоциативные массивы с ключами:

Ключ | Описание
TEXT | Текст пункта меню.
TITLE | Текст всплывающей подсказки пункта меню.
LINK | Ссылка на кнопке.
LINK_PARAM | Дополнительные параметры ссылки (напрямую подставляются в тэг <A>).
ICON | CSS-класс иконки действия.
HTML | Задание пункта меню напрямую HTML-кодом.
SEPARATOR | Разделитель между пунктами меню (true|false).
NEWBAR | Новый блок элементов меню (true|false).
MENU | Создание выпадающего подменю. Значение задается аналогично контекстному меню строки таблицы.

Прикрепляется контекстное меню вызовом CAdminList::AddAdminContextMenu().

Пример:

// сформируем меню из одного пункта - добавление рассылки
$aContext = array(
  array(
    "TEXT"=>GetMessage("POST_ADD"),
    "LINK"=>"rubric_edit.php?lang=".LANG,
    "TITLE"=>GetMessage("POST_ADD_TITLE"),
    "ICON"=>"btn_new",
  ),
);

// и прикрепим его к списку
$lAdmin->AddAdminContextMenu($aContext);

Завершение подготовки

На этом подготовка списка завершена. Для того, чтобы обработать альтернтативные методы вывода списка (обновление посредством AJAX, вывод в формате Excel) вызовем метод CAdminList::CheckListMode():

// альтернативный вывод
$lAdmin->CheckListMode();

И в завершение непосредственно перед стандартным выводом, установим заголовок страницы:

// установим заголовок страницы
$APPLICATION->SetTitle(GetMessage("rub_title"));

Вывод данных

Как видно на схеме, подготовку страницы и основной вывод необходимо разделить подключением административного файла prolog_admin_after.php:

// не забудем разделить подготовку данных и вывод
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");

Выше было сказано, что вывод данных можно разбить на 2 части - вывод фильтра и вывод списка.

Вывод фильтра

Для вывода фильтра требуется сперва создать экземпляр класса CAdminFilter, передав ему список полей, а затем сформировать форму фильтра "вручную".

Пример:

// создадим объект фильтра
$oFilter = new CAdminFilter(
  $sTableID."_filter",
  array(
    "ID",
    GetMessage("rub_f_site"),
    GetMessage("rub_f_active"),
    GetMessage("rub_f_public"),
    GetMessage("rub_f_auto"),
  )
);
?>
<form name="find_form" method="get" action="<?echo $APPLICATION->GetCurPage();?>">
<?$oFilter->Begin();?>
<tr>
  <td><?="ID"?>:</td>
  <td>
    <input type="text" name="find_id" size="47" value="<?echo htmlspecialchars($find_id)?>">
  </td>
</tr>
<tr>
  <td><?=GetMessage("rub_f_site").":"?></td>
  <td><input type="text" name="find_lid" size="47" value="<?echo htmlspecialchars($find_lid)?>"></td>
</tr>
<tr>
  <td><?=GetMessage("rub_f_active")?>:</td>
  <td>
    <?
    $arr = array(
      "reference" => array(
        GetMessage("POST_YES"),
        GetMessage("POST_NO"),
      ),
      "reference_id" => array(
        "Y",
        "N",
      )
    );
    echo SelectBoxFromArray("find_active", $arr, $find_active, GetMessage("POST_ALL"), "");
    ?>
  </td>
</tr>
<tr>
  <td><?=GetMessage("rub_f_public")?>:</td>
  <td><?echo SelectBoxFromArray("find_visible", $arr, $find_visible, GetMessage("POST_ALL"), "");?></td>
</tr>
<tr>
  <td><?=GetMessage("rub_f_auto")?>:</td>
  <td><?echo SelectBoxFromArray("find_auto", $arr, $find_auto, GetMessage("POST_ALL"), "");?></td>
</tr>
<?
$oFilter->Buttons(array("table_id"=>$sTableID,"url"=>$APPLICATION->GetCurPage(),"form"=>"find_form"));
$oFilter->End();
?>
</form>

Вывод таблицы

Ну и вполне логично, что после всех вышеприведенных подготовительных операций вывод списка осуществляется очень просто:

// выведем таблицу списка элементов
$lAdmin->DisplayList();

Собранный пример административной страницы со списком можно увидеть здесь.


Пример создания списка элементов

Описание создания административной страницы со списком можно увидеть здесь.

Пример

<?
// подключим все необходимые файлы:
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); // первый общий пролог

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/subscribe/include.php"); // инициализация модуля
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/subscribe/prolog.php"); // пролог модуля

// подключим языковой файл
IncludeModuleLangFile(__FILE__);

// получим права доступа текущего пользователя на модуль
$POST_RIGHT = $APPLICATION->GetGroupRight("subscribe");
// если нет прав - отправим к форме авторизации с сообщением об ошибке
if ($POST_RIGHT == "D")
    $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));

$sTableID = "tbl_rubric"; // ID таблицы
$oSort = new CAdminSorting($sTableID, "ID", "desc"); // объект сортировки
$lAdmin = new CAdminList($sTableID, $oSort); // основной объект списка

// ******************************************************************** //
//                           ФИЛЬТР                                     //
// ******************************************************************** //

// *********************** CheckFilter ******************************** //
// проверку значений фильтра для удобства вынесем в отдельную функцию
function CheckFilter()
{
  global $FilterArr, $lAdmin;
  foreach ($FilterArr as $f) global $$f;

  // В данном случае проверять нечего.
  // В общем случае нужно проверять значения переменных $find_имя
  // и в случае возниконовения ошибки передавать ее обработчику
  // посредством $lAdmin->AddFilterError('текст_ошибки').

  return count($lAdmin->arFilterErrors)==0; // если ошибки есть, вернем false;
}
// *********************** /CheckFilter ******************************* //

// опишем элементы фильтра
$FilterArr = Array(
  "find",
  "find_type",
  "find_id",
  "find_lid",
  "find_active",
  "find_visible",
  "find_auto",
  );

// инициализируем фильтр
$lAdmin->InitFilter($FilterArr);

// если все значения фильтра корректны, обработаем его
if (CheckFilter())
{
  // создадим массив фильтрации для выборки CRubric::GetList() на основе значений фильтра
  $arFilter = Array(
    "ID"    => ($find!="" && $find_type == "id"? $find:$find_id),
    "LID"    => $find_lid,
    "ACTIVE"  => $find_active,
    "VISIBLE"  => $find_visible,
    "AUTO"    => $find_auto,
  );
}

// ******************************************************************** //
//                ОБРАБОТКА ДЕЙСТВИЙ НАД ЭЛЕМЕНТАМИ СПИСКА              //
// ******************************************************************** //

// сохранение отредактированных элементов
if($lAdmin->EditAction() && $POST_RIGHT=="W")
{
  // пройдем по списку переданных элементов
  foreach($FIELDS as $ID=>$arFields)
  {
    if(!$lAdmin->IsUpdated($ID))
      continue;

    // сохраним изменения каждого элемента
    $DB->StartTransaction();
    $ID = IntVal($ID);
    $cData = new CRubric;
    if(($rsData = $cData->GetByID($ID)) && ($arData = $rsData->Fetch()))
    {
      foreach($arFields as $key=>$value)
        $arData[$key]=$value;
      if(!$cData->Update($ID, $arData))
      {
        $lAdmin->AddGroupError(GetMessage("rub_save_error")." ".$cData->LAST_ERROR, $ID);
        $DB->Rollback();
      }
    }
    else
    {
      $lAdmin->AddGroupError(GetMessage("rub_save_error")." ".GetMessage("rub_no_rubric"), $ID);
      $DB->Rollback();
    }
    $DB->Commit();
  }
}

// обработка одиночных и групповых действий
if(($arID = $lAdmin->GroupAction()) && $POST_RIGHT=="W")
{
  // если выбрано "Для всех элементов"
  if($_REQUEST['action_target']=='selected')
  {
    $cData = new CRubric;
    $rsData = $cData->GetList(array($by=>$order), $arFilter);
    while($arRes = $rsData->Fetch())
      $arID[] = $arRes['ID'];
  }

  // пройдем по списку элементов
  foreach($arID as $ID)
  {
    if(strlen($ID)<=0)
      continue;
       $ID = IntVal($ID);

    // для каждого элемента совершим требуемое действие
    switch($_REQUEST['action'])
    {
    // удаление
    case "delete":
      @set_time_limit(0);
      $DB->StartTransaction();
      if(!CRubric::Delete($ID))
      {
        $DB->Rollback();
        $lAdmin->AddGroupError(GetMessage("rub_del_err"), $ID);
      }
      $DB->Commit();
      break;

    // активация/деактивация
    case "activate":
    case "deactivate":
      $cData = new CRubric;
      if(($rsData = $cData->GetByID($ID)) && ($arFields = $rsData->Fetch()))
      {
        $arFields["ACTIVE"]=($_REQUEST['action']=="activate"?"Y":"N");
        if(!$cData->Update($ID, $arFields))
          $lAdmin->AddGroupError(GetMessage("rub_save_error").$cData->LAST_ERROR, $ID);
      }
      else
        $lAdmin->AddGroupError(GetMessage("rub_save_error")." ".GetMessage("rub_no_rubric"), $ID);
      break;
    }
  }
}

// ******************************************************************** //
//                ВЫБОРКА ЭЛЕМЕНТОВ СПИСКА                              //
// ******************************************************************** //

// выберем список рассылок
$cData = new CRubric;
$rsData = $cData->GetList(array($by=>$order), $arFilter);

// преобразуем список в экземпляр класса CAdminResult
$rsData = new CAdminResult($rsData, $sTableID);

// аналогично CDBResult инициализируем постраничную навигацию.
$rsData->NavStart();

// отправим вывод переключателя страниц в основной объект $lAdmin
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("rub_nav")));

// ******************************************************************** //
//                ПОДГОТОВКА СПИСКА К ВЫВОДУ                            //
// ******************************************************************** //

$lAdmin->AddHeaders(array(
  array(  "id"    =>"ID",
    "content"  =>"ID",
    "sort"    =>"id",
    "align"    =>"right",
    "default"  =>true,
  ),
  array(  "id"    =>"NAME",
    "content"  =>GetMessage("rub_name"),
    "sort"    =>"name",
    "default"  =>true,
  ),
  array(  "id"    =>"LID",
    "content"  =>GetMessage("rub_site"),
    "sort"    =>"lid",
    "default"  =>true,
  ),
  array(  "id"    =>"SORT",
    "content"  =>GetMessage("rub_sort"),
    "sort"    =>"sort",
    "align"    =>"right",
    "default"  =>true,
  ),
  array(  "id"    =>"ACTIVE",
    "content"  =>GetMessage("rub_act"),
    "sort"    =>"act",
    "default"  =>true,
  ),
  array(  "id"    =>"VISIBLE",
    "content"  =>GetMessage("rub_visible"),
    "sort"    =>"visible",
    "default"  =>true,
  ),
  array(  "id"    =>"AUTO",
    "content"  =>GetMessage("rub_auto"),
    "sort"    =>"auto",
    "default"  =>true,
  ),
  array(  "id"    =>"LAST_EXECUTED",
    "content"  =>GetMessage("rub_last_exec"),
    "sort"    =>"last_executed",
    "default"  =>true,
  ),
));

while($arRes = $rsData->NavNext(true, "f_")):

  // создаем строку. результат - экземпляр класса CAdminListRow
  $row =& $lAdmin->AddRow($f_ID, $arRes);

  // далее настроим отображение значений при просмотре и редаткировании списка

  // параметр NAME будет редактироваться как текст, а отображаться ссылкой
  $row->AddInputField("NAME", array("size"=>20));
  $row->AddViewField("NAME", '<a href="rubric_edit.php?ID='.$f_ID.'&lang='.LANG.'">'.$f_NAME.'</a>');

  // параметр LID будет редактироваться в виде выпадающего списка языков
  $row->AddEditField("LID", CLang::SelectBox("LID", $f_LID));

  // параметр SORT будет редактироваться текстом
  $row->AddInputField("SORT", array("size"=>20));

  // флаги ACTIVE и VISIBLE будут редактироваться чекбоксами
  $row->AddCheckField("ACTIVE");
  $row->AddCheckField("VISIBLE");

  // параметр AUTO будет отображаться в виде "Да" или "Нет", полужирным при редактировании
  $row->AddViewField("AUTO", $f_AUTO=="Y"?GetMessage("POST_U_YES"):GetMessage("POST_U_NO"));
  $row->AddEditField("AUTO", "<b>".($f_AUTO=="Y"?GetMessage("POST_U_YES"):GetMessage("POST_U_NO"))."</b>");

  // сформируем контекстное меню
  $arActions = Array();

  // редактирование элемента
  $arActions[] = array(
    "ICON"=>"edit",
    "DEFAULT"=>true,
    "TEXT"=>GetMessage("rub_edit"),
    "ACTION"=>$lAdmin->ActionRedirect("rubric_edit.php?ID=".$f_ID)
  );

  // удаление элемента
  if ($POST_RIGHT>="W")
    $arActions[] = array(
      "ICON"=>"delete",
      "TEXT"=>GetMessage("rub_del"),
      "ACTION"=>"if(confirm('".GetMessage('rub_del_conf')."')) ".$lAdmin->ActionDoGroup($f_ID, "delete")
    );

  // вставим разделитель
  $arActions[] = array("SEPARATOR"=>true);

  // проверка шаблона для автогенерируемых рассылок
  if (strlen($f_TEMPLATE)>0 && $f_AUTO=="Y")
    $arActions[] = array(
      "ICON"=>"",
      "TEXT"=>GetMessage("rub_check"),
      "ACTION"=>$lAdmin->ActionRedirect("template_test.php?ID=".$f_ID)
    );

  // если последний элемент - разделитель, почистим мусор.
  if(is_set($arActions[count($arActions)-1], "SEPARATOR"))
    unset($arActions[count($arActions)-1]);

  // применим контекстное меню к строке
  $row->AddActions($arActions);

endwhile;

// резюме таблицы
$lAdmin->AddFooter(
  array(
    array("title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$rsData->SelectedRowsCount()), // кол-во элементов
    array("counter"=>true, "title"=>GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value"=>"0"), // счетчик выбранных элементов
  )
);

// групповые действия
$lAdmin->AddGroupActionTable(Array(
  "delete"=>GetMessage("MAIN_ADMIN_LIST_DELETE"), // удалить выбранные элементы
  "activate"=>GetMessage("MAIN_ADMIN_LIST_ACTIVATE"), // активировать выбранные элементы
  "deactivate"=>GetMessage("MAIN_ADMIN_LIST_DEACTIVATE"), // деактивировать выбранные элементы
  ));

// ******************************************************************** //
//                АДМИНИСТРАТИВНОЕ МЕНЮ                                 //
// ******************************************************************** //

// сформируем меню из одного пункта - добавление рассылки
$aContext = array(
  array(
    "TEXT"=>GetMessage("POST_ADD"),
    "LINK"=>"rubric_edit.php?lang=".LANG,
    "TITLE"=>GetMessage("POST_ADD_TITLE"),
    "ICON"=>"btn_new",
  ),
);

// и прикрепим его к списку
$lAdmin->AddAdminContextMenu($aContext);

// ******************************************************************** //
//                ВЫВОД                                                 //
// ******************************************************************** //

// альтернативный вывод
$lAdmin->CheckListMode();

// установим заголовок страницы
$APPLICATION->SetTitle(GetMessage("rub_title"));

// не забудем разделить подготовку данных и вывод
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");

// ******************************************************************** //
//                ВЫВОД ФИЛЬТРА                                         //
// ******************************************************************** //

// создадим объект фильтра
$oFilter = new CAdminFilter(
  $sTableID."_filter",
  array(
    "ID",
    GetMessage("rub_f_site"),
    GetMessage("rub_f_active"),
    GetMessage("rub_f_public"),
    GetMessage("rub_f_auto"),
  )
);
?>
<form name="find_form" method="get" action="<?echo $APPLICATION->GetCurPage();?>">
<?$oFilter->Begin();?>
<tr>
  <td><b><?=GetMessage("rub_f_find")?>:</b></td>
  <td>
    <input type="text" size="25" name="find" value="<?echo htmlspecialchars($find)?>" title="<?=GetMessage("rub_f_find_title")?>">
    <?
    $arr = array(
      "reference" => array(
        "ID",
      ),
      "reference_id" => array(
        "id",
      )
    );
    echo SelectBoxFromArray("find_type", $arr, $find_type, "", "");
    ?>
  </td>
</tr>
<tr>
  <td><?="ID"?>:</td>
  <td>
    <input type="text" name="find_id" size="47" value="<?echo htmlspecialchars($find_id)?>">
  </td>
</tr>
<tr>
  <td><?=GetMessage("rub_f_site").":"?></td>
  <td><input type="text" name="find_lid" size="47" value="<?echo htmlspecialchars($find_lid)?>"></td>
</tr>
<tr>
  <td><?=GetMessage("rub_f_active")?>:</td>
  <td>
    <?
    $arr = array(
      "reference" => array(
        GetMessage("POST_YES"),
        GetMessage("POST_NO"),
      ),
      "reference_id" => array(
        "Y",
        "N",
      )
    );
    echo SelectBoxFromArray("find_active", $arr, $find_active, GetMessage("POST_ALL"), "");
    ?>
  </td>
</tr>
<tr>
  <td><?=GetMessage("rub_f_public")?>:</td>
  <td><?echo SelectBoxFromArray("find_visible", $arr, $find_visible, GetMessage("POST_ALL"), "");?></td>
</tr>
<tr>
  <td><?=GetMessage("rub_f_auto")?>:</td>
  <td><?echo SelectBoxFromArray("find_auto", $arr, $find_auto, GetMessage("POST_ALL"), "");?></td>
</tr>
<?
$oFilter->Buttons(array("table_id"=>$sTableID,"url"=>$APPLICATION->GetCurPage(),"form"=>"find_form"));
$oFilter->End();
?>
</form>

<?
// выведем таблицу списка элементов
$lAdmin->DisplayList();
?>

<?
// завершение страницы
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
?>


Создание формы редактирования

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

Принципы работы

Можно выделить следующий функционал, как правило, требуемый от административной страницы редактирования:

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

Возможности API, предназначенные для формирования административных страниц позволяют реализовать эти функции практически независимо друг от друга. В качестве "удобного для пользователя вида" формы предлагается возможность создания форм, разбитых на страницы с динамическим переключением между ними посредством именованных закладок.

Разберем создание формы редактирования в административном интерфейсе. В качестве примера будем использовать административную страницу модуля "Подписка, рассылки".

Начало

Для начала создадим файл bitrix/modules/subscribe/rubric_edit.php следующей структуры:

<?
// подключим все необходимые файлы:
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); // первый общий пролог

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/subscribe/include.php"); // инициализация модуля
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/subscribe/prolog.php"); // пролог модуля

// подключим языковой файл
IncludeModuleLangFile(__FILE__);

// получим права доступа текущего пользователя на модуль
$POST_RIGHT = $APPLICATION->GetGroupRight("subscribe");
// если нет прав - отправим к форме авторизации с сообщением об ошибке
if ($POST_RIGHT == "D")
    $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
?>
<?
// здесь будет вся серверная обработка и подготовка данных
?>
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); // второй общий пролог
?>
<?
// здесь будет вывод страницы с формой
?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");?>

Это и есть "костяк страницы", обозначенный на схеме.

Далее, создадим языковой файл, например, /bitrix/modules/subscribe/lang/ru/rubric_edit.php для русского языка. В файле будем определять все языковые сообщения в виде элементов массива: $MESS['идентификатор_сообщения'] = "текст_сообщения";

Затем, поскольку с изначальными параметрами установки БУС каталог /bitrix/modules/ недоступен посредством HTTP-протокола, создадим файл /bitrix/admin/rubric_edit.php:

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/subscribe/admin/rubric_edit.php");
?>

Теперь наш файл доступен по ссылке http://mysite.ru/bitrix/admin/rubric_edit.php.

Функционал страницы

Как видно из схемы, весь функционал страницы условно можно разделить на несколько составных частей:

  • Обработка и подготовка данных
    • Обработка и сохранение изменений
    • Выборка и подготовка данных для формы
    • Настройка интерфейса закладок и параметров административного меню страницы
  • Вывод данных
    • Вывод административного меню страницы
    • Вывод сообщений об ошибках
    • Вывод формы редактирования с метками закладок

В процессе работы нам потребуются экземпляры следующих классов:

Класс | Описание
CAdminTabControl | Класс для вывода формы, разбитой на страницы с динамически переключаемыми закладками.
CAdminMessage | Класс для работы с административными сообщениями.
CAdminContextMenu | Класс для работы с панелями административного меню действий.

Обработка и подготовка данных

Настройка интерфейса закладок

Административную форму можно разбить на страницы, переключаемые при помощи закладок. Для описания структуры заладок, нужно создать массив, элементами которого являются ассоциативные массивы, которые могут содержать следующие ключи:

Ключ | Описание
DIV | Уникальный идентификатор закладки.
TAB | Текст, помещаемый на закладку.
TITLE | Описание страницы, к которой ведет закладка.
ICON | CSS-класс иконки, выводимой рыдом с описанием страницы.
ONSELECT | JavaScript-сценарий, который будет выполнен при переключении на закладку.

Далее, нужно создать экземпляр класса CAdminTabControl и передать ему эту структуру.

$aTabs = array(
  array("DIV" => "edit1", "TAB" => GetMessage("rub_tab_rubric"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("rub_tab_rubric_title")),
  array("DIV" => "edit2", "TAB" => GetMessage("rub_tab_generation"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("rub_tab_generation_title")),
);
$tabControl = new CAdminTabControl("tabControl", $aTabs);

Обработка и сохранение изменений

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

$ID = intval($ID);		// идентификатор редактируемой записи
$message = null;		// сообщение об ошибке
$bVarsFromForm = false; // флаг "Данные получены с формы", обозначающий, что выводимые данные получены с формы, а не из БД.

Необходимость сохранения изменений мы определим по следующим параметрам:

  • Страница вызвана методом POST
  • Среди входных данных есть идентификаторы кнопок "Сохранить" и "Применить"

Если эти условия сооблюдены и пройдены проверки безопасности, можно сохранять переданные скрипту данные:

if(
    $REQUEST_METHOD == "POST" // проверка метода вызова страницы
    &&
    ($save!="" || $apply!="") // проверка нажатия кнопок "Сохранить" и "Применить"
    &&
    $POST_RIGHT=="W"          // проверка наличия прав на запись для модуля
    &&
    check_bitrix_sessid()     // проверка идентификатора сессии
)
{
  $rubric = new CRubric;

  // обработка данных формы
  $arFields = Array(
    "ACTIVE"         => ($ACTIVE <> "Y" ? "N" : "Y"),
    "NAME"           => $NAME,
    "SORT"           => $SORT,
    "DESCRIPTION"    => $DESCRIPTION,
    "LID"            => $LID,
    "AUTO"           => ($AUTO <> "Y" ? "N" : "Y"),
    "DAYS_OF_MONTH"  => $DAYS_OF_MONTH,
    "DAYS_OF_WEEK"   => (is_array($DAYS_OF_WEEK) ? implode(",", $DAYS_OF_WEEK) : ""),
    "TIMES_OF_DAY"   => $TIMES_OF_DAY,
    "TEMPLATE"       => $TEMPLATE,
    "VISIBLE"        => ($VISIBLE <> "Y" ? "N" : "Y"),
    "FROM_FIELD"     => $FROM_FIELD,
    "LAST_EXECUTED"  => $LAST_EXECUTED
  );

  // сохранение данных
  if($ID > 0)
  {
    $res = $rubric->Update($ID, $arFields);
  }
  else
  {
    $ID = $rubric->Add($arFields);
    $res = ($ID > 0);
  }

  if($res)
  {
    // если сохранение прошло удачно - перенаправим на новую страницу
    // (в целях защиты от повторной отправки формы нажатием кнопки "Обновить" в браузере)
    if ($apply != "")
      // если была нажата кнопка "Применить" - отправляем обратно на форму.
      LocalRedirect("/bitrix/admin/rubric_edit.php?ID=".$ID."&mess=ok⟨=".LANG."&".$tabControl->ActiveTabParam());
    else
      // если была нажата кнопка "Сохранить" - отправляем к списку элементов.
      LocalRedirect("/bitrix/admin/rubric_admin.php?lang=".LANG);
  }
  else
  {
    // если в процессе сохранения возникли ошибки - получаем текст ошибки и меняем вышеопределённые переменные
    if($e = $APPLICATION->GetException())
      $message = new CAdminMessage(GetMessage("rub_save_error"), $e);
    $bVarsFromForm = true;
  }
}

Выборка и подготовка данных для формы

Для начала, определим значения по умолчанию. Все данные, полученные из БД будем сохранять в переменные с префиксом str_

$str_SORT          = 100;
$str_ACTIVE        = "Y";
$str_AUTO          = "N";
$str_DAYS_OF_MONTH = "";
$str_DAYS_OF_WEEK  = "";
$str_TIMES_OF_DAY  = "";
$str_VISIBLE       = "Y";
$str_LAST_EXECUTED = ConvertTimeStamp(false, "FULL");
$str_FROM_FIELD    = COption::GetOptionString("subscribe", "default_from");

Выберем данные:

if($ID>0)
{
  $rubric = CRubric::GetByID($ID);
  if(!$rubric->ExtractFields("str_"))
    $ID=0;
}

Подготовим полученные данные и установим заголовок страницы:

// если данные переданы из формы, инициализируем их
if($bVarsFromForm)
  $DB->InitTableVarsForEdit("b_list_rubric", "", "str_");

$APPLICATION->SetTitle(($ID>0? GetMessage("rub_title_edit").$ID : GetMessage("rub_title_add")));

Задание параметров административного меню

Также можно задать административное меню, которое будет отображаться над таблицей со списком (только если у текущего пользователя есть права на редактирование). Административное формируется в виде массива, элементами которого являются ассоциативные массивы с ключами:

Ключ | Описание
TEXT | Текст пункта меню.
TITLE | Текст всплывающей подсказки пункта меню.
LINK | Ссылка на кнопке.
LINK_PARAM | Дополнительные параметры ссылки (напрямую подставляются в тэг <A>).
ICON | CSS-класс иконки действия.
HTML | Задание пункта меню напрямую HTML-кодом.
SEPARATOR | Разделитель между пунктами меню (true|false).
NEWBAR | Новый блок элементов меню (true|false).
MENU | Создание выпадающего подменю. Значение задается аналогично контекстному меню строки таблицы.

Пример:

$aMenu = array(
  array(
    "TEXT"  => GetMessage("rub_list"),
    "TITLE" => GetMessage("rub_list_title"),
    "LINK"  => "rubric_admin.php?lang=".LANG,
    "ICON"  => "btn_list",
  )
);

if($ID>0)
{
  $aMenu[] = array("SEPARATOR"=>"Y");

  $aMenu[] = array(
    "TEXT"  => GetMessage("rub_add"),
    "TITLE" => GetMessage("rubric_mnu_add"),
    "LINK"  => "rubric_edit.php?lang=".LANG,
    "ICON"  => "btn_new",
  );
  $aMenu[] = array(
    "TEXT"  => GetMessage("rub_delete"),
    "TITLE" => GetMessage("rubric_mnu_del"),
    "LINK"  => "javascript:if(confirm('".GetMessage("rubric_mnu_del_conf")."')) ".
      "window.location='rubric_admin.php?ID=".$ID."&action=delete⟨=".LANG."&".bitrix_sessid_get()."';",
    "ICON"  => "btn_delete",
  );
  $aMenu[] = array("SEPARATOR"=>"Y");
  $aMenu[] = array(
    "TEXT"  => GetMessage("rub_check"),
    "TITLE" => GetMessage("rubric_mnu_check"),
    "LINK"  => "template_test.php?lang=".LANG."&ID=".$ID
  );
}

Результирующая структура передается конструктору класса CAdminContextMenu.

Вывод данных

Как видно на схеме, подготовку страницы и основной вывод необходимо разделить подключением административного файла prolog_admin_after.php:

// не забудем разделить подготовку данных и вывод
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");

Прежде всего, выведем подготовленное административное меню.

// создадим экземпляр класса административного меню
$context = new CAdminContextMenu($aMenu);

// выведем меню
$context->Show();

Если есть сообщения об ошибках или об успешном сохранении - выведем их.

if($_REQUEST["mess"] == "ok" && $ID>0)
  CAdminMessage::ShowMessage(array("MESSAGE"=>GetMessage("rub_saved"), "TYPE"=>"OK"));

if($message)
  echo $message->Show();
elseif($rubric->LAST_ERROR!="")
  CAdminMessage::ShowMessage($rubric->LAST_ERROR);

Далее, выводим собственно форму. Для инициализации механизма закладок и вывода панели закладок следует использовать метод CAdminTabControl::Begin(). Для разделения закладок - CAdminTabControl::BeginNextTab(). Для завершения - CAdminTabControl::End().

<form method="POST" Action="<?echo $APPLICATION->GetCurPage()?>" ENCTYPE="multipart/form-data" name="post_form">
<?// проверка идентификатора сессии ?>
<?echo bitrix_sessid_post();?>
<input type="hidden" name="lang" value="<?=LANG?>">
<?if($ID>0 && !$bCopy):?>
  <input type="hidden" name="ID" value="<?=$ID?>">
<?endif;?>
<?
// отобразим заголовки закладок
$tabControl->Begin();
?>
<?
//********************
// первая закладка - форма редактирования параметров рассылки
//********************
$tabControl->BeginNextTab();
?>
  <tr>
    <td width="40%"><?echo GetMessage("rub_act")?></td>
    <td width="60%"><input type="checkbox" name="ACTIVE" value="Y"<?if($str_ACTIVE == "Y") echo " checked"?> /></td>
  </tr>

  <!--  HTML-код строк таблицы -->

  <tr>
    <td><?echo GetMessage("rub_auto")?></td>
    <td><input type="checkbox" name="AUTO" value="Y"<?if($str_AUTO == "Y") echo " checked"?>
      OnClick="if(this.checked) tabControl.EnableTab('edit2'); else tabControl.DisableTab('edit2');" /></td>
  </tr>
<?
//********************
// вторая закладка - параметры автоматической генерации рассылки
//********************
$tabControl->BeginNextTab();
?>
  <tr class="heading">
    <td colspan="2"><?echo GetMessage("rub_schedule")?></td>
  </tr>
  <tr>
    <td width="40%"><span class="required">*</span><?echo GetMessage("rub_last_executed"). " (".FORMAT_DATETIME."):"?></td>
    <td width="60%"><?echo CalendarDate("LAST_EXECUTED", $str_LAST_EXECUTED, "post_form", "20")?></td>
  </tr>

  <!--  HTML-код строк таблицы -->

  <tr>
    <td><span class="required">*</span><?echo GetMessage("rub_post_fields_from")?></td>
    <td><input type="text" name="FROM_FIELD" value="<?echo $str_FROM_FIELD;?>" size="30" maxlength="255" /></td>
  </tr>
<?
// завершение формы - вывод кнопок сохранения изменений
$tabControl->Buttons(
  array(
    "disabled"=>($POST_RIGHT<"W"),
    "back_url"=>"rubric_admin.php?lang=".LANG,
  )
);
?>
<?
// завершаем интерфейс закладки
$tabControl->End();
?>

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

<?
// дополнительное уведомление об ошибках - вывод иконки около поля, в котором возникла ошибка
$tabControl->ShowWarnings("post_form", $message);
?>

Механизм закладок предоставляет также интерфейс для динамического управления закладками посредством JavaScript. В качестве примера, предоставим блокирование закладки:

<script language="JavaScript">
<!--
  if(document.post_form.AUTO.checked)
    tabControl.EnableTab('edit2');
  else
    tabControl.DisableTab('edit2');
//-->
</script>

Ну и завершим нашу страницу информационным сообщением:

<?echo BeginNote();?>
<span class="required">*</span><?echo GetMessage("REQUIRED_FIELDS")?>
<?echo EndNote();?>

<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");?>

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


Пример создания страницы редактирования

Описание создания административной страницы редактирования можно увидеть здесь.

Пример

<?
// подключим все необходимые файлы:
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); // первый общий пролог

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/subscribe/include.php"); // инициализация модуля
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/subscribe/prolog.php"); // пролог модуля

// подключим языковой файл
IncludeModuleLangFile(__FILE__);

// получим права доступа текущего пользователя на модуль
$POST_RIGHT = $APPLICATION->GetGroupRight("subscribe");
// если нет прав - отправим к форме авторизации с сообщением об ошибке
if ($POST_RIGHT == "D")
  $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));

// сформируем список закладок
$aTabs = array(
  array("DIV" => "edit1", "TAB" => GetMessage("rub_tab_rubric"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("rub_tab_rubric_title")),
  array("DIV" => "edit2", "TAB" => GetMessage("rub_tab_generation"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("rub_tab_generation_title")),
);
$tabControl = new CAdminTabControl("tabControl", $aTabs);

$ID = intval($ID);		// идентификатор редактируемой записи
$message = null;		// сообщение об ошибке
$bVarsFromForm = false; // флаг "Данные получены с формы", обозначающий, что выводимые данные получены с формы, а не из БД.

// ******************************************************************** //
//                ОБРАБОТКА ИЗМЕНЕНИЙ ФОРМЫ                             //
// ******************************************************************** //

if(
    $REQUEST_METHOD == "POST" // проверка метода вызова страницы
    &&
    ($save!="" || $apply!="") // проверка нажатия кнопок "Сохранить" и "Применить"
    &&
    $POST_RIGHT=="W"          // проверка наличия прав на запись для модуля
    &&
    check_bitrix_sessid()     // проверка идентификатора сессии
)
{
  $rubric = new CRubric;

  // обработка данных формы
  $arFields = Array(
    "ACTIVE"  => ($ACTIVE <> "Y"? "N":"Y"),
    "NAME"    => $NAME,
    "SORT"    => $SORT,
    "DESCRIPTION"  => $DESCRIPTION,
    "LID"    => $LID,
    "AUTO"    =>($AUTO <> "Y"? "N":"Y"),
    "DAYS_OF_MONTH"  => $DAYS_OF_MONTH,
    "DAYS_OF_WEEK"  => (is_array($DAYS_OF_WEEK)?implode(",", $DAYS_OF_WEEK):""),
    "TIMES_OF_DAY"  => $TIMES_OF_DAY,
    "TEMPLATE"  => $TEMPLATE,
    "VISIBLE"  => ($VISIBLE <> "Y"? "N":"Y"),
    "FROM_FIELD"  => $FROM_FIELD,
    "LAST_EXECUTED"  => $LAST_EXECUTED
  );

  // сохранение данных
  if($ID > 0)
  {
    $res = $rubric->Update($ID, $arFields);
  }
  else
  {
    $ID = $rubric->Add($arFields);
    $res = ($ID > 0);
  }

  if($res)
  {
    // если сохранение прошло удачно - перенаправим на новую страницу
    // (в целях защиты от повторной отправки формы нажатием кнопки "Обновить" в браузере)
    if ($apply != "")
      // если была нажата кнопка "Применить" - отправляем обратно на форму.
      LocalRedirect("/bitrix/admin/rubric_edit.php?ID=".$ID."&mess=ok&lang=".LANG."&".$tabControl->ActiveTabParam());
    else
      // если была нажата кнопка "Сохранить" - отправляем к списку элементов.
      LocalRedirect("/bitrix/admin/rubric_admin.php?lang=".LANG);
  }
  else
  {
    // если в процессе сохранения возникли ошибки - получаем текст ошибки и меняем вышеопределённые переменные
    if($e = $APPLICATION->GetException())
      $message = new CAdminMessage(GetMessage("rub_save_error"), $e);
    $bVarsFromForm = true;
  }
}

// ******************************************************************** //
//                ВЫБОРКА И ПОДГОТОВКА ДАННЫХ ФОРМЫ                     //
// ******************************************************************** //

// значения по умолчанию
$str_SORT          = 100;
$str_ACTIVE        = "Y";
$str_AUTO          = "N";
$str_DAYS_OF_MONTH = "";
$str_DAYS_OF_WEEK  = "";
$str_TIMES_OF_DAY  = "";
$str_VISIBLE       = "Y";
$str_LAST_EXECUTED = ConvertTimeStamp(false, "FULL");
$str_FROM_FIELD    = COption::GetOptionString("subscribe", "default_from");

// выборка данных
if($ID>0)
{
  $rubric = CRubric::GetByID($ID);
  if(!$rubric->ExtractFields("str_"))
    $ID=0;
}

// дополнительная подготовка данных
if($ID>0 && !$message)
  $DAYS_OF_WEEK = explode(",", $str_DAYS_OF_WEEK);
if(!is_array($DAYS_OF_WEEK))
  $DAYS_OF_WEEK = array();

// если данные переданы из формы, инициализируем их
if($bVarsFromForm)
  $DB->InitTableVarsForEdit("b_list_rubric", "", "str_");

// ******************************************************************** //
//                ВЫВОД ФОРМЫ                                           //
// ******************************************************************** //

// установим заголовок страницы
$APPLICATION->SetTitle(($ID>0? GetMessage("rub_title_edit").$ID : GetMessage("rub_title_add")));

// не забудем разделить подготовку данных и вывод
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");

// конфигурация административного меню
$aMenu = array(
  array(
    "TEXT"=>GetMessage("rub_list"),
    "TITLE"=>GetMessage("rub_list_title"),
    "LINK"=>"rubric_admin.php?lang=".LANG,
    "ICON"=>"btn_list",
  )
);

if($ID>0)
{
  $aMenu[] = array("SEPARATOR"=>"Y");
  $aMenu[] = array(
    "TEXT"=>GetMessage("rub_add"),
    "TITLE"=>GetMessage("rubric_mnu_add"),
    "LINK"=>"rubric_edit.php?lang=".LANG,
    "ICON"=>"btn_new",
  );
  $aMenu[] = array(
    "TEXT"=>GetMessage("rub_delete"),
    "TITLE"=>GetMessage("rubric_mnu_del"),
    "LINK"=>"javascript:if(confirm('".GetMessage("rubric_mnu_del_conf")."'))window.location='rubric_admin.php?ID=".$ID."&action=delete&lang=".LANG."&".bitrix_sessid_get()."';",
    "ICON"=>"btn_delete",
  );
  $aMenu[] = array("SEPARATOR"=>"Y");
  $aMenu[] = array(
    "TEXT"=>GetMessage("rub_check"),
    "TITLE"=>GetMessage("rubric_mnu_check"),
    "LINK"=>"template_test.php?lang=".LANG."&ID=".$ID
  );
}

// создание экземпляра класса административного меню
$context = new CAdminContextMenu($aMenu);

// вывод административного меню
$context->Show();
?>

<?
// если есть сообщения об ошибках или об успешном сохранении - выведем их.
if($_REQUEST["mess"] == "ok" && $ID>0)
  CAdminMessage::ShowMessage(array("MESSAGE"=>GetMessage("rub_saved"), "TYPE"=>"OK"));

if($message)
  echo $message->Show();
elseif($rubric->LAST_ERROR!="")
  CAdminMessage::ShowMessage($rubric->LAST_ERROR);
?>

<?
// далее выводим собственно форму
?>
<form method="POST" Action="<?echo $APPLICATION->GetCurPage()?>" ENCTYPE="multipart/form-data" name="post_form">
<?// проверка идентификатора сессии ?>
<?echo bitrix_sessid_post();?>
<?
// отобразим заголовки закладок
$tabControl->Begin();
?>
<?
//********************
// первая закладка - форма редактирования параметров рассылки
//********************
$tabControl->BeginNextTab();
?>
  <tr>
    <td width="40%"><?echo GetMessage("rub_act")?></td>
    <td width="60%"><input type="checkbox" name="ACTIVE" value="Y"<?if($str_ACTIVE == "Y") echo " checked"?>></td>
  </tr>
  <tr>
    <td><?echo GetMessage("rub_visible")?></td>
    <td><input type="checkbox" name="VISIBLE" value="Y"<?if($str_VISIBLE == "Y") echo " checked"?>></td>
  </tr>
  <tr>
    <td><?echo GetMessage("rub_site")?></td>
    <td><?echo CLang::SelectBox("LID", $str_LID);?></td>
  </tr>
  <tr>
    <td><span class="required">*</span><?echo GetMessage("rub_name")?></td>
    <td><input type="text" name="NAME" value="<?echo $str_NAME;?>" size="30" maxlength="100"></td>
  </tr>
  <tr>
    <td><?echo GetMessage("rub_sort")?></td>
    <td><input type="text" name="SORT" value="<?echo $str_SORT;?>" size="30"></td>
  </tr>
  <tr>
    <td><?echo GetMessage("rub_desc")?></td>
    <td><textarea class="typearea" name="DESCRIPTION" cols="45" rows="5" wrap="VIRTUAL"><?echo $str_DESCRIPTION; ?></textarea></td>
  </tr>
  <tr>
    <td><?echo GetMessage("rub_auto")?></td>
    <td><input type="checkbox" name="AUTO" value="Y"<?if($str_AUTO == "Y") echo " checked"?> OnClick="if(this.checked) tabControl.EnableTab('edit2'); else tabControl.DisableTab('edit2');"></td>
  </tr>
<?
//********************
// вторая закладка - параметры автоматической генерации рассылки
//********************
$tabControl->BeginNextTab();
?>
  <tr class="heading">
    <td colspan="2"><?echo GetMessage("rub_schedule")?></td>
  </tr>
  <tr>
    <td width="40%"><span class="required">*</span><?echo GetMessage("rub_last_executed"). " (".FORMAT_DATETIME."):"?></td>
    <td width="60%"><?echo CalendarDate("LAST_EXECUTED", $str_LAST_EXECUTED, "post_form", "20")?></td>
  </tr>
  <tr>
    <td><?echo GetMessage("rub_dom")?></td>
    <td><input class="typeinput" type="text" name="DAYS_OF_MONTH" value="<?echo $str_DAYS_OF_MONTH;?>" size="30" maxlength="100"></td>
  </tr>
  <tr>
    <td><?echo GetMessage("rub_dow")?></td>
    <td>
    <table cellspacing=1 cellpadding=0 border=0 class="internal">
    <?  $arDoW = array(
        "1"  => GetMessage("rubric_mon"),
        "2"  => GetMessage("rubric_tue"),
        "3"  => GetMessage("rubric_wed"),
        "4"  => GetMessage("rubric_thu"),
        "5"  => GetMessage("rubric_fri"),
        "6"  => GetMessage("rubric_sat"),
        "7"  => GetMessage("rubric_sun")
      );
    ?>
      <tr class="heading"><?foreach($arDoW as $strVal=>$strDoW):?>
        <td><?=$strDoW?></td>
        <?endforeach;?>
      </tr>
      <tr>
      <?foreach($arDoW as $strVal=>$strDoW):?>
        <td><input type="checkbox" name="DAYS_OF_WEEK[]" value="<?=$strVal?>"<?if(array_search($strVal, $DAYS_OF_WEEK) !== false) echo " checked"?>></td>
      <?endforeach;?>
      </tr>
    </table>
    </td>
  </tr>
  <tr>
    <td><span class="required">*</span><?echo GetMessage("rub_tod")?></td>
    <td><input type="text" name="TIMES_OF_DAY" value="<?echo $str_TIMES_OF_DAY;?>" size="30" maxlength="255"></td>
  </tr>
  <tr class="heading">
    <td colspan="2"><?echo GetMessage("rub_template")?></td>
  </tr>
<?
$arTemplates=CPostingTemplate::GetList();
if(count($arTemplates)>0):
?>
  <tr>
    <td><span class="required">*</span><?echo GetMessage("rub_templates")?></td>
    <td><table>
<?
  $i=0;
  foreach($arTemplates as $strTemplate):
    $arTemplate = CPostingTemplate::GetByID($strTemplate);
?>
    <tr>
      <td valign="top"><input type="radio" id="TEMPLATE<?=$i?>" name="TEMPLATE" value="<?=$arTemplate["PATH"]?>"<?if($str_TEMPLATE==$arTemplate["PATH"]) echo "checked"?>></td>
      <td>
        <label for="TEMPLATE<?=$i?>" title="<?=$arTemplate["DESCRIPTION"]?>"><?=(strlen($arTemplate["NAME"])>0?$arTemplate["NAME"]:GetMessage("rub_no_name"))?></label><br>
        <?if(IsModuleInstalled("fileman")):?>
          <a title="<?=GetMessage("rub_manage")?>" href="/bitrix/admin/fileman_admin.php?path=<?=urlencode("/".$arTemplate["PATH"])?>"><?=$arTemplate["PATH"]?></a>
        <?else:?>
          <?=$arTemplate["PATH"]?>
        <?endif?>
      </td>
    <?$i++?>
    </tr>
  <?endforeach;?>
    </table></td>
  </tr>
<?else:?>
  <tr>
    <td colspan="2"><?=GetMessage("rub_no_templates")?></td>
  </tr>
<?endif?>
  <tr class="heading">
    <td colspan="2"><?echo GetMessage("rub_post_fields")?></td>
  </tr>
  <tr>
    <td><span class="required">*</span><?echo GetMessage("rub_post_fields_from")?></td>
    <td><input type="text" name="FROM_FIELD" value="<?echo $str_FROM_FIELD;?>" size="30" maxlength="255"></td>
  </tr>
<?
// завершение формы - вывод кнопок сохранения изменений
$tabControl->Buttons(
  array(
    "disabled"=>($POST_RIGHT<"W"),
    "back_url"=>"rubric_admin.php?lang=".LANG,

  )
);
?>
<input type="hidden" name="lang" value="<?=LANG?>">
<?if($ID>0 && !$bCopy):?>
  <input type="hidden" name="ID" value="<?=$ID?>">
<?endif;?>
<?
// завершаем интерфейс закладок
$tabControl->End();
?>

<?
// дополнительное уведомление об ошибках - вывод иконки около поля, в котором возникла ошибка
$tabControl->ShowWarnings("post_form", $message);
?>

<?
// дополнительно: динамическая блокировка закладки, если требуется.
?>
<script language="JavaScript">
<!--
  if(document.post_form.AUTO.checked)
    tabControl.EnableTab('edit2');
  else
    tabControl.DisableTab('edit2');
//-->
</script>

<?
// информационная подсказка
echo BeginNote();?
>
<span class="required">*</span><?echo GetMessage("REQUIRED_FIELDS")?>
<?echo EndNote();?>

<?
// завершение страницы
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
?>


Создание собственных закладок форм

Описание

Разберем создание собственных закладок для многостраничных форм в административном интерфейсе.

Для подключения собственных закладок нужно

  1. Реализовать обработчики закладки в виде класса или набора функций;
  2. Зарегистрировать событие посредством AddeventHandler или RegisterModuleDependencies.

Класс должен содержать следующие методы:

  • Описательный метод OnInit(), возвращающий массив с наименованиями или callback-массивами остальных методов. Массив должен содержать следующие ключи:
    • TABSET - идентификатор набора закладок;
    • GetTabs - callback-массив вызова метода, описывающего закладки;
    • ShowTab - callback-массив вызова метода, возвращающего HTML-код страницы формы по идентификатору закладки;
    • Action - callback-массив вызова метода, обрабатывающего данные, полученные из формы;
    • Check - callback-массив вызова метода, проверяющего данные, полученные из формы.
  • Все методы, перечисленные в списке, возвращаемом OnInit()
  • Любые дополнительные методы, используемые в вышеперечисленных.

Примерная структура класса, реализующего собственные закладки

<?
class CCustomOETabs
{
  function OnInit()
  {
    return array(
      "TABSET" => "YYY",
      "GetTabs" => array("CCustomOETabs", "GetTabs"),
      "ShowTab" => array("CCustomOETabs", "ShowTab"),
      "Action" => array("CCustomOETabs", "Action"),
      "Check" => array("CCustomOETabs", "Check"),
    );
  }

  function Action($arArgs)
  {
     // Основные данные сохранены. Делаем тут действия.
     // Возвращаем True в случае успеха и False - в случае ошибки
     // В случае ошибки делаем так же $GLOBALS["APPLICATION"]-> ThrowException("Ошибка!!!", "ERROR");
  }

  function Check($arArgs)
  {
     // Основные данные ещё не сохранялись. Делаем тут разные чеки.
     // Возвращаем True, если можно все схранять, иначе False
     // В случае False делаем так же $GLOBALS["APPLICATION"]-> ThrowException("Ошибка!!!", "ERROR");
  }

  function GetTabs($arArgs)
  {
     // SORT - после какого стандартного таба вставлять. Не установлено - после последнего
    $arTabs = array(
      array("DIV" => "edit1", "TAB" => "Собственная закладка 1", "ICON" => "sale", "TITLE" => "Собственная закладка 1", "SORT" => 1),
    );
    return $arTabs;
  }

  function ShowTab($divName, $arArgs, $bVarsFromForm)
  {
    if ($divName == "edit1")
    {
      ?>
      <tr>
        <td width="40%">Собственное поле 1:</td>
        <td width="60%"><input type="text" name="custom_field_1"></td>
      </tr>
      <?
    }
  }
}

Все методы, кроме ShowTab() получают на вход массив аргументов, задаваемых при помощи конструктора класса CAdminTabEngine или при помощи метода CAdminTabEngine::SetArgs(). Формат массива, который должен возвращать метод GetTabs описан здесь.


Для разработчиков

Класс | Описание | С версии
CAdminContextMenu | Меню на страницах панели управления | 5.0.0
CAdminException | Класс-наследник, расширяющий возможности класса. | 5.0.0
CAdminFilter | Класс для работы с фильтром списка результатов на странице панели управления. | 5.0.0
CAdminList | Класс для работы со списком результатов на странице панели управления. | 5.0.0
CAdminListRow | Класс для работы со строками списка результатов на странице панели управления. | 5.0.0
CAdminMessage | Класс для работы с сообщениями на страницах панели управления. | 5.0.0
CAdminResult | Класс-потомок класса CDBResult, изменяющий некоторые методы для адаптации к использованию в скриптах панели управления. | 5.0.0
CAdminSorting | Дескриптор сортировки таблицы списка элементов | 5.0.0
CAdminTabControl | Класс для работы с многостраничными формами | 5.0.0
CAdminTabEngine | Класс для работы собственными закладками форм. | 5.1.9


Класс CAdminContextMenu

CAdminContextMenu - меню на страницах панели управления.

Методы для работы с фильтром

Метод | Описание | С версии
CAdminContextMenu | Конструктор класса. |
Show | Вывод меню. |

Пример работы с меню

Работа с меню описана в руководстве по созданию административных страниц.


Конструктор CAdminContextMenu

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminContextMenu>Конструктор CAdminContextMenu (5.0.0)

CAdminContextMenu::Конструктор CAdminContextMenu

Описание и параметры

object
CAdminContextMenu(
    array $arMenu,
    additional_items = array(),
    onclick=""
)

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

Параметры функции

Параметр | Описание | С версии
arMenu Массив ключей:
Ключ | Описание
TEXT | Текст пункта меню.
TITLE | Текст всплывающей подсказки пункта меню.
LINK | Ссылка на кнопке.
LINK_PARAM | Дополнительные параметры ссылки (напрямую подставляются в тэг <A>).
ICON | CSS-класс иконки действия.
HTML | Задание пункта меню напрямую HTML-кодом.
SEPARATOR | Разделитель между пунктами меню (true|false).
NEWBAR | Новый блок элементов меню (true|false).
MENU | Создание выпадающего подменю. Значение задается аналогично контекстному меню строки таблицы.
additional_items | массив дополнительных ключей | 12.0.0
onclick | 12.0.0

Пример

// сформируем меню из одного пункта - добавление рассылки
$aContext = array(
  array(
    "TEXT"=>GetMessage("POST_ADD"),
    "LINK"=>"rubric_edit.php?lang=".LANG,
    "TITLE"=>GetMessage("POST_ADD_TITLE"),
    "ICON"=>"btn_new",
  ),
);

// и прикрепим его к списку
$oMenu = new CAdminContextMenu($aContext);
$oMenu->Show();


Show

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminContextMenu>Show (5.0.0)

CAdminContextMenu::Show

void
CAdminContextMenu::Show(
)

Выводит предварительно сконфгурированное меню.

Пример

// сформируем меню из одного пункта - добавление рассылки
$aContext = array(
  array(
    "TEXT"=>GetMessage("POST_ADD"),
    "LINK"=>"rubric_edit.php?lang=".LANG,
    "TITLE"=>GetMessage("POST_ADD_TITLE"),
    "ICON"=>"btn_new",
  ),
);

// и прикрепим его к списку
$oMenu = new CAdminContextMenu($aContext);
$oMenu->Show();


Класс CAdminException

CAdminException - класс-наследник, расширяющий возможности класса CApplicationException для административного использования.

Изменения связаны с возможностью обработки множественных сообщений об ошибках.

Методы

Метод | Описание | с версии
CAdminException | Конструктор класса. |
GetMessages | Получение списка сообщений об ошибках. |
AddMessage | Добавление сообщения об ошибке в список. |


Конструктор CAdminException

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminException>Конструктор CAdminException (5.0.0)

CAdminException::Конструктор CAdminException

object
CAdminException(
  array $arMessages[,
  string $id = false]
)

Конструктор класса принимает на вход массив сообщений. Каждое сообщение представляет собой ассоциативный массив вида array("id"=>"Идентификатор_ошибки", "text" => "Текст_ошибки"). Второй параметр вызова конструктора - $id - аналогичен такому же параметру CApplicationException и передается всквозную.


AddMessage

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminException>AddMessage (5.0.0)

CAdminException::AddMessage

void
CAdminException::AddMessage(
  array $arMessage
)

Добавляет сообщение к списку ошибок, зарегистрированных в экземпляре класса. Сообщение принимается в формате array("id"=>"Идентификатор_ошибки", "text" => "Текст_ошибки").

Пример

Пример использования метода на основе функции для проверки изображения:

  function CheckImageType($arImage)
   {
      $e = new CAdminException();

      $min_width = intval(COption::GetOptionString("vidiclub", "min_width", "500"));
      $min_height = intval(COption::GetOptionString("vidiclub", "min_height", "500"));

      $size = getimagesize($arImage["tmp_name"]);

      if (!$size)
      {
         $error[] = "NO_FILE";
      }
      elseif ($size["mime"] == "image/jpeg"      // Допустимые типы файлов
         && $size[0] >= $min_width         // Минимальная ширина
         && $size[1] >= $min_height         // Минимальная высота
      )
      {
         // Рисунок удовлетворяет базовым требованиям
      }
      else
      {
         // Рисунок не удовлетворяет
         if ($size["mime"] != "image/jpeg")
         {
            $errors[] = "FILETYPE";
         }
         else
         {
            if ($size["0"] < $min_width)
               $errors[] = "MIN_WIDTH";

            if ($size["1"])
               $errors[] = "MIN_HEIGHT";
         }
      }

      // Ошибка. Генерируем исключения.
      if (!empty($errors))
      {
         foreach ($errors as $error_code)
         {
            switch ($error_code)
            {
               case "FILETYPE":
                  $e->AddMessage(array("text" => "Недопустимый тип файла. Принимаются только файлы в формате JPEG."));
                  break;

               case "MIN_WIDTH":
                  $min_width = COption::GetOptionString("vidiclub", "min_width", "500");
                  $e->AddMessage(array("text" => "Ширина фотографии должна быть больше чем ".$min_width." пикселей."));
                  break;

               case "MIN_HEIGHT":
                  $min_height = COption::GetOptionString("vidiclub", "min_height", "500");
                  $e->AddMessage(array("text" => "Высота фотографии должна быть больше чем ".$min_height." пикселей."));
                  break;
               case "NO_FILE":
                  $e->AddMessage(array("text" => "Вы забыли приложить фотографию."));
                  break;
               default:
                  $e->AddMessage(array("text" => "Неизвестная ошибка. Обратитесь к разработчику."));
                  break;
            }
         }
         return $e;
      }
      else
         return true;
   }


GetMessages

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminException>GetMessages (5.0.0)

CAdminException::GetMessages

array
CAdminException::GetMessages(
)

Возвращает массив ошибок, переданных экземпляру класса.


Класс CAdminFilter

Описание и методы

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

Методы для работы с фильтром

Метод | Описание | С версии
CAdminFilter | Конструктор класса. |
Begin | Вывод шапки фильтра. |
Buttons | Вывод кнопок фильтра. |
End | Завершение вывода фильтра. |

Пример работы с фильтром

Предварительная работа с фильтром осуществляется следующим образом:

// опишем элементы фильтра
$FilterArr = Array(
    "find_id",
    "find_lid",
    "find_active",
    "find_visible",
    "find_auto",
    );

// инициализируем фильтр
$lAdmin->InitFilter($FilterArr);

// если все значения фильтра корректны, обработаем его
{
    // создадим массив фильтрации для выборки CRubric::GetList() на основе значений фильтра
    $arFilter = Array(
        "ID"		=> $find_id,
        "LID"		=> $find_lid,
        "ACTIVE"	=> $find_active,
        "VISIBLE"	=> $find_visible,
        "AUTO"		=> $find_auto,
    );
}

// далее, полученный массив передаем в CRubric::GetList()

Для вывода фильтра требуется сперва создать экземпляр класса CAdminFilter, передав ему список полей, а затем сформировать форму фильтра "вручную".

// создадим объект фильтра
$oFilter = new CAdminFilter(
  $sTableID."_filter",
  array(
    "ID",
    GetMessage("rub_f_site"),
    GetMessage("rub_f_active"),
    GetMessage("rub_f_public"),
    GetMessage("rub_f_auto"),
  )
);
?>
<form name="find_form" method="get" action="<?echo $APPLICATION->GetCurPage();?>">
<?$oFilter->Begin();?>
<tr>
  <td><?="ID"?>:</td>
  <td>
    <input type="text" name="find_id" size="47" value="<?echo htmlspecialchars($find_id)?>">
  </td>
</tr>
<tr>
  <td><?=GetMessage("rub_f_site").":"?></td>
  <td><input type="text" name="find_lid" size="47" value="<?echo htmlspecialchars($find_lid)?>"></td>
</tr>
<tr>
  <td><?=GetMessage("rub_f_active")?>:</td>
  <td>
    <?
    $arr = array(
      "reference" => array(
        GetMessage("POST_YES"),
        GetMessage("POST_NO"),
      ),
      "reference_id" => array(
        "Y",
        "N",
      )
    );
    echo SelectBoxFromArray("find_active", $arr, $find_active, GetMessage("POST_ALL"), "");
    ?>
  </td>
</tr>
<tr>
  <td><?=GetMessage("rub_f_public")?>:</td>
  <td><?echo SelectBoxFromArray("find_visible", $arr, $find_visible, GetMessage("POST_ALL"), "");?></td>
</tr>
<tr>
  <td><?=GetMessage("rub_f_auto")?>:</td>
  <td><?echo SelectBoxFromArray("find_auto", $arr, $find_auto, GetMessage("POST_ALL"), "");?></td>
</tr>
<?
$oFilter->Buttons(array("table_id"=>$sTableID,"url"=>$APPLICATION->GetCurPage(),"form"=>"find_form"));
$oFilter->End();
?>
</form>


Конструктор CAdminFilter

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminFilter>Конструктор CAdminFilter (5.0.0)

CAdminFilter::Конструктор CAdminFilter

object
CAdminFilter(
    string $ID[,
    array $arPopup = false]
)

Конструктор класса фильтра.

Параметры

Параметр | Описание
ID | Идентификатор фильтра, уникальный в пределах страницы.
arPopup | Массив названий полей фильтра.


Begin

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminFilter>Begin (5.0.0)

CAdminFilter::Begin

void
CAdminFilter::Begin(
)

Выводит заголовок формы фильтра.


Buttons

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminFilter>Buttons (5.0.0)

CAdminFilter::Buttons

void
CAdminFilter::Buttons(
  mixed $arParams = false
)

Кнопки управления формы фильтра.

Параметры

Параметр Описание
arParams Необязательный массив параметров. Возможные ключи массива:
  • url - путь к странице-обработчику фильтра. По умолчанию - текущая страница;
  • table_id - идентификатор таблицы списка;
  • report - используется на страницах с отчетами. По умолчанию - false.


End

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminFilter>End (5.0.0)

CAdminFilter::End

void
CAdminFilter::End(
)

Выводит заголовок формы фильтра.


Класс CAdminList

CAdminList - класс для работы со списком результатов на странице панели управления.

Методы для работы со списком

Метод | Описание | С версии
CAdminList | Конструктор класса. |
AddHeaders | Установка заголовков таблицы списка. |
AddAdminContextMenu | Установка дополнительного административного меню. |
IsUpdated | Функция, указывающая, были ли произведены какие-либо изменения строк таблицы в режиме редактирования списка. |
EditAction | Функция возвращает true, если было произведено редактирование строк таблицы и требуется сохранение изменений. |
GroupAction | Функция возвращает true, если были совершены групповые операции над строками таблицы и требуется сохранение изменений. |
ActionRedirect | Метод возвращает JavaScript-вызов, осуществляющий переадресацию пользователя на заданную страницу. |
ActionAjaxReload | Метод возвращает JavaScript-вызов, осуществляющий динамическое обновление строк таблицы списка с использованием заданной ссылки. |
ActionDoGroup | Метод возвращает JavaScript-вызов, осуществляющий динамическое обновление строк таблицы списка с использованием автоматически сгенерированной ссылки на основе заданных параметров. |
ActionPost | Метод возвращает JavaScript-вызов, осуществляющий переадресацию пользователя на заданную страницу методом POST. |
CheckListMode | Метод проверяет требуемый тип вывода списка и осуществляет вывод, если требуется вывод списка посредством AJAX или в виде Excel-таблицы. |
InitFilter | Инициализация фильтра списка. |
AddRow | Добавление новой строки в список. |
AddFooter | Вставка резюме списка. |
Display | Вывод таблицы со списком. |
AddGroupActionTable | Настройка групповых действий над элементами списка. |
DisplayList | Обновление списка из скрипта, вызываемого посредством AJAX. |
AddUpdateError | Добавление сообщения в список ошибок, возникших при сохранении обновленных результатов. |
AddGroupError | Добавление сообщения в список ошибок, возникших в результате групповых действий над элементами. |
AddFilterError | Добавление сообщения в список ошибок, возникших в результате обработки данных фильтра. |

Примеры

Подробный пример описания создания страницы со списком можно увидеть здесь.


Конструктор CAdminList

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>Конструктор CAdminList (5.0.0)

CAdminList::Конструктор CAdminList

object
CAdminList(
    string $ID[,
    mixed $oSort = false]
)

Конструктор класса списка.

Параметры

Параметр | Описание
ID | Уникальный на странице идентификатор таблицы списка.
oSort | Экземпляр класса CAdminSorting. Необязательный параметр.

Пример

$sTableID = "my_list";
$oSort = new CAdminSorting($sTableID, "timestamp_x", "desc");
$lAdmin = new CAdminList($sTableID, $oSort);


ActionAjaxReload

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>ActionAjaxReload (5.0.0)

CAdminList::ActionAjaxReload

string
CAdminList::ActionAjaxReload(
  string $url
)

Метод возвращает строку, которая представляет собой JavaScript-вызов для динамического обновления таблицы списка с использованием заданного URL. Ссылка на скрипт, осуществляющий обновление, задается первым и единственным параметром вызова метода. Скрипт обновления может использовать метод CAdminList::CheckListMode() для проверки типа действия.

Пример

Формирование административного меню списка файлов в модуле "Управление структурой" (fileman)

$defaultEdit = COption::GetOptionString("fileman", "default_edit", "text");

if($FILE_ACCESS > "U")
{
  $arDDMenu = array();

  $isB = false;
  $dbRes = CGroup::GetDropDownList();
  while ($arRes = $dbRes->Fetch())
  {
    if($show_perms_for == $arRes["REFERENCE_ID"])
      $isB = true;

    $arDDMenu[] = array(
      "TEXT" => $arRes["REFERENCE"],
      "ACTION" => $lAdmin->ActionAjaxReload("fileman_admin.php?".$addUrl.
                                           "&site=".UrlEncode($site)."&path=".UrlEncode($path).
                                           "&show_perms_for=".$arRes["REFERENCE_ID"]).';return false;',
      "ICON" =>  ($show_perms_for == $arRes["REFERENCE_ID"] ? "checked" : "" ),
    );
  }

  $arDDMenu[] = array(
    "TEXT" => GetMessage("FILEMAN_ADM_CUR_USER"),
    "ACTION" => $lAdmin->ActionAjaxReload("fileman_admin.php?".$addUrl.
                                                "&site=".UrlEncode($site)."&path=".
                                                UrlEncode($path)."&show_perms_for=0").';return false;',
    "ICON" =>  (!$isB ? "checked" : "" ),
  );

  $aContext = array(
    array(
      "TEXT" => GetMessage("FILEMAN_ADMIN_NEW_FOLDER"),
      "ICON" => "btn_new_folder",
      "LINK" => "fileman_newfolder.php?".$addUrl."&site=".$site."&path=".UrlEncode($path)."",
      "TITLE" => GetMessage("FILEMAN_ADMIN_NEW_FOLDER")
    ),
    array(
      "TEXT" => GetMessage("FILEMAN_ADMIN_NEW_FILE"),
      "ICON" => "btn_new_file",
      "LINK" =>
        ($defaultEdit == 'html'?
          "fileman_html_edit.php?".$addUrl."&site=".$site."&path=".UrlEncode($path)."&new=y"
        :
          (
          $defaultEdit == 'php' && $USER->IsAdmin()?
            "fileman_file_edit.php?".$addUrl."&site=".$site."&full_src=Y&path=".UrlEncode($path)."&new=y"
          :
            "fileman_file_edit.php?".$addUrl."&site=".$site."&path=".UrlEncode($path)."&new=y"
          )
        ),
      "TITLE" => GetMessage("FILEMAN_ADMIN_NEW_FILE")
    ),
    array(
      "TEXT" => GetMessage("FILEMAN_ADMIN_FILE_UPLOAD"),
      "ICON" => "btn_upload",
      "LINK" => "fileman_file_upload.php?".$addUrl."&site=".$site."&path=".UrlEncode($path)."",
      "TITLE" => GetMessage("FILEMAN_ADMIN_FILE_UPLOAD")
    ),
    array(
      "TEXT" => GetMessage("FILEMAN_ADMIN_MENU_ADD"),
      "ICON" => "btn_new_menu",
      "LINK" => "fileman_menu_edit.php?".$addUrl."&site=".$site."&path=".UrlEncode($path)."&new=y",
      "TITLE" => GetMessage("FILEMAN_ADMIN_MENU_ADD")
    ),
    array(
      "NEWBAR" => True
    ),
    array(
      "TEXT" => GetMessage("FILEMAN_ADMIN_FOLDER_PROP"),
      "LINK" => "fileman_folder.php?".$addUrl."&site=".$site."&path=".UrlEncode($path)."",
      "ICON" => "btn_folder_prop",
      "TITLE" => GetMessage("FILEMAN_ADMIN_FOLDER_PROP")
    ),
    array(
      "TEXT" => GetMessage('FILEMAN_SHOW_PRM_FOR'),
      "TITLE" => GetMessage('FILEMAN_SHOW_PRM_FOR'),
      "MENU" => $arDDMenu
    ),
    array(
      "NEWBAR" => True
    ),
  );
}


ActionDoGroup

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>ActionDoGroup (5.0.0)

CAdminList::ActionDoGroup

Описание и параметры

string
CAdminList::ActionDoGroup(
  string $ID,
  string $action_id[,
  string $add_params='']
)

Метод возвращает строку, которая представляет собой JavaScript-вызов для динамического обновления таблицы списка с текущего URL с заданными параметрами. Скрипт обновления может использовать метод CAdminList::CheckListMode() для проверки типа действия.

Параметры

Параметр | Описание
ID | Идентификатор таблицы списка.
action_id | Идентфикатор требуемого действия.
add_params | Сформированная строка дополнительных параметров GET-запроса.

Пример

  // создаем строку. результат - экземпляр класса CAdminListRow
  $row =& $lAdmin->AddRow($f_ID, $arRes);

  // сформируем контекстное меню
  $arActions = Array();

  // удаление элемента
  if ($POST_RIGHT>="W")
    $arActions[] = array(
      "ICON"=>"delete",
      "TEXT"=>GetMessage("rub_del"),
      "ACTION"=>"if(confirm('".GetMessage('rub_del_conf')."')) ".$lAdmin->ActionDoGroup($f_ID, "delete")
    );
  // применим контекстное меню к строке
  $row->AddActions($arActions);


ActionPost

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>ActionPost (5.0.0)

CAdminList::ActionPost

string
CAdminList::ActionPost(
  string $url,
  $action_name = false,
  $action_value = 'Y'
)

Метод возвращает строку, которая представляет собой JavaScript-вызов для совершения переадресации пользователя на заданную страницу методом POST с отправкой формы изменений списка. Ссылка на страницу задается первым параметром вызова метода. Метод может служить, например, для формирования ссылок административного меню страницы или контекстного меню элементов списка. (Второй и третий параметры доступны с версии 12.0.0.)

Пример

  // создаем строку. результат - экземпляр класса CAdminListRow
  $row =& $lAdmin->AddRow($f_ID, $arRes);

  // сформируем контекстное меню
  $arActions = Array();

  if ($Elem["PERMISSION"] > "R")
  {
    $arActions[] = array("SEPARATOR" => true);
    $arActions[] = array(
      "ICON" => "rename",
      "TEXT" => GetMessage("FILEMAN_RENAME_SAVE"),
      "ACTION" => 'setCheckbox(\''.$f_NAME.'\'); if('.$lAdmin->table_id.'.IsActionEnabled(\'edit\')){document.forms[\'form_'.$lAdmin->table_id.'\'].elements[\'action_button\'].value=\'edit\'; '.$lAdmin->ActionPost().'}'
    );
  }

  // применим контекстное меню к строке
  $row->AddActions($arActions);


ActionRedirect

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>ActionRedirect (5.0.0)

CAdminList::ActionRedirect

string
CAdminList::ActionRedirect(
  string $url
)

Метод возвращает строку, которая представляет собой JavaScript-вызов для совершения переадресации пользователя на заданную страницу. Ссылка на страницу задается первым и единственным параметром вызова метода. Метод может служить, например, для формирования ссылок административного меню страницы или контекстного меню элементов списка.

Пример

while($arRes = $rsData->NavNext(true, "f_")):

  // создаем строку. результат - экземпляр класса CAdminListRow
  $row =& $lAdmin->AddRow($f_ID, $arRes);

  // далее настроим отображение значений при просмотре и редактировании списка

  // параметр NAME будет редактироваться как текст, а отображаться ссылкой
  $row->AddInputField("NAME", array("size"=>20));
  $row->AddViewField("NAME", '<a href="rubric_edit.php?ID='.$f_ID.'&lang='.LANG.'">'.$f_NAME.'</a>');

  // параметр LID будет редактироваться в виде выпадающего списка языков
  $row->AddEditField("LID", CLang::SelectBox("LID", $f_LID));

  // параметр SORT будет редактироваться текстом
  $row->AddInputField("SORT", array("size"=>20));

  // флаги ACTIVE и VISIBLE будут редактироваться чекбоксами
  $row->AddCheckField("ACTIVE");
  $row->AddCheckField("VISIBLE");

  // параметр AUTO будет отображаться в виде "Да" или "Нет", полужирным при редактировании
  $row->AddViewField("AUTO", $f_AUTO=="Y"?GetMessage("POST_U_YES"):GetMessage("POST_U_NO"));
  $row->AddEditField("AUTO", "<b>".($f_AUTO=="Y"?GetMessage("POST_U_YES"):GetMessage("POST_U_NO"))."</b>");

  // сформируем контекстное меню
  $arActions = Array();

  // редактирование элемента
  $arActions[] = array(
    "ICON"=>"edit",
    "DEFAULT"=>true,
    "TEXT"=>GetMessage("rub_edit"),
    "ACTION"=>$lAdmin->ActionRedirect("rubric_edit.php?ID=".$f_ID)
  );

  // удаление элемента
  if ($POST_RIGHT>="W")
    $arActions[] = array(
      "ICON"=>"delete",
      "TEXT"=>GetMessage("rub_del"),
      "ACTION"=>"if(confirm('".GetMessage('rub_del_conf')."')) ".$lAdmin->ActionDoGroup($f_ID, "delete")
    );

  // вставим разделитель
  $arActions[] = array("SEPARATOR"=>true);

  // проверка шаблона для автогенерируемых рассылок
  if (strlen($f_TEMPLATE)>0 && $f_AUTO=="Y")
    $arActions[] = array(
      "ICON"=>"",
      "TEXT"=>GetMessage("rub_check"),
      "ACTION"=>$lAdmin->ActionRedirect("template_test.php?ID=".$f_ID)
    );

  // если последний элемент - разделитель, почистим мусор.
  if(is_set($arActions[count($arActions)-1], "SEPARATOR"))
    unset($arActions[count($arActions)-1]);

  // применим контекстное меню к строке
  $row->AddActions($arActions);

endwhile;


AddAdminContextMenu

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>AddAdminContextMenu (5.0.0)

CAdminList::AddAdminContextMenu

void
CAdminList::AddAdminContextMenu([
  array $aMenu = array(),
  bool $bShowExcel = true,
  bool $bShowSettings = true
])

Формирование административного меню страницы.

Параметры

Параметр | Описание | С версии
aMenu | Описательный массив меню. Подробнее см. CAdminContextMenu |
bShowExcel | Добавлять ли в меню кнопку экспорта списка в MS Excel. Необязательный параметр. По умолчанию - true. Кнопка будет добавлена в конец последнего блока элементов меню. |
bShowSettings | Добавлять ли в меню редактирования настроек списка. Необязательный параметр. По умолчанию - true. Кнопка будет добавлена в конец последнего блока элементов меню. | 5.0.5


AddFilterError

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>AddFilterError (5.0.0)

CAdminList::AddFilterError

void
CAdminList::AddFilterError(
  string $strError
)

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

Параметры:

Параметр | Описание
strError | Текст ошибки.


AddFooter

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>AddFooter (5.0.0)

CAdminList::AddFooter

void
CAdminList::AddFooter(
  array $arFooter
)

Метод добавляет строку резюме к таблице списка. Резюме таблицы формируется в виде массива, элементами которого являются ассоциативные массивы с ключами "title" - название параметра - и "value" - значение параметра. Кроме того, ассоциативный массив может содержать элемент с ключом "counter" и значением true. В этом случае, элемент резюме будет счетчиком отмеченных элементов таблицы и значение будет динамически изменяться.

Пример

// резюме таблицы
$lAdmin->AddFooter(
  array(
    array("title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$rsData->SelectedRowsCount()), // кол-во элементов
    array("counter"=>true, "title"=>GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value"=>"0"), // счетчик выбранных элементов
  )
);


AddGroupActionTable

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>AddGroupActionTable (5.0.0)

CAdminList::AddGroupActionTable

Описание и формат входных параметров

void
CAdminList::AddGroupActionTable(
  array $arActions[,
  array $arParams = array()]
)

Метод служит для задания списка доступных групповых операций над элементами списка. Список возможных групповых операций задается в виде массива элементов вида "идентификатор_операции"=>"название_операции".

Формат входных параметров

Список действий

Список действий $arActions может задаваться двумя вариантами. Первый - упрощённый - в виде ассоциативного массива, содержащего пары "идентификатор_действия" => "название_пункта_меню". В этом случае пункт меню будет представлять собой ссылку на текущую страницу с дополнительным GET-параметром action=идентфикатор_действия, который должен обрабатываться на этапе сохранения изменений списка.

Во втором варианте - расширенном - каждый элемент массива $arActions представляет собой ассоциативный массив, содержащий следующие ключи:

Ключ | Описание
action | javascript-код, который будет выполнен при выборе пункта меню
type значение, описывающее внешний вид ссылки действия. Может принимать следующие значения:
  • button - действие будет отображаться в виде кнопки;
  • html - ссылка с текстом, определяемым в параметре value.
Если параметр содержит другое значение, или не определён, то действие будет выводиться в виде элемента выпадающего списка действий.
value | значение определяет подпись действия ("название_пункта_меню" упрощённого варианта).

Оба типа задания списка действий можно использовать в одном массиве $arActions.

arParams

Настройка параметров действий представляет собой ассоциативный массив, который может содержать следующие ключи:

  • disable_action_target флаг, определяющий, будет ли появляться чекбокс "применить ко всем элементам";
  • select_onchange - javascript, который будет выполнен при выборе действия из выпадающего списка.

Пример (упрощённый вариант)

$lAdmin->AddGroupActionTable(Array(
  "delete"    => GetMessage("MAIN_ADMIN_LIST_DELETE"),
  "activate"  => GetMessage("MAIN_ADMIN_LIST_ACTIVATE"),
  "deactivate"=> GetMessage("MAIN_ADMIN_LIST_DEACTIVATE"),
));

Пример (расширенный вариант)

// показ формы с кнопками добавления, ...
$lAdmin->AddGroupActionTable(
  array(
    "delete" => GetMessage("MAIN_ADMIN_LIST_DELETE"),
    "access" => array(
      "action" => "setAccess('".str_replace("'", "\'", $site)."', '".str_replace("'", "\'", $path)."')",
      "value" => "access",
      "name" => GetMessage('FILEMAN_ADMIN_ACCESS_CMD')
    ),
    "copy" => GetMessage("FILEMAN_ADM_COPY"),
    "move" => GetMessage("FILEMAN_ADM_MOVE"),
    "copy2" => array(
      "type" => "html",
      "value" => " ".GetMessage("FILEMAN_ADMIN_IN")." "
    ),
    "copy1" => array(
      "type" => "html",
      "value" => $strHTML
    ),
  ),
  array("select_onchange"=>"this.form.copy_to_button.disabled=this.form.copy_to.disabled=!(this[this.selectedIndex].value == 'copy' || this[this.selectedIndex].value == 'move')")
);


AddGroupError

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>AddGroupError (5.0.0)

CAdminList::AddGroupError

void
CAdminList::AddGroupError(
  string $strError[,
  mixed $ID = false]
)

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

Параметры:

Параметр | Описание
strError | Текст ошибки.
ID | Идентификатор стоки, в которой возникла ошибка. Необязательный.


AddHeaders

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>AddHeaders (5.0.0)

CAdminList::AddHeaders

Описание и параметры

void
CAdminList::AddHeaders(
  array $aHeaders
)

Формирование списка колонок таблицы списка. В качестве параметра указывается массив колонок таблицы. Каждая колонка описывается массивом, содержащим следующие ключи:

Ключ | Описание
id | Идентификатор колонки.
content | Заголовок колонки.
sort | Значение параметра GET-запроса для сортировки.
default | Параметр, показывающий, будет ли колонка по умолчанию отображаться в списке (true|false)

Пример

$lAdmin->AddHeaders(array(
  array(  "id"    =>"ID",
    "content"  =>"ID",
    "sort"     =>"id",
    "default"  =>true,
  ),
  array(  "id"    =>"NAME",
    "content"  =>GetMessage("rub_name"),
    "sort"     =>"name",
    "default"  =>true,
  ),
  array(  "id"    =>"LID",
    "content"  =>GetMessage("rub_site"),
    "sort"     =>"lid",
    "default"  =>true,
  ),
  array(  "id"    =>"SORT",
    "content"  =>GetMessage("rub_sort"),
    "sort"     =>"sort",
    "align"    =>"right",
    "default"  =>true,
  ),
  array(  "id"    =>"ACTIVE",
    "content"  =>GetMessage("rub_act"),
    "sort"     =>"act",
    "default"  =>true,
  ),
  array(  "id"    =>"VISIBLE",
    "content"  =>GetMessage("rub_visible"),
    "sort"     =>"visible",
    "default"  =>true,
  ),
  array(  "id"    =>"AUTO",
    "content"  =>GetMessage("rub_auto"),
    "sort"     =>"auto",
    "default"  =>true,
  ),
  array(  "id"    =>"LAST_EXECUTED",
    "content"  =>GetMessage("rub_last_exec"),
    "sort"     =>"last_executed",
    "default"  =>true,
  ),
));

Пример как в качестве ключа заголовка можно задать выравнивание по горизонтали.

$arHeader = Array(
      array(
         "id" => "PTV_CNT",
         "content" => GetMessage("PTV_CLMN_CNT"),
         "sort" => "ptv_cnt",
         "default" => true,
         "align" => "center",
      ),
   );


AddRow

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>AddRow (5.0.0)

CAdminList::AddRow

Описание и параметры

object CAdminListRow
CAdminList::&AddRow(
  string $ID[,
  array $arRes = Array(),
  mixed $link = false,
  mixed $title = false]
)

Функция добавляет новую строку к таблице. Строка описывается экземпляром класса CAdminListRow. Метод инициализирует новый экземпляр класса и возвращает ссылку на него.

Параметры

Параметр | Описание
ID | Уникальный идентификатор строки.
arRes | Список значений в виде массива "параметр"=>"значение".
link | Ссылка, принимаемая в качестве действия по умолчанию для строки.
title | Текст всплывающей подсказки строки.

Пример

while($arRes = $rsData->NavNext(true, "f_")):

  // создаем строку. результат - экземпляр класса CAdminListRow
  $row =& $lAdmin->AddRow($f_ID, $arRes);

  // далее настроим отображение значений при просмотре и редактировании списка

  // параметр NAME будет редактироваться как текст, а отображаться ссылкой
  $row->AddInputField("NAME", array("size"=>20));
  $row->AddViewField("NAME", '<a href="rubric_edit.php?ID='.$f_ID.'&lang='.LANG.'">'.$f_NAME.'</a>');

  // параметр LID будет редактироваться в виде выпадающего списка языков
  $row->AddEditField("LID", CLang::SelectBox("LID", $f_LID));

  // параметр SORT будет редактироваться текстом
  $row->AddInputField("SORT", array("size"=>20));

  // флаги ACTIVE и VISIBLE будут редактироваться чекбоксами
  $row->AddCheckField("ACTIVE");
  $row->AddCheckField("VISIBLE");

  // параметр AUTO будет отображаться в виде "Да" или "Нет", полужирным при редактировании
  $row->AddViewField("AUTO", $f_AUTO=="Y"?GetMessage("POST_U_YES"):GetMessage("POST_U_NO"));
  $row->AddEditField("AUTO", "<b>".($f_AUTO=="Y"?GetMessage("POST_U_YES"):GetMessage("POST_U_NO"))."</b>");

  // сформируем контекстное меню
  $arActions = Array();

  // редактирование элемента
  $arActions[] = array(
    "ICON"=>"edit",
    "DEFAULT"=>true,
    "TEXT"=>GetMessage("rub_edit"),
    "ACTION"=>$lAdmin->ActionRedirect("rubric_edit.php?ID=".$f_ID)
  );

  // удаление элемента
  if ($POST_RIGHT>="W")
    $arActions[] = array(
      "ICON"=>"delete",
      "TEXT"=>GetMessage("rub_del"),
      "ACTION"=>"if(confirm('".GetMessage('rub_del_conf')."')) ".$lAdmin->ActionDoGroup($f_ID, "delete")
    );

  // вставим разделитель
  $arActions[] = array("SEPARATOR"=>true);

  // проверка шаблона для автогенерируемых рассылок
  if (strlen($f_TEMPLATE)>0 && $f_AUTO=="Y")
    $arActions[] = array(
      "ICON"=>"",
      "TEXT"=>GetMessage("rub_check"),
      "ACTION"=>$lAdmin->ActionRedirect("template_test.php?ID=".$f_ID)
    );

  // если последний элемент - разделитель, почистим мусор.
  if(is_set($arActions[count($arActions)-1], "SEPARATOR"))
    unset($arActions[count($arActions)-1]);

  // применим контекстное меню к строке
  $row->AddActions($arActions);

endwhile;


AddUpdateError

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>AddUpdateError (5.0.0)

CAdminList::AddUpdateError

void
CAdminList::AddUpdateError(
  string $strError[,
  mixed $ID = false]
)

Метод служит для добавления в список ошибок, возникших в процессе сохранения изменений строк таблицы.

Параметры:

Параметр | Описание
strError | Текст ошибки.
ID | Идентификатор стоки, в которой возникла ошибка.


CheckListMode

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>CheckListMode (5.0.0)

CAdminList::CheckListMode

void
CAdminList::CheckListMode(
)

Метод проверяет требуемый тип вывода списка. Если требуется вывод списка посредством AJAX или в виде Excel-таблицы, то выполнение скрипта прерывается и вывод списка осуществляется внутри метода.


Display

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>Display (5.0.0)

CAdminList::Display

void
CAdminList::Display(
)

Метод осуществляет вывод предварительно подготовленного списка.


DisplayList

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>DisplayList (5.0.0)

CAdminList::DisplayList

void
CAdminList::DisplayList(
    $arParams = array()
)

Метод осуществляет вывод предварительно подготовленного списка. В отличие от CAdminList::Display() добавляет к списку все "обрамление" - кнопки, вывод из AJAX и т.д.


EditAction

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>EditAction (5.0.0)

CAdminList::EditAction

bool
CAdminList::EditAction(
)

Функция возвращает true, если было произведено редактирование строк таблицы и требуется сохранение изменений.

Пример

// сохранение отредактированных элементов
if($lAdmin->EditAction() && $POST_RIGHT=="W")
{
    // пройдем по списку переданных элементов
    foreach($FIELDS as $ID=>$arFields)
    {
        // если элементы списка не изменялись - не будем совершать никаких действий
        if(!$lAdmin->EditAction($ID))
            continue;

        // сохраним изменения каждого элемента
        $DB->StartTransaction();
        $ID = IntVal($ID);
        $cData = new CRubric;
        if(($rsData = $cData->GetByID($ID)) && ($arData = $rsData->Fetch()))
        {
            foreach($arFields as $key=>$value)
                $arData[$key]=$value;
            if(!$cData->Update($ID, $arData))
            {
                $lAdmin->AddGroupError(GetMessage("rub_save_error")." ".$cData->LAST_ERROR, $ID);
                $DB->Rollback();
            }
        }
        else
        {
            $lAdmin->AddGroupError(GetMessage("rub_save_error")." ".GetMessage("rub_no_rubric"), $ID);
            $DB->Rollback();
        }
        $DB->Commit();
    }
}


GroupAction

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>GroupAction (5.0.0)

CAdminList::GroupAction

bool
CAdminList::GroupAction(
)

Функция возвращает массив строк которые редактируются.

Пример

// обработка одиночных и групповых действий
if(($arID = $lAdmin->GroupAction()) && $POST_RIGHT=="W")
{
    // если выбрано "Для всех элементов"
    if($_REQUEST['action_target']=='selected')
    {
        $cData = new CRubric;
        $rsData = $cData->GetList(array($by=>$order), $arFilter);
        while($arRes = $rsData->Fetch())
            $arID[] = $arRes['ID'];
    }

    // пройдем по списку элементов
    foreach($arID as $ID)
    {
        if(strlen($ID)<=0)
            continue;
           $ID = IntVal($ID);

        // для каждого элемента совершим требуемое действие
        switch($_REQUEST['action'])
        {
        // удаление
        case "delete":
            @set_time_limit(0);
            $DB->StartTransaction();
            if(!CRubric::Delete($ID))
            {
                $DB->Rollback();
                $lAdmin->AddGroupError(GetMessage("rub_del_err"), $ID);
            }
            $DB->Commit();
            break;

        // активация/деактивация
        case "activate":
        case "deactivate":
            $cData = new CRubric;
            if(($rsData = $cData->GetByID($ID)) && ($arFields = $rsData->Fetch()))
            {
                $arFields["ACTIVE"]=($_REQUEST['action']=="activate"?"Y":"N");
                if(!$cData->Update($ID, $arFields))
                    $lAdmin->AddGroupError(GetMessage("rub_save_error").$cData->LAST_ERROR, $ID);
            }
            else
                $lAdmin->AddGroupError(GetMessage("rub_save_error")." ".GetMessage("rub_no_rubric"), $ID);
            break;
        }

    }
}


InitFilter

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>InitFilter (5.0.0)

CAdminList::InitFilter

void
CAdminList::InitFilter(
  array $arFilterFields
)

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


IsUpdated

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminList>IsUpdated (5.0.0)

CAdminList::IsUpdated

bool
CAdminList::IsUpdated(
  string $ID
)

Функция возвращает true, если какие-либо из строк таблицы были отредактированы при операции редактирования значений элементов списка. В качестве параметра указывается идентификатор таблицы.

Пример

// сохранение отредактированных элементов
if($lAdmin->EditAction() && $POST_RIGHT=="W")
{
    // пройдем по списку переданных элементов
    foreach($FIELDS as $ID=>$arFields)
    {
        // если элементы списка не изменялись - не будем совершать никаких действий
        if(!$lAdmin->IsUpdated($ID))
            continue;

        // сохраним изменения каждого элемента
        $DB->StartTransaction();
        $ID = IntVal($ID);
        $cData = new CRubric;
        if(($rsData = $cData->GetByID($ID)) && ($arData = $rsData->Fetch()))
        {
            foreach($arFields as $key=>$value)
                $arData[$key]=$value;
            if(!$cData->Update($ID, $arData))
            {
                $lAdmin->AddGroupError(GetMessage("rub_save_error")." ".$cData->LAST_ERROR, $ID);
                $DB->Rollback();
            }
        }
        else
        {
            $lAdmin->AddGroupError(GetMessage("rub_save_error")." ".GetMessage("rub_no_rubric"), $ID);
            $DB->Rollback();
        }
        $DB->Commit();
    }
}


Класс CAdminListRow

CAdminListRow - класс для работы со строками списка результатов на странице панели управления. Экземпляр класса генерируется в методе CAdminList::AddRow(), который возвращает ссылку на него.

Методы для работы со строками

Методы класса позволяют настроить способ отображения ячеек строки в режимах просмотра и редактирования списка.

Метод | Описание | С версии
AddField | значение ячейки будет отображаться в заданном виде при просмотре и при редактировании списка. |
AddCheckField | значение ячейки будет редактироваться в виде чекбокса. |
AddSelectField | значение ячейки будет редактироваться в виде выпадающего списка. |
AddInputField | значение ячейки будет редактироваться в виде текстового поля с заданным набором атрибутов. |
AddCalendarField | значение ячейки будет редактироваться в виде поля для ввода даты. |
AddViewField | при просмотре списка значение ячейки будет отображаться в заданном виде. |
AddEditField | при редактировании списка значение ячейки будет отображаться в заданном виде. |
AddActions | формирование контекстного меню строки. |

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

Примеры

Подробный пример описания создания страницы со списком можно увидеть здесь.


AddActions

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminListRow>AddActions (5.0.0)

CAdminListRow::AddActions

Описание и ключи

void
CAdminListRow::AddActions(
  array $arActions
)

Метод позволяет настроить контекстное меню строки списка. Параметры меню задаются массивом (первый и единственный параметр метода), элементы которого представляют собой ассоциативные массивы со следующим набором ключей:

Ключ | Описание
ICON | Имя CSS-класса с иконкой действия.
DISABLED | Флаг "пункт меню заблокирован" (true|false).
DEFAULT | Флаг "пункт меню является действием по умолчанию" (true|false). При двойном клике по строке сработает действие по умолчанию.
TEXT | Название пункта меню.
TITLE | Текст всплывающей подсказки пункта меню.
ACTION | Действие, производимое по выбору пункта меню (Javascript).
SEPARATOR | Вставка разделителя {true|false}. При значении, равном true, остальные ключи пункта меню будут проигнорированы.

Пример

// сформируем контекстное меню
$arActions = Array();

// редактирование элемента
$arActions[] = array(
"ICON"=>"edit",
"DEFAULT"=>true,
"TEXT"=>GetMessage("rub_edit"),
"ACTION"=>$lAdmin->ActionRedirect("rubric_edit.php?ID=".$f_ID)
);

// удаление элемента
if ($POST_RIGHT>="W")
$arActions[] = array(
  "ICON"=>"delete",
  "TEXT"=>GetMessage("rub_del"),
  "ACTION"=>"if(confirm('".GetMessage('rub_del_conf')."')) ".$lAdmin->ActionDoGroup($f_ID, "delete")
);

// вставим разделитель
$arActions[] = array("SEPARATOR"=>true);

// проверка шаблона для автогенерируемых рассылок
if (strlen($f_TEMPLATE)>0 && $f_AUTO=="Y")
$arActions[] = array(
  "ICON"=>"",
  "TEXT"=>GetMessage("rub_check"),
  "ACTION"=>$lAdmin->ActionRedirect("template_test.php?ID=".$f_ID)
);

// если последний элемент - разделитель, почистим мусор.
if(is_set($arActions[count($arActions)-1], "SEPARATOR"))
unset($arActions[count($arActions)-1]);

// применим контекстное меню к строке
$row->AddActions($arActions);


AddCalendarField

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminListRow>AddCalendarField (5.0.0)

CAdminListRow::AddCalendarField

Описание и параметры

void
CAdminListRow::AddCalendarField(
  string $ID[,
  array $arAttributes = array()],
  useTime = false
)

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

Параметры

Параметр | Описание
ID | Идентификатор ячейки.
arAttributes | Массив дополнительных атрибутов тэга INPUT в виде "атрибут" => "значение".
useTime | Если поставить в true, то календарь предложит ввести время. По умолчанию false.

Пример

$row->AddCalendarField(
    "DATE",
    array(
        "size" => "15"
    )
);


AddCheckField

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminListRow>AddCheckField (5.0.0)

CAdminListRow::AddCheckField

Описание и параметры

void
CAdminListRow::AddCheckField(
  string $ID
)

Метод позволяет настроить отображение поля списка в режиме редактирования в виде чекбокса. Чекбокс будет включенным, если значение ячейки равно 'Y'.

Параметры

Параметр | Описание
ID | Идентификатор ячейки.

Пример

// флаги ACTIVE и VISIBLE будут редактироваться чекбоксами
$row->AddCheckField("ACTIVE");
$row->AddCheckField("VISIBLE");


AddEditField

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminListRow>AddEditField (5.0.0)

CAdminListRow::AddEditField

Описание и параметры

void
CAdminListRow::AddEditField(
  string $ID,
  string $HTML
)

Метод позволяет настроить отображение поля списка в режиме редактирования.

Параметры

Параметр | Описание
ID | Идентификатор ячейки.
HTML | HTML-код, выводимый в ячейку таблицы.

Пример

// параметр AUTO будет отображаться в виде "Да" или "Нет", полужирным при редактировании
$row->AddViewField("AUTO",
                   $f_AUTO=="Y"?GetMessage("POST_U_YES"):GetMessage("POST_U_NO"));
$row->AddEditField("AUTO",
                   "<b>".($f_AUTO=="Y"?GetMessage("POST_U_YES"):GetMessage("POST_U_NO"))."</b>");


AddField

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminListRow>AddField (5.0.0)

CAdminListRow::AddField

Описание и параметры

void
CAdminListRow::AddField(
  string $ID,
  string $HTML[,
  bool $edit = false]
)

Метод позволяет настроить отображение поля списка в режимах просмотра и редактирования.

Параметры

Параметр | Описание
ID | Идентификатор ячейки.
HTML | HTML-код отображения содержимого ячейки в режиме просмотра списка.
edit | Будет ли значение ячейки редактироваться. Необязательный параметр. По умолчанию - false (не редактируется).

Пример

$row->AddField(
    "ID",
    '<a href="/bitrix/admin/blog_blog_edit.php?ID='.$f_ID.'&lang='.LANGUAGE_ID.'" title="'.GetMessage("BLB_UPDATE_ALT").'">'
    .$f_ID
    .'</a>'
);


AddInputField

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminListRow>AddInputField (5.0.0)

CAdminListRow::AddInputField

Описание и параметры

void
CAdminListRow::AddInputField(
  string $ID[,
  array $arAttributes = array()]
)

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

Параметры

Параметр | Описание
ID | Идентификатор ячейки.
arAttributes | Массив дополнительных атрибутов тэга INPUT в виде "атрибут" => "значение".

Пример

// параметр NAME будет редактироваться как текст, а отображаться ссылкой
$row->AddInputField("NAME",
                    array("size"=>20));
$row->AddViewField("NAME",
                   '<a href="rubric_edit.php?ID='.$f_ID.
                   '&lang='.LANG.'">'.$f_NAME.'</a>');


AddSelectField

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminListRow>AddSelectField (5.0.0)

CAdminListRow::AddSelectField

Описание и параметры

void
CAdminListRow::AddSelectField(
  string $ID,
  array $arValues[,
  array $arAttributes = array()]
)

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

Параметры

Параметр | Описание
ID | Идентификатор ячейки.
arValues | Массив значений элементов выпадающего списка в виде "значение" => "наименование"
arAttributes | Массив дополнительных атрибутов тэга SELECT в виде "атрибут" => "значение".

Пример

$arStatusList = array(
    "Draft" => GetMessage("STATUS_DRAFT"),
    "Published" => GetMessage("STATUS_PUBLISHED"),
);

$row->AddSelectField(
    "STATUS",
    $arStatusList
);


AddViewField

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminListRow>AddViewField (5.0.0)

CAdminListRow::AddViewField

Описание и параметры

void
CAdminListRow::AddViewField(
  string $ID,
  string $HTML
)

Метод позволяет настроить отображение поля списка в режиме просмотра.

Параметры

Параметр | Описание
ID | Идентификатор ячейки.
HTML | HTML-код, выводимый в ячейку таблицы.

Пример

// параметр NAME будет редактироваться как текст, а отображаться ссылкой
$row->AddInputField("NAME", array("size"=>20));
$row->AddViewField("NAME", '<a href="rubric_edit.php?ID='.$f_ID.'&lang='.LANG.'">'.$f_NAME.'</a>');


Класс CAdminMessage

CAdminMessage - класс для работы с сообщениями на страницах панели управления.

Методы для работы с сообщениями

Методы класса:

Метод | Описание | С версии
CAdminMessage | Конструктор класса. |
Show | Вывод сообщения. |
GetMessages | Получение списка сообщений. |

Методы, не требующие создания экземпляра класса:

Метод | Описание | С версии
ShowNote | Вывод замечания. |
ShowMessage | Вывод сообщения об ошибке. |


Конструктор CAdminMessage

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminMessage>Конструктор CAdminMessage (5.0.0)

CAdminMessage::Конструктор CAdminMessage

Описание и параметры

object
CAdminMessage(
    array $arMessage[,
    mixed $exception = false]
)

Конструктор класса CAdminMessage.

Параметры:

Параметр | Описание
arMessage Массив, содержащий следующие ключи:
  • MESSAGE - текст сообщения,
  • TYPE - тип сообщения ("ERROR" - сообщение об ошибке; "OK" - уведомление),
  • DETAILS - подробное описание,
  • HTML - выводить текст ошибки напрямую, или обрабатывать (true|false)
exception | Экземпляр класса CApplicationException. Если не задано подробное описание ошибки, оно берется из него.

Пример

if($strError)
{
  $aMsg = array();
  $arrErr = explode("<br />",$strError);
  reset($arrErr);
  while (list(,$err)=each($arrErr)) $aMsg[]['text']=$err;

  $e = new CAdminException($aMsg);
  $GLOBALS["APPLICATION"]->ThrowException($e);
  $message = new CAdminMessage(GetMessage("FORM_ERROR_SAVE"), $e);
  echo $message->Show();
}


GetMessages

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminMessage>GetMessages (5.0.0)

CAdminMessage::GetMessages

array
CAdminMessage::GetMessages(
)

Получение списка сообщений. При создании экземпляра класса CAdminMessage в качестве второго параметра должен быть передан экземпляр класса CAdminException.


Show

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminMessage>Show (5.0.0)

CAdminMessage::Show

string
CAdminMessage::Show(
)

Вывод подготовленного сообщения.

Пример:

if($ex = $APPLICATION->GetException())
{
  $message = new CAdminMessage(GetMessage("FORM_ERROR_SAVE"), $ex);
  echo $message->Show();
}


ShowMessage

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminMessage>ShowMessage (5.0.0)

CAdminMessage::ShowMessage

string
CAdminMessage::ShowMessage(
    string $message
)

Вывод сообщения об ошибке.

Пример:

if (strlen(strError) > 0)
{
  echo CAdminMessage::ShowMessage($strError);
}

Пример с прогресс-баром

         CAdminMessage::ShowMessage(array(
            "MESSAGE"=>"Отправка уведомлений",
            "DETAILS"=> "#PROGRESS_BAR#",
            "HTML"=>true,
            "TYPE"=>"PROGRESS",
            "PROGRESS_TOTAL" => 100,
            "PROGRESS_VALUE" => 25,
         ));


ShowNote

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminMessage>ShowNote (5.0.0)

CAdminMessage::ShowNote

string
CAdminMessage::ShowNote(
  string $message
)

Вывод уведомления.

Пример:

echo CAdminMessage::ShowNote('Не нажимайте кнопки "Назад" и "Обновить" Вашего браузера!');


Класс CAdminResult

CAdminResult - класс-потомок класса CDBResult, изменяющий некоторые методы для адаптации к использованию в скриптах панели управления. Работа с ним осуществляется аналогично CDBResult.


Класс CAdminSorting

Класс CAdminSorting представляет собой дескриптор сортировки таблицы списка элементов на страницах панели управления.

Методы

Метод | Описание | С версии
CAdminSorting | Конструктор класса. |

Пример работы с сортировками

Работа сортировок описана в руководстве по созданию административных страниц.


Конструктор CAdminSorting

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminSorting>Конструктор CAdminSorting (5.0.0)

CAdminSorting::Конструктор CAdminSorting

Описание и параметры

object
CAdminSorting(
   string $table_id,
   mixed $by_initial = false,
   mixed $order_initial = false,
   string $by_name = "by",
   string $order_name = "order"
)

Класс описывает параметры сортировки строки таблицы списка элементов на административной странице по любой из колонок, для которых предусмотрена сортировка. Настройка сортировки по колонкам осуществляется при помощи CAdminList::AddHeaders().

Параметры

Параметр | Описание
table_id | Идентификатор таблицы.
by_inital | Идентификатор колонки, по которой идет сортировка по умолчанию.
order_inital | Направление сортировки по умолчанию ({'asc'|'desc'}).
by_name | Имя GET-переменной, в которой будет содержаться идентификатор колонки, по которой производится сортировка. Не обязательный параметр. По умолчанию - 'by'
order_name | Имя GET-переменной, в которой будет содержаться направление сортировки. Не обязательный параметр. По умолчанию - 'order'

Инициализированный экземпляр класса сортировки передается конструктору класса CAdminList. Дальнейшая подготовка осуществляется автоматически и не требует вмешательства.

Пример

$sTableID = "tbl_rubric"; // ID таблицы
$oSort = new CAdminSorting($sTableID, "ID", "desc"); // объект сортировки
$lAdmin = new CAdminList($sTableID, $oSort); // основной объект списка


Класс CAdminTabControl

CAdminTabControl - класс для работы с многостраничными формами с переключением посредством закладок на странице панели управления.

Методы для работы со закладками:

Метод | Описание | С версии
CAdminTabControl | Конструктор класса. |
AddTabs | Добавление собственных закладок. |
Begin | Вывод закладок и начало первой страницы. |
BeginNextTab | Завершение предыдущей закладки, если она есть, и начало новой. |
EndTab | Завершение закладки. |
Buttons | Добавление кнопок отправки формы. |
End | Завершение вывода закладок. |
ActiveTabParam | Метод возвращает имя и значение GET-переменной, содержащее имя вкладки, которая будет активной сразу при загрузке страницы. |
ShowWarnings | Показ сообщений об ошибках возникших в процессе обработки формы, с выделением полей формы, значения которых ошибочны. |

Примеры

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


Конструктор CAdminTabControl

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabControl>Конструктор CAdminTabControl (5.0.0)

CAdminTabControl::Конструктор CAdminTabControl

Описание, параметры и ключи

object
CAdminTabControl(
   string $NAME,
   array $aTabs[,
   bool $bCanExpand = true],
   bDenyAutoSave = false
)

Конструктор класса, реализующего механизм форм, разбитых на страницы, динамически переключаемые закладками.

Параметры

Параметр | Описание | С версии
NAME | Уникальный в рамках страницы идентификатор. |
aTabs | Массив, описывающий список закладок. Формат массива см. ниже. | 5.0.6
bCanExpand | Флаг, означающий возможность развернуть страницы в одну. Необязательный параметр. По умолчанию - true - можно развернуть. | 7.0.0
DenyAutoSave | Необязательный. | 11.0.1

Конфигурация закладок задается в виде массива, элементами которого являются ассоциативные массивы, которые могут иметь следующие ключи:

Ключ | Описание
DIV | Уникальный идентификатор закладки.
TAB | Текст, помещаемый на закладку.
TITLE | Описание страницы, к которой ведет закладка.
ICON | CSS-класс иконки, выводимой рядом с описанием страницы.
ONSELECT | JavaScript-сценарий, который будет выполнен при переключении на закладку.
CONTENT | Содержимое вкладки на форме (обработка этого ключа добавлена в ядре 9.5.10)

Пример

$aTabs = array(
  array("DIV" => "edit1",
        "TAB" => GetMessage("rub_tab_rubric"),
        "ICON"=>"main_user_edit",
        "TITLE"=>GetMessage("rub_tab_rubric_title")),
  array("DIV" => "edit2",
        "TAB" => GetMessage("rub_tab_generation"),
        "ICON"=>"main_user_edit",
        "TITLE"=>GetMessage("rub_tab_generation_title")),
);
$tabControl = new CAdminTabControl("tabControl", $aTabs);


ActiveTabParam

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabControl>ActiveTabParam (5.0.0)

CAdminTabControl::ActiveTabParam

string
CAdminTabControl::ActiveTabParam(
)

Возвращает имя и значение GET-переменной, содержащей имя вкладки, которая будет активной сразу при загрузке страницы.

Пример

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

if (strlen($strError)<=0)
{
  // если была нажат кнопка "Сохранить", отправим к списку
  if (strlen($save)>0)
    LocalRedirect("form_field_list.php?WEB_FORM_ID=".
                  $WEB_FORM_ID."&additional=".
                  $additional."&lang=".LANGUAGE_ID);
  // если "Применить" - назад на форму с открытой последней вкладкой.
  else
    LocalRedirect("form_field_edit_simple.php?".$tabControl->ActiveTabParam().
                  "&ID=".$ID."&WEB_FORM_ID=".$WEB_FORM_ID."&additional=".
                  $additional."&lang=".LANGUAGE_ID);
}


AddTabs

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabControl>AddTabs (5.1.9)

CAdminTabControl::AddTabs

void
CAdminTabControl::AddTabs(
  CAdminTabEngine &$customTabber
)

Добавляет пользовательские страницы с закладками закладки к форме. В качестве параметра принимается экземпляр класса CAdminTabEngine. Подробнее про создание собственных форм с закладками см. здесь.

Пример

$customTabber = new CAdminTabEngine("OnAdminIBlockElementEdit", array("ID" => $ID));

// ..........................

$tabControl = new CAdminTabControl("tabControl", $aTabs);
$customTabber->SetErrorState($bVarsFromForm);
$tabControl->AddTabs($customTabber);


Begin

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabControl>Begin (5.0.0)

CAdminTabControl::Begin

void
CAdminTabControl::Begin(
)

Выводит строку закладок и начинает первую страницу.

Пример

<?
$aTabs = array(
  array("DIV" => "edit1",
        "TAB" => GetMessage("rub_tab_rubric"),
        "ICON"=>"main_user_edit",
        "TITLE"=>GetMessage("rub_tab_rubric_title")),
  array("DIV" => "edit2",
        "TAB" => GetMessage("rub_tab_generation"),
        "ICON"=>"main_user_edit",
        "TITLE"=>GetMessage("rub_tab_generation_title")),
);
$tabControl = new CAdminTabControl("tabControl", $aTabs);
?>
<?
// отобразим заголовки закладок
$tabControl->Begin();
?>


BeginNextTab

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabControl>BeginNextTab (5.0.0)

CAdminTabControl::BeginNextTab

void
CAdminTabControl::BeginNextTab(
)

Завершает предыдущую закладку, если она есть, и начинает следующую.

Пример

<?
// отобразим заголовки закладок
$tabControl->Begin();
?>
<?
//********************
// первая закладка - форма редактирования параметров рассылки
//********************
$tabControl->BeginNextTab();
?>
  <tr>
    <td width="40%"><?echo GetMessage("rub_act")?></td>
    <td width="60%"><input type="checkbox" name="ACTIVE" value="Y"<?if($str_ACTIVE == "Y") echo " checked"?>></td>
  </tr>
  <tr>
    <td><?echo GetMessage("rub_visible")?></td>
    <td><input type="checkbox" name="VISIBLE" value="Y"<?if($str_VISIBLE == "Y") echo " checked"?>></td>
  </tr>
  <tr>
    <td><?echo GetMessage("rub_site")?></td>
    <td><?echo CLang::SelectBox("LID", $str_LID);?></td>
  </tr>
  <tr>
    <td><span class="required">*</span><?echo GetMessage("rub_name")?></td>
    <td><input type="text" name="NAME" value="<?echo $str_NAME;?>" size="30" maxlength="100"></td>
  </tr>
  <tr>
    <td><?echo GetMessage("rub_sort")?></td>
    <td><input type="text" name="SORT" value="<?echo $str_SORT;?>" size="30"></td>
  </tr>
  <tr>
    <td><?echo GetMessage("rub_desc")?></td>
    <td><textarea class="typearea" name="DESCRIPTION" cols="45" rows="5" wrap="VIRTUAL"><?echo $str_DESCRIPTION; ?></textarea></td>
  </tr>
  <tr>
    <td><?echo GetMessage("rub_auto")?></td>
    <td><input type="checkbox" name="AUTO" value="Y"<?if($str_AUTO == "Y") echo " checked"?> OnClick="if(this.checked) tabControl.EnableTab('edit2'); else tabControl.DisableTab('edit2');"></td>
  </tr>
<?
//********************
// вторая закладка
//********************
$tabControl->BeginNextTab();
?>


Buttons

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabControl>Buttons (5.0.0)

CAdminTabControl::Buttons

Описание и параметры

void
CAdminTabControl::Buttons([
  mixed $arParams = false
])

Выводит стандартные кнопки отправки формы. Если есть открытые закладки - закрывает их.

Параметры

Параметр Описание
arParams Массив дополнительных параметров. Может содержать следующие ключи:
  • disabled - при значении true кнопки отправки формы будут заблокированы.
  • back_url - URL страницы, с которой произошла пересылка на форму. При нажатии кнопки "Отмена" произойдет переход по этому адресу.
Если значение параметра не указано (или указано значение false), то метод закроет все вкладки, не выводя стандартных кнопок отправки. В этом случае их можно создать вручную.

Пример

<?
// завершение формы - вывод кнопок сохранения изменений
$tabControl->Buttons(
  array(
    "disabled" => ($POST_RIGHT < "W"),
    "back_url" => $_REQUEST["back_url"],
  )
);
?>

<?
// завершение формы без вывода кнопок
$tabControl->Buttons();
?>
<input class="mybutton"
       type="submit" name="save"
       value="Нажми меня!!!! ;-)"
       title="Моя кнопка для сохранения" />&nbsp;
<input class="mybutton"
       type="button" name="foo"
       value="И меня тоже нажми!"
       onClick="alert('Hello, world!')" />
<?
$tabControl->End();
?>


End

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabControl>End (5.0.0)

CAdminTabControl::End

void
CAdminTabControl::End(
)

Завершает вывод формы с закладками. Если есть открытые закладки - закрывает их.

Пример

<?
// завершение формы - вывод кнопок сохранения изменений
$tabControl->Buttons(
  array(
    "disabled"=>($POST_RIGHT<"W"),
    "back_url"=>"rubric_admin.php?lang=".LANG,
  )
);
?>
<?
// завершаем интерфейс закладки
$tabControl->End();
?>


EndTab

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabControl>EndTab (5.0.0)

CAdminTabControl::EndTab

void
CAdminTabControl::EndTab(
)

Завершает текущую страницу формы. Вызывается автоматически в CAdminTabControl::BeginNextTab, CAdminTabControl::Buttons и CAdminTabControl::End.


ShowWarnings

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabControl>ShowWarnings (5.0.0, устарел с версии 10.0.0)

CAdminTabControl::ShowWarnings

Описание и параметры

void
CAdminTabControl::ShowWarnings(
    string $FORM,
    CAdminException $messages[,
    mixed $arFields = false]
)

Метод выделяет поля, в которых в процессе обработки формы были выявлены ошибки. Метод устарел.

Параметры

Параметр | Описание
FORM | значение атрибута name тэга формы.
messages | экземпляр класса CAdminException, содержащий сообщения об ошибках.
arFields | Массив соответствий вида "id_параметра_с_ошибкой" => "имя_поля_в_форме". Необязательный параметр. По умолчанию ищутся поля с тем же именем, что и id параметра с ошибкой.

Пример

if($e = $APPLICATION->GetException())
  $message = new CAdminMessage(GetMessage("currency_error"), $e);

if($message)
  echo $message->Show();

<form method="post" action="<?$APPLICATION->GetCurPage()?>" name="form1">

<!-- форма -->

</form>

<?$tabControl->ShowWarnings("form1", $message);?>


Класс CAdminTabEngine

CAdminTabEngine - класс для работы собственными закладками форм. Подробнее про создание собственных форм с закладками см. здесь.

Методы для работы собственными закладками:

Метод | Описание | С версии
CAdminTabEngine | Конструктор класса. |
SetErrorState | Установка значения флага "Данные взяты из формы в результате возникновения ошибки". |
SetArgs | Установка дополнительных аргументов для передачи в обработчик собственных закладок. |
Check | Вызов обработчиков собственных закладок для проверки данных, полученных из формы. |
Action | Вызов обработчиков собственных закладок для совершения действий над данными, полученными из формы. |
GetTabs | Получение конфигурации собственных закладок. |
ShowTab | Вывод страниц формы, соответствующих собственным закладкам. |

Примеры

Подробнее про создание собственных форм с закладками см. здесь.


Конструктор CAdminTabEngine

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabEngine>Конструктор CAdminTabEngine (5.1.9)

CAdminTabEngine::Конструктор CAdminTabEngine

Описание и параметры

object
CAdminTabEngine(
   string $EVENT_NAME[,
   array $aArgs = array()]
)

Конструктор класса, реализующего добавления собственных закладок в многостраничные формы.

Параметры

Параметр | Описание
EVENT_NAME | Имя события, для которого сконфигурированы собственные закладки.
aArgs | Массив дополнительных аргументов, передаваемых обработчикам закладок.

Пример

$customTabber = new CAdminTabEngine("OnAdminSaleOrderEdit", array("ID" => $ID));
$tabControl = new CAdminTabControl("tabControl", $aTabs);
$customTabber->SetErrorState($bVarsFromForm);
$tabControl->AddTabs($customTabber);


Action

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabEngine>Action (5.1.9)

CAdminTabEngine::Action

bool
CAdminTabEngine::Action(
)

Метод вызывает обработчики собственных закладок для обработки данных формы. Если в одном из обработчиков возникла ошибка, остальные все равно вызываются.

Пример

if (!$customTabber->Action())
{
  if ($ex = $APPLICATION->GetException())
    $errorMessage .= $ex->GetString();
  else
    $errorMessage .= "Error. ";
}


Check

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabEngine>Check (5.1.9)

CAdminTabEngine::Check

bool
CAdminTabEngine::Check(
)

Метод вызывает обработчики собственных закладок для проверки данных формы. Если в одном из обработчиков возникла ошибка, остальные все равно вызываются.

Пример

if (!$customTabber->Check())
{
  if ($ex = $APPLICATION->GetException())
    $errorMessage .= $ex->GetString();
  else
    $errorMessage .= "Error. ";
}


GetTabs

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabEngine>GetTabs (5.1.9)

CAdminTabEngine::GetTabs

array
CAdminTabEngine::GetTabs(
)

Метод вызывает обработчики собственных закладок для получения конфигурации закладок. Автоматически вызывается в CAdminTabControl::AddTabs.


SetArgs

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabEngine>SetArgs (5.1.9)

CAdminTabEngine::SetArgs

void
CAdminTabEngine::SetArgs([
  array $arArgs = array()
])

Метод служит для установки дополнительных аргументов, которые будут переданы обработчикам собственных закладок. Аналогично заполнению второго параметра конструктора класса CAdminTabEngine.


SetErrorState

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabEngine>SetErrorState (5.1.9)

CAdminTabEngine::SetErrorState

void
CAdminTabEngine::SetErrorState([
  bool $bVarsFromForm = false
])

Метод служит для установки значения флага "Данные взяты из формы в результате возникновения ошибки". Значение передается обработчикам собственных закладок.

Пример

$customTabber = new CAdminTabEngine("OnAdminSaleOrderEdit", array("ID" => $ID));
$tabControl = new CAdminTabControl("tabControl", $aTabs);
$customTabber->SetErrorState($bVarsFromForm);
$tabControl->AddTabs($customTabber);


ShowTab

...->Главный модуль>Основные сведения>Разработка заказных элементов административного раздела>Классы>CAdminTabEngine>ShowTab (5.1.9)

CAdminTabEngine::ShowTab

void
CAdminTabEngine::ShowTab(
  string $tabName
)

Метод вызывает обработчики собственных закладок для получения HTML-кода страниц. В качестве параметра принимает идентификатор закладки. Автоматически вызывается в CAdminTabControl::BeginNextTab.


Для разработчиков

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

В общем случае система рейтингов устроена так, что все основные расчеты происходят автоматически по внутренним механизмам [image].

Работа с рейтингами реализована через скрытые компоненты. Скрытые компоненты предназначены для использования разработчиками или администраторами. Эти компоненты нельзя размещать через визуальный редактор, а только в виде кода. Вызывать эти компоненты можно внутри других компонентов.


Вывод результатов рейтинга (rating.result)

Описание и параметры

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

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:rating.result","",
          Array(
        "RATING_ID" => "1",
        "ENTITY_ID" => "46",
        "RATING_NAME" => "Рейтинг",
        "CURRENT_VALUE" => "12.7",
        "PREVIOUS_VALUE" => "0.7",
        ),
          null,
          array("HIDE_ICONS" => "Y")
);?>

Описание параметров

Поле | Параметр | Описание
Идентификатор рейтинга | RATING_ID | Указывается название объекта, за которое будет идти голосование (USER, FORUM_POST, BLOG_COMMENT).
Идентификатор оцениваемого объекта | ENTITY_ID | Указывается идентификатор оцениваемого объекта.
Имя рейтинга | RATING_NAME* | Указывается название рейтинга.
Текущий результат | CURRENT_VALUE* | Указывается текущее значение рейтинга.
Предыдущий результат | PREVIOUS_VALUE* | Указывается предыдущее значение рейтинга.

Дополнительная информация

Если параметры, отмеченные звездочкой (*), не указывать, данные будут подгружены автоматически. Рекомендуется указывать параметры для случаев множественного вызова компонента (например, в списке комментариев).
Параметр RATING_NAME можно не указывать даже в случае множественного вызова компонента. Для выборки данных необходимо использовать функцию CRatings::GetRatingResult

Смотрите также:

  • Структура таблицы "Результаты рейтинга"
  • Метод CRatings::GetRatingResult


Вывод рейтингового голосования (rating.vote)

Описание и параметры

Компонент предназначен для вывода элементов рейтингового голосования и его текущих результатов. Компонент скрытый, его нельзя использовать через визуальный редактор.

Пример вызова

<?$APPLICATION->IncludeComponent("bitrix:rating.vote","",
          Array(
        "ENTITY_TYPE_ID" => "FORUM_POST",
        "ENTITY_ID" => "1023",
        "OWNER_ID" => "4",
        "USER_HAS_VOTED" => "Y",
        "TOTAL_VOTES" => "18",
        "TOTAL_POSITIVE_VOTES" => "12",
        "TOTAL_NEGATIVE_VOTES" => "6",
        "TOTAL_VALUE" => "6",
        "PATH_TO_USER_PROFILE" => "/people/user/#USER_ID#/",
        ),
          null,
          array("HIDE_ICONS" => "Y")
);?>

Описание параметров

Поле | Параметр | Описание
Объект голосования ENTITY_TYPE_ID Указывается название объекта, за которое будет идти голосование:
  • USER - рейтингование пользователя;
  • FORUM_TOPIC - рейтингование тем форума;
  • FORUM_POST - рейтингование комментарий темы форума;
  • BLOG_POST - сообщение в блоге;
  • BLOG_COMMENT - комментарий к сообщению в блоге;
  • IBLOCK_ELEMENT - элемент информационного блока (фотогалерея, библиотека документов, wiki).
Идентификатор объекта голосования | ENTITY_ID | Указывается идентификатор объекта.
Идентификатор пользователя - владельца объекта | OWNER_ID | Указывается идентификатор пользователя, которому принадлежит объект. Используется для блокировки возможности голосовать за себя.
Путь до профайла пользователей | PATH_TO_USER_PROFILE | Путь до профайла пользователей, например /people/user/#USER_ID#/ (#USER_ID#, #user_id#, #UID# - переменная для замены на идентификатор пользователя).
Флаг голосования | USER_HAS_VOTED* | [Y|N] Указывается статус голосования за объект текущим пользователем.
Количество голосов | TOTAL_VOTES* | Указывается количество голосов, отданных за объект.
Количество голосов "за" | TOTAL_POSITIVE_VOTES* | Указывается количество положительных голосов.
Количество голосов "против" | TOTAL_NEGATIVE_VOTES* | Указывается количество отрицательных голосов.
Результат голосования | TOTAL_VALUE* | Указывается итоговое значение голосования.
Вес голоса пользователя | USER_VOTE* | Указывается вес голоса пользователя.

Дополнительная информация

Если параметры, отмеченные звездочкой (*), не указывать, данные будут подгружены автоматически. Рекомендуется указывать параметры для случаев множественного вызова компонента (например, в списке комментариев).

Для выборки данных необходимо использовать функцию CRatings::GetRatingVoteResult [image] или API следующих модулей:

  • Инфоблоки: CIBlockElement::GetList
  • Блоги: CBlogPost::GetList
  • Социальная сеть: CSocNetLogComments::GetList; CSocNetLog::GetList

Данные которые можно получать используя GetList указанных модулей:

  • Социальная сеть:
    Параметр | Описание
    RATING_TYPE_ID | Указывается название объекта, за которое будет идти голосование
    RATING_ENTITY_ID | Указывается идентификатор объекта.
    RATING_TOTAL_VALUE | Указывает итоговое значение голосования.
    RATING_TOTAL_VOTES | Указывает количество голосов, отданных за объект.
    RATING_TOTAL_POSITIVE_VOTES | Указывает количество положительных голосов.
    RATING_TOTAL_NEGATIVE_VOTES | Указывает количество отрицательных голосов.
    RATING_USER_VOTE_VALUE | Указывает с каким весом голосовал текущий пользователь.
  • Блоги и Инфоблоки:
    Параметр | Описание
    RATING_TOTAL_VALUE | Указывает итоговое значение голосования.
    RATING_TOTAL_VOTES | Указывает количество голосов, отданных за объект.
    RATING_TOTAL_POSITIVE_VOTES | Указывает количество положительных голосов.
    RATING_TOTAL_NEGATIVE_VOTES | Указывает количество отрицательных голосов.
    RATING_USER_VOTE_VALUE | Указывает с каким весом голосовал текущий пользователь.

Смотрите также:

  • Метод CRatings::GetRatingVoteResult


Классы и методы

Ядро системы состоит из функций, событий и следующих классов:

Класс | Описание | С версии
CMain | Основной класс. | 3.0.3
CDatabase | Класс для работы с базой данной. | 3.0.7
CDBResult | Класс результата выполнения запроса. | 3.0.7
CAgent | Класс для работы с агентами. | 3.0.14
CEvent | Класс для отправки почтовых событий. | 3.0.3
CEventMessage | Класс для работы с шаблонами почтовых событий. | 3.0.3
CEventType | Класс для работы с типами почтовых событий. | 3.0.3
CFile | Класс для работы с файлами и изображениями. | 3.0.3
CUser | Класс для работы с пользователями. | 3.0.6
CGroup | Класс для работы с группами пользователей. | 3.0.6
CSite | Класс для работы с сайтами. | 3.3.21
CLanguage | Класс для работы с языками. | 3.3.21
CMainPage | Класс для использования на индексной странице портала. | 4.0.3
CMenu | Обработка меню. | 3.0.16
CModule | Управление модулями. | 3.0.1
COption | Класс для работы с параметрами модулей. | 3.0.7
CPageOption | Класс для работы с параметрами действующими только на странице. | 3.3.6
CPageCache | Класс для кеширования HTML. | 3.1.8
CPHPCache | Класс для кеширования PHP переменных и HTML. | 3.2.7
CAdminFileDialog | Класс для работы с файловым диалогом в административной части системы. | 6.0.2
CComponentEngine | Класс инкапсулирует вспомогательные методы. | 5.1.7
CDiskQuota | Класс для работы с дисковыми квотами. | 6.5.0
CUserTypeEntity | Класс для работы с пользовательскими полями. | 6.0.2
CAdminPage |  | 5.0.0
CApplicationException | Класс для работы с исключениями. | 4.0.6
CBitrixComponent | Класс - оболочка компонента. | 5.1.8
CBitrixComponentTemplate | Класс - оболочка шаблона компонента. | 5.1.8
CRatings | Класс для работы с рейтингами. | 9.5.0
CUserFieldEnum | Класс для работы с пользовательскими полями типа "список". | 6.0.2
CUserCounter | Класс предназначен для работы с счётчиками. | 11.5.2
CBXSanitizer | Класс для очистки введённого пользователем HTML - текста от тэгов и атрибутов которые не содержатся в "белом списке" разрешенных к использованию. | 11.5.2
CAdminNotify | Класс для работы с уведомлениями. | 11.5.6
CBXVirtualIo | Класс для работы с файлами публичной части. | 11.0.1
CBXVirtualFile | Класс файла публичной части. | 11.0.1
CBXVirtualDirectory | Класс папки публичной части. | 11.0.1
CSmile | Класс для работы со смайлами. | 12.5.7
CSmileSet | Класс для работы с пакетами смайлов. | 12.5.7
CSmileGallery | Класс для работы с галереями смайлов. | 12.5.7
CEventLog | Класс для работы с логом. | 7.0.1
Класс CUtil |  | 6.5.0
CUserTypeString | Класс для работы с Пользовательскими полями. | 18.0.0

Важно! В параметрах классов есть LID. Он имеет разное значение, если используется в административной или публичной части. В административной части LID - это идентификатор языка, в публичной части LID - это идентификатор сайта.


Класс CAdminFileDialog

CAdminFileDialog - класс для работы с файловым диалогом в административной части системы

Методы класса

Метод | Описание | С версии
ShowScript | Генерирует и добавляет скрипты, необходимые для показа диалога. |


ShowScript

Главный модуль>Классы>CAdminFileDialog>ShowScript (с версии 6.0.2)

CAdminFileDialog::ShowScript

Описание

CAdminFileDialog::ShowScript(
 Array arConfig
)

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

Параметры

Единственным параметром метода является ассоциативный массив, ключами которого являются параметры вызова диалога. Ключи и их описания приведены ниже в таблице.

Ключ | Описание
event | Строка, содержащая имя Javascript-функции, которая вызывает файловый диалог. Функция должна быть задана в глобальной области видимости.
arResultDest Ассоциативный массив, определяющий способ возврата результата файлового диалога. Возможные следующие варианты задания.
  1. Результат выбора пользователя возвращается в функцию.

    В этом случае массиве должен иметь ключ FUNCTION_NAME со значением, равным имени Javascript-функции, заданной в глобальной области видимости.

    Если operation = "O" (латинская буква "О"), функция возвращает 3 параметра в случае выбора пользователем файла:

    • filename - имя выбранного файла;
    • path - путь к выбранному файлу;
    • site - ID сайта.

    В случае, если operation = "S", то дополнительно передаются ещё 2 параметра:

    • title - заголовок сохраняемой страницы;
    • menu - ассоциативный массив, определяющий необходимость сохранения страницы в меню.
  2. Результат выбора пользователя возвращается в заданный элемент заданной формы.

    Чтобы передать результат выбора пользователя в некоторый элемент некоторой формы, следует определить в массиве следующие ключи:

    • FORM_NAME - id формы;
    • FORM_ELEMENT_NAME - имя элемента формы.
  3. Результат выбора пользователя возвращается в элемент с заданным ID.

    В данном случае, следует задать ключ ELEMENT_ID, равный ID элемента. В атрибут value этого элемента будет занесен результат.

arPath Ассоциативный массив, задающий путь. Массив может быть пустым или содержать один из следующих ключей:
  • PATH - заданный путь;
  • SITE - id сайта.
select Определяет, какие объекты может выбирать пользователь в диалоге:
  • "F" - выбор только файлов;
  • "D" - выбор только директорий.
operation Определяет режим работы файлового диалога:
  • "O" - открытие файлов или директорий
  • "S" - сохранение файлов
showUploadTab Определяет, показывать ли вкладку загрузки файлов (имеет силу только, если operation = "O"):
  • true - показывать;
  • false - не показывать.
showAddToMenuTab Определяет, показывать ли вкладку добавления страницы в меню (имеет силу только, если operation = "S"):
  • true - показывать;
  • false - не показывать.
fileFilter Фильтр файлов по расширению, может принимать следующие значения:
  • "" - фильтр отсутствует (выпадающий список отображаться не будет);
  • "image" - предустановленный вариант файлового фильтра ("Все рисунки");
  • "ext1,ext2,ext3" - строка со списком расширений файлов (в данном примере ext1,ext2,ext3), перечисленных через запятую.
allowAllFiles Определяет, позволять ли пользователям выбирать вариант "Все файлы(*.*)" в файловом фильтре (имеет силу только, если параметр fileFilter не равен ""):
  • true - позволять;
  • false - не позволять.
SaveConfig Определяет, будут ли сохраняться пользовательские настройки диалога (вид, сортировка, путь):
  • true - сохранять;
  • false - не сохранять.

Пример

Пример вызова диалога открытия файла:

CAdminFileDialog::ShowScript(Array
    (
        "event" => "OpenImage",
        "arResultDest" => Array("FUNCTION_NAME" => "SetImageUrl"),
        "arPath" => Array(),
        "select" => 'F',
        "operation" => 'O',
        "showUploadTab" => true,
        "showAddToMenuTab" => false,
        "fileFilter" => 'image',
        "allowAllFiles" => true,
        "saveConfig" => true
    )
);

<script>
document.getElementById("open_dialog_button").onclick = OpenImage;
var SetImageUrl = function(filename,path,site)
{
    // Обработка результата
    alert("filename = "+filename+"; /n path = "+path+"; /n site = "+site);
}
</script>


CAdminNotify

CAdminNotify - класс для работы с системными уведомлениями.

Администратор увидит стикер под панелью инструментов, как в административном интерфейсе, так и в публичной части. Уведомления есть двух типов: первые администратор может закрыть, вторые уйдут только после выполнения действия (например полной конвертации). Конкурентные объявления висят друг под другом.

Методы класса

Метод | Описание | С версии
Add | Добавление уведомления. |
Delete | Удаление по идентификатору. |
DeleteByModule | Удаление по модулю. |
DeleteByTag | Удаление по тегу. |
GetList | Выборка уведомлений. |


Add

Главный модуль>Классы>CAdminNotify>Add (с версии 11.5.6)

CAdminNotify::Add

Описание и ключи

CAdminNotify::Add(
 MESSAGE,
 TAG,
 MODULE_ID,
 ENABLE_CLOSE,
);

Метод служит для добавления уведомления. Нестатический метод.

Ключи массива

Ключ | Описание
MESSAGE | Произвольный текст, поддерживает работу со следующим тэгами BR, B, U, I, SPAN A. (В последних двух можно использовать style).
TAG Метка уведомления, для его легкого удаления (не обязательное поле).

Примечание: Если добавить два уведомления с одинаковым тэгом (пустой тэг не считается) останется только последнее уведомление.
MODULE_ID | Модуль отправивший уведомление (не обязательное поле).
ENABLE_CLOSE | Может ли администратор закрыть уведомление сам из интерфейса, или будет требоваться удаление через API (не обязательное, по умолчанию может).
LANG Массив языковых сообщений. Необязательный.
"LANG" => array(
   "код_языка" => "соообщение"
)
NOTIFY_TYPE | Не обязательное. По умолчанию выводится зелёная плашка уведомления. Если в массиве есть этот параметр со значением E, то плашка будет красная, предупреждающая.

Возвращаемое значение

Возвращается ID созданного уведомления.

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

$ar = Array(
   "MESSAGE" => 'Вы обновили модуль "Веб-мессенджер", для работы с историей сообщений вам необходимо произвести <a href="#">конвертацию данных</a>.',
   "TAG" => "IM_CONVERT",
   "MODULE_ID" => "IM",
   "ENABLE_CLOSE" => "N"
);
$ID = CAdminNotify::Add($ar);


Delete

Главный модуль>Классы>CAdminNotify>Delete (с версии 11.5.6)

CAdminNotify::Delete

CAdminNotify::Delete(
 ID,
);

Метод удаляет уведомление по идентификатору. Статический метод.

Параметры функции

Параметр | Описание
ID | Идентификатор уведомления

Возвращаемое значение

Возвращает true, если удаление совершено, в противном случае - false.

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

CAdminNotify::Delete(1)


DeleteByModule

Главный модуль>Классы>CAdminNotify>DeleteByModule (с версии 11.5.6)

CAdminNotify::DeleteByModule

CAdminNotify::DeleteByModule(
 moduleId,
);

Метод удаляет уведомление по идентификатору модуля. Статический метод.

Параметры функции

Параметр | Описание
moduleId | Идентификатор модуля

Возвращаемое значение

Возвращает true, если удаление совершено, в противном случае - false.

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

CAdminNotify::DeleteByModule("xmpp")


DeleteByTag

Главный модуль>Классы>CAdminNotify>DeleteByTag (с версии 11.5.6)

CAdminNotify::DeleteByTag

CAdminNotify::DeleteByTag(
 tag,
);

Метод удаляет уведомление по тегу. Статический метод.

Параметры функции

Параметр | Описание
tag | Идентификатор тега

Возвращаемое значение

Возвращает true, если удаление совершено, в противном случае - false.

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

CAdminNotify::DeleteByTag("IM_CONVERT")


GetList

Главный модуль>Классы>CAdminNotify>GetList (с версии 11.5.6)

CAdminNotify::GetList

CAdminNotify::GetList(
 $arSort=array(),
 $arFilter=array()
);

Метод производит выборку уведомлений с сортировкой и фильтрацией. Статический метод.

Параметры функции

Параметр Описание
arSort Сортировка осуществляется по:
  • ID - идентификатору сообщения;
  • MODULE_ID - идентификатору модуля, к которому относится сообщение.
arFilter Фильтрация осуществляется по:
  • ID - идентификатору сообщения;
  • MODULE_ID - идентификатору модуля, к которому относится сообщение;
  • TAG - тегу;
  • ENABLE_CLOSE- разрешению на ручное закрытие.

Возвращаемое значение

Возвращается экземпляр класса CDBResult для дальней обработки.

Смотрите также

  • CDBResult

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

CAdminNotify::GetList(array('ID' => 'DESC'), array('MODULE_ID'=>'main'));


CAdminPage

Метод | Описание | С версии
ShowSound |  | 7.1.2
ShowSectionIndex | Функция выводит страницу админки со списком подразделов. | 5.0.2
ShowScript |  |
ShowPopupCSS |  | 7.0.0
ShowCSS |  |
Init |  |


Init

Главный модуль>Классы>CAdminPage>Init (5.0.0)

CAdminPage::Init

CadminPage::Init(
   )

Нестатический метод. Без параметров.


ShowCSS

Главный модуль>Классы>CAdminPage>ShowCSS (создан ранее 8.6.0)

CAdminPage::ShowCSS

CadminPage::ShowCSS(
   )

Нестатический метод. Без параметров.


ShowPopupCSS

Главный модуль>Классы>CAdminPage>ShowPopupCSS (7.0.0)

CAdminPage::ShowPopupCSS

CadminPage::ShowPopupCSS(
   )

Нестатический метод. Без параметров.


ShowScript

Главный модуль>Классы>CAdminPage>ShowScript (5.0.0)

CAdminPage::ShowScript

CadminPage::ShowScript(
   )

Нестатический метод.


ShowSectionIndex

Главный модуль>Классы>CAdminPage>ShowSectionIndex (5.0.2)

CAdminPage::ShowSectionIndex

Описание и параметры

CadminPage::ShowSectionIndex(
    $menu_id,
    $module_id=false,
    $mode=false
)

Метод выводит страницу админки со списком подразделов. Нестатический метод.

Параметры функции

Параметр | Описание | С версии
menu_id | ID пункта меню, подразделы которого будут в списке (т.е. то, что указано в items_id)
module_id | ID модуля, для которого строится список. С версии 5.0.3 - необязательный
mode Режим:
  • icon - значки,
  • list - список,
  • table - таблица
Если не указан режим, отображаются значки или то, что было выбрано пользователем при предыдущем открытии страницы. Необязательный. 		7.0.6

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

<?require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");define("HELP_FILE", "subscribe/index.php");IncludeModuleLangFile(__FILE__);$POST_RIGHT = $APPLICATION->GetGroupRight("subscribe");if($POST_RIGHT<="D")    $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));$APPLICATION->SetTitle(GetMessage("subscr_index_title"));if($_REQUEST["mode"] == "list")    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_js.php");else    require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");$adminPage->ShowSectionIndex("menu_subscribe", "subscribe");if($_REQUEST["mode"] == "list")    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin_js.php");else    require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");?>

Примечание В приведённом примере указаны страницы, которых нет в админке с версии 12.0.


ShowSound

Главный модуль>Классы>CAdminPage>ShowSound (7.1.2)

CAdminPage::ShowSound

CadminPage::ShowSound(
)

Нестатический метод.


Класс CAgent

CAgent - класс для работы с функциями-агентами.

Методы класса

Метод | Описание | С версии
AddAgent | Добавляет функцию-агент. | 3.1.3
CheckAgents | Проверяет и запускает функции-агенты. |
Delete | Удаляет функцию-агент по ее ID. | 4.0.13
RemoveAgent | Удаляет функцию-агент по ее имени. | 4.0.13
RemoveModuleAgents | Удаляет все функции-агенты указанного модуля. | 3.3.10

Смотрите также

  • Агенты


AddAgent

Главный модуль>Классы>CAgent>AddAgent ( 3.1.3)

CAgent::AddAgent

Описание и параметры

mixed
CAgent::AddAgent(
 string name,
 string module = "",
 string period = "N",
 int interval = 86400,
 string datecheck = "",
 string active = "Y",
 string next_exec = "",
 int sort = 100
)

Метод регистрирует новую функцию-агент. Статический метод.

Параметры

Параметр | Описание | С версии
name | Строка PHP для запуска агента-функции.
module Идентификатор модуля. Необходим для подключения файлов модуля.
Необязательный. По умолчанию пустой.
period

Если значение - "Y", то очередная дата запуска агента (next_exec) будет рассчитываться как:

next_exec = next_exec + interval
Т.е. при очередном запуске, если прошло уже больше времени чем указано в параметре interval, агент сначала будет запускаться ровно столько раз сколько он должен был запуститься (т.е. столько раз сколько он "пропустил"), а затем, когда next_exec достигнет либо превысит текущую дату, он будет в дальнейшем запускаться с периодичностью указанной в параметре interval. Как правило, подобное используется в агентах которые должны гарантированно запуститься определённое количество раз.

Значение period = "Y" соответствует настройке агента в административной панели Периодичность выполнения: точно в указанное время.

Если значение - "N", то очередная дата запуска агента (next_exec) будет рассчитываться как:

next_exec = дата последнего запуска + interval
Т.е. агент после первого запуска будет в дальнейшем запускаться с периодичностью указанной в параметре interval.

Значение period = "N" соответствует настройке агента в административной панели Периодичность выполнения: через заданный интервал.

Параметр необязательный, по умолчанию - "N".
interval Интервал (в секундах), с какой периодичностью запускать агента.
Необязательный. По умолчанию - 86400 (1 сутки).
datecheck Дата первой проверки "не пора ли запустить агент" в формате текущего языка.
Необязательный. По умолчанию - текущее время.
active Активность агента (Y|N).
Необязательный. По умолчанию - "Y" (активен).
next_exec Дата первого запуска агента в формате текущего языка.
Необязательный. По умолчанию - текущее время. 		3.1.4
sort Индекс сортировки позволяющий указать порядок запуска данного агента относительно других агентов для которых подошло время запуска.
Необязательный. По умолчанию - 100. 		3.2.9

Возвращаемые значения

При успешном выполнении, возвращает ID вновь добавленного агента, иначе - false. Если агент ничего не возвращает, он удаляется. Как правило он должен вернуть вызов самого себя.

Смотрите также

  • Агенты
  • CAgent::RemoveAgent
  • CAgent::RemoveModuleAgents
  • Структура файлов

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

<?
// добавим агент модуля "Статистика"
CAgent::AddAgent(
    "CStatistic::CleanUpStatistics_2();", // имя функции
    "statistic",                          // идентификатор модуля
    "N",                                  // агент не критичен к кол-ву запусков
    86400,                                // интервал запуска - 1 сутки
    "07.04.2005 20:03:26",                // дата первой проверки на запуск
    "Y",                                  // агент активен
    "07.04.2005 20:03:26",                // дата первого запуска
    30);
?>
<?
// добавим агент модуля "Техподдержка"
CAgent::AddAgent(
    "CTicket::AutoClose();",  // имя функции
    "support",                // идентификатор модуля
    "N",                      // агент не критичен к кол-ву запусков
    86400,                    // интервал запуска - 1 сутки
    "",                       // дата первой проверки - текущее
    "Y",                      // агент активен
    "",                       // дата первого запуска - текущее
    30);
?>
<?
// добавим произвольный агент не принадлежащий ни одному модулю
CAgent::AddAgent("My_Agent_Function();");
?>

<?
// файл /bitrix/php_interface/init.php

function My_Agent_Function()
{
   // выполняем какие-либо действия
   return "My_Agent_Function();";
}
?>
<?
// добавим произвольный агент принадлежащий модулю
// с идентификатором my_module

CAgent::AddAgent(
   "CMyModule::Agent007(1)",
   "my_module",
   "Y",
    86400);
?>

<?
// данный агент будет запущен ровно 7 раз с периодичностью раз в сутки,
// после чего будет удален из таблицы агентов.

Class CMyModule
{
   function Agent007($cnt=1)
   {
      echo "Hello!";
      if($cnt>=7)
         return "";
      return "CMyModule::Agent007(".($cnt+1).")";
   }
}
?>


CheckAgents

Главный модуль>Классы>CAgent>CheckAgents (3.0.14)

CAgent::CheckAgents

CAgent::CheckAgents()

Выполняет функцию-агента, время запуска которой наступило. Метод автоматически вызывается вначале каждой страницы и не требует ручного запуска. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • Агенты


Delete

Главный модуль>Классы>CAgent>Delete (4.0.13)

CAgent::Delete

Описание и параметры

CAgent::Delete(
 int id
)

Метод удаляет функцию-агент из таблицы зарегистрированных агентов. Нестатический метод.

Параметры

Параметр | Описание
id | ID функции-агента.

Смотрите также

  • Агенты
  • CAgent::RemoveAgent
  • CAgent::RemoveModuleAgents

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

<?
if (CAgent::Delete(34)) echo "Агент #34 успешно удален.";
?>


RemoveAgent

Главный модуль>Классы>CAgent>RemoveAgent (3.1.3)

CAgent::RemoveAgent

Описание и параметры

CAgent::RemoveAgent(
 string name,
 string module="",
 string user_id = false
)

Метод удаляет функцию-агента из таблицы зарегистрированных агентов. Нестатический метод.

Параметры

Параметр | Описание | С версии
name | Функция-агент. |
module | Идентификатор модуля. Необязательный. По умолчанию - главный модуль ("main"). |
user_id | Идентификатор пользователя. Необязательный. | 5.0.6

Смотрите также

  • Агенты
  • CAgent::RemoveModuleAgents
  • CAgent::Delete

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

<?
CAgent::RemoveAgent("CCatalog::PreGenerateXML(\"yandex\");", "catalog");
if ($bNeedAgent)
{
    CAgent::AddAgent("CCatalog::PreGenerateXML(\"yandex\");", "catalog", "N", 24*60*60, "", "Y");
}
?>


RemoveModuleAgents

Главный модуль>Классы>CAgent>RemoveModuleAgents (3.3.10)

CAgent::RemoveModuleAgents

Описание и параметры

CAgent::RemoveModuleAgents(
 string module
)

Метод удаляет все функции-агенты указанного модуля из таблицы зарегистрированных агентов. Нестатический метод.

Параметры

Параметр | Описание
module | Идентификатор модуля.

Смотрите также

  • Агенты
  • CAgent::RemoveAgent
  • CAgent::Delete

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

<?
CAgent::RemoveModuleAgents("statistic");
?>


Класс CApplicationException

CApplicationException - класс для работы с исключениями.

Методы класса

Метод | Описание | С версии
CApplicationException | Инициализирует исключение (конструктор). |
GetString | Возвращает текст исключения. |
GetId | Возвращает ID исключения. | 5.0.10

Смотрите также

  • CMain::ThrowException


Конструктор CApplicationException

Главный модуль>Классы>CApplicationException>Конструктор CApplicationException (4.0.6)

CApplicationException::Конструктор CApplicationException

Описание и параметры

CApplicationException(
 string msg,
 mixed id = false
)

Создает объект исключения класса CApplicationException с текстом msg c кодом id. Нестатический метод.

Параметры конструктора

Параметр | Описание
msg | Текст ошибки.
id | Идентификатор ошибки.

Примечание

Для вызова исключений рекомендуется использовать напрямую метод $APPLICATION->ThrowException. Данный конструктор предназначен прежде всего как шаблон для создания своих классов обработки исключений, наследуемых от CApplicationException.

Смотрите также

  • CMain::ThrowException

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

<?
$exception = new CApplicationException("File is not found", BX_E_FILE_NOT_FOUND);
$APPLICATION->ThrowException($exception);
?>


GetString

Главный модуль>Классы>CApplicationException>GetString (4.0.6)

CApplicationException::GetString

Описание и параметры

string
CApplicationException::GetString()

Метод возвращает текст исключения. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • CApplicationException
  • CMain::ThrowException

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

<?
$DB->StartTransaction();
if(!$langs->Delete($del_id))
{
  $DB->Rollback();
  if($ex = $APPLICATION->GetException())
    $strError = $ex->GetString();
}
else
  $DB->Commit();
?>


GetId

Главный модуль>Классы>CApplicationException>GetId (с версии 5.0.10)

CApplicationException::GetId

CApplicationException::GetId

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

Параметры

Без параметров


Класс CBitrixComponent

Класс CBitrixComponent является оболочкой компонента. Для каждого подключаемого компонента создаётся свой экземпляр класса CBitrixComponent, который живет до конца подключения компонента. Внутри компонента методы этого класса доступны через переменную-псевдоним $this.

Метод | Описание | С версии
StartResultCache | Метод поддержки внутреннего кеширования компонента. |
ShowComponentTemplate | Метод подключает шаблон компонента. | 5.1.9
SetTemplateCachedData | Метод возвращает шаблону данные, которые необходимо было сохранить в кэше. | 5.1.9
InitComponentTemplate | Метод инициализирует шаблон компонента. |
IncludeComponentTemplate | Метод инициализирует и подключает шаблон компонента. |
GetTemplatePage | Метод возвращает имя страницы шаблона компонента. |
GetTemplateName | Метод возвращает имя шаблона компонента. |
GetTemplateCachedData | метод возвращает данные, которые необходимо сохранить в кэше. |
GetTemplate | Метод возвращает ссылку на объект шаблона компонента. | 12.0.0
GetRelativePath | Метод возвращает путь к папке компонента относительно папки /bitrix/components. |
GetPath | Метод возвращает путь к папке компонента относительно корня сайта. |
GetParent | Метод возвращает ссылку на объект родительского комплексного компонента. | 12.0.0
GetName | Метод возвращает имя компонента. |
AddIncludeAreaIcons | Добавляет массив новых кнопок к кнопкам компонента. |
AddIncludeAreaIcon | Добавляет новую кнопку к кнопкам компонента. |
AbortResultCache | Метод поддержки внутреннего кеширования компонента. |
ClearResultCache | Метод поддержки внутреннего кеширования компонента. |
SetResultCacheKeys | Метод поддержки внутреннего кеширования компонента. | 7.0.14
EndResultCache | Метод позволяет кешировать только $arResult без кеширования html-кода. Вызывается в конце блока получения данных, сохраняемых в кеше (перед закрывающей скобкой), и тогда IncludeComponentTemplate можно вынести из этого блока. | 5.1.8


AbortResultCache

Главный модуль>Классы>CBitrixComponent>AbortResultCache (5.1.8)

CBitrixComponent::AbortResultCache

Описание

void
AbortResultCache();

Метод поддержки внутреннего кеширования компонента. Нестатический метод.

Применяется, если в результате выборки данных (в случае отсутствия валидного кеша) выяснилось, что кешировать данные не требуется. Например, если новости с требуемым ID нет, следует прервать кеширование и выдать сообщение, что такой новости нет. Если кеширование не прервать, то злоумышленники смогут увеличить кеш до всего отведенного сайту дискового пространства, вызывая страницу с произвольными (в том числе и не существующими) ID.

Смотрите также

  • CBitrixComponent::StartResultCache
  • CBitrixComponent::ClearResultCache

    • Пример

    // Проверка и инициализация входных параметров
if ($arParams["ID"] <= 0)
    $arParams["ID"] = 10;

// Если нет валидного кеша (то есть нужно запросить
// данные и сделать валидный кеш)
if ($this->StartResultCache())
{
    // Запрос данных и заполнение $arResult
    $arResult = array(
        "ID" => rand(1, 100)
    );

    for ($i = 0; $i < 5; $i++)
        $arResult["FIELDS"][] = rand(1, 100);

    // Если выполнилось какое-то условие, то кешировать
    // данные не надо
    if ($arParams["ID"] < 10)
        $this->AbortResultCache();

    // Подключить шаблон вывода
    $this->IncludeComponentTemplate();
}

// Установить заголовок страницы с помощью отложенной
// функции
$APPLICATION->SetTitle($arResult["ID"]);


AddIncludeAreaIcon

Главный модуль>Классы>CBitrixComponent>AddIncludeAreaIcon (создан ранее 8.6.0)

CBitrixComponent::AddIncludeAreaIcon

Описание и параметры

void
AddIncludeAreaIcon(
 array arIcon
);

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

Параметры

Параметр Описание
arIcon Массив, описывающий кнопку, в формате:
array(
    'URL'   => "javascript:alert('Это новая кнопка');",
    'SRC'   => $this->GetPath().'/images/znak.gif',
    'TITLE' => "Это новая кнопка"
)

Смотрите также

  • CBitrixComponent::AddIncludeAreaIcons

    • Пример

    $this->AddIncludeAreaIcon(
    array(
        'URL'   => "javascript:alert('Это новая кнопка для ".$this->GetName()."');",
        'SRC'   => $this->GetPath().'/images/znak.gif',
        'TITLE' => "Это новая кнопка"
    )
);


AddIncludeAreaIcons

Главный модуль>Классы>CBitrixComponent>AddIncludeAreaIcons (создан ранее 8.6.0)

CBitrixComponent::AddIncludeAreaIcons

Описание и параметры

void
AddIncludeAreaIcons(
 array arIcons
);

Добавляет массив новых кнопок к тем кнопкам компонента, которые отображаются в области компонента в режиме редактирования сайта. При этом, вызов метода AddIncludeAreaIcons отменяет все предыдущие вызовы методов AddIncludeAreaIcons и AddIncludeAreaIcon. Нестатический метод.

Параметры

Параметр Описание
arIcons Массив, содержащий массивы, которые описывают кнопку. Каждый из массивов, описывающих кнопку, имеет формат:
array(
    'URL'   => "javascript:alert('Это новая кнопка');",
    'SRC'   => $this->GetPath().'/images/znak.gif',
    'TITLE' => "Это новая кнопка"
)

Смотрите также

  • CBitrixComponent::AddIncludeAreaIcon

    • Пример

    $this->AddIncludeAreaIcons(
    array(
        array(
            'URL' => "javascript:alert('Это новая кнопка для ".$this->GetName()."');",
            'SRC' => $this->GetPath().'/images/znak.gif',
            'TITLE' => "Это новая кнопка"
        ),
        array(
            'URL' => "javascript:alert('Это ещё одна кнопка для ".$this->GetName()."');",
            'SRC' => $this->GetPath().'/images/znak1.gif',
            'TITLE' => "Это ещё одна кнопка"
        ),
    )
);


ClearResultCache

Главный модуль>Классы>CBitrixComponent>ClearResultCache (создан ранее 8.6.0)

CBitrixComponent::ClearResultCache

bool
ClearResultCache(
 string additionalCacheID [,
 string cachePath]]
);

Метод поддержки внутреннего кеширования компонента. Нестатический метод.

Применяется, если при выполнении некоторых условий требуется очистить кеш компонента (например, при изменении данных).

Параметры

Параметр | Описание
additionalCacheID | Кеш зависит от текущего сайта (SITE_ID), имени компонента, пути в файлу и входных параметров $arParams. Если кеш должен зависеть от каких-либо дополнительных параметров, то их необходимо передать сюда в виде строки. По умолчанию параметр равен False, то есть кеш зависит только от текущего сайта SITE_ID, имени компонента, пути в файлу и входных параметров $arParams.
cachePath | Путь к файлу кеша относительно папки кэшей. По умолчанию равен "/".SITE_ID.<путь к компоненту относительно bitrix/components>.

Смотрите также

  • CBitrixComponent::StartResultCache
  • CBitrixComponent::AbortResultCache

    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008-2022 1С-Битрикс: Управление сайтом


GetName

Главный модуль>Классы>CBitrixComponent>GetName (создан ранее 8.6.0)

CBitrixComponent::GetName

string
GetName();

Метод возвращает имя компонента. Нестатический метод.

Пример

$name = $this->GetName();


GetParent

Главный модуль>Классы>CBitrixComponent>GetParent (с версии 12.0.0)

CBitrixComponent::GetParent

object &
GetParent();

Метод возвращает ссылку на объект родительского комплексного компонента. Нестатический метод.

Пример

$parent = & $this->GetParent();
$parentName = $parent->GetName();


GetPath

Главный модуль>Классы>CBitrixComponent>GetPath (создан ранее 8.6.0)

CBitrixComponent::GetPath

string
GetPath();

Метод возвращает путь к папке компонента относительно корня сайта. Нестатический метод.

Пример

$path = $this->GetPath();


GetRelativePath

Главный модуль>Классы>CBitrixComponent>GetRelativePath (создан ранее 8.6.0)

CBitrixComponent::GetRelativePath

string
GetRelativePath();

Метод возвращает путь к папке компонента относительно папки /bitrix/components. Нестатический метод.

Пример

$relativePath = $this->GetRelativePath();


GetTemplate

Главный модуль>Классы>CBitrixComponent>GetTemplate (с версии 12.0.0)

CBitrixComponent::GetTemplate

object &
GetTemplate();

Метод возвращает ссылку на объект шаблона компонента. Шаблон компонента становится известен только после вызова методов IncludeComponentTemplate или InitComponentTemplate. До вызова указанных методов возвращается ссылка на значение null. Нестатический метод.

Примечание

До версии 12.0 метод имел имя getTemplate.

Пример

$this->InitComponentTemplate();
//инициализируем шаблон, а затем получаем название и расположение
$template = & $this->GetTemplate();
$templateFile = $template->GetFile();


GetTemplateCachedData

Главный модуль>Классы>CBitrixComponent>GetTemplateCachedData (создан ранее 8.6.0)

CBitrixComponent::GetTemplateCachedData

Описание

mixed
GetTemplateCachedData();

Метод GetTemplateCachedData вызывают, если не используется встроенное в компонент кэширование и при этом вызов IncludeComponentTemplate кэшируется. Этот метод возвращает данные, которые необходимо сохранить в кэше, а потом восстановить из кэша и вернуть шаблону методом SetTemplateCachedData. Нестатический метод.

Смотрите также

  • Кэширование в компоненте
  • CBitrixComponent::SetTemplateCachedData
    •

    Пример

    // Проверка и инициализация входных параметров
if ($arParams["ID"] <= 0)
   $arParams["ID"] = 10;

$arParams["CACHE_TIME"] = IntVal($arParams["CACHE_TIME"]);
$CACHE_ID = SITE_ID."|".$APPLICATION->GetCurPage()."|";
// кэш зависит только от подготовленных параметров без "~"
foreach ($this->arParams as $k => $v)
    if (strncmp("~", $k, 1))
        $CACHE_ID .= ",".$k."=".$v;
$CACHE_ID .= "|".$USER->GetGroups();

$cache = new CPHPCache;
if ($cache->StartDataCache($arParams["CACHE_TIME"],
                           $CACHE_ID,
                           "/".SITE_ID.$this->GetRelativePath()))
{
    // Запрос данных и формирование массива $arResult
    $arResult = array("a" => 1, "b" => 2);

    // Подключение шаблона компонента
    $this->IncludeComponentTemplate();

    $templateCachedData = $this->GetTemplateCachedData();

    $cache->EndDataCache(
        array(
            "arResult" => $arResult,
            "templateCachedData" => $templateCachedData
        )
    );
}
else
{
    extract($cache->GetVars());
    $this->SetTemplateCachedData($templateCachedData);
}


GetTemplateName

Главный модуль>Классы>CBitrixComponent>GetTemplateName (создан ранее 8.6.0)

CBitrixComponent::GetTemplateName

string
GetTemplateName();

Метод возвращает имя шаблона компонента в том виде, в котором оно было передано при подключении компонента. Нестатический метод.

Пример

$name = $this->GetTemplateName();


GetTemplatePage

Главный модуль>Классы>CBitrixComponent>GetTemplatePage (создан ранее 8.6.0)

CBitrixComponent::GetTemplatePage

string
GetTemplatePage();

Метод возвращает имя страницы шаблона компонента. Нестатический метод.

Пример

$name = $this->GetTemplatePage();


IncludeComponentTemplate

Главный модуль>Классы>CBitrixComponent>IncludeComponentTemplate (создан ранее 8.6.0)

CBitrixComponent::IncludeComponentTemplate

void
IncludeComponentTemplate([
 string templatePage
 string customTemplatePath]?
);

Метод инициализирует и подключает шаблон компонента. Если инициализация шаблона прошла неудачно, он выводит ошибку на экран. Нестатический метод.

Параметры функции

Параметр | Описание | С версии
templatePage | Имя страницы шаблона компонента. Устанавливается для комплексных компонентов. Для обычных компонентов должно быть равно пустой строке или не установлено. |
customTemplatePath |  | 10.0.5

Смотрите также

  • CBitrixComponent::InitComponentTemplate
  • CBitrixComponent::ShowComponentTemplate

    • Пример

    $this->IncludeComponentTemplate();


InitComponentTemplate

Главный модуль>Классы>CBitrixComponent>InitComponentTemplate (создан ранее 8.6.0)

CBitrixComponent::InitComponentTemplate

Описание и параметры

bool
InitComponentTemplate([
 string templatePage,
 siteTemplate = false,
 customTemplatePath = ""]
);

Метод инициализирует шаблон компонента. После вызова этого метода можно получить объект шаблона с помощью метода CBitrixComponent::GetTemplate. Шаблон компонента в этом случае подключается методом CBitrixComponent::ShowComponentTemplate. Нестатический метод.

Если объект шаблона коду компонента не нужен, воспользуйтесь одним методом CBitrixComponent::IncludeComponentTemplate, который сразу и инициализирует и подключает шаблон.

Параметры

Параметр | Описание | С версии
templatePage | Имя страницы шаблона компонента. Устанавливается для комплексных компонентов. Для обычных компонентов должно быть равно пустой строке или не установлено. |
siteTemplate |  |
customTemplatePath |  | 10.0.5

Возвращаемое значение

Возвращает True в случае успешной инициализации, иначе - False.

Смотрите также

  • CBitrixComponent::ShowComponentTemplate
  • CBitrixComponent::GetTemplate
  • CBitrixComponent::IncludeComponentTemplate

    • Пример

    if ($this->InitComponentTemplate($templatePage))
{
    $template = & $this->GetTemplate();
    $folderPath = $template->GetFolder();
    if (strlen($folderPath) > 0)
    {
        * * *
    }
    $this->ShowComponentTemplate();
}


setResultCacheKeys

Главный модуль>Классы>CBitrixComponent>setResultCacheKeys (создан ранее 8.6.0)

CBitrixComponent::setResultCacheKeys

CBitrixComponent::setResultCacheKeys(
 $arResultCacheKeys
);

$arResultCacheKeys - это список ключей массива $arResult, которые должны кэшироваться при использовании встроенного кэширования компонентов. Нестатический метод.

Смотрите также

  • Файл result_modifier.php [image] в курсе Разработчик Bitrix Framework

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

$this->SetResultCacheKeys(array(
   "IBLOCK_ID",
   "ID",
   "IBLOCK_SECTION_ID",
   "NAME",
   "PROPERTIES",
   "SECTION",
));
$this->IncludeComponentTemplate();


SetTemplateCachedData

Главный модуль>Классы>CBitrixComponent>SetTemplateCachedData (создан ранее 8.6.0)

CBitrixComponent::SetTemplateCachedData

Описание

void
SetTemplateCachedData(
 mixed templateCachedData
);

Метод SetTemplateCachedData вызывают, если не используется встроенное в компонент кэширование, и при этом вызов CBitrixComponent::IncludeComponentTemplate кэшируется. Этот метод возвращает шаблону данные, которые необходимо было сохранить в кэше. Нестатический метод.

Смотрите также

  • Кэширование в компоненте
  • CBitrixComponent::GetTemplateCachedData
    •

    Пример

    // Проверка и инициализация входных параметров
if ($arParams["ID"] <= 0)
   $arParams["ID"] = 10;

$arParams["CACHE_TIME"] = IntVal($arParams["CACHE_TIME"]);
$CACHE_ID = SITE_ID."|".$APPLICATION->GetCurPage()."|";
// кэш зависит только от подготовленных параметров без "~"
foreach ($this->arParams as $k => $v)
    if (strncmp("~", $k, 1))
        $CACHE_ID .= ",".$k."=".$v;
$CACHE_ID .= "|".$USER->GetGroups();

$cache = new CPHPCache;
if ($cache->StartDataCache($arParams["CACHE_TIME"], $CACHE_ID, "/".SITE_ID.$this->GetRelativePath()))
{
    // Запрос данных и формирование массива $arResult
    $arResult = array("a" => 1, "b" => 2);

    // Подключение шаблона компонента
    $this->IncludeComponentTemplate();

    $templateCachedData = $this->GetTemplateCachedData();

    $cache->EndDataCache(
        array(
            "arResult" => $arResult,
            "templateCachedData" => $templateCachedData
        )
    );
}
else
{
    extract($cache->GetVars());
    $this->SetTemplateCachedData($templateCachedData);
}


ShowComponentTemplate

Главный модуль>Классы>CBitrixComponent>ShowComponentTemplate (создан ранее 8.6.0)

CBitrixComponent::ShowComponentTemplate

void
ShowComponentTemplate();

Метод подключает шаблон компонента. Перед вызовом этого метода шаблон должен быть инициализирован методом CBitrixComponent::InitComponentTemplate. Нестатический метод.

Если объект шаблона коду компонента не нужен, используйте CBitrixComponent::IncludeComponentTemplate, который сразу и инициализирует и подключает шаблон.

Смотрите также

  • CBitrixComponent::GetTemplate
    •

    Пример

    if ($this->InitComponentTemplate($templatePage))
    {
        $template = & $this->GetTemplate();
        $folderPath = $template->GetFolder();
        if (strlen($folderPath) > 0)
        {
            * * *
        }
        $this->ShowComponentTemplate();
    }


StartResultCache

Главный модуль>Классы>CBitrixComponent>StartResultCache (5.1.8)

CBitrixComponent::StartResultCache

Описание и параметры

bool
StartResultCache([
 int cacheTime [,
 string additionalCacheID [,
 string cachePath]]]
);

Метод поддержки внутреннего кеширования компонента. Нестатический метод.

Если кеш действителен, метод отправляет на экран его содержимое, заполняет $arResult и возвращает False. Если кеш недействителен, метод возвращает True, кеширование завершается и кеш сохраняется при вызове методов CBitrixComponent::IncludeComponentTemplate или CBitrixComponent::ShowComponentTemplate сразу после подключения шаблона компонента.

Параметры

Параметр | Описание
cacheTime | Время кеширования в секундах. Если этот параметр равен False, то время кеширования берется из входного параметра $arParams["CACHE_TIME"]. Необязательный.
additionalCacheID | Кеш зависит от текущего сайта ( SITE_ID), имени компонента, имени шаблона, входных параметров $arParams. Если кеш должен зависеть от каких-либо дополнительных параметров, то их необходимо передать сюда в виде строки. По умолчанию параметр равен False, т.е. кеш зависит только от текущего сайта SITE_ID, имени компонента, имени шаблона и входных параметров $arParams. Необязательный.
cachePath | Путь к файлу кеша относительно папки кешей. По умолчанию равен "/".SITE_ID.<путь к компоненту относительно bitrix/components>. Необязательный.

Возвращаемое значение

Возвращает True в случае, если кеш недействителен, или False в противном случае.

Смотрите также

  • CBitrixComponent::AbortResultCache
  • CBitrixComponent::ClearResultCache

    • Пример

    // Проверка и инициализация входных параметров
if ($arParams["ID"] <= 0)
    $arParams["ID"] = 10;

// Если нет валидного кеша (то есть нужно запросить
// данные и сделать валидный кеш)
if ($this->StartResultCache())
{
    // Запрос данных и заполнение $arResult
    $arResult = array(
        "ID" => rand(1, 100)
    );

    for ($i = 0; $i < 5; $i++)
        $arResult["FIELDS"][] = rand(1, 100);

    // Если выполнилось какое-то условие, то кешировать
    // данные не надо
    if ($arParams["ID"] < 10)
        $this->AbortResultCache();

    // Подключить шаблон вывода
    $this->IncludeComponentTemplate();
}

// Установить заголовок страницы с помощью отложенной
// функции
$APPLICATION->SetTitle($arResult["ID"]);

    // кеш должен зависеть от групп пользователей, которым принадлежит посетитель
if ($this->StartResultCache(false, $USER->GetGroups()))
{
   // Валидного кеша нет. Выбираем данные из
   // базы в $arResult
}


Класс CBitrixComponentTemplate

Описание

Класс CBitrixComponentTemplate является оболочкой шаблона компонента. Для каждого подключаемого шаблона компонента создаётся свой экземпляр класса CBitrixComponentTemplate, который живет от момента инициализации шаблона в коде компонента до конца подключения компонента.

Для получения доступа к методам этого класса внутри компонента (после инициализации шаблона) нужно получить объект шаблона с помощью метода компонента CBitrixComponent::GetTemplate:

$template = & $this->GetTemplate();
$templateFile = $template->GetFile();

С версии 15.5.1 стало возможным использования внешних файлов css без дополнительных манипуляций с кодом. Для этого достаточно в файле template.php нужного компонента прописать:

$this->addExternalCss("/local/styles.css");
$this->addExternalJS("/local/liba.js");

Список методов

Метод | Описание | С версии
GetSiteTemplate | Метод возвращает шаблон сайта, в котором лежит шаблон компонента. |
GetName | Метод возвращает имя шаблона компонента. |
GetFolder | Метод возвращает путь к папке шаблона относительно корня сайта. |
GetFile | Метод возвращает путь к файлу шаблона относительно корня сайта. |
getComponent | Метод возвращает ссылку на экземпляр класса CBitrixComponent. | 15.5.10
addExternalCss | Метод для подключения стороннего css. | 15.5.1
addExternalJs | Метод для подключения стороннего JS. | 15.5.1


getComponent

Главный модуль>Классы>CBitrixComponentTemplate>getComponent (с версии 15.5.10)

CBitrixComponentTemplate::getComponent

object &
getComponent(
);

Нестатический метод возвращает ссылку на экземпляр класса CBitrixComponent.

Параметры функции

Без параметров


GetFile

Главный модуль>Классы>CBitrixComponentTemplate>GetFile (с 5.1.8)

CBitrixComponentTemplate::GetFile

string
GetFile();

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

Пример

// В коде компонента
$template = & $this->GetTemplate();
$templateFile = $template->GetFile();


GetFolder

Главный модуль>Классы>CBitrixComponentTemplate>GetFolder (с 5.1.8)

CBitrixComponentTemplate::GetFolder

string
GetFolder();

Метод возвращает путь к папке шаблона относительно корня сайта, если шаблон лежит в папке. Если шаблон представляет собой самостоятельный файл, то метод возвращает пустую строку. Нестатический метод.

Пример

// В коде компонента
$template = & $this->GetTemplate();
$templateFolder = $template->GetFolder();


GetName

Главный модуль>Классы>CBitrixComponentTemplate>GetName (с 5.1.8)

CBitrixComponentTemplate::GetName

string
GetName();

Метод возвращает имя шаблона компонента. Нестатический метод.

Пример

// В коде компонента
$template = & $this->GetTemplate();
$templateName = $template->GetName();


GetSiteTemplate

Главный модуль>Классы>CBitrixComponentTemplate>GetSiteTemplate (с 5.1.8)

CBitrixComponentTemplate::GetSiteTemplate

string
GetSiteTemplate();

Метод возвращает шаблон сайта, в котором лежит шаблон компонента. Если это системный шаблон компонента (т.е. лежит в папке компонента), то возвращается пустая строка. Нестатический метод.

Пример

// В коде компонента
$template = & $this->GetTemplate();
$siteTemplate = $template->GetSiteTemplate();


Класс CBXSanitizer

Описание и методы

CBXSanitizer - класс для очистки введённого пользователем HTML - текста от тэгов и атрибутов которые не содержатся в "белом списке" разрешенных к использованию.

Методы класса

Метод | Описание | С версии
AddTags | Добавляет тэги и атрибуты в список разрешенных. | 11.5.5
ApplyHtmlSpecChars | Предписывает применять функцию htmlspecialchars() к тексту и тэгам не содежащимся в списке разрешенных. | 11.5.5
DelAllTags | Удаляет все тэги из списка разрешенных. | 11.5.5
DeleteSanitizedTags | Предписывает удалять тэги не содержащиеся в списке разрешенных. | 11.5.5
DelTags | Удаляет тэги из списка разрешенных. | 11.5.5
GetTags | Возвращает список разрешенных тэгов и атрибутов в виде отформатированного текста |
SanitizeHtml | Выполняет фильтрацию HTML |
SetLevel | Автоматически заполняет список тэгов разрешенных к использованию в соответствии с одним из выбранных предустановленных уровней. |
UpdateTags | Изменяет тэги и атрибуты внесенные в список разрешенных ранее. | 11.5.5

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

$Sanitizer = new CBXSanitizer;

$Sanitizer->AddTags( array (
                  'a' = > array('href','id','style','alt'...),
                  'br' => array(),
                     .... ));

$pureHtml = $Sanitizer->SanitizeHtml($html);
либо
$Sanitizer = new CBXSanitizer;

$Sanitizer->SetLevel(CBXSanitizer::SECURE_LEVEL_MIDDLE);

$pureHtml = $Sanitizer->SanitizeHtml($html);


AddTags

Главный модуль>Классы>CBXSanitizer>AddTags (с версии 11.5.5)

CBXSanitizer::AddTags

Описание и параметры

int CBXSanitizer::AddTags(
 array arTags
)

Добавляет тэги и их атрибуты в список разрешенных к использованию.

Возвращает количество добавленных в список тэгов.

CBXSanitizer::AddTags() можно вызывать только как метод инициализированного объекта, а не как статический метод класса CBXSanitizer.

Параметры

Параметр Описание
arTags Массив содержащий тэги и атрибуты тэгов разрешенные к использованию. Имеет следующую структуру:
  • Имя разрешенного тэга 1
    • Имя атрибута 1
    • Имя атрибута 2
    • ...
  • Имя разрешенного тэга 2
    • Имя атрибута 1
    • Имя атрибута 2
    • ...
  • ...
    • ...

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

  $Sanitizer->AddTags( array (
                  'a' = > array('href','id','style','alt'...),
                  'br' => array()
                  ));


ApplyHtmlSpecChars

Главный модуль>Классы>CBXSanitizer>ApplyHtmlSpecChars (с версии 11.5.5, устарел с версии 18.1.9)

CBXSanitizer::ApplyHtmlSpecChars

 void CBXSanitizer::ApplyHtmlSpecChars(
 bool bApply = true
)

Применяет, либо удаляет настройку класса - применять функцию htmlspecialchars к простому тексту и тэгам не входящим в список разрешенных.

Метод ничего не возвращает.

CBXSanitizer::ApplyHtmlSpecChars() можно вызывать только как метод инициализированного объекта, а не как статический метод класса CBXSanitizer.

Параметры

Параметр | Описание
bApply | Логический параметр, принимающий значения true, либо false.

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

  $Sanitizer->ApplyHtmlSpecChars(true);


DelAllTags

Главный модуль>Классы>CBXSanitizer>DelAllTags (с версии 11.5.5)

CBXSanitizer::DelAllTags

 void CBXSanitizer::DelAllTags()

Удаляет все тэги из списка разрешенных к использованию.

Метод ничего не возвращает.

CBXSanitizer::DelAllTags() можно вызывать только как метод инициализированного объекта, а не как статический метод класса CBXSanitizer.

Параметры

У метода нет параметров.

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

  $Sanitizer->DelAllTags();


DeleteSanitizedTags

Главный модуль>Классы>CBXSanitizer>DeleteSanitizedTags (с версии 11.5.5)

CBXSanitizer::DeleteSanitizedTags

 void CBXSanitizer::DeleteSanitizedTags(
 bool bApply = true
)

Применяет, либо удаляет настройку класса - удалять тэги не входящие в список разрешенных.

Метод ничего не возвращает.

CBXSanitizer::DeleteSanitizedTags() можно вызывать только как метод инициализированного объекта, а не как статический метод класса CBXSanitizer.

Параметры

Параметр | Описание
bApply | Логический параметр, принимающий значения true, либо false.

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

  $Sanitizer->DeleteSanitizedTags(true);


DelTags

Главный модуль>Классы>CBXSanitizer>DelTags (с версии 11.5.5)

CBXSanitizer::DelTags

int CBXSanitizer::DelTags(
 array arTagsNames
)

Удаляет тэги из списка разрешенных к использованию.

Возвращает количество удаленных из списка тэгов.

CBXSanitizer::DelTags() можно вызывать только как метод инициализированного объекта, а не как статический метод класса CBXSanitizer.

Параметры

Параметр Описание
arTagsNames Массив содержащий имена тэгов, которые необходимо удалить из списка разрешенных тэгов.
  • Имя тэга 1
  • Имя тэга 2
  • ...

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

  $Sanitizer->DelTags( array ( 'a', 'br' ));


GetTags

Главный модуль>Классы>CBXSanitizer>GetTags (с версии 11.5.2)

CBXSanitizer::GetTags

 void CBXSanitizer::GetTags()

Возвращает список разрешенных к использованию тэгов в виде отформатированного текста.

CBXSanitizer::GetTags() можно вызывать только как метод инициализированного объекта, а не как статический метод класса CBXSanitizer.

Параметры

У метода нет параметров.

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

  echo $Sanitizer->GetTags();


SanitizeHtml

Главный модуль>Классы>CBXSanitizer>SanitizeHtml (с версии 11.5.2)

CBXSanitizer::SanitizeHtml

 string CBXSanitizer::SanitizeHtml(
 string html
)

Очищает HTML переданный в качестве параметра от тэгов и атрибутов не содержащихся в списке разрешенных.

Возвращает очищенный html.

CBXSanitizer::SanitizeHtml() можно вызывать только как метод инициализированного объекта, а не как статический метод класса CBXSanitizer.

Параметры

Параметр | Описание
html | текст в формате html.

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

  $filteredHtml = $Sanitizer->SanitizeHtml("Sanitize me please!");


SetLevel

Главный модуль>Классы>CBXSanitizer>SetLevel (с версии 11.5.2)

CBXSanitizer::SetLevel

Описание и параметры

 void
CBXSanitizer::SetLevel(
 bool secLevel
)

Заполняет массив тэгов, разрешенных к использованию в соответствии с выбранным уровнем.

Метод ничего не возвращает.

CBXSanitizer::SetLevel() можно вызывать только как метод инициализированного объекта, а не как статический метод класса CBXSanitizer.

Параметры

Параметр Описание
secLevel

Может принимать следующие значения:

  • CBXSanitizer::SECURE_LEVEL_HIGH
  • CBXSanitizer::SECURE_LEVEL_MIDDLE
  • CBXSanitizer::SECURE_LEVEL_LOW

При этом в список разрешенных будут добавлены следующие тэги и атрибуты:

      CBXSanitizer::SECURE_LEVEL_HIGH

        $arTags = array(
            'b'     => array(),
            'br'    => array(),
            'big'   => array(),
            'blockquote'    => array(),
            'code'    => array(),
            'del'   => array(),
            'dt'    => array(),
            'dd'    => array(),
            'font'    => array(),
            'h1'    => array(),
            'h2'    => array(),
            'h3'    => array(),
            'h4'    => array(),
            'h5'    => array(),
            'h6'    => array(),
            'hr'    => array(),
            'i'     => array(),
            'ins'   => array(),
            'li'    => array(),
            'ol'    => array(),
            'p'     => array(),
            'small'   => array(),
            's'     => array(),
            'sub'   => array(),
            'sup'   => array(),
            'strong'  => array(),
            'pre'   => array(),
            'u'     => array(),
            'ul'    => array()
          );

      CBXSanitizer::SECURE_LEVEL_MIDDLE

        $arTags = array(
            'a'     => array('href', 'title','name','alt'),
            'b'     => array(),
            'br'    => array(),
            'big'   => array(),
            'code'    => array(),
            'caption' => array(),
            'del'   => array('title'),
            'dt'    => array(),
            'dd'    => array(),
            'font'    => array('color','size'),
            'color'   => array(),
            'h1'    => array(),
            'h2'    => array(),
            'h3'    => array(),
            'h4'    => array(),
            'h5'    => array(),
            'h6'    => array(),
            'hr'    => array(),
            'i'     => array(),
            'img'   => array('src','alt','height','width','title'),
            'ins'   => array('title'),
            'li'    => array(),
            'ol'    => array(),
            'p'     => array(),
            'pre'   => array(),
            's'     => array(),
            'small'   => array(),
            'strong'  => array(),
            'sub'   => array(),
            'sup'   => array(),
            'table'   => array('border','width'),
            'tbody'   => array('align','valign'),
            'td'    => array('width','height','align','valign'),
            'tfoot'   => array('align','valign'),
            'th'    => array('width','height'),
            'thead'   => array('align','valign'),
            'tr'    => array('align','valign'),
            'u'     => array(),
            'ul'    => array()

      CBXSanitizer::SECURE_LEVEL_LOW

        $arTags = array(
            'a'     => array('href', 'title','name','style','id','class','shape','coords','alt','target'),
            'b'     => array('style','id','class'),
            'br'    => array('style','id','class'),
            'big'   => array('style','id','class'),
            'caption' => array('style','id','class'),
            'code'    => array('style','id','class'),
            'del'   => array('title','style','id','class'),
            'div'   => array('title','style','id','class','align'),
            'dt'    => array('style','id','class'),
            'dd'    => array('style','id','class'),
            'font'    => array('color','size','face','style','id','class'),
            'h1'    => array('style','id','class','align'),
            'h2'    => array('style','id','class','align'),
            'h3'    => array('style','id','class','align'),
            'h4'    => array('style','id','class','align'),
            'h5'    => array('style','id','class','align'),
            'h6'    => array('style','id','class','align'),
            'hr'    => array('style','id','class'),
            'i'     => array('style','id','class'),
            'img'   => array('src','alt','height','width','title'),
            'ins'   => array('title','style','id','class'),
            'li'    => array('style','id','class'),
            'map'   => array('shape','coords','href','alt','title','style','id','class','name'),
            'ol'    => array('style','id','class'),
            'p'     => array('style','id','class','align'),
            'pre'   => array('style','id','class'),
            's'     => array('style','id','class'),
            'small'   => array('style','id','class'),
            'strong'  => array('style','id','class'),
            'span'    => array('title','style','id','class','align'),
            'sub'   =>array('style','id','class'),
            'sup'   =>array('style','id','class'),
            'table'   => array('border','width','style','id','class','cellspacing','cellpadding'),
            'tbody'   => array('align','valign','style','id','class'),
            'td'    => array('width','height','style','id','class','align','valign','colspan','rowspan'),
            'tfoot'   => array('align','valign','style','id','class','align','valign'),
            'th'    => array('width','height','style','id','class','colspan','rowspan'),
            'thead'   => array('align','valign','style','id','class'),
            'tr'    => array('align','valign','style','id','class'),
            'u'     => array('style','id','class'),
            'ul'    => array('style','id','class')
          );

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

  $Sanitizer->SetLevel(CBXSanitizer::SECURE_LEVEL_LOW);


UpdateTags

Главный модуль>Классы>CBXSanitizer>UpdateTags (с версии 11.5.5)

CBXSanitizer::UpdateTags

Описание и параметры

int CBXSanitizer::UpdateTags(
 array arTags
)

Обновляет тэги и их атрибуты в списоке разрешенных к использованию.

Возвращает количество обновленных в списке тэгов.

CBXSanitizer::UpdateTags() можно вызывать только как метод инициализированного объекта, а не как статический метод класса CBXSanitizer.

Параметры

Параметр Описание
arTags Массив содержащий тэги и атрибуты тэгов разрешенные к использованию. Имеет следующую структуру:
  • Имя разрешенного тэга 1
    • Имя атрибута 1
    • Имя атрибута 2
    • ...
  • Имя разрешенного тэга 2
    • Имя атрибута 1
    • Имя атрибута 2
    • ...
  • ...
    • ...

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

  $Sanitizer->UpdateTags( array (
                  'a' = > array('href','id','style','alt'...),
                  'br' => array()
                  ));


CBXVirtualDirectory

Описание

CBXVirtualDirectory - класс папки.

Экземпляр класса не связан с физической папкой, т.е. папка реально может не существовать. Экземпяр класса можно получить, например, вызвав методы GetDirectory($path) или CreateDirectory($path) экземпляра класса CBXVirtualFile.

$dir = $io->GetDirectory($io->RelativeToAbsolutePath("/папка1/папка2"));
$arChildren = $dir->GetChildren();
foreach ($arChildren as $child)
{
 if (!$child->IsDirectory() && $child->GetName() != ".access.php")
  die("Error");
};

Список методов

Метод | Описание | С версии
GetName
string
CBXVirtualDirectory::GetName()
Без параметров. Возвращает имя файла.
GetPath
string
CBXVirtualDirectory::GetPath()
Без параметров. Возвращает путь к файлу .
GetPathWithName
string
CBXVirtualDirectory::GetPathWithName()
Без параметров. Возвращает имя файла с путем.
IsDirectory
bool
CBXVirtualDirectory::IsDirectory()
Без параметров. Возвращает true.
IsExists
bool
CBXVirtualDirectory::IsExists()
Без параметров. Возвращает true, если файл физически существует. Иначе - false.
MarkWritable
void
CBXVirtualDirectory::MarkWritable()
Без параметров. Делает файл доступным для записи.
GetPermissions
int
CBXVirtualDirectory::GetPermissions()
Без параметров. Возвращяет файловые права на файл.
GetModificationTime
int
CBXVirtualDirectory::GetModificationTime()
Без параметров. Возвращает время последнего изменения файла.
GetLastAccessTime
int
CBXVirtualDirectory::GetLastAccessTime()
Без параметров. Возвращает время последнего доступа к файлу.
GetChildren | Метод возвращает содержимое папки в виде массива.
Create
bool
CBXVirtualDirectory::Create()
Без параметров. Создает папку, если ее нет. Возвращает true, если папка создана или существует. Иначе - false.
GetErrors
array
CBXVirtualDirectory::GetErrors()
Без параметров. Возвращает массив ошибок, произошедших во время последней файловой операции.


GetChildren

Главный модуль>Классы>CBXVirtualDirectory>GetChildren (11.0.1)

CBXVirtualDirectory::GetChildren

array
CBXVirtualDirectory::GetChildren(
);

Метод возвращает содержимое папки в виде массива. Элементами массива являются экземпляры классов CBXVirtualDirectory и CBXVirtualFile. Нестатический метод.

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

$dir = $io->GetDirectory($io->RelativeToAbsolutePath("/папка1/папка2"));
$arChildren = $dir->GetChildren();
foreach ($arChildren as $child)
{
 if (!$child->IsDirectory())
 {
  echo "В папке есть файл ".$child->GetName()." размером ".$child->GetFileSize()."
";
 }
 if ($child->IsDirectory())
 {
  echo "В папке есть подпапка ".$child->GetName()."
";
 }
}


CBXVirtualFile

Описание

CBXVirtualFile - класс файла.

Экземпляр класса не связан с физическим файлом, т.е. файл реально может не существовать. Экземпяр класса можно получить, например, вызвав метод GetFile($path) экземпляра класса CBXVirtualFile.

$fp = $io->RelativeToAbsolutePath("/папка1/.access.php");
$f = $io->GetFile($fp);
$f->MarkWritable();

Примечание:

Класс считается устаревшим. Рекомендуется использовать класс нового ядра D7, расположенный /bitrix/modules/main/lib/io/file.php.

Список методов

Метод Описание С версии
GetName
string
CBXVirtualFile::GetName()
Без параметров. Возвращает имя файла.
GetPath
string
CBXVirtualFile::GetPath()
Без параметров. Возвращает путь к файлу .
GetPathWithName
string
CBXVirtualFile::GetPathWithName()
Без параметров. Возвращает имя файла с путем.
IsDirectory
bool
CBXVirtualFile::IsDirectory()
Без параметров. Возвращает false.
IsExists
bool
CBXVirtualFile::IsExists()
Без параметров. Возвращает true, если файл физически существует. Иначе - false.
MarkWritable
void
CBXVirtualFile::MarkWritable()
Без параметров. Делает файл доступным для записи.
GetPermissions
int
CBXVirtualFile::GetPermissions()
Без параметров. Возвращяет файловые права на файл.
GetModificationTime
int
CBXVirtualFile::GetModificationTime()
Без параметров. Возвращает время последнего изменения файла.
GetLastAccessTime
int
CBXVirtualFile::GetLastAccessTime()
Без параметров. Возвращает время последнего доступа к файлу.
GetType
string
CBXVirtualFile::GetType()
Без параметров. Возвращает тип файла на основании его расширения. Доступные типы: IMAGE, FLASH, SOURCE, UNKNOWN.
GetExtension
string
CBXVirtualFile::GetExtension()
Без параметров. Возвращает расширение файла.
Open
resource
CBXVirtualFile::Open string $mode)
Открывает файл в указанном режиме и возвращает его дескриптор. Лучше не применять этот метод, если это действительно не нужно.
GetContents
string
CBXVirtualFile::GetContents()
Без параметров. Метод возвращает содержимое файла. Если файл не существует, возвращается null.
PutContents
bool
CBXVirtualFile::($data)
Без параметров. Метод записывает новое содержимое в файл. Если файл не существует, то он создается. Возвращает true в случае успешной записи и false - в противном случае.
GetFileSize
int
CBXVirtualFile::GetFileSize()
Без параметров. Возвращает размер файла или 0, если файл не существует.
IsWritable
bool
CBXVirtualFile::IsWritable()
Без параметров. Возвращает true, если файл доступен для записи. Иначе - false.
IsReadable
bool
CBXVirtualFile::IsReadable()
Без параметров. Возвращает true, если файл доступен для чтения. Иначе - false.
ReadFile
string
CBXVirtualFile::ReadFile()
Без параметров. Выкидывает содержимое файла в поток.
GetErrors
array
CBXVirtualFile::GetErrors()
Без параметров. Возвращает массив ошибок, произошедших во время последней файловой операции.


CBXVirtualIo

Описание

Поддержка Bitrix Framework русских (и прочих) символов в названиях публичных файлов накладывает определённые ограничения на работу:
недопустимы прямые вызовы

  • к файлам, имена которых выбираются пользователями,
  • к папкам, имена которых выбираются пользователями,
  • к файлам и папкам, которые могут лежать в папках, имена которых выбираются пользователями.
Недопустимы вызовы любых прямых методов работы с файловой системой: include, require, fopen, filesize, unlink, file_exists и т.д.

Например, нельзя напрямую обратиться к файлу .access.php потому, что он может лежать в папке Папка: /Папка/.access.php.

Если обращение идет к файлу внутри папки /bitrix, то это служебная область и там не должно быть кириллицы. Можно использовать прямые методы. Если обращение вне папки /bitrix, то либо в имени, либо в пути могут быть русские буквы. И нужно пользоваться CBXVirtualIo.
Исключение - известные нам файлы в корне сайта: /404.php, /auth.php, /urlrewrite.php, /.htaccess, которые очевидно не могут подержать в пути кириллицу, хотя они и не в папке /bitrix.

CBXVirtualIo - класс для работы с файлами публичной части, которые создаются пользователями или лежат в папках, создаваемых пользователями.

Это не статический класс, поэтому перед использованием необходимо создать его экземпляр. Для получения экземпляра "по-умолчанию" класса CBXVirtualIo следует использовать статический метод GetInstance(). Этот метод создает экземпляр класса с настройками "по-умолчанию" только один раз при первом обращении:

$io = CBXVirtualIo::GetInstance();

Список методов

Метод | Описание | С версии
CombinePath | Объединяет части пути в единый путь.
RelativeToAbsolutePath | Приводит путь относительно корня продукта к абсолютному пути.
SiteRelativeToAbsolutePath | Приводит путь относительно корня указанного сайта к абсолютному пути.
GetPhysicalName
string
CBXVirtualIo::GetPhysicalName(
 string $path
);

Конвертирует путь (строку) в формат файловой системы. Не рекомендуется пользоваться этим методом без реальной необходимости.

GetLogicalName
string
CBXVirtualIo::GetLogicalName(
 string $path
);
Конвертирует путь (строку) из формата файловой системы в формат сайта. Не рекомендуется пользоваться этим методом без реальной необходимости.
ExtractNameFromPath | Возвращает имя файла или папки принимая на вход путь.
ExtractPathFromPath | Возвращает путь к файлу или папке принимая на вход путь.
ValidatePathString | Проверяет, является ли путь корректным.
ValidateFalenameString | Проверяет, является ли имя файла (папки) корректным
DirectoryExists | Проверяет, существует ли указанная папка.
FileExists | Проверяет, существует ли указанный файл.
GetDirectory | Возвращает объект класса папки для указанного пути.
GetFile | Возвращает объект класса файла для указанного пути.
OpenFile
resource
CBXVirtualIo::OpenFile(
 string $path,
 string $mode
);
Открывает файл в указанном режиме и возвращает его дескриптор. Лучше не применять этот метод, если это действительно не нужно.
CreateDirectory | Создает указанную папку, если ее нет.
Delete | Удаляет файл или папку.
Copy | Копирует файл или папку.
Move | Перемещает файл или папку
ClearCache
void
CBXVirtualIo::ClearCache(
);
Без параметров. Сбрасывает кеш файловой системы, если такой есть 		11.0.2
GetErrors
array
CBXVirtualIo::GetErrors(
);
Без параметров. Возвращает массив ошибок, произошедших во время последней файловой операции.


CombinePath

Главный модуль>Классы>CBXVirtualIo>CombinePath (11.0.1)

CBXVirtualIo::CombinePath

string
CBXVirtualIo::CombinePath(
 string $path1 [, string $path2 [, string $path3 [, ...]]]
);

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

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

echo $io->CombinePath("/", "index.php");  // вернет /index.php
echo $io->CombinePath("/", "/path1/", "\\path2/", "path3\\. ./path4/");  // вернет /path1/path2/path4


Copy

Главный модуль>Классы>CBXVirtualIo>Copy (11.0.1)

CBXVirtualIo::Copy

bool
CBXVirtualIo::Copy(
 string $source,
 string $target [,
 bool $bRewrite = true]
);

Копирует файл или папку. Дополнительный параметр указывает, перетирать ли существующие файлы. На вход принимает абсолютный путь. Нестатический метод.

Параметры

Параметр | Описание
source | Путь к источнику.
target | Путь к целевой папке.
bRewrite | Если файл существует переписывать или нет? По умолчанию true.


CreateDirectory

Главный модуль>Классы>CBXVirtualIo>CreateDirectory (11.0.1)

CBXVirtualIo::CreateDirectory

CBXVirtualDirectory
CBXVirtualIo::CreateDirectory(
 string $path
);

Создает указанную папку, если ее нет. Возвращает объект созданной или существующей папки или null в случае ошибки. На вход принимает абсолютный путь. Нестатический метод.

Параметры

Параметр | Описание
path | Путь

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

if (!$io->CreateDirectory($io->RelativeToAbsolutePath($path)))
 die();


Delete

Главный модуль>Классы>CBXVirtualIo>Delete (11.0.1)

CBXVirtualIo::Delete

bool
CBXVirtualIo::Delete(
 string $path
);

Удаляет файл или папку. Нестатический метод.

Параметры

Параметр | Описание
path | Путь

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

$path = $io->RelativeToAbsolutePath($path);
$flTmp = $io->GetFile($path);
$flSzTmp = $flTmp->GetFileSize();
if ($io->Delete($path))
{
 if (COption::GetOptionInt("main", "disk_space") > 0)
  CDiskQuota::updateDiskQuota("file", $flSzTmp, "delete");
}


DirectoryExists

Главный модуль>Классы>CBXVirtualIo>DirectoryExists (11.0.1)

CBXVirtualIo::DirectoryExists

bool
CBXVirtualIo::DirectoryExists(
 string $path
);

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

Параметры

Параметр | Описание
path | Путь

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

echo $io->DirectoryExists($io->RelativeToAbsolutePath("/папка1/папка2"));


ExtractNameFromPath

Главный модуль>Классы>CBXVirtualIo>ExtractNameFromPath (11.0.1)

CBXVirtualIo::ExtractNameFromPath

string
CBXVirtualIo::ExtractNameFromPath(
 string $path
);

Возвращает имя файла или папки принимая на вход путь. Хорошо, если путь сначала приведен к нормальной форме. Нестатический метод.

Параметры

Параметр | Описание
path | Путь

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

echo $io->ExtractNameFromPath("/path1/index.php");   // вернет index.php


ExtractPathFromPath

Главный модуль>Классы>CBXVirtualIo>ExtractPathFromPath (11.0.1)

CBXVirtualIo::ExtractPathFromPath

result_type
CBXVirtualIo::ExtractPathFromPath(
 string $path
);

Возвращает путь к файлу или папке принимая на вход путь. Хорошо, если путь сначала приведен к нормальной форме. Нестатический метод.

Параметры

Параметр | Описание
path | Путь

Пример

echo $io->ExtractPathFromPath("/path1/index.php");   // вернет /path1


FileExists

Главный модуль>Классы>CBXVirtualIo>FileExists (11.0.1)

CBXVirtualIo::FileExists

bool
CBXVirtualIo::FileExists(
 string $path
);

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

Параметры

Параметр | Описание
path | Путь

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

echo $io->FileExists($io->RelativeToAbsolutePath("папка1/файл.php"));


GetDirectory

Главный модуль>Классы>CBXVirtualIo>GetDirectory (11.0.1)

CBXVirtualIo::GetDirectory

CBXVirtualDirectory
CBXVirtualIo::GetDirectory(
 string $path
);

Возвращает объект класса папки для указанного пути. На вход принимает абсолютный путь. При этом существование папки не проверяется. Нестатический метод.

Параметры

Параметр | Описание
path | Путь

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

$dir = $io->GetDirectory($io->RelativeToAbsolutePath("/папка1/папка2"));
$arChildren = $dir->GetChildren();
foreach ($arChildren as $child)
{
 if (!$child->IsDirectory() && $child->GetName() != ".access.php")
  die("Error");
}


GetFile

Главный модуль>Классы>CBXVirtualIo>GetFile (11.0.1)

CBXVirtualIo::GetFile

CBXVirtualFile
CBXVirtualIo::GetFile(
 string $path
);

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

Параметры

Параметр | Описание
path | Путь

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

$fp = $io->RelativeToAbsolutePath("/папка1/.access.php");
$f = $io->GetFile($fp);
$f->MarkWritable();
$io->Delete($fp);


Move

Главный модуль>Классы>CBXVirtualIo>Move (11.0.1)

CBXVirtualIo::Move

bool
CBXVirtualIo::Move(
 string $source,
 string $target [,
 bool $bRewrite = true]
);

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

Параметры

Параметр | Описание
source | Исходное местоположение.
target | Конечное местоположение.
bRewrite | Если файл существует переписывать или нет? По умолчанию true.


RelativeToAbsolutePath

Главный модуль>Классы>CBXVirtualIo>RelativeToAbsolutePath (11.0.1)

CBXVirtualIo::RelativeToAbsolutePath

result_type
CBXVirtualIo::RelativeToAbsolutePath(
 array string $relativePath
);

Приводит путь относительно корня продукта к абсолютному пути. Путь приводится к нормальной форме. Нестатический метод.

Параметры

Параметр | Описание
$relativePath | Относительный путь

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

echo $io->RelativeToAbsolutePath("/path1/index.php");  // вернет c:/Projects/site1/path1/index.php


SiteRelativeToAbsolutePath

Главный модуль>Классы>CBXVirtualIo>SiteRelativeToAbsolutePath (11.0.1)

CBXVirtualIo::SiteRelativeToAbsolutePath

string
CBXVirtualIo::SiteRelativeToAbsolutePath(
 string $relativePath,
 string $site = null
);

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

Параметры

Параметр | Описание
relativePath | Относительный путь
site | домен сайта

Пример

echo $io->SiteRelativeToAbsolutePath("/path1/index.php", "s1");  // вернет c:/Projects/site1/s1/path1/index.php


ValidateFalenameString

Главный модуль>Классы>CBXVirtualIo>ValidateFalenameString (11.0.1)

CBXVirtualIo::ValidateFalenameString

bool
CBXVirtualIo::ValidateFalenameString(
 string $filename
);

Проверяет, является ли имя файла (папки) корректным. Нестатический метод.

Параметры

Параметр | Описание
filename | Имя файла (папки)

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

echo $io->ValidatePathString("файл.php"); // вернет 1
echo $io->ValidatePathString("/файл.ph*p"); // вернет 0


ValidatePathString

Главный модуль>Классы>CBXVirtualIo>ValidatePathString (11.0.1)

CBXVirtualIo::ValidatePathString

bool
CBXVirtualIo::ValidatePathString(
 string $path
);

Проверяет, является ли путь корректным. Нестатический метод.

Параметры

Параметр | Описание
path | Путь

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

echo $io->ValidatePathString("/path1/путь2/файл.php");  // вернет 1
echo $io->ValidatePathString("/path1/пу*ть2/файл.php?"); // вернет 0


Класс CComponentEngine

Класс CComponentEngine инкапсулирует вспомогательные методы, полезные при разработке компонентов.

Метод | Описание | С версии
ParseComponentPath | Метод служит для поддержки ЧПУ режима в комплексных компонентах. |
MakePathFromTemplate | Метод определяет в шаблоне значения системных констант |
MakeComponentVariableAliases | Метод переопределяет переменые во входных параметрах компонента. | 5.1.8
MakeComponentUrlTemplates | Метод служит для поддержки ЧПУ режима в комплексных компонентах. | 5.1.8
InitComponentVariables | Метод служит для поддержки псевдонимов переменных в комплексных компонентах. |


InitComponentVariables

Главный модуль>Классы>CComponentEngine>InitComponentVariables (5.1.7)

CComponentEngine::InitComponentVariables

Описание и параметры

void
InitComponentVariables(
 string componentPage ,
 array arComponentVariables ,
 array arVariableAliases ,
 array & arVariables
);

Метод служит для поддержки псевдонимов переменных в комплексных компонентах (как в ЧПУ режиме, так и в обычном). Метод восстанавливает истинные переменные из $_REQUEST на основании их псевдонимов. Статический метод.

Параметры

Параметр | Описание
componentPage | Для ЧПУ режима: код шаблона пути, который был получен методом CComponentEngine::ParseComponentPath. Если компонент работает не в ЧПУ режиме, этот параметр должен быть равен False.
arComponentVariables | Массив имен переменных, которые компонент может получать из запроса. Этот параметр имеет вид array("имя переменной 1", "имя переменной 2", ...).
arVariableAliases Массив псевдонимов переменных.

Для режима ЧПУ имеет формат:
array(
    "код шаблона пути 1" => array(
        "название переменной 11" => "псевдоним переменной 11",
        "название переменной 12" => "псевдоним переменной 12",
        * * *
    ),
    "код шаблона пути 2" => array(
        "название переменной 21" => "псевдоним переменной 21",
        "название переменной 22" => "псевдоним переменной 22",
        * * *
    ),
    * * *
)
Для не ЧПУ режима:
array(
    "название переменной" => "псевдоним переменной",
    * * *
)
arVariables | Переменная, в которой возвращаются восстановленные переменные.

Смотрите также

  • Структура комплексного компонента
  • Псевдонимы входящих переменных
  • CComponentEngine::MakeComponentVariableAliases
  • CComponentEngine::MakeComponentUrlTemplates
    •

    Пример

    // Для ЧПУ режима

// В этой переменной будем накапливать значения истинных переменных
$arVariables = array();

// Соберем массив шаблонов путей из массива шаблонов путей
// "по-умолчанию" $arDefaultUrlTemplates404
// и массива, переданного во входных параметрах $arParams["SEF_URL_TEMPLATES"]
$arUrlTemplates =
    CComponentEngine::MakeComponentUrlTemplates($arDefaultUrlTemplates404,
                                                $arParams["SEF_URL_TEMPLATES"]);

// Соберем массив псевдонимов переменных из массива псевдонимов
// "по-умолчанию" $arDefaultVariableAliases404
// и массива, переданного во входных параметрах $arParams["VARIABLE_ALIASES"]
$arVariableAliases =
    CComponentEngine::MakeComponentVariableAliases($arDefaultVariableAliases404,
                                                   $arParams["VARIABLE_ALIASES"]);

// Определим код шаблона, которому соответствует текущая запрошенная страница
$componentPage = CComponentEngine::ParseComponentPath(
    $arParams["SEF_FOLDER"],
    $arUrlTemplates,
    $arVariables
);

// Если запрошенная страница не соответствует ни одному шаблону,
// то установим явно что показывать
if (StrLen($componentPage) <= 0)
    $componentPage = "list";

// Теперь у нас установлен код шаблона пути и переменные,
// которые пришли в виде пути к запрошенной
// странице, записаны в $arVariables

// Восстановим переменные, которые пришли в параметрах запроса
// и допишем их в $arVariables
CComponentEngine::InitComponentVariables($componentPage,
                                         $arComponentVariables,
                                         $arVariableAliases,
                                         $arVariables);

// Теперь на основании кода шаблона пути $componentPage
// и истинных переменных $arVariables
// можно определить, какую страницу шаблона компонента нужно показать

if ($componentPage == "element")
    $componentPage = "element";
elseif ($componentPage == "section1" || $componentPage == "section2")
    $componentPage = "section";
else
    $componentPage = "list";

$arResult = [
    'FOLDER' => $SEF_FOLDER,
    'URL_TEMPLATES' => $arUrlTemplates,
    'VARIABLES' => $arVariables,
    'ALIASES' => $arVariableAliases,
];
$this->IncludeComponentTemplate($componentPage);
);

    // Для не ЧПУ режима

// В этой переменной будем накапливать значения истинных переменных
$arVariables = array();

// Соберем массив псевдонимов переменных из массива псевдонимов
// "по-умолчанию" $arDefaultVariableAliases
// и массива, переданного во входных параметрах $arParams["VARIABLE_ALIASES"]
$arVariableAliases =
    CComponentEngine::MakeComponentVariableAliases($arDefaultVariableAliases,
                                                   $arParams["VARIABLE_ALIASES"]);

// Восстановим переменные, которые пришли в параметрах запроса
// и допишем их в $arVariables
CComponentEngine::InitComponentVariables(False, $arComponentVariables,
                                         $arVariableAliases, $arVariables);

// Теперь на основании истинных переменных $arVariables
// можно определить, какую страницу шаблона компонента нужно показать

$componentPage = "";
if (IntVal($arVariables["ELEMENT_ID"]) > 0)
    $componentPage = "element";
elseif (IntVal($arVariables["IBLOCK_ID"]) > 0 ||
        IntVal($arVariables["SECTION"]) > 0)
    $componentPage = "section";
else
    $componentPage = "list";

$this->IncludeComponentTemplate(
    array(
        "VARIABLES" => $arVariables,
        "ALIASES" => $arVariableAliases
    ),
    $componentPage
);


MakeComponentUrlTemplates

Главный модуль>Классы>CComponentEngine>MakeComponentUrlTemplates (5.1.8)

CComponentEngine::MakeComponentUrlTemplates

Описание и параметры

array
MakeComponentUrlTemplates(
 array arDefaultUrlTemplates,
 array arCustomUrlTemplates
);

Метод служит для поддержки ЧПУ режима в комплексных компонентах. Метод принимает на входе шаблоны путей по умолчанию и шаблоны путей, переданные во входных параметрах компонента и заменяет те шаблоны путей по умолчанию, которые были переопределены во входных параметрах компонента. Статический метод.

Параметры

Параметр | Описание
arDefaultUrlTemplates | Массив шаблонов путей по умолчанию.
arCustomUrlTemplates | Массив шаблонов путей, переданных во входных параметрах компонента.

Возвращаемое значение

Массив шаблонов путей.

Смотрите также

  • Структура комплексного компонента
  • CComponentEngine::ParseComponentPath
    •

    Пример

    // если массив шаблонов путей по умолчанию имеет вид
$arDefaultUrlTemplates = array(
    "list" => "index.php",
    "element" => "#IBLOCK_ID#/#ELEMENT_ID#.php?SID=#SECTION_ID#"
);

// а во входных параметрах был передан массив
$arParams["SEF_URL_TEMPLATES"] = array(
    "element" => "#IBLOCK_ID#/#SECTION_ID#/#ELEMENT_ID#.php"
);

// тогда, после вызова метода:
$arUrlTemplates =
    CComponentEngine::MakeComponentUrlTemplates($arDefaultUrlTemplates,
                                                $arParams["SEF_URL_TEMPLATES"]);

// массив $arUrlTemplates будет иметь вид
$arUrlTemplates = array(
    "list" => "index.php",
    "element" => "#IBLOCK_ID#/#SECTION_ID#/#ELEMENT_ID#.php"
)


MakeComponentVariableAliases

Главный модуль>Классы>CComponentEngine>MakeComponentVariableAliases (5.1.8)

CComponentEngine::MakeComponentVariableAliases

Описание и параметры

array
MakeComponentVariableAliases(
 array arDefaultVariableAliases ,
 array arCustomVariableAliases
);

Метод принимает псевдонимы переменных по умолчанию и псевдонимы переменных, переданные во входных параметрах компонента и заменяет те псевдонимы переменных по умолчанию, которые были переопределены во входных параметрах компонента. Статический метод.

Параметры

Параметр | Описание
arDefaultVariableAliases | Массив псевдонимов переменных по умолчанию.
arCustomUrlTemplates | Массив псевдонимов переменных, переданных во входных параметрах компонента.

Возвращаемое значение

Массив псевдонимов переменных.

Смотрите также

  • Структура комплексного компонента
  • Псевдонимы входящих переменных
  • CComponentEngine::InitComponentVariables

    • Пример

    // если псевдонимов переменных по умолчанию имеет вид
$arDefaultVariableAliases404 = array();

// а во входных параметрах был передан массив
$arParams["VARIABLE_ALIASES"] = array(
    "element" => array(
        "IBLOCK_ID" => "BID",
        "SECTION_ID" => "SID",
    )
);

// тогда, после вызова метода
$arVariableAliases =
    CComponentEngine::MakeComponentVariableAliases($arDefaultVariableAliases404,
                                                   $arParams["VARIABLE_ALIASES"]);

// массив $arVariableAliases будет иметь вид
$arVariableAliases = array(
    "element" => array(
        "IBLOCK_ID" => "BID",
        "SECTION_ID" => "SID",
    )
)


MakePathFromTemplate

Главный модуль>Классы>CComponentEngine>MakePathFromTemplate (5.1.7)

CComponentEngine::MakePathFromTemplate

Описание и параметры

string
MakePathFromTemplate(
 string template ,
 array arParams
);

Метод заменяет в шаблоне template подстроки #SITE_DIR#, #SITE#, #SERVER_NAME# на значения системных констант SITE_DIR, SITE_ID, SITE_SERVER_NAME, соответственно. Статический метод.

Кроме того, метод заменяет все подстроки вида "#ключ массива arParams#" на соответствующие значения в соответствии с правилами массива arParams.

Параметры

Параметр | Описание
template | Шаблон пути, который может содержать подстроки вида "#.....#".
arParams Массив замен. Имеет формат:
array(
    "ключ1" => "значение 1",
    "ключ2" => "значение 2",
    * * *
)
Подстрока "#ключ1#" в шаблоне заменяется на "значение 1", "#ключ2#" - на "значение 2" и т.д.
Необязательный с версии 11.0.16.

Возвращаемое значение

Итоговая строка, получившаяся после замен из шаблона.

Пример

// Пусть во входных параметрах компонента - шаблон пути
$arParams["SECTION_PAGE_TEMPLATE2"] =
    "/#IBLOCK_ID#/#SECTION_ID#.php?s=#SITE#";

// Пусть в компоненте вычислены значения:
$IBLOCK_ID = 3;
$SECTION_ID = 982;

// Сформируем путь на основании этого шаблона и
// вычисленных в компоненте значений
$pagePath = CComponentEngine::MakePathFromTemplate(
    $arParams["SECTION_PAGE_TEMPLATE2"],
    array(
        "IBLOCK_ID" => $IBLOCK_ID,
        "SECTION_ID" => $SECTION_ID
    )
);

// В переменной $pagePath будет содержатся строка:
$pagePath = "/3/982.php?s=ru";


ParseComponentPath

Главный модуль>Классы>CComponentEngine>ParseComponentPath (5.1.7)

CComponentEngine::ParseComponentPath

Описание и параметры

mixed
ParseComponentPath(
 string folder404 ,
 array arUrlTemplates ,
 array & arVariables [,
 string requestURL]
);

Метод служит для поддержки ЧПУ режима в комплексных компонентах. Статический метод.

Метод выясняет код шаблона пути комплексного компонента на основании папки, в которой работает компонент, массива шаблонов путей и текущей запрошенной страницы. Кроме того, этот метод восстанавливает те переменные, которые были заданы с помощью пути.

Параметры

Параметр | Описание
folder404 | Путь, в котором работает комплексный компонент в режиме ЧПУ. Этот путь передается во входном параметре $arParams["SEF_FOLDER"].
arUrlTemplates | Массив шаблонов путей комплексного компонента для режима ЧПУ. Этот массив задается в коде комплексного компонента и может полностью или частично переопределиться с помощью входного параметра $arParams["SEF_URL_TEMPLATES"].
arVariables | Переменная, в которой возвращаются восстановленные из запрощенного пути переменные (на основании найденного шаблона пути).
requestURL | Запрошенный путь. По умолчанию равен $APPLICATION->GetCurPage(). Необязательный с версии 5.1.8.

Возвращаемое значение

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

Смотрите также

  • Структура комплексного компонента
  • Псевдонимы входящих переменных
  • CComponentEngine::MakeComponentUrlTemplates
    •

    Пример

    // если массив шаблонов путей имеет вид
$arUrlTemplates = array(
    "list" => "index.php",
    "element" => "#IBLOCK_ID#/#ELEMENT_ID#.php?SID=#SECTION_ID#"
);
// входной параметр SEF_FOLDER равен /company/news/
// запрошенный адрес равен /company/news/15/7653.php?SID=28

// то после вызова метода
$arVariables = array();
$page =
    CComponentEngine::ParseComponentPath($arParams["SEF_FOLDER"],
                                         $arUrlTemplates, $arVariables);

// в переменной $page будет строка "element"
// (код соответствующего шаблона)
// а массив $arVariables будет иметь вид
$arVariables = array(
    "IBLOCK_ID" => 15,
    "ELEMENT_ID" => 7653
)

    Примечание. Путь должен быть без слэша, именно #IBLOCK_ID#/, а не /#IBLOCK_ID#/. Иначе вернет false.


Класс CDatabase

Описание и методы

CDatabase - класс для работы с базой данной.

При запуске каждой страницы автоматически создаётся глобальный объект $DB класса CDatabase. Именно при помощи этого объекта и следует проводить все действия с базой данных.

Методы класса

Метод | Описание | С версии
ForSql | Преобразует строки для вставки в SQL запрос. |
Query | Выполняет запрос. |
QueryBind | Выполняет SQL-запросы типа "UPDATE", "INSERT", в которых есть необходимость связывания переменных (как правило для полей типа BLOB, CLOB, LONG и т.п.). | 3.0.10
QueryBindSelect | Выполняет SQL-запрос типа "SELECT", в котором есть необходимость связывания переменных. |
Update | Универсальный update в базу данных (без подготовки значений полей). |
NextID | Возвращает очередное значения сиквенса. |
Insert | Универсальный insert в базу данных (без подготовки значений полей). |
LastID | Получает ID последней вставленной записи. |
PrepareFields | Инициализирует глобальные переменные для вставки в SQL запрос. |
PrepareInsert | Универсальный insert в базу данных (c подготовкой значений полей). |
PrepareUpdate | Универсальный update в базу данных (c подготовкой значений полей). |
InitTableVarsForEdit | Инициализирует глобальные переменные для показа. |
ParseSqlBatch | Разбирает пакет запросов на массив. | 3.0.10
RunSqlBatch | Выполняет файл с пакетом запросов. | 3.0.10
StartTransaction | Открывает транзакцию. |
Commit | Записывает транзакцию. |
Rollback | Откатывает транзакцию. |
Connect | Соединяет с базой данных. |
Disconnect | Закрывает соединение с базой данных. |

Смотрите также

  • Работа с датой и временем
  • Функции для работы с датой и временем

Методы для работы с датой и временем

Метод | Описание | С версии
CurrentDateFunction | Возвращает функцию текущей даты. |
CurrentTimeFunction | Возвращает функцию текущей даты-время. | 4.0.4
CharToDateFunction | Строка для вставки значения даты в запрос к базе данных. |
DateToCharFunction | Строка для получения значения даты в запросе к базе данных. |
DateFormatToPHP | Конвертирует формат даты заданный для языка (сайта) в формат принятый в PHP (в функции date). | 3.0.10
FormatDate | Форматирует дату из одного формата в другой. | 3.0.10
CompareDates | Сравнивает две даты между собой. | 3.1.6
IsDate | Проверяет дату на правильность. |
DatetimeToTimestampFunction | Возвращает валидный timestamp без обращения к MakeTimeStamp. | 12.5.12

Примечание При работе с БД приведение времени к GMT является минимально необходимым. Чтобы меньше зависеть от настроек сервера, лучше использовать datetime. В этом случае текущее значение времени придется получать на PHP.


CharToDateFunction

Главный модуль>Классы>CDatabase>CharToDateFunction (с версии 3.0.7)

CDatabase::CharToDateFunction

Описание и параметры

string
CDatabase::CharToDateFunction(
 string value,
 string type = "FULL",
 string lang = false
 )

Возвращает для MySQL значение сконвертированное в формат YYYY-MM-DD [HH:MI:SS], для Oracle - метод вернет строку TO_DATE с нужными параметрами.
Форматы даты устанавливается в Региональных настройках [image] сайта. Нестатический метод.

Параметры

Параметр | Описание
value | Если функция вызывается в публичной части сайта, то это - значение даты для формата текущего сайта. Если функция вызывается в административной части, то это - значение даты для формата текущего языка.
type | Тип формата даты: "FULL" - для даты со временем, "SHORT" - для даты (без времени) Необязательный. По умолчанию "FULL".
lang | Код языка для административной части. Необязательный. По умолчанию текущий. Отсутствовал в версиях с 3.0.11 по 3.3.21.

Смотрите также

  • CDatabase::DateToCharFunction
  • Функции для работы с датой и временем

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

<?
$arr = getdate();
$ndate = mktime(9,0,0,$arr["mon"],$arr["mday"],$arr["year"]);
$next_exec = $DB->CharToDateFunction(GetTime($ndate,"FULL"));
CAgent::AddAgent("SendDailyStatistics();","statistic","Y",86400,"","Y",$next_exec, 25);
?>
<?
$strSql = "
    SELECT
        ID
    FROM
        my_table
    WHERE
        DATE_CREATE <= ".$DB->CharToDateFunction("10.01.2003 23:59:59")."
    ";
$rs = $DB->Query($strSql, false, $err_mess.__LINE__);
?>


Commit

Главный модуль>Классы>CDatabase>Commit (с версии 3.0.7)

CDatabase::Commit

CDatabase::Commit()

Завершает открытую транзакцию. Работает для Oracle, MSSQL, MySQL (для типа таблиц InnoDB). Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • CDatabase::Rollback
  • CDatabase::StartTransaction

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

<?
if (strlen($save)>0)
{
    if (CheckFields())
    {
        $DB->PrepareFields("b_form");
        $arFields = array(
            "TIMESTAMP_X"             => $DB->GetNowFunction(),
            "NAME"                    => "'".trim($str_NAME)."'",
            "VARNAME"                 => "'".trim($str_VARNAME)."'",
            "C_SORT"                  => "'".intval($str_C_SORT)."'",
            "FIRST_SITE_ID"           => "'".$DB->ForSql($FIRST_SITE_ID,2)."'",
            "BUTTON"                  => "'".$str_BUTTON."'",
            "DESCRIPTION"             => "'".$str_DESCRIPTION."'",
            "DESCRIPTION_TYPE"        => "'".$str_DESCRIPTION_TYPE."'",
            "SHOW_TEMPLATE"           => "'".trim($str_SHOW_TEMPLATE)."'",
            "MAIL_EVENT_TYPE"         => "'".$DB->ForSql("FORM_FILLING_".$str_VARNAME,50)."'",
            "SHOW_RESULT_TEMPLATE"    => "'".trim($str_SHOW_RESULT_TEMPLATE)."'",
            "PRINT_RESULT_TEMPLATE"   => "'".trim($str_PRINT_RESULT_TEMPLATE)."'",
            "EDIT_RESULT_TEMPLATE"    => "'".trim($str_EDIT_RESULT_TEMPLATE)."'",
            "FILTER_RESULT_TEMPLATE"  => "'".trim($str_FILTER_RESULT_TEMPLATE)."'",
            "TABLE_RESULT_TEMPLATE"   => "'".trim($str_TABLE_RESULT_TEMPLATE)."'",
            "STAT_EVENT1"             => "'".trim($str_STAT_EVENT1)."'",
            "STAT_EVENT2"             => "'".trim($str_STAT_EVENT2)."'",
            "STAT_EVENT3"             => "'".trim($str_STAT_EVENT3)."'"
            );
        $DB->StartTransaction();
        if ($ID>0)
        {
            $DB->Update("b_form", $arFields, "WHERE ID='".$ID."'", $err_mess.__LINE__);
        }
        else
        {
            $ID = $DB->Insert("b_form", $arFields, $err_mess.__LINE__);
            $new="Y";
        }
        $ID = intval($ID);
        if (strlen($strError)<=0)
        {
            $DB->Commit();
            if (strlen($save)>0) LocalRedirect("form_list.php?lang=".LANGUAGE_ID);
            elseif ($new=="Y") LocalRedirect("form_edit.php?lang=".LANGUAGE_ID."&ID=".$ID);
        }
        else $DB->Rollback();
    }
}?>


CompareDates

Главный модуль>Классы>CDatabase>CompareDates (с версии 3.1.6)

CDatabase::CompareDates

Описание и параметры

int
CDatabase::CompareDates(
 string date1,
 string date2,
)

Сравнивает между собой две даты. Возвращаемые значения:

Условие | Возвращаемое значение
date1 > date2 | 1
date1 < date2 | -1
date1 = date2 | 0

Нестатический метод.

Параметры

Параметр | Описание
date1 | Первая дата для сравнения.
date2 | Вторая дата для сравнения.

Смотрите также

  • Функции для работы с датой и временем
  • CheckFilterDates

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

<?
// зададим дату 1
$date1 = "01.01.2005";

// зададим дату 2
$date2 = "01.01.2006";

$result = $DB->CompareDates($date1, $date2);

if ($result==1) echo $date1." > ".$date2;
elseif ($result==-1) echo $date1." < ".$date2;
elseif ($result==0) echo $date1." = ".$date2;
?>


Connect

Главный модуль>Классы>CDatabase>Connect (с версии 3.0.7)

CDatabase::Connect

Описание и параметры

bool
CDatabase::Connect(
 string host,
 string db,
 string login,
 string password
)

Открывает соединение с базой данных. Метод возвращает "true" при успешном открытии соединения или "false" при ошибке. Нестатический метод.

Параметры

Параметр | Описание
host | Сервер (хост) базы данных.
db | Имя базы данных.
login | Логин.
password | Пароль.

Смотрите также

  • CDatabase::Disconnect

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

<?
if(!($DB->Connect($DBHost, $DBName, $DBLogin, $DBPassword)))
{
    if(file_exists($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/php_interface/dbconn_error.php"))
    {
        include($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/php_interface/dbconn_error.php");
    }
    else
    {
        include($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/dbconn_error.php");
    }
    die();
}
?>


CurrentDateFunction

Главный модуль>Классы>CDatabase>CurrentDateFunction (с версии 3.0.7)

CDatabase::CurrentDateFunction

string
CDatabase::CurrentDateFunction()

Метод возвращает SQL функцию, которая в свою очередь возвращающую текущую дату. А именно: "CURRENT_DATE" для MySQL и "TRUNC(SYSDATE)" для Oracle. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • CDatabase::CurrentTimeFunction
  • Функции для работы с датой и временем

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

<?
$strSql = "UPDATE my_table SET DATE_CHANGE=".$DB->CurrentDateFunction()." WHERE ID=45";
$Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);
?>
<?
$strSql = "
    SELECT
        ID
    FROM
        my_table
    WHERE
        DATE_CREATE <= ".$DB->CurrentDateFunction()."
    ";
$rs = $DB->Query($strSql, false, $err_mess.__LINE__);
?>


CurrentTimeFunction

Главный модуль>Классы>CDatabase>CurrentTimeFunction (с версии 4.0.4)

CDatabase::CurrentTimeFunction

string
CDatabase::CurrentTimeFunction()

Метод возвращает строку "SYSDATE" для Oracle версии и "now()" для MySQL. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • CDatabase::CurrentDateFunction
  • Функции для работы с датой и временем

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

<?
$DB->Update("my_table", Array("TIME_CHANGE" => $DB->CurrentTimeFunction()),
"WHERE ID=45", $err_mess.__LINE__);
?>
<?
$strSql = "
    UPDATE my_table SET
        TIME_CHANGE=".$DB->CurrentTimeFunction()."
    WHERE ID=45
    ";
$Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);
?>
<?
$strSql = "
    SELECT
        ID
    FROM
        my_table
    WHERE
        TIME_CHANGE <= ".$DB->CurrentTimeFunction()."
    ";
$rs = $DB->Query($strSql, false, $err_mess.__LINE__);
?>


DateFormatToPHP

Главный модуль>Классы>CDatabase>DateFormatToPHP (с версии 3.0.10)

CDatabase::DateFormatToPHP

Описание и параметры

string
CDatabase::DateFormatToPHP(
 string format
)

Метод конвертирует любой формат времени допустимый в настройках сайта в формат принятый в PHP. Нестатический метод.

Правила конвертации:

Исходные символы | После конвертации | Описание
YYYY | Y | Год (0001 - 9999)
MM | m | Месяц (01 - 12)
DD | d | День (01 - 31)
HH | H | Часы (00 - 24)
MI | i | Минуты (00 - 59)
SS | s | Секунды (00 - 59)

Параметры

Параметр | Описание
format | Формат для конвертации. До версии 12.0.7 назывался date_format

Смотрите также

  • CDatabase::FormatDate
  • CSite::GetDateFormat
  • Функции для работы с датой и временем

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

<?
// исходный формат
$format = "DD.MM.YYYY HH:MI:SS";

// переведем в PHP формат
$php_format = $DB->DateFormatToPHP($format); // d.m.Y H:i:s
?>
<?
// вывод текущей даты в формате текущего сайта

// получим формат сайта
$site_format = CSite::GetDateFormat("SHORT");

// переведем формат сайта в формат PHP
$php_format = $DB->DateFormatToPHP($site_format);

// выведем текущую дату в формате текущего сайта
echo date($php_format, time());
?>
<?
// вывод вчерашне даты в формате текущего сайта

// получим формат сайта
$site_format = CSite::GetDateFormat("SHORT");

// переведем формат сайта в формат PHP
$php_format = $DB->DateFormatToPHP($site_format);

// выведем вчерашнюю дату в формате текущего сайта
echo date($php_format, time()-86400);
?>


DatetimeToTimestampFunction

Главный модуль>Классы>CDatabase>DatetimeToTimestampFunction (с версии 12.5.12)

CDatabase::DatetimeToTimestampFunction

CDatabase::DatetimeToTimestampFunction(
 TABLE_FIELD
);

Позволяет выбирать дату в формате UNIX_TIMESTAMP без обращения к MakeTimeStamp. Нестатический метод.

Параметры

Параметр | Описание
TABLE_FIELD | Поле в БД которое требуется перевести из формата DATE TIME в формат TIMESTAMP.

Возвращаемое значение

Возвращает валидный timestamp.

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

<?
$strSql = "
    SELECT
ID,
".$DB-> DatetimeToTimestampFunction("DATE_CREATE")." DATE_CREATE
FROM
my_table
";
$rs = $DB->Query($strSql, false, $err_mess.__LINE__);
?>


DateToCharFunction

Главный модуль>Классы>CDatabase>DateToCharFunction (с версии 3.0.7)

CDatabase::DateToCharFunction

Описание и параметры

string
CDatabase::DateToCharFunction(
 string value,
 string type = "FULL",
 string lang = false
 string SearchInSitesOnly =false
 )

Возвращает для MySQL строку DATE_FORMAT, для Oracle - TO_CHAR с нужными параметрами.
Форматы даты устанавливается в Региональных настройках [image].
Нестатический метод.

Параметры

Параметр | Описание | С версии
value | Значение даты для формата текущего сайта. |
type | Тип формата даты: "FULL" - для даты со временем, "SHORT" - для даты (без времени) Необязательный. По умолчанию "FULL". |
lang | Код языка для административной части. Необязательный. По умолчанию текущий. Отсутствовал в версях с 3.0.11 до 3.3.21. |
SearchInSitesOnly | Необязательный. | 3.3.21

Смотрите также

  • CDatabase::CharToDateFunction
  • Функции для работы с датой и временем

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

<?
$strSql = "
    SELECT
        ID,
        ".$DB->DateToCharFunction("DATE_CREATE")."    DATE_CREATE
    FROM
        my_table
    ";
$rs = $DB->Query($strSql, false, $err_mess.__LINE__);
?>


Disconnect

Главный модуль>Классы>CDatabase>Disconnect (с версии 3.0.10)

CDatabase::Disconnect

CDatabase::Disconnect()

Закрывает соединение с базой данных.

Параметры

Без параметров.

Смотрите также

  • CDatabase::Connect

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

<?
$DB->Disconnect();
?>


FormatDate

Главный модуль>Классы>CDatabase>FormatDate (с версии 3.0.10)

CDatabase::FormatDate

Описание и параметры

string
CDatabase::FormatDate(
 string date,
 string format = "DD.MM.YYYY HH:MI:SS",
 string new_format = "DD.MM.YYYY HH:MI:SS"
)

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

Обозначение | Описание
YYYY | Год (0001 - 9999)
MM | Месяц (01 - 12)
DD | День (01 - 31)
HH | Часы (00 - 24)
MI | Минуты (00 - 59)
SS | Секунды (00 - 59)

Нестатический метод.

Параметры

Параметр | Описание
date | Дата для конвертации.
format | Текущий формат даты. Необязательный. По умолчанию - "DD.MM.YYYY HH:MI:SS".
new_format | В какой формат необходимо преобразовать. Необязательный. По умолчанию - "DD.MM.YYYY HH:MI:SS".

Смотрите также

  • CDatabase::DateFormatToPHP
  • CSite::GetDateFormat
  • ConvertDateTime
  • Функции для работы с датой и временем

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

<?
// зададим дату
$date = "31.12.2007";

// укажем формат этой даты
$format = "DD.MM.YYYY";

// получим формат текущего сайта
$new_format = CSite::GetDateFormat("SHORT"); // YYYY-MM-DD

// переведем дату из одного формата в другой
$new_date = $DB->FormatDate($date, $format, $new_format);

// в результате получим дату в новом формате
echo $new_date; // 2007-12-31
?>
<?
// конвертация даты из формата одного сайта в формат другого

// получим формат сайта ru
$format_ru = CSite::GetDateFormat("SHORT", "ru"); // DD.MM.YYYY

// получим формат сайта en
$format_en = CSite::GetDateFormat("SHORT", "en"); // YYYY-MM-DD

// переведем дату из формата сайта ru в формат сайта en
$new_date = $DB->FormatDate($date, $format_ru, $format_en);

// в результате получим дату в новом формате
echo $date; // 2007-12-31
?>


ForSql

Главный модуль>Классы>CDatabase>ForSql (с версии 3.0.7)

CDatabase::ForSql

Описание и параметры

string
CDatabase::ForSql(
 string value,
 int max_length=0
)

Подготавливает строку (заменяет кавычки и прочее) для вставки в SQL запрос. Если задан параметр max_length, то также обрезает строку до длины max_length. Нестатический метод.

Параметры

Параметр | Описание
value | Исходная строка.
max_length | Максимальная длина. Необязательный. По умолчанию - "0" (строка не обрезается).

Смотрите также

  • CDatabase::Query
  • CDatabase::Update
  • CDatabase::Insert

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

<?
$strSql = "
    SELECT
        ID
    FROM
        b_stat_phrase_list
    WHERE
        PHRASE='".$DB->ForSql($search_phrase)."'
    and SESSION_ID='".$_SESSION["SESS_SESSION_ID"]."'
    ";
$w = $DB->Query($strSql, false, $err_mess.__LINE__);
?>


InitTableVarsForEdit

Главный модуль>Классы>CDatabase>InitTableVarsForEdit (с версии 3.0.7)

CDatabase::InitTableVarsForEdit

Описание и параметры

CDatabase::InitTableVarsForEdit(
 string tablename,
 string IdentFrom = "str_",
 string IdentTo = "str_",
 string SuffixFrom = "",
 bool Always = false
 )

Создает глобальные переменные с именами ${prefix_to.имя_поля} и присваивает им значения переменных с именами ${prefix_from.имя_поля.postfix_from} переводя при этом в HTML-безопасный вид. Под "имя_поля" подразумеваются имена полей таблицы table.

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

Нестатический метод.

Параметры

Параметр | Описание | С версии
tablename | Название таблицы. |
IdentFrom | Префикс для переменных ИЗ которых будет производиться преобразование. Необязательный. По умолчанию "str_". |
IdentTo | Префикс для переменных В которые будет производиться преобразование. Необязательный. По умолчанию "str_". |
SuffixFrom | Суффикс (постфикс) для переменных ИЗ которых будет производиться преобразование. Необязательный. По умолчанию "". |
Always | Значение "true" - инициализировать переменные всегда, т.е. не зависимо были ли они изначально. Необязательный. По умолчанию - "false". | 3.3.12

Смотрите также

  • CDatabase::PrepareFields

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

<?
$stoplist = CStoplist::GetByID($ID);
if (!($stoplist && $stoplist->ExtractFields()))
{
    $ID=0;
    $str_ACTIVE="Y";
    $str_MASK_1="255";
    $str_MASK_2="255";
    $str_MASK_3="255";
    $str_MASK_4="255";
    $str_IP_1 = $net1;
    $str_IP_2 = $net2;
    $str_IP_3 = $net3;
    $str_IP_4 = $net4;
    $str_USER_AGENT = $user_agent;
    $str_DATE_START=GetTime(time(),"FULL");
    $str_MESSAGE = GetMessage("STAT_DEFAULT_MESSAGE");
    $str_MESSAGE_LID = LANGUAGE_ID;
    $str_SAVE_STATISTIC = "Y";
}
if (strlen($strError)>0) $DB->InitTableVarsForEdit("b_stop_list", "", "str_");
?>


Insert

Главный модуль>Классы>CDatabase>Insert (с версии 3.0.7)

CDatabase::Insert

Описание и параметры

mixed
CDatabase::Insert(
 string table,
 array fields,
 string error_position = "",
 bool debug = false,
 int exist_id = "",
 bool ignore_errors = false
)

Метод вставляет запись в таблицу table с значениями полей fields. Необходимые условия использования данной метода:

  • Необходимо наличие поля "ID" в таблице, представляющее из себя Primary Key для данной таблицы.
  • Для MySQL поле "ID" должно быть auto increment (если при вызове метода явно не задается параметр exist_id).
  • Для Oracle обязательно наличие sequence (последовательности) с именем вида "SQ_.table".
Возвращает ID вставленной записи или false в случае ошибки.

Примечание. Если необходимо вставить запись с определенным ID и при этом указать его в параметре fields, то метод возвращает 0, при этом запись вставляется. Если необходимо, чтобы метод вернул ID, который вы указывали, то его необходимо указывать в параметре exist_id.

Примечание: все значения полей должны быть подготовлены для SQL запроса, например, при помощи метода CDatabase::ForSql.

Нестатический метод.

Параметры

Параметр | Описание | С версии
table | Название таблицы. |
fields | Массив вида значений полей "поле"=>"значение",... |
error_position | Строка идентифицирующая позицию в коде, откуда была вызвана данная функция CDatabase::Insert. Если в SQL запросе будет ошибка и если в файле /bitrix/php_interface/dbconn.php установлена переменная $DBDebug=true;, то на экране будет выведена данная информация и сам SQL запрос. |
debug | Если значение - "true", то на экран будет выведен текст SQL запроса. |
exist_id | Если данный параметр задан в виде положительного числа, то при вставке записи в таблицу, будет добавлено поле с именем "ID" и значением exist_id. Если данный параметр явно не задан, то для Oracle таблицы будет добавлено поле "ID", со значением SQ_table.nextval(). |
ignore_errors | если значение "true", то в случае ошибки возникшей в результате выполнения SQL запроса, она будет проигнорирована и работа скрипта продолжена. | 3.2.7

Смотрите также

  • CDatabase::Query
  • CDatabase::ForSql
  • CDatabase::Update
  • CDatabase::PrepareInsert
  • CDatabase::PrepareUpdate

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

<?
if (strlen($save)>0)
{
    if (CheckFields())
    {
        $DB->PrepareFields("b_form");
        $arFields = array(
            "TIMESTAMP_X"             => $DB->GetNowFunction(),
            "NAME"                    => "'".trim($str_NAME)."'",
            "VARNAME"                 => "'".trim($str_VARNAME)."'",
            "C_SORT"                  => "'".intval($str_C_SORT)."'",
            "FIRST_SITE_ID"           => "'".$DB->ForSql($FIRST_SITE_ID,2)."'",
            "BUTTON"                  => "'".$str_BUTTON."'",
            "DESCRIPTION"             => "'".$str_DESCRIPTION."'",
            "DESCRIPTION_TYPE"        => "'".$str_DESCRIPTION_TYPE."'",
            "SHOW_TEMPLATE"           => "'".trim($str_SHOW_TEMPLATE)."'",
            "MAIL_EVENT_TYPE"         => "'".$DB->ForSql("FORM_FILLING_".$str_VARNAME,50)."'",
            "SHOW_RESULT_TEMPLATE"    => "'".trim($str_SHOW_RESULT_TEMPLATE)."'",
            "PRINT_RESULT_TEMPLATE"   => "'".trim($str_PRINT_RESULT_TEMPLATE)."'",
            "EDIT_RESULT_TEMPLATE"    => "'".trim($str_EDIT_RESULT_TEMPLATE)."'",
            "FILTER_RESULT_TEMPLATE"  => "'".trim($str_FILTER_RESULT_TEMPLATE)."'",
            "TABLE_RESULT_TEMPLATE"   => "'".trim($str_TABLE_RESULT_TEMPLATE)."'",
            "STAT_EVENT1"             => "'".trim($str_STAT_EVENT1)."'",
            "STAT_EVENT2"             => "'".trim($str_STAT_EVENT2)."'",
            "STAT_EVENT3"             => "'".trim($str_STAT_EVENT3)."'"
            );
        $DB->StartTransaction();
        if ($ID>0)
        {
            $DB->Update("b_form", $arFields, "WHERE ID='".$ID."'", $err_mess.__LINE__);
        }
        else
        {
            $ID = $DB->Insert("b_form", $arFields, $err_mess.__LINE__);
            $new="Y";
        }
        $ID = intval($ID);
        if (strlen($strError)<=0)
        {
            $DB->Commit();
            if (strlen($save)>0) LocalRedirect("form_list.php?lang=".LANGUAGE_ID);
            elseif ($new=="Y") LocalRedirect("form_edit.php?lang=".LANGUAGE_ID."&ID=".$ID);
        }
        else $DB->Rollback();
    }
}
?>


IsDate

Главный модуль>Классы>CDatabase>IsDate (с версии 3.0.7)

CDatabase::IsDate

Описание и параметры

bool
CDatabase::IsDate(
 string date,
 string format=false,
 string lang=false,
 string format_type="SHORT"
 )

Проверяет дату на корректность и возвращает "true" если дата корректна, в противном случае - "false". Нестатический метод.

Параметры

Параметр | Описание | С версии
date | Строка с проверяемой датой. |
format | Формат даты. Необязательный. По умолчанию - "false" - определять формат по текущему сайту, либо языку (если административная часть). |
lang | Код сайта для публичной части, либо код языка для административной части (для определения формата, если format равен false). Необязательный. По умолчанию - текущий сайт, либо текущий язык (если административная часть). |
format_type | Тип формата даты: "FULL" - для даты со временем, "SHORT" - для даты (без времени) Необязательный. По умолчанию "SHORT". С версии 3.3.7 до версии 4.1.0 назывался Type. | 3.3.7

Смотрите также

  • Функции для работы с датой и временем
  • CheckFilterDates

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

<?
if (!$DB->IsDate("12.10.2005 22:34:15", "DD.MM.YYYY HH:MI:SS"))
  echo "Ошибка. Неверный формат даты.";
?>


LastID

Главный модуль>Классы>CDatabase>LastID (с версии 3.0.7)

CDatabase::LastID

Только для MySQL версии!

int
CDatabase::LastID()

Метод возвращает ID последней вставленной записи. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • CDatabase::Query

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

<?
function AddResultAnswer($arFields)
{
    $err_mess = (CForm::err_mess())."<br>Function: AddResultAnswer<br>Line: ";
    global $DB;
    $arInsert = $DB->PrepareInsert("b_form_result_answer", $arFields, "form");
    $strSql = "INSERT INTO b_form_result_answer (".$arInsert[0].") VALUES (".$arInsert[1].")";
    $DB->Query($strSql, false, $err_mess.__LINE__);
    return intval($DB->LastID());
}
?>


NextID

Главный модуль>Классы>CDatabase>NextID (с версии 3.0.7)

CDatabase::NextID

Только для Oracle версии!

int
CDatabase::NextID(
 string sequence_name
)

Метод возвращает следующее значение из sequence sequence_name. Нестатический метод.

Параметры

Параметр | Описание
sequence_name | Имя sequence.

Смотрите также

  • CDatabase::Query

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

<?
function AddResultAnswer($arFields)
{
    $err_mess = (CForm::err_mess())."<br>Function: AddResultAnswer<br>Line: ";
    global $DB;
    $arBinds = array();
    $arInsert = $DB->PrepareInsert("b_form_result_answer", $arFields, "form");
    $AID = $DB->NextID("sq_b_form_result_answer");
    $strSql="INSERT INTO b_form_result_answer (ID,".$arInsert[0].") VALUES ($AID,".$arInsert[1].")";
    if (is_set($arFields, "USER_TEXT"))
        $arBinds["USER_TEXT"] = $arFields["USER_TEXT"];
    if (is_set($arFields, "ANSWER_TEXT_SEARCH"))
        $arBinds["ANSWER_TEXT_SEARCH"] = $arFields["ANSWER_TEXT_SEARCH"];
    if (is_set($arFields, "ANSWER_VALUE_SEARCH"))
        $arBinds["ANSWER_VALUE_SEARCH"] = $arFields["ANSWER_VALUE_SEARCH"];
    if (is_set($arFields, "USER_TEXT_SEARCH"))
        $arBinds["USER_TEXT_SEARCH"] = $arFields["USER_TEXT_SEARCH"];
    $DB->QueryBind($strSql, $arBinds);
    return $AID;
}
?>


ParseSqlBatch

Главный модуль>Классы>CDatabase>ParseSqlBatch (с версии 3.0.10)

CDatabase::ParseSqlBatch

Описание и параметры

array
CDatabase::ParseSqlBatch(
 string sql,
 bool Incremental = False
)

Метод разбирает строку из пакета запросов на массив запросов и возвращает этот массив. Нестатический метод.

Параметры

Параметр | Описание | С версии
sql | Строка с пакетом запросов, разделенных символом ";" для MySQL версии и символом "/" для Oracle версии. |
Incremental | Необязательный. | 3.1.0

Смотрите также

  • CDatabase::RunSqlBatch
  • CDatabase::Query

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

<?
function RunSqlBatch($filepath)
{
    $arErr = Array();
    // откроем файл с запросами
    $f = @fopen($filepath, "rb");
    if($f)
    {
        $contents = fread($f, filesize($filepath));
        fclose($f);

        // разобьем на отдельные запросы
        $arSql = $this->ParseSqlBatch($contents);
        for($i=0; $i<count($arSql); $i++)
        {
            $strSql = str_replace("\r\n", "\n", $arSql[$i]);
            if(!$this->Query($strSql, true))
                $arErr[] = $this->db_Error;
        }
    }
    if(count($arErr)>0)
        return $arErr;

    return false;
}
?>


PrepareFields

Главный модуль>Классы>CDatabase>PrepareFields (с версии 3.0.7)

CDatabase::PrepareFields

Описание и параметры

CDatabase::PrepareFields(
 string TableName,
 string prefix = "str_",
 string Suffix = ""
)

Метод подготавливает глобальные переменные, соответствующие именам полей таблицы table для записи в БД. Нестатический метод.

Создает глобальные переменные ${prefix.имя_поля.postfix} и устанавливает их значениями глобальных переменных, соответствующих именам полей из таблицы table, предварительно преобразовав их в зависимости от типа поля.

Например, для поля типа int будет выполнено:

${prefix.имя_поля.postfix} = intval(${имя_поля});
Для поля типа varchar:

${prefix.имя_поля.postfix} = CDatabase::ForSql(${имя_поля}, размер_поля);

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

Параметры

Параметр | Описание
TableName | Имя таблицы.
prefix | Префикс переменных. Необязательный. По умолчанию "str_".
Suffix | Постфикс переменных. Необязательный. По умолчанию пустая строка.

Смотрите также

  • CDatabase::InitTableVarsForEdit

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

<?
if (strlen($save)>0)
{
    if (CheckFields())
    {
        $DB->PrepareFields("b_form");
        $arFields = array(
            "TIMESTAMP_X"             => $DB->GetNowFunction(),
            "NAME"                    => "'".trim($str_NAME)."'",
            "VARNAME"                 => "'".trim($str_VARNAME)."'",
            "C_SORT"                  => "'".intval($str_C_SORT)."'",
            "FIRST_SITE_ID"           => "'".$DB->ForSql($FIRST_SITE_ID,2)."'",
            "BUTTON"                  => "'".$str_BUTTON."'",
            "DESCRIPTION"             => "'".$str_DESCRIPTION."'",
            "DESCRIPTION_TYPE"        => "'".$str_DESCRIPTION_TYPE."'",
            "SHOW_TEMPLATE"           => "'".trim($str_SHOW_TEMPLATE)."'",
            "MAIL_EVENT_TYPE"         => "'".$DB->ForSql("FORM_FILLING_".$str_VARNAME,50)."'",
            "SHOW_RESULT_TEMPLATE"    => "'".trim($str_SHOW_RESULT_TEMPLATE)."'",
            "PRINT_RESULT_TEMPLATE"   => "'".trim($str_PRINT_RESULT_TEMPLATE)."'",
            "EDIT_RESULT_TEMPLATE"    => "'".trim($str_EDIT_RESULT_TEMPLATE)."'",
            "FILTER_RESULT_TEMPLATE"  => "'".trim($str_FILTER_RESULT_TEMPLATE)."'",
            "TABLE_RESULT_TEMPLATE"   => "'".trim($str_TABLE_RESULT_TEMPLATE)."'",
            "STAT_EVENT1"             => "'".trim($str_STAT_EVENT1)."'",
            "STAT_EVENT2"             => "'".trim($str_STAT_EVENT2)."'",
            "STAT_EVENT3"             => "'".trim($str_STAT_EVENT3)."'"
            );
        if ($ID>0)
        {
            $DB->Update("b_form", $arFields, "WHERE ID='".$ID."'", $err_mess.__LINE__);
        }
        else
        {
            $ID = $DB->Insert("b_form", $arFields, $err_mess.__LINE__);
            $new="Y";
        }
        $ID = intval($ID);
        if (strlen($strError)<=0)
        {
            if (strlen($save)>0) LocalRedirect("form_list.php?lang=".LANGUAGE_ID);
            elseif ($new=="Y") LocalRedirect("form_edit.php?lang=".LANGUAGE_ID."&ID=".$ID);
        }
    }
}
?>


PrepareInsert

Главный модуль>Классы>CDatabase>PrepareInsert (с версии 3.0.7)

CDatabase::PrepareInsert

Описание и параметры

array
CDatabase::PrepareInsert(
 string TableName,
 array fields,
 string FileDir = "",
 string lang = false
)

Метод подготавливает массив из двух строк для SQL запроса вставки записи в базу данных. Возвращает массив из двух элементов, где элемент с ключом 0 строка список полей вида "имя поля1, имя поля2[, ...]", а элемент с ключом 1 строка значений вида "значение1, значение2[, ...]". При этом метод сам преобразует все значение в SQL вид в зависимости от типа поля. Нестатический метод.

Параметры

Параметр | Описание
TableName | Имя таблицы для вставки записи.
fields | Массив значений полей в формате "имя поля1"=>"значение1", "имя поля2"=>"значение2" [, ...]. Если необходимо вставить значение NULL, то значение должно быть равно false.
FileDir | Не используется.
lang | Код сайта для публичной части, либо код языка для административной части. Используется для определения формата даты, для вставки полей типа date или datetime. Необязательный. По умолчанию false.

Смотрите также

  • CDatabase::PrepareUpdate

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

<?
function AddResultAnswer($arFields)
{
    $err_mess = (CForm::err_mess())."<br>Function: AddResultAnswer<br>Line: ";
    global $DB;
    $arInsert = $DB->PrepareInsert("b_form_result_answer", $arFields, "form");
    $strSql = "INSERT INTO b_form_result_answer (".$arInsert[0].") VALUES (".$arInsert[1].")";
    $DB->Query($strSql, false, $err_mess.__LINE__);
    return intval($DB->LastID());
}
?>


PrepareUpdate

Главный модуль>Классы>CDatabase>PrepareUpdate (с версии 3.0.7)

CDatabase::PrepareUpdate

Описание и параметры

array
CDatabase::PrepareUpdate(
 string TableName,
 array fields,
 string FileDir="",
 string lang=false,
 string TableAlias = ""
)

Метод подготавливает строку для SQL запроса изменения записи в базе данных. Возвращает строку вида "имя поля1 = значение1", имя поля2 = значение2[, ...]". При этом метод сам преобразует все значение в SQL вид в зависимости от типа поля. Нестатический метод.

Параметры

Параметр | Описание | С версии
TableName | Имя таблицы. |
fields | Массив значений полей в формате "имя поля1"=>"значение1", "имя поля2"=>"значение2" [, ...]. Если необходимо изменить значение на NULL, то значение в массиве должно быть равно false. |
FileDir | Не используется. |
lang | Код сайта для публичной части, либо код языка для административной части. Используется для определения формата даты, для вставки полей типа date или datetime. Необязательный. По умолчанию false. |
TableAlias | Необязательный. | 12.0.9

Смотрите также

  • CDatabase::PrepareInsert

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

<?
function UpdateResultField($arFields, $RESULT_ID, $FIELD_ID)
{
    $err_mess = (CForm::err_mess())."<br>Function: UpdateResultField<br>Line: ";
    global $DB;
    $RESULT_ID = intval($RESULT_ID);
    $FIELD_ID = intval($FIELD_ID);
    $strUpdate = $DB->PrepareUpdate("b_form_result_answer", $arFields, "form");
    $strSql = "UPDATE b_form_result_answer SET ".$strUpdate." WHERE RESULT_ID=".$RESULT_ID." and FIELD_ID=".$FIELD_ID;
    $DB->Query($strSql, false, $err_mess.__LINE__);
}
?>


Query

Главный модуль>Классы>CDatabase>Query (с версии 3.0.7)

CDatabase::Query

Описание и параметры

mixed
CDatabase::Query(
 string sql,
 bool ignore_errors=false,
 string error_position="",
 array Options=array()
)

Метод выполняет запрос к базе данных и если не произошло ошибки возвращает результат. В случае успешного выполнения метод возвращает объект класса CDBResult.
Если произошла ошибка и параметр ignore_errors равен "true", то метод вернет "false".
Если произошла ошибка и параметр ignore_errors равен "false", то метод прерывает выполнение страницы, выполняя перед этим следующие действия:

  1. Вызов функции AddMessage2Log.
  2. Если текущий пользователь является администратором сайта, либо в файле /bitrix/php_interface/dbconn.php была инициализирована переменная $DBDebug=true;, то на экран будет выведен полный текст ошибки, в противном случае будет вызвана функция SendError.
  3. Будет подключен файл /bitrix/php_interface/dbquery_error.php, если он не существует, то будет подключен файл /bitrix/modules/main/include/dbquery_error.php

Примечания для Oracle версии:
1. При возникновении ошибки, если была открыта транзакция, то выполняется CDataBase::Rollback.
2. Для вставки текстовых полей типа BLOB, CLOB, LONG и т.п. (длинною больше 4000 символов), воспользуйтесь методом CDatabase::QueryBind.
3. Если при выполнении SQL-запроса типа "SELECT" требуется связывание переменных, то воспользуйтесь методом CDatabase::QueryBindSelect.

Нестатический метод.

Аналог метода в новом ядре D7 - Bitrix\Main\DB\Connection::query [image].

Параметры

Параметр | Описание | С версии
sql | SQL запрос. |
ignore_errors | Игнорировать ошибки. Если true, то в случае ошибки функция возвращает "false". Если параметр ignore_errors равен "false", то в случае ошибки функция прекращает выполнение всей страницы. Необязательный. По умолчанию - "false". |
error_position | Строка идентифицирующая позицию в коде, откуда была вызвана данная функция CDatabase::Query. Если в SQL запросе будет ошибка и если в файле /bitrix/php_interface/dbconn.php установлена переменная $DBDebug=true;, то на экране будет выведена данная информация и сам SQL запрос. Необязательный. |
Options | Необязательный. | 9.5.10

Смотрите также

  • CDatabase::QueryBind
  • CDatabase::QueryBindSelect
  • CDatabase::ForSql
  • AddMessage2Log

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

<?
function GetByID($ID, $GET_BY_SID="N")
{
    $err_mess = (CForm::err_mess())."<br>Function: GetByID<br>Line: ";
    global $DB;
    $where = ($GET_BY_SID=="N") ? " F.ID = '".intval($ID)."' " : " F.VARNAME='".$DB->ForSql($ID,50)."' ";
    $strSql = "
        SELECT
            F.*,
            F.FIRST_SITE_ID,
            F.FIRST_SITE_ID									LID,
            F.VARNAME,
            F.VARNAME										SID,
            ".$DB->DateToCharFunction("F.TIMESTAMP_X")."	TIMESTAMP_X,
            count(distinct D1.ID)							C_FIELDS,
            count(distinct D2.ID)							QUESTIONS,
            count(distinct S.ID)							STATUSES
        FROM b_form F
        LEFT JOIN b_form_status S ON (S.FORM_ID = F.ID)
        LEFT JOIN b_form_field D1 ON (D1.FORM_ID = F.ID and D1.ADDITIONAL='Y')
        LEFT JOIN b_form_field D2 ON (D2.FORM_ID = F.ID and D2.ADDITIONAL<>'Y')
        WHERE
            $where
        GROUP BY
            F.ID
        ";
    $res = $DB->Query($strSql, false, $err_mess.__LINE__);
    return $res;
}
?>


QueryBind

Главный модуль>Классы>CDatabase>QueryBind (с версии 3.0.7)

CDatabase::QueryBind

Описание и параметры

Только для Oracle версии!

mixed
CDatabase::QueryBind(
 string sql,
 array binds,
 bool ignore_errors=false,
 string error_position=""
)

Выполняет SQL-запросы типа "UPDATE", "INSERT", в которых есть необходимость связывания переменных (как правило для полей типа BLOB, CLOB, LONG и т.п.). Нестатический метод.

В случае успешного выполнения метод возвращает объект класса CDBResult.
Если произошла ошибка и параметр ignore_errors равен "true", то метод вернет "false".
Если произошла ошибка и параметр ignore_errors равен "false", то метод прерывает выполнение страницы, выполняя перед этим следующие действия:

  1. Вызов функции AddMessage2Log.
  2. Если текущий пользователь является администратором сайта, либо в файле /bitrix/php_interface/dbconn.php была инициализирована переменная $DBDebug=true;, то на экран будет выведен полный текст ошибки, в противном случае будет вызвана функция SendError.
  3. Будет подключен файл /bitrix/php_interface/dbquery_error.php, если он не существует, то будет подключен файл /bitrix/modules/main/include/dbquery_error.php

Параметры

Параметр | Описание
sql | SQL запрос.
binds | Массив полей типа BLOB, CLOB, LONG и т.п. в формате array("имя поля" => "значение" [, ...]).
ignore_errors | Игнорировать ошибки. Если true, то в случае ошибки метод возвращает "false". Если параметр ignore_errors равен "false", то в случае ошибки метод прекращает выполнение всей страницы. Необязательный. По умолчанию - "false".
error_position | Строка идентифицирующая позицию в коде, откуда был вызван данный метод CDatabase::QueryBind. Если в SQL запросе будет ошибка и если в файле /bitrix/php_interface/dbconn.php установлена переменная $DBDebug=true;, то на экране будет выведена данная информация и сам SQL запрос.

Смотрите также

  • CDatabase::Query
  • CDatabase::QueryBindSelect
  • CDatabase::ForSql
  • AddMessage2Log

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

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("TEST CLOB");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");

// обновление поля

$MY_FIELD_VALUE = "123";

// обновим поле MY_FIELD типа CLOB
$strError = "";
$arFields["NEWS_TEXT_FCK"] = $MY_FIELD_VALUE;
$strUpdate = $DB->PrepareUpdate("aa_abc", $arFields);
if($strUpdate != "")
{
$strSql = "UPDATE aa_abc SET ".$strUpdate." WHERE ID=15";
// в переменной $MY_FIELD_VALUE содержится текст длиной более 4000 символов
$arBinds = array("NEWS_TEXT_FCK" => $MY_FIELD_VALUE);

// выполним запрос со связыванием :MY_FIELD с реальным значением
if(!$DB->QueryBind($strSql, $arBinds))
$strError = "Query Error!";
}
if($strError=="")
echo "all Ok!";

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>


QueryBindSelect

Главный модуль>Классы>CDatabase>QueryBindSelect (с версии 3.0.7)

CDatabase::QueryBindSelect

Описание и параметры

Только для Oracle версии!

mixed
CDatabase::QueryBindSelect(
 string sql,
 array binds,
 bool ignore_errors=false,
 string error_position=""
)

Выполняет SQL-запрос типа "SELECT", в котором есть необходимость связывание переменных. Нестатический метод.

В случае успешного выполнения метод возвращает объект класса CDBResult.
Если произошла ошибка и параметр ignore_errors равен "true", то метод вернет "false".
Если произошла ошибка и параметр ignore_errors равен "false", то метод прерывает выполнение страницы, выполняя перед этим следующие действия:

  1. Вызов функции AddMessage2Log.
  2. Если текущий пользователь является администратором сайта, либо в файле /bitrix/php_interface/dbconn.php была инициализирована переменная $DBDebug=true;, то на экран будет выведен полный текст ошибки, в противном случае будет вызвана функция SendError.
  3. Будет подключен файл /bitrix/php_interface/dbquery_error.php, если он не существует, то будет подключен файл /bitrix/modules/main/include/dbquery_error.php

Параметры

Параметр | Описание
sql | SQL запрос.
binds | Массив полей типа BLOB, CLOB, LONG и т.п. в формате array("имя поля" => "значение" [, ...])
ignore_errors | Игнорировать ошибки. Если true, то в случае ошибки метод возвращает "false". Если параметр ignore_errors равен "false", то в случае ошибки метод прекращает выполнение всей страницы. Необязательный. По умолчанию - "false".
error_position | Строка идентифицирующая позицию в коде, откуда был вызван метод CDatabase::QueryBindSelect. Если в SQL запросе будет ошибка и если в файле /bitrix/php_interface/dbconn.php установлена переменная $DBDebug=true;, то на экране будет выведена данная информация и сам SQL запрос.

Смотрите также

  • CDatabase::Query
  • CDatabase::QueryBind
  • CDatabase::ForSql
  • AddMessage2Log

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

<?
$strSql = "
    SELECT
        *
    FROM
        my_table
    WHERE
        :url like '/ru/index.php%'
    ";
$arrBind = array("url" => $APPLICATION->GetCurUri());
$rs = $DB->QueryBindSelect($strSql, $arrBind, false, "F: ".__FILE__." L: ".__LINE__);
?>


Rollback

Главный модуль>Классы>CDatabase>Rollback (с версии 3.0.7)

CDatabase::Rollback

CDatabase::Rollback()

Откатывает назад изменения произведенные открытой и незавершенной транзакцией. Работает для Oracle, MSSQL, MySQL (для типа таблиц InnoDB). Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • CDatabase::Commit
  • CDatabase::StartTransaction

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

<?
if (strlen($save)>0)
{
    if (CheckFields())
    {
        $DB->PrepareFields("b_form");
        $arFields = array(
            "TIMESTAMP_X"             => $DB->GetNowFunction(),
            "NAME"                    => "'".trim($str_NAME)."'",
            "VARNAME"                 => "'".trim($str_VARNAME)."'",
            "C_SORT"                  => "'".intval($str_C_SORT)."'",
            "FIRST_SITE_ID"           => "'".$DB->ForSql($FIRST_SITE_ID,2)."'",
            "BUTTON"                  => "'".$str_BUTTON."'",
            "DESCRIPTION"             => "'".$str_DESCRIPTION."'",
            "DESCRIPTION_TYPE"        => "'".$str_DESCRIPTION_TYPE."'",
            "SHOW_TEMPLATE"           => "'".trim($str_SHOW_TEMPLATE)."'",
            "MAIL_EVENT_TYPE"         => "'".$DB->ForSql("FORM_FILLING_".$str_VARNAME,50)."'",
            "SHOW_RESULT_TEMPLATE"    => "'".trim($str_SHOW_RESULT_TEMPLATE)."'",
            "PRINT_RESULT_TEMPLATE"   => "'".trim($str_PRINT_RESULT_TEMPLATE)."'",
            "EDIT_RESULT_TEMPLATE"    => "'".trim($str_EDIT_RESULT_TEMPLATE)."'",
            "FILTER_RESULT_TEMPLATE"  => "'".trim($str_FILTER_RESULT_TEMPLATE)."'",
            "TABLE_RESULT_TEMPLATE"   => "'".trim($str_TABLE_RESULT_TEMPLATE)."'",
            "STAT_EVENT1"             => "'".trim($str_STAT_EVENT1)."'",
            "STAT_EVENT2"             => "'".trim($str_STAT_EVENT2)."'",
            "STAT_EVENT3"             => "'".trim($str_STAT_EVENT3)."'"
            );
        $DB->StartTransaction();
        if ($ID>0)
        {
            $DB->Update("b_form", $arFields, "WHERE ID='".$ID."'", $err_mess.__LINE__);
        }
        else
        {
            $ID = $DB->Insert("b_form", $arFields, $err_mess.__LINE__);
            $new="Y";
        }
        $ID = intval($ID);
        if (strlen($strError)<=0)
        {
            $DB->Commit();
            if (strlen($save)>0) LocalRedirect("form_list.php?lang=".LANGUAGE_ID);
            elseif ($new=="Y") LocalRedirect("form_edit.php?lang=".LANGUAGE_ID."&ID=".$ID);
        }
        else $DB->Rollback();
    }
}
?>


RunSqlBatch

Главный модуль>Классы>CDatabase>RunSqlBatch (с версии 3.0.10)

CDatabase::RunSqlBatch

Описание и параметры

mixed
CDatabase::RunSqlBatch(
 string path,
 bool Incremental = False
)

Метод выполняет пакет запросов из файла path. Возвращает "false", если все запросы выполнились, или массив ошибок для запросов которые привели к ошибке. Нестатический метод.

Параметры

Параметр | Описание | С версии
path | Файл с пакетом запросов. Для MySQL версии запросы разделяются символом ";", для Oracle версии разделитель "/". |
Incremental | Необязательный. По умолчанию False. | 3.1.0

Смотрите также

  • CDatabase::ParseSqlBatch
  • CDatabase::Query

Пример вызова функции

<?
$arrErrors = $DB->RunSqlBatch($_SERVER["DOCUMENT_ROOT"].
"/bitrix/modules/form/install/db/".strtolower($DB->type)."/install.sql");
?>

Пример файла c запросами для MySQL

create table if not exists b_stat_adv_searcher (
   ID int(11) not null auto_increment,
   ADV_ID int(11) not null,
   SEARCHER_ID int(11) not null,
   primary key (ID));
insert  into b_stat_adv (ID, REFERER1, REFERER2) values (1, 'aport', '') ;
insert  into b_stat_adv_searcher (ID, ADV_ID, SEARCHER_ID) values (1, 2, 4) ;

Пример файла c запросами для Oracle

CREATE TABLE B_STAT_ADDITIONAL
(
    ID         NUMBER(18)    NOT NULL,
    C_TYPE     VARCHAR2(255) NOT NULL,
    NAME       NUMBER(18)    NULL,
    SESSIONS   NUMBER(18)    DEFAULT 0 NOT NULL,
    HITS       NUMBER(18)    DEFAULT 0 NOT NULL,
    NEW_GUESTS NUMBER(18)    DEFAULT 0 NOT NULL,
    C_EVENTS   NUMBER(18)    DEFAULT 0 NOT NULL,
    PRIMARY KEY (ID)
)
/
CREATE SEQUENCE SQ_B_STAT_ADDITIONAL
    START WITH 44
    INCREMENT BY 1
    NOMINVALUE
    NOMAXVALUE
    NOCYCLE
    NOCACHE
    NOORDER
/
INSERT INTO B_STAT_ADV (ID, REFERER1, REFERER2) VALUES (1, 'aport', '')
/
DROP SEQUENCE SQ_B_STAT_ADV
/
CREATE SEQUENCE SQ_B_STAT_ADV
    START WITH 8
    INCREMENT BY 1
    NOMINVALUE
    NOMAXVALUE
    NOCYCLE
    NOCACHE
    NOORDER
/
INSERT INTO B_STAT_ADV_SEARCHER (ID, ADV_ID, SEARCHER_ID) VALUES (1, 2, 4)
/


StartTransaction

Главный модуль>Классы>CDatabase>StartTransaction (с версии 3.0.7)

CDatabase::StartTransaction

CDatabase::StartTransaction()

Открывает транзакцию. Для закрытия используйте Commit или Rollback. Работает для Oracle, MSSQL, MySQL (для типа таблиц InnoDB). Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • CDatabase::Commit
  • CDatabase::Rollback

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

<?
if (strlen($save)>0)
{
    if (CheckFields())
    {
        $DB->PrepareFields("b_form");
        $arFields = array(
            "TIMESTAMP_X"             => $DB->GetNowFunction(),
            "NAME"                    => "'".trim($str_NAME)."'",
            "VARNAME"                 => "'".trim($str_VARNAME)."'",
            "C_SORT"                  => "'".intval($str_C_SORT)."'",
            "FIRST_SITE_ID"           => "'".$DB->ForSql($FIRST_SITE_ID,2)."'",
            "BUTTON"                  => "'".$str_BUTTON."'",
            "DESCRIPTION"             => "'".$str_DESCRIPTION."'",
            "DESCRIPTION_TYPE"        => "'".$str_DESCRIPTION_TYPE."'",
            "SHOW_TEMPLATE"           => "'".trim($str_SHOW_TEMPLATE)."'",
            "MAIL_EVENT_TYPE"         => "'".$DB->ForSql("FORM_FILLING_".$str_VARNAME,50)."'",
            "SHOW_RESULT_TEMPLATE"    => "'".trim($str_SHOW_RESULT_TEMPLATE)."'",
            "PRINT_RESULT_TEMPLATE"   => "'".trim($str_PRINT_RESULT_TEMPLATE)."'",
            "EDIT_RESULT_TEMPLATE"    => "'".trim($str_EDIT_RESULT_TEMPLATE)."'",
            "FILTER_RESULT_TEMPLATE"  => "'".trim($str_FILTER_RESULT_TEMPLATE)."'",
            "TABLE_RESULT_TEMPLATE"   => "'".trim($str_TABLE_RESULT_TEMPLATE)."'",
            "STAT_EVENT1"             => "'".trim($str_STAT_EVENT1)."'",
            "STAT_EVENT2"             => "'".trim($str_STAT_EVENT2)."'",
            "STAT_EVENT3"             => "'".trim($str_STAT_EVENT3)."'"
            );
        $DB->StartTransaction();
        if ($ID>0)
        {
            $DB->Update("b_form", $arFields, "WHERE ID='".$ID."'", $err_mess.__LINE__);
        }
        else
        {
            $ID = $DB->Insert("b_form", $arFields, $err_mess.__LINE__);
            $new="Y";
        }
        $ID = intval($ID);
        if (strlen($strError)<=0)
        {
            $DB->Commit();
            if (strlen($save)>0) LocalRedirect("form_list.php?lang=".LANGUAGE_ID);
            elseif ($new=="Y") LocalRedirect("form_edit.php?lang=".LANGUAGE_ID."&ID=".$ID);
        }
        else $DB->Rollback();
    }
}
?>


Update

Главный модуль>Классы>CDatabase>Update (с версии 3.0.7)

CDatabase::Update

Описание и параметры

int
CDatabase::Update(
 string table,
 array fields,
 string where = "",
 string error_position = "",
 bool debug = false,
 bool ignore_errors = false,
 string additional_check=true
 )

Метод изменяет записи в таблицы table значениями полей fields. Возвращает количество измененных записей. Нестатический метод.

Примечание: все значения полей должны быть подготовлены для SQL запроса, например, при помощи метода CDatabase::ForSql.

Параметры

Параметр | Описание | С версии
table | Название таблицы. |
fields | Массив вида значений полей "поле"=>"значение",... |
where | Ограничение для WHERE в формате SQL Необязательный. По умолчанию все записи в таблице будут изменены. |
error_position | Строка идентифицирующая позицию в коде, откуда был вызван метод CDatabase::Update. Если в SQL запросе будет ошибка и если в файле /bitrix/php_interface/dbconn.php установлена переменная $DBDebug=true;, то на экране будет выведена данная информация и сам SQL запрос. |
debug | Если значение - "true", то на экран будет выведен текст SQL запроса. |
ignore_errors | если значение "true", то в случае ошибки возникшей в результате выполнения SQL запроса, она будет проигнорирована и работа скрипта продолжена. | 3.2.7
additional_check | Необязательный. По умолчанию true. | 5.1.7

Смотрите также

  • CDatabase::Query
  • CDatabase::ForSql
  • CDatabase::Insert
  • CDatabase::PrepareInsert
  • CDatabase::PrepareUpdate

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

<?
if (strlen($save)>0)
{
    if (CheckFields())
    {
        $DB->PrepareFields("b_form");
        $arFields = array(
            "TIMESTAMP_X"             => $DB->GetNowFunction(),
            "NAME"                    => "'".trim($str_NAME)."'",
            "VARNAME"                 => "'".trim($str_VARNAME)."'",
            "C_SORT"                  => "'".intval($str_C_SORT)."'",
            "FIRST_SITE_ID"           => "'".$DB->ForSql($FIRST_SITE_ID,2)."'",
            "BUTTON"                  => "'".$str_BUTTON."'",
            "DESCRIPTION"             => "'".$str_DESCRIPTION."'",
            "DESCRIPTION_TYPE"        => "'".$str_DESCRIPTION_TYPE."'",
            "SHOW_TEMPLATE"           => "'".trim($str_SHOW_TEMPLATE)."'",
            "MAIL_EVENT_TYPE"         => "'".$DB->ForSql("FORM_FILLING_".$str_VARNAME,50)."'",
            "SHOW_RESULT_TEMPLATE"    => "'".trim($str_SHOW_RESULT_TEMPLATE)."'",
            "PRINT_RESULT_TEMPLATE"   => "'".trim($str_PRINT_RESULT_TEMPLATE)."'",
            "EDIT_RESULT_TEMPLATE"    => "'".trim($str_EDIT_RESULT_TEMPLATE)."'",
            "FILTER_RESULT_TEMPLATE"  => "'".trim($str_FILTER_RESULT_TEMPLATE)."'",
            "TABLE_RESULT_TEMPLATE"   => "'".trim($str_TABLE_RESULT_TEMPLATE)."'",
            "STAT_EVENT1"             => "'".trim($str_STAT_EVENT1)."'",
            "STAT_EVENT2"             => "'".trim($str_STAT_EVENT2)."'",
            "STAT_EVENT3"             => "'".trim($str_STAT_EVENT3)."'"
            );
        $DB->StartTransaction();
        if ($ID>0)
        {
            $DB->Update("b_form", $arFields, "WHERE ID='".$ID."'", $err_mess.__LINE__);
        }
        else
        {
            $ID = $DB->Insert("b_form", $arFields, $err_mess.__LINE__);
            $new="Y";
        }
        $ID = intval($ID);
        if (strlen($strError)<=0)
        {
            $DB->Commit();
            if (strlen($save)>0) LocalRedirect("form_list.php?lang=".LANGUAGE_ID);
            elseif ($new=="Y") LocalRedirect("form_edit.php?lang=".LANGUAGE_ID."&ID=".$ID);
        }
        else $DB->Rollback();
    }
}
?>


Класс CDBResult

Описание и свойства класса

CDBResult - класс результата выполнения запроса.

Содержит в себе методы для постраничной навигации и работы с результатом запроса. Автоматически создаётся как результат работы метода CDatabase::Query.

Свойства класса

Свойство | Описание
result | Дескриптор результата.
arResult | Результат в виде массива (доступен только после CDBResult::NavStart). Данное свойство содержит неформатированные данные, например, дата для свойства типа "дата/время" элемента инфоблока. Для работы с объектом рекомендуется использовать CDBresult::Fetch, CDBresult::GetNext.
NavRecordCount | Количество записей (доступен только после CDBResult::NavStart).
NavPageCount | Количество страниц (доступен только после CDBResult::NavStart).
NavPageNomer | Номер текущей страницы постраничной навигации (доступен только после NavStart).
NavPageSize | Размер страницы (доступен только после CDBResult::NavStart).
bFirstPrintNav | Равен "true" если метод CDBResult::NavPrint был вызван один раз (доступен только после CDBResult::NavStart).
bShowAll | Разрешено ли показывать ссылку "Все" в постраничной навигации ("true"|"false") (доступен только после CDBResult::NavStart).
NavShowAll | Равен "true", если в данный момент показываются все записи выборки, а не постранично (т.е. была нажата ссылка "Все") (доступен только после CDBResult::NavStart).
NavNum | Порядковый номер постраничной навигации использованной на данной странице (доступен только после CDBResult::NavStart).
nStartPage | Равен "true", если в данный момент открыта первая страница в постраничной навигации (доступен только после CDBResult::NavStart).
nEndPage | Равен "true", если в данный момент открыта последняя страница в постраничной навигации (доступен только после CDBResult::NavStart).

Список методов

Методы класса

Метод | Описание | С версии
Fetch | Делает выборку значений полей в массив. |
NavNext | Возвращает массив значений полей. | 3.0.10
NavPrint | Выводит ссылки для постраничной навигации. | 3.0.10
NavStart | Разбивает результат выборки на страницы. |
NavStringForCache | Возвращает уникальную строку идентифицирующую состояние постраничной навигации (номер текущей страницы, нажата ли ссылка "Все"). | 3.2.1
IsNavPrint | Определяет, все ли записи умещаются в одну страницу при постраничной навигации. | 3.0.10
GetNext | Возвращает массив значений полей приведенный в HTML-безопасный вид. | 3.0.10
ExtractFields | Создает глобальные переменные с именами соответствующими именам полей. | 3.0.10
FieldName | Возвращает название поля по его номеру. |
FieldsCount | Возвращает количество полей результата выборки. |
SelectedRowsCount | Возвращает количество записей, которые вернул SELECT. |
AffectedRowsCount | Возвращает количество записей, измененных операцией INSERT, UPDATE или DELETE. |
InitFromArray | Инициализирует объект класса CDBResult значениями из массива. | 3.1.8
GetPageNavString |  | 5.1.7
GetPageNavStringEx | Возвращает панель постраничной навигации в HTML виде. | 6.0.2


AffectedRowsCount

Главный модуль>Классы>CDBResult>AffectedRowsCount (с версии 3.0.7)

CDBResult::AffectedRowsCount

int
CDBResult::AffectedRowsCount()

Метод возвращает количество записей, измененных SQL-командами INSERT, UPDATE или DELETE. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • CDBResult::SelectedRowsCount

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

<?
$strSql = "
    INSERT INTO b_stat_day(
        ID,
        DATE_STAT,
        TOTAL_HOSTS)
    SELECT
        SQ_B_STAT_DAY.NEXTVAL,
        trunc(SYSDATE),
        nvl(PREV.MAX_TOTAL_HOSTS,0)
    FROM
        (SELECT	max(TOTAL_HOSTS) AS MAX_TOTAL_HOSTS	FROM b_stat_day) PREV
    WHERE
        not exists(SELECT 'x' FROM b_stat_day D WHERE TRUNC(D.DATE_STAT) = TRUNC(SYSDATE))
    ";
$q = $DB->Query($strSql, true, $err_mess.__LINE__);
if ($q && intval($q->AffectedRowsCount())>0)
{
    $arFields = Array("LAST"=>"'N'");
    $DB->Update("b_stat_adv_day",$arFields,"WHERE LAST='Y'", $err_mess.__LINE__);
    $DB->Update("b_stat_adv_event_day",$arFields,"WHERE LAST='Y'", $err_mess.__LINE__);
    $DB->Update("b_stat_searcher_day",$arFields,"WHERE LAST='Y'", $err_mess.__LINE__);
    $DB->Update("b_stat_event_day",$arFields,"WHERE LAST='Y'", $err_mess.__LINE__);
    $DB->Update("b_stat_country_day",$arFields,"WHERE LAST='Y'", $err_mess.__LINE__);
    $DB->Update("b_stat_guest",$arFields,"WHERE LAST='Y'",$err_mess.__LINE__);
    $DB->Update("b_stat_session",$arFields,"WHERE LAST='Y'",$err_mess.__LINE__);
}
?>


ExtractFields

Главный модуль>Классы>CDBResult>ExtractFields (с версии 3.0.10)

CDBResult::ExtractFields

Описание и параметры

mixed
CDBResult::ExtractFields(
 string prefix="str_",
 bool encode=true
 )

Объявляет глобальные переменные с именами вида ${prefix."имя поля"} и значениями соответствующими именам полей, приведенных в HTML-безопасный вид.
Возвращает массив вида Array("поле"=>"значение" [, ...]) и передвигает курсор на следующую запись. Если достигнута последняя запись (или в результате нет ни одной записи), то метод вернет "false". Нестатический метод.

Параметры

Параметр | Описание
prefix | Префикс глобальных переменных. Необязательный. По умолчанию "str_".
encode | Приводить глобальные переменные в HTML-безопасный вид. Необязательный. По умолчанию - "true".

Смотрите также

  • CDBResult::Fetch
  • CDBResult::GetNext
  • CDBResult::NavNext

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

<select>
<?
$rs = CGroup::GetList($order="ID", $by="ASC");
while ($rs->ExtractFields("g_")) :
   ?><option value="<?=$g_ID?>"
   <?if (IntVal($g_ID)==IntVal($show_perms_for)) echo " selected";?>
   ><?=$g_NAME?></option><?
endwhile;
?>
</select>


Fetch

Главный модуль>Классы>CDBResult>Fetch (с версии 3.0.7)

CDBResult::Fetch

mixed
CDBResult::Fetch()

Делает выборку значений полей в массив. Возвращает массив вида Array("поле"=>"значение" [, ...]) и передвигает курсор на следующую запись. Если достигнута последняя запись (или в результате нет ни одной записи) - метод вернет "false". Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • CDBResult::GetNext
  • CDBResult::ExtractFields
  • CDBResult::NavNext

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

<?
$rsUser = CUser::GetByID($USER_ID);
$arUser = $rsUser->Fetch();
?>


FieldName

Главный модуль>Классы>CDBResult>FieldName (с версии 3.0.7)

CDBResult::FieldName

mixed
CDBResult::FieldName(
 int column
 )

Метод возвращает название поля по его номеру. Нестатический метод.

Параметры

Параметр | Описание
column | Номер поля.

Смотрите также

  • CDBResult::FieldsCount

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

<?
$rs = $DB->Query($query,true);
$intNumFields = $rs->FieldsCount();
$i = 0;
while ($i < $intNumFields)
{
    $arFieldName[] = $rs->FieldName($i);
    $i++;
}
?>


FieldsCount

Главный модуль>Классы>CDBResult>FieldsCount (с версии 3.0.7)

CDBResult::FieldsCount

int
CDBResult::FieldsCount()

Метод возвращает количество полей результата выборки. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • CDBResult::FieldName

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

<?
$rs = $DB->Query($query,true);
$intNumFields = $rs->FieldsCount();
$i = 0;
while ($i < $intNumFields)
{
    $arFieldName[] = $rs->FieldName($i);
    $i++;
}
?>


GetNext

Главный модуль>Классы>CDBResult>GetNext (с версии 3.0.10)

CDBResult::GetNext

Описание и параметры

mixed
CDBResult::GetNext(
 bool TextHtmlAuto=true,
 bool use_tilda=true
 )

Возвращает массив значений полей приведенный в HTML-безопасный вид. Если достигнут конец результата выборки метод вернет false. Нестатический метод.

Параметры

Параметр | Описание | С версии
TextHtmlAuto | Если значение данного параметра - "true", то метод будет автоматически обрабатывать поля с выбором формата text/html. Необязательный. По умолчанию - "true". |
use_tilda | Если значение данного параметра - "true", то помимо преобразованных в HTML-безопасный вид полей, в результирующий массив будут включены также оригинальные (исходные) значения этих полей (ключи массива с оригинальными значениями этих полей будут иметь суффикс "~"). Необязательный. По умолчанию - "true". | 3.0.11

Смотрите также

  • CDBResult::Fetch
  • CDBResult::ExtractFields
  • CDBResult::NavNext

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

<select>
<?
$rs = CGroup::GetList($order="ID", $by="ASC");
while ($arGroup=$rs->GetNext()) :
   ?><option value="<?=$arGroup["ID"]?>"
   <?if (IntVal($arGroup["ID"])==IntVal($show_perms_for)) echo " selected";?>
   ><?=$arGroup["NAME"]?></option><?
endwhile;
?>
</select>


GetPageNavString

Главный модуль>Классы>CDBResult>GetPageNavString (с версии 5.1.7)

CDBResult::GetPageNavString

CDBResult::GetPageNavString(
 navigationTitle,
 templateName = "",
 showAlways=false,
 parentComponent=null

Нестатический метод.

Параметры

Параметр | Описание | С версии
navigationTitle | Название категорий |
templateName | Название шаблона |
showAlways | Выводить всегда |
parentComponent | Родительский компонент, который вызывает навигацию. | 12.5.7


GetPageNavStringEx

Главный модуль>Классы>CDBResult>GetPageNavStringEx (с версии 6.0.2)

CDBResult::GetPageNavStringEx

Описание и параметры

CMain::GetPageNavStringEx(
 navComponentObject,
 navigationTitle,
 templateName = "",
 showAlways=false,
 parentComponent=null,
 componentParams = array()
 )

Возвращает панель постраничной навигации в HTML виде. Формирует ее на основе параметров. Нестатический метод.

Параметры

Параметр | Описание | С версии
navComponentObject | Использовать обратную навигацию
navigationTitle | Название категорий
templateName | Название шаблона
showAlways | Выводить всегда
parentComponent | Время кеширования страниц для обратной навигации | 12.5.7
componentParams Используется для подмены массива $arParams для компонента system.pagenavigation на основе которого работает метод. Например если делаем выборку результата по ajax с полученим на выходе пагинацию для той страницы, с которой уходил $_POST:
$res = CIBlockElement::GetList(Array("SORT"=>"ASC", "ID"=>"ASC"), $_POST["myFilter"], false, $arNavStartParams, $arSelect);
$res->NAV_STRING = $res->GetPageNavStringEx($navComponentObject, "", "qp_korm", true, null, array("BASE_LINK"=>$_SERVER["HTTP_REFERER"]);
 15.5.0

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

CModule::IncludeModule('iblock');
$arSort = array();
$arFilter = array('IBLOCK_ID'=> '1');
$arNavParams = array(
        "nPageSize" => '2',
        "bDescPageNumbering" => 'Описание',
        "bShowAll" => 'Y',
    );

$arSelect = array("ID", "NAME");
$rsElement = CIBlockElement::GetList($arSort, $arFilter, false, $arNavParams, $arSelect);
$NAV_STRING = $rsElement->GetPageNavStringEx($navComponentObject, 'Заголовок', '', 'Y');
echo $NAV_STRING."
";
while($arElem = $rsElement->Fetch())
{
   echo $arElem['ID']."__".$arElem["NAME"]."
";
}
echo $NAV_STRING;

Пример использования в компонентах 2.0

$rsElements = CIBlockElement::GetList($arSort, $arFilter, false, array("nPageSize" => $arParams["PAGE_COUNT"], "bShowAll" => false), $arSelect);
....
$arResult["NAV_STRING"] = $rsElements->GetPageNavStringEx($navComponentObject, "", $arParams["PAGER_TEMPLATE"]);

Теперь в $arResult["NAV_STRING"] у нас полная постраничная навигация, обернутая в шаблон $arParams["PAGER_TEMPLATE"]. Если $arParams["PAGER_TEMPLATE"] пуст, то берется .default.

Иногда надо чтобы не выводилось много страниц (1....11, 12, 13, 14, 15, 16, 17...100) а, например 3 (1....14, 15, 16...100).

В примере выше перед вызовом GetPageNavStringEx надо поставить:

$rsElements->nPageWindow = 3;


InitFromArray

Главный модуль>Классы>CDBResult>InitFromArray (с версии 3.1.8)

CDBResult::InitFromArray

Описание и параметры

CDBResult::InitFromArray(
 array values
 )

Метод инициализирует объект класса CDBResult значениями из массива. Нестатический метод.

Параметры

Параметр | Описание
values | Ассоциативный массив со значениями для объекта класса CDBResult.

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

<?
$arr = array();
$arr[] = array("ID" => 1, "NAME" => "Заголовок 1");
$arr[] = array("ID" => 2, "NAME" => "Заголовок 2");
$arr[] = array("ID" => 3, "NAME" => "Заголовок 3");
$arr[] = array("ID" => 4, "NAME" => "Заголовок 4");

$rs = new CDBResult;
$rs->InitFromArray($arr);

$rs->NavStart(2);
if($rs->IsNavPrint())
{
     echo "<p>"; $rs->NavPrint("Элементы"); echo "</p>";
}
?>
<?
// получим список файлов и каталогов
CFileMan::GetDirList(Array($site_id, $path), $arDirs, $arFiles, $arFilter, Array($by=>$order), "DF");

// объединим файлы и каталоги в один массив
$arDirContent = array_merge($arDirs, $arFiles);

// создадим объект класса CDBResult
$rsDirContent = new CDBResult;

// инициализируем этот объект исходным массивом
$rsDirContent->InitFromArray($arDirContent);

// теперь на данном объекте
// мы можем использовать все методы класса CDBResult
// например, "Постраничная навигация":
$rsDirContent->NavStart(50);
if($rsDirContent->IsNavPrint()) echo "<p>"; $rs->NavPrint("Файлы"); echo "</p>";
while ($arElement = $rsDirContent->Fetch()):
    // если это каталог то
    if ($arElement["TYPE"]=="D"):
        // выводим название каталога
        echo $arElement["NAME"];
    else: // иначе если это файл то
        // если это служебный файл то переходим к следующему элементу
        if ($arElement["NAME"]==".section.php") continue;
        // иначе выводим его название
        echo $arElement["NAME"];
    endif;
endwhile;
?>


IsNavPrint

Главный модуль>Классы>CDBResult>IsNavPrint (с версии 3.0.10)

CDBResult::IsNavPrint

bool
CDBResult::IsNavPrint()

Метод возвращает false, если все записи умещаются в одну страницу. В противном случае true. Нестатический метод.

Внимание! Перед использованием данного метода необходимо вызвать CDBResult::NavStart.

Параметры

Без параметров.

Смотрите также

  • CDBResult::NavPrint
  • CDBResult::NavStart
  • CDBResult::NavNext

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

<?
$arDirContent = array_merge($arDirs, $arFiles);
$rsDirContent = new CDBResult;
$rsDirContent->InitFromArray($arDirContent);
$rsDirContent->NavStart(50);
if($rsDirContent->IsNavPrint())
{
    echo "<p>";
    $rsDirContent->NavPrint("Файлы");
    echo "</p>";
}
?>


NavNext

Главный модуль>Классы>CDBResult>NavNext (с версии 3.0.10)

CDBResult::NavNext

Описание и параметры

mixed
CDBResult::NavNext(
 bool SetGlobalVars = true,
 string prefix = "str_",
 bool DoEncode = true,
 bool SkipEntities=true
 )

Возвращает массив значений полей. Если установлен флаг init_globals, то объявляет глобальные переменные с именами prefix.имя_поля. Если достигнут конец результата выборки, то метод вернет "false". Нестатический метод.

Примечания:
  • Метод работает с переменными из глобальной области видимости, это необходимо учитывать при создании основных файлов компонентов.
  • Когда явно не требуются возможности NavNext лучше использовать CDBResult::GetNext.

Параметры

Параметр | Описание | С версии
SetGlobalVars | Если "true", то метод будет объявлять глобальные переменные соответствующие именам полей выборки. Необязательный. По умолчанию - "true". |
prefix | Префикс глобальных переменных (только если init_globals установлен). Необязательный. По умолчанию - "str_". |
DoEncode | Приводить глобальные переменные в HTML-безопасный вид (только если init_globals установлен). Необязательный. По умолчанию - "true". |
SkipEntities | Необязательный. По умолчанию - "true". | 7.1.12

Смотрите также

  • CDBResult::NavStart
  • CDBResult::Fetch
  • CDBResult::GetNext
  • CDBResult::ExtractFields

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

<?
$rsBanners = CAdvBanner::GetList($by, $order, $arFilter, $is_filtered);
$rsBanners->NavStart(20);
echo $rsBanners->NavPrint("Баннеры");
while($rsBanners->NavNext(true, "f_")):
    echo "[".$f_ID."] ".$f_NAME."<br>";
endwhile;
echo $rsBanners->NavPrint("Баннеры");
?>


NavPrint

Главный модуль>Классы>CDBResult>NavPrint (с версии 3.0.10)

CDBResult::NavPrint

Описание и параметры

CDBResult::NavPrint(
 string title,
 bool show_always=false,
 string StyleText="text",
 string template_path=false
)

Метод выводит ссылки для постраничной навигации. Перед использованием данного метода необходимо вызвать метод NavStart.

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

CPageOption::SetOptionString("main", "nav_page_in_session", "N");

Нестатический метод.

Параметры

Параметр | Описание | С версии
title | Названия выводимых элементов. |
show_always | Если "false", то метод не будет выводить навигационные ссылки если все записи умещаются на одну страницу. Если "true", то ссылки для постраничной навигации будут выводиться всегда. Необязательный. По умолчанию - "false". |
StyleText | CSS класс шрифта для вывода навигационных ссылок. Необязательный. По умолчанию "text". | 3.0.19
template_path | Путь к шаблону показа навигационных ссылок. Если "false", то используется шаблон по умолчанию. | 3.3.0

Смотрите также

  • CDBResult::NavStart
  • CDBResult::NavNext
  • CDBResult::IsNavPrint
  • Класс CPageOption

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

<?
$rsEvents = CAdv::GetEventList($f_ID,($by="s_def"),($order="desc"), $arF, $is_filtered);
$rsEvents->NavPrint("События", false, "tablebodytext",
"/bitrix/modules/statistic/admin/adv_navprint.php");
?>

Примеры шаблонов для навигационных ссылок

<?
echo('<font class="'.$StyleText.'">('.$title.' ');
echo(($this->NavPageNomer-1)*$this->NavPageSize+1);
echo(' - ');
if($this->NavPageNomer != $this->NavPageCount)
  echo($this->NavPageNomer * $this->NavPageSize);
else
  echo($this->NavRecordCount);
echo(' '.GetMessage("nav_of").' ');
echo($this->NavRecordCount);
echo(")\n \n</font>");

echo('<font class="'.$StyleText.'">');

if($this->NavPageNomer > 1)
  echo('<a class="tablebodylink" href="'.$sUrlPath.'?PAGEN_'.$this->NavNum.'=1'.
  $strNavQueryString.'#nav_start'.$add_anchor.'">'.
  $sBegin.'</a> | <a class="tablebodylink" href="'.$sUrlPath.'?PAGEN_'.
  $this->NavNum.'='.($this->NavPageNomer-1).$strNavQueryString.'#nav_start'.
  $add_anchor.'">'.$sPrev.'</a>');
else
  echo($sBegin.' | '.$sPrev);

echo(' | ');

$NavRecordGroup = $nStartPage;
while($NavRecordGroup <= $nEndPage)
{
  if($NavRecordGroup == $this->NavPageNomer)
    echo('<b>'.$NavRecordGroup.'</b> ');
  else
    echo('<a class="tablebodylink" href="'.$sUrlPath.'?PAGEN_'.$this->NavNum.'='.
    $NavRecordGroup.$strNavQueryString.'#nav_start'.$add_anchor.'">'.
    $NavRecordGroup.'</a> ');

  $NavRecordGroup++;
}

echo('| ');
if($this->NavPageNomer < $this->NavPageCount)
  echo ('<a class="tablebodylink" href="'.$sUrlPath.'?PAGEN_'.$this->NavNum.'='.
  ($this->NavPageNomer+1).$strNavQueryString.'#nav_start'.$add_anchor.'">'.
  $sNext.'</a> | <a class="tablebodylink" href="'.$sUrlPath.'?PAGEN_'.
  $this->NavNum.'='.$this->NavPageCount.$strNavQueryString.
  '#nav_start'.$add_anchor.'">'.$sEnd.'</a> ');
else
  echo ($sNext.' | '.$sEnd.' ');

if($this->bShowAll)
  echo ($this->NavShowAll? '| <a class="tablebodylink"
  href="'.$sUrlPath.'?SHOWALL_'.$this->NavNum.'=0'.$strNavQueryString.
  '#nav_start'.$add_anchor.'">'.$sPaged.
  '</a> ' : '| <a class="tablebodylink" href="'.$sUrlPath.'?SHOWALL_'.
  $this->NavNum.'=1'.$strNavQueryString.
  '#nav_start'.$add_anchor.'">'.$sAll.'</a> ');

echo('</font>');
?>


NavStart

Главный модуль>Классы>CDBResult>NavStart (с версии 3.0.7)

CDBResult::NavStart

Описание и параметры

CDBResult::NavStart(
 int page_size=10,
 bool show_all=true
)

Метод разбивает результат выборки на страницы.

Для встраивания системы автоматической постраничной навигации необходимо сначала вызвать данный метод CDBResult::NavStart. После ее вызова, методы

  • CDBResult::Fetch
  • CDBResult::GetNext
  • CDBResult::ExtractFields
  • CDBResult::NavNext
будут ограничены только текущей страницей (а не всей выборкой). Для вывода ссылок постраничной навигации необходимо воспользоваться методом CDBResult::NavPrint.

Нестатический метод.

Параметры

Параметр | Описание | С версии
page_size | Размер страницы (от 1 и более). Необязательный. По умолчанию 10. |
show_all | Разрешить показывать все записи (и выводить ссылку "Все" в навигации). Необязательный. По умолчанию - "true". |
NumPage | Принудительно всегда открывать страницу с этим номером (не зависящую от параметров в URL). Необязательный. По умолчанию - "false" (показывать автоматически). | Устарел с 3.0.11

Смотрите также

  • CDBResult::NavNext
  • CDBResult::NavPrint
  • CDBResult::IsNavPrint
  • CDBResult::Fetch
  • CDBResult::GetNext
  • CDBResult::ExtractFields

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

<?
$rsBanners = CAdvBanner::GetList($by, $order, $arFilter, $is_filtered);
$rsBanners->NavStart(20);
echo $rsBanners->NavPrint("Баннеры");
while($rsBanners->NavNext(true, "f_")):
    echo "[".$f_ID."] ".$f_NAME."<br>";
endwhile;
echo $rsBanners->NavPrint("Баннеры");
?>


NavStringForCache

Главный модуль>Классы>CDBResult>NavStringForCache (с версии 3.2.1)

CDBResult::NavStringForCache

Описание и параметры

string
CDBResult::NavStringForCache(
 int page_size=10,
 bool show_all=true,
 int NumPage=false
)

Возвращает уникальную строку идентифицирующую текущее состояние постраничной навигации (номер текущей страницы, нажата ли ссылка "Все"). Результат данного метода применяется как правило для составления идентификатора кэша, который в свою очередь используется в методах классов CPageCache и CPHPCache. Нестатический метод.

Параметры

Параметр | Описание
page_size | Размер страницы постраничной навигации (от 1 и более). Необязательный. По умолчанию 10.
show_all | Разрешить ли показывать все записи (и выводить ссылку "Все" в навигации). Необязательный. По умолчанию - "true".
NumPage | Принудительно ли открывать страницу с этим номером (в независимости от параметров в URL). Необязательный. По умолчанию - "false" (открывать страницу в зависимости от параметров в URL).

Смотрите также

  • Класс CPageCache
  • Класс CPHPCache

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

<?
// создаем объект
$obCache = new CPageCache;

// время кэширования - 30 минут
$life_time = 30*60;

// получим строку идентифицирующую состояние постраничной навигации
$nav = CDBResult::NavStringForCache($PAGE_ELEMENT_COUNT);

// формируем идентификатор кэша в зависимости от всех параметров
// которые могут повлиять на результирующий HTML
$cache_id = $nav.$ELEMENT_ID.$IBLOCK_TYPE.$USER->GetUserGroupString();

// инициализируем буферизирование вывода
if($obCache->StartDataCache($life_time, $cache_id, "/")):

    // получаем список элементов
    if ($rsElements = GetIBlockElementList($IBLOCK_ID, $SECTION_ID)):

        // инициализируем постраничную навигацию
        $rsElements->NavStart($PAGE_ELEMENT_COUNT);

        // выведем постраничную навигацию
        echo $rsElements->NavPrint($ELEMENT_NAME);

        // пройдемся по элементам
        while ($obElement = $rsElements->GetNextElement()):

            $arElement = $obElement->GetFields();
            $arProperty = $obElement->GetProperties();

            echo "<pre>"; print_r($arElement); echo "</pre>";
            echo "<pre>"; print_r($arProperty); echo "</pre>";

        endwhile;
    endif;

    // записываем буферизированный результат на диск в файл кэша
    $obCache->EndDataCache();
endif;
?>


SelectedRowsCount

Главный модуль>Классы>CDBResult>SelectedRowsCount (с версии 3.0.7)

CDBResult::SelectedRowsCount

int
CDBResult::SelectedRowsCount()

Метод возвращает количество выбранных записей (выборка записей осуществляется с помощью SQL-команды "SELECT ..."). Нестатический метод.

Примечание. Для Oracle версии данный метод будет корректно работать только после вызова CDBResult::NavStart, либо если достигнут конец (последняя запись) выборки.

Параметры

Без параметров.

Смотрите также

  • CDBResult::AffectedRowsCount

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

<?
$rsBanners = CAdvBanner::GetList($by, $order, $arFilter, $is_filtered);
$rsBanners->NavStart(20);
if (intval($rsBanners->SelectedRowsCount())>0):
    echo $rsBanners->NavPrint("Баннеры");
    while($rsBanners->NavNext(true, "f_")):
         echo "[".$f_ID."] ".$f_NAME."<br>";
    endwhile;
    echo $rsBanners->NavPrint("Баннеры");
endif;
?>


Класс CDiskQuota

CDiskQuota - класс для работы с дисковыми квотами.

Метод | Описание
checkDiskQuota | Проверяет свободное место на диске для заданных данных.
reCount | Производит пересчет счетчика.
updateDiskQuota | Изменяет значение счетчика.


checkDiskQuota

Главный модуль>Классы>CDiskQuota>checkDiskQuota (с версии 6.5.0)

CDiskQuota::checkDiskQuota

boolean
CDiskQuota::checkdiskquota(
 mixed size
);

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

Параметры

Параметр | Описание
size | Может быть массивом с полями "FILE_SIZE" или "SIZE", где size["SIZE"] - размер в байтах, числом, строкой.

Возвращаемое значение

Если есть свободное место на диске для данных размером size - true, иначе - false.


reCount

Главный модуль>Классы>CDiskQuota>reCount (с версии 6.5.0)

CDiskQuota::reCount

CDiskQuota::reCount(
 string ID [,
 boolean recount]
);

Производит пересчёт счётчика ID. Нестатический метод.

Параметры

Параметр | Описание
ID | Идентификатор счётчика.
recount | Если значение - true, то будет запущен механизм пересчёта сначала, а не с последнего шага.

Возвращаемое значение

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


updateDiskQuota

Главный модуль>Классы>CDiskQuota>updateDiskQuota (с версии 6.5.0)

CDiskQuota::updateDiskQuota

CDiskQuota::updateDiskQuota(
 string ID,
 int size,
 string action
);

Изменяет счетчик ID на величину size в зависимости от указанного action. Нестатический метод.

Параметры

Параметр | Описание
ID | Идентификатор счетчика.
size | Размер в байтах.
action | Направление счета.

Возвращаемое значение

При успешном выполнении, возвращает true, иначе - false.


Класс CEvent

CEvent - класс для работы с почтовыми событиями.

Методы класса

Метод | Описание | С версии
CheckEvents | Проверяет и отсылает неотправленные события. |
Send | Добавляет событие в почтовую систему (регистрирует для отправки). |
SendImmediate | Отправляет события вне очереди. | 7.1.0

Смотрите также

  • Почтовая система


CheckEvents

Главный модуль>Классы>CEvent>CheckEvents (с версии 3.0.3)

CEvent::CheckEvents

CEvent::CheckEvents()

Собирает неотправленные почтовые события и отправляет их в виде E-Mail сообщений с помощью функции bxmail. Метод автоматически вызывается при загрузке каждой страницы и не требует ручного вызова. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • Почтовая система
  • bxmail


Send

Главный модуль>Классы>CEvent>Send (с версии 3.0.3)

CEvent::Send

Описание и параметры

int
CEvent::Send(
 string event,
 mixed lid,
 array fields,
 string duplicate="Y",
 int message_id="",
 array files,
 string language_id
)

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

Аналог метода в новом ядре D7: \Bitrix\Main\Mail\Event::send [image].

Параметры

Параметр | Описание | С версии
event | Идентификатор типа почтового события.
lid | Идентификатор сайта, либо массив идентификаторов сайта.
fields | Массив полей типа почтового события идентификатор которого задается в параметре event_type. Массив имеет следующий формат: array("поле"=>"значение" [, ...]).
duplicate Отправить ли копию письма на адрес указанный в настройках главного модуля в поле "E-Mail адрес или список адресов через запятую на который будут дублироваться все исходящие сообщения".
Необязательный. По умолчанию "Y".
message_id Идентификатор почтового шаблона по которому будет отправлено письмо.
Если данный параметр не задан, либо равен "", то письма будут отправлены по всем шаблонам привязанным к типу почтового события, идентификатор которого задается в параметре event_type, а также привязанных к сайту(ам) идентификатор которого указан в параметре site.
Необязательный. По умолчанию - "". 		3.1.7
files Массив идентификаторов файлов, которые используются классом CFile. Либо можно передать массив абсолютных путей до файлов.

Если передать в files массив абсолютных путей, то система скопирует файл, и создаст запись в таблице b_event.
Если вы, например, сохраняете файл в инфоблок, и передаете в CEvent::Send путь к файлу вместо id, то файл будет сохранен еще раз.
При передаче файла через CEvent::Send имя файла будет хэшем независимо от настроек главного модуля, поэтому, что бы в письме было нормальное имя файла, нужно всегда передавать массив идентификаторов.

15.0.15
language_id | Идентификатор языковой версии. | 16.5.8

Смотрите также

  • Почтовая система

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

<?
$arEventFields = array(
    "ID"                  => $CONTRACT_ID,
    "MESSAGE"             => $mess,
    "EMAIL_TO"            => implode(",", $EMAIL_TO),
    "ADMIN_EMAIL"         => implode(",", $ADMIN_EMAIL),
    "ADD_EMAIL"           => implode(",", $ADD_EMAIL),
    "STAT_EMAIL"          => implode(",", $VIEW_EMAIL),
    "EDIT_EMAIL"          => implode(",", $EDIT_EMAIL),
    "OWNER_EMAIL"         => implode(",", $OWNER_EMAIL),
    "BCC"                 => implode(",", $BCC),
    "INDICATOR"           => GetMessage("AD_".strtoupper($arContract["LAMP"]."_CONTRACT_STATUS")),
    "ACTIVE"              => $arContract["ACTIVE"],
    "NAME"                => $arContract["NAME"],
    "DESCRIPTION"         => $description,
    "MAX_SHOW_COUNT"      => $arContract["MAX_SHOW_COUNT"],
    "SHOW_COUNT"          => $arContract["SHOW_COUNT"],
    "MAX_CLICK_COUNT"     => $arContract["MAX_CLICK_COUNT"],
    "CLICK_COUNT"         => $arContract["CLICK_COUNT"],
    "BANNERS"             => $arContract["BANNER_COUNT"],
    "DATE_SHOW_FROM"      => $arContract["DATE_SHOW_FROM"],
    "DATE_SHOW_TO"        => $arContract["DATE_SHOW_TO"],
    "DATE_CREATE"         => $arContract["DATE_CREATE"],
    "CREATED_BY"          => $CREATED_BY,
    "DATE_MODIFY"         => $arContract["DATE_MODIFY"],
    "MODIFIED_BY"         => $MODIFIED_BY
    );
$arrSITE =  CAdvContract::GetSiteArray($CONTRACT_ID);
CEvent::Send("ADV_CONTRACT_INFO", $arrSITE, $arEventFields);
?>


SendImmediate

Главный модуль>Классы>CEvent>SendImmediate (с версии 7.1.0)

CEvent::SendImmediate

CEvent::SendImmediate
(
   $event,
   $lid,
   $arFields,
   $Duplicate = "Y",
   $message_id = "",
   $files = array(),
   $language_id = ""
)

Отправляет сообщение немедленно. При отправке сообщения данным методом запись в таблицу b_event не производится. Статический метод.

Аналог (не полный) метода в новом ядре D7: Bitrix\Main\Mail\Event::sendImmediate.

Параметры

Параметр | Описание | С версии
event | Идентификатор типа почтового события. |
lid | Идентификатор сайта, либо массив идентификаторов сайта. |
fields | Массив полей типа почтового события идентификатор которого задается в параметре event_type. Массив имеет следующий формат: array("поле"=>"значение" [, ...]). | 15.0.7
Duplicate | Отправить ли копию письма на адрес указанный в настройках главного модуля в поле "E-Mail адрес или список адресов через запятую на который будут дублироваться все исходящие сообщения". Необязательный. По умолчанию "Y". |
message_id | Идентификатор почтового шаблона по которому будет отправлено письмо. Если данный параметр не задан, либо равен "", то письма будут отправлены по всем шаблонам привязанным к типу почтового события, идентификатор которого задается в параметре event_type, а также привязанных к сайту(ам) идентификатор которого указан в параметре site. Необязательный. По умолчанию - "". |
files | Массив. Элементом массива может быть ID файла (см. класс CFile), абсолютный путь к файлу или URL к файлу лежащем на другом сайте. |
language_id | Идентификатор языковой версии. | 16.5.8

Возвращаемое значение

В отличие от CEvent::Send не возвращает идентификатор созданного сообщения. Полный список возможных ответов:

const SEND_RESULT_NONE = 'N';
const SEND_RESULT_SUCCESS = 'Y';
const SEND_RESULT_ERROR = 'F';
const SEND_RESULT_PARTLY = 'P';
const SEND_RESULT_TEMPLATE_NOT_FOUND = '0';


CEventLog

Класс для работы с логом.

Класс | Описание | С версии
Log | Метод добавляет запись в лог. |
Add | Метод добавляет событие для записи в логе событий. |
GetList | Метод возвращает отфильтрованный и отсортированный список записей в логе. |
CleanUpAgent | Служебный метод, очищающий старые записи. Не описывается |


Add

Главный модуль>Классы>CEventLog>Add (с версии 7.1.0)

CEventLog::Add

Описание и параметры

int
CEventLog::Add(
 array fields
)

Метод добавляет событие для записи в логе событий. Статический метод.

Параметры

Параметр Описание С версии
fields Поля добавляемого события. Значения:
  • SEVERITY - степень важности записи. Доступны значения: SECURITY, ERROR, INFO, DEBUG или WARNING, для иного система установит UNKNOWN.
  • AUDIT_TYPE_ID - собственный ID типа события.
  • MODULE_ID - модуль, с которого происходит запись в лог.
  • ITEM_ID - ID объекта, в связи с которым происходит добавление (пользователь, элемент ИБ, ID сообщения, ...)
  • REMOTE_ADDR - IP, с которого обратились.
  • USER_AGENT - браузер.
  • REQUEST_URI - URL страницы.
  • SITE_ID - ID сайта, к которому относится добавляемое событие.
  • USER_ID - ID пользователя.
  • GUEST_ID - ID пользователя из модуля статистики
  • DESCRIPTION - собственно описание записи лога, или техническая информация.

С версии 15.5.9 переданные в метод ключи массива: REMOTE_ADDR, USER_AGENT, REQUEST_URI, USER_ID, GUEST_ID будут переопределены, поэтому передавать их не имеет смысла.

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

<?
CEventLog::Add(array(
         "SEVERITY" => "SECURITY",
         "AUDIT_TYPE_ID" => "MY_OWN_TYPE",
         "MODULE_ID" => "main",
         "ITEM_ID" => 123,
         "DESCRIPTION" => "Какое-то описание",
      ));
?>


GetList

Главный модуль>Классы>CEventLog>GetList (с версии 7.1.0)

CEventLog::GetList

int
CEventLog::GetList(
 arOrder = Array
     ("ID" => "DESC"),
 arFilter = array(),
 $arNavParams = false
)

Метод возвращает отфильтрованный и отсортированный список записей в логе. Нестатический метод.

Параметры

Параметр | Описание | С версии
Order Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]). Поле для сортировки может принимать значения:
  • ID - идентификатор записи;
  • TIMESTAMP_X - Время в Unix-формате.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию.
Filter Массив вида array("фильтруемое поле"=>"значение" [, ...]), может принимать значения:
  • SEVERITY - степень важности записи. Доступны значения: SECURITY или WARNING, для иного система установит UNKNOWN.
  • AUDIT_TYPE_ID - собственный ID типа события.
  • MODULE_ID - модуль, с которого происходит запись в лог.
  • ITEM_ID - ID объекта, в связи с которым происходит добавление (пользователь, элемент ИБ, ID сообщения)
  • REMOTE_ADDR - IP, с которого обратились.
  • USER_AGENT - браузер.
  • REQUEST_URI - URL страницы.
  • SITE_ID - ID сайта, к которому относится добавляемое событие.
  • USER_ID - ID пользователя.
  • GUEST_ID - ID пользователя из модуля статистики.
  • DESCRIPTION - собственно описание записи лога, или техническая информация.
  • TIMESTAMP_X_1 - поля фильтра для выборке по диапазону дат, старт диапозона. Формат - dd.mm.yyyy hh:mm:ss
  • TIMESTAMP_X_2 - поля фильтра для выборке по диапазону дат, конец диапозона. Формат - dd.mm.yyyy hh:mm:ss.
arNavParams | Массив настроек постраничной навигации. | 12.0.9
TIMESTAMP_X_1 и TIMESTAMP_X_2 - поля фильтра для выборке по диапазону дат. Формат - dd.mm.yyyy hh:mm:ss

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

<?

?>


Log

Главный модуль>Классы>CEventLog>Log (с версии 7.1.0)

CEventLog::Log

int
CEventLog::Add(array(
 'SEVERITY' => 'INFO',
 'AUDIT_TYPE_ID' => 'MY_TYPE_INFO',
 'MODULE_ID' => 'main',
 'DESCRIPTION' => $text_my_info,
)
);

Метод добавляет запись в лог. Статический метод.

Параметры

Параметр | Описание | С версии
SEVERITY | Степень важности записи. Доступны значения: SECURITY, ERROR, WARNING, INFO, DEBUG для иного система установит UNKNOWN. |
AUDIT_TYPE_ID | Идентификатор события, к которому относится запись. |
MODULE_ID | Модуль, к которому относится запись |
ITEM_ID | ID объекта, в связи с которым происходит добавление (пользователь, элемент ИБ, ID сообщения). |
DESCRIPTION | Описание записи лога, или техническая информация. Необязательный. По умолчанию - false. |
SITE_ID | Идентификатор сайта, к которому относится запись в логе. Необязательный. По умолчанию - false. | 11.5.8


Класс CEventMessage

Описание и поля

CEventMessage - класс, предназначенный для работы с почтовыми шаблонами.

Поля

Поле | Тип | Описание
ID | Int | ID почтового шаблона.
EVENT_NAME | Varchar(50) | ID почтового события.
LID | Char(2) | ID сайта, которому принадлежит шаблон. Например, 's1'.
TIMESTAMP_X | Datetime | Последнее изменение шаблона.
ACTIVE | Char | Активен (Y|N)
EMAIL_FROM | Varchar(255) | Отправитель.
EMAIL_TO | Varchar(255) | Получатель.
SUBJECT | Varchar(255) | Тема.
MESSAGE | Text | Тело сообщения.
BODY_TYPE | Char(4) | Тип сообщения (text|html)
BCC | Varchar(255) | Скрытая копия.

Смотрите также

  • Почтовая система

Список методов

Метод | Описание | С версии
GetList | Получает список шаблонов по фильтру. | 3.0.10
GetByID | Получает данные о шаблоне по его ID | 3.0.10
Add | Добавляет новый шаблон. |
Update | Изменяет существующий почтовый шаблон. |
Delete | Удаляет шаблон. | 3.0.10


Add

Главный модуль>Классы>CEventMessage>Add (с версии 3.0.3)

CEventMessage::Add

Описание и параметры

mixed
CEventMessage::Add(
 array fields
)

Метод добавляет новый почтовый шаблон. Возвращает ID вставленного шаблона. При возникновении ошибки, метод вернет false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки. Нестатический метод.

Параметры

Параметр Описание
fields Массив значений полей вида array("поле"=>"значение" [, ...]). В качестве "полей" допустимо использовать:
  • ACTIVE - флаг активности почтового шаблона: "Y" - активен; "N" - не активен;
  • EVENT_NAME - идентификатор типа почтового события;
  • LID - идентификатор сайта;
  • EMAIL_FROM - поле "From" ("Откуда");
  • EMAIL_TO - поле "To" ("Куда");
  • BCC - поле "BCC" ("Скрытая копия");
  • SUBJECT - заголовок сообщения;
  • BODY_TYPE - тип тела почтового сообщения: "text" - текст; "html" - HTML;
  • MESSAGE - тело почтового сообщения.

Если нужно добавить своё поле (например, "envelope-from") прописываем в fields массив ADDITIONAL_FIELD:

$em = new CEventMEssage;

$arFields = array(
    'ACTIVE'     =>  'Y',
    'EVENT_NAME' =>  'EVENT_NAME',
    //...
    'ADDITIONAL_FIELD'  => array(
        array(
            'NAME'  =>  'envelope-from',
            'VALUE' =>  '#DEFAULT_EMAIL_FROM#'
        )
    )
);

$result = $em->Add( $arFields );

//...

Смотрите также

  • Поля шаблона почтового сообщения
  • CEventMessage::Update

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

<?
$arr["ACTIVE"] = "Y";
$arr["EVENT_NAME"] = "ADV_CONTRACT_INFO";
$arr["LID"] = array("s1","s2");
$arr["EMAIL_FROM"] = "#DEFAULT_EMAIL_FROM#";
$arr["EMAIL_TO"] = "#EMAIL_TO#";
$arr["BCC"] = "#BCC#";
$arr["SUBJECT"] = "Тема сообщения";
$arr["BODY_TYPE"] = "text";
$arr["MESSAGE"] = "
Текст сообщения
";

$emess = new CEventMessage;
$emess->Add($arr);
?>


Delete

Главный модуль>Классы>CEventMessage>Delete (с версии 3.0.10)

CEventMessage::Delete

mixed
CEventMessage::Delete(
 int id
)

Удаляет почтовый шаблон. Если шаблон удален успешно, то возвращается объект CDBResult, в противном случае - false. Статический метод.

Параметры

Параметр | Описание
id | ID шаблона.

Смотрите также

  • Класс CDBResult
  • Событие "OnEventMessageDelete"
  • Событие "OnBeforeEventMessageDelete"

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

<?
if(intval($del_id)>0 && $MAIN_RIGHT=="W")
{
    $emessage = new CEventMessage;
    $DB->StartTransaction();
    if(!$emessage->Delete(intval($del_id)))
    {
        $DB->Rollback();
        $strError.=GetMessage("DELETE_ERROR");
    }
    else $DB->Commit();
}
?>


GetByID

Главный модуль>Классы>CEventMessage>GetByID (с версии 3.0.10)

CEventMessage::GetByID

CDBResult
CEventMessage::GetByID(
 int id
)

Возвращает почтовый шаблон по его коду id в виде объекта класса CDBResult. Статический метод.

Параметры

Параметр | Описание
id | ID шаблона.

Смотрите также

  • Поля шаблона почтового сообщения
  • CEventMessage::GetList
  • Класс CDBResult

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

<?
$rsEM = CEventMessage::GetByID($ID);
$arEM = $rsEM->Fetch();
echo "<pre>"; print_r($arEM); echo "</pre>";
?>


GetList

Главный модуль>Классы>CEventMessage>GetList (с версии 3.0.10)

CEventMessage::GetList

Описание и параметры

CDBResult
CEventMessage::GetList(
 string &by="id",
 string &order="desc",
 array filter
)

Возвращает список почтовых шаблонов в виде объекта класса CDBResult. Статический метод.

Параметры

Параметр Описание
by Ссылка на переменную с полем для сортировки, может принимать значения:
  • site_id - идентификатор сайта;
  • subject - тема;
  • timestamp_x - дата изменения;
  • event_name - тип события;
  • id - ID шаблона;
  • active - активность;
оrder Ссылка на переменную с порядком сортировки, может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
filter Массив вида array("фильтруемое поле"=>"значение" [, ...]), может принимать значения:
  • ID - ID шаблона;
  • TYPE - код и заголовок типа события (допустима сложная логика [image] [image] [image] [image] [image] [image] [image]);
  • TYPE_ID - код типа события (допустима сложная логика [image] [image] [image] [image] [image] [image] [image]);
  • TIMESTAMP_1 - левая часть интервала ("c") для поиска по дате изменения;
  • TIMESTAMP_2 - правая часть интервала ("по") для поиска по дате изменения;
  • SITE_ID - идентификатор сайта (допустимо задание массива для поиска по логике "или", либо допустимо использование сложной логики [image]);
  • ACTIVE - флаг активности (Y|N);
  • FROM - поле "От кого" (допустима сложная логика [image] [image] [image] [image] [image] [image] [image]);
  • TO - поле "Кому" (допустима сложная логика [image] [image] [image] [image] [image] [image] [image]);
  • BCC - поле "Скрытая копия" (допустима сложная логика [image] [image] [image] [image] [image] [image] [image]);
  • SUBJECT - по теме сообщения (допустима сложная логика [image] [image] [image] [image] [image] [image] [image]);
  • BODY_TYPE - по типу тела сообщения (text|html);
  • BODY - по телу сообщения (допустима сложная логика [image] [image] [image] [image] [image] [image] [image]);

Смотрите также

  • Поля шаблона почтового сообщения
  • CEventMessage::GetByID
  • Класс CDBResult

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

<?
$arFilter = Array(
    "ID"            => "12 | 134",
    "TYPE"          => "контракт & рекл",
    "TYPE_ID"       => array("ADV_BANNER", "ADV_CONTRACT"),
    "TIMESTAMP_1"   => "12.11.2001",
    "TIMESTAMP_2"   => "12.11.2005",
    "SITE_ID"       => "ru | en",
    "ACTIVE"        => "Y",
    "FROM"          => "bitrixsoft.ru",
    "TO"            => "#TO#",
    "BCC"           => "admin",
    "SUBJECT"       => "конктракт",
    "BODY_TYPE"     => "text",
    "BODY"          => "auto"
);

$rsMess = CEventMessage::GetList($by="site_id", $order="desc", $arFilter);

while($arMess = $rsMess->GetNext())
{
    var_dump($arMess);
}
?>


Update

Главный модуль>Классы>CEventMessage>Update (с версии 3.0.3)

CEventMessage::Update

Описание и параметры

bool
CEventMessage::Update(
 int id,
 array fields
)

Изменяет почтовый шаблон с кодом id. Возвращает true, если изменение прошло успешно, при возникновении ошибки метод вернет false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки. Нестатический метод.

Параметры

Параметр | Описание
id | ID изменяемой записи.
fields | Массив значений полей вида array("поле"=>"значение" [, ...]).

Смотрите также

  • Поля шаблона почтового сообщения
  • CEventMessage::Add

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

<?
if($REQUEST_METHOD=="POST" && (strlen($save)>0 || strlen($apply)>0)&& $MAIN_RIGHT=="W")
{
    $em = new CEventMessage;
    $arFields = Array(
        "ACTIVE"        => $ACTIVE,
        "EVENT_NAME"    => $EVENT_NAME,
        "LID"           => $LID,
        "EMAIL_FROM"    => $EMAIL_FROM,
        "EMAIL_TO"      => $EMAIL_TO,
        "BCC"           => $BCC,
        "SUBJECT"       => $SUBJECT,
        "MESSAGE"       => $MESSAGE,
        "BODY_TYPE"     => $BODY_TYPE
        );
    if($ID>0)
    {
        $res = $em->Update($ID, $arFields);
    }
    else
    {
        $ID = $em->Add($arFields);
        $res = ($ID>0);
    }
    if(!$res)
    {
        $strError .= $em->LAST_ERROR."<br>";
        $bVarsFromForm = true;
    }
    else
    {
        if (strlen($save)>0)
            LocalRedirect(BX_ROOT."/admin/message_admin.php?lang=".LANGUAGE_ID);
        else
            LocalRedirect(BX_ROOT."/admin/message_edit.php?lang=".LANGUAGE_ID."&ID=".$ID);
    }
}
?>


Класс CEventType

Описание и поля

CEventType - класс для работы с типами почтовых событий.

Поля

Поле | Тип | Описание
ID | Int | ID типа почтового события.
EVENT_NAME | Varchar(50) | ID почтового события.
LID | Char(2) | ID сайта.
SORT | Int | Порядок сортировки.
NAME | Varchar(100) | Название.
DESCRIPTION | Text | Описание, содержит текст с макросами типа #поле# - описание.

Смотрите также

  • Почтовая система

Список методов

Метод | Описание | С версии
GetList | Получает список типов по фильтру. | 3.0.10
GetByID | Получает данные о типе по его ID | 3.0.10
Add | Добавляет новый тип. |
Delete | Удаляет тип. | 3.0.10
Update | Изменяет параметры типа почтового события. | 6.0.3


Add

Главный модуль>Классы>CEventType>Add (с версии 3.0.3)

CEventType::Add

Описание и параметры

mixed CEventType::Add(
 array fields
)

Добавляет тип почтового события. Возвращает ID вставленного типа. При возникновении ошибки метод вернет false, а в свойстве объекта $APPLICATION->LAST_ERROR будет содержаться текст ошибки. Статический метод.

Параметры

Параметр Описание
fields Массив значений полей вида array("поле"=>"значение" [, ...]). В качестве "полей" допустимо использовать:
  • LID - Идентификатор сайта.
  • EVENT_NAME - идентификатор типа почтового события, уникальное.
  • EVENT_TYPE - тип события, принимает значения "email" или "sms"
  • NAME - заголовок типа почтового события
  • DESCRIPTION - описание задающее поля типа почтового события

Смотрите также

  • Поля типа почтового события

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

<?
function UET($EVENT_NAME, $NAME, $LID, $DESCRIPTION)
{
    $et = new CEventType;
    $et->Add(array(
        "LID"           => $LID,
        "EVENT_NAME"    => $EVENT_NAME,
        "NAME"          => $NAME,
        "DESCRIPTION"   => $DESCRIPTION
        ));
}

UET(
"ADV_BANNER_STATUS_CHANGE","Изменился статус баннера","ru",
"
#EMAIL_TO# - EMail получателя сообщения (#OWNER_EMAIL#)
#ADMIN_EMAIL# - EMail пользователей имеющих роль \"менеджер баннеров\" и \"администратор\"
#ADD_EMAIL# - EMail пользователей имеющих право управления баннерами контракта
#STAT_EMAIL# - EMail пользователей имеющих право просмотра баннеров конракта
#EDIT_EMAIL# - EMail пользователей имеющих право модификации некоторых полей контракта
#OWNER_EMAIL# - EMail пользователей имеющих какое либо право на контракт
#BCC# - скрытая копия (#ADMIN_EMAIL#)
#ID# - ID баннера
#CONTRACT_ID# - ID контракта
#CONTRACT_NAME# - заголовок контракта
#TYPE_SID# - ID типа
#TYPE_NAME# - заголовок типа
#STATUS# - статус
#STATUS_COMMENTS# - комментарий к статусу
#NAME# - заголовок баннера
#GROUP_SID# - группа баннера
#INDICATOR# - показывается ли баннер на сайте ?
#ACTIVE# - флаг активности баннера [Y | N]
#MAX_SHOW_COUNT# - максимальное количество показов баннера
#SHOW_COUNT# - сколько раз баннер был показан на сайте
#MAX_CLICK_COUNT# - максимальное количество кликов на баннер
#CLICK_COUNT# - сколько раз кликнули на баннер
#DATE_LAST_SHOW# - дата последнего показа баннера
#DATE_LAST_CLICK# - дата последнего клика на баннер
#DATE_SHOW_FROM# - дата начала показа баннера
#DATE_SHOW_TO# - дата окончания показа баннера
#IMAGE_LINK# - ссылка на изображение баннера
#IMAGE_ALT# - текст всплывающей подсказки на изображении
#URL# - URL на изображении
#URL_TARGET# - где развернуть URL изображения
#CODE# - код баннера
#CODE_TYPE# - тип кода баннера (text | html)
#COMMENTS# - комментарий к баннеру
#DATE_CREATE# - дата создания баннера
#CREATED_BY# - кем был создан баннер
#DATE_MODIFY# - дата изменения баннера
#MODIFIED_BY# - кем изменен баннер
"
);
?>


Delete

Главный модуль>Классы>CEventType>Delete (с версии 3.0.10)

CEventType::Delete

Описание и параметры

CDBResult
CEventType::Delete(
 string EVENT_NAME
)

Удаляет тип почтового события. Возвращается объект класса CDBResult. Статический метод.

Параметры

Параметр | Описание
EVENT_NAME | Тип почтового события.

Смотрите также

  • Класс CDBResult

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

<?
$et = new CEventType;
$et->Delete("ADV_BANNER_STATUS_CHANGE");
?>

С версии 6.0.3 возможно использование массива:

CEventType::Delete(
 array (
  "ID" => 1,
  "LID"=> "ru",
  "EVENT_NAME" => "EVENT_NAME",
  "NAME" => "NAME",
  "SORT" => 100500
)
);


GetByID

Главный модуль>Классы>CEventType>GetByID (с версии 3.0.10)

CEventType::GetByID

Описание и параметры

CDBResult
CEventType::GetByID(
 string ID,
 string LID
)

Возвращает тип почтового события в виде объекта класса CDBResult. Статический метод.

Параметры

Параметр | Описание
ID | Идентификатор типа почтового события.
LID | Идентификатор сайта.

Смотрите также

  • Поля типа события
  • CEventType::GetList
  • Класс CDBResult

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

<?
$rsET = CEventType::GetByID("ADV_BANNER_STATUS_CHANGE", "ru");
$arET = $rsET->Fetch();
?>


GetList

Главный модуль>Классы>CEventType>GetList (с версии 3.0.10)

CEventType::GetList

Описание и параметры

CDBResult
CEventType::GetList(
 $arFilter=array(),
 $arOrder=array()
)

Возвращает список типов почтовых событий по фильтру filter в виде объекта класса CDBResult. Статический метод.

Параметры

Параметр Описание С версии
filter Массив фильтрации вида array("фильтруемое поле"=>"значение" [, ...]). "Фильтруемое поле" может принимать значения:
  • TYPE_ID - идентификатор типа события;
  • LID - идентификатор сайта;
order Массив сортировки вида array("фильтруемое поле"=>"значение" [, ...]). "Фильтруемое поле" может принимать значения:
  • TYPE_ID - идентификатор типа события;
  • LID - идентификатор сайта;
10.0.8

Смотрите также

  • Поля типа события
  • CEventType::GetByID
  • Класс CDBResult

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

<?
$arFilter = array(
    "TYPE_ID" => "ADV_BANNER_STATUS_CHANGE",
    "LID"     => "ru"
    );
$rsET = CEventType::GetList($arFilter);
while ($arET = $rsET->Fetch())
{
    echo "<pre>"; print_r($arET); echo "</pre>";
}
?>


Update

Главный модуль>Классы>CEventType>Update (с версии 6.0.3)

CEventType::Update

Описание и параметры

CDBResult
CEventType::Update(
 array ID,
 array fields
)

Изменяет параметры типа почтового события. Возвращается объект класса CDBResult. При возникновении ошибки метод вернет false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки. Статический метод.

Параметры

Параметр Описание
ID Массив значений ID почтовых событий, которые нужно изменить. В массиве допустимо использовать:
  • ID - идентификатор типа почтового события
  • LID - идентификатор сайта.
  • EVENT_NAME - идентификатор почтового события
fields Массив значений полей вида array("поле"=>"значение" [, ...]). В качестве "полей" допустимо использовать:
  • LID - идентификатор сайта.
  • EVENT_NAME - идентификатор типа почтового события
  • NAME - заголовок типа почтового события
  • DESCRIPTION - описание задающее поля типа почтового события

Смотрите также

  • Поля типа почтового события

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

$arType = array(
    "SORT" => $_POST["SORT"],
    "NAME" => $_POST["NAME"],
    "DESCRIPTION" => $_POST["DESCRIPTION"],
    "LID" => $_POST["LID"],
    "EVENT_NAME" => $_POST["EVENT_NAME"],
);
CEventType::Update(array("ID" => $_POST["ID"]), $arType);


Класс CFile

Описание и поля

Класс для работы с файлами и изображениями.

Аналог класса в новом ядре D7 - Bitrix\Main\FileTable.

Поля

Поле | Тип | Описание
ID | int | ID файла.
TIMESTAMP_X | timestamp | Дата изменения записи.
MODULE_ID | varchar(50) | Идентификатор модуля которому принадлежит файл.
HEIGHT | int | Высота изображения (если файл - графический).
WIDTH | int | Ширина изображения (если файл - графический).
FILE_SIZE | int | Размер файла (байт).
CONTENT_TYPE | varchar(255) | MIME тип файла.
SUBDIR varchar(255) Подкаталог в котором находится файл на диске. Основной каталог для хранения файлов задается в параметре "Папка по умолчанию для загрузки файлов" в настройках главного модуля, значение данного параметра программно можно получить с помощью вызова метода:
COption::GetOptionString("main", "upload_dir", "upload");
FILE_NAME | varchar(255) | Имя файла на диске сервера.
ORIGINAL_NAME | varchar(255) | Оригинальное имя файла в момент загрузки его на сервер.
DESCRIPTION | varchar(255) | Описание файла.

Список методов

Метод | Описание | с версии
GetByID | Возвращает информацию по одному зарегистрированному файлу. | 3.1.6
[link=286270]GetList[/link] | Возвращает отсортированную и отфильтрованную выборку зарегистрированных файлов. | 7.0.2
GetPath | Метод возвращает путь от корня сайта к зарегистрированному файлу. | 3.3.21
ShowImage | Возвращает HTML для показа изображения. |
Show2Images | Возвращает HTML для показа изображения при клике на которое в отдельном окне отображается другое изображение. | 3.2.1
CheckFile | Проверяет размер, расширение и mime тип файла. В случае ошибки метод вернет строку с текстом ошибки. |
CheckImageFile | Проверяет что файл является картинкой и проверяет ее параметры. В случае ошибки метод вернет строку с текстом ошибки. |
IsImage | Метод проверяет расширение и заданный MIME тип файла. Если расширение и MIME тип файла соответствуют изображению, то возвращает "true", иначе "false". | 3.3.18
MakeFileArray | Метод формирует массив описывающий файл. Структура массива аналогична структуре массива $_FILES[имя] (или $HTTP_POST_FILES[имя]). Данный массив может быть использован в методах CFile::SaveFile, CFile::CheckFile, CFile::CheckImageFile. | 3.2.9
InputFile | Возвращает HTML код предназначенный для загрузки нового, либо замены существующего файла. |
SaveFile | Сохраняет файл и регистрирует его в таблице файлов. |
SaveForDB | Сохраняет файл и подготавливает данные для вставки/обновления записи в БД, содержащей ссылку на файл | 7.1.0
UpdateDesc | Обновляет описание к зарегистрированному файлу. | 3.3.21
CopyFile | Копирует зарегистрированный файл. | 3.0.14
Delete | Удаляет файл из таблицы зарегистрированных файлов и с диска. |
FormatSize | Метод переводит байты в единицы с учетом языка, установленного в текущем сайта.. | 8.6.4
GetFileArray | Возвращает массив описывающий файл с заданным идентификатором. | 5.1.8
ResizeImageFile | Метод производит изменение размера графического файла | 7.1.1
ResizeImageGet | Метод уменьшает картинку. | 7.1.1
ResizeImage | Обертка ResizeImageFile | 7.1.1


CheckFile

Главный модуль>Классы>CFile>CheckFile (с версии 3.0.3)

CFile::CheckFile

Описание и параметры

string
CFile::CheckFile(
 array file,
 int max_size = 0,
 string mime_types = false,
 string Ext = false,
 bool ForceMD5=false,
 bool SkipExt=false
)

Метод проверяет размер, расширение и mime тип файла. В случае ошибки метод вернет строку с текстом ошибки. Статический метод.

Параметры

Параметр | Описание | С версии
file Массив с данными файла формата:

Array(
    "name" => "название файла",
    "size" => "размер",
    "tmp_name" => "временный путь к файлу на сервере",
    "type" => "тип загружаемого файла",
    "del" => "флаг - удалить ли существующий файл из базы данных (Y|N)",
    "MODULE_ID" => "название модуля")
Массив такого вида может быть получен, например, объединением массивов $_FILES[имя поля] и Array("del" => ${"имя поля"."_del"}, "MODULE_ID" = "название модуля").
max_size Максимальный размер файла (байт).
Необязательный. По умолчанию - "0" - без ограничений.
mime_types Разрешенный mime тип файла (например, "image/"). Проверка осуществляется по данным полученным от посетителя, поэтому для более безопасной проверки используйте extensions.
Необязательный. По умолчанию - "false" - без ограничений.
Ext Перечисленные через запятую разрешенные расширения файла.
Необязательный. По умолчанию - "false" - без ограничений.
Расширения файла следует указывать без точки, например не .pdf, а pdf. Для сверки допустимых расширений и текущего расширения загруженного файла, текущее расширение получают методом CFile::GetFileExtension, который возвращает расширение без точки.
ForceMD5 | Необязательный. По умолчанию - "false". | 12.5.4
SkipExt | Необязательный. По умолчанию - "false". | 12.5.4

Смотрите также

  • CFile::CheckImageFile
  • CFile::IsImage

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

<?
$arrFile = array_merge(
    $_FILES["ATTACHED_IMAGE"],
    array("del" => ${"ATTACHED_IMAGE_del"}, "MODULE_ID" => "forum"));

$res = CFile::CheckFile($arrFile, 200, "image/", CFile::GetImageExtensions());
if (strlen($res)>0) $strError .= $res."<br>";
?>


CheckImageFile

Главный модуль>Классы>CFile>CheckImageFile (с версии 3.0.3)

CFile::CheckImageFile

Описание и параметры

string
CFile::CheckImageFile(
 array file,
 int max_size = 0,
 int max_width = 0,
 int max_height = 0
 array access_typies = array(),
 bool ForceMD5=false,
 bool SkipExt=false
)

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

Параметры

Параметр | Описание | С версии
file Массив с данными файла формата:
Array(
    "name" => "название файла",
    "size" => "размер",
    "tmp_name" => "временный путь
                   к файлу на сервере",
    "type" => "тип загружаемого файла",
    "del" => "флаг: удалить ли
              существующий файл
              из базы данных (Y|N)",
    "MODULE_ID" => "название модуля")
Массив такого вида может быть получен, например, объединением массивов $_FILES[имя поля] и Array("del" => ${"имя поля"."_del"}, "MODULE_ID" = "название модуля").
max_size Максимальный размер файла (байт).
Необязательный. По умолчанию - "0" - без ограничений.
max_width Максимальная ширина картинки (пикселей).
Необязательный. По умолчанию - "0" - без ограничений.
max_height Максимальная высота картинки (пикселей).
Необязательный. По умолчанию - "0" - без ограничений.
access_typies Массив символьных идентификаторов типов файлов; допустимые следующие идентификаторы:
  • IMAGE - изображение;
  • FLASH - flash файл.
Параметр необязательный. По умолчанию - пустой массив (допустимы только файлы типа IMAGE). 		4.0.9
ForceMD5 | Необязательный. По умолчанию - "false". | 12.5.4
SkipExt | Необязательный. По умолчанию - "false". | 12.5.4

Смотрите также

  • CFile::CheckFile
  • CFile::IsImage

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

<?
$arrFile = array_merge(
    $_FILES["ATTACHED_IMAGE"],
    array("del" => ${"ATTACHED_IMAGE_del"}, "MODULE_ID" => "forum"));

$res = CFile::CheckImageFile($arrFile, 200, 50, 50);
if (strlen($res)>0) $strError .= $res."<br>";
?>


CopyFile

Главный модуль>Классы>CFile>CopyFile (с версии 3.0.14)

CFile::CopyFile

Описание и параметры

int
CFile::CopyFile(
 int file_id,
 bool Register = true,
 newPath = ""
)

Метод копирует зарегистрированный файл и возвращает ID нового файла копии. Статический метод.

Параметры

Параметр | Описание | С версии
file_id | Цифровой идентификатор файла предназначенного для копирования. |
Register | Необязательный. Если в Register указать false, то файл не будет зарегистрирован в таблице файлов. Функция вернет true, если файл будет успешно скопирован. | 10.0.11
newPath | Необязательный. Указывается относительно $_SERVER['DOCUMENT_ROOT'].'/upload/' | 10.0.11

Смотрите также

  • CopyDirFiles

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

<?
if ($rsElements = GetIBlockElementListEx($IBLOCK_TYPE, $IBLOCK_ID, false, array($ELEMENT_SORT_FIELD => $ELEMENT_SORT_ORDER, "ID" => "ASC"), false, $arrFilter)):
    $rsElements->NavStart($PAGE_ELEMENT_COUNT);
    while ($obElement = $rsElements->GetNextElement()):
        $arElement = $obElement->GetFields();
        $arrNewImages[$arElement["ID"]][] = CFile::CopyFile($arElement["PREVIEW_PICTURE"]);
    endwhile;
endif;
?>


Delete

Главный модуль>Классы>CFile>Delete (с версии 3.0.3)

CFile::Delete

CFile::Delete(
 int id
)

Метод удаляет файл из таблицы зарегистрированных файлов (b_file) и с диска. Статический метод.

Параметры

Параметр | Описание
id | Цифровой идентификатор файла.

Смотрите также

  • DeleteDirFiles
  • DeleteDirFilesEx

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

<?
// удаляем изображение формы
$arFilter = array("ID" => 1, "ID_EXACT_MATCH" => "Y");
$rsForm = CForm::GetList($by, $order, $arFilter, $is_filtered);
if ($arForm = $rsForm->Fetch())
{
    if (intval($arForm["IMAGE_ID"])>0) CFile::Delete($arForm["IMAGE_ID"]);
}
?>


FormatSize

Главный модуль>Классы>CFile>FormatSize (с версии 8.6.4)

CFile::FormatSize

CFile::FormatSize(
 $size,
 $precision
);

Метод переводит байты в Килобайты, Мегабайты, Гигабайты и т.д. с учетом языка, установленного в текущем сайте. Статический метод.

Параметры

Параметр | Описание
size | Размер файла в байтах
precision | Порядок округления. По умолчанию - 2.

Возвращаемое значение

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

Пример

<?
$rsFile = CFile::GetByID($arBooktel['BOOKLET']['PREVIEW_PICTURE']);  //Здесь ID
$arBooktel['BOOKLET']['PREVIEW_PICTURE']=$rsFile->Fetch();

$arBooktel['BOOKLET']['PREVIEW_PICTURE']['SIZE']=CFile::FormatSize($arBooktel['BOOKLET']['PREVIEW_PICTURE']['FILE_SIZE']);

echo $arBooktel['BOOKLET']['PROPERTY_FILE_VALUE']['SIZE'];
?>

Результат:

157.59 КБ


GetByID

Главный модуль>Классы>CFile>GetByID (с версии 3.1.6)

CFile::GetByID

Описание и параметры

CDBResult
CFile::GetByID(
 int file_id
)

Метод возвращает информацию по одному зарегистрированному файлу в виде объекта класса CDBResult. Статический метод.

Параметры

Параметр | Описание
file_id | Цифровой идентификатор файла.

Смотрите также

  • Поля файла
  • CFile::GetPath
  • CFile::InputFile
  • CFile::SaveFile
  • CFile::CopyFile
  • CFile::Delete

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

<?
if ($rsElements = GetIBlockElementListEx($IBLOCK_TYPE, $IBLOCK_ID, false, array($ELEMENT_SORT_FIELD => $ELEMENT_SORT_ORDER, "ID" => "ASC"), false, $arrFilter)):
    $rsElements->NavStart($PAGE_ELEMENT_COUNT);
    while ($obElement = $rsElements->GetNextElement()):
        $arElement = $obElement->GetFields();
        $rsFile = CFile::GetByID($arElement["PREVIEW_PICTURE"]);
        $arFile = $rsFile->Fetch();
        $arrImages[$arElement["ID"]][] = $arFile;
    endwhile;
endif;
?>


GetFileArray

Главный модуль>Классы>CFile>GetFileArray (с версии 5.1.8)

CFile::GetFileArray

Описание и параметры

mixed CFile::GetFileArray(
   int FILE_ID,
   $upload_dir = false
)

Метод возвращает массив описывающий файл с заданным идентификатором или false, если файла с таким идентификатором не существует. Удобно когда нужно получить одним методом и имя файла, и путь к нему на сервере. Статический метод.

Параметры

Параметр | Описание | С версии
FILE_ID Идентификатор файла. Состав полей:
  • ID - идентификатор файла.
  • TIMESTAMP_X - дата загрузки.
  • MODULE_ID - идентификатор модуля загрузившего файл.
  • HEIGHT - для картинок высота.
  • WIDTH - для картинок ширина.
  • FILE_SIZE - размер в байтах.
  • CONTENT_TYPE - тип содержимого, выдаётся mime-type.
  • SUBDIR - поддиректория внутри папки UPLOAD.
  • FILE_NAME - имя файла после преобразования и убирания некорректных символов. Если стоит опция в настройках главного модуля Сохранять исходные имена загружаемых файлов, то фактически не будет отличаться от ORIGINAL_NAME (Будет приведен в безопасный вид при включённой опции Автоматически заменять невалидные символы в именах загружаемых файлов).
  • ORIGINAL_NAME - оригинальное имя файла во время загрузки.
  • DESCRIPTION - описание.
  • SRC - относительный путь относительно DOCUMENT_ROOT.
  • EXTERNAL_ID - внешний идентификатор файла.
upload_dir | Директория для загрузки. По умолчанию - false. | 10.0.11

Смотрите также

Класс CFile

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

//Покажем изображение анонса элемента инфоблока
//$ELEMENT_ID - идентификатор этого элемента
if(CModule::IncludeModule('iblock'))
{
  $rsElement = CIBlockElement::GetList(
    array(),
    array("=ID"=>$ELEMENT_ID),
    false,
    false,
    array("PREVIEW_PICTURE")
  );
  if($arElement = $rsElement->Fetch())
  {
    $arFile = CFile::GetFileArray($arElement["PREVIEW_PICTURE"]);
    if($arFile)
       echo '<img src="'.$arFile["SRC"].'" />';
  }
}

Получение всех файловых свойств у элементов из массива $arResult

foreach ($arResult["ITEMS"] as $k=>$v)
{
   foreach ($v["PROPERTIES"] as $kk=>$vv)
   {
      if ($vv["PROPERTY_TYPE"] == "F")
      {
         if ($vv["MULTIPLE"] == "Y")
         {
            foreach ($vv["VALUE"] as $kkk=>$vvv)
            {
               $arResult["ITEMS"][$k]["PROPERTIES"][$kk]["VALUE"][$kkk] = CFile::GetFileArray($vvv);
               $arResult["ITEMS"][$k]["PROPERTIES"][$kk]["VALUE"][$kkk]["DESCRIPTION"] = $vv["DESCRIPTION"][$kkk];
            }
         }
         else
         {
            $arResult["ITEMS"][$k]["PROPERTIES"][$kk]["VALUE"] = CFile::GetFileArray($vv["VALUE"]);
            $arResult["ITEMS"][$k]["PROPERTIES"][$kk]["VALUE"]["DESCRIPTION"] = $vv["DESCRIPTION"];
         }
      }
   }
}

Пример из компонента bitrix:news.list

$rsElement = CIBlockElement::GetList($arSort, $arFilter, false, $arNavParams, $arSelect);
while($obElement = $rsElement->GetNextElement())
{
    $arItem = $obElement->GetFields();
    ...
    if(array_key_exists("PREVIEW_PICTURE", $arItem))
        $arItem["PREVIEW_PICTURE"] = CFile::GetFileArray($arItem["PREVIEW_PICTURE"]);
    if(array_key_exists("DETAIL_PICTURE", $arItem))
        $arItem["DETAIL_PICTURE"] = CFile::GetFileArray($arItem["DETAIL_PICTURE"]);
    ...
}


GetList

Главный модуль>Классы>CFile>GetList (с версии 7.0.2)

CFile::GetList

Описание и параметры

CDBResult
CFile::GetList(
 array arOrder = array(),
 array arFilter = array()
);

Метод возвращает отфильтрованную и отсортированную выборку зарегистрированных файлов в виде объекта класса CDBResult. Статический метод.

Примечание: некоторые поля фильтра (SUBDIR, FILE_NAME) и сортировка обрабатываются начиная с версии 10.0.6 главного модуля.

Параметры

Параметр | Описание
arOrder | Массив, содержащий признак сортировки в виде пар "поле"=>"направление". Поддерживаются следующие поля: ID, TIMESTAMP_X, MODULE_ID, HEIGHT, WIDTH, FILE_SIZE, CONTENT_TYPE, SUBDIR, FILE_NAME, ORIGINAL_NAME. Направление сортировки может принимать значения "ASC", "DESC". Если параметр пуст, то выборка будет отсортирована по полю ID по возрастанию.
arFilter | Массив, содержащий фильтр в виде пар "поле"=>"значение". Поддерживаются следующие поля фильтра: MODULE_ID, ID, SUBDIR, FILE_NAME, ORIGINAL_NAME, CONTENT_TYPE. Если указать в начале поля символ @, то можно передать несколько значений через запятую (применяется оператор IN), например: "@ID"=>"1,2,3,4,5".

Возвращаемое значение

Объект типа CDBResult.

Смотрите также

  • CDBResult
  • Класс CFile

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

<?
//найдем самые большие файлы ядра
$res = CFile::GetList(array("FILE_SIZE"=>"desc"), array("MODULE_ID"=>"main"));
while($res_arr = $res->GetNext())
    echo $res_arr["SUBDIR"]."/".$res_arr["FILE_NAME"]." = ".$res_arr["FILE_SIZE"]."<br>";
?>

Получение списка файлов по фильтру. К сожалению, пока можно фильтровать и сортировать только по ID и MODULE.

CFile::GetList($arOrder = Array(), $arFilter = Array(), $arParams = Array())

При сортировке по ID можно передавать либо просто один ID:

$arFilter = Array("ID" => 123);

либо массив ID (в ключ добавляется @ и разделяется запятыми):

$arFilter = Array("@ID" => "123,124,125");

Параметр функции $arParams есть, но на данный момент вообще никак не используется в работе функции.


GetPath

Главный модуль>Классы>CFile>GetPath (с версии 3.3.21)

CFile::GetPath

string
CFile::GetPath(
 int file_id
)

Метод возвращает путь от корня сайта к зарегистрированному файлу. Возвращает NULL, если файл не зарегистрирован. Статический метод.

Параметры

Параметр | Описание
file_id | Целочисленный ID файла

Смотрите также

  • CFile::GetByID

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

<?
if ($rsElements = GetIBlockElementListEx($IBLOCK_TYPE, $IBLOCK_ID, false, array($ELEMENT_SORT_FIELD => $ELEMENT_SORT_ORDER, "ID" => "ASC"), false, $arrFilter)):
  $rsElements->NavStart($PAGE_ELEMENT_COUNT);
  while ($obElement = $rsElements->GetNextElement()):
    $arElement = $obElement->GetFields();
    $arImagesPath[$arElement["PREVIEW_PICTURE"]] = CFile::GetPath($arElement["PREVIEW_PICTURE"]);
  endwhile;
endif;
?>

Получить путь к картинке

CFile::GetPath($arItem["PICTURE"]);


InputFile

Главный модуль>Классы>CFile>InputFile (с версии 3.0.3)

CFile::InputFile

Описание и параметры

string
CFile::InputFile(
 string FieldName,
 int field_size,
 int ImageID,
 string ImageStorePath = false,
 int file_max_size = 0,
 string FileType = "IMAGE",
 string field_file = "class=typefile",
 int description_size = 0,
 string field_text = "class=typeinput",
 string field_checkbox = "",
 bool ShowNotes = true,
 bool ShowFilePath = True
)

Метод возвращает HTML код предназначенный для загрузки нового, либо замены существующего файла. Статический метод.

Параметры

Параметр | Описание | С версии
FieldName | Название поля для ввода файла: <input type="file" name="input_file_name" ... > |
field_size | Ширина поля для ввода файла: <input type="file" size="input_file_width" ... > |
ImageID | Цифровой идентификатор существующего файла. |
ImageStorePath | Путь к папке от корня сайта в которой хранятся файлы. Например: "/upload/iblock/". Необязательный. По умолочанию false - путь берется из настроек системы. |
file_max_size | Максимальный размер файла (байт): <input type="hidden" name="MAX_FILE_SIZE" value="file_max_size"> Необязательный. По умолчанию "0" - без ограничений. |
FileType | Тип файла, если "IMAGE", то в информацию по файлу будет добавлена ширина и высота изображения. Необязательный. По умолчанию "IMAGE". | 3.3.0
field_file | Произвольный HTML который будет добавлен в поле для ввода файла: <input type="file" add_to_input_file ... > Необязательный. По умолчанию "class=typefile" - стандартный класс для полей ввода файлов в административной части. | 3.3.21
description_size | Ширина поля ввода для комментария к файлу: <input type="text" size="input_description_width" ... > Необязательный. По умолчанию "0" - поле ввода для комментария к файлу не показывать. | 3.3.21
field_text | Произвольный HTML который будет добавлен в поле ввода для комментария к файлу: <input type="text" add_to_input_description ... > Необязательный. По умолчанию "class=typeinput" - стандартный класс для однострочных элементов ввода в административной части. | 3.3.21
field_checkbox | Произвольный HTML который будет добавлен в поле типа "checkbox" для удаления файла: <input type="checkbox" name="input_file_name_del" value="Y" add_to_checkbox_delete ... > Необязательный. | 3.3.21
ShowNotes | Флаг позволяющий включить, либо отключить показ информации по файлу (размер, ширину, высоту). Необязательный. По умолчанию - "true" - информацию по файлу показать. | 3.3.21
ShowFilePath | Флаг позволяющий включить, либо отключить показ пути к файлу. Необязательный. По умолчанию - "true" - информацию по файлу показать. | 12.0.8

Смотрите также

  • CFile::SaveFile

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

<tr valign="top">
    <td align="right"><font class="tablefieldtext"><?=GetMessage("VOTE_IMAGE")?></font></td>
    <td><font class="tablebodytext"><?
    echo CFile::InputFile("IMAGE_ID", 20, $str_IMAGE_ID);
    if (strlen($str_IMAGE_ID)>0):
        ?><br><?echo CFile::ShowImage($str_IMAGE_ID, 200, 200, "border=0", "", true);
    endif;
    ?></font>
    </td>
</tr>


IsImage

Главный модуль>Классы>CFile>IsImage (с версии 3.3.18)

CFile::IsImage

Описание и параметры

string
CFile::IsImage(
 string file_name,
 mixed mime_type = false
)

Метод проверяет расширение и заданный MIME тип файла. Если расширение и MIME тип файла соответствуют изображению, то возвращает "true", иначе "false". Статический метод.

Параметры

Параметр | Описание
file_name | Краткое имя файла (без пути).
mime_type | MIME тип файла (например, "image/"). Необязательный. По умолчанию - "false" - проверку на MIME тип не делать. До версии 4.0.4 назывался content_type.

Смотрите также

  • CFile::CheckImageFile
  • CFile::CheckFile

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

<?
if ($rsFiles = CTicket::GetFileList($v1="s_id", $v2="asc", array("HASH"=>$hash))) :
  if ($arFile = $rsFiles->Fetch()) :
    $filename = $_SERVER["DOCUMENT_ROOT"]."/".COption::GetOptionString("main", "upload_dir", "upload")."/".$arFile["SUBDIR"]."/".$arFile["FILE_NAME"];
    if ($f = fopen($filename, "rb"))
    {
      $is_image = CFile::IsImage($arFile["FILE_NAME"], $arFile["CONTENT_TYPE"]);
      // если изображение то
      if ($is_image)
      {
        // отдадим как изображение
        header("Content-type: ".$arFile["CONTENT_TYPE"]);
        header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0");
        header("Expires: 0");
        header("Pragma: public");
        while ($buffer = fread($f, 4096)) echo $buffer;
      }
      else // иначе
      {
        // отдадим как текст
        header("Content-type: text/html; charset=".LANG_CHARSET);
        header("Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0");
        header("Expires: 0");
        header("Pragma: public");
        echo "<pre>";
        while ($buffer = fread($f, 4096)) echo htmlspecialchars($buffer);
        echo "</pre>";
      }
      fclose ($f);
      die();
    }
  endif;
endif;
?>


MakeFileArray

Главный модуль>Классы>CFile>MakeFileArray (с версии 3.2.9)

CFile::MakeFileArray

Описание и параметры

array CFile::MakeFileArray(
 mixed path,
 mixed mime_type = false,
 skipInternal = false,
 string external_id = ""
)

Метод формирует массив описывающий файл. Структура массива аналогична структуре массива $_FILES[имя] (или $HTTP_POST_FILES[имя]). Данный массив может быть использован в методах SaveFile, CheckFile, CheckImageFile. Структура возвращаемого массива:

Array(
    "name" => "название файла",
    "size" => "размер",
    "tmp_name" => "временный путь на сервере",
    "type" => "тип загружаемого файла")

Статический метод.

Параметры

Параметр | Описание | С версии
path одно из значений:
  • ID файла
  • абсолютный путь к файлу
  • URL к файлу лежащем на другом сайте.
mime_type MIME тип файла (например, "image/gif").
Необязательный. По умолчанию - "false" - MIME тип файла будет определён автоматически.
skipInternal | Необязательный. По умолчанию - "false". | 12.5.7
external_id | Необязательный. Внешний идентификатор.

Смотрите также

  • CFile::SaveFile
  • CFile::CheckFile
  • CFile::CheckImageFile

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

<?
$arFile = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/screen.gif");
$arFile["MODULE_ID"] = "support";
$arFields = array(
  "CREATED_MODULE_NAME"   => "mail",
  "MODIFIED_MODULE_NAME"  => "mail",
  "OWNER_SID"             => "user@mail.ru",
  "SOURCE_SID"            => "email",
  "MESSAGE_AUTHOR_SID"    => "user@mail.ru",
  "MESSAGE_SOURCE_SID"    => "email",
  "TITLE"                 => "title",
  "MESSAGE"               => "message"
  "FILES"                 => array($arFile)
  );
//$TICKET_ID = 866;
$NEW_TICKET_ID = CTicket::Set($arFields, $MESSAGE_ID, $TICKET_ID, "N");
?>

Как прикреплять к автоматической рассылке файл. С помощью события BeforePostingSendMail и метод CPosting::SaveFile добавить файл к выпуску. В шаблоне news (идет по умолчанию) есть код "return array". В этот массив надо добавить элемент FILES.

        return array(
                "SUBJECT"=>$SUBSCRIBE_TEMPLATE_RUBRIC["NAME"],
                "BODY_TYPE"=>"html",
                "CHARSET"=>"Windows-1251",
                "DIRECT_SEND"=>"Y",
                "FROM_FIELD"=>$SUBSCRIBE_TEMPLATE_RUBRIC["FROM_FIELD"],
                "GROUP_ID" => array(22,30),
                "FILES" => array(
                                CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/upload/our_price.xls")
                ),
        );


ResizeImage

Главный модуль>Классы>CFile>ResizeImage (с версии 7.1.1)

CFile::ResizeImage

Описание и параметры

CFile::ResizeImage(
 array File,
 array Size,
 resizeType = BX_RESIZE_IMAGE_PROPORTIONAL
)

Метод является оберткой ResizeImageFile. Изменяет размеры графического файла. Статический метод.

Параметры

Параметр | Описание
File | массив файла
Size | Массив вида array("width" => $width, "height" => $height)); оба ключа обязательны.
resizeType тип масштабирования:
  • BX_RESIZE_IMAGE_EXACT - масштабирует в прямоугольник $arSize без сохранения пропорций;
  • BX_RESIZE_IMAGE_PROPORTIONAL - масштабирует с сохранением пропорций, размер ограничивается $arSize;
  • BX_RESIZE_IMAGE_PROPORTIONAL_ALT - масштабирует с сохранением пропорций, размер ограничивается $arSize, улучшенная обработка вертикальных картинок.

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

Создание миниатюр "на лету":

 $renderImage = CFile::ResizeImageGet($arResult["DETAIL_PICTURE"], Array("width" => $newWidth, "height" => $newHeight));
 echo CFile::ShowImage($renderImage['src'], $newWidth, $newHeight, "border=0", "", true);

Масштабирование изображения с последующим его сохранением:

     // проверяем тип и размер файла.
     $checkfile = CFile::CheckFile($arFile,400000,'image/','gif,png,jpeg,jpg');
     if(strlen($checkfile) > 0) {
        $strError .= $arFile['name'].': '.$strError.'<br>';
     } else {
       // масштабируем изображение
       CAllFile::ResizeImage(
          &$arFile, // путь к изображению, сюда же будет записан уменьшенный файл
          array(
           "width" => $newWidth,  // новая ширина
           "height" => $newHeight // новая высота
          ),
          BX_RESIZE_IMAGE_EXACT // метод масштабирования. обрезать прямоугольник без учета пропорций
        );
       // сохраняем уменьшенное изображение.
       $fileId = CFile::SaveFile($arFile, $IBlockType);
     }


ResizeImageFile

Главный модуль>Классы>CFile>ResizeImageFile (с версии 7.1.1)

CFile::ResizeImageFile

CFile::ResizeImageFile(
 $sourceFile,
 &$destinationFile,
 $arSize,
 $resizeType = BX_RESIZE_IMAGE_PROPORTIONAL,
 $arWaterMark = array(),
 $jpgQuality=false,
 $arFilters=false
)

Метод производит изменение размера графического файла. Если исходный файл с расширением BMP, то файл-результат будет переконвертирован как JPEG и в destinationFile вернется модифицированное имя. Статический метод.

Параметры

Параметр | Описание | С версии
sourceFile | Путь к исходному файлу
destinationFile | Путь к файлу - результату обработки. Если исходный файл в формате BMP, то файл будет переконвертирован в JPEG и в destinationFile вернется модифицированное имя.
Size | Массив вида array("width" => $width, "height" => $height)); оба ключа обязательны.
resizeType тип масштабирования:
  • BX_RESIZE_IMAGE_EXACT - масштабирует в прямоугольник $arSize без сохранения пропорций;
  • BX_RESIZE_IMAGE_PROPORTIONAL - масштабирует с сохранением пропорций, размер ограничивается $arSize;
  • BX_RESIZE_IMAGE_PROPORTIONAL_ALT - масштабирует с сохранением пропорций, размер ограничивается $arSize, улучшенная обработка вертикальных картинок.
arWaterMark массив с параметрами водяного знака, ключи:
  • text - текст водяного знака
  • font - путь к TTF-шрифту (TTF/UTF-8)
  • type - text или image
  • min_size_picture - минимальная ширина картинки
  • color - цвет "RRGGBB"
  • alpha_level - прозрачность от 0 до 100, где 0 = прозрачно, 100 = непрозрачно. (Применяется только для авторского знака в виде картинки.)
  • size - размер. big; medium; small; real, для произвольного изменения масштаба возможно указание коэффициента через параметр 'coefficient', параметр 'real' применим только для изображений ('type'=>'image')
  • position - указание расположения водяного знака на изображении возможно в двух нотациях:
    • "{m|b}{c|r}", где m - центр по вертикали, b - низ, c - центр по горизонтали, r - правый край.
    • topleft; topcenter; topright; centerleft; center; centerright; bottomleft; bottomcenter; bottomright.
jpgQuality | Величина JPG-сжатия. Необязательный. По умолчанию false, что равно 95% качества изображения. Если необходимо полное качество, передавайте параметр "100". | 9.0.0
Filters | Массив параметров фильтра. Необязательный. По умолчанию false. | 10.0.4

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

© «Битрикс», 2001-2008, «1C-Битрикс», 2008-2022 1С-Битрикс: Управление сайтом


ResizeImageGet

Главный модуль>Классы>CFile>ResizeImageGet (с версии 7.1.1)

CFile::ResizeImageGet

Описание и параметры

array CFile::ResizeImageGet(
    mixed file,
    array arSize,
    const resizeType = BX_RESIZE_IMAGE_PROPORTIONAL,
    bool bInitSizes = false,
    array arFilters = false,
    bool bImmediate = false,
    bool jpgQuality = false
);

Метод уменьшает картинку и размещает уменьшенную копию в папку /upload/resize_cache/путь. Один раз уменьшив изображение получаем физический файл, который позволяет при последующих обращениях не проводить операции по уменьшению изображения. При следующем вызове метод вернет путь к уменьшенному файлу. Статический метод.

Параметры

Параметр | Описание | С версии
file | Идентификатор файла из таблицы b_file или массив описания файла (Array(FILE_NAME, SUBDIR, WIDTH, HEIGHT, CONTENT_TYPE)), полученный методом GetFileArray.
Size | Массив в виде Array("width"=>WIDTH, "height"=>HEIGHT) со значениями ширины и высоты для уменьшаемой картинки. Оба ключа обязательны.
resizeType Тип масштабирования:
  • BX_RESIZE_IMAGE_EXACT - масштабирует в прямоугольник $arSize c сохранением пропорций, обрезая лишнее;
  • BX_RESIZE_IMAGE_PROPORTIONAL - масштабирует с сохранением пропорций, размер ограничивается $arSize;
  • BX_RESIZE_IMAGE_PROPORTIONAL_ALT - масштабирует с сохранением пропорций за ширину при этом принимается максимальное значение из высоты/ширины, размер ограничивается $arSize, улучшенная обработка вертикальных картинок.
InitSizes | Флаг возвращения в результирующем массив размеров измененной картинки. True - возвращает, false - нет
Filters | Массив массивов для постобработки картинки с помощью фильтров: array(array("name" => "sharpen", "precision" => 15)). Фильтров пока один - sharpen. Задавать его не обязательно - будет инициализирован автоматом. Используется для наведения резкости у миниатюр. | 10.0.4
Immediate | Флаг передается в обработчик события OnBeforeResizeImage, по смыслу означает масштабирование непосредственно при вызове метода. Обработчик в принципе может выполнять отложенное масштабирование. | 12.0.10
jpgQuality | Число, устанавливающее в процентах качество JPG при масштабировании. Чем больше значение, тем выше качество и больше размер файла изображения. | 12.5.0

Возвращаемое значение

Метод возвращает массив вида:

array(
    'src',  // путь к уменьшенной картинке относительно корня сайта.
    'width',  // Если bInitSizes = true ширина уменьшенной картинки, иначе 0.
    'height',  // Если bInitSizes = true высота уменьшенной картинки, иначе 0.
)

В случае ошибки возвращает false.

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

//$uID - идентификатор пользователя
$uDBInfo = CUser::GetByID($uID);
if ($uInfo = $uDBInfo->GetNext())
{
            if ($uInfo['PERSONAL_PHOTO'])
            {
                $file = CFile::ResizeImageGet($uInfo['PERSONAL_PHOTO'], array('width'=>150, 'height'=>150), BX_RESIZE_IMAGE_PROPORTIONAL, true);
                $img = '<img src="'.$file['src'].'" width="'.$file['width'].'" height="'.$file['height'].'" />';
                $uInfo['PERSONAL_PHOTO'] = $img;
            }
            $arResult['ITEMS'][$k]['USER_INFO'] = $uInfo;
}

Наложить водяной знак можно таким образом:

$arWaterMark = Array(
            array(
                "name" => "watermark",
                "position" => "bottomright", // Положение
                "type" => "image",
                "size" => "real",
                "file" => $_SERVER["DOCUMENT_ROOT"].'/upload/copy.png', // Путь к картинке
                "fill" => "exact",
            )
        );
        $arFileTmp = CFile::ResizeImageGet(
            $arElement["DETAIL_PICTURE"],
            array("width" => 250, "height" => 127),
            BX_RESIZE_IMAGE_EXACT,
            true,
            $arWaterMark
        );


SaveFile

Главный модуль>Классы>CFile>SaveFile (с версии 3.0.3)

CFile::SaveFile

Описание и параметры

mixed
CFile::SaveFile(
 array file,
 string save_path,
 bool ForceMD5=false,
 bool SkipExt=false),
 $dirAdd='',
 bool  checkDuplicates = true
)

Метод сохраняет файл и регистрирует его в таблице файлов (b_file). Статический метод.

Параметры

Параметр | Описание | С версии
file Массив с данными файла формата:

Array(
    "name" => "название файла",
    "size" => "размер",
    "tmp_name" => "временный путь на сервере",
    "type" => "тип загружаемого файла",
    "old_file" => "ID старого файла",
    "del" => "флажок - удалить ли существующий файл - любое непустое значение",
    "MODULE_ID" => "название модуля",
    "description" => "описание файла",
    "content" => "содержимое файла. Можно сохранять файл, указывая его содержимое, а не только массив, полученный при загрузке браузером."
Массив такого вида может быть получен, например, объединением массивов $_FILES[имя поля] и Array("del" => ${"имя поля"."_del"}, "MODULE_ID" = "название модуля");
save_path | Путь к папке в которой хранятся файлы (относительно папки /upload).
ForceMD5 | Необязательный. По умолчанию false. | 7.0.0
SkipExt | Необязательный. По умолчанию false. | 7.0.0
dirAdd | 7.0.0
checkDuplicates | Проверка на дубли. Необязательный. По умолчанию true. | 7.0.0

Возвращаемое значение

Метод возвращает числовой идентификатор сохранённого и зарегистрированного в системе файла.

Смотрите также

  • RewriteFile
  • CFile::InputFile

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

<?
if (strlen($save)>0 && $REQUEST_METHOD=="POST")
{
    $arIMAGE = $_FILES["IMAGE_ID"];
    $z = $DB->Query("SELECT IMAGE_ID FROM b_vote WHERE ID='$ID'", false, $err_mess.__LINE__);
    $zr = $z->Fetch();
    $arIMAGE["old_file"] = $zr["IMAGE_ID"];
    $arIMAGE["del"] = ${"IMAGE_ID_del"};
    $arIMAGE["MODULE_ID"] = "vote";
    if (strlen($arIMAGE["name"])>0 || strlen($arIMAGE["del"])>0)
    {
        $fid = CFile::SaveFile($arIMAGE, "vote");
        if (intval($fid)>0) $arFields["IMAGE_ID"] = intval($fid);
        else $arFields["IMAGE_ID"] = "null";
        $DB->Update("b_vote",$arFields,"WHERE ID='".$ID."'",$err_mess.__LINE__);
    }
}
?>


SaveForDB

Главный модуль>Классы>CFile>SaveForDB (с версии 7.1.0)

CFile::SaveForDB

Описание и параметры

bool
CFile::SaveForDB(
 array &Fields,
 string field,
 string SavePath
);

Метод предназначен для подготовки данных перед вставкой/обновлением записи в БД, содержащей ссылку на файл. Метод сохраняет файл на диск и возвращает во входном массиве ID сохраненного файла для последующей вставки/обновления записи в БД. Статический метод.

Примечание: до версии 7.1.0 аналогичные действия выполняли методы CDatabase::PrepareInsert и CDatabse::PrepareUpdate. Начиная с версии 7.1.0 действия по сохранению файлов и вставки записи в БД разнесены по разным методам.

Параметры

Параметр | Описание
arFields

Массив значений полей в формате "имя поля1"=>"значение1", "имя поля2"=>"значение2" [, ...].
При вставке файла, привязанного к записи, "значение" должно быть представлено в виде массива
Array(
"name" => "название файла",
"size" => "размер",
"tmp_name" => "временный путь на сервере",
"type" => "тип загружаемого файла",
"del" => "флажок, удалить ли существующий файл (непустая строка)",
"MODULE_ID" => "название модуля");

Массив такого вида может быть получен, например, объединением массивов $HTTP_POST_FILES[имя поля] и Array("del" => ${"имя поля"."_del"}, "MODULE_ID" = "название модуля");

Значение передается по ссылке.

field | Название поля в массиве arFields, где содержится файл.
SavePath Имя папки (будет находится внутри папки upload) для хранения файлов.
До версии 12.0.8 параметр назывался dir.

Возвращаемое значение

True в случае удачи, false при неудаче. В значении элемента массива $arFields[$field] будет возвращен ID сохраненного файла из таблицы b_file. Если файл был удален, в этом поле будет возвращено false. При неудаче элемент массива $arFields[$field] будет удален (unset).

Смотрите также

  • Почтовая система

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

<?
$arFields["ATTACH_IMG"] = $_FILE["ATTACH_IMG"];
$arFields["ATTACH_IMG"]["MODULE_ID"] = "blog";

CFile::SaveForDB($arFields, "ATTACH_IMG", "blog");
$arInsert = $DB->PrepareInsert("b_blog_post", $arFields);

?>


Show2Images

Главный модуль>Классы>CFile>Show2Images (с версии 3.2.1)

CFile::Show2Images

Описание и параметры

string
CFile::Show2Images(
 mixed image1,
 mixed image2,
 int max_width = 0,
 int max_height = 0,
 string image_params = "false",
 string popup_alt = false,
 int image_width = 0,
 int image_height = 0
)

Метод возвращает HTML для показа изображения при клике на которое в отдельном popup-окне отображается другое изображение. Статический метод.

Параметры

Параметр | Описание
image1 | ID файла или путь к файлу на текущем сайте либо URL к файлу лежащем на другом сайте. Если задается путь к файлу на текущем сайте, то его необходимо задавать относительно корня. В данном параметре задается изображение для первоначального показа.
image2 | ID файла или путь к файлу на текущем сайте либо URL к файлу лежащем на другом сайте. Если задается путь к файлу на текущем сайте, то его необходимо задавать относительно корня. В данном параметре задается изображение для показа в popup-окне.
max_width | Максимальная ширина первоначального изображения. Если ширина картинки больше max_width, то она будет пропорционально смаштабирована. Необязательный. По умолчанию - "0" - без ограничений.
max_height | Максимальная высота первоначального изображения. Если высота картинки больше max_height, то она будет пропорционально смаштабирована. Необязательный. По умолчанию - "0" - без ограничений.
image_params | Произвольный HTML добавляемый в тэг IMG первоначального изображения: <img image_params ...> Необязательный. По умолчанию "false".
popup_alt | Текст всплывающей подсказки на изображении. Необязательный. По умолчанию выводится фраза "Нажмите чтобы увеличить" на языке страницы.
image_width | Ширина изображения (в пикселах) (только если в параметре image задан URL начинающийся с "http://") Необязательный. По умолчанию "0".
image_height | Высота изображения (в пикселах) (только если в параметре image задан URL начинающийся с "http://") Необязательный. По умолчанию "0".

Смотрите также

  • CFile::ShowImage

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

<?
if ($rsElements = GetIBlockElementListEx($IBLOCK_TYPE, $IBLOCK_ID, false, array($ELEMENT_SORT_FIELD => $ELEMENT_SORT_ORDER, "ID" => "ASC"), false, $arrFilter)):
    $rsElements->NavStart($PAGE_ELEMENT_COUNT);
    while ($obElement = $rsElements->GetNextElement()):
        $arElement = $obElement->GetFields();
        $image1 = intval($arElement["PREVIEW_PICTURE"])<=0 ? $arElement["DETAIL_PICTURE"] : $arElement["PREVIEW_PICTURE"];
        $image2 = intval($arElement["DETAIL_PICTURE"])<=0 ? $arElement["PREVIEW_PICTURE"] : $arElement["DETAIL_PICTURE"];
        echo CFile::Show2Images($image1, $image2, 150, 150, "hspace='0' vspace='0' border='0' title='".$arElement["NAME"]."'", true);
    endwhile;
endif;
?>


ShowImage

Главный модуль>Классы>CFile>ShowImage (с версии 3.0.3)

CFile::ShowImage

Описание и параметры

string
 CFile::ShowImage(
 mixed image,
 int MaxW = 0,
 int MaxH = 0,
 string Params = "border=0",
 string ImageUrl = "",
 bool popup = false,
 string PopupTitle = false,
 int SizeWHTTP = 0,
 int iSizeHHTTP = 0,
 string ImageUrlTemplate=""
)

Метод возвращает HTML для показа изображения. Статический метод.

Параметры

Параметр | Описание | С версии
image | ID файла или путь к файлу на текущем сайте либо URL к файлу лежащем на другом сайте. Если задается путь к файлу на текущем сайте, то его необходимо задавать относительно корня. |
MaxW | Максимальная ширина изображения. Если ширина картинки больше max_width, то она будет пропорционально смаштабирована. Необязательный. По умолчанию - "0" - без ограничений. |
MaxH | Максимальная высота изображения. Если высота картинки больше max_height, то она будет пропорционально смаштабирована. Необязательный. По умолчанию - "0" - без ограничений. Если MaxW установлен в 0, то MaxH учитываться не будет. Чтобы ограничить высоту можно установить максимальную ширину в некое бо́льшее значение (например, 9999) вместо 0. |
Params | Произвольный HTML добавляемый в тэг IMG: <img image_params ...> Необязательный. По умолчанию "null". Если в этом параметре передать атрибут alt="текст", то в теге <img> будет использовано это значение (с версии 8.5.1). Иначе, если картинка имеет описание в таблице b_file, для атрибута alt будет использовано это описание. |
ImageUrl | Ссылка для перехода при нажатии на картинку. Необязательный. По умолчанию "" - не выводить ссылку. |
popup | Открывать ли при клике на изображении дополнительное popup окно с увеличенным изображением. Необязательный. По умолчанию - "false". |
PopupTitle | Текст всплывающей подсказки на изображении (только если popup = true) Необязательный. По умолчанию выводится фраза "Увеличить" на языке страницы. |
SizeWHTTP | Ширина изображения (в пикселах) (только если в параметре image задан URL начинающийся с "http://") Необязательный. По умолчанию "0". | 3.0.21
SizeHHTTP | Высота изображения (в пикселах) (только если в параметре image задан URL начинающийся с "http://") Необязательный. По умолчанию "0". | 3.0.21
ImageUrlTemplate |  | 12.0.8

Смотрите также

  • CFile::Show2Images

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

<tr valign="top">
    <td align="right"><font class="tablefieldtext"><?echo
    GetMessage("VOTE_IMAGE")?></font></td>
    <td><font class="tablebodytext"><?
    echo CFile::InputFile("IMAGE_ID", 20, $str_IMAGE_ID);
    if (strlen($str_IMAGE_ID)>0):
        ?><br><?
        echo CFile::ShowImage($str_IMAGE_ID, 200, 200, "border=0", "", true);
    endif;
    ?></font>
    </td>
</tr>


UpdateDesc

Главный модуль>Классы>CFile>UpdateDesc (с версии 3.3.21)

CFile::UpdateDesc

CDBResult
CFile::UpdateDesc(
 int file_id,
 string description
)

Метод обновляет описание к зарегистрированному файлу. Возвращает объект класса CDBResult. Статический метод.

Параметры

Параметр | Описание
file_id | Цифровой идентификатор файла.
description | Новое описание к файлу.

Смотрите также

  • RewriteFile
  • CMain::SaveFileContent
  • CFile::GetByID

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

<?
if ($rsElements = GetIBlockElementListEx($IBLOCK_TYPE, $IBLOCK_ID, false, array($ELEMENT_SORT_FIELD => $ELEMENT_SORT_ORDER, "ID" => "ASC"), false, $arrFilter)):
    $rsElements->NavStart($PAGE_ELEMENT_COUNT);
    while ($obElement = $rsElements->GetNextElement()):
        $arElement = $obElement->GetFields();
        CFile::UpdateDesc($arElement["PREVIEW_PICTURE"], "Element # ".$arElement["ID"]);
    endwhile;
endif;
?>


Класс CGroup

CGroup - класс для работы с группами пользователей.

Аналог класса в новом ядре D7 - Bitrix\Main\GroupTable .

Поля

Поле | Тип | Описание
ID | int | ID группы.
TIMESTAMP_X | datetime | Последнее изменение.
ACTIVE | char | Активна (Y|N).
NAME | varchar (50) | Наименование группы.
DESCRIPTION | varchar (255) | Описание.
C_SORT | int | Индекс сортировки
STRING_ID | varchar(255) | Символьный код

Методы класса

Метод | Описание | С версии
GetList | Получает список групп по фильтру. |
GetByID | Получает данные о группе по ее ID. |
GetGroupUser | Список всех пользователей группы. |
Add | Добавляет новую группу пользователей. |
Update | Изменяет существующую группу. |
Delete | Удаляет группу. |


Add

Главный модуль>Классы>CGroup>Add (с версии 3.0.6)

CGroup::Add

mixed
CGroup::Add(
 array fields
)

Метод добавляет новую группу пользователей. Возвращает ID вставленной группы. При возникновении ошибки метод вернет "false", а в свойстве LAST_ERROR объекта будет содержаться текст ошибки. Нестатический метод.

Параметры

Параметр | Описание
fields | Массив значений полей вида array("поле"=>"значение" [, ...]).

Смотрите также

  • Поля CGroup
  • CGroup::Delete
  • CGroup::Update

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

<?
$group = new CGroup;
$arFields = Array(
  "ACTIVE"       => "Y",
  "C_SORT"       => 100,
  "NAME"         => "Имя группы",
  "DESCRIPTION"  => "Описание группы",
  "USER_ID"      => array(128, 134),
  "STRING_ID"      => "GROUP_1"
  );
$NEW_GROUP_ID = $group->Add($arFields);
if (strlen($group->LAST_ERROR)>0) ShowError($group->LAST_ERROR);
?>


Delete

Главный модуль>Классы>CGroup>Delete (с версии 3.0.6)

CGroup::Delete

mixed
CGroup::Delete(
 int id
)

Метод удаляет группу. При успешном удалении возвращается объект класса CDBResult, в противном случае - "false". Статический метод.

Параметры

Параметр | Описание
id | ID группы.

Смотрите также

  • CGroup::Add
  • CGroup::Update
  • Событие "OnBeforeGroupDelete"
  • Событие "OnGroupDelete"

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

<?
if(IntVal($del_id)>2)
{
  $del_id = IntVal($del_id);
  $group = new CGroup;
  $DB->StartTransaction();
  if(!$group->Delete($del_id))
  {
    $DB->Rollback();
    $strError.=GetMessage("DELETE_ERROR");
  }
  $DB->Commit();
}
?>


GetByID

Главный модуль>Классы>CGroup>GetByID (с версии 3.0.6)

CGroup::GetByID

CDBResult
CGroup::GetByID(
 int id,
 string SHOW_USERS_AMOUNT = "N"
)

Возвращает группу пользователей по ее коду ID в виде объекта класса CDBResult. Статический метод.

Параметры

Параметр | Описание | С версии
id | ID группы. |
SHOW_USERS_AMOUNT | "Y" - в выборке будет присутствовать поле ("USERS") с количеством пользователей в группе; "N" - в выборке не будет поля с количеством пользователей в группе (по умолчанию); | 3.3.12

Смотрите также

  • Поля CGroup
  • CGroup::GetList

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

<?
$rsGroup = CGroup::GetByID(2, "Y");
$arGroup = $rsGroup->Fetch();
echo "<pre>"; print_r($arGroup); echo "</pre>";
?>


GetGroupUser

Главный модуль>Классы>CGroup>GetGroupUser (с версии 3.0.6)

CGroup::GetGroupUser

array
CGroup::GetGroupUser(
 int id
)

Возвращает массив ID всех пользователей группы по ее коду group_id. Проводится проверка на DATE_ACTIVE_FROM и DATE_ACTIVE_TO. Статический метод.

Параметры

Параметр | Описание
id | ID группы.

Смотрите также

  • Поля CGroup
  • Поля CUser

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

<?
$arUsers = CGroup::GetGroupUser(1);
echo "<pre>"; print_r($arUsers); echo "</pre>";
?>


GetList

Главный модуль>Классы>CGroup>GetList (с версии 3.0.6)

CGroup::GetList

Описание и параметры

CDBResult
CGroup::GetList(
 string &by = "c_sort",
 string &order = "asc",
 array filter,
 string SHOW_USERS_AMOUNT = "N"
)

Возвращает список групп в виде объекта класса CDBResult. Статический метод.

Параметры

Параметр | Описание | С версии
by Ссылка на переменную с полем для сортировки, может принимать следующие значения:
  • id - ID группы
  • timestamp_x - дата изменения
  • name - название
  • active - активность
  • c_sort - порядок сортировки
  • description - описание
  • users - кол-во пользователей входящих в группу

Значения по умолчанию не имеет
оrder Ссылка на переменную с порядком сортировки, может принимать следующие значения:
  • asc - по возрастанию
  • desc - по убыванию

Значения по умолчанию не имеет
filter Массив для фильтрации пользователей. В массиве допустимы следующие индексы:
  • ID - ID группы (допускается сложная логика [image] [image] [image])
  • TIMESTAMP_1 - дата изменения настроек группы "с"
  • TIMESTAMP_2 - дата изменения настроек группы "по"
  • ACTIVE - фильтр по активности (Y|N)
  • ADMIN - фильтр по типу группы ("Y" - администраторы | "N" - не администраторы)
  • NAME - по названию (допускается сложная логика [image] [image] [image])
  • DESCRIPTION - по описанию (допускается сложная логика [image] [image] [image])
  • USERS_1 - кол-во пользователей "с"
  • USERS_2 - кол-во пользователей "по"
  • STRING_ID - символьный код
SHOW_USERS_AMOUNT | "Y" - в выборке будет присутствовать поле ("USERS") с количеством пользователей в каждой группе; "N" - в выборке не будет поля с количеством пользователей в каждой группе (по умолчанию); | 3.3.12

Смотрите также

  • Поля CGroup
  • CGroup::GetByID

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

<?
$filter = Array
(
    "ID"             => "1 | 2",
    "TIMESTAMP_1"    => "04.02.2004", // в формате текущего сайта
    "TIMESTAMP_2"    => "04.02.2005",
    "ACTIVE"         => "Y",
    "NAME"           => "Техподдержка",
    "DESCRITION"     => "специальная | поддержка",
    "USERS_1"        => "2", // от 2 пользователей
    "USERS_2"        => "10" // до 10 пользователей
);
$rsGroups = CGroup::GetList(($by="c_sort"), ($order="desc"), $filter); // выбираем группы
$is_filtered = $rsGroups->is_filtered; // отфильтрована ли выборка ?
$rsGroups->NavStart(50); // разбиваем постранично по 50 записей
echo $rsGroups->NavPrint(GetMessage("PAGES")); // печатаем постраничную навигацию
while($rsGroups->NavNext(true, "f_")) :
    echo "[".$f_ID."] ".$f_NAME." ".$f_DESCRIPTION."<br>";
endwhile;
?>

Фильтровать можно по полю "STRING_ID" - символьному идентификатору группы. Например:

// Возвращает группу по символьному идентификатору
function GetGroupByCode ($code)
{
   $rsGroups = CGroup::GetList ($by = "c_sort", $order = "asc", Array ("STRING_ID" => $code));
   return $rsGroups->Fetch();
}

Пример фильтрации по полю "STRING_ID" по нескольким группам:

$rsGroups = CGroup::GetList($by = "c_sort", $order = "asc", array("STRING_ID"=>'groupe code|groupe code|groupe code'));
if(intval($rsGroups->SelectedRowsCount()) > 0)
{
   while($arGroups = $rsGroups->Fetch())
   {
      $arUsersGroups[] = $arGroups;
   }
}


Update

Главный модуль>Классы>CGroup>Update (с версии 3.0.6)

CGroup::Update

bool
CGroup::Update(
 int id,
 array fields
)

Метод изменяет группу с кодом id. Возвращает "true" если изменение прошло успешно, при возникновении ошибки метод вернет "false", а в свойстве LAST_ERROR объекта будет содержаться текст ошибки. Нестатический метод.

Параметры

Параметр | Описание
id | ID изменяемой записи.
fields | Массив значений полей вида array("поле"=>"значение" [, ...]).

Смотрите также

  • Поля CGroup
  • CGroup::Add
  • CGroup::Delete

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

<?
$group = new CGroup;
$arFields = Array(
  "ACTIVE"       => "Y",
  "C_SORT"       => 100,
  "NAME"         => "Имя группы",
  "DESCRIPTION"  => "Описание группы",
  "USER_ID"      => array(128, 134)
  );
$group->Update($GROUP_ID, $arFields);
if (strlen($group->LAST_ERROR)>0) ShowError($group->LAST_ERROR);
?>


Класс CLanguage

CLanguage - класс для работы с языками системы.

Поля

Поле | Тип | Описание
LID | char(2) | Двухсимвольный ID языка.
SORT | int | Порядок сортировки.
DEF | char | Язык по умолчанию (Y|N).
ACTIVE | char | Активность (Y|N).
NAME | varchar (50) | Название.
FORMAT_DATE | varchar (50) | Формат даты для административной части.
FORMAT_DATETIME | varchar (50) | Формат даты-время для административной части.
CHARSET | varchar (255) | Кодировка для показа страниц данного языка в административной части.

Методы класса

Метод | Описание | С версии
GetList | Получает список языков. |
GetByID | Получает данные об одном языке. |
SelectBox | Создает выпадающий список с языками. |
Add | Добавляет новый язык. |
Update | Изменяет существующий язык. |
Delete | Удаляет язык. |

Смотрите также

  • Языки


Add

Главный модуль>Классы>CLanguage>Add (с версии 3.3.21)

CLanguage::Add

mixed
CLanguage::Add(
 array fields
)

Метод добавляет новый язык. Возвращает ID вставленного языка. При возникновении ошибки метод вернет false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки. Нестатический метод.

Параметры

Параметр | Описание
fields | Массив значений полей вида array("поле"=>"значение" [, ...]).

Смотрите также

  • Поля CLanguage
  • CLanguage::Update
  • CLanguage::Delete

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

<?
$arFields = Array(
  "LID"              => "en",
  "ACTIVE"           => "Y",
  "SORT"             => 100,
  "DEF"              => "N",
  "NAME"             => "English",
  "FORMAT_DATE"      => "MM/DD/YYYY",
  "FORMAT_DATETIME"  => "MM/DD/YYYY HH:MI:SS",
  "CHARSET"          => "iso-8859-1"
  );
$obLang = new CLanguage;
$obLang->Add($arFields);
if (strlen($obLang->LAST_ERROR)>0) $strError .= $obLang->LAST_ERROR;
?>


Delete

Главный модуль>Классы>CLanguage>Delete (с версии 3.3.21)

CLanguage::Delete

CDBResult
CLanguage::Delete(
 string id
)

Метод удаляет язык. Возвращается объект CDBResult. Нестатический метод.

Параметры

Параметр | Описание
id | Двухсимвольный ID языка.

Смотрите также

  • CLanguage::Add
  • CLanguage::Update
  • Событие "OnBeforeLanguageDelete"
  • Событие "OnLanguageDelete"

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

<?
if (CLanguage::Delete("en"))
  echo "Язык успешно удален.";
?>


GetByID

Главный модуль>Классы>CLanguage>GetByID (с версии 3.3.21)

CLanguage::GetByID

CDBResult
CLanguage::GetByID(
 string id
)

Возвращает язык по его коду id в виде объекта класса CDBResult. Нестатический метод.

Параметры

Параметр | Описание
id | Двухсимвольный ID языка.

Смотрите также

  • Поля CLanguage
  • CLanguage::GetList
  • CLanguage::SelectBox

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

<?
$rsLang = CLanguage::GetByID("en");
$arLang = $rsLang->Fetch();
echo "<pre>"; print_r($arLang); echo "</pre>";
?>


GetList

Главный модуль>Классы>CLanguage>GetList (с версии 3.3.21)

CLanguage::GetList

Описание и параметры

CDBResult
CLanguage::GetList(
 string &by = "lid",
 string &order = "asc",
 array filter = array()
)

Возвращает список языков в виде объекта класса CDBResult. Нестатический метод.

Параметры

Параметр Описание
by По какому полю сортируем. Допустимы следующие значения:
  • lid - по ID языка
  • active - по флагу активности
  • name - по названию
  • def - по флагу "Язык по умолчанию"
оrder Порядок сортировки. Допустимы следующие значения:
  • asc - по возрастанию
  • desc - по убыванию
filter Массив вида array("фильтруемое поле"=>"значение" [, ...]). "Фильтруемое поле" может принимать следующие значения:
  • LID - двухсимвольный ID языка
  • NAME - название языка
  • ACTIVE - флаг активности (Y|N)

Смотрите также

  • Поля CLanguage
  • CLanguage::GetByID

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

<?
$rsLang = CLanguage::GetList($by="lid", $order="desc", Array("NAME" => "russian"));
while ($arLang = $rsLang->Fetch())
{
  echo "<pre>"; print_r($arLang); echo "</pre>";
}
?>


SelectBox

Главный модуль>Классы>CLanguage>SelectBox (с версии 3.3.21)

CLanguage::SelectBox

Описание и параметры

string
CLanguage::SelectBox(
 string name,
 string value,
 string default_value = "",
 string js_function = "",
 string add_to_select = "class=typeselect"
)

Возвращает HTML, представляющий из себя выпадающий список языков (тэг "select"). Нестатический метод.

Параметры

Параметр | Описание
name | Имя выпадающего списка: <select name="name" ...>
value | Текущее значение (для инициализации выбранного значения).
default_value | Если задан, то будет выводиться первым пунктом списка (например, фраза "выберите язык"). Не обязательный. По умолчанию "".
js_function | Имя JS функции которая будет вызываться при выборе в выпадающем списке какого либо значения: <select OnChange="js_function" ...> Не обязательный. По умолчанию "".
add_to_select | Произвольный HTML который будет добавлен в тэг "select": <select add_to_select ...> Не обязательный. По умолчанию задан стандартный CSS класс для выпадающих списков административной части.

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

<table>
  <tr>
    <td>Язык:</td>
    <td><?=CLanguage::SelectBox("LANGUAGE", LANGUAGE_ID)?></td>
  </tr>
</table>


Update

Главный модуль>Классы>CLanguage>Update (с версии 3.3.21)

CLanguage::Update

Описание и параметры

bool
CLanguage::Update(
 int id,
 array fields
)

Метод изменяет настройки языка. Возвращает "true" если изменение прошло успешно, при возникновении ошибки метод вернет "false", а в свойстве LAST_ERROR объекта будет содержаться текст ошибки. Нестатический метод.

Параметры

Параметр | Описание
id | Двухсимвольный ID языка.
fields | Массив значений полей вида array("поле"=>"значение" [, ...]).

Смотрите также

  • Поля CLanguage
  • CLanguage::Add
  • CLanguage::Delete

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

<?
$arFields = Array(
  "ACTIVE"           => "Y",
  "SORT"             => 100,
  "DEF"              => "N",
  "NAME"             => "English",
  "FORMAT_DATE"      => "MM/DD/YYYY",
  "FORMAT_DATETIME"  => "MM/DD/YYYY HH:MI:SS",
  "CHARSET"          => "iso-8859-1"
  );
$obLang = new CLanguage;
$obLang->Update("en", $arFields);
if (strlen($obLang->LAST_ERROR)>0) $strError .= $obLang->LAST_ERROR;
?>


Класс CMain

CMain - главный класс страницы.

При создании каждой страницы создаётся глобальный объект этого класса с именем $APPLICATION.

Методы класса:

Заголовок страницы

Метод | Описание | С версии
ShowTitle | Отображает заголовок страницы. | 3.3.21
GetTitle | Возвращает заголовок страницы. |
SetTitle | Устанавливает заголовок страницы. |

CSS стили

Метод | Описание | С версии
ShowCSS | Отображает HTML для подключения CSS на странице. | 3.3.22
GetCSS | Возвращает HTML для подключения CSS на странице. | 3.3.22
SetTemplateCSS | Устанавливает путь к файлу с CSS стилями компонента. | 3.3.22
SetAdditionalCSS | Устанавливает путь к файлу с CSS стилями. |

Навигационная цепочка

Метод | Описание | С версии
ShowNavChain | Отображает HTML с навигационной цепочкой. | 3.3.21
GetNavChain | Возвращает HTML с навигационной цепочкой. |
AddChainItem | Добавляет пункт в конец навигационной цепочки. |

Меню

Метод | Описание | С версии
GetMenu | Возвращает объект CMenu для текущей папки. |
GetMenuHtml | Возвращает строку с меню типа type для текущей папки в виде HTML. |
GetMenuHtmlEx | Аналог GetMenuHtml с применением другого типа шаблона меню. | 3.3.7

Свойства страниц и разделов

Метод | Описание | С версии
ShowProperty | Отображает свойство страницы [image] [image] [image] [image] , учитывая свойства раздела. | 4.0.6
GetProperty | Возвращает свойство страницы [image] [image] [image] [image] , учитывая свойства раздела. | 3.3.12
GetPageProperty | Возвращает свойство страницы [image] [image] [image] [image] . | 3.3.12
GetDirProperty | Возвращает свойство раздела [image] [image] . | 3.3.12
GetPagePropertyList | Возвращает массив всех свойств страницы [image] . | 3.3.12
GetDirPropertyList | Возвращает массив всех свойств раздела [image] . | 3.3.12
SetPageProperty | Устанавливает свойство страницы [image] [image] [image] [image] . | 3.3.12
SetDirProperty | Устанавливает свойство раздела [image] [image] . | 3.3.12
ShowMeta | Отображает свойство раздела/страницы [image] [image] обрамленное тегом <meta>. | 3.3.21
GetMeta | Возвращает свойство раздела/страницы [image] [image] обрамленное тегом <meta>. | 3.3.12

Файлы

Метод | Описание | С версии
SaveFileContent | Сохраняет страницу на диске. |
GetFileContent | Возвращает содержимое файла. |
GetFileRecursive | Ищет файл с заданным именем последовательно вверх по иерархии каталогов. |
GetFileAccessPermission | Определяет права доступа к файлу или каталогу. |
SetFileAccessPermission | Устанавливает права доступа к файлу или каталогу. |
CopyFileAccessPermission | Копирует права доступа одного файла (каталога) другому файлу (каталогу). |
RemoveFileAccessPermission | Удаляет права доступа для файла или каталогу. |

Права доступа и роли

Метод | Описание | С версии
GetUserRight | Возвращает максимальное право пользователя на тот или иной модуль. | 3.3.18
GetUserRoles | Возвращает массив ролей пользователя в том или ином модуле. | 3.3.18

Текущий адрес страницы

Метод | Описание | С версии
GetCurUri | Возвращает адрес текущей страницы с параметрами. | 3.3.4
GetCurPage | Возвращает адрес текущей страницы без параметров. |
GetCurPageParam | Возвращает URL текущей страницы c добавленными новыми и(или) удаленными параметрами. |
GetCurDir | Возвращает раздел текущей страницы. |
SetCurPage | Устанавливает адрес текущей страницы. | 3.3.0

Панель управления

Метод | Описание | С версии
ShowPanel | Отображает HTML представляющий из себя панель управления публичной частью. | 3.3.21
GetPanel | Возвращает HTML представляющий из себя панель управления публичной частью. | 3.0.14
AddPanelButton | Добавляет кнопку в панель управления публичной частью. | 3.0.14
GetPublicShowMode | Метод возвращает текущий режим отображения административной панели. | 6.5.5

JS и тег head

Метод | Описание | С версии
AddHeadScript | Подключает java скрипты в шаблоне сайта и в шаблоне компонентов. | 6.5.0
AddHeadString | Метод добавляет строку в секцию <head>…</head> сайта.. | 5.9.0
ShowHead | Метод предназначена для вывода в шаблоне сайта основных полей тега <head>. | 7.0.0
ShowHeadStrings | Отображает специальные стили, JavaScript либо произвольный html-код. | 5.9.0

Куки (cookie)

Метод | Описание | С версии
set_cookie | Устанавливает значение cookie. | 3.3.21
get_cookie | Возвращает значение cookie. | 3.3.21
ShowSpreadCookieHTML | Отображает HTML позволяющий установить cookie пользователю. | 3.3.21

Компоненты
Метод | Описание | С версии
IncludeFile | Подключает произвольные файлы и компоненты. | 3.3.21
GetTemplatePath | Возвращает полный путь к файлу следуя алгоритму подключения компонент. | 3.3.23
IncludeComponent | Метод подключает компонент 2.0. | 5.1.7

Исключения

Метод | Описание | С версии
GetException | Метод возвращает объект класса CApplicationException, содержащий последнее исключение. | 4.0.6
ThrowException | Метод фиксирует исключение msg c кодом id. | 4.0.6
ResetException | Метод очищает последнее исключение. | 4.0.6

Прочие методы

Метод | Описание | С версии
IncludeAdminFile | Подключает скрипт с административным прологом и эпилогом. |
IncludeString | Выводит произвольную строку (HTML код) обрамленную рамкой, в правом верхнем углу которой выводятся заданные иконки. | 3.3.21
GetShowIncludeAreas | Возвращает состояние кнопки "Показать включаемые области" на панели управления. | 3.3.21
AddBufferContent | Позволяет создавать Отложенные функции [image] . | 3.3.21
ShowBanner | Подключает модуль "Реклама, баннеры" и если подключение успешно, выводит баннер. | 3.3.22
GetSiteByDir | Определяет сайт по заданному каталогу и хосту. | 3.3.21
AuthForm | Выводит форму авторизации. |
IsHTTPS | Возвращает "true" если используемый текущий протокол - HTTPS. | 3.3.21
AddViewContent | Указывает место вывода контента, который будет сформирован ниже. | 9.5.2
ShowViewContent | Указывает контент, который выводится методом AddViewContent. Использование двух последних методов прежде всего позволяет избежать дублирование компонентов и лишних циклов. | 9.5.2
ConvertCharset | Метод используется для конвертирования строк из разных кодировок | 4.1.0
ConvertCharsetArray | Метод используется для конвертирования данных из разных кодировок | 8.6.0
RestartWorkarea | Метод позволяет сбросить контент рабочей области публичной страницы сайта. | 15.5.0


AddBufferContent

Главный модуль>Классы>CMain>AddBufferContent

CMain::AddBufferContent

Описание и параметры

CMain::AddBufferContent(
 callback function,
 mixed parameter_1,
 mixed parameter_2,
 ...
 mixed parameter_N
)

Позволяет создавать Отложенные функции [image] [image]. Нестатический метод.

Параметры

Параметр | Описание
function | Имя функции выполнение которой необходимо отложить. Если это обычная функция то в данном параметре просто указывается ее имя, если это метод класса, то указывается массив, первым элементом которого будет имя класса (либо объект класса), а вторым - имя метода.
parameter_1 ... parameter_N | Неограниченное количество параметров которые будут впоследствии переданы функции function.

Смотрите также

  • Отложенные функции
  • CMain::ShowTitle
  • CMain::ShowCSS
  • CMain::ShowNavChain
  • CMain::ShowProperty
  • CMain::ShowMeta
  • CMain::ShowPanel

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

<?
function myShowProperty($property_id, $default_value=false)
{
    global $APPLICATION;
    $APPLICATION->AddBufferContent(Array(&$APPLICATION, "GetProperty"), $property_id, $default_value);
}
?>
<?
function myShowTitle($property_name="title", $strip_tags = true)
{
    global $APPLICATION;
    $APPLICATION->AddBufferContent(Array(&$APPLICATION, "GetTitle"), $property_name, $strip_tags);
}
?>
<?
function myShowPanel()
{
    global $APPLICATION;
    $APPLICATION->AddBufferContent(Array(&$APPLICATION, "GetPanel"));
}
?>
<?
$my_title = "";

function myShowTitle($t="title"){
   global $APPLICATION;
   echo $APPLICATION->AddBufferContent("myGetTitle");
}

function mySetTitle($t){
   global $my_title;
   $my_title = $t;
}

function myGetTitle(){
   global $my_title;
   return $my_title;
}
?>


AddChainItem

Главный модуль>Классы>CMain>AddChainItem (с версии 3.0.3)

CMain::AddChainItem

Описание и параметры

CMain::AddChainItem(
 string title,
 string link = "",
 bool convert_html_entity = true
)

Добавляет пункт в конец навигационной цепочки [image]. Нестатический метод.

Параметры

Параметр | Описание
title | Заголовок добавляемого пункта навигационной цепочки.
link | URL на который будет указывать добавляемый пункт навигационной цепочки.
convert_html_entity Если значение - "true", то в title будут произведены следующие замены:
  • &amp; заменяется на &
  • &quot; заменяется на "
  • &#039; заменяется на '
  • &lt; заменяется на <
  • &gt; заменяется на >
В противном случае замены не будут производиться.
Необязательный. По умолчанию - "true".

Смотрите также

  • Навигационная цепочка
  • CMain::ShowNavChain
  • CMain::GetNavChain

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

<?
$APPLICATION->AddChainItem("Форум &quot;Отзывы&quot;", "/ru/forum/list.php?FID=3");
?>


AddHeadScript

Главный модуль>Классы>CMain>AddHeadScript (с версии 6.5.0)

CMain::AddHeadScript

Описание и параметры

CMain::AddHeadScript(
      $src,
      $additional=false
)

Подключает java скрипты в шаблоне сайта и в шаблоне компонентов. Порядок их включения в страницу и порядок при объединении - соответствует порядку вызовов API. Исключение: в случае объединения вначале сгруппируются скрипты от ядра, а потом выведутся скрипты шаблона и страницы. Нестатический метод.

В новом ядре тому методу аналогичен \Bitrix\Main\Page\Asset::addJs

Параметры

Параметр | Описание | С версии
src | путь к скрипту от корня сайта |
additional |  | 12.0.9

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

Если необходимо добавить ссылку на скрипт в тело тега head (scr - ссылка на скрипт):

<?$APPLICATION->AddHeadScript('scr');?>

Для добавления в head дополнительных файлов можно использовать:

<?
// для js-файлов
$APPLICATION->AddHeadScript('/bitrix/templates/.default/additional.js');

// для css-файлов
$APPLICATION->SetAdditionalCSS("/bitrix/templates/.default/additional.css");
?>


AddHeadString

Главный модуль>Классы>CMain>AddHeadString (с версии 5.9.0)

CMain::AddHeadString

CMain::AddHeadString(
 str,
 bool Unique=false,
 additional=false,
 location = AssetLocation::AFTER_JS_KERNEL
)

Метод добавляет строку в секцию <head>…</head> сайта. Нестатический метод.

Аналог метода \Bitrix\Main\Page\Asset::addString [image] в ядре D7.

Переменные

Параметр | Описание | С версии
str | строка, которая будет добавлена в секцию … |
Unique | если true и такая строка уже добавлена в секцию <head>, то она не будет продублирована. Если false, то строка будет добавлена в секцию <head> без проверки на уникальность. Проверка уникальности (при установленном параметре $bUnique = true) производится путем вычисления md5-хеша от строки в /bitrix/modules/main/classes/general/main.php. | 6.5.1
additional | Необязательный. По умолчанию false. | 12.0.9, устраел с 14.0.18
location | Где выводить строку. Возможные значения: BEFORE_CSS, AFTER_CSS, AFTER_JS_KERNEL, AFTER_JS, BODY_END. | 14.0.18

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

Добавим файл стилей style.css из текущего каталога.

<?$APPLICATION->AddHeadString('<link href="'.$APPLICATION->GetCurDir().'"style.css";  type="text/css" rel="stylesheet" />',true)?>


AddPanelButton

Главный модуль>Классы>CMain>AddPanelButton (с версии 3.0.14)

CMain::AddPanelButton

Описание и параметры

CMain::AddPanelButton(
 array button,
 array MenuItem
)

Добавляет в панель управления кнопку. Нестатический метод.

Параметры

Параметр | Описание | С версии
button Массив описывающий добавляемую кнопку. Ключи массива:
  • HREF - ссылка на кнопке
  • SRC - путь от корня сайта к картинке которая будет выведена на кнопке
  • ALT - текст всплывающей подсказки на кнопке
  • MAIN_SORT - индекс сортировки для группы кнопок, для стандартных групп иконок данный параметр имеет следующие значения:
    • 100 - группа иконок модуля управления статикой
    • 200 - группа иконок модуля документооборота
    • 300 - группа иконок модуля информационных блоков
  • SORT - индекс сортировки внутри группы кнопок
  • TYPE - (BIG/SMALL) размер иконки. (По умолчанию "SMALL".)
  • HINT - Массив с ключами:
    • TITLE - Заголовок всплывающей подсказки;
    • TEXT - Текст всплывающей подсказки.
  • ICON - CSS иконки.
  • TEXT - Текст кнопки.
Если у пользователя не хватает прав на ту или иную операцию и вы хотите в любом случае вывести кнопку, то необходимо HREF оставлять пустым, при этом кнопка будет выведена черно-белой и без ссылки.
MenuItem | Массив меню | 7.0.0

Смотрите также

  • Панель управления
  • CMain::ShowPanel
  • Событие "OnPanelCreate"

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

<?
// получим уровень доступа к модулю "Веб-формы"
$FORM_RIGHT = $APPLICATION->GetUserRight("form");
// если доступ есть то
if($FORM_RIGHT>"D"):
    // добавим в панель кнопку ведущую на список веб-форм
    $APPLICATION->AddPanelButton(array(
        "HREF"      => "/bitrix/admin/form_list.php",
        "SRC"       => "/bitrix/images/fileman/panel/web_form.gif",
        "ALT"       => "Редактировать веб-форму",
        "MAIN_SORT" => 400,
        "SORT"      => 100
    ));
endif;
?>

Подменю кнопки (на примере кнопки стикеров):

MENU => Array(
 [0] => Array(
  [TEXT] => <div style="float: left; margin: 0 50px 0 0;">Наклеить стикер</div>
  [TITLE] => Наклеить новый стикер на страницу
  [ICON] =>
  [ACTION] => if (wind ow .oBXSticker){window .oBXSticker.AddSticker();}
  [DEFAULT] => 1
  [HK_ID] => FMST_PANEL_STICKER_ADD
 )
 [1] => Array(
  [SEPARATOR] => 1
 )
)


AddViewContent

Главный модуль>Классы>CMain>AddViewContent (с версии 9.5.2)

CMain::AddViewContent

CMain::AddViewContent(
 view,
 content,
 pos = 500
)

Обёртка над методом AddBufferContent. Метод позволяет указать место вывода контента, создаваемого ниже по коду с помощью метода ShowViewContent. Нестатический метод.

Параметры

Параметр | Описание | С версии
view | Идентификатор буферизируемой области. Идентификатору может соответствовать несколько буферов. Последовательность вывода контента определяется сортировкой pos. |
content | Буферизируемый контент |
pos | Сортировка вывода контента | 9.5.3


AuthForm

Главный модуль>Классы>CMain>AuthForm (с версии 3.0.3)

CMain::AuthForm

Описание и параметры

CMain::AuthForm(
 mixed mess,
 bool show_prolog = true,
 bool show_epilog = true,
 string not_show_links = "N",
 bool do_die = true
)

Метод подключает ряд компонентов в зависимости от параметров пришедших на страницу:

Параметр | Значение | Название компонента
forgot_password | yes | Форма отправки контрольного слова для смены пароля (system.auth.forgotpasswd)
change_password | yes | (Форма смены забытого пароля (system.auth.changepasswd)
register | yes | Форма регистрации (system.auth.registration)
authorize_registration | yes | Форма авторизации (system.auth.authorize)

Если не указан ни один из параметров, то по умолчанию метод подключит компонент "Форма авторизации".

Примечание. После вывода соответствующего компонента метод завершает выполнение страницы.

Нестатический метод.

Параметры

Параметр | Описание | С версии
mess | Строка - сообщение об ошибке или массив вида Array("MESSAGE" => сообщение, "TYPE" => "ERROR"|"OK") (обрабатывается функцией ShowMessage) |
show_prolog | Если значение "true" - то будет выведен пролог (верх) сайта, "false" - пролог выводиться не будет. | 3.3.4
show_epilog | Если значение "true" - то будет выведен эпилог (низ) сайта, "false" - эпилог выводиться не будет. | 3.3.4
not_show_links | Данный параметр передается в компонент "Форма авторизации" (main/auth/authorize.php). Если значение "Y" - то ссылки ведущие на регистрацию и форму запроса и смены забытого пароля выводиться не будут, если "N" - ссылки выводиться будут (значение по умолчанию). | 3.3.4
do_die | Если значение "true" - то страница будет завершена после вывода формы и (опционально) эпилога, "false" - страница прерываться не будет. | 8.0.5

Смотрите также

  • Компоненты
  • Права доступа
  • ShowMessage

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

<?
// определим право чтения на файл "/download/document.doc" у текущего пользователя
$FILE_PERM = $APPLICATION->GetFileAccessPermission("/download/document.doc");
$FILE_PERM = (strlen($FILE_PERM)>0 ? $FILE_PERM : "D");
// если право чтения нет, то выводем форму авторизации
if($FILE_PERM < "R") $APPLICATION->AuthForm("У вас нет права доступа к данному файлу.");
?>


CaptchaCheckCode

Главный модуль>Классы>CMain>CaptchaCheckCode (с версии 4.1.4)

CMain::CaptchaCheckCode

CMain::CaptchaCheckCode(
 captcha_word,
 captcha_sid
)

Метод для работы с captcha. Нестатический метод.

Параметры

Параметр | Описание
captcha_word | Слово с капчи
captcha_sid | сессия капчи

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

 if ( $APPLICATION->CaptchaCheckCode($captcha_word, $captcha_sid) ) {
  print 'Captcha valid';
} else {
  print 'Wrong captcha';
}


CaptchaGetCode

Главный модуль>Классы>CMain>CaptchaGetCode (с версии 4.1.4)

CMain::CaptchaGetCode

CMain::CaptchaGetCode(
)

Метод создает объект типа CCaptcha, и возвращает сгенерированный код. Нестатический метод.

Параметры

Без параметров

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

$code=$APPLICATION->CaptchaGetCode();

Код затем передается в HTML для создания картинки. Картинка создается с помощью скрипта /bitrix/tools/captcha.php.

<input type="hidden" name="captcha_sid" value="<?=$code;?>" />
<img src="/bitrix/tools/captcha.php?captcha_sid=<?=$code;?>" alt="CAPTCHA" />

При обращении к скрипту генерируется картинка, а также добавляется запись в базу данных. При обработке формы вызывается метод CaptchaCheckCode:

if (!$APPLICATION->CaptchaCheckCode($_POST["captcha_word"], $_POST["captcha_sid"]))
{
   echo 'wrong captcha code';
}

Чтобы изменить CAPTCHA под ваш сайт можно обращаться к классу CCaptcha напрямую при генерации кода, и картинки. Для этого:

include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/captcha.php");
$cpt = new CCaptcha();
$cpt->SetCodeLength(6);  //устанавливаем длину кода на картинке
$cpt->SetCode();
$code=$cpt->GetSID();

Изменяем ссылку в HTML:

<input type="hidden" name="captcha_sid" value="<?=$code;?>" />
<img src="[b]/bitrix/tools/captcha2.php[/b]?captcha_sid=<?=$code;?>" alt="CAPTCHA" />

Создаем вышеуказанный captcha2.php и копируем в него содержимое captcha.php.

Изменяем отображение картинки:

$cpt = new CCaptcha();
$cpt->SetImageSize(90,30); //размер картинки на выходе
//отключил фон из кружочков, и линии поверх изображения
$cpt->SetEllipsesNumber(0);
$cpt->SetLinesNumber(0);
//установил волну
$cpt->SetWaveTransformation(true);
//переопределил вывод текста
//углы разворота оставил по умолчанию, начальную позицию, дистанции и размер шрифта поменял
$cpt->SetTextWriting($cpt->angleFrom, $cpt->angleTo, 5, 10, 16, 18);


ConvertCharset

Главный модуль>Классы>CMain>ConvertCharset (с версии 4.1.0)

CMain::ConvertCharset

Описание и параметры

string
 CMain::ConvertCharset(
 string,
 string charset_in,
 string charset_out
);

Метод используется для конвертирования строк из разных кодировок. Нестатический метод.

Примечание: метод - обертка для iconv, если iconv`а нет, то метод обходится и без неё (с ущербом производительности).

Параметры

Параметр | Описание
string | Строка для конвертации
charset_in | Исходная кодировка
charset_out | Конечная кодировка

Возвращаемое значение

Возвращает строку в нужной кодировке.

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

Конвертация строки $str из юникода в cp1251.

$str = $APPLICATION->ConvertCharset($str, "Unicode", "windows-1251");
Действует аналогично:
$str = iconv('CP1251', 'UTF-8', $str);


ConvertCharsetArray

Главный модуль>Классы>CMain>ConvertCharsetArray (с версии 8.6.0)

CMain::ConvertCharsetArray

array
 CMain::ConvertCharsetArray(
 array Data,
 string charset_from,
 string charset_to
);

Метод используется для конвертирования данных из разных кодировок. Нестатический метод.

Примечание: метод - обертка для iconv, если iconv`а нет, то метод обходится и без неё (с ущербом производительности).

Параметры

Параметр | Описание
Data | Массив для конвертации
charset_from | Исходная кодировка
charset_to | Конечная кодировка

Возвращаемое значение

Возвращает данные в нужной кодировке.


CopyFileAccessPermission

Главный модуль>Классы>CMain>CopyFileAccessPermission (с версии 3.0.3)

CMain::CopyFileAccessPermission

Описание и параметры

bool
CMain::CopyFileAccessPermission(
 string path_from,
 string path_to,
 bool overwrite = false
)

Копирует права доступа [image] одного файла (каталогу) другому файлу (каталогу). Возвращает "true" - если права скопированы успешно и "false" - в случае ошибки. Нестатический метод.

Параметры

Параметр Описание
path_from Путь откуда копировать. В случае многосайтовой версии, если DOCUMENT_ROOT у сайтов разный (задается в поле "Путь к корневой папке веб-сервера" в настройках сайта), то в данном параметре необходимо передавать массив вида:
array("ID сайта", "Путь откуда копировать")
path_to Путь куда копировать. В случае многосайтовой версии, если DOCUMENT_ROOT у сайтов разный (задается в поле "Путь к корневой папке веб-сервера" в настройках сайта), то в данном параметре необходимо передавать массив вида:
array("ID сайта", "Путь куда копировать")
overwrite Если значение - "true", то существующие права будут перезаписаны.
Необязателен. По умолчанию - "false".

Смотрите также

  • Права доступа
  • CMain::GetFileAccessPermission
  • CMain::SetFileAccessPermission
  • CMain::RemoveFileAccessPermission

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

<?
// установим на файл /ru/index.php следующие права:
// для группы # 23 - право чтения файла
// для группы # 5 - право прямого изменения файла
// для всех остальных групп - доступ к файлу закрыт
if ($APPLICATION->SetFileAccessPermission("/ru/index.php", array("23" => "R", "5" => "W", "*" => "D")))
{
    ShowNote("Права на файл успешно установлены.");

    // скопируем права файла "/ru/index.php" в права файла "/en/index.php"
    if ($APPLICATION->CopyFileAccessPermission("/ru/index.php", "/en/index.php", true))
         ShowNote("Права успешно скопированы.");
}
?>


get_cookie

Главный модуль>Классы>CMain>get_cookie (с версии 3.3.21)

CMain::get_cookie

Описание и параметры

CMain::get_cookie(
 string name,
 mixed name_prefix = false
)

Возвращает значение cookie. Нестатический метод.

Анаолг в новом ядре D7: Bitrix\Main\HttpRequest::getCookie [image].

Параметры

Параметр | Описание
name | Имя cookie переменной.
name_prefix Префикс имени переменной cookie.
Необязательный. По умолчанию - значение параметра "Имя префикса для названия cookies" в настройках главного модуля (значение данного параметра можно получить с помощью метода:
COption::GetOptionString("main", "cookie_name", "BITRIX_SM")

Смотрите также

  • Технология переноса посетителей
  • CMain::set_cookie
  • CMain::ShowSpreadCookieHTML

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

<?
global $APPLICATION;
$VISITOR_ID = $APPLICATION->get_cookie("VISITOR_ID");
?>


GetCSS

Главный модуль>Классы>CMain>GetCSS (с версии 3.3.22)

CMain::GetCSS

string
 CMain::GetCSS(
 bool external = true,
 bool bXhtmlStyle = true
)

Возвращает CSS страницы. CSS страницы может быть задан с помощью методов CMain::SetAdditionalCSS и CMain::SetTemplateCSS. Помимо заданных CSS стилей, всегда возвращается CSS текущего шаблона сайта, задаваемого в файле /bitrix/templates/ID шаблона/styles.css. Нестатический метод.

Параметры

Параметр | Описание | С версии
external Если значение - "true", то выводится HTML представляющий из себя ссылку на внешний CSS, например:
<LINK href="/bitrix/templates/demo/styles.css" type="text/css" rel="stylesheet">
Если значение "false", то выводится HTML представляющий из себя внутренний CSS, например:
<style type="text/css">
body { margin: 0px; padding:0px; background-color: #FFFFFF}
...
</style>
Исключение составляет CSS стили лежащие в каталоге /bitrix/modules/, они всегда подключаются как внутренний CSS (как правило это используется в стандартных компонентах).
bXhtmlStyle | Параметр, устанавливающий, по какому стандарту оформляются HTML-теги. Если значение true, то теги выводятся по стандарту XHTML (<link />), иначе по стандарту HTML 4 (<link>). Необязательный, по умолчанию true. | 8.5.3

См. также

  • CMain::ShowCSS
  • CMain::SetTemplateCSS
  • CMain::SetAdditionalCSS


GetCurDir

Главный модуль>Классы>CMain>GetCurDir (с версии 3.0.3)

CMain::GetCurDir

string
CMain::GetCurDir()

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

Параметры

Без параметров.

Смотрите также

  • CMain::GetCurUri
  • CMain::GetCurPage
  • CMain::GetCurPageParam
  • CMain::SetCurPage
  • GetDirPath
  • GetPagePath

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

<?
// текущая страница: /ru/support/index.php?id=3&s=5
global $APPLICATION;
$dir = $APPLICATION->GetCurDir();
// в $dir будет значение "/ru/support/"
?>


GetCurPage

Главный модуль>Классы>CMain>GetCurPage (с версии 3.0.3)

CMain::GetCurPage

Описание и параметры

string
 CMain::GetCurPage(
 bool get_index_page=null
)

Возвращает путь к текущей странице относительно корня. Нестатический метод.

Если файл текущей страницы явно не определён, то определение индексного файла каталога будет проходить по алгоритму представленному в описании функции GetDirIndex.

Параметры

Параметр Описание С версии
get_index_page Параметр указывает, нужно ли для индексной страницы раздела возвращать путь, заканчивающийся на "index.php". Если значение параметра равно true, то возвращается путь с "index.php", иначе - путь, заканчивающийся на "/". По умолчанию - null.

Если get_index_page равен:

  • null, поведение определяется константой BX_DISABLE_INDEX_PAGE. Если значение константы true, то значение параметра по умолчанию get_index_page=false.
  • false, из возвращаемого url страницы будет удалено index.php (вернется подстрока от 0-й позиции до первого встретившегося "/index.php")
  • true, url вернется без изменений
8.5.0

Смотрите также

  • CMain::GetCurUri
  • CMain::GetCurDir
  • CMain::GetCurPageParam
  • CMain::SetCurPage
  • GetPagePath
  • GetDirPath

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

<?
// текущая страница: /ru/?id=3&s=5
$page = $APPLICATION->GetCurPage(); // результат - /ru/index.php
?>


GetCurPageParam

Главный модуль>Классы>CMain>GetCurPageParam (с версии 3.0.3)

CMain::GetCurPageParam

Описание и параметры

string
 CMain::GetCurPageParam(
  string add_params = "",
  array remove_params = array(),
  bool get_index_page = null
)

Возвращает путь к текущей странице относительно корня c добавленными новыми и(или) удаленными текущими параметрами. Нестатический метод.

Если файл текущей страницы явно не определён, то определение индексного файла каталога будет проходить по алгоритму представленному в описании функции GetDirIndex.

Функции метода в новом ядре выполняют:

  • Bitrix\Main\Web\Uri::addParams [image],
  • Bitrix\Main\Web\Uri::deleteParams [image],
  • Bitrix\Main\Web\Uri::getUri [image].

Параметры

Параметр Описание С версии
add_params Строка с параметрами которые нужно добавить к возвращаемому значению.
Необязательный. По умолчанию "".
remove_params Массив параметров, которые необходимо удалить из URL-а страницы.
Необязательный. По умолчанию - пустой массив.
get_index_page Параметр указывает, нужно ли для индексной страницы раздела возвращать путь, заканчивающийся на "index.php". Если значение параметра равно true, то возвращается путь с "index.php", иначе - путь, заканчивающийся на "/". По умолчанию - null.

Если get_index_page равен:

  • null, поведение определяется константой BX_DISABLE_INDEX_PAGE. Если значение константы true, то значение параметра по умолчанию get_index_page=false.
  • false, из возвращаемого url страницы будет удалено index.php (вернется подстрока от 0-й позиции до первого встретившегося "/index.php")
  • true, url вернется без изменений
5.9.0

Смотрите также

  • DeleteParam
  • CMain::GetCurPage
  • CMain::GetCurUri
  • CMain::GetCurDir
  • GetPagePath
  • GetDirPath

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

<?
// текущая страница: /ru/?id=3&s=5&d=34
$page = $APPLICATION->GetCurPageParam("id=45", array("id", "d"));
// результат - /ru/index.php?id=45&s=5
?>
// пример формирование ссылок "Logout" и "Регистрация"

<?if ($USER->IsAuthorized()):?>

 <a href="<?echo $APPLICATION->GetCurPageParam("logout=yes", array(
     "login",
     "logout",
     "register",
     "forgot_password",
     "change_password"));?>">Закончить сеанс (logout)</a>

<?else:?>

 <a href="<?echo $APPLICATION->GetCurPageParam("register=yes", array(
     "login",
     "logout",
     "forgot_password",
     "change_password"));?>">Регистрация</a>

<?endif;?>


GetCurUri

Главный модуль>Классы>CMain>GetCurUri (с версии 3.3.4)

CMain::GetCurUri

Описание и параметры

string
CMain::GetCurUri(
 string add_params = "",
 string get_index_page=null
)

Возвращает путь к текущей странице относительно корня вместе с параметрами. Нестатический метод.

Если файл текущей страницы явно не определён, то определение индексного файла каталога будет проходить по алгоритму представленному в описании функции GetDirIndex.

Параметры

Параметр Описание С версии
add_params Строка параметров добавляемая к возвращаемому значению.
Необязательный. По умолчанию - "". 		4.0.0
get_index_page Параметр указывает, нужно ли для индексной страницы раздела возвращать путь, заканчивающийся на "index.php". Если значение параметра равно true, то возвращается путь с "index.php", иначе - путь, заканчивающийся на "/". По умолчанию - null.

Если get_index_page равен:

  • null, поведение определяется константой BX_DISABLE_INDEX_PAGE. Если значение константы true, то значение параметра по умолчанию get_index_page=false.
  • false, из возвращаемого url страницы будет удалено index.php (вернется подстрока от 0-й позиции до первого встретившегося "/index.php")
  • true, url вернется без изменений
8.6.4

Смотрите также

  • CMain::GetCurPage
  • CMain::GetCurDir
  • CMain::GetCurPageParam
  • CMain::SetCurPage
  • GetPagePath
  • GetDirPath

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

<?
// текущая страница: /ru/?id=3&s=5
$uri = $APPLICATION->GetCurUri("r=1&t=2"); // результат - /ru/index.php?id=3&s=5&r=1&t=2
?>


GetDirProperty

Главный модуль>Классы>CMain>GetDirProperty (с версии 3.3.12)

CMain::GetDirProperty

Описание и параметры

string
CMain::GetDirProperty(
 string property_id,
 mixed path = false,
 mixed default_value = false
)

Возвращает свойство [image] текущего раздела. Нестатический метод.

Параметры

Параметр | Описание | С версии
property_id | Идентификатор свойства.
path Путь к каталогу. В случае многосайтовой версии, если DOCUMENT_ROOT у сайтов разный (задается в поле "Путь к корневой папке веб-сервера" в настройках сайта), то в данном параметре необходимо передавать массив вида:
array("ID сайта", "путь")
Необязателен. По умолчанию - "false" - текущий каталог.
default_value Значение свойства по умолчанию.
Необязательный. По умолчанию - "false" - значение свойства по умолчанию не задано. 		3.3.21

Смотрите также

  • CMain::ShowProperty
  • CMain::GetProperty
  • CMain::GetPageProperty
  • CMain::GetPagePropertyList
  • CMain::GetDirPropertyList
  • CMain::SetPageProperty
  • CMain::SetDirProperty

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

    <?
$APPLICATION->GetDirProperty("keywords");
?>


GetDirPropertyList

Главный модуль>Классы>CMain>GetDirPropertyList (с версии 3.3.12)

CMain::GetDirPropertyList

Описание и параметры

array
CMain::GetDirPropertyList(
 string path = false
)

Возвращает массив свойств раздела [image], собранных рекурсивно до корня сайта. Нестатический метод.

Параметры

Параметр Описание
path Путь к каталогу. В случае многосайтовой версии, если DOCUMENT_ROOT у сайтов разный (задается в поле "Путь к корневой папке веб-сервера" в настройках сайта), то в данном параметре необходимо передавать массив вида:
array("ID сайта", "путь")
Необязателен. По умолчанию - "false" - текущий каталог.

Смотрите также

  • CMain::ShowProperty
  • CMain::GetProperty
  • CMain::GetPageProperty
  • CMain::GetDirProperty
  • CMain::GetPagePropertyList
  • CMain::SetPageProperty
  • CMain::SetDirProperty

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

    <?
$props = $APPLICATION->GetDirPropertyList();
foreach($props as $key=>$val)
    echo '<meta name="'.$key.'" content="'.htmlspecialchars($val).'">';
?>


GetException

Главный модуль>Классы>CMain>GetException (с версии 4.0.6)

CMain::GetException

CApplicationException
CMain::GetException();

Метод возвращает объект класса CApplicationException, содержащий последнее исключение. Нестатический метод.

Аналог в новом ядре D7: SystemException [image].

Смотрите также

  • Класс CApplicationException
  • CMain::ThrowException

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

<?
if(!$langs->Delete($del_id))
{
   if($ex = $APPLICATION->GetException())
      $strError = $ex->GetString();
}
?>


GetFileAccessPermission

Главный модуль>Классы>CMain>GetFileAccessPermission (с версии 3.0.3)

CMain::GetFileAccessPermission

Описание и параметры

string
CMain::GetFileAccessPermission(
 mixed path,
 array groups,
 task_mode=false
)

Определяет права доступа к файлу или каталогу [image]. Возвращает символ обозначающий то или иное право:

  • D - доступ запрещён
  • R - чтение (право просмотра содержимого файла)
  • U - документооборот (право на редактирование файла в режиме документооборота)
  • W - запись (право на прямое редактирование)
  • X - полный доступ (право на прямое редактирование файла и право на изменение прав доступа на данных файл)

Нестатический метод.

Параметры

Параметр | Описание | С версии
path Путь к файлу или папке относительно корня. В случае многосайтовой версии, если корневой каталог у сайтов разный, то в данном параметре необходимо передавать массив вида:
array("ID сайта", "Путь к файлу или папке относительно корня")
groups Массив ID групп пользователей, для которых необходимо определить права доступа. Если false, то определять группу прав для текущего пользователя.
Необязателен. По умолчанию - false.
task_mode | Необходим для работы с пользовательскими уровнями доступа. По умолчанию - false. | 6.5.0

Смотрите также

  • Права доступа
  • CMain::SetFileAccessPermission
  • CMain::CopyFileAccessPermission
  • CMain::RemoveFileAccessPermission

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

<?
if ($APPLICATION->GetFileAccessPermission("/ru/index.php") <= "D")
   ShowError("Доступ к файлу запрещён.");
?>


GetFileContent

Главный модуль>Классы>CMain>GetFileContent (с версии 3.0.3)

CMain::GetFileContent

mixed
CMain::GetFileContent(
 string path
)

Возвращает содержимое файла. Если файл не существует - вернет "false". Нестатический метод.

Параметры

Параметр | Описание
path | Абсолютный путь к файлу на диске.

Смотрите также

  • CMain::SaveFileContent

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

<?
$APPLICATION->GetFileContent($_SERVER["DOCUMENT_ROOT"]."/ru/index.php");
?>


GetFileRecursive

Главный модуль>Классы>CMain>GetFileRecursive (с версии 3.0.3)

CMain::GetFileRecursive

mixed
CMain::GetFileRecursive(
 string FileName,
 mixed dir
)

Ищет файл с заданным именем последовательно вверх по иерархии папок. Если файл найден - возвращает путь к найденному файлу относительно корня, в противном случае возвращает "false". Нестатический метод.

Параметры

Параметр | Описание
FileName | Имя файла.
dir | Путь к разделу с которого нужно начинать поиск файла. Если "false", то поиск будет начинаться с текущего раздела. Необязателен. По умолчанию - "false".

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

<?
// ищем файл params.php вверх по иерархии разделов начиная с текущего каталога
// если файл найден то подключаем его как PHP код
include($_SERVER["DOCUMENT_ROOT"].$APPLICATION->GetFileRecursive("params.php"));
?>


GetMenu

Главный модуль>Классы>CMain>GetMenu (с версии 3.0.3)

CMain::GetMenu

Описание и параметры

CMenu
CMain::GetMenu(
 string type = "left",
 bool MenuExt = false,
 mixed template = false,
 mixed InitDir = false
)

Возвращает объект класса CMenu, инициализированный методом CMenu::Init. Если произошла ошибка, то текст ошибки будет содержаться в свойстве LAST_ERROR данного объекта. Нестатический метод.

Параметры

Параметр | Описание | С версии
type | Тип меню. Необязателен. По умолчанию "left". |
MenuExt | Если значение - "true", то для формирования массива меню, помимо файлов .тип меню.menu.php будут также подключаться файлы с именами вида .тип меню.menu_ext.php. В которых вы можете манипулировать массивом меню $aMenuLinks произвольно, по вашему усмотрению (например, дополнять пункты меню значениями из инфо-блоков). Необязателен. По умолчанию - "false". | 3.2.5
template | Путь относительно корня к шаблону меню. Необязателен. По умолчанию - "false". | 3.3.7
InitDir | Каталог для которого будет строится меню. Необязателен. По умолчанию - "false", что означает - текущий каталог. | 3.3.21

Смотрите также

  • Класс CMenu
  • CMenu::Init
  • CMain::GetMenuHtml
  • CMain::GetMenuHtmlEx

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

<?
// выводим меню типа "left"
// с поддержкой файлов .тип меню.menu_ext.php
// с четким указанием шаблона и
// каталога для которого будет построено меню

$obMenu = $APPLICATION->GetMenu(
    "left",
    true,
    "/bitrix/php_interface/".SITE_ID."/left.menu_template.php",
    SITE_DIR
    );

// выводим меню
echo $obMenu->GetMenuHtml();
?>


GetMenuHtml

Главный модуль>Классы>CMain>GetMenuHtml

CMain::GetMenuHtml

Описание и параметры

string
CMain::GetMenuHtml(
 string type = "left",
 bool MenuExt = false,
 mixed template = false,
 mixed InitDir = false
)

Возвращает HTML-код для отображения меню заданного типа. В отличии от метода CMain::GetMenuHtmlEx шаблон меню будет подключаться на каждый пункт меню. Нестатический метод.

Параметры

Параметр | Описание | С версии
type | Тип меню. Необязателен. По умолчанию "left". |
MenuExt | Если значение - "true", то для формирования массива меню, помимо файлов .тип меню.menu.php будут также подключаться файлы с именами вида .тип меню.menu_ext.php. В которых вы можете манипулировать массивом меню $aMenuLinks произвольно, по вашему усмотрению (например, дополнять пункты меню значениями из инфо-блоков). Необязателен. По умолчанию - "false". | 3.2.5
template | Путь относительно корня к шаблону меню. Необязателен. По умолчанию - "false", что означает искать по алгоритму указанному на странице Построение и показ меню [image] . | 3.3.7
InitDir | Каталог для которого будет строится меню. Необязателен. По умолчанию - "false", что означает - текущий каталог. | 3.3.21

Смотрите также

  • Меню
  • Класс CMenu
  • CMenu::Init
  • CMain::GetMenu
  • CMain::GetMenuHtmlEx

Примеры

Пример левого меню элементы которого выбираются из инфо-блока

Вывод меню в файле /bitrix/templates/demo/header.php:

<?
echo $APPLICATION->GetMenuHtml("left", true);
?>

Файл /.left.menu.php:

<?
// основной файл меню
// данный файл может редактироваться в редакторе меню
$aMenuLinks = Array(
);
?>

Файл /.left.menu_ext.php:

<?
// дополнительный файл меню
// добавляет в основной массив меню разделы каталога телефонов
if (CModule::IncludeModule("iblock")):

    $IBLOCK_TYPE = "catalog";   // тип инфо-блока
    $IBLOCK_ID = 21;            // ID инфо-блока
    $CACHE_TIME = 3600;         // кэшируем на 1 час

    $aMenuLinksNew = array();

    // создаем объект для кэширования меню
    $CACHE_ID = __FILE__.$IBLOCK_ID;
    $obMenuCache = new CPHPCache;
    // если массив закэширован то
    if($obMenuCache->InitCache($CACHE_TIME, $CACHE_ID, "/"))
    {
        // берем данные из кэша
        $arVars = $obMenuCache->GetVars();
        $aMenuLinksNew = $arVars["aMenuLinksNew"];
    }
    else
    {
        // иначе собираем разделы
        $rsSections = GetIBlockSectionList($IBLOCK_ID, false, array("SORT" => "ASC", "ID" => "ASC"), false, array("ACTIVE"=>"Y"));
        while ($arSection = $rsSections->Fetch())
        {
            $arrAddLinks = array(SITE_DIR."catalog/phone/element.php?SECTION_ID=".$arSection["ID"]);
            // пройдемся по элементам раздела
            if ($rsElements = GetIBlockElementListEx($IBLOCK_TYPE, false, false, array(), false, array("ACTIVE" => "Y", "IBLOCK_ID" => $IBLOCK_ID, "SECTION_ID" => $arSection["ID"]), array("ID", "IBLOCK_ID", "DETAIL_PAGE_URL")))
            {
                while ($arElement = $rsElements->GetNext()) $arrAddLinks[] = $arElement["DETAIL_PAGE_URL"];
            }
            $aMenuLinksNew[] = array(
                $arSection["NAME"],
                SITE_DIR."catalog/phone/section.php?SECTION_ID=".$arSection["ID"],
                $arrAddLinks);
        }
    }
    // сохраняем данные в кэше
    if($obMenuCache->StartDataCache())
    {
        $obMenuCache->EndDataCache(Array("aMenuLinksNew" => $aMenuLinksNew));
    }

    // объединяем основной массив меню с дополнительным
    $aMenuLinks = array_merge($aMenuLinksNew, $aMenuLinks);

endif;
?>

Шаблон меню /bitrix/templates/demo/left.menu_template.php:

<?
// This file is the template for one menu item iteration

// Set item mark: selected folder, folder, page
if ($ITEM_TYPE=="D")
{
    if ($SELECTED)
        $strDir = "<td width='0%' bgcolor='#A0C4E0' valign='middle' align='center'><img height='13' src='/bitrix/templates/demo/images/left_folder_open.gif' width='17' border='0'></td>";
    else
        $strDir = "<td width='0%' bgcolor='#CCDFEE' valign='middle' align='center'><img height='13' src='/bitrix/templates/demo/images/left_folder.gif' width='17' border='0'></td>";
}
else
{
    if ($SELECTED)
    {
        $strDir = "<td width='0%' bgcolor='#A0C4E0' valign='middle' align='center'><img height='13' src='/bitrix/templates/demo/images/left_bullet.gif' width='17' border='0'></td>";
        $strDir_d = "<td width='0%' bgcolor='#A0C4E0' valign='middle' align='center'><img height='13' src='/bitrix/templates/demo/images/left_bullet_d.gif' width='17' border='0' alt='Закрытый раздел'></td>";
    }
    else
    {
        $strDir = "<td width='0%' bgcolor='#CCDFEE' valign='middle' align='center'><img height='13' src='/bitrix/templates/demo/images/left_bullet.gif' width='17' border='0'></td>";
        $strDir_d = "<td width='0%' bgcolor='#CCDFEE' valign='middle' align='center'><img height='13' src='/bitrix/templates/demo/images/left_bullet_d.gif' width='17' border='0' alt='Закрытый раздел'></td>";
    }
}

// if $SELECTED then this item is current (active) item
if ($SELECTED)
    $strtext = "leftmenuact";
else
    $strtext = "leftmenu";

//if $PARAMS["SEPARATOR"]=="Y" this item should be shown with different style applied

if ($PARAMS["SEPARATOR"]=="Y")
{
    $strstyle = " style='background-color: #D5ECE6; border-top: 1px solid #A6D0D7; border-bottom: 1px solid #A6D0D7; padding:8;'";
    $strDir = "<img height='13' src='/bitrix/templates/demo/images/1.gif' width='17' border='0'>";
    $strtext = "leftmenu";
}
else
    $strstyle = " style='padding:8;'";

// Content of variable $sMenuProlog is typed just before all menu items iterations
// Content of variable $sMenuEpilog is typed just after all menu items iterations
$sMenuProlog = "<table border='0' cellpadding='0' cellspacing='0' width='100%'>";
$sMenuEpilog = '<tr><td colspan=2 background="/bitrix/templates/demo/images/l_menu_border.gif"><img src="/bitrix/templates/demo/images/1.gif" width="1" height="1"></td></tr></table>';

// if $PERMISSION > "D" then current user can access this page
if ($PERMISSION > "D")
{
    $sMenuBody = '<tr><td colspan=2 background="/bitrix/templates/demo/images/l_menu_border.gif"><img src="/bitrix/templates/demo/images/1.gif" width="1" height="1"></td></tr><tr>'.$strDir.'<td valign="top"'.$strstyle.' width="100%"><a href="'.$LINK.'" class="'.$strtext.'">'.$TEXT.'</a></td></tr>';
}
else
{
    $sMenuBody = '<td colspan=2 background="/bitrix/templates/demo/images/l_menu_border.gif"><img src="/bitrix/templates/demo/images/1.gif" width="1" height="1"></td></tr><tr>'.$strDir_d.'</td><td valign="top"'.$strstyle.' width="100%"><a href="'.$LINK.'" class='.$strtext.'>'.$TEXT.'</a></td></tr>';

}
?>


GetMenuHtmlEx

Главный модуль>Классы>CMain>GetMenuHtmlEx (с версии 3.3.7)

CMain::GetMenuHtmlEx

Описание и параметры

string
CMain::GetMenuHtmlEx(
 string type = "left",
 bool MenuExt = false,
 mixed template = false,
 mixed InitDir = false
)

Возвращает HTML-код для отображения меню заданного типа. В отличие от метода CMain::GetMenuHtml шаблон меню будет подключаться только один раз. Нестатический метод.

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

Параметры

Параметр | Описание | С версии
type | Тип меню. Необязателен. По умолчанию "left". |
MenuExt | Если значение - "true", то для формирования массива меню, помимо файлов .тип меню.menu.php будут также подключаться файлы с именами вида .тип меню.menu_ext.php. В которых вы можете манипулировать массивом меню $aMenuLinks произвольно, по вашему усмотрению (например, дополнять пункты меню значениями из инфо-блоков). Необязателен. По умолчанию - "false". |
template | Путь относительно корня к шаблону меню. Необязателен. По умолчанию - "false", что означает искать по алгоритму указанному на странице Построение и показ меню [image] . |
InitDir | Каталог для которого будет строится меню. Необязателен. По умолчанию - "false", что означает - текущий каталог. | 3.3.21

Смотрите также

  • Меню
  • Класс CMenu
  • CMenu::Init
  • CMain::GetMenu
  • CMain::GetMenuHtml

Примеры

Пример выпадающего верхнего меню

Вывод меню в файле /bitrix/templates/demo/header.php:

<script language="JavaScript1.2" src="/bitrix/templates/demo/js/ddnmenu.js"></script>
<?echo $APPLICATION->GetMenuHtmlEx("top");?>

Файл /.top.menu.php:

<?
// основной файл меню
// данный файл может редактироваться в редакторе меню
$aMenuLinks = Array(
    Array(
        "Главная",
        "/index.php",
        Array(),
        Array(),
        ""
    ),
    Array(
        "Каталог",
        "/catalog/",
        Array(),
        Array(),
        ""
    ),
    Array(
        "Поддержка",
        "/support/",
        Array(),
        Array(),
        ""
    ),
    Array(
        "Партнёры",
        "/partners/",
        Array(),
        Array(),
        ""
    ),
    Array(
        "Компания",
        "/about/",
        Array(),
        Array(),
        ""
    )
);
?>

Файл /bitrix/templates/demo/top.menu_template.php:

<?
// шаблон меню
$sMenu = '<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="0%"><img src="/bitrix/templates/demo/images/top_menu_corner.gif" alt="" width="15" height="19"></td>';

for($i=0; $i<count($arMENU); $i++)
{
    $MENU_ITEM = $arMENU[$i];
    extract($MENU_ITEM);

    if($SELECTED)
        $clrtext = 'topmenuact';
    else
        $clrtext = 'topmenu';

    $sMenu .= '<td>';
    $sMenu .= '<table border="0" cellspacing="0" cellpadding="0"><tr>';
    $sMenu .= '<td bgcolor="#7B9DBB" onmouseover="show('.$i.')" onmouseout="hidden('.$i.')"><a href="'.$LINK.'" class="'.$clrtext.'"><nobr> '.$TEXT.' </nobr></a></td>';
    $sMenu .= '<td width="0%" bgcolor="#7B9DBB">';

    if($i<count($arMENU)-1) //add vertical divider after all items but not after the last one
        $sMenu .= '<img src="/bitrix/templates/demo/images/top_menu_divider.gif" width="15" height="19" alt="">';
    else
        $sMenu .= '<img src="/bitrix/templates/demo/images/1.gif" width="1" height="19" alt="">';

    $sMenu .= '</td></tr></table>';

    //check if menu of left type exists in the folder that the menu item points to
    $popup_menu = new CMenu("left");
    $popup_menu->Init($LINK);
    if(count($popup_menu->arMenu) > 0)
    {
        //if left menu exists then we display it in the hidden layer
        $popup_menu->template = "/bitrix/templates/demo/popup.menu_template.php";
        $sMenu .= '<div style="position:relative; width: 100%;">';
        $sMenu .= '<div onMouseOver="show('.$i.')" onMouseOut="hidden('.$i.')" id="menu'.$i.'" style="visibility: hidden; position: absolute; z-index: +1; top: 0px;" >';
        $sMenu .= $popup_menu->GetMenuHtmlEx();
        $sMenu .= '</div></div>';
    }
    $sMenu .= '</td>';
}
$sMenu .= '<td width="100%" bgcolor="#7B9DBB"><img src="/bitrix/templates/demo/images/1.gif" width="50" height="1" alt=""></td></tr></table>';
?>

Файл /bitrix/templates/demo/popup.menu_template.php:

<?
$sMenu =
    '<table border="0" cellspacing="0" cellpadding="0" width="110">'.
    '<tr><td bgcolor="#E6EFF7" valign="top"><table border="0" cellspacing="0" cellpadding="0" width="100%">';

for($i=0; $i<count($arMENU); $i++)
{
    $MENU_ITEM = $arMENU[$i];
    extract($MENU_ITEM);

    if ($PERMISSION > "D")
    {
        $sMenu .=
        '<tr valign="top"><td nowrap onmouseover="this.className=\'popupmenuact\'" onmouseout="this.className=\'popupmenu\'" onclick="window.location=\''.$LINK.'\'"  class="popupmenu" style="cursor: hand">'.
        '<nobr><a href="'.$LINK.'" style="text-decoration: none;"><font class="popupmenutext">'.$TEXT.'</font></a>'.
        '</nobr></td></tr>';
    }
    else
    {
        $sMenu .=
        '<tr valign="top"><td nowrap onmouseover="this.className=\'popupmenuact\'" onmouseout="this.className=\'popupmenu\'" onclick="window.location=\''.$LINK.'\'"  class="popupmenu" style="cursor: hand">'.
        '<nobr><font class="popupmenuclosed">'.$TEXT.'</font>'.
        '</nobr></td></tr>';
    }
}
$sMenu .= '</table></td></tr></table>';
?>

Файл /bitrix/templates/demo/js/ddnmenu.js:

var brname=navigator.appName, BrVer='';
if(brname.substring(0,2)=="Mi")
    BrVer='E';
var timer = 0;
lastid = -1;

function show(id)
{
    if(!((document.all)?document.all['menu'+id]:document.getElementById('menu'+id)))
        return;
    clearTimeout(timer);
    if((id != lastid) && (lastid!=-1))
        ((document.all)?document.all['menu'+lastid]:document.getElementById('menu'+lastid)).style.visibility = 'hidden';
    hideElement("SELECT", document.getElementById('menu'+lastid));
    lastid = id;
    ((document.all)?document.all['menu'+lastid]:document.getElementById('menu'+lastid)).style.visibility = 'visible';
}

function hidden(id)
{
    if(!((document.all)?document.all['menu'+id]:document.getElementById('menu'+id)))
        return;
    showElement("SELECT");
    timer = setTimeout("if('"+id+"' == '"+lastid+"'){((document.all)?document.all['menu"+lastid+"']:document.getElementById('menu"+lastid+"')).style.visibility = 'hidden';}", 500)
}

function GetPos(el)
{
    if (!el || !el.offsetParent)return false;
    var res=Array()
    res["left"] = el.offsetLeft;
    res["top"] = el.offsetTop;
    var objParent = el.offsetParent;
    while (objParent.tagName.toUpperCase()!="BODY")
    {
        res["left"] += objParent.offsetLeft;
        res["top"] += objParent.offsetTop;
        objParent = objParent.offsetParent;
    }
    res["right"]=res["left"]+el.offsetWidth;
    res["bottom"]=res["top"]+el.offsetHeight;
    return res;
}

function hideElement(elName, Menu)
{
    if(BrVer!='E') return;
    for (i = 0; i < document.all.tags(elName).length; i++)
    {
        Obj = document.all.tags(elName)[i];
        if(!(pMenu=GetPos(Menu)))continue;
        if(!(pObj=GetPos(Obj)))continue;

        if(pObj["left"]<pMenu["right"] && pMenu["left"]<pObj["right"] && pObj["top"]<pMenu["bottom"] && pMenu["top"]<pObj["bottom"])
            Obj.style.visibility = "hidden";
    }
}

function showElement(elName)
{
    if(BrVer!='E') return;
    for (i = 0; i < document.all.tags(elName).length; i++)
    {
        obj = document.all.tags(elName)[i];
        if (!obj || !obj.offsetParent)continue;
        if(obj.style.visibility=="hidden")
            obj.style.visibility = "visible";
    }
}


GetMeta

Главный модуль>Классы>CMain>GetMeta (с версии 3.3.12)

CMain::GetMeta

Описание и параметры

string
 CMain::GetMeta(
 string id,
 string meta_name = false,
 bool bXhtmlStyle = true
)

Возвращает свойство страницы [image] обрамленное тегом <meta>. Если на самой страницы свойство не задано, то будет взято значение свойства вышестоящего раздела (рекурсивно до корня сайта). Если свойство не задано, то метод вернет пустую строку. Нестатический метод.

Параметры

Параметр | Описание | С версии
id | Идентификатор свойства страницы или раздела, значение которого (value) будет выведено в аттрибуте "content" мета-тега: <meta content="value" ...> |
meta_name | Атрибут "name" мета-тега: <meta name="meta_name" ...> Необязательный. По умолчанию равен идентификатору свойства property_id. |
bXhtmlStyle | Параметр, устанавливающий, по какому стандарту оформляются HTML-теги. Если значение true, то теги выводятся по стандарту XHTML (<meta />), иначе по стандарту HTML 4 (<meta>). Параметр появился в версии 8.5.3 ядра. Необязательный, по умолчанию true. | 8.5.3

Смотрите также

  • CMain::ShowMeta
  • CMain::SetPageProperty
  • CMain::SetDirProperty

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

<?
$meta_keywords = $APPLICATION->GetMeta("keywords_prop", "keywords");
if (strlen($meta_keywords)>0) echo $meta_keywords;
?>


GetNavChain

Главный модуль>Классы>CMain>GetNavChain (с версии 3.0.3)

CMain::GetNavChain

string
CMain::GetNavChain(
 mixed path = false,
 int NumFrom = 0,
 mixed NavChainPath = false,
 bool IncludeOnce=false,
 bool ShowIcons = true
)

Возвращает HTML представляющий из себя навигационную цепочку.

Если вам не нужно показывать навигационную цепочку на какой либо странице, вам достаточно вставить в теле страницы код, инициализирующий свойство страницы "NOT_SHOW_NAV_CHAIN" значением "Y":

$APPLICATION->SetPageProperty("NOT_SHOW_NAV_CHAIN", "Y");
Поддержка этого свойства встроена в данный метод.

Нестатический метод.

Параметры

Параметр | Описание | С версии
path Путь для которого будет построена навигационная цепочка. В случае многосайтовой версии, если DOCUMENT_ROOT у сайтов разный (задается в поле "Путь к корневой папке веб-сервера" в настройках сайта), то в данном параметре необходимо передавать массив вида:
array("ID сайта", "путь")
Необязателен. По умолчанию - "false" - текущий путь.
NumFrom Начиная от какого пункта будет построена навигационная цепочка
Необязателен. По умолчанию - "0".
NavChainPath Путь к шаблону навигационной цепочки.
Необязателен. По умолчанию - "false", что предполагает поиск пути к шаблону навигационной цепочки по алгоритму представленному на странице Управление показом цепочки 		3.3.11
IncludeOnce | Необязателен. По умолчанию - "false". В режиме правки с параметром ShowIcons=true цепочка не строится. | 5.0.10
ShowIcons | Флаг отображения иконки. Необязателен. По умолчанию - "true". | 5.9.0

Смотрите также

  • Навигационная цепочка
  • CMain::ShowNavChain
  • CMain::AddChainItem


GetPageProperty

Главный модуль>Классы>CMain>GetPageProperty (с версии 3.3.12)

CMain::GetPageProperty

string
CMain::GetPageProperty(
 string property_id,
 mixed default_value = false
)

Возвращает свойство [image] текущей страницы. Нестатический метод.

Параметры

Параметр | Описание | С версии
property_id | Идентификатор свойства. |
default_value | Значение свойства по умолчанию. Необязательный. По умолчанию - "false" - значение свойства по умолчанию не задано. | 3.3.21

Смотрите также

  • CMain::ShowProperty
  • CMain::GetProperty
  • CMain::GetDirProperty
  • CMain::GetPagePropertyList
  • CMain::GetDirPropertyList
  • CMain::SetPageProperty
  • CMain::SetDirProperty

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

    <?
echo $APPLICATION->GetPageProperty("keywords");
?>


GetPagePropertyList

Главный модуль>Классы>CMain>GetPagePropertyList (с версии 3.3.12)

CMain::GetPagePropertyList

array
CMain::GetPagePropertyList()

Возвращает массив всех свойств страницы [image]. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • CMain::ShowProperty
  • CMain::GetProperty
  • CMain::GetPageProperty
  • CMain::GetDirProperty
  • CMain::GetDirPropertyList
  • CMain::SetPageProperty
  • CMain::SetDirProperty

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

    <?
$props = $APPLICATION->GetPagePropertyList();
foreach($props as $key=>$val)
    echo '<meta name="'.$key.'" content="'.htmlspecialchars($val).'">';
?>


GetPanel

Главный модуль>Классы>CMain>GetPanel (с версии 3.0.14)

CMain::GetPanel

string CMain::GetPanel()

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

Параметры

Без параметров.

Смотрите также

  • CMain::ShowPanel
  • CMain::AddPanelButton


GetProperty

Главный модуль>Классы>CMain>GetProperty (с версии 3.3.12)

CMain::GetProperty

Описание и параметры

string
CMain::GetProperty(
 string property_id,
 mixed default_value = false
)

Возвращает свойство [image] текущей страницы или раздела. Если на самой странице свойство не задано, то будет возвращено значение свойства вышестоящего раздела (рекурсивно до корня сайта). Нестатический метод.

Параметры

Параметр | Описание | С версии
property_id | Идентификатор свойства. |
default_value | Значение свойства по умолчанию. Необязательный. По умолчанию - "false" - значение свойства по умолчанию не задано. | 3.3.21

Смотрите также

  • Свойства страниц и мета-теги
  • CMain::ShowProperty
  • CMain::GetPageProperty
  • CMain::GetDirProperty
  • CMain::GetPagePropertyList
  • CMain::GetDirPropertyList
  • CMain::SetPageProperty
  • CMain::SetDirProperty

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

<?
$keywords = $APPLICATION->GetProperty("keywords");
if (strlen($keywords)>0) echo $keywords;
?>


GetPublicShowMode

Главный модуль>Классы>CMain>GetPublicShowMode (6.5.5)

CMain::GetPublicShowMode

string
CMain::GetPublicShowMode(
);

Метод возвращает текущий режим отображения административной панели. Нестатический метод.

Возвращаемое значение

Одно из следующих зачений:

  • view - просмотр (по умолчанию)
  • edit - редактирование
  • configure - редактирование


GetShowIncludeAreas

Главный модуль>Классы>CMain>GetShowIncludeAreas (с версии 3.3.21)

CMain::GetShowIncludeAreas

Описание и параметры

bool
CMain::GetShowIncludeAreas()

Возвращает "true", если кнопка "Показать включаемые области" на панели управления нажата, в противном случае - "false". Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • CMain::IncludeString

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

<?
$text = "Произвольный HTML";

// если кнопка "Показать включаемые области" нажата, то
if ($APPLICATION->GetShowIncludeAreas())
{
    $arIcons = Array();
    $arIcons[] =
            Array(
                "URL" => "/bitrix/admin/my_script1.php",
                "SRC" => "/images/my_icon1.gif",
                "ALT" => "Текст всплывающей подсказки"
            );
    $arIcons[] =
            Array(
                "URL" => "/bitrix/admin/my_script2.php",
                "SRC" => "/images/my_icon2.gif",
                "ALT" => "Текст всплывающей подсказки"
            );

    // выведется надпись "Произвольный HTML" обрамленная рамкой,
    // в правом верхнем углу которой будут две иконки my_icon1.gif и my_icon2.gif
    // с заданными на них ссылками на скрипты my_script1.php и my_script2.php

    echo $APPLICATION->IncludeString($text, $arIcons);
}
else
{
    // иначе просто выводим надпись "Произвольный HTML"
    echo $text;
}
?>
<?
// файл /bitrix/modules/advertising/classes/general/advertising.php
// класс CAdvBanner

// возвращает HTML произвольного баннера по типу
function Show($TYPE_SID, $HTML_BEFORE="", $HTML_AFTER="")
{
    global $APPLICATION, $USER;
    $arBanner = CAdvBanner::GetRandom($TYPE_SID);
    $strReturn = CAdvBanner::GetHTML($arBanner);
    if (strlen($strReturn)>0)
    {
        CAdvBanner::FixShow($arBanner);
        if ($APPLICATION->GetShowIncludeAreas())
        {
            $isDemo = CAdvContract::IsDemo();
            $arrPERM = CAdvContract::GetUserPermissions($arBanner["CONTRACT_ID"]);
            if (($isDemo || (is_array($arrPERM) && count($arrPERM)>0)) && $USER->IsAuthorized())
            {
                $arIcons = Array();
                $arIcons[] =
                        Array(
                            "URL" => "/bitrix/admin/adv_banner_edit.php?lang=".LANGUAGE_ID."&ID=".$arBanner["ID"]. "&CONTRACT_ID=".$arBanner["CONTRACT_ID"],
                            "SRC" => "/bitrix/images/advertising/panel/edit_ad.gif",
                            "ALT" => GetMessage("AD_PUBLIC_ICON_EDIT_BANNER")
                        );
                $arIcons[] =
                        Array(
                            "URL" => "/bitrix/admin/adv_banner_list.php?lang=".LANGUAGE_ID."&find_id=".$arBanner["ID"]. "&find_id_exact_match=Y&find_contract_id[]=".$arBanner["CONTRACT_ID"]. "&find_type_sid[]=".$arBanner["TYPE_SID"]."&set_filter=Y",
                            "SRC" => "/bitrix/images/advertising/panel/edit_ad_list.gif",
                            "ALT" => GetMessage("AD_PUBLIC_ICON_BANNER_LIST")
                        );
                $strReturn = $APPLICATION->IncludeString($strReturn, $arIcons);
            }
        }
        $strReturn = $HTML_BEFORE.$strReturn.$HTML_AFTER;
        return $strReturn;
    }
    else return false;
}
?>


GetSiteByDir

Главный модуль>Классы>CMain>GetSiteByDir

CMain::GetSiteByDir

Описание и параметры

array
CMain::GetSiteByDir(
 mixed cur_dir = false,
 mixed cur_host = false
)

Возвращает массив описывающий сайт, определяемый по указанному пути и домену. Описание ключей данного массива вы можете найти на странице Поля CSite. Алгоритм работы метода следующий:

  1. Ищем сайты для которых удовлетворяют path и host, если нашли, то возвращаем, иначе
  2. Ищем сайты для которых удовлетворяет path, если нашли, то возвращаем, иначе
  3. Ищем сайты для которых удовлетворяет host, если нашли, то возвращаем, иначе
  4. Возвращаем сайт с установленным флагом "Сайт по умолчанию"

Нестатический метод.

Параметры

Параметр | Описание
cur_dir | Путь относительно корня. Необязательный. По умолчанию - путь к текущей странице.
cur_host | Имя домена. Необязательный. По умолчанию - текущий домен.

Смотрите также

  • Поля CSite
  • Сайты

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

<?
// получим ссылающийся URL, либо последний URL в текущей сессии
if (strlen($_SERVER["HTTP_REFERER"]) <= 0)
    $referer_url = $_SESSION["SESS_HTTP_REFERER"];
else
    $referer_url = $_SERVER["HTTP_REFERER"];

// пропарсим URL чтобы отдельно получить домен и адрес страницы
$arUrl = parse_url($referer_url);

// получим массив описывающий сайт
$arSite = $APPLICATION->GetSiteByDir($arUrl["path"], $arUrl["host"]);
?>


GetTemplatePath

Главный модуль>Классы>CMain>GetTemplatePath (с версии 3.3.23)

CMain::GetTemplatePath

Описание и параметры

string
CMain::GetTemplatePath(
 string rel_path
)

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

Параметры

Параметр Описание
rel_path Путь к компоненту.

Алгоритм поиска пути от корня сайта следующий:
  1. Сначала файл будет искаться в каталоге
    /bitrix/templates/ID текущего шаблона сайта/component_path
  2. Если файл не найден, он будет искаться в каталоге
    /bitrix/templates/.default/component_path
  3. Затем если файл не найден, он будет искаться в каталоге
    /bitrix/modules/ID модуля/install/templates/component_path
    здесь ID модуля - это первый подкаталог в component_path

Смотрите также

  • Компоненты
  • CMain::IncludeFile

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

<?
// получим реальный путь к компоненту
$path = $APPLICATION->GetTemplatePath("iblock/catalog/element.php");
// в переменной $path может быть например, значение
// "/bitrix/templates/.default/iblock/catalog/element.php"
?>


GetTitle

Главный модуль>Классы>CMain>GetTitle (с версии 3.0.3)

CMain::GetTitle

string
CMain::GetTitle(
 mixed property_name = false,
 bool strip_tags = false
)

Возвращает заголовок страницы. Нестатический метод.

Параметры

Параметр | Описание | С версии
property_name | Если указано значение "false", то будет возвращен заголовок страницы, устанавливаемый с помощью метода SetTitle. В противном случае в параметре передается идентификатор свойства страницы, значение которого будет выведено в качестве заголовка (если это значение задано, например, с помощью метода CMain::SetPageProperty). Необязательный. По умолчанию "false". | 3.3.21
strip_tags | Если значение - "true", то из заголовка страницы будут удалены все HTML теги. Необязательный. По умолчанию - "false". | 3.3.21

Смотрите также

  • CMain::ShowTitle
  • CMain::SetTitle


GetUserRight

Главный модуль>Классы>CMain>GetUserRight (с версии 3.3.18)

CMain::GetUserRight

Описание и параметры

string
CMain::GetUserRight(
 string module_id,
 mixed groups = false,
 string use_default_level = "Y",
 string max_right_for_super_admin = "Y",
 string site_id=false
)

Возвращает право в рамках логики модуля установленное для определённого набора групп (по умолчанию - это группы текущего пользователя).

Как правило в каждом модуле определены свои символы означающие то или иной право, в противном случае используются значения по умолчанию:

  • D - доступ к модулю запрещён
  • R - право на просмотр страниц модуля (без права модификации)
  • W - право на модификацию данных модуля
Установка своего уникального набора прав для каждого модуля осуществляется методом GetModuleRightList класса с именем равным ID модуля. Например для модуля веб-форм, это будет метод form::GetModuleRightList() описаный в файле /bitrix/modules/form/install/index.php. Администрирование прав обычно осуществляется в настройках соответствующего модуля.

Для некоторых модулей (например, "информационные блоки") права устанавливаются индивидуально и к ним данный метод не применим, некоторые модули (например, "компрессия") вовсе не имеют прав доступа.

Примечание. Для любого модуля максимальное право (полный доступ к модулю) всегда обозначается символом W, минимальное право - символом D (доступ к модулю закрыт).

Нестатический метод.

Параметры

Параметр | Описание | С версии
module_id | ID модуля. |
groups | Массив групп для которых необходимо определить максимальное право. Если значение - false, то будет взят массив групп текущего пользователя. Необязательный. По умолчанию - false. |
use_default_level | Если значение - Y, то для определения максимального уровня прав будет учитываться уровень прав установленный по умолчанию. Необязательный. По умолчанию - Y. |
max_right_for_super_admin | Если значение - Y и groups = false, то пользователю входящему в группу администраторов (группа #1) всегда будет возвращаться максимальное право - W, независимо от того какие права установлены в настройках модуля. Необязательный. По умолчанию - Y. |
site_id | ID сайта. Необязательный. По умолчанию - false. | 10.0.11

Смотрите также

  • Права доступа
  • CMain::GetUserRoles

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

<?
// получим максимальное право доступа к модулю "Веб-формы" для текущего пользователя
if($APPLICATION->GetUserRight("form") <= "D")
    $APPLICATION->AuthForm("Доступ к модулю запрещён.");
?>


GetUserRoles

Главный модуль>Классы>CMain>GetUserRoles (с версии 3.3.18)

CMain::GetUserRoles

Описание и параметры

string
CMain::GetUserRoles(
 string module_id,
 mixed groups = false,
 string use_default_role = "Y",
 string max_role_for_super_admin = "Y",
 string site_id=false
)

Возвращает массив ролей для определённого набора групп (по умолчанию - это группы текущего пользователя).

Как правило в каждом модуле определены свои символы означающие ту или иную роль. Установка своего уникального набора ролей для каждого модуля осуществляется методом GetModuleRightList класса с именем равным ID модуля. Например, для модуля техподдержки, это будет метод support::GetModuleRightList(), описанный в файле /bitrix/modules/support/install/index.php. Администрирование ролей обычно осуществляется в настройках соответствующего модуля.

Примечание. Для любого модуля роль с максимальными правами (администратор модуля) всегда обозначается символом "W", с минимальным правами - символом "D" (доступ к модулю закрыт).

Нестатический метод.

Параметры

Параметр | Описание | С версии
module_id | ID модуля. |
groups | Массив групп для которых необходимо определить их роли. Если значение - "false", то будет взят массив групп текущего пользователя. Необязательный. По умолчанию - "false". |
use_default_role | Если значение - "Y", то для определения массива ролей будет учитываться роль установленная по умолчанию. Необязательный. По умолчанию - "Y". |
max_role_for_super_admin | Если значение - "Y" и groups = false, то пользователю входящему в группу администраторов (группа #1) всегда будет возвращаться массив ролей с обязательно включенной туда ролью с максимальными правами - "W". Необязательный. По умолчанию - "Y". |
site_id | ID сайта. Необязательный. По умолчанию "false". | 10.0.11

Смотрите также

  • Права доступа
  • CMain::GetUserRight
  • CModule::GetModuleRightList

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

<?
// получим массив ролей текущего пользователя в модуле "Техподдержка"
$arRoles = $APPLICATION->GetUserRoles("support");

if(in_array("R",$arRoles))
    $strNote = "У вас есть право задавать вопросы техподдержке.";

if(in_array("T",$arRoles))
    $strNote = "Вы являетесь сотрудником техподдержки.";

if(in_array("V",$arRoles))
    $strNote = "Вы можете просматривать все обращения техподдержки без права модификации.";

if(in_array("W",$arRoles))
    $strNote = "Вы являетесь администратором техподдержки.";

if ($arRoles==array("D"))
    $APPLICATION->AuthForm("Доступ к модулю техподдержки запрещён.");

ShowNote($strNote);
?>


IncludeAdminFile

Главный модуль>Классы>CMain>IncludeAdminFile (с версии 3.0.3)

CMain::IncludeAdminFile

CMain::IncludeAdminFile(
 string title,
 string abs_path
)

Подключает скрипт с административным прологом и эпилогом. Нестатический метод.

Параметры

Параметр | Описание
title | Заголовок страницы.
abs_path | Абсолютный путь к подключаемому файлу.

Смотрите также

  • Описание модуля

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

<?
function DoInstall()
{
    global $DB, $APPLICATION, $step;
    $FORM_RIGHT = $APPLICATION->GetGroupRight("form");
    if ($FORM_RIGHT=="W")
    {
        $step = IntVal($step);
        if($step<2)
            $APPLICATION->IncludeAdminFile(GetMessage("FORM_INSTALL_TITLE"),
            $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/form/install/step1.php");
        elseif($step==2)
            $APPLICATION->IncludeAdminFile(GetMessage("FORM_INSTALL_TITLE"),
            $_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/form/install/step2.php");
    }
}
?>


IncludeComponent

Главный модуль>Классы>CMain>IncludeComponent (с версии 5.1.7)

CMain::IncludeComponent

Описание и параметры

mixed
 IncludeComponent(
 string componentName,
 string componentTemplate,
 array arParams=array(),
 object parentComponent=null,
 array arFunctionParams=array()
 );

Метод подключает компонент 2.0. Нестатический метод.

Параметры

Параметр | Описание
componentName | Имя компонента. Например: "bitrix:news.detail".
componentTemplate | Имя шаблона компонента. Если имя пустое, то подразумевается имя ".default".
arParams | Массив входных параметров компонента.
parentComponent | Объект родительского комплексного компонента, если компонент подключается из шаблона комплексного компонента. В шаблоне комплексного компонента определена переменная $component, которая содержит объект этого комплексного компонента.
arFunctionParams Массив, содержащий дополнительные параметры отображения компонента:
"HIDE_ICONS"=>"Y" - не показывать панель настройки компонента в режиме редактировани/разработки;
"ACTIVE_COMPONENT"=>"N" - отключить компонент (код компонента не подключается).

Возвращаемое значение

Возвращает код компонента.

Пример

// Подключим компонент каталога с шаблоном "по-умолчанию" на публичной странице сайта
$APPLICATION->IncludeComponent(
    "bitrix:catalog",
    "",
    Array(
        "SEF_MODE" => "N",
        "IBLOCK_TYPE_ID" => "catalog",
        "ACTION_VARIABLE" => "action",
        "CACHE_TIME" => 1*24*60*60,
        "BASKET_PAGE_TEMPLATE" => "/personal/basket.php",
    )
);

// Подключим компонент карточки фотографии с шаблоном "по-умолчанию" в шаблоне
// комплексного компонента "фотогалерея"
$APPLICATION->IncludeComponent(
    "bitrix:photo.detail",
    "",
    Array(
         "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
         "IBLOCK_ID" => $arParams["IBLOCK_ID"],
         "ELEMENT_ID" => $arResult["VARIABLES"]["ELEMENT_ID"],
         "ELEMENT_CODE" => $arResult["VARIABLES"]["ELEMENT_CODE"],
    ),
    $component
);


IncludeFile

Главный модуль>Классы>CMain>IncludeFile (с версии 3.3.21)

CMain::IncludeFile

Описание и параметры

CMain::IncludeFile(
 string path,
 array params = array(),
 array function_params = array()
)

Метод является основой для подключения каких либо файлов в теле страницы, в прологе или в эпилоге и для подключения компонентов. Визуальное содержимое подключенного файла представляет из себя включаемую область. Нестатический метод.

Параметры

Параметр Описание
path Путь к подключаемому файлу.

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

Если в данном параметре будет задан относительный путь к подключаемому файлу, то система будет воспринимать этот файл как компонент и будет выводиться кнопка редактирования параметров компонента в режиме правки.

Если же в данном параметре задан путь к основному файлу компонента, то он будет найден и подключен по следующему алгоритму:
  1. Сначала файл будет искаться в каталоге
    /bitrix/templates/ID текущего шаблона сайта/path
  2. Если файл не найден, он будет искаться в каталоге
    /bitrix/templates/.default/path
  3. Затем если файл не найден, он будет искаться дистрибутиве модуля, т.е. в следующем каталоге:
    /bitrix/modules/ID модуля/install/templates/path,
    здесь ID модуля - это первый подкаталог в path
params Массив параметров для подключаемого файла. Структура данного массива:
array(
 "ИМЯ_ПАРАМЕТРА_1" => "ЗНАЧЕНИЕ_ПАРАМЕТРА_1",
 "ИМЯ_ПАРАМЕТРА_2" => "ЗНАЧЕНИЕ_ПАРАМЕТРА_2",
 ...)
В подключаемом файле будут инициализированы переменные, имена которых - ключи данного массива, а значения - соответствующие значения данного массива. Данная операция выполняется стандартной PHP функцией extract(params).
function_params Массив настроек данного метода, с ключами:
  • SHOW_BORDER - показывать ли рамку и иконки для редактирования, допустимы следующие значения:
    • true - показать рамку при нажатии на панели кнопки "Показать включаемые области" (значение по умолчанию)
    • false - не показывать рамки
  • NAME - текст всплывающей подсказки на иконке редактирования
  • LANG - двухсимвольный идентификатор языка в котором будет открыт административный раздел в момент редактирования файла (по умолчанию - язык текущего сайта)
  • BACK_URL - куда вернуться после редактирования (по умолчанию - текущая публичная страница)
  • WORKFLOW - участвует ли подключаемый файл в документооборте, возможны следующие значения:
    • true - ссылка ведущая на редактирование будет указывать на страницу модуля документооборота
    • false - ссылка ведущая на редактирование будет указывать на страницу модуля управления статикой (значение по умолчанию)
  • MODE - режим редактирования, допустимы следующие значения:
    • text - файл будет редактироваться как текст (ссылка на страницу редактирования файла в режиме текста)
    • html - файл будет редактироваться как HTML (ссылка на веб-редактор)(значение по умолчанию)
    • php - файл будет редактироваться как PHP (ссылка на страницу редактирования исходников файла)
  • TEMPLATE - если в параметре path указан абсолютный путь к несуществующему файлу, то здесь необходимо указать имя файла-шаблона для создания нового файла (по умолчанию - первый шаблон в порядке сортировки задаваемой в файле: /bitrix/templates/ID текущего шаблона сайта/page_templates/.content.php)

Смотрите также

  • Компоненты
  • IncludeTemplateLangFile
  • CMain::IncludeString

Примеры

Пример подключения компонента на странице

<?
// компонент выводящий детально элемент инфо-блока
$APPLICATION->IncludeFile("iblock/catalog/element.php", Array(
    "IBLOCK_TYPE"       => "catalog",                          // Тип инфо-блока
    "IBLOCK_ID"         => "21",                               // Инфо-блок
    "ELEMENT_ID"        => $_REQUEST["ID"],                    // ID элемента
    "SECTION_URL"       => "/catalog/phone/section.php?",      // URL ведущий на страницу с содержимым раздела
    "LINK_IBLOCK_TYPE"  => "catalog",                          // Тип инфо-блока, элементы которого связаны с текущим элементом
    "LINK_IBLOCK_ID"    => "22",                               // ID инфо-блока, элементы которого связаны с текущим элементом
    "LINK_PROPERTY_SID" => "PHONE_ID",                         // Свойство в котором хранится связь
    "LINK_ELEMENTS_URL" => "/catalog/accessory/byphone.php?",  // URL на страницу где будут показан список связанных элементов
    "arrFIELD_CODE" => Array(                                  // Поля
         "DETAIL_TEXT",
         "DETAIL_PICTURE"),
    "arrPROPERTY_CODE" => Array(                               // Свойства
         "YEAR",
         "STANDBY_TIME",
         "TALKTIME",
         "WEIGHT",
         "STANDART",
         "SIZE",
         "BATTERY",
         "SCREEN",
         "WAP",
         "VIBRO",
         "VOICE",
         "PC",
         "MORE_PHOTO",
         "MANUAL"),
    "CACHE_TIME"        => "3600",                              // Время кэширования (сек.)
    ));
?>

Пример подключения произвольного файла в эпилоге сайта

<?
// включаемая область для раздела
$APPLICATION->IncludeFile($APPLICATION->GetCurDir()."sect_inc.php", Array(), Array(
    "MODE"      => "html",                                           // будет редактировать в веб-редакторе
    "NAME"      => "Редактирование включаемой области раздела",      // текст всплывающей подсказки на иконке
    "TEMPLATE"  => "section_include_template.php"                    // имя шаблона для нового файла
    ));
?>


IncludeString

Главный модуль>Классы>CMain>IncludeString (с версии 3.3.21)

CMain::IncludeString

Описание и параметры

string
CMain::IncludeString(
 string text,
 array icons = array()
)

Выводит произвольную строку (HTML код) обрамленную рамкой, в правом верхнем углу которой выводятся заданные иконки. Нестатический метод.

Параметры

Параметр | Описание
text | Произвольный текст (HTML код).
icons Массив иконок, каждый элемент которого представляет из себя массив описывающий одну иконку, его ключами являются:
  • URL - ссылка на иконке
  • SRC - путь к изображению иконки
  • ALT - текст всплывающей подсказки на иконке

Смотрите также

  • CMain::GetShowIncludeAreas

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

<?
$text = "Произвольный HTML";

// если кнопка "Показать включаемые области" нажата, то
if ($APPLICATION->GetShowIncludeAreas())
{
    $arIcons = Array();
    $arIcons[] =
            Array(
                "URL" => "/bitrix/admin/my_script1.php",
                "SRC" => "/images/my_icon1.gif",
                "ALT" => "Текст всплывающей подсказки"
            );
    $arIcons[] =
            Array(
                "URL" => "/bitrix/admin/my_script2.php",
                "SRC" => "/images/my_icon2.gif",
                "ALT" => "Текст всплывающей подсказки"
            );

    // выведется надпись "Произвольный HTML" обрамленная рамкой,
    // в правом верхнем углу которой будут две иконки my_icon1.gif и my_icon2.gif
    // с заданными на них ссылками на скрипты my_script1.php и my_script2.php

    echo $APPLICATION->IncludeString($text, $arIcons);
}
else
{
    // иначе просто выводим надпись "Произвольный HTML"
    echo $text;
}
?>
<?
// файл /bitrix/modules/advertising/classes/general/advertising.php
// класс CAdvBanner

// возвращает HTML произвольного баннера по типу
function Show($TYPE_SID, $HTML_BEFORE="", $HTML_AFTER="")
{
    global $APPLICATION, $USER;
    $arBanner = CAdvBanner::GetRandom($TYPE_SID);
    $strReturn = CAdvBanner::GetHTML($arBanner);
    if (strlen($strReturn)>0)
    {
        CAdvBanner::FixShow($arBanner);
        if ($APPLICATION->GetShowIncludeAreas())
        {
            $isDemo = CAdvContract::IsDemo();
            $arrPERM = CAdvContract::GetUserPermissions($arBanner["CONTRACT_ID"]);
            if (($isDemo || (is_array($arrPERM) && count($arrPERM)>0)) && $USER->IsAuthorized())
            {
                $arIcons = Array();
                $arIcons[] =
                        Array(
                            "URL" => "/bitrix/admin/adv_banner_edit.php?lang=".LANGUAGE_ID."&ID=".$arBanner["ID"]. "&CONTRACT_ID=".$arBanner["CONTRACT_ID"],
                            "SRC" => "/bitrix/images/advertising/panel/edit_ad.gif",
                            "ALT" => GetMessage("AD_PUBLIC_ICON_EDIT_BANNER")
                        );
                $arIcons[] =
                        Array(
                            "URL" => "/bitrix/admin/adv_banner_list.php?lang=".LANGUAGE_ID."&find_id=".$arBanner["ID"]. "&find_id_exact_match=Y&find_contract_id[]=".$arBanner["CONTRACT_ID"]. "&find_type_sid[]=".$arBanner["TYPE_SID"]."&set_filter=Y",
                            "SRC" => "/bitrix/images/advertising/panel/edit_ad_list.gif",
                            "ALT" => GetMessage("AD_PUBLIC_ICON_BANNER_LIST")
                        );
                $strReturn = $APPLICATION->IncludeString($strReturn, $arIcons);
            }
        }
        $strReturn = $HTML_BEFORE.$strReturn.$HTML_AFTER;
        return $strReturn;
    }
    else return false;
}
?>


IsHTTPS

Главный модуль>Классы>CMain>IsHTTPS (с версии 3.3.21)

CMain::IsHTTPS

bool
CMain::IsHTTPS()

Определяет является ли текущий протокол защищенным (HTTPS). Статический метод.

Параметры

Без параметров.

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

<?
global $APPLICATION;
// получим полный URI текущий страницы
$CURRENT_PAGE = (CMain::IsHTTPS()) ? "https://" : "http://";
$CURRENT_PAGE .= $_SERVER["HTTP_HOST"];
$CURRENT_PAGE .= $APPLICATION->GetCurUri();
// в переменной $CURRENT_PAGE значение будет например,
// "http://www.mysite.ru/ru/index.php?id=23"
?>


MoveJSToBody

Главный модуль>Классы>CMain>MoveJSToBody (с версии 14.0.0)

CMain::MoveJSToBody

public function CMain::MoveJSToBody(
   $module = ''
);

Метод переносит вывод js скриптов модуля в конец страницы, при наличие в ней вызова $APPLICATION->ShowBodyScripts();

Параметры функции

Параметр | Описание
$module | Идентификатор модуля

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

$APPLICATION->MoveJSToBody('im');


RemoveFileAccessPermission

Главный модуль>Классы>CMain>RemoveFileAccessPermission (с версии 3.0.3)

CMain::RemoveFileAccessPermission

Описание и параметры

bool
CMain::RemoveFileAccessPermission(
 string path,
 mixed groups = false
)

Удаляет права доступа для файла или каталога. Возвращает "true" - если удаление произведено успешно и "false" - в случае ошибки. Нестатический метод.

Параметры

Параметр Описание
path Путь к файлу или папке относительно корня. В случае многосайтовой версии, если корневой каталог у сайтов разный, то в данном параметре необходимо передавать массив вида:
array("ID сайта", "Путь к файлу или папке относительно корня")
groups Массив групп для которых удалить права доступа. Если значение - "false", то права доступа будут удалены для всех групп.
Необязательный. По умолчанию - "false".

Смотрите также

  • Права доступа
  • CMain::GetFileAccessPermission
  • CMain::CopyFileAccessPermission
  • CMain::SetFileAccessPermission

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

<?
// удалим права на файл /ru/index.php для групп пользователей #5 и #23
if ($APPLICATION->RemoveFileAccessPermission("/ru/index.php", array(5, 23)))
    ShowNote("Права успешно модифицированы.");
?>


ResetException

Главный модуль>Классы>CMain>ResetException (с версии 4.0.6)

CMain::ResetException

CMain::ResetException()

Метод очищает последнее исключение. Нестатический метод.

Аналог в новом ядре D7: SystemException [image].

Смотрите также

  • Класс CApplicationException
  • CMain::ThrowException
  • CMain::GetException

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

<?
$events = GetModuleEvents("main", "OnAfterUserLogin");
while($arEvent = $events->Fetch())
{
   $APPLICATION->ResetException();
   ExecuteModuleEvent($arEvent, $login, $password, $remember, $USER_ID);
   if($err = $APPLICATION->GetException())
      $RESULT_MESSAGE = Array("MESSAGE"=>$err->GetString()."<br>", "TYPE"=>"ERROR");
}
?>


SaveFileContent

Главный модуль>Классы>CMain>SaveFileContent (с версии 3.0.3)

CMain::SaveFileContent

Описание и параметры

bool
CMain::SaveFileContent(
 string abs_path,
 string content
)

Сохраняет страницу на диске. Возвращает "true" - если сохранение произведено успешно и "false" - в случае ошибки. Метод инициализирует событие "OnChangeFile". Нестатический метод.

Параметры

Параметр | Описание
abs_path | Полный путь к файлу на диске.
content | Содержимое файла.

Смотрите также

  • CMain::GetFileContent
  • Событие "OnChangeFile"
  • RewriteFile

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

<?
$file_content = '
    <?
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
    $APPLICATION->SetTitle("Title");
    ?>
    Содержимое страницы...
    <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
    ';

$abs_path = $_SERVER["DOCUMENT_ROOT"]."/ru/index.php";
if(!$APPLICATION->SaveFileContent($abs_path, $file_content))
    ShowError("Ошибка при сохранениии файла");
?>


set_cookie

Главный модуль>Классы>CMain>set_cookie (с версии 3.3.21)

CMain::set_cookie

Описание и параметры

CMain::set_cookie(
 string name,
 string value,
 mixed time = false,
 string folder = "/",
 mixed domain = false,
 bool secure = false,
 bool spread = true,
 mixed name_prefix = false,
 httpOnly=false
)

Устанавливает cookie и при необходимости запоминает параметры установленного cookie для дальнейшего распространения по сайтам с разными доменными именами. Нестатический метод.

Параметры

Параметр | Описание | С версии
name | Имя cookie переменной.
value | Значение cookie переменной.
time Дата в Unix-формате после которой cookie будет считаться истекшим и его значение не будет передаваться от посетителя на сайт.
Необязательный. По умолчанию - cookie устанавливается сроком на 1 год.
folder Каталог веб-сайта для которого cookie будет действителен.
Необязательный. По умолчанию - весь сайт.
domain Домен для которого cookie будет действительным.
Необязательный. По умолчанию - текущий сайт.
secure Флаг secure для устанавливаемого cookie. Если значение "true", то будет установлен как "защищенный", т.е. его значение будет возвращаться на сайт только если посетитель зашел на сайт по протоколу HTTPS.
Необязательный. По умолчанию - "false".
spread | Если значение "true", то параметры установленного cookie будут запоминаться для дальнейшего его распространения по доменам (административное меню "Сайты", в настройках сайта - поле "Доменное имя").
name_prefix Префикс имени переменной cookie.
Необязательный. По умолчанию - значение параметра "Имя префикса для названия cookies" в настройках главного модуля (значение данного параметра можно получить с помощью метода:
COption::GetOptionString("main", "cookie_name", "BITRIX_SM")
httpOnly | Необязательный. По умолчанию - "false". | 14.0.1

Смотрите также

  • Технология переноса посетителей
  • CMain::get_cookie
  • CMain::ShowSpreadCookieHTML

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

<?
global $APPLICATION;
// устновим cookie на 2 года, действительного только для каталога /ru/
$APPLICATION->set_cookie("RUSSIAN_VISITOR_ID", 156, time()+60*60*24*30*12*2, "/ru/");
?>


SetAdditionalCSS

Главный модуль>Классы>CMain>SetAdditionalCSS (с версии 3.0.3)

CMain::SetAdditionalCSS

CMain::SetAdditionalCSS(
 string Path2css,
 additional=false
)

Устанавливает CSS стиль для страницы. Нестатический метод.

В ядре D7 имеется аналог этого метода: \Bitrix\Main\Page\Asset::addCss [image].

Параметры

Параметр | Описание | С версии
Path2css | Путь относительно корня к файлу с CSS стилями. |
additional | Необязательный. По умолчанию "false". Добавление файлов стилей или js в конец списка ресурсов шаблона. | 12.0.9

Смотрите также

  • CMain::ShowCSS
  • CMain::GetCSS
  • CMain::SetTemplateCSS

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

<?
$APPLICATION->SetAdditionalCSS("/bitrix/templates/demo/additional.css");
?>


SetCurPage

Главный модуль>Классы>CMain>SetCurPage (с версии 3.3.0)

CMain::SetCurPage

Описание и параметры

CMain::SetCurPage(
  string page,
  mixed param = false
)

Устанавливает в объекте класса CMain текущую страницу и ее параметры. Нестатический метод.

Параметры

Параметр | Описание | С версии
page | Адрес страницы. Например, "/ru/index.php". |
param | Строка параметров. Например, "id=2&s=3&t=4". Параметр необязательный. Если его не задавать, то параметры страницы в объекте класса CMain остаются без изменений. | 3.3.4

Смотрите также

  • CMain::GetCurUri
  • CMain::GetCurPage
  • CMain::GetCurPageParam
  • CMain::GetCurDir

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

<?
$APPLICATION->SetCurPage("/ru/index.php", "id=2&s=3");
?>


SetDirProperty

Главный модуль>Классы>CMain>SetDirProperty (с версии 3.3.12)

CMain::SetDirProperty

Описание и параметры

CMain::SetDirProperty(
 string property_id,
 string property_value,
 string path=false
)

Устанавливает свойство [image] для текущего раздела. Нестатический метод.

Параметры

Параметр | Описание | С версии
property_id | Идентификатор свойства. |
property_value | Значение свойства. |
path | Путь до страницы. Необязательный. По умолчанию - "false", то есть текущий. | 12.5.7

Смотрите также

  • CMain::ShowProperty
  • CMain::GetProperty
  • CMain::GetPageProperty
  • CMain::GetDirProperty
  • CMain::GetPagePropertyList
  • CMain::GetDirPropertyList
  • CMain::SetPageProperty

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

<?
$APPLICATION->SetDirProperty("keywords", "дизайн, веб, сайт");
?>


SetFileAccessPermission

Главный модуль>Классы>CMain>SetFileAccessPermission (с версии 3.0.3)

CMain::SetFileAccessPermission

Описание и параметры

bool
CMain::SetFileAccessPermission(
 string path,
 array permissions,
 bool overwrite = true
)

Устанавливает права доступа к файлу или каталогу. Возвращает "true" - если установка прав произведена успешно и "false" - в случае ошибки. Нестатический метод.

Параметры

Параметр Описание
path Путь к файлу или папке относительно корня. В случае многосайтовой версии, если корневой каталог у сайтов разный, то в данном параметре необходимо передавать массив вида:
array("ID сайта", "Путь к файлу или папке относительно корня")
permissions Массив с правами доступа вида Array("ID группы пользователей"=>"право доступа" [, ...]). В качестве "право доступа" возможны следующие значения:
  • D - доступ запрещён
  • R - чтение (право просмотра содержимого файла)
  • U - документооборот (право на редактирование файла в режиме документооборота)
  • W - запись (право на прямое редактирование)
  • X - полный доступ (право на прямое редактирование файла и право на изменение прав доступа на данных файл)
В качестве "ID группы пользователей" также может быть задан символ "*", что означает - "для всех групп пользователей".
overwrite Если значение - "true", то существующие права будут перезаписаны.
Необязателен. По умолчанию - "true".

Смотрите также

  • Права доступа
  • CMain::GetFileAccessPermission
  • CMain::CopyFileAccessPermission
  • CMain::RemoveFileAccessPermission
  • Событие "OnChangePermissions"

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

<?
// установим на файл /ru/index.php следующие права:
// для группы # 23 - право чтения файла
// для группы # 5 - право прямого изменения файла
// для всех остальных групп - доступ к файлу закрыт
if ($APPLICATION->SetFileAccessPermission("/ru/index.php",
    array("23" => "R", "5" => "W", "*" => "D")))
    ShowNote("Права на файл успешно установлены.");
?>


SetPageProperty

Главный модуль>Классы>CMain>SetPageProperty (с версии 3.3.12)

CMain::SetPageProperty

Описание и параметры

CMain::SetPageProperty(
 string property_id,
 string property_value,
 array Options = null
)

Устанавливает свойство [image] для текущей страницы. Нестатический метод.

Параметры

Параметр | Описание | С версии
property_id | Идентификатор свойства. |
property_value | Значение свойства. |
Options | Необязательный. По умолчанию "null". | 8.5.1

Смотрите также

  • CMain::ShowProperty
  • CMain::GetProperty
  • CMain::GetPageProperty
  • CMain::GetDirProperty
  • CMain::GetPagePropertyList
  • CMain::GetDirPropertyList
  • CMain::SetDirProperty

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

<?
$APPLICATION->SetPageProperty("keywords", "веб, разработка, программирование");
?>


SetTemplateCSS

Главный модуль>Классы>CMain>SetTemplateCSS (с версии 3.3.22)

CMain::SetTemplateCSS

CMain::SetTemplateCSS(
 string rel_path
)

Устанавливает CSS стиль для компонента. Нестатический метод.

Параметры

Параметр | Описание
rel_path | Относительный путь к CSS стилю компонента.

Смотрите также

  • CMain::ShowCSS
  • CMain::GetCSS
  • CMain::SetAdditionalCSS

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

$APPLICATION->SetTemplateCSS("form/form.css");


SetTitle

Главный модуль>Классы>CMain>SetTitle (с версии 3.0.3)

CMain::SetTitle

CMain::SetTitle(
 string title,
 arrray Options = null
)

Устанавливает заголовок страницы. Если заголовок страницы у вас выводится с помощью метода CMain::ShowTitle, то устанавливать его вы можете уже после того как у вас будет выведен пролог сайта. Нестатический метод.

Параметры

Параметр | Описание | С версии
title | Заголовок страницы. |
Options | Необязательный. По умолчанию - "null". | 8.5.1

Смотрите также

  • CMain::ShowTitle
  • CMain::GetTitle

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

<?
$APPLICATION->SetTitle("Page title");
?>


ShowBanner

Главный модуль>Классы>CMain>ShowBanner (с версии 3.3.22)

CMain::ShowBanner

CMain::ShowBanner(
 string type,
 string html_before = false,
 string html_after = false
)

Подключает модуль рекламы и отображает баннер заданного типа. Нестатический метод.

Параметры

Параметр | Описание
type | Тип баннера (административный пункт меню "Реклама" > "Типы баннеров").
html_before | HTML код выводимый перед баннером.
html_after | HTML код выводимый после баннера.

Смотрите также

Классы модуля Реклама

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

<?
// подключим модуль рекламы и выведем баннер типа "LEFT"
$APPLICATION->ShowBanner("LEFT", "<div align=\"center\">", "<br></div><br>");
?>


ShowBodyScripts

Главный модуль>Классы>CMain>ShowBodyScripts (с версии 14.0.0)

CMain::ShowBodyScripts

public function ShowBodyScripts(
);

Метод выводит строки и js скрипты, предназначенные к выводу в конце <body>. Для перемещения произвольной строки в низ страницы можно воспользоваться вызовом:

Bitrix\Main\Page\Asset::getInstance()->addString('<script></script>',false, Bitrix\Main\Page\AssetLocation::BODY_END);

Или целиком перенести файлы какого то модуля, командой $APPLICATION->MoveJSToBody('im');

Параметры функции

Без параметров


ShowCSS

Главный модуль>Классы>CMain>ShowCSS (с версии 3.3.22)

CMain::ShowCSS

Описание и параметры

CMain::ShowCSS(
 cMaxStylesCnt = true,
 bXhtmlStyle = true
)

Отображает CSS страницы.

Метод использует технологию отложенных функций [image], позволяющую, помимо всего прочего, задавать CSS страницы (например, внутри компонента) уже после того как был выведен пролог сайта. Нестатический метод.

Параметры

Параметр | Описание | С версии
cMaxStylesCnt Если значение - "true", то выводится HTML представляющий из себя ссылку на внешний CSS, например:
<LINK href="/bitrix/templates/demo/styles.css" type="text/css" rel="stylesheet">
Если значение "false", то выводится HTML представляющий из себя внутренний CSS, например:
<style type="text/css">
body { margin: 0px; padding:0px; background-color: #FFFFFF}
...
</style>
Исключение составляет CSS стили лежащие в каталоге /bitrix/modules/, они всегда подключаются как внутренний CSS (как правило это используется в стандартных компонентах).
До версии 8.5.3 назывался bExternal.
bXhtmlStyle | Параметр, устанавливающий, по какому стандарту оформляются HTML-теги. Если значение true, то теги выводятся по стандарту XHTML (<link />), иначе по стандарту HTML 4 (<link>). Параметр появился в версии 8.5.3 ядра. Необязательный, по умолчанию true. | 8.5.3

Смотрите также

  • Отложенные функции
  • CMain::GetCSS
  • CMain::SetTemplateCSS
  • CMain::SetAdditionalCSS

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?= LANG_CHARSET;?>">
<META NAME="ROBOTS" content="ALL">
<?$APPLICATION->ShowMeta("keywords")?>
<?$APPLICATION->ShowMeta("description")?>
<title><?$APPLICATION->ShowTitle()?></title>
<?$APPLICATION->ShowCSS();?>
</head>
<body link="#525252" alink="#F1555A" vlink="#939393" text="#000000">
...


ShowHead

Главный модуль>Классы>CMain>ShowHead (с версии 7.0.0)

CMain::ShowHead

CMain::ShowHead(
 bool bXhtmlStyle = true
);

Метод предназначен для вывода в шаблоне сайта основных полей тега <head>: мета-теги Content-Type, robots, keywords, description; стили CSS; скрипты, заданные через CMain::AddHeadScript. Нестатический метод.

Параметры

Параметр | Описание | С версии
bXhtmlStyle | Параметр, устанавливающий, по какому стандарту оформляются HTML-теги. Если значение true, то теги выводятся по стандарту XHTML (<meta />), иначе по стандарту HTML 4 (<meta>). Параметр появился в версии 8.5.3 ядра. Необязательный, по умолчанию true. | 8.5.3

Возвращаемое значение

Нет.

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

<head>
<?$APPLICATION->ShowHead();?>
<title><?$APPLICATION->ShowTitle()?></title>
</head>


ShowHeadScripts

Главный модуль>Классы>CMain>ShowHeadScripts (с версии 6.5.0)

CMain::ShowHeadScripts

CMain::ShowHeadScripts()

Нестатический метод.

Параметры

Без параметров


ShowHeadStrings

Главный модуль>Классы>CMain>ShowHeadStrings (с версии 5.9.0)

CMain::ShowHeadStrings

CMain::ShowHeadStrings(
 additional=false
)

Отображает специальные стили, JavaScript либо произвольный html-код.

Метод использует технологию отложенных функций [image] и используется в шаблоне сайта для вывода произвольного кода. Такой код задается, например, в компонентах с помощью CMain::AddHeadString().

ShowHeadStrings - аналог методов ShowMeta, ShowTitle, ShowCSS, только более универсальный. Нестатический метод.

Смотрите также

  • Отложенные функции
  • CMain::AddHeadScript

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

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?=LANG_CHARSET;?>" />
<?$APPLICATION->ShowMeta("robots")?>
<?$APPLICATION->ShowMeta("keywords")?>
<?$APPLICATION->ShowMeta("description")?>
<title><?$APPLICATION->ShowTitle()?></title>
<?$APPLICATION->ShowCSS();?>
<?$APPLICATION->ShowHeadStrings()?>
<?$APPLICATION->ShowHeadScripts()?>
</head>
<body>
...

Рассмотрим пример использования CMain::AddHeadString(). В файле \bitrix\modules\main\include\epilog_after.php используется код:

...
if($bShowStat && !$USER->IsAuthorized())
{
require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/interface/init_admin.php");
$GLOBALS["APPLICATION"]->AddHeadString($GLOBALS["adminPage"]->ShowScript());
$GLOBALS["APPLICATION"]->AddHeadString('<script type="text/javascript" src="/bitrix/js/main/public_tools.js"></script>');
$GLOBALS["APPLICATION"]->AddHeadString('<link rel="stylesheet" type="text/css" href="/bitrix/themes/.default/pubstyles.css" />');
}
...


ShowMeta

Главный модуль>Классы>CMain>ShowMeta (с версии 3.3.21)

CMain::ShowMeta

Описание и параметры

CMain::ShowMeta(
 string id,
 string meta_name = false,
 bool bXhtmlStyle = true
)

Отображает свойство страницы [image] в виде мета-тега. Метод допускает использование специальных символов (html entities) в значениях свойств.

Если на самой странице свойство не задано, то будет взято значение свойства вышестоящего раздела (рекурсивно до корня сайта). Если значение свойства не определено, то метод отобразит пустую строку.

Метод использует технологию отложенных функций [image], позволяющую, помимо всего прочего, задавать значения мета-тегов через свойства страницы или раздела (с помощью методов CMain::SetPageProperty, CMain::SetDirProperty) уже после того как был выведен пролог сайта.

Нестатический метод.

Параметры

Параметр | Описание | С версии
property_id | Идентификатор свойства страницы или раздела, значение которого (value) будет выведено в аттрибуте "content" мета-тега: <meta content="value" ...> |
meta_name | Аттрибут "name" мета-тега: <meta name="meta_name" ...> Необязательный. По умолчанию равен идентификатору свойства property_id. |
bXhtmlStyle | Параметр, устанавливающий, по какому стандарту оформляются HTML-теги. Если значение true, то теги выводятся по стандарту XHTML (<meta />), иначе по стандарту HTML 4 (<meta>). Параметр появился в версии 8.5.3 ядра. Необязательный, по умолчанию true. | 8.5.3

Смотрите также

  • Отложенные функции
  • CMain::GetMeta
  • CMain::SetPageProperty
  • CMain::SetDirProperty

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?=LANG_CHARSET?>">
<META NAME="ROBOTS" content="ALL">
<?$APPLICATION->ShowMeta("keywords")?>
<?$APPLICATION->ShowMeta("description")?>
<title><?$APPLICATION->ShowTitle()?></title>
<?$APPLICATION->ShowCSS();?>
</head>
<body link="#525252" alink="#F1555A" vlink="#939393" text="#000000">
...


ShowNavChain

Главный модуль>Классы>CMain>ShowNavChain (с версии 3.3.21)

CMain::ShowNavChain

Описание и параметры

CMain::ShowNavChain(
 mixed path = false,
 int NumFrom = 0,
 mixed NavChainPath = false
)

Отображает навигационную цепочку.

Метод использует технологию отложенных функций [image], позволяющую, помимо всего прочего, добавлять пункты в навигационную цепочку (например, внутри компонента) уже после того как был выведен пролог сайта.

Если вам не нужно показывать навигационную цепочку на какой либо странице, вам достаточно вставить в теле страницы код, инициализирующий свойство страницы "NOT_SHOW_NAV_CHAIN" значением "Y":

$APPLICATION->SetPageProperty("NOT_SHOW_NAV_CHAIN", "Y");
Поддержка этого свойства встроена в данный метод.

Нестатический метод.

Параметры

Параметр Описание
path Путь для которого будет построена навигационная цепочка. В случае многосайтовой версии, если DOCUMENT_ROOT у сайтов разный (задается в поле "Путь к корневой папке веб-сервера" в настройках сайта), то в данном параметре необходимо передавать массив вида:
array("ID сайта", "путь")
Необязателен. По умолчанию - "false" - текущий путь.
NumFrom Номер пункта начиная с которого будет построена навигационная цепочка. Пункты навигационной цепочки нумеруются с нуля.
Необязателен. По умолчанию - "0".
NavChainPath Путь к шаблону навигационной цепочки.
Необязателен. По умолчанию - "false", что предполагает поиск пути к шаблону навигационной цепочки по алгоритму представленному на странице Управление показом цепочки

Смотрите также

  • Навигационная цепочка
  • Отложенные функции
  • CMain::AddChainItem
  • CMain::GetNavChain

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

<?
// выведем цепочку навигации для текущей страницы начиная
// с первого пункта по шаблону "chain_template.php"
// лежащему либо в каталоге "/bitrix/templates/<текущий шаблон сайта>/",
// либо в каталоге "/bitrix/templates/.default/".
$APPLICATION->ShowNavChain();
?>
<?
// выведем цепочку навигации для текущей страницы начиная
// со 2-го пункта по шаблону chain_template_bottom.php
$APPLICATION->ShowNavChain(false, 2, "/bitrix/templates/.default/chain_template_bottom.php");
?>

Пример шаблона навигационной цепочки

<?
// файл /bitrix/templates/.default/chain_template.php

$sChainProlog = "";   // HTML выводимый перед навигационной цепочкой
$sChainBody = "";     // пункт навигационной цепочки
$sChainEpilog = "";   // HTML выводимый после навигационной цепочки

// разделитель
if ($ITEM_INDEX > 0)
   $sChainBody = "<font class=\"chain\">&nbsp;/&nbsp;</font>";

// если указана ссылка то
if (strlen($LINK)>0)
{
    // выводим ссылку
    $sChainBody .= "<a href=\"".$LINK."\" class=\"chain\">".htmlspecialchars($TITLE)."</a>";
}
else // иначе
{
    // текст
    $sChainBody .= "<font class=\"chain\">".htmlspecialchars($TITLE)."</font>";
}
?>


ShowPanel

Главный модуль>Классы>CMain>ShowPanel (с версии 3.3.21)

CMain::ShowPanel

Описание

CMain::ShowPanel()

Отображает панель управления в публичной части сайта.
Метод использует технологию отложенных функций [image], позволяющую, помимо всего прочего, добавлять кнопку в панель управления уже после того как будет выведен пролог сайта.

Если у пользователя не хватает прав ни на одну операцию задаваемую кнопками панели управления, то панель выведена не будет. Если вам необходимо вывести панель в обязательном порядке, необходимо задать в теле страницы:

$APPLICATION->ShowPanel = true;

Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • Панель управления
  • Отложенные функции
  • CMain::AddPanelButton
  • Событие "OnPanelCreate"

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?=LANG_CHARSET;?>">
<META NAME="ROBOTS" content="ALL">
<?$APPLICATION->ShowMeta("keywords")?>
<?$APPLICATION->ShowMeta("description")?>
<title><?$APPLICATION->ShowTitle()?></title>
<?$APPLICATION->ShowCSS();?>
</head>
<body link="#525252" alink="#F1555A" vlink="#939393" text="#000000">
<?$APPLICATION->ShowPanel();?>
...


ShowProperty

Главный модуль>Классы>CMain>ShowProperty (с версии 4.0.6)

CMain::ShowProperty

Описание и параметры

CMain::ShowProperty(
 string property_id,
 mixed default_value = false
)

Отображает свойство страницы [image], учитывая свойства раздела.

Метод использует технологию отложенных функций [image], позволяющую, помимо всего прочего, задавать свойство страницы (например, внутри компонента) и использовать его в прологе уже после того как он был выведен. Нестатический метод.

Параметры

Параметр | Описание
property_id | Идентификатор свойства.
default_value | Значение свойства по умолчанию. Необязательный. По умолчанию - "false" - значение свойства по умолчанию не задано.

Смотрите также

  • Отложенные функции
  • CMain::GetProperty
  • CMain::GetPageProperty
  • CMain::GetDirProperty
  • CMain::GetPagePropertyList
  • CMain::GetDirPropertyList
  • CMain::SetPageProperty
  • CMain::SetDirProperty

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?=LANG_CHARSET;?>">
<META NAME="ROBOTS" content="ALL">
<?$APPLICATION->ShowMeta("keywords")?>
<?$APPLICATION->ShowMeta("description")?>
<title><?$APPLICATION->ShowProperty("page_title")?></title>
<?$APPLICATION->ShowCSS();?>
</head>
<body link="#525252" alink="#F1555A" vlink="#939393" text="#000000">
...


ShowSpreadCookieHTML

Главный модуль>Классы>CMain>ShowSpreadCookieHTML (с версии 3.3.21)

CMain::ShowSpreadCookieHTML

CMain::ShowSpreadCookieHTML()

Отображает HTML представляющий из себя набор IFRAME'ов предназначенный для распространения cookie по доменам. Метод используется в Технологии переноса посетителей [image] между разными сайтами. Она стандартно включена в визуальную часть эпилога. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • Технология переноса посетителей
  • CMain::set_cookie
  • CMain::get_cookie


ShowTitle

Главный модуль>Классы>CMain>ShowTitle (с версии 3.3.21)

CMain::ShowTitle

Описание и параметры

CMain::ShowTitle(
 string property_name = "title",
 bool strip_tags = true
)

Отображает заголовок страницы.

Метод использует технологию отложенных функций [image], позволяющую, помимо всего прочего, задавать заголовок страницы (например, внутри компонента) уже после того как был выведен пролог сайта. Нестатический метод.

Параметры

Параметр | Описание
property_name | Идентификатор свойства страницы, значение которого будет выведено в качестве заголовка (если это значение задано например, с помощью метода CMain::SetPageProperty). Необязательный. По умолчанию "title".
strip_tags | Если значение - "true", то из заголовка страницы будут удалены все HTML теги. Необязательный. По умолчанию - "true".

Смотрите также

  • Отложенные функции
  • CMain::GetTitle
  • CMain::SetTitle

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?= LANG_CHARSET;?>">
<META NAME="ROBOTS" content="ALL">
<?$APPLICATION->ShowMeta("keywords")?>
<?$APPLICATION->ShowMeta("description")?>
<title><?$APPLICATION->ShowTitle()?></title>
<?$APPLICATION->ShowCSS();?>
</head>
<body link="#525252" alink="#F1555A" vlink="#939393" text="#000000">
...


ShowViewContent

Главный модуль>Классы>CMain>ShowViewContent (с версии 9.5.2)

CMain::ShowViewContent

CMain::ShowViewContent(
  view
)

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

Параметры функции

Параметр | Описание
view | идентификатор буферизируемой области

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

Добавляем ссылку в h1 в шаблоне компонента header.php:

<h1><?=$APPLICATION->ShowTitle();?><?$APPLICATION->ShowViewContent('news_detail');?></h1>

Добавляем в шаблон компонента:

<?$this->SetViewTarget('news_detail');?>
   <noindex><a rel="nofollow" class="h1-head fancy" href="/develop/change_cover_type.php"><?=$arDataFilter["NAME"]?></a></noindex>
<?$this->EndViewTarget();?>


ThrowException

Главный модуль>Классы>CMain>ThrowException (с версии 3.3.21)

CMain::ThrowException

CMain::ThrowException(
 mixed msg,
 mixed id = false
)

Метод фиксирует исключение msg c кодом id. Получить последнее исключение можно методом $APPLICATION->GetException(). Нестатический метод.

Аналог в новом ядре D7: SystemException [image].

Параметры

Параметр | Описание
msg | Текст ошибки или объект класса, наследованного от CApplicationException.
id | Идентификатор ошибки.

Смотрите также

  • CMain::ResetException
  • CMain::GetException

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

<?
if($login=='')
{
   global $APPLICATION;
   $APPLICATION->ThrowException('Имя входа должно быть заполнено.');
   return false;
}
?>


Класс CMainPage

CMainPage - класс для использования на индексной странице портала.

Примечание. Функции данного класса используются, как правило, если многосайтовость организована по способу Многосайтовости на одном домене [image].

Методы класса

Метод | Описание | С версии
GetSiteByHost | Возвращает идентификатор сайта, определяя его по текущему хосту. |
GetSiteByAcceptLanguage | Возвращает идентификатор сайта, определяя его по переменной Accept-Language в настройках браузера посетителя. |
RedirectToSite | Перенаправляет на индексную страницу сайта [image] [image] . |
GetIncludeSitePage | Возвращает полный путь на индексную страницу заданного сайта [image] [image] , для дальнейшего ее подключения при помощи require() или include(). |

Смотрите также

  • Конфигурирование многосайтовости


GetIncludeSitePage

Главный модуль>Классы>CMainPage>GetIncludeSitePage (с версии 4.0.3)

CMainPage::GetIncludeSitePage

mixed
CMainPage::GetIncludeSitePage(
 string site
)

Возвращает абсолютный путь на индексную страницу заданного сайта, для дальнейшего ее подключения при помощи require() или include(). Если ни один из сайтов не найден по хосту, то функция вернет - "false". Нестатический метод.

Параметры функции

Параметр | Описание
site | Идентификатор сайта [image] .

Смотрите также

  • Список терминов
  • Конфигурирование многосайтовости

Пример индексной страницы портала

<?
require($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/include/mainpage.php");

if($page = CMainPage::GetIncludeSitePage(CMainPage::GetSiteByHost()))
    require_once($page);

require($_SERVER['DOCUMENT_ROOT']."/bitrix/header.php");?>
<?require($_SERVER['DOCUMENT_ROOT']."/bitrix/footer.php");?>


GetSiteByAcceptLanguage

Главный модуль>Классы>CMainPage>GetSiteByAcceptLanguage (с версии 4.0.3)

CMainPage::GetSiteByAcceptLanguage

Описание и параметры

mixed
CMainPage::GetSiteByAcceptLanguage(
 bool compare_site_id = false
)

Возвращает идентификатор сайта, определяя его по переменной Accept-Language в настройках браузера посетителя. Приоритетным для данной функции является порядок языков установленный в настройках браузера посетителя. Если ни один из этих языков не подойдет, то будет выбран сайт с установленным флагом "Сайт по умолчанию". Нестатический метод.

Параметры функции

Параметр | Описание | С версии
compare_site_id | Если значение "true", то поиск сайта будет осуществляться через сравнение идентификатора языка из Accept-Language и идентификатора сайта, если значение "false" - то сравнение будет между идентификатором языка из Accept-Languageи идентификатором языка выбранного в настройках сайта. Необязательный. По умолчанию - "false". | 4.0.6

Смотрите также

  • Список терминов
  • Конфигурирование многосайтовости

Пример индексной страницы портала

Для использования данного примера в качестве индексной страницы портала необходимо убедиться что:
1. Многосайтовость организована по способу Многосайтовость на одном домене [image].
2. Ни у одного из сайтов в поле "Папка сайта" не указано значение - "/".

<?
require($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/include/mainpage.php");

if ($sid = CMainPage::GetSiteByAcceptLanguage())
    CMainPage::RedirectToSite($sid);

require($_SERVER['DOCUMENT_ROOT']."/bitrix/header.php");?>
<?require($_SERVER['DOCUMENT_ROOT']."/bitrix/footer.php");?>


GetSiteByHost

Главный модуль>Классы>CMainPage>GetSiteByHost (с версии 4.0.3)

CMainPage::GetSiteByHost

mixed
CMainPage::GetSiteByHost()

Возвращает идентификатор сайта, определяя его по текущему хосту. Если идентификатор сайта неверный, то вернет - "false". Нестатический метод.

Параметры функции

Без параметров.

Смотрите также

  • Список терминов
  • Конфигурирование многосайтовости

Пример индексной страницы портала

<?
require($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/include/mainpage.php");

if($page = CMainPage::GetIncludeSitePage(CMainPage::GetSiteByHost()))
    require_once($page);

require($_SERVER['DOCUMENT_ROOT']."/bitrix/header.php");?>
<?require($_SERVER['DOCUMENT_ROOT']."/bitrix/footer.php");?>


RedirectToSite

Главный модуль>Классы>CMainPage>RedirectToSite (с версии 4.0.3)

CMainPage::RedirectToSite

mixed
CMainPage::RedirectToSite(
 string site
)

Перенаправляет на индексную страницу сайта [image] [image]. Нестатический метод.

Параметры функции

Параметр | Описание
site | Идентификатор [сайта [image] [image] .

Смотрите также

  • Список терминов
  • Конфигурирование многосайтовости

Пример индексной страницы портала

Для использования данного примера в качестве индексной страницы портала необходимо убедиться что:
1. Многосайтовость организована по способу многосайтовости на одном домене [image].
2. Ни у одного из сайтов в поле "Папка сайта" не указано значение - "/". Т.е. корень каждого сайта - отдельный подкаталог.

<?
require($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/include/mainpage.php");

if ($sid = CMainPage::GetSiteByAcceptLanguage())
    CMainPage::RedirectToSite($sid);

require($_SERVER['DOCUMENT_ROOT']."/bitrix/header.php");?>
<?require($_SERVER['DOCUMENT_ROOT']."/bitrix/footer.php");?>


Класс CMenu

Описание и свойства класса

CMenu - класс для работы с меню.

Свойства класса

Параметр | Описание
type | Тип меню.
arMenu | Массив пунктов меню (доступен только после CMenu::Init)
MenuDir | Папка, в которой находится файл содержащий параметры и пункты меню (доступен только после CMenu::Init)
template | Путь к файлу с шаблоном (доступен только после CMenu::Init)

Список методов

Метод | Описание | С версии
CMenu | (конструктор) инициализирует меню заданного типа. |
Init | Ищет рекурсивно меню начиная c папки. |
GetMenuHtml | Возвращает меню трансформированное в HTML. |
GetMenuHtmlEx | Возвращает меню трансформированное в HTML. | 3.3.7

Смотрите также

  • Меню [image] в курсе Разработчик Bitrix Framework


Конструктор CMenu

Главный модуль>Классы>CMenu>Конструктор CMenu (с версии 3.0.16)

CMenu::Конструктор CMenu

CMenu(
 string type = "left"
)

Создает объект класса CMenu. Нестатический метод.

Параметры конструктора

Параметр | Описание
type | Тип меню. Типы меню задаются в настройках модуля "Управление структурой сайта". Необязательный. По умолчанию "left".

Смотрите также

  • Меню
  • CMain::GetMenu

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

<?
$lm = new CMenu("left");
$lm->Init($APPLICATION->GetCurDir(), true);
$lm->template = "/bitrix/templates/demo/left.menu_template.php";
echo $lm->GetMenuHtml();
?>


GetMenuHtml

Главный модуль>Классы>CMenu>GetMenuHtml (с версии 3.0.16)

CMenu::GetMenuHtml

string
CMenu::GetMenuHtml()

Возвращает HTML представляющий из себя меню. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • Меню
  • CMenu::GetMenuHtmlEx
  • CMain::GetMenuHtml
  • CMain::GetMenuHtmlEx

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

<?
$lm = new CMenu("left");
$lm->Init($APPLICATION->GetCurDir(), true);
$lm->template = "/bitrix/templates/demo/left.menu_template.php";
echo $lm->GetMenuHtml();
?>


GetMenuHtmlEx

Главный модуль>Классы>CMenu>GetMenuHtmlEx (с версии 3.3.7)

CMenu::GetMenuHtmlEx

string
CMenu::GetMenuHtmlEx()

Возвращает HTML представляющий из себя меню. В отличие от метода CMenu::GetMenuHtml шаблон меню будет подключаться только один раз. Нестатический метод.

Примечание. В шаблоне меню, используемом методом, в обязательном порядке необходимо инициализировать переменную $sMenu, в которой должен храниться HTML представляющий из себя все меню целиком.

Параметры

Без параметров.

Смотрите также

  • Меню
  • CMenu::GetMenuHtml
  • CMain::GetMenuHtml
  • CMain::GetMenuHtmlEx

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

<?
$lm = new CMenu("left");
$lm->Init($APPLICATION->GetCurDir(), true);
$lm->template = "/bitrix/templates/demo/left.menu_template.php";
echo $lm->GetMenuHtmlEx();
?>


Init

Главный модуль>Классы>CMenu>Init (с версии 3.3.16)

CMenu::Init

Описание и параметры

bool
CMenu::Init(
 string InitDir
 bool MenuExt = false,
 string template = false,
 onlyCurrentDir=false
)

Инициализирует (заполняет пунктами) объект класса CMenu. Возвращает "true" если в каталоге сайта найден файл меню .тип меню.menu.php (поиск идет вверх по иерархии начиная с каталога dir), и "false" в противном случае. Нестатический метод.

Параметры

Параметр | Описание | С версии
InitDir | Папка, начиная с которой, объект будет искать файл .тип меню.menu.php (файл с параметрами и пунктами меню).
MenuExt Если значение - "true", то для формирования массива меню, помимо файлов .тип меню.menu.php будут также подключаться файлы с именами вида .тип меню.menu_ext.php. В которых вы можете манипулировать массивом меню $aMenuLinks произвольно, по вашему усмотрению (например, дополнять пункты меню значениями из инфо-блоков).
Необязателен. По умолчанию - "false". 		3.2.5
template Шаблон для вывода меню.
Необязателен. По умолчанию - "false", что означает искать шаблон меню сначала в файле /bitrix/templates/ID текущего шаблона сайта/тип меню.menu_template.php, затем если шаблон не будет найден, то искать в файле /bitrix/templates/.default/тип меню.menu_template.php. В самом шаблоне меню вам будут доступны следующие предустановленные переменные:
  • $arMENU - копия массива меню
  • $arMENU_LINK - ссылка на текущий массив меню
  • $TEXT - текст текущего пункта меню
  • $LINK - ссылка текущего пункта меню
  • $SELECTED - выбран ли пункт меню в данный момент
  • $PERMISSION - доступ на страницу указанную в $LINK, возможны следующие значения:
    • D - доступ запрещён
    • R - чтение (право просмотра содержимого файла)
    • U - документооборот (право на редактирование файла в режиме документооборота)
    • W - запись (право на прямое редактирование)
    • X - полный доступ (право на прямое редактирование файла и право на изменение прав доступа на данных файл)
  • $ADDITIONAL_LINKS - дополнительные ссылки для подсветки меню
  • $ITEM_TYPE - "D" - директория (если $LINK заканчивается на "/"), иначе "P" - страница
  • $ITEM_INDEX - порядковый номер пункта меню
  • $PARAMS - параметры пунктов меню
При этом в шаблоне для построения меню необходимо будет инициализировать следующие перменные:
  • $sMenuProlog - HTML который будет добавлен перед пунктами меню
  • $sMenuEpilog - HTML который будет добавлен после пунктов меню
  • $sMenuBody - HTML представляющий из себя один пункт меню
  • $sMenu - HTML представляющий из себя все меню целиком (только для метода GetMenuHtmlEx)
3.3.7
$onlyCurrentDir | Если значение - "true", то отключается поиск файла меню в родительских каталогах. | 5.9.0

Смотрите также

  • Меню
  • CMain::GetMenu

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

<?
$lm = new CMenu("left");
$lm->Init($APPLICATION->GetCurDir(), true);
$lm->template = "/bitrix/templates/demo/left.menu_template.php";
echo $lm->GetMenuHtml();
?>


Класс CModule

Описание и свойства класса

CModule - класс для работы с модулями.

Все классы представляющие из себя описание конкретных модулей системы должны наследоваться от класса CModule. Классы описывающие тот или иной модуль должны иметь имя равное ID модуля и их описание должно располагаться в файле /bitrix/modules/ID модуля/install/index.php.

Свойства класса

Параметр | Описание
MODULE_ID | Идентификатор модуля.
MODULE_VERSION | Текущая версия модуля.
MODULE_VERSION_DATE | Дата текущей версии модуля.
MODULE_NAME | Наименование модуля.
MODULE_DESCRIPTION | Описание модуля.
MODULE_GROUP_RIGHTS | Если значение "Y", то модуль поддерживает схему распределения прав настраиваемую как правило в настройках модуля.

Список методов

Метод | Описание | С версии
GetList | Возвращает список установленных модулей системы. |
GetDropDownList | Возвращает выборку из базы для применения в функции SelectBox, предназначенной для вывода HTML выпадающего списка. | 3.0.18
Add | Вставляет идентификатор модуля в таблицу b_module. |
Remove | Удаляет идентификатор модуля из таблицы b_module. |
GetModuleRightList | Возвращает массив описывающий индивидуальную схему распределения прав модуля. |
DoInstall | Запускает процедуру инсталляции модуля. |
DoUninstall | Запускает процедуру деинсталляции модуля. |
IncludeModule | Проверяет установлен ли модуль и если установлен, то подключает его (точнее подключает файл /bitrix/modules/ID модуля/include.php). |
IsInstalled | Проверяет установлен ли модуль. |

См. также

  • Описание концепции модулей
  • Идентификаторы модулей
  • Функции для работы с модулями


Add

Главный модуль>Классы>CModule>Add (с версии 3.0.1)

CModule::Add

CModule::Add()

Вставляет идентификатор модуля в таблицу b_module. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • RegisterModule
  • CModule::Remove

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

<?
$m = new CModule;
$m->MODULE_ID = "iblock";
$m->Add();
?>


DoInstall

Главный модуль>Классы>CModule>DoInstall (с версии 3.0.1)

CModule::DoInstall

CModule::DoInstall()

Запускает процедуру инсталляции модуля. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • RegisterModule

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

<?
// если нажали кнопку "Установить" или "Деинсталлировать" то
if(strlen($uninstall)>0 || strlen($install)>0)
{
    // проверим наличие обязательного файла в каталоге модуля
    if(@file_exists($DOCUMENT_ROOT."/bitrix/modules/".$module_id."/install/index.php"))
    {
        include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$module_id."/install/index.php");
        $obModule = new $module_id;
        if($obModule->IsInstalled() && strlen($uninstall)>0) $obModule->DoUninstall();
        elseif(!$obModule->IsInstalled() && strlen($install)>0) $obModule->DoInstall();
    }
}
?>


DoUninstall

Главный модуль>Классы>CModule>DoUninstall (с версии 3.0.1)

CModule::DoUninstall

CModule::DoUninstall()

Запускает процедуру деинсталляции модуля. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • UnRegisterModule

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

<?
// если нажали кнопку "Установить" или "Деинсталлировать" то
if(strlen($uninstall)>0 || strlen($install)>0)
{
    // проверим наличие обязательного файла в каталоге модуля
    if(@file_exists($DOCUMENT_ROOT."/bitrix/modules/".$module_id."/install/index.php"))
    {
        include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$module_id."/install/index.php");
        $obModule = new $module_id;
        if($obModule->IsInstalled() && strlen($uninstall)>0) $obModule->DoUninstall();
        elseif(!$obModule->IsInstalled() && strlen($install)>0) $obModule->DoInstall();
    }
}
?>


GetDropdownList

Главный модуль>Классы>CModule>GetDropdownList (с версии 3.0.18)

CModule::GetDropdownList

CDBResult
CModule::GetDropdownList(
 string sql = "ORDER BY ID"
)

Возвращает список модулей в виде объекта класса CDBResult для применения в функциях SelectBox или SelectBoxM, выводящих HTML тег <select> (список). Нестатический метод.

Параметры

Параметр | Описание
sql | SQL код который может применяться для задания сортировки выбираемых ID модулей. Необязательный. По умолчанию - сортируем в порядка убывания по полю ID модуля.

Смотрите также

  • CModule::GetList
  • SelectBox
  • SelectBoxM

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

<?
$rs = CModule::GetDropdownList();
echo SelectBoxFromArray("module_id", $rs, $module_id);
?>


GetList

Главный модуль>Классы>CModule>GetList (с версии 3.0.1)

CModule::GetList

CDBResult
CModule::GetList()

Возвращает список модулей в виде объекта класса CDBResult. Статический метод.

Параметры

Без параметров.

Смотрите также

  • CModule::GetDropDownList

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

<?
$rsInstalledModules = CModule::GetList();
while ($ar = $rsInstalledModules->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetModuleRightList

Главный модуль>Классы>CModule>GetModuleRightList (с версии 3.0.1)

CModule::GetModuleRightList

array
CModule::GetModuleRightList()

Возвращает массив описывающий индивидуальную схему распределения прав модуля. Является методом класса описывающего конкретный модуль. Если модуль поддерживает индивидуальную схему распределения прав, то данный метод будет существовать. Возможна ситуация когда модуль поддерживает схему распределения прав (свойство MODULE_GROUP_RIGHTS="Y"), но она не отличается от стандартной и поэтому используется схема по умолчанию, в этом случае массив описывающий схему по умолчанию можно получить с помощью метода CMain::GetDefaultRightList().

Примечание. Для главного модуля, массив описывающий схему распределения прав можно получить с помощью метода CMain::GetMainRightList()

Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • Права доступа
  • CMain::GetUserRight
  • CMain::GetUserRoles

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

<?
// выведем списки прав установленных модулей
$rs = CModule::GetList();
while ($ar = $rs->Fetch()) :
    $MID = $ar["ID"];
    if ($MID!="main") :
        include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$MID."/install/index.php");
        if (class_exists($MID)) :
            $obModule = new $MID;
            if ($obModule->MODULE_GROUP_RIGHTS=="Y") :
                if (method_exists($obModule, "GetModuleRightList"))
                    $arRights = call_user_method("GetModuleRightList",$obModule);
                else
                    $arRights = $APPLICATION->GetDefaultRightList();

                echo $MID.": ".SelectBoxFromArray("RIGHTS_MODULE_".$MID, $arRights, ${"RIGHTS_MODULE_".$MID}, "<по умолчанию>");
            endif;
        endif;
    else:
        $arRights = $APPLICATION->GetMainRightList();
        echo $MID.": ".SelectBoxFromArray("RIGHTS_MODULE_".$MID, $arRights, ${"RIGHTS_MODULE_".$MID}, "<по умолчанию>");
    endif;
endwhile;
?>


IncludeModule

Главный модуль>Классы>CModule>IncludeModule (с версии 3.0.1)

CModule::IncludeModule

bool
CModule::IncludeModule(
 string module_name
)

Проверяет установлен ли модуль и если установлен, то подключает его (точнее подключает файл /bitrix/modules/ID модуля/include.php). Возвращает "true", если модуль установлен, иначе - "false". Статический метод.

Аналог этого модуля в D7 - \Bitrix\Main\Loader::includeModule [image].

Параметры

Параметр | Описание
module_name | Идентификатор модуля.

Смотрите также

  • IsModuleInstalled
  • CModule::IsInstalled
  • Идентификаторы модулей

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

<?
// проверим установлен ли модуль "Информационные блоки" и если да то подключим его
if (CModule::IncludeModule("iblock")):
    // здесь необходимо использовать метода модуля "Информационные блоки"
    ...
endif;
?>


IsInstalled

Главный модуль>Классы>CModule>IsInstalled (с версии 3.0.1)

CModule::IsInstalled

mixed
CModule::IsInstalled()

Определяет установлен ли модуль. Возвращает "true", если модуль установлен и "false" - в противном случае. Нестатический метод.

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

Параметры

Без параметров.

Смотрите также

  • IsModuleInstalled
  • CModule::IncludeModule
  • Идентификаторы модулей

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

<?
// если нажали кнопку "Установить" или "Деинсталлировать" то
if(strlen($uninstall)>0 || strlen($install)>0)
{
    // проверим наличие обязательного файла в каталоге модуля
    if(@file_exists($DOCUMENT_ROOT."/bitrix/modules/".$module_id."/install/index.php"))
    {
        include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/".$module_id."/install/index.php");
        $obModule = new $module_id;
        if($obModule->IsInstalled() && strlen($uninstall)>0) $obModule->DoUninstall();
        elseif(!$obModule->IsInstalled() && strlen($install)>0) $obModule->DoInstall();
    }
}
?>


Remove

Главный модуль>Классы>CModule>Remove (с версии 3.0.1)

CModule::Remove

CModule::Remove()

Удаляет регистрационную запись о модуле из базы данных. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • UnRegisterModule
  • CModule::Add

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

<?
function UnRegisterModule($id)
{
    $m = new CModule;
    $m->MODULE_ID = $id;
    $m->Remove();
    CAllMain::DelGroupRight($id);
}
?>


Класс COption

COption - класс для работы с параметрами модулей, хранимых в базе данных.

Как правило управление параметрами модулей осуществляется в административном интерфейсе в настройках соответствующих модулей.

Методы класса

Метод | Описание | С версии
GetOptionString | Возвращает строковое значение параметра. |
SetOptionString | Устанавливает строковое значение параметра. |
GetOptionInt | Возвращает числовое значение параметра. |
SetOptionInt | Устанавливает числовое значение параметра. |
RemoveOption | Удаляет параметр из базы. |

Смотрите также

  • Параметры модуля
  • Класс CPageOption


GetOptionInt

Главный модуль>Классы>COption>GetOptionInt (с версии 3.0.7)

COption::GetOptionInt

Описание и параметры

int COption::GetOptionInt(
 string module_id,
 string name,
 mixed def = false,
 string site = false
)

Возвращает числовое значение параметра option_id, принадлежащего модулю module_id. Если не установлен параметр site_id то делается попытка найти числовой параметр option_id, принадлежащий модулю module_id для текущего сайта. Если такого параметра нет, возвращается параметр, общий для всех сайтов. Статический метод.

Метод - обёртка над методом GetOptionString.

В новом ядре D7 аналог этой функции - Bitrix\Main\Config\Option::get [image].

Параметры

Параметр | Описание | С версии
module_id | Идентификатор модуля. Длина не более 50 символов. |
name | Идентификатор параметра. Длина не более 50 символов. |
def | Значение по умолчанию. Если default_value не задан, то значение для default_value будет браться из массива с именем ${module_id."_default_option"} заданного в файле /bitrix/modules/module_id/default_option.php. |
site | Идентификатор сайта для которого будут возвращены параметры. Необязательный. По умолчанию - false (для текущего сайта или если не установлены то общие для всех сайтов) | 5.0.6

Смотрите также

  • Параметры модуля
  • Настройки главного модуля
  • COption::GetOptionString

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

<?
// получим поле "Ответственный по умолчанию"
// из настроек модуля "Техподдержка"
$RESPONSIBLE_USER_ID = COption::GetOptionInt("support", "DEFAULT_RESPONSIBLE_ID");
?>


GetOptionString

Главный модуль>Классы>COption>GetOptionString (с версии 3.0.7)

COption::GetOptionString

Описание и параметры

string
COption::GetOptionString(
 string module_id,
 string name,
 mixed def = false,
 string site = false,
 bool ExactSite=false
)

Возвращает строковое значение параметра option_id, принадлежащего модулю module_id. Если не установлен параметр site_id то делается попытка найти числовой параметр option_id, принадлежащий модулю module_id для текущего сайта. Если такого параметра нет, возвращается параметр, общий для всех сайтов. Статический метод.

В новом ядре D7 аналог этой функции - Bitrix\Main\Config\Option::get [image].

Параметры

Параметр | Описание | С версии
module_id | Идентификатор модуля. |
name | Идентификатор параметра. |
def | Значение по умолчанию. Если default_value не задан, то значение для default_value будет браться из массива с именем ${module_id."_default_option"} заданного в файле /bitrix/modules/module_id/default_option.php. |
site | Идентификатор сайта для которого будут возвращены параметры. Необязательный. По умолчанию - false (для текущего сайта или если не установлены то общие для всех сайтов) | 5.0.6
ExactSite | Необязательный. По умолчанию "false". | 10.0.11

Смотрите также

  • Параметры модуля
  • Настройки главного модуля
  • COption::GetOptionInt

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

<?
// получим поле "При регистрации добавлять в группу"
// из настроек главного модуля
$default_group = COption::GetOptionString("main", "new_user_registration_def_group", "2");
if($default_group!="")
    $arrGroups = explode(",",$default_group);
?>


RemoveOption

Главный модуль>Классы>COption>RemoveOption (с версии 3.0.7)

COption::RemoveOption

Описание и параметры

bool
COption::RemoveOption(
 string module_id,
 string name = "",
 string site = false
)

Удаляет значение одного (option_id) или всех параметров модуля module_id из базы. Если не установлен параметр site_id то делается попытка найти числовой параметр option_id, принадлежащий модулю module_id для текущего сайта. Если такого параметра нет, возвращается параметр, общий для всех сайтов. Статический метод.

В новом ядре D7 имеет аналог: \Bitrix\Main\Config\Option::delete [image].

Параметры

Параметр | Описание | С версии
module_id | Идентификатор модуля. |
name | Идентификатор параметра. Необязательный. По умолчанию - "" (удалить все значения параметров модуля). |
site | Идентификатор сайта для которого будут возвращены параметры. Необязательный. По умолчанию - false (для текущего сайта или если не установлены то общие для всех сайтов) | 5.0.6

Смотрите также

  • Параметры модуля
  • Настройки главного модуля

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

<?
// удалим значение параметра "Количество результатов на одной странице"
// для модуля "Веб-формы" из базы
COption::RemoveOption("form", "RESULTS_PAGEN");
?>


SetOptionInt

Главный модуль>Классы>COption>SetOptionInt (с версии 3.0.7)

COption::SetOptionInt

Описание и параметры

bool
COption::SetOptionInt(
 string module_id,
 string name,
 mixed value = "",
 mixed desc = false,
 string site = false
)

Устанавливает числовое значение параметра option_id для модуля module_id. Если указан site_id, параметр установится только для этого сайта и не будет влиять на аналогичный параметр другого сайта. Возвращает "true", если операция прошла успешна, в противном случае - "false". Статический метод.

В новом ядре D7 имеет аналог: \Bitrix\Main\Config\Option::set

Параметры

Параметр | Описание | С версии | Не используется
module_id | Идентификатор модуля. |  |
name | Идентификатор параметра. |  |
value | Значение параметра. Необязательный. По умолчанию - "". |  |
desc | Описание параметра. Необязательный. По умолчанию - "false" (описание отсутствует). |  | 14.0
site | Идентификатор сайта, для которого устанавливается параметр. Необязательный. По умолчанию - false (общий для всех сайтов параметр). | 5.0.6 |

Смотрите также

  • Параметры модуля
  • Настройки главного модуля
  • COption::SetOptionString

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

<?
// установим значение для поля
// "Количество дополнительных параметров меню"
// из настроек модуля "Управление структурой сайта"
COption::SetOptionInt("fileman", "num_menu_param", 2);
?>


SetOptionString

Главный модуль>Классы>COption>SetOptionString (с версии 3.0.7)

COption::SetOptionString

Описание и параметры

bool COption::SetOptionString(
 string module_id,
 string name,
 string value = "",
 mixed desc = false,
 string site = ""
)

Устанавливает строковое значение параметра option_id для модуля module_id. Если указан site_id, параметр установится только для этого сайта и не будет влиять на аналогичный параметр другого сайта. Возвращает true, если операция прошла успешна, в противном случае - false. Статический метод.

В новом ярде D7 имеет аналог: \Bitrix\Main\Config\Option::set

Параметры

Параметр | Описание | С версии | Не используется
module_id | Идентификатор модуля. Длина не более 50 символов. |  |
name | Идентификатор параметра. Длина не более 50 символов. |  |
value | Значение параметра. Необязательный. По умолчанию - "". Максимальная сохраняемая длина значения - 2000 символов. |  |
desc | Описание параметра. Необязательный. По умолчанию - "false" (описание отсутствует). |  | 14.0.0
site | Идентификатор сайта, для которого устанавливается параметр. Необязательный. Если установлен false, то будет текущий сайт (с 14.0). | 5.0.6 |

Смотрите также

  • Параметры модуля
  • Настройки главного модуля
  • COption::SetOptionInt

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

<?
// установим значение для поля
// "E-Mail администратора сайта (отправитель по умолчанию)"
// из настроек главного модуля
COption::SetOptionString("main","email_from","admin@site.com");
?>


Класс CPageCache

CPageCache - класс для кеширования HTML результата выполнения скрипта.

Методы класса

Метод | Описание | С версии
StartDataCache | Инициализирует механизм кеширования и начинает буферизацию или выводит содержимое из кеша. |
EndDataCache | Сохраняет буферизированный HTML в файле кеша. |
InitCache | Инициализирует механизм кеширования. | 3.2.7
Output | Выводит сохраненный в кеше HTML результат. | 3.2.7
IsCacheExpired | Проверяет истек ли период жизни кеша. | 3.3.7

Смотрите также

  • Кеширование
  • Класс CPHPCache
  • Специальный параметры


EndDataCache

Главный модуль>Классы>CPageCache>EndDataCache (с версии 3.1.8)

CPageCache::EndDataCache

CPageCache::EndDataCache()

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

Параметры

Без параметров.

Смотрите также

  • Кеширование
  • CPageCache::StartDataCache

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

<?
// создаем объект
$obCache = new CPageCache;

// время кеширования - 30 минут
$life_time = 30*60;

// формируем идентификатор кеша в зависимости от всех параметров
// которые могут повлиять на результирующий HTML
$cache_id = $ELEMENT_ID.$IBLOCK_TYPE.$USER->GetUserGroupString();

// инициализируем буферизирование вывода
if($obCache->StartDataCache($life_time, $cache_id, "/")):
    // выбираем из базы параметры элемента инфо-блока
    if($arIBlockElement = GetIBlockElement($ELEMENT_ID, $IBLOCK_TYPE)):
        echo "<pre>"; print_r($arIBlockElement); echo "</pre>";
    endif;
    // записываем буферизированный результат на диск в файл кеша
    $obCache->EndDataCache();
endif;
?>


InitCache

Главный модуль>Классы>CPageCache>InitCache (с версии 3.2.7)

CPageCache::InitCache

bool
CPageCache::InitCache(
 int TTL,
 string uniq_str,
 mixed initdir = false,
 string basedir = "cache"
)

Инициализирует ряд свойств объекта класса CPageCache. Если файл кеша отсутствует или истек период его жизни, то метод вернет "false", в противном случае метод вернет "true". Нестатический метод.

Параметры

Параметр | Описание | С версии
TTL | Время жизни кеша в секундах. |
uniq_str | Уникальный идентификатор кеша. В этот идентификатор должны входить все параметры которые могут повлиять на результат исполнения кешируемого кода. |
initdir | Папка, в которой хранится кеш компонента, относительно /bitrix/cache/. Если значение - "/", то кеш будет действительным для всех каталогов сайта. Необязательный. По умолчанию - текущий каталог. | 3.2.9
basedir | Базовая директория кеша. По умолчанию равен cache, то есть все сохраняется в /BX_PERSONAL_ROOT/cache/, где BX_PERSONAL_ROOT по умолчанию равен bitrix. | 5.1.2

Смотрите также

  • Кеширование
  • CPageCache::Output
  • CDBResult::NavStringForCache


IsCacheExpired

Главный модуль>Классы>CPageCache>IsCacheExpired (с версии 3.3.7)

CPageCache::IsCacheExpired

bool
CPageCache::IsCacheExpired(
 string path
)

Проверяет не истек ли период жизни кеша. Метод как правило используется для удаления файлов кеша, период жизни которых истек. Нестатический метод.

Примечание. Файл кеша создаваемый методами класса CPageCache имеет расширение ".html"

Параметры

Параметр | Описание
path | Полный путь к файлу кеша.

Смотрите также

  • Кеширование
  • CPageCache::InitCache
  • BXClearCache

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

<?
$path = $_SERVER["DOCUMENT_ROOT"]."/bitrix/cache/";
if($handle = @opendir($path))
{
    while(($file=readdir($handle))!==false)
    {
        if($file == "." || $file == "..") continue;
        if(!is_dir($path."/".$file))
        {
            if(substr($file, -5)==".html")
                $expired = CPageCache::IsCacheExpired($path."/".$file);
            elseif(substr($file, -4)==".php")
                $expired = CPHPCache::IsCacheExpired($path."/".$file);
        }
    }
}
?>


Output

Главный модуль>Классы>CPageCache>Output (с версии 3.2.7)

CPageCache::Output

CPageCache::Output()

Выводит содержимое кеша. HTML-содержимое кэша доступно, только если файл кеша существует и предварительно был вызван метод CPageCache::InitCache или CPageCache::StartDataCache. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • Кеширование
  • CPageCache::InitCache
  • CPageCache::StartDataCache


StartDataCache

Главный модуль>Классы>CPageCache>StartDataCache (с версии 3.1.8)

CPageCache::StartDataCache

Описание и параметры

bool
CPageCache::StartDataCache(
 int TTL,
 string uniq_str,
 mixed initdir = false,
 string basedir = "cache"
)

Начинает буферизацию выводимого HTML, либо выводит содержимое кеша если он ещё не истек. Если файл кеша истек, то метод возвращает "true", в противном случае - "false". Нестатический метод.

Параметры

Параметр | Описание | С версии
TTL | Время жизни кеша в секундах. |
uniq_str | Уникальный идентификатор кеша. В этот идентификатор должны входить все параметры которые могут повлиять на результат исполнения кэшируемого кода. |
initdir | Папка, в которой хранится кеш компонента, относительно /bitrix/cache/. Если значение - "/", то кеш будет действительным для всех каталогов сайта. Необязательный. По умолчанию - текущий каталог. | 3.3.0
basedir | Базовая директория кеша. По умолчанию равен cache, то есть все сохраняется в /BX_PERSONAL_ROOT/cache/, где BX_PERSONAL_ROOT по умолчанию равен bitrix. | 5.1.2

Смотрите также

  • Кеширование
  • CPageCache::EndDataCache
  • CDBResult::NavStringForCache

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

<?
// создаем объект
$obCache = new CPageCache;

// время кеширования - 30 минут
$life_time = 30*60;

// формируем идентификатор кеша в зависимости от всех параметров
// которые могут повлиять на результирующий HTML
$cache_id = $ELEMENT_ID.$IBLOCK_TYPE.$USER->GetUserGroupString();

// инициализируем буферизирование вывода
if($obCache->StartDataCache($life_time, $cache_id, "/")):
    // выбираем из базы параметры элемента инфо-блока
    if($arIBlockElement = GetIBlockElement($ELEMENT_ID, $IBLOCK_TYPE)):
        echo "<pre>"; print_r($arIBlockElement); echo "</pre>";
    endif;
    // записываем предварительно буферизированный вывод в файл кеша
    $obCache->EndDataCache();
endif;
?>


Класс CPageOption

CPageOption - класс для работы с параметрами страницы [image].

Методы класса

Метод | Описание | С версии
GetOptionString | Возвращает строковое значение параметра страницы. |
SetOptionString | Устанавливает строковое значение параметра страницы. |
GetOptionInt | Возвращает числовое значение параметра страницы. |
SetOptionInt | Устанавливает числовое значение параметра страницы. |
RemoveOption | Удаляет параметр страницы. |

Смотрите также

  • Параметры страницы
  • Класс COption


GetOptionInt

Главный модуль>Классы>CPageOption>GetOptionInt

CPageOption::GetOptionInt

Описание и параметры

int
CPageOption::GetOptionInt(
 string module_id,
 string name,
 mixed def = false,
 string site=false
)

Возвращает числовое значение параметра page_option_id, принадлежащего модулю module_id. Статический метод.

Параметры

Параметр | Описание | С версии
module_id | Идентификатор модуля. |
name | Произвольный идентификатор параметра страницы. |
def | Значение по умолчанию. |
site | Идентификатор сайта. Значение по умолчанию - "false". | 5.0.6

Смотрите также

  • Параметры страницы
  • CPageOption::GetOptionString

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

<?
$my_parameter = CPageOption::GetOptionInt("main", "MY_PARAMETER", 21);
?>


GetOptionString

Главный модуль>Классы>CPageOption>GetOptionString (с версии 3.3.6)

CPageOption::GetOptionString

Описание и параметры

string
CPageOption::GetOptionString(
 string module_id,
 string name,
 mixed def = false,
 string site=false
)

Возвращает строковое значение параметра page_option_id, принадлежащего модулю module_id. Статический метод.

Параметры

Параметр | Описание | С версии
module_id | Идентификатор модуля. |
page_option_id | Произвольный идентификатор параметра страницы. |
default_value | Значение по умолчанию. |
site | Идентификатор сайта. Значение по умолчанию - "false". | 5.0.6

Смотрите также

  • Параметры страницы
  • CPageOption::GetOptionInt

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

<?
$my_parameter = CPageOption::GetOptionString("main", "MY_PARAMETER", "Y");
?>


RemoveOption

Главный модуль>Классы>CPageOption>RemoveOption (с версии 3.3.6)

CPageOption::RemoveOption

Описание и параметры

bool
CPageOption::RemoveOption(
 string module_id,
 string name = "",
 string site=false
)

Удаляет значение одного (page_option_id) или всех параметров модуля module_id для данной страницы. Статический метод.

Параметры

Параметр | Описание | С версии
module_id | Идентификатор модуля. |
page_option_id | Произвольный идентификатор параметра страницы. Необязательный. По умолчанию - "" (удалить все значения параметров страницы для модуля module_id). |
site | Идентификатор сайта. Значение по умолчанию - "false". | 5.0.6

Смотрите также

  • Параметры страницы

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

<?
// удалим значение параметра MY_PARAMETER для текущей страницы
CPageOption::RemoveOption("main", "MY_PARAMETER");
?>


SetOptionInt

Главный модуль>Классы>CPageOption>SetOptionInt

CPageOption::SetOptionInt

Описание и параметры

bool
CPageOption::SetOptionInt(
 string module_id,
 string name,
 mixed value = "",
 desc="",
 string site=false
)

Устанавливает числовое значение параметра page_option_id для модуля module_id. Возвращает "true", если операция прошла успешна, в противном случае - "false". Статический метод.

Параметры

Параметр | Описание | С версии
module_id | Идентификатор модуля. |
name | Произвольный идентификатор параметра страницы. |
value | Значение параметра. Необязательный. По умолчанию - "". |
desc |  |
site | Идентификатор сайта. Значение по умолчанию - "false". | 5.0.6

Смотрите также

  • Параметры страницы
  • CPageOption::SetOptionString

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

<?
CPageOption::SetOptionInt("main", "MY_PARAMETER", 2);
?>


SetOptionString

Главный модуль>Классы>CPageOption>SetOptionString (с версии 3.3.6)

CPageOption::SetOptionString

Описание и параметры

bool
CPageOption::SetOptionString(
 string module_id,
 string name,
 string value = "",
 desc=false
)

Устанавливает строковое значение параметра page_option_id для модуля module_id. Возвращает "true", если операция прошла успешна, в противном случае - "false". Нестатический метод.

Параметры

Параметр | Описание | С версии
module_id | Идентификатор модуля. |
page_option_id | Произвольный идентификатор параметра страницы. |
value | Значение параметра. Необязательный. По умолчанию - "". |
desc | Необязательный. Значение по умолчанию - "false". |
site | Идентификатор сайта. Значение по умолчанию - "false". | 5.0.6

Смотрите также

  • Параметры страницы
  • CPageOption::SetOptionInt

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

<?
// Пример запрещает сохранение в сессии номера последней страницы
// при стандартной постраничной навигации.
// По умолчанию в сессии запоминается последняя открытая страница постраничной навигации.
// Если вы хотите изменить такое поведение для данной текущей страницы,
// то до вызова метода CDBResult::NavPrint необходимо воспользоваться следующим кодом:
CPageOption::SetOptionString("main", "nav_page_in_session", "N");

// Для того чтобы вернуть режим по умолчанию:
CPageOption::SetOptionString("main", "nav_page_in_session", "Y");
?>


Класс CPhpCache

CPhpCache - класс для кеширования PHP переменных и HTML результата выполнения скрипта.

Методы класса

Метод | Описание | С версии
StartDataCache | Инициализирует механизм кеширования и начинает буферизацию или выводит содержимое из кеша. |
EndDataCache | Сохраняет буферизированный HTML и PHP переменные файле кеша. |
InitCache | Инициализирует механизм кеширования. |
GetVars | Возвращает сохраненные в кеше PHP переменные. |
Output | Выводит сохраненный в кеше HTML результат. |
IsCacheExpired | Проверяет истек ли период жизни кэша. | 3.3.7
CleanDir | Метод очищает кеш по параметру basedir. | 8.5.1
AbortDataCache | Отменяет создание текущего кэша. | 5.1.8

Смотрите также

  • Кеширование
  • Класс CPageCache
  • Специальные параметры

    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008-2022 1С-Битрикс: Управление сайтом


CleanDir

Главный модуль>Классы>CPHPCache>CleanDir (с версии 8.5.1)

CPHPCache::CleanDir

CPHPCache::CleanDir(
 $initdir = false,
 $basedir = "cache"
);

Метод очищает кеш по параметру basedir. Она подходит для сброса memcached-данных. Нестатический метод.

Параметры

Параметр | Описание
initdir | По умолчанию false
basedir | Базовая директория кеша. По умолчанию равен cache, то есть все сохраняется в /BX_PERSONAL_ROOT/cache/, где BX_PERSONAL_ROOT по умолчанию равен bitrix.

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

$obCache = new CPHPCache(); ... $obCache->CleanDir();


EndDataCache

Главный модуль>Классы>CPHPCache>EndDataCache (с версии 3.2.7)

CPHPCache::EndDataCache

Описание и параметры

CPHPCache::EndDataCache(
 mixed vars = false
)

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

В новом ядре имеет аналог: Bitrix\Main\Data\Cache::endDataCache .

Параметры

Параметр Описание
vars Массив переменных, значения которых необходимо записать в файл кэша, вида:
array(
 "ИМЯ ПЕРЕМЕННОЙ 1" => "ЗНАЧЕНИЕ ПЕРЕМЕННОЙ 1",
 "ИМЯ ПЕРЕМЕННОЙ 2" => "ЗНАЧЕНИЕ ПЕРЕМЕННОЙ 2",
 ...)
Необязательный. По умолчанию - массив переменных предварительно заданный в методе CPHPCache::StartDataCache.

Смотрите также

  • Кеширование
  • CPHPCache::StartDataCache

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

<?
// создаем объект
$obCache = new CPHPCache;

// время кеширования - 30 минут
$life_time = 30*60;

// формируем идентификатор кеша в зависимости от всех параметров
// которые могут повлиять на результирующий HTML
$cache_id = $ELEMENT_ID.$SECTION_ID.$USER->GetUserGroupString();

// если кэш есть и он ещё не истек то
if($obCache->InitCache($life_time, $cache_id, "/")) :
    // получаем закешированные переменные
    $vars = $obCache->GetVars();
    $SECTION_TITLE = $vars["SECTION_TITLE"];
else :
    // иначе обращаемся к базе
    $arSection = GetIBlockSection($SECTION_ID);
    $SECTION_TITLE = $arSection["NAME"];
endif;

// добавляем пункт меню в навигационную цепочку
$APPLICATION->AddChainItem($SECTION_TITLE, $SECTION_URL."SECTION_ID=".$SECTION_ID);

// начинаем буферизирование вывода
if($obCache->StartDataCache()):

    // выбираем из базы параметры элемента инфо-блока
    if($arIBlockElement = GetIBlockElement($ELEMENT_ID, $IBLOCK_TYPE)):
        echo "<pre>"; print_r($arIBlockElement); echo "</pre>";
    endif;

    // записываем предварительно буферизированный вывод в файл кеша
    // вместе с дополнительной переменной
    $obCache->EndDataCache(array(
        "SECTION_TITLE"    => $SECTION_TITLE
        ));
endif;
?>


GetVars

Главный модуль>Классы>CPHPCache>GetVars

CPHPCache::GetVars

array
CPHPCache::GetVars()

Возвращает PHP переменные сохраненные в кеше. Нестатический метод.

В новом ядре имеет аналог: Bitrix\Main\Data\Cache::getVars.

Параметры

Без параметров.

Смотрите также

  • Кеширование
  • CPHPCache::InitCache
  • CPHPCache::StartDataCache

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

<?
// создаем объект
$obCache = new CPHPCache;

// время кеширования - 30 минут
$life_time = 30*60;

// формируем идентификатор кеша в зависимости от всех параметров
// которые могут повлиять на результирующий HTML
$cache_id = $ELEMENT_ID.$SECTION_ID.$USER->GetUserGroupString();

// если кэш есть и он ещё не истек то
if($obCache->InitCache($life_time, $cache_id, "/")) :
    // получаем закешированные переменные
    $vars = $obCache->GetVars();
    $SECTION_TITLE = $vars["SECTION_TITLE"];
else :
    // иначе обращаемся к базе
    $arSection = GetIBlockSection($SECTION_ID);
    $SECTION_TITLE = $arSection["NAME"];
endif;

// добавляем пункт меню в навигационную цепочку
$APPLICATION->AddChainItem($SECTION_TITLE, $SECTION_URL."SECTION_ID=".$SECTION_ID);

// начинаем буферизирование вывода
if($obCache->StartDataCache()):

    // выбираем из базы параметры элемента инфо-блока
    if($arIBlockElement = GetIBlockElement($ELEMENT_ID, $IBLOCK_TYPE)):
        echo "<pre>"; print_r($arIBlockElement); echo "</pre>";
    endif;

    // записываем предварительно буферизированный вывод в файл кэша
    // вместе с дополнительной переменной
    $obCache->EndDataCache(array(
        "SECTION_TITLE"    => $SECTION_TITLE
        ));
endif;
?>


InitCache

Главный модуль>Классы>CPHPCache>InitCache (с версии 3.2.7)

CPHPCache::InitCache

Описание и параметры

bool
CPHPCache::InitCache(
 int TTL,
 string uniq_str,
 mixed initdir = false,
 string basedir = "cache"
)

Инициализирует ряд свойств объекта класса CPHPCache. Если файл кеша отсутствует или истек период его жизни, то метод вернет "false", в противном случае метод вернет "true". Нестатический метод.

В новом ядре имеет аналог: Bitrix\Main\Data\Cache::initCache.

Параметры

Параметр | Описание | С версии
TTL | Время жизни кеша в секундах. |
uniq_str | Уникальный идентификатор кеша. В этот идентификатор должны входить все параметры которые могут повлиять на результат исполнения кешируемого кода. |
initdir | Папка, в которой хранится кеш компонента, относительно /bitrix/cache/. Если значение - "/", то кеш будет действительным для всех каталогов сайта. Необязательный. По умолчанию - текущий каталог. | 3.2.9
basedir | Базовая директория кеша. По умолчанию равен cache, то есть все сохраняется в /BX_PERSONAL_ROOT/cache/, где BX_PERSONAL_ROOT по умолчанию равен bitrix. | 5.1.2

Смотрите также

  • Кеширование
  • CPHPCache::Output
  • CDBResult::NavStringForCache

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

<?
// создаем объект
$obCache = new CPHPCache;

// время кеширования - 30 минут
$life_time = 30*60;

// формируем идентификатор кеша в зависимости от всех параметров
// которые могут повлиять на результирующий HTML
$cache_id = $ELEMENT_ID.$SECTION_ID.$USER->GetUserGroupString();

// если кеш есть и он ещё не истек то
if($obCache->InitCache($life_time, $cache_id, "/")) :
    // получаем закешированные переменные
    $vars = $obCache->GetVars();
    $SECTION_TITLE = $vars["SECTION_TITLE"];
else :
    // иначе обращаемся к базе
    $arSection = GetIBlockSection($SECTION_ID);
    $SECTION_TITLE = $arSection["NAME"];
endif;

// добавляем пункт меню в навигационную цепочку
$APPLICATION->AddChainItem($SECTION_TITLE, $SECTION_URL."SECTION_ID=".$SECTION_ID);

// начинаем буферизирование вывода
if($obCache->StartDataCache()):

    // выбираем из базы параметры элемента инфо-блока
    if($arIBlockElement = GetIBlockElement($ELEMENT_ID, $IBLOCK_TYPE)):
        echo "<pre>"; print_r($arIBlockElement); echo "</pre>";
    endif;

    // записываем предварительно буферизированный вывод в файл кеша
    // вместе с дополнительной переменной
    $obCache->EndDataCache(array(
        "SECTION_TITLE"    => $SECTION_TITLE
        ));
endif;
?>


IsCacheExpired

Главный модуль>Классы>CPHPCache>IsCacheExpired (с версии 3.3.7)

CPHPCache::IsCacheExpired

bool
CPHPCache::IsCacheExpired(
 string path
)

Проверяет не истек ли период жизни кеша. Метод как правило используется для удаления файлов кеша, период жизни которых истек. Нестатический метод.

Примечание. Файл кеша создаваемый методами класса CPHPCache имеет расширение ".php"

Параметры

Параметр | Описание
path | Полный путь к файлу кеша.

Смотрите также

  • Кеширование
  • CPHPCache::InitCache
  • BXClearCache

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

<?
$path = $_SERVER["DOCUMENT_ROOT"]."/bitrix/cache/";
if($handle = @opendir($path))
{
    while(($file=readdir($handle))!==false)
    {
        if($file == "." || $file == "..") continue;
        if(!is_dir($path."/".$file))
        {
            if(substr($file, -5)==".html")
                $expired = CPageCache::IsCacheExpired($path."/".$file);
            elseif(substr($file, -4)==".php")
                $expired = CPHPCache::IsCacheExpired($path."/".$file);
        }
    }
}
?>


Output

Главный модуль>Классы>CPHPCache>Output (с версии 3.2.7)

CPHPCache::Output

CPHPCache::Output()

Выводит HTML содержимое кеша. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • Кеширование
  • CPHPCache::InitCache
  • CPHPCache::StartDataCache

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

<?
// создаем объект
$obCache = new CPHPCache;

// время кеширования - 30 минут
$life_time = 30*60;

// формируем идентификатор кеша в зависимости от всех параметров
// которые могут повлиять на результирующий HTML
$cache_id = $ELEMENT_ID.$SECTION_ID.$USER->GetUserGroupString();

// если кеш есть и он ещё не истек то
if($obCache->InitCache($life_time, $cache_id, "/") :

    // получаем закешированные переменные
    $vars = $obCache->GetVars();
    $SECTION_TITLE = $vars["SECTION_TITLE"];

    // добавляем пункт меню в навигационную цепочку
    $APPLICATION->AddChainItem($SECTION_TITLE, $SECTION_URL."SECTION_ID=".$SECTION_ID);

    // выводим на экран содержимое кеша
    $obCache->Output();

else :

    // иначе обращаемся к базе
    $arSection = GetIBlockSection($SECTION_ID);
    $SECTION_TITLE = $arSection["NAME"];

    // добавляем пункт меню в навигационную цепочку
    $APPLICATION->AddChainItem($SECTION_TITLE, $SECTION_URL."SECTION_ID=".$SECTION_ID);

    // начинаем буферизирование вывода
    if($obCache->StartDataCache()):

        // выбираем из базы параметры элемента инфо-блока
        if($arIBlockElement = GetIBlockElement($ELEMENT_ID, $IBLOCK_TYPE)):
            echo "<pre>"; print_r($arIBlockElement); echo "</pre>";
        endif;

        // записываем предварительно буферизированный вывод в файл кеша
        // вместе с дополнительной переменной
        $obCache->EndDataCache(array(
            "SECTION_TITLE"        => $SECTION_TITLE
            ));
    endif;
endif;
?>


StartDataCache

Главный модуль>Классы>CPHPCache>StartDataCache (с версии 3.2.7)

CPHPCache::StartDataCache

Описание и параметры

bool
CPHPCache::StartDataCache(
 int TTL = false,
 string uniq_str = false,
 mixed initdir = false,
 array vars = array(),
 string basedir = "cache"
)

Начинает буферизацию выводимого HTML, либо выводит содержимое кеша если он ещё не истек. Если файл кеша истек, то метод возвращает "true", в противном случае - "false". Нестатический метод.

В новом ядре имеет аналог: Bitrix\Main\Data\Cache::startDataCache.

Параметры

Параметр | Описание | С версии
TTL Время жизни кеша в секундах.
Необязательный. По умолчанию - время жизни кеша предварительно заданное в методе InitCache.
uniq_str Уникальный идентификатор кеша. В этот идентификатор должны входить все параметры которые могут повлиять на результат исполнения кешируемого кода.
Необязательный. По умолчанию - уникальный идентификатор кеша предварительно заданный в методе CPHPCache::InitCache.
initdir Папка, в которой хранится кеш компонента, относительно /bitrix/cache/. Если значение - "/", то кеш будет действительным для всех каталогов сайта.
Необязательный. По умолчанию - имя каталога предварительно заданное в методе CPHPCache::InitCache. 		3.2.9
vars Массив переменных, которые необходимо закешировать, вида:
array(
 "ИМЯ ПЕРЕМЕННОЙ 1" => "ЗНАЧЕНИЕ ПЕРЕМЕННОЙ 1",
 "ИМЯ ПЕРЕМЕННОЙ 2" => "ЗНАЧЕНИЕ ПЕРЕМЕННОЙ 2",
 ...)
Непосредственно запись переменных в файл кеша осуществляется методом CPHPCache::EndDataCache.
Необязательный. По умолчанию - пустой массив.
basedir | Базовая директория кеша. По умолчанию равен cache, то есть все сохраняется в /BX_PERSONAL_ROOT/cache/, где BX_PERSONAL_ROOT по умолчанию равен bitrix. | 5.1.2

Смотрите также

  • Кеширование
  • CPHPCache::EndDataCache
  • CDBResult::NavStringForCache

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

<?
// создаем объект
$obCache = new CPHPCache;

// время кеширования - 30 минут
$life_time = 30*60;

// формируем идентификатор кеша в зависимости от всех параметров
// которые могут повлиять на результирующий HTML
$cache_id = $ELEMENT_ID.$SECTION_ID.$USER->GetUserGroupString();

// если кеш есть и он ещё не истек, то
if($obCache->InitCache($life_time, $cache_id, "/") :
    // получаем закешированные переменные
    $vars = $obCache->GetVars();
    $SECTION_TITLE = $vars["SECTION_TITLE"];
else :
    // иначе обращаемся к базе
    $arSection = GetIBlockSection($SECTION_ID);
    $SECTION_TITLE = $arSection["NAME"];
endif;

// добавляем пункт меню в навигационную цепочку
$APPLICATION->AddChainItem($SECTION_TITLE, $SECTION_URL."SECTION_ID=".$SECTION_ID);

// начинаем буферизирование вывода
if($obCache->StartDataCache()):

    // выбираем из базы параметры элемента инфо-блока
    if($arIBlockElement = GetIBlockElement($ELEMENT_ID, $IBLOCK_TYPE)):
        echo "<pre>"; print_r($arIBlockElement); echo "</pre>";
    endif;

    // записываем предварительно буферизированный вывод в файл кеша
    // вместе с дополнительной переменной
    $obCache->EndDataCache(array(
        "SECTION_TITLE"    => $SECTION_TITLE
        ));
endif;
?>


Класс CRatings

CRatings - класс для работы с рейтингами.

Рейтинг - это оценка , которая применяется к определенному объекту и состоит из множества критериев, например, "голосование за сообщение пользователя" или "активность на форуме".

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

Методы класса

Метод | Описание | С версии
Add | Добавляет новый рейтинг. | 9.5.0
AddComponentResults | Обновляет дату следующего подсчета критерия рейтингования. | 9.5.0
AddRatingVote | Добавляет голос в рейтинговое голосование. | 9.5.0
Calculate | Рассчитывает данные критериев рейтингования и создает результаты рейтинга. | 9.5.0
Delete | Удаляет рейтинг. | 9.5.0
GetList | Возвращает список рейтингов по фильтру. | 9.5.0
GetByID | Возвращает параметры рейтинга по идентификатору. | 9.5.0
GetArrayByID | Возвращает параметры рейтинга по идентификатору (массив). | 9.5.2
GetRatingObjects | Возвращает список доступных объектов рейтинговая. | 9.5.0
GetRatingConfigs | Возвращает список доступных критериев рейтингования и их настройки. | 9.5.0
GetRatingResult | Возвращает результаты рейтинга. | 9.5.0
GetRatingVoteResult | Возвращает результаты рейтингового голосования. | 9.5.0
Update | Изменяет рейтинг. | 9.5.0

Примеры

Отменить лайк в блоге.

$arFields = [
"USER_ID" => $userId,
"ENTITY_TYPE_ID" => "BLOG_POST",
"ENTITY_ID" => $postId,
];

$result = CRatings::CancelRatingVote($arFields);


Add

Главный модуль>Классы>CRatings>Add (с версии 9.5.0)

CRatings::Add

Описание и параметры

int
CRatings::Add(
 array fields,
);

Метод добавляет новый рейтинг. Нестатический метод.

Параметры метода

Параметр Описание
fields Массив значений параметров. В качестве ключей данного массива допустимо использовать:
  • NAME – название рейтинга
  • ACTIVE – активность рейтинга (Y|N)
  • ENTITY_ID – оцениваемый объект (например: USER, BLOG, и т.д.)
  • CALCULATION_METHOD – тип подсчета рейтинга (SUM -суммирование критериев, AVG – средние значение критериев)
  • CONFIGS – массив, описывающий критерии рейтингования.
Все поля являются обязательными.

Смотрите также

  • Метод CRating::Update

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

<?
// создадим рейтинг с критериями рейтингования от модуля форум и блог
// учитывать будем только рейтинговые голосования, активность учитывать не будем
$arConfig = array();
$arConfig['FORUM'] = array(
    'VOTE' => array(
        'TOPIC' => array(
            'ACTIVE' => 'Y',
            'COEFFICIENT' => '1',
        ),
        'POST' => array(
            'ACTIVE' => 'Y',
            'COEFFICIENT' => '1',
        ),
    ),
    'RATING' => array(
        'ACTIVITY' => array(
            'ACTIVE' => 'N',
            'TODAY_TOPIC_COEF' => '20',
            'WEEK_TOPIC_COEF' => '10',
            'MONTH_TOPIC_COEF' => '5',
            'TODAY_POST_COEF' => '0.4',
            'WEEK_POST_COEF' => '0.2',
            'MONTH_POST_COEF' => '0.1',
        ),
    ),
);
$arConfig['BLOG'] = array(
'VOTE' => array(
        'POST' => array(
            'ACTIVE' => 'Y',
            'COEFFICIENT' => '1',
        ),
        'COMMENT' => array(
            'ACTIVE' => 'Y',
            'COEFFICIENT' => '1',
        ),
    ),
    'RATING' => array(
        'ACTIVITY' => array(
            'ACTIVE' => 'N',
            'TODAY_POST_COEF' => '20',
            'WEEK_POST_COEF' => '10',
            'MONTH_POST_COEF' => '5',
            'TODAY_COMMENT_COEF' => '0.4',
            'WEEK_COMMENT_COEF' => '0.2',
            'MONTH_COMMENT_COEF' => '0.1',
        ),
    ),
);

$arAddRating = array(
    'ACTIVE' => 'Y',
    'NAME' => 'Рейтинг созданный через API',
    'ENTITY_ID' => 'USER',
    'CALCULATION_METHOD' => 'SUM',
    'CONFIGS' => $arConfig
);
$ratingId = CRatings::Add($arAddRating);
if (intval($ratingId) > 0)
    echo "Рейтинг успешно добавлен.";
?>


AddComponentResults

Главный модуль>Классы>CRatings>AddComponentResults (с версии 9.5.0)

CRatings::AddComponentResults

bool
CRatings::AddComponentResults(
 array fields
);

Обновляет дату следующего подсчета критерия рейтингования. Нестатический метод.

Параметры метода

Параметр Описание
fields Массив значений параметров. В качестве ключей данного массива допустимо использовать:
  • RATING_ID – идентификатор рейтинга
  • COMPLEX_NAME – комплексное имя критерия
  • REFRESH_INTERVAL – периодичность перерасчета критерия (в минутах)
Все поля являются обязательными.

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

<?
// обновляем дату следующего расчета критерия рейтингования
$arConfigs = array(
    "RATING_ID" => "4",
    "COMPLEX_NAME" => "USER_FORUM_VOTE_TOPIC",
    "REFRESH_INTERVAL" => 3600
);
CRatings::AddComponentResults($arConfigs);
?>


AddRatingVote

Главный модуль>Классы>CRatings>AddRatingVote (с версии 9.5.0)

CRatings::AddRatingVote

bool
CRatings::AddRatingVote(
 array Param
);

Метод добавляет голос к рейтинговому голосованию. Нестатический метод.

Параметры метода

Параметр Описание
Param Массив значений параметров. В качестве ключей данного массива допустимо использовать:
  • ENTITY_TYPE_ID – объект голосования. Например: FORUM_TOPIC для тем форума, FORUM_POST для сообщений форума, BLOG_POST для постов в блоге, BLOG_COMMENT для комментариев в блоге. Сам список кодов не регламентирован, можно использовать любой удобный.
  • ENTITY_ID – идентификатор объекта голосования
  • VALUE – выставленная оценка
  • USER_ID – идентификатор пользователя
  • USER_IP – IP-адрес пользователя
Все поля являются обязательными.

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

<?
// добавляем теме отрицательную оценку.
$arAddVote = array(
    "ENTITY_TYPE_ID"  =>  "FORUM_TOPIC",
    "ENTITY_ID"       =>  38,
    "VALUE"           =>  -1,
    "USER_ID"         =>  1,
     "USER_IP"         =>  '127.0.0.1',
);
CRatings::AddRatingVote($arAddVote);
?>


Calculate

Главный модуль>Классы>CRatings>Calculate (с версии 9.5.0)

CRatings::Calculate

string
CRatings::Calculate(
 int id,
 bool forceRecalc
);

Метод подсчитывает результаты рейтинга с идентификатором id. Нестатический метод.

Параметры метода

Параметр | Описание
id | Идентификатор рейтинга
forceRecalc | Принудительный пересчет. Если данный параметр установлен в true, то критерии рейтинга будут пересчитаны без учета времени следующего запуска.

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

<?
// принудительно пересчитаем все критерии рейтинга
$ID = 4;
$bforceRecalc = true;
CRatings::Calculate($ID, $bforceRecalc);
?>


Delete

Главный модуль>Классы>CRatings>Delete (с версии 9.5.0)

CRatings::Delete

bool
CRatings::Delete(
 int id
);

Метод удаляет рейтинг с идентификатором ID. Нестатический метод.

Параметры метода

Параметр | Описание
id | Идентификатор рейтинга

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

<?
// удаление рейтинга
$ID = 1;
$result = CRatings::Delete($ID);
if ($result)
    echo "Рейтинг успешно удален.";
?>


GetArrayByID

Главный модуль>Классы>CRatings>GetArrayByID (с версии 9.5.2)

CRatings::GetArrayByID

array
CRatings::GetArrayByID(
 int ID
);

Метод возвращает параметры рейтинга с идентификатором id в виде массива. Нестатический метод.

Параметры метода

Параметр | Описание
id | Идентификатор рейтинга

Смотрите также

  • CRatings::GetList
  • CRatings::GetByID

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

<?
$ID = 4;
$arRating = CRatings::GetArrayByID($ID);
echo "<pre>"; print_r($arRating); echo "</pre>";
?>


GetByID

Главный модуль>Классы>CRatings>GetByID (с версии 9.5.0)

CRatings::GetByID

CDBResult
CRatings::GetByID(
 int ID
);

Метод возвращает параметры рейтинга с идентификатором id в виде объекта класса CDBResult. Нестатический метод.

Параметры метода

Параметр | Описание
id | Идентификатор рейтинга

Смотрите также

  • Класс CDBResult
  • CRatings::GetList
  • CRatings::GetArrayByID

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

<?
$ID = 4;
$rsRating = CRatings::GetByID($ID);
$arRating = $rsRating->Fetch();
echo "<pre>"; print_r($arRating); echo "</pre>";
?>


GetList

Главный модуль>Классы>CRatings>GetList (с версии 9.5.0)

CRatings::GetList

Описание и параметры

CDBResult
CRatings::GetList(
  array arSort,
  array arFilter
);

Метод возвращает список рейтингов в виде объекта класса CDBResult. Cтатический метод.

Параметры метода

Параметр | Описание
arSort | Порядок сортировки возвращаемого списка, заданный в виде массива. Ключами в массиве являются поля для сортировки, а значениями - ASC/DESC - порядок сортировки. Допустимые ключи: ID, NAME, CREATED, LAST_MODIFIED, LAST_CALCILATED, ACTIVE, STATUS, CALCULATED, CALCULATION_METHOD, ENTITY_ID.
arFilter | Массив, задающий фильтр на возвращаемый список. Ключами в массиве являются названия полей, а значениями - их значения. Допустимые поля: ID, ACTIVE, CALCULATED, NAME, ENTITY_ID

Смотрите также

  • Класс CDBResult
  • CRatings::GetByID
  • CRatings::GetArrayByID

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

<?
$arRatings = array();
$rsRatings = CRatings::GetList(
   array("ID" => "DESC"),
   array("ACTIVE" => "Y")
);
while ($arRatingsTmp = $rsRatings->GetNext())
   $arRatings[$arRatingsTmp["ID"]] = $arRatingsTmp;
echo '<pre>'.print_r($arRatings, true).'</pre>';
?>


GetRatingConfigs

Главный модуль>Классы>CRatings>GetRatingConfigs (с версии 9.5.0)

CRatings::GetRatingConfigs

array
CRatings::GetRatingConfigs(
 int objectType,
 bool withRatingType
);

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

Параметры метода

Параметр | Описание
objectType | Имя оцениваемого объекта.
withRatingType | Учитывать тип рейтингования.

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

<?
$objectType = 'USER';
$arRatinConfigs = CRatings::GetRatingConfigs($objectType);
echo "<pre>"; print_r($arRatinConfigs); echo "</pre>";
?>


GetRatingObjects

Главный модуль>Классы>CRatings>GetRatingObjects (с версии 9.5.0)

CRatings::GetRatingObjects

array
CRatings::GetRatingObjects()

Метод возвращает все доступные объекты рейтинговая. Нестатический метод.

Параметры метода

Без параметров.

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

<?
$arObjects = CRatings:: GetRatingObjects();
echo "<pre>"; print_r($arObjects); echo "</pre>";
?>


GetRatingResult

Главный модуль>Классы>CRatings>GetRatingResult (с версии 9.5.0)

CRatings::GetRatingResult

array
CRatings::GetRatingResult(
 int Id,
 mixed entityId
);

Метод возвращает результаты рейтинга для оцениваемой сущности с идентификатором entityId. Нестатический метод.

Параметры метода

Параметр | Описание
Id | идентификатор рейтинга
entityId | идентификатор оцениваемого объекта (можно выбрать несколько результатов, указав в этом параметре массив идентификаторов)

Смотрите также

  • CRatings::GetRatingVoteResult

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

<?
$ratingId = 4;
$entityId = 1;
$arRatingResult = CRatings::GetRatingResult($ratingId, $entityId);
if(!empty($arRatingResult ))
    echo '<pre>'.print_r($arRatingResult , true).'</pre>';
else
    echo "Указанный идентификатор не участвует в рейтинге";
?>


GetRatingVoteResult

Главный модуль>Классы>CRatings>GetRatingVoteResult (с версии 9.5.0)

CRatings::GetRatingVoteResult

Описание и параметры

array
CRatings::GetRatingVoteResult(
 int entityTypeId,
 mixed entityId
 int user_Id
);

Метод возвращает результаты рейтингового голосования для сущности с именем entityTypeId и идентификатором entityId. Нестатический метод.

Параметры метода

Параметр | Описание
entityTypeId | Название сущности голосования. Например: FORUM_TOPIC для тем форума, FORUM_POST для сообщений форума, BLOG_POST для постов в блоге, BLOG_COMMENT для комментариев в блоге. Сам список кодов не регламентирован, можно использовать любой удобный.
entityId | Идентификатор сущности голосования (можно выбрать несколько результатов, указав в этом параметре массив идентификаторов)
user_Id | Идентификатор пользователя (если не указывать, подставляется текущий пользователь)

Смотрите также

  • CRatings::GetRatingResult

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

<?
$entityTypeId = 'FORUM_TOPIC';
$entityId = 38;
$arVoteResult = CRatings::GetRatingVoteResult($entityTypeId, $entityId);
if(!empty($arVoteResult))
    echo '<pre>'.print_r($arVoteResult, true).'</pre>';
else
    echo "Форум: за выбранную тему ещё не голосовали";
?>


Update

Главный модуль>Классы>CRatings>Update (с версии 9.5.0)

CRatings::Update

Описание и параметры

bool
CRatings::Update(
 int id,
 array fields
);

Метод изменяет параметры рейтинга с идентификатором id. Нестатический метод.

Параметры метода

Параметр | Описание
id | Идентификатор рейтинга.
fields Массив значений параметров. В качестве ключей данного массива допустимо использовать:
  • NAME – название рейтинга
  • ACTIVE – активность рейтинга (Y|N)
  • ENTITY_ID – оцениваемый объект (например: USER, BLOG, и т.д.)
  • CALCULATION_METHOD – тип подсчета рейтинга (SUM-суммирование критериев, AVG – средние значение критериев)
  • CONFIGS – массив, описывающий критерии рейтингования
  • NEW_CALC – обнуляет предыдущее значение рейтинга

Смотрите также

  • CRating::Add

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

<?
// изменим название рейтинга и сделаем его не активным
$arUpdateRating = array(
    'ACTIVE' => 'N',
    'NAME' => 'Рейтинг, измененный через API',
);
$result = CRatings::Update(1, $arUpdateRating);
if ($result)
    echo "Рейтинг успешно обновлен.";
?>


Класс CSite

Описание и поля

CSite - класс для работы с сайтами.

Аналог класса в новом ядре D7: Bitrix\Main\SiteTable.

Поля

Поле | Тип | Описание
LID | char (2) | ID сайта.
SORT | int | Порядок сортировки.
DEF | char | Сайт по умолчанию (Y|N).
ACTIVE | char | Активность (Y|N).
NAME | varchar (50) | Краткое название сайта.
DIR | varchar (50) | Папка от которой начинается содержимое сайта.
FORMAT_DATE | varchar (50) | Формат даты.
FORMAT_DATETIME | varchar (50) | Формат даты-время.
CHARSET | varchar (255) | Кодировка страниц данного сайта.
LANGUAGE_ID | char (2) | Идентификатор языка сайта.
DOC_ROOT | varchar (255) | Полный путь на диске к корневой папке веб-сервера для этого сайта (в случае если сайты имеют различные DOCUMENT_ROOT).
SERVER_NAME | varchar (255) | URL сайта.
SITE_NAME | varchar (255) | Полное название сайта.
DOMAINS | varchar (255) | Список доменов, вводятся через разделитель - \n.
EMAIL | varchar (255) | E-Mail адрес по умолчанию.
CULTURE_ID | varchar (50) | Региональные настройки. Значения получаются с помощью класса CultureTable.
ABS_DOC_ROOT | varchar (255) | Реальный DOCUMENT_ROOT для сайта.

Список методов

Метод | Описание | С версии
GetList | Получает список сайтов. |
GetByID | Получает данные об одном сайте. |
GetTimeFormat | Возвращает формат даты для языка сайта. | 11.5.5
Add | Добавляет новый сайт. |
Update | Изменяет существующий сайт. |
Delete | Удаляет сайт. |
GetDateFormat | Возвращает формат даты (времени) сайта. | 11.5.4
GetTemplateList | Возвращает список шаблоново сайт. |

См. также

  • Сайты


Add

Главный модуль>Классы>CSite>Add (с версии 3.3.21)

CSite::Add

Описание и параметры

mixed
CSite::Add(
 array fields
)

Метод добавляет новый сайт. Возвращает ID вставленного сайта. При возникновении ошибки метод вернет false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки. Нестатический метод.

Параметры

Параметр | Описание
fields | Массив значений полей вида array("поле"=>"значение" [, ...]).

Смотрите также

  • Поля CSite
  • CSite::Update
  • CSite::Delete

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

<?
$arFields = Array(
  "LID"              => "ru",
  "ACTIVE"           => "Y",
  "SORT"             => 200,
  "DEF"              => "N",
  "NAME"             => "www.site.com",
  "DIR"              => "/ru/",
  "FORMAT_DATE"      => "DD.MM.YYYY",
  "FORMAT_DATETIME"  => "DD.MM.YYYY HH:MI:SS",
  "CHARSET"          => "windows-1251",
  "SITE_NAME"        => "My site",
  "SERVER_NAME"      => "www.site.com",
  "EMAIL"            => "admin@site.com",
  "LANGUAGE_ID"      => "ru",
  "DOC_ROOT"         => "",
  "DOMAINS"          => "www.site.com \n site.com"
  );
$obSite = new CSite;
$obSite->Add($arFields);
if (strlen($obSite->LAST_ERROR)>0) $strError .= $obSite->LAST_ERROR;
?>

Как менять шаблон сайта:

if (strlen($site_id)) {
   $obSite = new CSite();
   $t = $obSite->Update($site_id, array(
      'ACTIVE' => "Y",
      'TEMPLATE'=>array(
         array(
            'CONDITION' => "",
            'SORT' => 1,
            'TEMPLATE' => "new_template"
         ),
      )
   ));
}


Delete

Главный модуль>Классы>CSite>Delete (с версии 3.3.21)

CSite::Delete

mixed
CSite::Delete(
 string id
)

Метод удаляет сайт. Если удаление успешно, то возвращает объект CDBResult, иначе "false". Cтатический метод.

Параметры

Параметр | Описание
id | ID удаляемого сайта.

Смотрите также

  • CSite::Add
  • CSite::Update
  • Событие "OnBeforeSiteDelete"
  • Событие "OnSiteDelete"

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

<?
if (CSite::Delete("ru")===false)
  echo "Сайт удалить нельзя т.к. найдены связанные записи.";
?>


GetByID

Главный модуль>Классы>CSite>GetByID (с версии 3.3.21)

CSite::GetByID

CSite::GetByID(
 string id
)

Возвращает информацию по сайту в виде объекта класса _CLangDBResult. Cтатический метод.

Параметры

Параметр | Описание
id | ID сайта.

Смотрите также

  • Поля CSite
  • Класс CDBResult
  • CSite::GetList

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

<?
$rsSites = CSite::GetByID("ru");
$arSite = $rsSites->Fetch();
echo "<pre>"; print_r($arSite); echo "</pre>";
?>


GetDateFormat

Главный модуль>Классы>CSite>GetDateFormat (с версии 3.3.21)

CSite::GetDateFormat

Описание и параметры

string
CSite::GetDateFormat(
  string type = "FULL",
  mixed lang = false,
  bool SearchInSitesOnly=false
)

Возвращает формат даты (времени) сайта. Cтатический метод.

Параметры

Параметр | Описание
type Тип формата. Допустимы следующие значения:
  • FULL - для дата-время
  • SHORT - для даты
Необязательный. По умолчанию "FULL".
lang ID сайта.
Необязательный. По умолчанию используется ID текущего сайта.
SearchInSitesOnly | Необязательный. Если переменная определена в true, то в административной части будет использован не формат языка административной части, а сайта по умолчанию.

Смотрите также

  • Методы класса CDataBase для работы с датой и временем
  • Функции для работы с датой и временем

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

<?
// выводит текущую дату в формате текущего сайта
echo date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")), time());
?>


GetList

Главный модуль>Классы>CSite>GetList (с версии 3.3.21)

CSite::GetList

Описание и параметры

CSite::GetList(
 string &by = "sort",
 string &order = "asc",
 array filter = array()
)

Возвращает список сайтов в виде объекта класса _CLangDBResult. Cтатический метод.

Параметры

Параметр Описание
by По какому полю сортируем. Допустимы следующие значения:
  • id - по LID сайта
  • active - по флагу активности
  • name - по краткому названию сайта
  • dir - по каталогу от которого начинается содержимое сайта
  • lendir - по длине имени каталога от которого начинается содержимое сайта
  • def - по флагу "Сайт по умолчанию"
  • sort - по индексу сортировки
Параметр необязательный. По умолчанию - "sort".
оrder Порядок сортировки. Допустимы следующие значения:
  • asc - по возрастанию
  • desc - по убыванию
Параметр необязательный. По умолчанию - "asc".
filter Массив вида array("фильтруемое поле"=>"значение" [, ...]). "Фильтруемое поле" может принимать следующие значения:
  • ID - LID сайта
  • NAME - поле "Название" из настроек сайта
  • DOMAIN - поле "Доменное имя" из настроек сайта
  • IN_DIR - префикс для поля "Папка сайта" из настроек сайта
  • LANGUAGE_ID - двухсимвольный ID языка сайта
  • ACTIVE - флаг активности (Y|N)
  • DEFAULT - сайт по умолчанию (Y|N)

Смотрите также

  • Поля CSite
  • CSite::GetByID
  • Класс CDBResult

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

<?
$rsSites = CSite::GetList($by="sort", $order="desc", Array("NAME" => "www.mysite.ru"));
while ($arSite = $rsSites->Fetch())
{
  echo "<pre>"; print_r($arSite); echo "</pre>";
}
?>


GetTemplateList

Главный модуль>Классы>CSite>GetTemplateList (с версии 3.3.21)

CSite::GetTemplateList

result_type
CSite::GetTemplateList(
 site_id
);

Получение списка шаблонов конкретного сайта. Cтатический метод.

Параметры

Параметр | Описание
site_id | Идентификатор сайта, список шаблонов которого нужно получить.

Возвращаемое значение

Возвращается массив ID шаблонов сайта.

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

$rsTemplates = CSite::GetTemplateList("s1");
while($arTemplate = $rsTemplates->Fetch())
{
   $result[]  = $arTemplate;
}
echo "<pre>"; print_r($result); echo "</pre>";


GetTimeFormat

Главный модуль>Классы>CSite>GetTimeFormat (с версии 11.5.5)

CSite::GetTimeFormat

string
CSite::GetTimeFormat (
 lang=false,
 bool SearchInSitesOnly = false,
 format = false
);

Метод предназначен для работы с форматом даты. Cтатический метод.

Параметры

Параметр | Описание | С версии
lang | Язык сайта. Необязательный. По умолчанию используется язык текущего сайта. |
bSearchInSitesOnly | Необязательный. Если переменная определена в true, то в административной части будет использован не формат языка административной части, а сайта по умолчанию. |
format | Формат времени. Значение по умолчанию - "false". | 11.5.7

Возвращаемое значение

Возвращает формат времени, указанный в настройках сайта.

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

Вернет формат времени в формате php:

echo $GLOBALS["DB"]->DateFormatToPHP( CSite::GetTimeFormat() );


InDir

Главный модуль>Классы>CSite>InDir (с версии 5.0.0)

CSite::InDir

CSite::InDir(
 strIng Dir
)

Метод проверяет, находимся ли мы в данной папке. Cтатический метод.

Параметры

Параметр | Описание
Dir | Директория сайта

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

if(CSite::InDir('/about/')) {
// выполнение условия для каталога /about/ и всех его подкаталогов, например /about/contancs/
}

Чтобы проверка осуществлялась только для раздела /about нужно:

 if(CSite::InDir('/about/index.php')) {
   // выполнение условия для каталога /about/, а именно страницы index.php в каталоге about
}


InGroup

Главный модуль>Классы>CSite>InGroup (5.0.0)

CSite::InGroup

CSite::InGroup(
   $arGroups
)

Метод проверяет, состоит ли текущий пользователь в указанных группах. Cтатический метод.

Параметры

Параметр | Описание
arGroups | Массив, в котором указываются ИД групп.

Возвращаемое значение

Возвращает true, если пользователь состоит в указанных группах.

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

<?
// Не выводим детальную картинку и описание если пользователь принадлежит группе с ИД=3
$arIBlockElement = false;
$arIBlockElement = GetIBlockElement($ID);
echo $arIBlockElement['NAME'].'
';
if ( !CSite::InGroup (array(3) ) ):
echo $arIBlockElement['DETAIL_TEXT'].'
';
echo ShowImage($arIBlockElement['DETAIL_PICTURE'], 150, 150, 'border="0"', '', true);
endif;
?>
<?
// Покажем название ИБ, только если пользователь принадлежит группам с ИД = 4 и 5
if ( CSite::InGroup( array(4,5) ) ):
$res = CIBlock::GetByID($_GET["BID"]);
if($ar_res = $res->GetNext())
echo $ar_res['NAME'];
endif;
?>

Проверка идет на соответствие группам с оператором ИЛИ, т.е. согласно приведенному примеру:

if ( CSite::InGroup( array(4,5) ) ):

Под выборку попадут пользователи с группой "4" или "5", в том числе пользователи, состоящие в обеих группах.


Update

Главный модуль>Классы>CSite>Update (с версии 3.3.21)

CSite::Update

Описание и параметры

bool
CSite::Update(
 int id,
 array fields
)

Метод изменяет параметры сайта. Возвращает "true", если изменение прошло успешно, при возникновении ошибки метод вернет "false", а в свойстве LAST_ERROR объекта будет содержаться текст ошибки. Нестатический метод.

Параметры

Параметр | Описание
id | ID сайта.
fields | Массив значений полей вида array("поле"=>"значение" [, ...]).

Смотрите также

  • Поля CSite
  • CSite::Add
  • CSite::Delete

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

<?
$arFields = Array(
  "ACTIVE"           => "Y",
  "SORT"             => 200,
  "DEF"              => "N",
  "NAME"             => "www.site.com",
  "DIR"              => "/ru/",
  "FORMAT_DATE"      => "DD.MM.YYYY",
  "FORMAT_DATETIME"  => "DD.MM.YYYY HH:MI:SS",
  "CHARSET"          => "windows-1251",
  "SITE_NAME"        => "My site",
  "SERVER_NAME"      => "www.site.com",
  "EMAIL"            => "admin@site.com",
  "LANGUAGE_ID"      => "ru",
  "DOC_ROOT"         => "",
  "DOMAINS"          => "www.site.com \n site.com"
  );
$obSite = new CSite;
$obSite->Update("ru", $arFields);
if (strlen($obSite->LAST_ERROR)>0) $strError .= $obSite->LAST_ERROR;
?>

Как менять шаблон сайта:

if (strlen($site_id)) {
   $obSite = new CSite();
   $t = $obSite->Update($site_id, array(
      'ACTIVE' => "Y",
      'TEMPLATE'=>array(
         array(
            'CONDITION' => "",
            'SORT' => 1,
            'TEMPLATE' => "new_template"
         ),
      )
   ));
}


Класс CSmile

Описание и методы

Класс для работы со смайлами. Смайлы во всех модулях системы вызываются из Главного модуля. Поддерживаются смайлы в высоком разрешении (retina) и возможность парсинга смайлов в тех модулях, в которых нет собственной реализации смайлов.

До выхода 13 версии продукта поддерживается работа одновременно и старого механизма и нового.

Метод | Описание | С версии
Add | Добавление смайла | 12.5.7
Update | Обновление данных смайла | 12.5.7
Delete | Удаление смайла | 12.5.7
DeleteBySet | Удаление всех смайлов в наборе | 12.5.7
GetById | Получение данных смайла по ID | 12.5.7
GetList | Получение данных о смайлах | 12.5.7
GetByType | Получение данных о смайлах или иконках | 12.5.7
PrepareForLHE | Подготовка массива смайлов перед вставкой в визуальный редактор | 12.5.7
PrepareForParser | Подготовка массива смайлов перед вставкой в парсер текста | 12.5.7
PreparePathToCopy | Подготовка пути для копирования файлов | 12.5.7
Import | Импортирует архив со смайлами | 12.5.7

Константы типов

Константа | Описание
CSmile::TYPE_SMILE | Смайл
CSmile::TYPE_ICON | Иконка
CSmile::TYPE_ALL | Оба типа

Константы качества изображения

Константа | Описание
CSmile::IMAGE_SD | Стандартное разрешение (SD)
CSmile::IMAGE_HD | Высокое разрешение (HD)
CSmile::IMAGE_UHD | Сверхвысокое разрешение (Ultra HD)

Константы путей

Константа | Описание
CSmile::PATH_TO_SMILE | путь до папки со смайлами, от корня сайта
CSmile::PATH_TO_ICON | путь до папки с иконками, от корня сайта


Add

Главный модуль>Классы>CSmile>Add (с версии 12.5.7)

CSmile::Add

CSmile::add(
  Array(
    'TYPE' => CSmile::TYPE_SMILE,
    'SET_ID' => CSmileSet::getByStringId('default'),
    'SORT' => 300,
    'TYPING' => ':=)',
    'IMAGE' => 'smile_long_hr.png',
    'IMAGE_HR' => 'Y',
    'IMAGE_WIDTH' => '32',
    'IMAGE_HEIGHT' => '32',
    'LANG' => Array(
        'ru' =>    'Улыбка',
        'en' => 'Smiley',
    )
));

Метод добавляет смайлик. Cтатический метод.

Внимание: этот метод только добавляет запись в базу, дополнительно нужно выполнить копирование файла по адресу выданному PreparePathToCopy. Размеры изображения можно получить с помощью метода ResizeImageGet.

Параметры

Параметр | Описание
TYPE | тип смайла
SET_ID | Идентификатор набора смайлов
SORT | Сортировка
TYPING | Написание смайла в редакторе
IMAGE | Файл смайла
IMAGE_HR | Изображение в высоком разрешении (при показе изображение будет уменьшено в два раза)
IMAGE_WIDTH | ширина изображения в пикселях
IMAGE_HEIGHT | Высота изображения в пикселях
LANG | Название смайла

Возвращаемое значение

Возвращает $ID в случае удачного добавления и false в случае возникновения ошибки (создается Класс CAdminException).


Delete

Главный модуль>Классы>CSmile>Delete (с версии 12.5.7)

CSmile::Delete

CSmile::delete(
 $id,
 $removeFile
);

Метод удаляет смайл (запись в базе и файл смайла). Cтатический метод.

Параметры

Параметр | Описание | С версии
id | идентификатор смайла |
removeFile | По умолчанию true, удаляет файл. | 15.5.2

Возвращаемое значение

Возвращает true в случае удачного удаления и false в случае возникновения ошибки


DeleteByGallery

Главный модуль>Классы>CSmile>DeleteByGallery (с версии 15.5.2)

CSmile::DeleteByGallery

CSmile::DeleteByGallery(
 id
);

Метод удаляет все наборы и смайлы в галерее (запись в базе и сами файлы). Cтатический метод.

Параметры

Параметр | Описание | С версии
id | идентификатор галереи смайлов |
removeFile | По умолчанию true, удаляет файл. |

Возвращаемое значение

Возвращает true в случае удачного удаления и false в случае возникновения ошибки.


DeleteBySet

Главный модуль>Классы>CSmile>DeleteBySet (с версии 12.5.7)

CSmile::DeleteBySet

CSmile::deleteBySet(
 id
);

Метод удаляет все смайлы в наборе (запись в базе и сами файлы). Cтатический метод.

Параметры

Параметр | Описание | С версии
id | идентификатор набора смайлов |
removeFile | По умолчанию true, удаляет файл. | 15.5.2

Возвращаемое значение

Возвращает true в случае удачного удаления и false в случае возникновения ошибки.


getByGalleryId

Главный модуль>Классы>CSmile>getByGalleryId (с версии 15.5.2)

CSmile::getByGalleryId

CSmile::getByGalleryId(
 $type = self::TYPE_ALL,
 $galleryId = CSmileGallery::GALLERY_DEFAULT,
 $lang = LANGUAGE_ID
);

Вывод информации о смайлах и иконках по ID галереи. Cтатический метод.

Параметры

Параметр | Описание
type | константа типа
galleryId | идентификатор галереи (по умолчанию CSmileGallery::GALLERY_DEFAULT - все наборы)
lang | идентификатор языка для получения локализации, по умолчанию LANGUAGE_ID


GetById

Главный модуль>Классы>CSmile>GetById (с версии 12.5.7)

CSmile::GetById

CSmile::getById(
 $id,
 $lang = LANGUAGE_ID
);

Получение данных смайла по ID. Cтатический метод.

Параметры

Параметр | Описание
id | идентификатор смайла
lang | Идентификатор языка для получения локализации, по умолчанию LANGUAGE_ID (можно передать константу CSmile::GET_ALL_LANGUAGE для получения всех локализаций)

Возвращаемое значение

Возвращает массив с данными о смайле.


getBySetId

Главный модуль>Классы>CSmile>getBySetId (с версии 15.5.2)

CSmile::getBySetId

CSmile::getBySetId(
 $type = self::TYPE_ALL,
 $setId = CSmileSet::SET_ID_BY_CONFIG,
 $lang = LANGUAGE_ID
);

Получение данных о смайлах или иконках по ID набора. Cтатический метод.

Параметры

Параметр | Описание
type | константа типа
setId | идентификатор набора (по умолчанию CSmileSet::SET_ID_ALL - все наборы)
lang | идентификатор языка для получения локализации, по умолчанию LANGUAGE_ID


GetByType

Главный модуль>Классы>CSmile>GetByType (с версии 12.5.7, устарал с версии 15.5.2)

CSmile::GetByType

Примечание: устарел с версии 15.5.2. Используйте метод CSmile::getBySetId.

CSmile::getByType(
 $type = self::TYPE_ALL,
 $setId = CSmileSet::SET_ID_BY_CONFIG,
 $lang = LANGUAGE_ID
);

Получение данных о смайлах или иконках. Cтатический метод.

Параметры

Параметр | Описание
type | константа типа
setId | идентификатор набора (по умолчанию CSmileSet::SET_ID_ALL - все наборы)
lang | идентификатор языка для получения локализации, по умолчанию LANGUAGE_ID


GetList

Главный модуль>Классы>CSmile>GetList (с версии 12.5.7)

CSmile::GetList

CSmile::getList(
   Array(
      'SELECT' => Array('ID'),
      'FILTER' => Array('SET_ID' => $id),
      'ORDER' => Array('ID' => 'DESC'),
      'NAV_PARAMS' => Array(),
      'RETURN_SQL' => 'N',
      'RETURN_RES' => 'N',
   ),
   $lang = LANGUAGE_ID
);

Получение данных о смайлах. Все параметры являются не обязательными. Cтатический метод.

Параметры

Параметр | Описание
SELECT Поля выборки, доступны:
  • ID - идентификатор смайла;
  • SET_ID - идентификатор набора;
  • TYPE - тип константы;
  • NAME - имя смайла;
  • SORT - сортировка;
  • TYPING - написание смайла в редакторе
  • IMAGE - файл смайла
  • IMAGE_HR - качество изображения.
  • IMAGE_WIDTH - ширина изображения в пикселях
  • IMAGE_HEIGHT - высота изображения в пикселях
  • SET_NAME - имя набора
FILTER Фильтр выборки, доступны:
  • ID - идентификатор смайла;
  • SET_ID - идентификатор набора;
Могут быть множественным, представленным массивом идентификаторов.
ORDER Поля сортировки, доступны:
  • ID - идентификатор смайла;
  • SET_ID - идентификатор набора;
  • SORT - сортировка;
  • IMAGE_HR - качество изображения.
по умолчанию сортировка ID => DESC.
NAV_PARAMS | Передаются параметры массива для CDBResult::NavQuery.
RETURN_SQL | Может быть Y или N - метод вернет в виде результата сформированный запрос.
RETURN_RES | Может быть Y или N - метод вернет в виде результата ресурс на отработанный запрос.
lang | Значения языка, хранимое в константе LANGUAGE_ID.

Возвращаемое значение

Если не заданы RETURN_SQL или RETURN_RES метод возвращает массив.


Import

Главный модуль>Классы>CSmile>Import (с версии 12.5.7)

CSmile::Import

CSmile::import(
   array(
    'FILE' => $_SERVER["DOCUMENT_ROOT"].'/bitrix/modules/main/install/smiles/smiles_default.zip',
    'SET_ID' => $setId,
    array 'IMPORT_IF_FILE_EXISTS' = 'Y'
   )
);

Метод импортирует архив со смайлами. Cтатический метод.

Параметры

Параметр | Описание
FILE | Путь до импортируемого файлаа
SET_ID | Идентификатор набора смайлов
IMPORT_IF_FILE_EXISTS | Импортировать смайлы, даже если они физически есть на диске (не обязательный параметр)

Возвращаемое значение

Возвращает количество импортированных смайлов или false в случае возникновения ошибки (создается Класс CApplicationException)


PrepareForLHE

Главный модуль>Классы>CSmile>PrepareForLHE (с версии 12.5.7, устарел с 14.0.)

CSmile::PrepareForLHE

CSmile::prepareForLHE(
 $smiles
);

Подготовка массива смайлов перед вставкой в визуальный редактор (массив, возвращаемый методом GetByType). Cтатический метод.

Параметры

Параметр | Описание
smiles | Массив от метода GetByType.

Возвращаемое значение

Возвращает подготовленный массив.


PrepareForParser

Главный модуль>Классы>CSmile>PrepareForParser (с версии 12.5.7, устарел с 14.0.)

CSmile::PrepareForParser

CSmile::prepareForParser(
 $smiles
);

Подготовка массива смайлов перед вставкой в парсер текста (массив от метода GetByType). Cтатический метод.

Параметры

Параметр | Описание
smiles | Массив смайлов.

Возвращаемое значение

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


PreparePathToCopy

Главный модуль>Классы>CSmile>PreparePathToCopy (с версии 12.5.7, устарел с 14.0.)

CSmile::PreparePathToCopy

CSmile::preparePathToCopy(
 $type,
 $setId,
 $image
);

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

Параметры

Параметр | Описание
type | Тип константы
setId | Идентификатор набора
image | имя файла

Возвращаемое значение

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


Update

Главный модуль>Классы>CSmile>Update (с версии 12.5.7)

CSmile::Update

CSmile::update(
    id,
    Array(
    'TYPE' => CSmile::TYPE_SMILE,
    'SET_ID' => CSmileSet::getByStringId('default'),
    'SORT' => 300,
    'TYPING' => ':=)',
    'IMAGE' => 'smile_long_hr.png',
    'IMAGE_HR' => 'Y',
    'IMAGE_WIDTH' => '32',
    'IMAGE_HEIGHT' => '32',
    'LANG' => Array(
        'ru' =>    'Улыбка',
        'en' => 'Smiley',
    )
));

Метод обновляет данные смайла. Cтатический метод.

Параметры

Параметр | Описание
id | идентификатор смайла
Массив параметров
TYPE | тип смайла
SET_ID | Идентификатор набора смайлов
SORT | Сортировка
TYPING | Написание смайла в редакторе
IMAGE | Файл смайла
IMAGE_HR | Изображение в высоком разрешении (при показе изображение будет уменьшено в два раза)
IMAGE_WIDTH | ширина изображения в пикселях
IMAGE_HEIGHT | высота изображения в пикселях
LANG | Название смайла

Примечание: Обновить поля IMAGE_HR, IMAGE_WIDTH, IMAGE_HEIGHT можно только при указании IMAGE.

Возвращаемое значение

Возвращает true в случае удачного добавления и false в случае возникновения ошибки (создается CAdminException)


CSmileGallery

Класс для работы с галереями

Константы

Константа | Описание
CSmileGallery::GALLERY_DEFAULT | используется для обозначения того, что выборка галереи происходит по настройкам модуля.
CSmileGallery::GET_ALL_LANGUAGE | константа позволяет вернуть все доступные языки

Класс | Описание | С версии
add | Добавление галереи смайлов. |
update | Обновление данных галереи смайлов. |
delete | Метод удаляет галерею вместе с наборами и смайлами (записи в базе и сами файлы). |
getById | Получение данных о галереях по ID |
getByStringId | Получение данных о галереях по STRING_ID. |
getDefaultId | Позволяет получить идентификатор галереи по умолчанию. |
getList | Получение данных о галереях смайлов. |
getListCache | Производит выборку всех галерей (с использованием кеша) |
getListForForm | Производит выборку всех галерей для построения списка. |
getSmilesWithSets | Возвращает смайлы и наборы на основе галереи для последующего использования в модулях при построении списка доступных смайлов. |
setDefaultId | Устанавливает галерею по умолчанию. |


add

Главный модуль>Классы>CSmileGallery>add (с версии 15.5.2)

CSmileGallery::add

CSmileGallery::add(
   Array(
    'STRING_ID' => 'new_category',
    'SORT' => 300,
    'LANG' => Array(
        'ru' =>    'Новая категория',
        'en' => 'New category',
      )
   )
);

Добавление галереи смайлов. Cтатический метод.

Параметры

Параметр | Описание
STRING_ID | Строковый ключ, для поиска и импорта
SORT | Сортировка
LANG | Название смайла

Возвращаемое значение

Возвращает $ID в случае удачного добавления и false в случае возникновения ошибки (создается Класс CApplicationException)


delete

Главный модуль>Классы>CSmileGallery>delete (с версии 15.5.2)

CSmileGallery::delete

CSmileGallery::delete(
 $id,
 $removeFile
);

Метод удаляет галерею вместе с наборами и смайлами (записи в базе и сами файлы). Cтатический метод.

Параметры

Параметр | Описание | С версии
id | Идентификатор галереи, обязательный параметр. |
removeFile | По умолчанию true, удаляет файл. |

Возвращаемое значение

Возвращает true в случае удачного удаления и false в случае возникновения ошибки


getById

Главный модуль>Классы>CSmileGallery>getById (с версии 15.5.2)

CSmileGallery::getById

CSmileGallery::getById(
 $id,
 $lang = LANGUAGE_ID
);

Получение данных о галереях по ID. Cтатический метод.

Параметры

Параметр | Описание
id | идентификатор галереи
lang | Идентификатор языка для получения локализации, по умолчанию LANGUAGE_ID (можно передать константу CSmileSet::GET_ALL_LANGUAGE для получения всех локализаций)

Возвращаемое значение

Возвращает массив с данными о галерее.


getByStringId

Главный модуль>Классы>CSmileGallery>getByStringId (с версии 15.5.2)

CSmileGallery::getByStringId

CSmileGallery::getByStringId(
 $stringId,
 $lang = LANGUAGE_ID
);

Получение данных о галереях по STRING_ID. Cтатический метод.

Параметры

Параметр | Описание | С версии
stringId | строковый идентификатор идентификатор галереи |
lang | идентификатор языка для получения локализации, по умолчанию LANGUAGE_ID (можно передать константу CSmileSet::GET_ALL_LANGUAGE для получения всех локализаций |

Возвращаемое значение

Возвращает массив с данными о галерее.


getDefaultId

Главный модуль>Классы>CSmileGallery>getDefaultId (с версии 15.5.2)

CSmileGallery::getDefaultId

CSmileGallery::getDefaultId(
);

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

Параметры функции

Без параметров.

События

Событие Вызывается Класс С версии
OnBeforeSmileGalleryGetDefaultId перед получением настроек смайла и позволяет подменить при необходимости результат.
AddEventHandler("main", "OnBeforeSmileGalleryGetDefaultId", "___OnBeforeSmileGalleryGetDefaultId");
function ___OnBeforeSmileGalleryGetDefaultId($setId)
{
    return 16;
}

echo CSmileGallery::getDefaultId(); // return 16
getDefaultId


getList

Главный модуль>Классы>CSmileGallery>getList (с версии 15.5.2)

CSmileGallery::getList

CSmileGallery::getList(
   Array(
      'SELECT' => Array('ID'),
      'FILTER' => Array('SET_ID' => $id),
      'ORDER' => Array('ID' => 'DESC'),
      'NAV_PARAMS' => Array(),
      'RETURN_SQL' => 'N',
      'RETURN_RES' => 'N',
   ),
   $lang = LANGUAGE_ID
);

Получение данных о галереях смайлов. Все параметры являются не обязательными. Cтатический метод.

Параметры

Параметр | Описание
SELECT Поля выборки, доступны:
  • ID - идентификатор смайла;
  • STRING_ID - строковый идентификатор галереи
  • SORT - сортировка;
  • NAME - имя галереи;
  • SMILE_COUNT - число смайлов.
FILTER Фильтр выборки, доступны:
  • ID - идентификатор смайла;
  • STRING_ID - строковый идентификатор галереи
Могут быть множественным, представленным массивом идентификаторов.
ORDER Поля сортировки, доступны:
  • ID - идентификатор смайла;
  • SORT - сортировка;
по умолчанию сортировка ID => DESC.
NAV_PARAMS | Передаются параметры массива для CDBResult::NavQuery.
RETURN_SQL | Может быть Y или N - метод вернет в виде результата сформированный запрос.
RETURN_RES | Может быть Y или N - метод вернет в виде результата ресурс на отработанный запрос.
lang | Значения языка, хранимое в константе LANGUAGE_ID.

Возвращаемое значение

Если не заданы RETURN_SQL или RETURN_RES метод возвращает массив.


getListCache

Главный модуль>Классы>CSmileGallery>getListCache (с версии 15.5.2)

CSmileGallery::getListCache

result_type
CSmileGallery::getListCache(
$lang = LANGUAGE_ID
);

Производит выборку всех галерей (с использованием кеша). Cтатический метод.

Параметры функции

Параметр | Описание
lang | Значения языка, хранимое в константе LANGUAGE_ID.

Возвращаемое значение

© «Битрикс», 2001-2008, «1C-Битрикс», 2008-2022 1С-Битрикс: Управление сайтом


getListForForm

Главный модуль>Классы>CSmileGallery>getListForForm (с версии 15.5.2)

CSmileGallery::getListForForm

result_type
CSmileGallery::getListForForm(
$lang = LANGUAGE_ID
);

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

Параметры функции

Параметр | Описание
lang | Значения языка, хранимое в константе LANGUAGE_ID.

Возвращаемое значение

© «Битрикс», 2001-2008, «1C-Битрикс», 2008-2022 1С-Битрикс: Управление сайтом


getSmilesWithSets

Главный модуль>Классы>CSmileGallery>getSmilesWithSets (с версии 15.5.2)

CSmileGallery::getSmilesWithSets

result_type
CSmileGallery::getSmilesWithSets(
 $galleryId = self::GALLERY_DEFAULT
);

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

Параметры функции

Параметр | Описание
galleryId | по умолчанию CSmileGallery::GALLERY_DEFAULT

Возвращаемое значение

Возвращает массив Array('SMILE' => Array(...), 'SMILE_SET' => Array(...))


setDefaultId

Главный модуль>Классы>CSmileGallery>setDefaultId (с версии 15.5.2)

CSmileGallery::setDefaultId

result_type
CSmileGallery::setDefaultId(
 $id
);

Устанавливает галерею по умолчанию. Cтатический метод.

Параметры функции

Параметр | Описание
id | Идентификатор галереи


update

Главный модуль>Классы>CSmileGallery>update (с версии 15.5.2)

CSmileGallery::update

CSmileGallery::update(
   id,
   Array(
    'STRING_ID' => 'new_category',
    'SORT' => 300,
    'LANG' => Array(
        'ru' =>    'Новая категория',
        'en' => 'New category',
      )
   )
);

Обновление данных галереи смайлов. Cтатический метод.

Параметры

Параметр | Описание
id | идентификатор смайла
Массив параметров
STRING_ID | Строковый ключ, для поиска и импорта
SORT | Сортировка
LANG | Название смайла

Возвращаемое значение

Возвращает true в случае удачного добавления и false в случае возникновения ошибки (создается Класс CApplicationException)


Класс CSmileSet

Класс для работы с наборами смайлов.

События

Событие Вызывается Класс С версии
OnBeforeSmileGetConfigSetId перед получением настроек набора и позволяет подменить результат настройки.
AddEventHandler("main", "OnBeforeSmileGetConfigSetId", "___OnBeforeSmileGetConfigSetId");
function ___OnBeforeSmileGetConfigSetId($setId)
{
    return 16;
}

echo CSmileSet::getConfigSetId(); // return 16
GetConfigSetId 12.5.7
Класс | Описание | С версии
Add | Добавление набора | 12.5.7
Update | Обновление данных набора | 12.5.7
Delete | Удаление набора вместе со смайлами | 12.5.7
GetById | Получение данных о наборах по ID | 12.5.7
GetByStringId | Получение данных о наборах по STRING_ID | 12.5.7
GetBySmiles | Получение данных о наборах с выбранным смайлам | 12.5.7
GetList | Получение данных о наборах | 12.5.7
GetListCache | Получение данных о наборах (закешированные данные) | 12.5.7
GetFormList | Получение списка наборов для форм | 12.5.7
GetConfigSetId | Получение идентифкатора набора для парсера из настроек модуля | 12.5.7


Add

Главный модуль>Классы>CSmileSet>Add (с версии 12.5.7)

CSmileSet::Add

Описание и параметры

CSmileSet::add(
   Array(
    'STRING_ID' => 'new_category',
    'SORT' => 300,
    'TYPE' => CSmileSet::TYPE_SET,
    'LANG' => Array(
        'ru' =>    'Новая категория',
        'en' => 'New category',
      )
   )
);

Добавление набора смайлов. Cтатический метод.

Параметры

Параметр | Описание
STRING_ID | Строковый ключ, для поиска и импорта
SORT | Сортировка
TYPE | Тип, который может быть CSmileSet::TYPE_SET - набор, CSmileSet::TYPE_GALLERY - галерея.
LANG | Название смайла
PARENT_ID | ID родительской галереи

Возвращаемое значение

Возвращает $ID в случае удачного добавления и false в случае возникновения ошибки (создается Класс CApplicationException)

Пример

Добавление с вложенностью:

$id = CSmileGallery::add(
   Array(
    'STRING_ID' => 'gallery_darneo',
    'SORT' => 100,
    'LANG' => Array(
       'ru' => 'Новая галлерея',
       'en' => 'New gallery',
       )
    )
);

$result = CSmileSet::add(
 Array(
    'STRING_ID' => 'list_gallery',
    'SORT' => 100,
    'PARENT_ID' => $id,
    'TYPE' => CSmileSet::TYPE_SET,
    'LANG' => Array(
       'ru' => 'Новые emoji',
       'en' => 'New category',
       )
    )
);
echo $result;


Delete

Главный модуль>Классы>CSmileSet>Delete (с версии 12.5.7)

CSmileSet::Delete

CSmileSet::delete(
 $id,
 $removeFile
);

Метод удаляет набор вместе со смайлами (записи в базе и сами файлы). Cтатический метод.

Параметры

Параметр | Описание | С версии
id | идентификатор набора |
removeFile | По умолчанию true, удаляет файл. | 15.5.2

Возвращаемое значение

Возвращает true в случае удачного удаления и false в случае возникновения ошибки


GetById

Главный модуль>Классы>CSmileSet>GetById (с версии 12.5.7)

CSmileSet::GetById

CSmileSet::getById(
 $id,
 $lang = LANGUAGE_ID
);

Получение данных о наборах по ID. Cтатический метод.

Параметры

Параметр | Описание
id | идентификатор набора
lang | Идентификатор языка для получения локализации, по умолчанию LANGUAGE_ID (можно передать константу CSmileSet::GET_ALL_LANGUAGE для получения всех локализаций)

Возвращаемое значение

Возвращает массив с данными о наборе.


GetBySmiles

Главный модуль>Классы>CSmileSet>GetBySmiles (с версии 12.5.7)

CSmileSet::GetBySmiles

CSmileSet::getBySmiles(
 $arSmile
);

Получение данных о наборах по выбранным смайлам. Cтатический метод.

Параметры

Параметр | Описание
arSmile | массив с выбранными смайлами, например от метода GetByType

Возвращаемое значение

Возвращает массив с данными о наборе.


GetByStringId

Главный модуль>Классы>CSmileSet>GetByStringId (с версии 12.5.7)

CSmileSet::GetByStringId

CSmileSet::getByStringId(
 $stringId,
 $type,
 $lang = LANGUAGE_ID
);

Получение данных о наборах по STRING_ID. Cтатический метод.

Параметры

Параметр | Описание | С версии
type | Тип. Может быть CSmileSet::TYPE_SET - набор, CSmileSet::TYPE_GALLERY - галерея. | 15.5.2
stringId | строковый идентификатор идентификатор набора |
lang | идентификатор языка для получения локализации, по умолчанию LANGUAGE_ID (можно передать константу CSmileSet::GET_ALL_LANGUAGE для получения всех локализаций |

Возвращаемое значение

Возвращает массив с данными о наборе.


GetConfigSetId

Главный модуль>Классы>CSmileSet>GetConfigSetId (с версии 12.5.7, устарел с версии 15.5.2)

CSmileSet::GetConfigSetId

Примечание: С версии 15.5.2 не используется в выборках по умолчанию, теперь нужно использовать метод CSmileGallery::getDefaultId т.к. теперь выборка смайлов идет не по наборам, а по галереям.

CSmileSet::getConfigSetId(
);

Получение идентификатора набора для парсера из настроек модуля. Cтатический метод.

Возвращаемое значение

Возвращает идентификатор набора.

Примечание

Внутри метода необходимы статические проверки без базы данных. Если обойти это ограничение невозможно, нужно использовать кеширование методом бакетов. По 100 элементов в одном кеше, так как это кеш для пользователей, которых может быть много.

События

Событие Вызывается Класс С версии
OnBeforeSmileGetConfigSetId перед получением настроек смайла и позволяет подменить результат настройки.
AddEventHandler("main", "OnBeforeSmileGetConfigSetId", "___OnBeforeSmileGetConfigSetId");
function ___OnBeforeSmileGetConfigSetId($setId)
{
    return 16;
}

echo CSmileSet::getConfigSetId(); // return 16
GetConfigSetId 12.5.7


GetFormList

Главный модуль>Классы>CSmileSet>GetFormList (с версии 12.5.7, устарел с 15.5.2)

CSmileSet::GetFormList

Примечание. С версии 15.5.2 нужно использовать использовать getListForForm

CSmileSet::getFormList(
 $bWithOptionAll,
 $lang = LANGUAGE_ID
);

Получение списка наборов для форм. Cтатический метод.

Параметры

Параметр | Описание
bWithOptionAll | Добавляет пункт "Все наборы"
lang | идентификатор языка для получения локализации, по умолчанию LANGUAGE_ID

Возвращаемое значение

Возвращает массив с данными о наборе.


GetList

Главный модуль>Классы>CSmileSet>GetList (с версии 12.5.7)

CSmileSet::GetList

CSmileSet::getList(
   Array(
      'SELECT' => Array('ID'),
      'FILTER' => Array('SET_ID' => $id),
      'ORDER' => Array('ID' => 'DESC'),
      'NAV_PARAMS' => Array(),
      'TYPE' => CSmileSet::TYPE_SET,
      'RETURN_SQL' => 'N',
      'RETURN_RES' => 'N',
   ),
   $lang = LANGUAGE_ID
);

Получение данных о наборах смайлов. Все параметры являются не обязательными. Cтатический метод.

Параметры

Параметр | Описание
SELECT Поля выборки, доступны:
  • ID - идентификатор смайла;
  • STRING_ID - строковый идентификатор набора
  • SORT - сортировка;
  • NAME - имя набора;
  • SMILE_COUNT - число смайлов.
FILTER Фильтр выборки, доступны:
  • ID - идентификатор смайла;
  • STRING_ID - строковый идентификатор набора
Могут быть множественным, представленным массивом идентификаторов.
ORDER Поля сортировки, доступны:
  • ID - идентификатор смайла;
  • SORT - сортировка;
по умолчанию сортировка ID => DESC.
TYPE | Тип, который может быть CSmileSet::TYPE_SET - набор, CSmileSet::TYPE_GALLERY - галерея.
NAV_PARAMS | Передаются параметры массива для CDBResult::NavQuery.
RETURN_SQL | Может быть Y или N - метод вернет в виде результата сформированный запрос.
RETURN_RES | Может быть Y или N - метод вернет в виде результата ресурс на отработанный запрос.
lang | Значения языка, хранимое в константе LANGUAGE_ID.

Возвращаемое значение

Если не заданы RETURN_SQL или RETURN_RES метод возвращает массив.


GetListCache

Главный модуль>Классы>CSmileSet>GetListCache (с версии 12.5.7)

CSmileSet::GetListCache

CSmileSet::getListCache(
 $lang = LANGUAGE_ID
);

Получение данных о наборах. Cтатический метод.

Параметры

Параметр | Описание
lang | идентификатор языка для получения локализации, по умолчанию LANGUAGE_ID.

Возвращаемое значение

Возвращает массив с данными о наборах в закешированном виде.


getListForForm

Главный модуль>Классы>CSmileSet>getListForForm (с версии 15.5.2)

CSmileSet::getListForForm

CSmileSet::getListForForm(
 $galleryId = 0,
$lang = LANGUAGE_ID
);

Получение списка наборов. Использовать вместо CSmileSet::getFormList. Cтатический метод.

Параметры функции

Параметр | Описание
galleryId | Идентификатор галереи. Не обязательный, по умолчанию использует настройку главного модуля.
lang | Идентификатор языка для получения локализации, по умолчанию LANGUAGE_ID (можно передать константу CSmileSet::GET_ALL_LANGUAGE для получения всех локализаций).

Возвращаемое значение

Возвращает массив с данными о наборе.


Update

Главный модуль>Классы>CSmileSet>Update (с версии 12.5.7)

CSmileSet::Update

CSmileSet::update(
   id,
   Array(
    'STRING_ID' => 'new_category',
    'SORT' => 300,
    'LANG' => Array(
        'ru' =>    'Новая категория',
        'en' => 'New category',
      )
   )
);

Обновление данных набора смайлов. Cтатический метод.

Параметры

Параметр | Описание
id | идентификатор смайла
Массив параметров
STRING_ID | Строковый ключ, для поиска и импорта
SORT | Сортировка
LANG | Название смайла

Возвращаемое значение

Возвращает true в случае удачного добавления и false в случае возникновения ошибки (создается Класс CApplicationException)


Класс CUser

Описание и поля

CUser - класс для работы с пользователями.

При запуске каждой страницы автоматически создаётся объект этого класса $USER - данные о текущем пользователе.

Аналог класса в новом ядре D7 - Bitrix\Main\UserTable.

Внимание! с версии 20.0.1300 формы авторизации/регистрации теперь принимают данные только POST-запросом.

Поля

Поле | Тип | Описание
ID | int | ID пользователя.
XML_ID | int | ID пользователя для связи с внешними источниками (например, ID пользователя в какой-либо внешний базе).
TIMESTAMP_X | datetime | Последнее изменение.
LOGIN | varchar (50) | Имя входа.
PASSWORD | varchar (50) | Хеш от пароля.
STORED_HASH | varchar (32) | Хеш от пароля хранимый в куках пользователя.
CHECKWORD | varchar (50) | Контрольная строка для смены пароля.
ACTIVE | char | Активен (Y|N).
NAME | varchar (50) | Имя.
LAST_NAME | varchar (50) | Фамилия.
SECOND_NAME | varchar (50) | Отчество.
EMAIL | varchar (255) | E-mail адрес.
LAST_LOGIN | datetime | Дата последней авторизации.
LAST_ACTIVITY_DATE | datetime | Дата последнего хита на сайте.
DATE_REGISTER | datetime | Дата регистрации.
LID | char (2) | ID сайта по умолчанию для уведомлений.
ADMIN_NOTES | varchar (2000) | Заметки администратора.
EXTERNAL_AUTH_ID | varchar (255) | Код источника Внешней авторизации [image] .
Личные данные:
PERSONAL_PROFESSION | varchar (255) | Профессия.
PERSONAL_WWW | varchar (255) | WWW-страница.
PERSONAL_ICQ | varchar (255) | ICQ.
PERSONAL_GENDER | char (1) | Пол.
PERSONAL_BIRTHDAY | date | Дата рождения.
PERSONAL_PHOTO | int | Фотография.
PERSONAL_PHONE | varchar (255) | Телефон.
PERSONAL_FAX | varchar (255) | Факс.
PERSONAL_MOBILE | varchar (255) | Мобильный телефон.
PERSONAL_PAGER | varchar (255) | Пэйджер.
PERSONAL_STREET | varchar (2000) | Улица, дом.
PERSONAL_MAILBOX | varchar (255) | Почтовый ящик.
PERSONAL_CITY | varchar (255) | Город.
PERSONAL_STATE | varchar (255) | Область / край.
PERSONAL_ZIP | varchar (255) | Индекс.
PERSONAL_COUNTRY | varchar (255) | Страна.
PERSONAL_NOTES | varchar (2000) | Дополнительные заметки.
Информация о работе:
WORK_COMPANY | varchar (255) | Наименование компании.
WORK_DEPARTMENT | varchar (255) | Департамент / Отдел.
WORK_POSITION | varchar (255) | Должность.
WORK_WWW | varchar (255) | WWW-страница.
WORK_PHONE | varchar (255) | Телефон.
WORK_FAX | varchar (255) | Факс.
WORK_PAGER | varchar (255) | Пэйджер.
WORK_STREET | varchar (2000) | Улица, дом.
WORK_MAILBOX | varchar (255) | Почтовый ящик.
WORK_CITY | varchar (255) | Город.
WORK_STATE | varchar (255) | Область / край.
WORK_ZIP | varchar (255) | Индекс.
WORK_COUNTRY | varchar (255) | Страна.
WORK_PROFILE | varchar (2000) | Направления деятельности.
WORK_LOGO | int | Логотип.
WORK_NOTES | varchar (2000) | Дополнительные заметки.

Методы класса

Метод | Описание | С версии
GetList | Возвращает список пользователей. |
GetByID | Возвращает пользователя по его ID. |
GetByLogin | Возвращает пользователя по его логину. | 3.0.12
GetUserGroup | Возвращает ID всех групп, которым принадлежит пользователь. |
Add | Создает нового пользователя. |
Update | Изменяет параметры пользователя. |
Delete | Удаляет пользователя. |
GetID | Возвращает ID текущего авторизованного пользователя. |
GetLogin | Возвращает логин текущего авторизованного пользователя. |
GetEmail | Возвращает E-Mail текущего авторизованного пользователя. | 4.0.4
GetFullName | Возвращает имя и фамилию текущего авторизованного пользователя. |
GetFirstName | Возвращает имя текущего авторизованного пользователя. | 4.0.4
GetLastName | Возвращает фамилию текущего авторизованного пользователя. | 4.0.4
GetParam | Возвращает один из параметров пользователя. |
GetUserGroupArray | Возвращает ID всех групп которым принадлежит текущий пользователь. |
GetUserGroupList | Выводит список групп, в которых состоит пользователь. | 4.1.0
GetUserGroupString | Возвращает строку с перечисленными группами пользователя. | 4.0.4
IsAdmin | Проверяет принадлежность пользователя группе администраторов. |
IsAuthorized | Проверяет авторизован ли пользователь. |
IsOnLine | Метод предназначен для определения статуса "Сейчас на сайте" по ID пользователя. | 7.1.6
Login | Авторизует пользователя по введенному логину. |
LoginByHash | Авторизует пользователя по хранимому в куках хешу. | 3.3.7
SavePasswordHash | Сохраняет специальный хеш в куках пользователя в целях дальнейшей автоматической авторизации. | 3.3.7
GetPasswordHash | Возвращает специальный хеш от пароля пользователя который может быть использован в методах LoginByHash и SavePasswordHash. | 3.3.7
Authorize | Непосредственно осуществляет процесс авторизации пользователя. Инициализирует необходимые сессионные переменные и переменные объекта класса CUser. | 3.3.7
Logout | Заканчивает сеанс авторизации пользователя. |
Register | Создает нового пользователя, авторизует его и отсылает письмо по шаблону типа NEW_USER. |
SimpleRegister | Создает нового пользователя с генерацией логина и пароля, затем авторизует его. На вход метода поступает только E-Mail. |
ChangePassword | Изменяет пароль пользователя. |
SendPassword | Создает почтовое событие для отправки пользователю сообщения для смены пароля. |
SendUserInfo | Создает почтовое событие для отправки пользователю сообщения с его параметрами. |
GetCount | Возвращает количество пользователей в базе. | 3.3.0
GetExternalAuthList | Возвращает список всех источников внешней авторизации. | 4.0.6
SetParam | Метод устанавливает произвольный параметр пользователя param_name для хранения в сессии авторизации. | 4.0.6
SetUserGroup | Метод устанавливает привязку пользователя user_id к группам groups | 4.0.6
SetUserGroupArray | Метод устанавливает привязку текущего пользователя к группам groups | 4.0.6
SetLastActivityDate | Метод обновляет LAST_ACTIVITY_DATE | 7.1.6
CanDoFileOperation | Операции над файлами | 6.5.0


Add

Главный модуль>Классы>CUser>Add (с версии 3.0.6)

CUser::Add

Описание и параметры

mixed
CUser::Add(
 array fields
)

Метод добавляет нового пользователя. При успешном выполнении возвращает ID нового пользователя, в противном случае - вернет "false", а в свойстве LAST_ERROR объекта будет содержаться текст ошибки. Нестатический метод.

Примечание: CUser::Add можно вызывать только как метод инициализированного объекта, а не как статический метод класса CUser.

Параметры

Параметр Описание
fields Массив значений полей, в качестве ключей данного массива допустимо использовать:
  • LOGIN* - логин (имя входа)
  • NAME - имя пользователя
  • LAST_NAME - фамилия пользователя
  • SECOND_NAME - отчество пользователя
  • EMAIL* - E-Mail адрес пользователя
  • PASSWORD* - пароль пользователя
  • CONFIRM_PASSWORD* - подтверждение пароля (должно быть равным PASSWORD)
  • GROUP_ID - массив ID групп к которым будет приписан пользователь
  • ACTIVE - флаг активности пользователя [Y|N]
  • LID - ID сайта по умолчанию для уведомлений
  • ADMIN_NOTES - заметки администратора
  • XML_ID - ID пользователя для связи с внешними источниками (например, ID пользователя в какой-либо внешний базе)
  • EXTERNAL_AUTH_ID - код источника [link=89611]внешней авторизации[/link]
  • PERSONAL_PROFESSION - наименование профессии
  • PERSONAL_WWW - персональная WWW-страница
  • PERSONAL_ICQ - ICQ
  • PERSONAL_GENDER - пол ["M" - мужчина; "F" - женщина]
  • PERSONAL_BIRTHDAY - дата рождения в формате текущего сайта (или текущего языка для административной части)
  • PERSONAL_PHOTO - массив описывающий фотографию, допустимы следующие ключи этого массива:
    • name - имя файла
    • size - размер файла
    • tmp_name - временный путь на сервере
    • type - тип загружаемого файла
    • del - если значение равно "Y", то изображение будет удалено
    • MODULE_ID - идентификатор главного модуля - "main"
  • PERSONAL_PHONE - телефон
  • PERSONAL_FAX - факс
  • PERSONAL_MOBILE - мобильный телефон
  • PERSONAL_PAGER - пэйджер
  • PERSONAL_STREET - улица, дом
  • PERSONAL_MAILBOX - почтовый ящик
  • PERSONAL_CITY - город
  • PERSONAL_STATE - область / край
  • PERSONAL_ZIP - индекс
  • PERSONAL_COUNTRY - страна
  • PERSONAL_NOTES - личные заметки
  • TITLE - обращение к пользователю. Поле актуально при добавлении и обновлении.
  • WORK_COMPANY - наименование компании
  • WORK_DEPARTMENT - департамент / отдел
  • WORK_POSITION - должность
  • WORK_WWW - WWW-страница компании
  • WORK_PHONE - рабочий телефон
  • WORK_FAX - рабочий факс
  • WORK_PAGER - рабочий пэйджер
  • WORK_STREET - улица, дом компании
  • WORK_MAILBOX - почтовый ящик компании
  • WORK_CITY - город компании
  • WORK_STATE - область / край компании
  • WORK_ZIP - индекс компании
  • WORK_COUNTRY - страна компании
  • WORK_PROFILE - направления деятельности компании
  • WORK_LOGO - массив описывающий логотип компании, допустимы следующие ключи этого массива:
    • name - имя файла
    • size - размер файла
    • tmp_name - временный путь на сервере
    • type - тип загружаемого файла
    • del - если значение равно "Y", то изображение будет удалено
    • MODULE_ID - идентификатор главного модуля - "main"
  • WORK_NOTES - заметки касаемо работы пользователя
* - обязательные поля.

Смотрите также

  • Поля CUser
  • CUser::Update
  • CUser::Delete

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

<?
// создадим массив описывающий изображение
// находящееся в файле на сервере
$arIMAGE = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/photo.gif");
$arIMAGE["MODULE_ID"] = "main";

$user = new CUser;
$arFields = Array(
  "NAME"              => "Сергей",
  "LAST_NAME"         => "Иванов",
  "EMAIL"             => "ivanov@microsoft.com",
  "LOGIN"             => "ivan",
  "LID"               => "ru",
  "ACTIVE"            => "Y",
  "GROUP_ID"          => array(10,11),
  "PASSWORD"          => "123456",
  "CONFIRM_PASSWORD"  => "123456",
  "PERSONAL_PHOTO"    => $arIMAGE
);

$ID = $user->Add($arFields);
if (intval($ID) > 0)
    echo "Пользователь успешно добавлен.";
else
    echo $user->LAST_ERROR;
?>


Authorize

Главный модуль>Классы>CUser>Authorize (с версии 3.3.7)

CUser::Authorize

Описание и параметры

bool
CUser::Authorize(
 int user_id,
 bool Save = false,
 bool Update = true
)

Метод непосредственно осуществляет процесс авторизации пользователя. Инициализирует необходимые сессионные переменные и переменные объекта класса CUser. Если авторизация успешна, то возвращает "true", иначе - "false". Нестатический метод.

Параметры

Параметр | Описание | С версии
user_id | ID пользователя. |
bSave | Флаг указывающий на необходимость запоминания авторизации пользователя. Если равен true, то будет сгененрирован случайный хэш, выставлена кука с его значением и этот хэш будет сохранен в базе данных для последующей авторизации методом CUser::LoginByHash. | 4.1.0
Update | Необязательный. По умолчанию "true". | 12.5.10

Смотрите также

  • CUser::Login
  • CUser::LoginByHash
  • CUser::IsAuthorized
  • Событие "OnAfterUserAuthorize"

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

<?
// пример динамического добавления текущего пользователя в группу
// и его дальнейшая переавторизация
global $USER;
$arrGroups_new = array(3,4); // в какие группы хотим добавить
$arrGroups_old = $USER->GetUserGroupArray(); // получим текущие группы
$arrGroups = array_unique(array_merge($arrGroups_old, $arrGroups_new)); // объединим два массива и удалим дубли
$USER->Update($USER->GetID(), array("GROUP_ID" => $arrGroups)); // обновим профайл пользователя в базе
$USER->Authorize($USER->GetID()); // авторизуем
?>


CanDoFileOperation

Главный модуль>Классы>CUser>CanDoFileOperation (с версии 6.5.0)

CUser::CanDoFileOperation

CUser::CanDoFileOperation(
 array $op_name,
 array $arPath
);

Выполнение операций над файлом. Нестатический метод.

Параметры

Параметр | Описание
op_name | Операция
Path Путь. Массив вида:
($arPath = Array($site, $path);)

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

$USER->CanDoFileOperation('fm_create_new_file', $arPath)


ChangePassword

Главный модуль>Классы>CUser>ChangePassword

CUser::ChangePassword

Описание и параметры

array
CUser::ChangePassword(
 string login,
 string checkword,
 string password,
 string CONFIRM_PASSWORD,
 string site_id = SITE_ID,
 string captcha_word = "",
 string captcha_sid = 0,
 string authActions = true
)

Изменяет пароль пользователя, затем вызывает на исполнение метод CUser::SendUserInfo, которая в свою очередь отсылает почтовое сообщение по шаблону типа USER_INFO. Возвращает массив с сообщением о результате выполнения (массив может быть обработан методом ShowMessage). Нестатический метод.

Параметры

Параметр | Описание | С версии
login | Логин пользователя. |
checkword | Контрольная строка для смены пароля. |
password | Новый пароль. |
CONFIRM_PASSWORD | Подтверждение пароля (для успешной смены пароля он должен совпадать с new_password). |
site_id | ID сайта почтового шаблона типа USER_INFO для отсылки уведомления. Необязательный. По умолчанию - текущий сайт. | 3.3.21
captcha_word | Слово в CAPTCHA, если установлена опция использования CAPTCHA. | 16.5.8
captcha_sid | Идентификатор CAPTCHA, если установлена опция использования CAPTCHA. | 16.5.8
authActions | Авторизовать пользователя после смены пароля или нет. По умолчанию true - не авторизовывать. | 17.5.14

Смотрите также

  • CUser::SendPassword
  • CUser::SendUserInfo
  • CUser::Update

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

<?
global $USER;
$arResult = $USER->ChangePassword("admin", "WRD45GT", "123456", "123456");
if($arResult["TYPE"] == "OK") echo "Пароль успешно сменен.";
else ShowMessage($arResult);
?>


Delete

Главный модуль>Классы>CUser>Delete (с версии 3.0.6)

CUser::Delete

CDBResult
CUser::Delete(
 int id
)

Метод удаляет пользователя. Возвращается объект CDBResult. Статический метод.

Параметры

Параметр | Описание
id | ID пользователя.

Смотрите также

  • CUser::Add
  • CUser::Update
  • Событие "OnBeforeUserDelete"
  • Событие "OnUserDelete"

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

<?
if (CUser::Delete(5)) echo "Пользователь удален.";
?>


GetByID

Главный модуль>Классы>CUser>GetByID (с версии 3.0.6)

CUser::GetByID

CDBResult
CUser::GetByID(
 int id
)

Возвращает пользователя по его коду id в виде объекта класса CDBResult. Статический метод.

Параметры

Параметр | Описание
id | ID пользователя.

Смотрите также

  • Поля CUser
  • CUser::GetList
  • CUser::GetByLogin

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

<?
$rsUser = CUser::GetByID(23);
$arUser = $rsUser->Fetch();
echo "<pre>"; print_r($arUser); echo "</pre>";
?>


GetByLogin

Главный модуль>Классы>CUser>GetByLogin (с версии 3.0.12)

CUser::GetByLogin

CDBResult
CUser::GetByLogin(
 string login
)

Возвращает пользователя по его логину login в виде объекта класса CDBResult. Статический метод.

Параметры

Параметр | Описание
login | Логин пользователя.

Смотрите также

  • Поля CUser
  • CUser::GetList
  • CUser::GetByID

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

<?
$rsUser = CUser::GetByLogin("admin");
$arUser = $rsUser->Fetch();
echo "<pre>"; print_r($arUser); echo "</pre>";
?>
$UserLogin = "user";
$rsUser = CUser::GetByLogin($UserLogin);
if($arUser = $rsUser->Fetch())
{
      echo "
"; print_r(); echo "
";
} else {
      echo 'Пользователь с логином "'.$UserLogin.'" не найден!';
}

$dbRes = CUser::GetByLogin('Fedor');
while ($res = $dbRes->Fetch()) {
    var_export($res);
}


GetCount

Главный модуль>Классы>CUser>GetCount (с версии 3.3.0)

CUser::GetCount

int
CUser::GetCount()

Возвращает количество всех пользователей зарегистрированных на сайте. Нестатический метод.

Параметры

Без параметров.

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

<?
echo "На сегодняшний день у нас зарегистрировалось пользователей: ".CUser::GetCount();
?>


GetEmail

Главный модуль>Классы>CUser>GetEmail (с версии 4.0.4)

CUser::GetEmail

string
CUser::GetEmail()

Возвращает E-Mail текущего авторизованного пользователя (как правило вызывается с объекта $USER). Данные берутся из сессии. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • Поля CUser
  • CUser::GetID
  • CUser::GetFullName
  • CUser::GetFirstName
  • CUser::GetLastName
  • CUser::GetParam
  • CUser::GetUserGroup
  • CUser::GetUserGroupArray
  • CUser::GetUserGroupString

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

<?
global $USER;
echo "Ваш E-Mail: ".$USER->GetEmail();
?>


GetExternalAuthList

Главный модуль>Классы>CUser>GetExternalAuthList (с версии 4.0.6)

CUser::GetExternalAuthList

CDBResult CUser::GetExternalAuthList();

Возвращает список всех источников внешней авторизации. Чтобы зарегистрировать свой внешний источник авторизации, необходимо установить обработчик события OnExternalAuthList. Нестатический метод.

Возвращаемое значение

Возвращается объект CDBResult, каждая запись которого состоит из двух полей ID - идентификатор внешнего источника, NAME - название внешнего источника.

Смотрите также

  • Внешняя авторизация
  • OnExternalAuthList
  • Класс CDBResult

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

<?
$rExtAuth = CUser::GetExternalAuthList();
if($arExtAuth = $rExtAuth->GetNext()):
    ?><select name="EXTERNAL_AUTH_ID">
    <option value="">(внутренняя авторизация)</option>
    <?do{?>
        <option value="<?=$arExtAuth['ID']?>"<?
            if($str_EXTERNAL_AUTH_ID==$arExtAuth['ID']) echo ' selected';
        ?>><?=$arExtAuth['NAME']?></option>
    <?}while($arExtAuth = $rExtAuth->GetNext());?>
    </select>
<?endif?>


GetFirstName

Главный модуль>Классы>CUser>GetFirstName (с версии 4.0.4)

CUser::GetFirstName

string
CUser::GetFirstName()

Возвращает имя авторизованного пользователя (как правило вызывается с объекта $USER). Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • Поля CUser
  • CUser::GetID
  • CUser::GetLogin
  • CUser::GetEmail
  • CUser::GetFullName
  • CUser::GetLastName
  • CUser::GetParam
  • CUser::GetUserGroupArray
  • CUser::GetUserGroupString

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

<?
global $USER;
echo "[".$USER->GetID()."] (".$USER->GetLogin().") ".$USER->GetFirstName()." ".$USER->GetLastName();
?>


GetFullName

Главный модуль>Классы>CUser>GetFullName (с версии 3.0.6)

CUser::GetFullName

string CUser::GetFullName()

Возвращает имя и фамилию авторизованного пользователя разделенные пробелом (как правило вызывается с объекта $USER). Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • Поля CUser
  • CUser::GetID
  • CUser::GetLogin
  • CUser::GetEmail
  • CUser::GetFirstName
  • CUser::GetLastName
  • CUser::GetParam
  • CUser::GetUserGroupArray
  • CUser::GetUserGroupString

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

<?
global $USER;
echo "[".$USER->GetID()."] (".$USER->GetLogin().") ".$USER->GetFullName();
?>


GetID

Главный модуль>Классы>CUser>GetID (с версии 3.0.6)

CUser::GetID

int
CUser::GetID()

Возвращает ID текущего авторизованного пользователя (как правило вызывается с объекта $USER). Нестатический метод.

С версии 20.5.46 метод вызывается таким образом:

global $USER;
$USER->GetID();

Параметры

Без параметров.

Смотрите также

  • Поля CUser
  • CUser::GetLogin
  • CUser::GetEmail
  • CUser::GetFullName
  • CUser::GetFirstName
  • CUser::GetLastName
  • CUser::GetParam
  • CUser::GetUserGroupArray
  • CUser::GetUserGroupString

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

<?
global $USER;
echo "[".$USER->GetID()."] (".$USER->GetLogin().") ".$USER->GetFullName();
?>


GetLastName

Главный модуль>Классы>CUser>GetLastName (с версии 4.0.4)

CUser::GetLastName

string
CUser::GetLastName()

Возвращает фамилию авторизованного пользователя (как правило вызывается с объекта $USER). Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • Поля CUser
  • CUser::GetID
  • CUser::GetLogin
  • CUser::GetEmail
  • CUser::GetFullName
  • CUser::GetFirstName
  • CUser::GetParam
  • CUser::GetUserGroupArray
  • CUser::GetUserGroupString

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

<?
global $USER;
echo "[".$USER->GetID()."] (".$USER->GetLogin().") ".$USER->GetFirstName()." ".$USER->GetLastName();
?>


GetList

Главный модуль>Классы>CUser>GetList (с версии 3.0.6)

CUser::GetList

Описание

CDBResult CUser::GetList(
 mixed &by = "timestamp_x",
 string &order = "desc",
 array filter = array(),
 array arParams=array()
)

Возвращает список пользователей в виде объекта класса CDBResult. Статический метод.

Смотрите также

  • Поля CUser
  • CUser::GetByID
  • CUser::GetByLogin

Параметры

Параметр Описание С версии
by ссылка на переменную с полем для сортировки, может принимать значения:
  • id - ID пользователя
  • active - активность
  • last_login - дата последней авторизации
  • login - [dw]имя входа[/dw][di]Если у вас задача найти пользователя именно по логину, то используйте CUser::GetByLogin. Этот метод ищет точное совпадение с логином.[/di]
  • email - E-Mail адрес
  • name - имя
  • ntopcount - параметр постраничной навигации, ограничивающий количество возвращаемых элементов
  • last_name - фамилия
  • timestamp_x - дата изменения
  • date_register - дата регистрации
  • personal_profession - профессия
  • personal_www - WWW-страница
  • personal_icq - номер ICQ
  • personal_gender - пол ("M" - мужской; "F" - женский)
  • personal_birthday - день рождения
  • personal_photo - ID файла-фотографии
  • personal_phone - номер телефона
  • personal_fax - номер факса
  • personal_mobile - номер мобильного
  • personal_pager - номер пейджера
  • personal_street - улица
  • personal_mailbox - почтовый ящик
  • personal_city - город
  • personal_state - область / край
  • personal_zip - почтовый индекс
  • personal_country - код страны
  • personal_notes - дополнительные заметки
  • work_company - наименования компании
  • work_department - отдел
  • work_position - должность
  • work_www - WWW-страница компании
  • work_phone - рабочий телефон
  • work_fax - рабочий факс
  • work_pager - рабочий пейджер
  • work_street - улица компании
  • work_mailbox - почтовый ящик компании
  • work_city - город компании
  • work_state - область / край компании
  • work_zip - почтовый индекс компании
  • work_country - код страны компании
  • work_profile - направление деятельности компании
  • work_notes - дополнительные заметки касаемо места работы
  • admin_notes - комментарий администратора

Начиная с версии ядра 11.0.13 в параметре можно передавать массив вида array("field1"=>"asc", "field2"=>"desc") для множественной сортировки. Значения ключей массива совпадают с перечисленными выше.
оrder Ссылка на переменную с порядком сортировки, может принимать значения:
  • asc - по возрастанию
  • desc - по убыванию

При использовании массива в параметре by данный параметр игнорируется. Значения c nulls не работают, например: desc,nulls.
filter Массив для фильтрации пользователей. (Типы фильтрации [image]) В массиве допустимы следующие индексы:
  • 1ID - по ID пользователя
  • XML_ID - по XML_ID пользователя
  • TIMESTAMP_1 - дата изменения профайла пользователя "с"
  • TIMESTAMP_2 - дата изменения профайла пользователя "по"
  • LAST_LOGIN_1 - дата последнего логина пользователя "с"
  • LAST_LOGIN_2 - дата последнего логина пользователя "по"
  • LAST_ACTIVITY - интервал в секундах
  • ACTIVE - фильтр по активности (Y|N)
  • 1LOGIN_EQUAL - по имени входа (ищет прямое совпадение с логином)
  • 1LOGIN - по имени входа (ищет подстроку в логине)
  • 1NAME - по имени и фамилии
  • 1EMAIL - по E-Mail адресу
  • 1COUNTRY_ID - по коду страны, оставлен для обратной совместимости. Сейчас при его использовании производится фильтрация по WORK_COUNTRY.
  • GROUPS_ID - по группам (массив с кодами групп пользователей)
  • PERSONAL_BIRTHDAY_1 - день рождения "с"
  • PERSONAL_BIRTHDAY_2 - день рождения "по"
  • 1KEYWORDS - по нижеследующим полям профайла помеченных символом - *
  • 1* PERSONAL_PROFESSION - профессия
  • 1* PERSONAL_WWW - WWW-страница
  • 1* PERSONAL_ICQ - номер ICQ
  • 1* PERSONAL_GENDER - пол ("M" - мужской; "F" - женский)
  • 1* PERSONAL_PHOTO - ID файла - фотографии (таблица b_file)
  • 1* PERSONAL_PHONE - номер телефона
  • 1* PERSONAL_FAX - номер факса
  • 1* PERSONAL_MOBILE - номер мобильного
  • 1* PERSONAL_PAGER - номер пейджера
  • 1* PERSONAL_STREET - улица
  • 1* PERSONAL_MAILBOX - почтовый ящик
  • 1* PERSONAL_CITY - город
  • 1* PERSONAL_STATE - область / край
  • 1* PERSONAL_ZIP - почтовый индекс
  • 1* PERSONAL_COUNTRY - код страны (хранится в файлах \bitrix\modules\main\lang\ru\tools.php, \bitrix\modules\main\lang\en\tools.php)
  • 1* PERSONAL_NOTES - дополнительные заметки
  • 1* WORK_COMPANY - наименования компании
  • 1* WORK_DEPARTMENT - отдел
  • 1* WORK_POSITION - должность
  • 1* WORK_WWW - WWW-страница компании
  • 1* WORK_PHONE - рабочий телефон
  • 1* WORK_FAX - рабочий факс
  • 1* WORK_PAGER - рабочий пейджер
  • 1* WORK_STREET - улица компании
  • 1* WORK_MAILBOX - почтовый ящик компании
  • 1* WORK_CITY - город компании
  • 1* WORK_STATE - область / край компании
  • 1* WORK_ZIP - почтовый индекс компании
  • 1* WORK_COUNTRY - код страны компании (хранится в файлах \bitrix\modules\main\lang\ru\tools.php, \bitrix\modules\main\lang\en\tools.php)
  • 1* WORK_PROFILE - направление деятельности компании
  • 1* WORK_NOTES - дополнительные заметки касаемо места работы
  • 1* ADMIN_NOTES - комментарий администратора (доступен для просмотра и редактирования только администратору сайта)
1 - в данных полях допускается сложные условия. Сложные условия для данного поля работают только при указании: ID. При указании !ID и >ID, сложные условия работать не будут.
* - поиск по "KEYWORDS" по сути является поиском по полям отмеченных символом "*"
arParameters Массив с дополнительными параметрами метода. Может содержать ключи:

SELECT - массив с идентификаторами пользовательских полей для их выборки в результат, например array("UF_TEXT_1", "UF_STRUCTURE"). Для указания выборки всех полей используйте маску: array("UF_*").

NAV_PARAMS - массив с параметрами навигации, может использоваться для ограничения размера выборки. Например: array("nPageSize"=>"20"). При указании NAV_PARAMS строится ограниченный по размеру список результатов, учитывающий номер страницы в постраничной навигации (для mysql выборка производится с указанием limit). С версии ядра 11.0.14 в массиве можно указать параметр "nTopCount" для ограничения выборки по количеству записей.

FIELDS (с версии ядра 11.0.13) - массив с идентификаторами полей для выборки. Если не указан или пустой, то выбираются все поля. Возможные значения:

ID | PERSONAL_WWW | PERSONAL_ZIP | IS_ONLINE
ACTIVE | PERSONAL_ICQ | PERSONAL_COUNTRY | WORK_CITY
LAST_LOGIN | PERSONAL_GENDER | PERSONAL_NOTES | WORK_STATE
LOGIN | PERSONAL_PHOTO | WORK_COMPANY | WORK_ZIP
EMAIL | PERSONAL_PHONE | WORK_DEPARTMENT | WORK_COUNTRY
NAME | PERSONAL_FAX | WORK_POSITION | WORK_PROFILE
LAST_NAME | PERSONAL_MOBILE | WORK_WWW | WORK_NOTES
SECOND_NAME | PERSONAL_PAGER | WORK_PHONE | ADMIN_NOTES
TIMESTAMP_X | PERSONAL_STREET | WORK_FAX | XML_ID
PERSONAL_BIRTHDAY | PERSONAL_MAILBOX | WORK_PAGER | PASSWORD
DATE_REGISTER | PERSONAL_CITY | WORK_STREET | LOGIN_ATTEMPTS
PERSONAL_PROFESSION | PERSONAL_STATE | WORK_MAILBOX | STORED_HASH
CHECKWORD_TIME | EXTERNAL_AUTH_ID | CONFIRM_CODE | TITLE
LAST_ACTIVITY_DATE AUTO_TIME_ZONE TIME_ZONE [dw]LID[/dw][di]Не рекомендуется устанавливать 'LID' => SITE_ID. В этом случае в запросе будет (upper(U.LID) like upper('%s1%').

Лучше использовать новое ядро: \Bitrix\Main\UserTable::getList(array("filter"=>array("=LID" => 's1'))); . [/di]
CHECKWORD
6.0.2

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

<?
$filter = Array
(
    "ID"                  => "1 | 2",
    "TIMESTAMP_1"         => "04.02.2004", // в формате текущего сайта
    "TIMESTAMP_2"         => "04.02.2005",
    "LAST_LOGIN_1"        => "01.02.2004",
    "ACTIVE"              => "Y",
    "LOGIN"               => "nessy | admin",
    "NAME"                 => "Виталий & Соколов",
    "EMAIL"               => "mail@server.com | mail@server.com",
    "KEYWORDS"            => "www.bitrix.ru",
    "PERSONAL_PROFESSION" => "системотехник",
    "PERSONAL_GENDER"     => "M",
    "PERSONAL_COUNTRY"    => "4 | 1", // Беларусь или Россия
    "ADMIN_NOTES"         => "\"UID = 145\"",
    "GROUPS_ID"           => Array(1,4,10)
);
$rsUsers = CUser::GetList(($by="personal_country"), ($order="desc"), $filter); // выбираем пользователей
$is_filtered = $rsUsers->is_filtered; // отфильтрована ли выборка ?
$rsUsers->NavStart(50); // разбиваем постранично по 50 записей
echo $rsUsers->NavPrint(GetMessage("PAGES")); // печатаем постраничную навигацию
while($rsUsers->NavNext(true, "f_")) :
    echo "[".$f_ID."] (".$f_LOGIN.") ".$f_NAME." ".$f_LAST_NAME."<br>";
endwhile;
?>

Пример нерабочего вызова, так как оба параметра передаются по значению:

$rsUsers = CUser::GetList(array('sort' => 'asc'), 'sort');

Пример рабочего вызова:

$order = array('sort' => 'asc');
$tmp = 'sort'; // параметр проигнорируется методом, но обязан быть
$rsUsers = CUser::GetList($order, $tmp);

Для фильтрации пользователей с незаполненным полем Город (для других текстовых полей - аналогично):

$filter = array("PERSONAL_CITY" => " ~_% ");


GetLogin

Главный модуль>Классы>CUser>GetLogin (с версии 3.0.6)

CUser::GetLogin

string
CUser::GetLogin()

Возвращает логин текущего авторизованного пользователя (как правило вызывается с объекта $USER). Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • Поля CUser
  • CUser::GetID
  • CUser::GetEmail
  • CUser::GetFullName
  • CUser::GetFirstName
  • CUser::GetLastName
  • CUser::GetParam
  • CUser::GetUserGroupArray
  • CUser::GetUserGroupString

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

<?
global $USER;
echo "[".$USER->GetID()."] (".$USER->GetLogin().") ".$USER->GetFullName();
?>


GetParam

Главный модуль>Классы>CUser>GetParam (с версии 3.0.6)

CUser::GetParam

Описание и параметры

mixed
CUser::GetParam(
 string param_name
)

Возвращает один из параметров пользователя хранимых в сессии авторизации (как правило вызывается с объекта $USER). Нестатический метод.

Параметры

Параметр Описание
param_name Название параметра. Возможны следующие значения:
  • AUTHORIZED - если пользователь авторизован, то "Y"
  • USER_ID - ID пользователя
  • LOGIN - логин
  • EMAIL - E-mail
  • NAME - полное имя (не только имя пользователя, но и фамилию)
  • PERSONAL_PHOTO - фотография
  • PERSONAL_GENDER - пол
  • PERSONAL_WWW - Персональная страница
  • XML_ID - внешний код пользователя
  • EXTERNAL_AUTH_ID -
  • GROUPS - массив групп, которым принадлежит пользователь
  • ADMIN - true, если пользователь принадлежит группе администраторов
  • PASSWORD_HASH - соль и хеш пароля с солью
    $salt . md5($salt . $pass)
    где $salt - 8 случайных символов, которые меняются при каждой смене пароля.
  • SESSION_HASH - хэш сессии
  • FIRST_NAME - имя пользователя
  • LAST_NAME - фамилия пользователя
  • SECOND_NAME - отчество пользователя
  • TITLE - название используемого приложения
  • APPLICATION_ID - идентификатор используемого приложения
  • POLICY
  • AUTO_TIME_ZONE
  • TIME_ZONE
  • TIME_ZONE_OFFSET
  • BX_USER_ID

Смотрите также

  • Поля CUser
  • CUser::IsAdmin
  • CUser::IsAuthorized
  • CUser::GetID
  • CUser::GetLogin
  • CUser::GetEmail
  • CUser::GetFullName
  • CUser::GetFirstName
  • CUser::GetLastName
  • CUser::GetUserGroupArray
  • CUser::GetUserGroupString

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

<?
global $USER;
echo "E-Mail: ".$USER->GetParam("EMAIL");
?>


GetPasswordHash

Главный модуль>Классы>CUser>GetPasswordHash (с версии 3.3.7)

CUser::GetPasswordHash

string
CUser::GetPasswordHash(
 string PASSWORD_HASH
)

Возвращает специальный хеш от пароля пользователя который может быть использован в методах LoginByHash и SavePasswordHash. Нестатический метод.

Параметры

Параметр | Описание
PASSWORD_HASH | Хеш (MD5) от реального пароля пользователя. Для текущего авторизованного пользователя MD5 от реального пароля можно получить с помощью метода $USER->GetParam("PASSWORD_HASH"). Для произвольного пользователя MD5 от пароля можно получить с помощью метода CUser::GetByID (поле "PASSWORD").

Смотрите также

  • CUser::LoginByHash
  • CUser::SavePasswordHash

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

<?
function SetCurrentUserAuthCookie()
{
  global $USER;
  $hash = CUser::GetPasswordHash($USER->GetParam("PASSWORD_HASH"));
  $name = COption::GetOptionString("main", "cookie_name", "BITRIX_SM")."_UIDH";
  @setcookie($name, $hash, time()+60*60*24*30*60, "/");
}
?>


GetUserGroup

Главный модуль>Классы>CUser>GetUserGroup (с версии 3.0.6)

CUser::GetUserGroup

array
CUser::GetUserGroup(
 int id
)

Возвращает массив ID групп, которым принадлежит пользователь с кодом id. GetUserGroup получает данные из записи о пользователях в базе данных. Статический метод.

Параметры

Параметр | Описание
id | ID пользователя.

Смотрите также

  • Класс CGroup
  • CUser::GetUserGroupArray
  • CUser::GetUserGroupString

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

<?
// получим массив групп пользователя ID=12
$arGroups = CUser::GetUserGroup(12);
echo "<pre>"; print_r($arGroups); echo "</pre>";
?>

Принадлежит ли пользователь группе:

// для любого пользователя
echo in_array($group_id, CUser::GetUserGroup($user_id));

// для текущего пользователя
echo in_array($group_id, $USER->GetUserGroupArray());

Принадлежит ли пользователь, который состоит во многих группах заданным:

<?$arGroupAvalaible = array(1,9,12,13,14,15); // массив групп, которые в которых нужно проверить доступность пользователя
$arGroups = CUser::GetUserGroup($USER->GetID()); // массив групп, в которых состоит пользователь
$result_intersect = array_intersect($arGroupAvalaible, $arGroups);// далее проверяем, если пользователь вошёл хотя бы в одну из групп, то позволяем ему что-либо делать
if(!empty($result_intersect)):     print "мне разрешено находится на данной странице или просматривать данную часть страницы";endif;?>


GetUserGroupArray

Главный модуль>Классы>CUser>GetUserGroupArray

CUser::GetUserGroupArray

array
CUser::GetUserGroupArray()

Метод возвращает ID групп которым принадлежит текущий авторизованный пользователь (как правило вызывается с объекта $USER). Нестатический метод.

Параметры

Без параметров.

Примечание. Данные хранятся в сессии. Поэтому необходима переавторизация на сайте, чтобы получить измененные данные.

Смотрите также

  • Класс CGroup
  • CUser::GetUserGroupString
  • CUser::GetUserGroup

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

<?
// получим массив групп текущего пользователя
global $USER;
$arGroups = $USER->GetUserGroupArray();
echo "<pre>"; print_r($arGroups); echo "</pre>";
?>


GetUserGroupList

Главный модуль>Классы>CUser>GetUserGroupList (с версии 4.1.0)

CUser::GetUserGroupList

CUser::GetUserGroupList(
   $ID
)

Метод возвращает объект класса CDBResult. (Не учитывает даты вхождения в группы). Статический метод.

Параметры

Параметр | Описание
ID | ID пользователя

Возвращаемое значение

Возвращает массив групп и период пребывания пользователя в этой группе:

  • GROUP_ID ID группы
  • DATE_ACTIVE_FROM Дата начала активности
  • DATE_ACTIVE_TO Дата окончания активности

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

$res = CUser::GetUserGroupList(1);
while ($arGroup = $res->Fetch()){
   print "<pre>"; print_r($arGroup); print "</pre>";
}


GetUserGroupString

Главный модуль>Классы>CUser>GetUserGroupString (с версии 4.0.4)

CUser::GetUserGroupString

string
CUser::GetUserGroupString()

Метод возвращает строку c перечисленными через запятую ID всех групп которым принадлежит текущий авторизованный пользователь (как правило вызывается с объекта $USER). Данные получаются из сессионной переменной, значение которой соответствует привязке пользователя на момент авторизации. Если пользователь не авторизован, то будет возвращён идентификатор группы "все пользователи". Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • Класс CGroup
  • CUser::GetUserGroupArray
  • CUser::GetUserGroup

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

<?
// получим массив групп текущего пользователя
global $USER;
$strGroups = $USER->GetUserGroupString();
echo $strGroups; // "1,2,3"
?>


IsAdmin

Главный модуль>Классы>CUser>IsAdmin (с версии 3.0.6)

CUser::IsAdmin

bool
CUser::IsAdmin()

Проверяет принадлежность текущего авторизованного пользователя группе администраторов (как правило вызывается с объекта $USER). Возращает "true" - если пользователь принадлежит группе администраторов, в противном случае вернет "false". Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • CUser::IsAuthorized
  • CUser::GetParam

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

<?
global $USER;
if ($USER->IsAdmin()) echo "Вы администратор!";
?>


IsAuthorized

Главный модуль>Классы>CUser>IsAuthorized (с версии 3.0.6)

CUser::IsAuthorized

bool
CUser::IsAuthorized()

Проверяет авторизован ли посетитель сайта (как правило вызывается с объекта $USER). Возвращает "true" если посетитель авторизован, иначе "false". Нестатический метод.

С версии 20.5.46 метод вызывается таким образом:

global $USER;
$USER->IsAuthorized();

Параметры

Без параметров.

Смотрите также

  • CUser::Authorize
  • CUser::Login
  • CUser::LoginByHash
  • CUser::IsAdmin

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

<?
global $USER;
if ($USER->IsAuthorized()) echo "Вы авторизованы!";
?>


IsOnLine

Главный модуль>Классы>CUser>IsOnLine (с версии 7.1.6)

CUser::IsOnLine

CUser::IsOnLine(
    $id,
    $interval=120
)

Метод предназначен для определения статуса "Сейчас на сайте" по ID пользователя. Статический метод.

Параметры

Параметр | Описание
id | ID пользователя
interval | Время в секундах

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

Задать время последней активности пользователя в секундах:

GLOBAL $USER;
CUser::SetLastActivityDate( $USER->GetID() );


Login

Главный модуль>Классы>CUser>Login (с версии 3.0.6)

CUser::Login

Описание и параметры

mixed
CUser::Login(
 string login,
 string password,
 string remember = "N",
 string password_original = "Y"
)

Метод проверяет логин и пароль и если они корректные, то авторизует пользователя. Если авторизация успешная, то возвращает "true", иначе если логин и пароль некорректные, то возвращает массив с ошибкой для функции ShowMessage. Если было превышено количество попыток подключения метод просто не будет авторизовывать пользователя с ошибкой "Неправильный логин или пароль". Нестатический метод.

Параметры

Параметр | Описание | С версии
login | Логин пользователя. |
password | Пароль. Если параметр convert_password_to_md5 = "Y", то в данном параметре необходимо передавать оригинальный пароль, в противном случае необходимо передавать md5 от оригинального пароля. |
remember | Если значение равно "Y", то авторизация пользователя будет сохранена в куках (при следующем заходе посетитель будет автоматически авторизован), в противном случае - авторизация не будет сохранена в куках. В куках сохраняется специальный хеш получаемый с помощью CUser::GetPasswordHash. Затем когда посетитель снова приходит на сайт, система его автоматически авторизует используя CUser::LoginByHash Необязательный. По умолчанию "N". |
password_original | Если значение равно "Y", то это означает что password ещё не сконвертирован в MD5 (т.е. в параметре password передается реальный пароль вводимый пользователем с клавиатуры), если значение равно "N", то это означает что password уже сконвертирован в MD5. Для текущего авторизованного пользователя MD5 от реального пароля можно получить с помощью метода $USER->GetParam("PASSWORD_HASH"). Для произвольного пользователя MD5 от пароля можно получить с помощью CUser::GetByID (поле "PASSWORD"). Необязательный. По умолчанию "Y". До версии 4.0.6 назывался pass2md5. | 3.0.10

Смотрите также

  • CUser::Authorize
  • CUser::IsAuthorized
  • CUser::LoginByHash
  • CUser::Logout
  • Событие "OnBeforeUserLogin"
  • Событие "OnAfterUserLogin"

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

<?
global $USER;
if (!is_object($USER)) $USER = new CUser;
$arAuthResult = $USER->Login("admin", "123456", "Y");
$APPLICATION->arAuthResult = $arAuthResult;
?>


LoginByHash

Главный модуль>Классы>CUser>LoginByHash (с версии 3.3.7)

CUser::LoginByHash

Описание и параметры

mixed
   CUser::LoginByHash(
 string login,
 string hash
)

Метод проверяет логин и специальный хеш от пароля, и если они корректные, то авторизует пользователя. Если авторизация успешная, то возвращает true, иначе возвращает массив с ошибкой для метода ShowMessage. Хэш хранится не для пользователя, а для его сессии и не может быть получен средствами API. Нестатический метод.

Параметры

Параметр | Описание
login | Логин пользователя.
cookie_hash | Специальный хеш от пароля пользователя.

Смотрите также

  • SavePasswordHash
  • GetPasswordHash
  • Событие OnBeforeUserLoginByHash
  • Событие OnAfterUserLoginByHash

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

<?
global $USER;
if (!is_object($USER)) $USER = new CUser;
$cookie_login = ${COption::GetOptionString("main", "cookie_name", "BITRIX_SM")."_LOGIN"};
$cookie_md5pass = ${COption::GetOptionString("main", "cookie_name", "BITRIX_SM")."_UIDH"};
$USER->LoginByHash($cookie_login, $cookie_md5pass);
?>


Logout

Главный модуль>Классы>CUser>Logout (с версии 3.0.6)

CUser::Logout

CUser::Logout()

Заканчивает сеанс авторизации пользователя, при этом удаляются те куки пользователя, которые используются при автоматической авторизации. Нестатический метод.

Параметры

Без параметров.

Смотрите также

  • CUser::Login
  • CUser::Authorize
  • Событие "OnBeforeUserLogout"
  • Событие "OnAfterUserLogout"

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

<?
$USER->Logout();
?>


Register

Главный модуль>Классы>CUser>Register (с версии 3.0.6)

CUser::Register

Описание и параметры

array
CUser::Register(
 string USER_LOGIN,
 string USER_NAME,
 string USER_LAST_NAME,
 string USER_PASSWORD,
 string USER_CONFIRM_PASSWORD,
 string USER_EMAIL,
 string site_id = false,
 string captcha_word = "",
 string captcha_sid = 0
)

Регистрирует нового пользователя, авторизует его и отсылает письмо по шаблону типа NEW_USER. Возвращает массив с сообщением о результате выполнения (массив может быть обработан функцией ShowMessage). Нестатический метод.

Важно! Метод может использоваться только в публичной части сайта!

Параметры

Параметр | Описание | С версии
USER_LOGIN | Логин нового пользователя (не менее 3-х символов). |
USER_NAME | Имя нового пользователя (может быть пустым). |
USER_LAST_NAME | Фамилия нового пользователя (может быть пустым). |
USER_PASSWORD | Пароль (не менее 3-х символов). |
USER_CONFIRM_PASSWORD | Подтверждение пароля (для успешной регистрации должен совпадать с password). |
USER_EMAIL | E-Mail нового пользователя (не менее 3-х символов). E-Mail будет проверен функцией check_email. |
site_id | ID сайта почтового шаблона для отсылки уведомлений (NEW_USER, USER_INFO и др.). Необязательный. По умолчанию - "false", что означает текущий сайт. | 3.3.21
captcha_word | Слово для CAPTCHA. Добавляется если в настройках главного модуля выставлен флаг "Использовать CAPTCHA при регистрации". Если не заполнено вернет: "Слово для защиты от автоматической регистрации введено неверно". | 4.1.4
captcha_sid | ID CAPTCHA. Добавляется если в настройках главного модуля выставлен флаг "Использовать CAPTCHA при регистрации". Если не заполнено вернет: "Слово для защиты от автоматической регистрации введено неверно". | 4.1.4

Смотрите также

  • CUser::SimpleRegister
  • CUser::Login
  • CUser::Add
  • CUser::Authorize
  • Событие "OnAfterUserRegister"
  • Событие "OnBeforeUserRegister"

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

<?
global $USER;
$arResult = $USER->Register("admin", "", "", "123456", "123456", "admin@mysite.ru");
ShowMessage($arResult); // выводим результат в виде сообщения
echo $USER->GetID(); // ID нового пользователя
?>


SavePasswordHash

Главный модуль>Классы>CUser>SavePasswordHash (с версии 3.3.7)

CUser::SavePasswordHash

CUser::SavePasswordHash()

Сохраняет специальный хеш в куках пользователя в целях дальнейшей автоматической авторизации. Для разных сайтов на базе "Битрикс: Управление сайтом", метод всегда сохраняет свой уникальный хеш от одного и того же пароля. Таким образом достигается невозможность использовать одно и тоже значение для авторизации на различных сайтах. Нестатический метод.

Параметры

Нет параметров.

Смотрите также

  • CUser::LoginByHash
  • CUser::GetPasswordHash

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

<?
global $USER;
if ($USER->IsAuthorized()) $USER->SavePasswordHash();
?>


SendPassword

Главный модуль>Классы>CUser>SendPassword (с версии 3.0.6)

CUser::SendPassword

Описание и параметры

array
CUser::SendPassword(
 string login,
 string email,
 string site_id = SITE_ID
)

Отсылает пользователю почтовое сообщение с контрольной строкой для смены пароля. Сообщение отсылается по шаблону типа USER_PASS_REQUEST. Пользователь определяется по логину login или E-Mail адресу - параметр email. Возвращает массив с сообщением о результате выполнения (массив может быть обработан функцией ShowMessage). Нестатический метод.

Параметры

Параметр | Описание | С версии
login | Логин пользователя. |
email | E-Mail адрес пользователя. |
site_id | ID сайта почтового шаблона типа USER_PASS_REQUEST. Необязательный. По умолчанию - текущий сайт. | 3.3.21
captcha_word | Слово для CAPTCHA. Необязательный. Передаётся, если в настройках главного модуля включена опция "Использовать CAPTCHA при восстановлении пароля". |
captcha_sid | ID CAPTCHA. Необязательный. Передаётся, если в настройках главного модуля включена опция "Использовать CAPTCHA при восстановлении пароля". |

Смотрите также

  • CUser::SendUserInfo
  • CUser::ChangePassword

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

<?
global $USER;
$arResult = $USER->SendPassword($USER->GetLogin(), $USER->GetParam("EMAIL"));
if($arResult["TYPE"] == "OK") echo "Контрольная строка для смены пароля выслана.";
else echo "Введенные логин (email) не найдены.";
?>


SendUserInfo

Главный модуль>Классы>CUser>SendUserInfo (с версии 3.0.6)

CUser::SendUserInfo

Описание и параметры

CUser::SendUserInfo(
 int id,
 string site_id,
 string MSG,
 bool Immediate=false,
 string eventName="USER_INFO"
)

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

Параметры

Параметр | Описание | С версии
id | ID пользователя. |
site_id | ID сайта почтового шаблона. До версии 3.3.21 назывался lang. |
MSG | Произвольный текст сообщения (#MESSAGE#). |
Immediate | По умолчанию false. Если передать true, письмо будет отправлено сразу, без записи в БД. | 7.1.2
eventName | Параметр, в котором передаётся строкой тип отправки событий. | 9.5.10

Смотрите также

  • SendPassword

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

<?
$USER_ID = 1;
// отсылаем почтовое сообщение пользователю с ID=1,
// по шаблону привязанному к текущему сайту
CUser::SendUserInfo($USER_ID, SITE_ID, "Приветствуем Вас как нового пользователя нашего сайта!");
?>


SetLastActivityDate

Главный модуль>Классы>CUser>SetLastActivityDate (с версии 7.1.6)

CUser::SetLastActivityDate

CUser::SetLastActivityDate(
 id
);

Метод обновляет LAST_ACTIVITY_DATE. Нестатический метод.

Параметры

Параметр | Описание
ID | Идентификатор пользователя, у которого обновляется LAST_ACTIVITY_DATE.


SetParam

Главный модуль>Классы>CUser>SetParam (с версии 4.0.6)

CUser::SetParam

CUser::SetParam(
 string name,
 mixed value
)

Метод устанавливает произвольный параметр пользователя param_name для хранения в сессии авторизации (как правило вызывается для объекта $USER). Получить значение установленного параметра можно методом CUser::GetParam. Нестатический метод.

Параметры

Параметр | Описание
name | Произвольный параметр.
value | Значение параметра.

Смотрите также

  • CUser::GetParam

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

<?
global $USER;
$USER->SetParam("IP_LOGIN", $_SERVER['REMOTE_ADDR']);
?>


SetUserGroup

Главный модуль>Классы>CUser>SetUserGroup (с версии 4.0.6)

CUser::SetUserGroup

CUser::SetUserGroup(    int user_id,
   array groups
);

Метод устанавливает привязку пользователя user_id к группам groups. Привязка к группам сохраняется в базе данных, но не влияет на уже авторизованного посетителя user_id. Нестатический метод.

Параметры

Параметр | Описание
user_id | Идентификатор пользователя.
groups | Массив со значениями идентификаторов групп пользователей.

Смотрите также

  • CUser::GetUserGroup

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

<?
// привязка пользователя с кодом 10 дополнительно к группе c кодом 5
$arGroups = CUser::GetUserGroup(10);
$arGroups[] = 5;
CUser::SetUserGroup(10, $arGroups);
?>

Если требуется изменить также период активности в группе, массив groups будет иметь вид:

$arGroups = array(
  array(
  'GROUP_ID' => 5,
  'DATE_ACTIVE_FROM'=>'01.02.2009',
  'DATE_ACTIVE_TO'=>'02.02.2009'
  ),
  array(
  'GROUP_ID' => 6,
  'DATE_ACTIVE_FROM'=>'01.03.2009',
  'DATE_ACTIVE_TO'=>'02.03.2009'
  )
);

Добавление группы "одной строкой" (где array(4,5,6) - массив добавляемых групп.):

CUser::SetUserGroup($userID, array_merge(CUser::GetUserGroup($userID), array(4,5,6)));


SetUserGroupArray

Главный модуль>Классы>CUser>SetUserGroupArray (с версии 4.0.6)

CUser::SetUserGroupArray

CUser::SetUserGroupArray(
   array groups
);

Метод устанавливает привязку текущего пользователя к группам groups (как правило вызывается для объекта $USER). Данные получаются из сессионной переменной, значение которой соответствует привязке пользователя на момент авторизации. Привязка к группам не сохраняется в базе данных и при следующей авторизации теряется. Для сохранения привязки в базе данных воспользуйтесь методом CUser::SetUserGroup. Нестатический метод.

Параметры

Параметр | Описание
groups | Массив со значениями идентификаторов групп пользователей.

Смотрите также

  • CUser::GetUserGroupArray

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

<?
// привязка текущего пользователя дополнительно к группе c кодом 5
global $USER;
$arGroups = $USER->GetUserGroupArray();
$arGroups[] = 5;
$USER->SetUserGroupArray($arGroups);
?>


SimpleRegister

Главный модуль>Классы>CUser>SimpleRegister (с версии 3.0.6)

CUser::SimpleRegister

Описание и параметры

array
CUser::SimpleRegister(
 string USER_EMAIL,
 string site_id = SITE_ID,
 string captcha_word = "",
 string captcha_sid = 0
)

Создает нового пользователя предварительно сгенерировав случайный логин и пароль. Возвращает массив с сообщением о результате выполнения (массив может быть обработан функцией ShowMessage). Нестатический метод.

Важно! Метод может использоваться только в публичной части сайта!

Параметры

Параметр | Описание | С версии | По версию
USER_EMAIL | E-Mail нового пользователя (не менее 3-х символов). E-Mail будет проверен функцией check_email. |  |
site_id | ID сайта почтового шаблона для отсылки уведомлений (NEW_USER, USER_INFO и др.). Необязательный. По умолчанию - текущий сайт. |  |
captcha_word | Слово для CAPTCHA. Добавляется если в настройках главного модуля выставлен флаг "Использовать CAPTCHA при регистрации". Если не заполнено вернет: "Слово для защиты от автоматической регистрации введено неверно". | 5.1.6 | 12.0.10
captcha_sid | ID CAPTCHA. Добавляется если в настройках главного модуля выставлен флаг "Использовать CAPTCHA при регистрации". Если не заполнено вернет: "Слово для защиты от автоматической регистрации введено неверно". | 5.1.6 | 12.0.10

Смотрите также

  • CUser::Register
  • CUser::Login
  • CUser::Add
  • CUser::Authorize
  • Событие "OnAfterUserSimpleRegister"
  • Событие "OnBeforeUserSimpleRegister"

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

<?
global $USER;
$arResult = $USER->SimpleRegister("admin@mysite.ru");
ShowMessage($arResult); // выводим результат в виде сообщения
echo $USER->GetID(); // ID нового пользователя
?>


Update

Главный модуль>Классы>CUser>Update (с версии 3.0.6)

CUser::Update

Описание и параметры

bool
CUser::Update(
 int id,
 array fields,
string authActions = true
)

Метод изменяет параметры пользователя с идентификатором id. Возвращает "true", если изменение прошло успешно, при возникновении ошибки метод вернет "false", а в свойстве LAST_ERROR объекта будет содержаться текст ошибки. Нестатический метод.

Параметры

Параметр | Описание | С версии
id | ID пользователя.
fields | Массив значений полей вида array("поле"=>"значение" [, ...]). В качестве полей могут быть использованы все поля CUser, а также GROUP_ID - массив с ID групп пользователей, в которые входит этот пользователь.
authActions | Авторизовать ли пользователя после обновления данных. По умолчанию - true - не авторизовывать.

Смотрите также

  • Поля CUser
  • CUser::Add
  • CUser::Delete

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

<?
$user = new CUser;
$fields = Array(
  "NAME"              => "Сергей",
  "LAST_NAME"         => "Иванов",
  "EMAIL"             => "ivanov@microsoft.com",
  "LOGIN"             => "ivan",
  "LID"               => "ru",
  "ACTIVE"            => "Y",
  "GROUP_ID"          => array(1,2),
  "PASSWORD"          => "123456",
  "CONFIRM_PASSWORD"  => "123456",
  );
$user->Update($ID, $fields);
$strError .= $user->LAST_ERROR;
?>

Для обновления пользовательского поля, вида "список" (где 11,12,13 - это ID значений списка.):

$user = new CUser;
$fields = Array(
"UF_SHOP" => array(11,12,13),
);
$user->Update($ID, $fields);


Класс CUserCounter

Описание

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

При работе со счётчиками учитывайте следующее:

  • Код счетчика может быть не более 50 символов;
  • Значение счетчика не более 18 цифр;
  • При вызове GetValue и GetValues с одинаковым значением переменных $user_id, $site_id запрос на выборку данных уйдет только при первом вызове за хит. В этом нет ничего страшного - так как методы инкремента, установки значений учитывают кэш и обновляют его по мере необходимости.

Как зафиксировать обновление счетчика

Для этого нужно весить обработчик события:

BX.addCustomEvent("onPullEvent", BX.delegate(function(module_id,command,params){
   if (module_id == "main" && command == 'user_counter' && params[BX.message('SITE_ID')] && params[BX.message('SITE_ID')]['__НАЗВАНИЕ_ВАШЕГО_СЧЕТЧИКА__'])
   {
      // вызвать код для обновления счетчика
      // в params[BX.message('SITE_ID')]['__НАЗВАНИЕ_ВАШЕГО_СЧЕТЧИКА__'] будет новое значение счетчика
   }
}, this));

Для мобильной версии:

BX.addCustomEvent("onPull", BX.delegate(function(data){
   if (data.module_id == "main" && data.command == 'user_counter' && data.params[BX.message('SITE_ID')] && data.params[BX.message('SITE_ID')]['__НАЗВАНИЕ_ВАШЕГО_СЧЕТЧИКА__'])
      {
      // вызвать код для обновления счетчика
      // в data.params[BX.message('SITE_ID')]['__НАЗВАНИЕ_ВАШЕГО_СЧЕТЧИКА__'] будет новое значение счетчика
   }
}, this));

Список методов

Метод | Описание | С версии
GetValues | Получение всех счетчиков пользователя. | 11.5.2
GetValue | Получение определенного счетчика пользователя. | 11.5.2
Increment | Увеличение счетчика на единицу. | 11.5.2
Set | Задаёт счетчику произвольное число. | 11.5.2
Clear | Обнуление счетчика. | 11.5.2
ClearAll | Обнуление всех счетчиков. | 11.5.2
ClearByTag | Обнуление всех счетчиков по тегу. | 11.5.6
Decrement | Уменьшение счетчика на нужное значение. | 11.5.6
GetAllValues | Возвращает все значения для всех доступных сайтов. | 12.5.8


Clear

Главный модуль>Классы>CUserCounter>Clear (с версии 11.5.2)

CUserCounter::Clear

CUserCounter::Clear(
 user_id,
 code
 site_id = SITE_ID,
 sendPull = true
);

Метод обнуляет данные счётчика. Нестатический метод.

Параметры

Параметр | Описание | С версии
user_id | Идентификатор пользователя | 11.5.2
code | Код счётчика | 11.5.2
site_id | Идентификатор сайта, необязательный параметр. По умолчанию подставляется текущий сайт. | 11.5.2
sendPull | Необязательный. Отправлять ли мгновенно данные в модуль Push&Pull, для работы "живых счетчиков" (отправка доступна при установке модуля и активации работы с "Сервером очередей", без сервера очередей работает с версии модуля Push&Pull 12.5.4) Если данный счетчик не требуется пробрасывать, необходимо указать false. По умолчанию true. | 12.5.8

Возвращаемое значение

Возвращает true, если действие успешно, false - если нет.

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

CUserCounter::Clear($USER->GetID(), "code3");


ClearAll

Главный модуль>Классы>CUserCounter>ClearAll (с версии 11.5.2)

CUserCounter::ClearAll

CUserCounter::ClearAll(
 user_id,
 sendPull = true
);

Метод позволяет обнулить все счётчики пользователя. Нестатический метод.

Параметры

Параметр | Описание | С версии
user_id | Идентификатор пользователя | 11.5.2
sendPull | Необязательный. Отправлять ли мгновенно данные в модуль Push&Pull, для работы "живых счетчиков" (отправка доступна при установке модуля и активации работы с "Сервером очередей", без сервера очередей работает с версии модуля Push&Pull 12.5.4) Если данный счетчик не требуется пробрасывать, необходимо указать false. По умолчанию true. | 12.5.8

Возвращаемое значение

Возвращает true, если действие успешно, false - если нет.

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

CUserCounter::ClearAll($user_id)


ClearByTag

Главный модуль>Классы>CUserCounter>ClearByTag (с версии 11.5.6)

CUserCounter::ClearByTag

CUserCounter::ClearByTag(
 tag,
 code,
 site_id = SITE_ID,
 sendPull = true
);

Метод производит удаление счетчиков по тегу. Статический метод.

Параметры

Параметр | Описание | С версии
tag | Тег, по которому будут удалены счётчики. | 11.5.6
code | Код удаляемого счётчика. | 11.5.6
site_id | Необязательный. По умолчанию равен SITE_ID. | 11.5.6
sendPull | Необязательный. Отправлять ли мгновенно данные в модуль Push&Pull, для работы "живых счетчиков" (отправка доступна при установке модуля и активации работы с "Сервером очередей", без сервера очередей работает с версии модуля Push&Pull 12.5.4) Если данный счетчик не требуется пробрасывать, необходимо указать false. По умолчанию true. | 12.5.8

Возвращаемое значение

Возвращает true если успешно, false если какая то ошибка.

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

CUserCounter:: ClearByTag("task_11", "task");


Decrement

Главный модуль>Классы>CUserCounter>Decrement (с версии 11.5.6)

CUserCounter::Decrement

CUserCounter::Decrement(
 user_id,
 code,
 site_id = SITE_ID,
 sendPull = true,
 decrement = 1
 )

Метод осуществляет уменьшение счетчика на нужное значение. Статический метод.

Параметры

Параметр | Описание | С версии
user_id | Описание параметра |
code | Описание необязательного параметра |
site_id | Необязательный. По умолчанию равен SITE_ID. |
sendPull | Необязательный. Отправлять ли мгновенно данные в модуль Push&Pull, для работы "живых счетчиков" (отправка доступна при установке модуля и активации работы с "Сервером очередей", без сервера очередей работает с версии модуля Push&Pull 12.5.4) Если данный счетчик не требуется пробрасывать, необходимо указать false. По умолчанию true. | 12.5.8
increment | Значение, на которое нужно уменьшить счетчик. | 14.0.0

Возвращаемое значение

Возвращает true, если действие успешно, false - если нет.

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

CUserCounter::Decrement($USER->GetID(), 'code1');


GetAllValues

Главный модуль>Классы>CUserCounter>GetAllValues (с версии 12.5.8)

CUserCounter::GetAllValues

CUserCounter::GetAllValues(
 $user_id,
);

Метод позволяет получить все значения для всех доступных сайтов. Статический метод.

Параметры

Параметр | Описание | С версии
user_id | Идентификатор пользователя, обязательный параметр. | 12.5.8

Возвращаемое значение

Возвращает все значения для всех доступных сайтов.


GetValue

Главный модуль>Классы>CUserCounter>GetValue (с версии 11.5.2)

CUserCounter::GetValue

CUserCounter::GetValue(
 user_id,
 code
 site_id = SITE_ID
);

Метод предназначена для получения определенного счетчика пользователя. Статический метод.

Параметры

Параметр | Описание | С версии
user_id | Идентификатор пользователя | 11.5.2
code | Код счётчика | 11.5.2
site_id | Идентификатор сайта, необязательный параметр. По умолчанию подставляется текущий сайт. | 11.5.2

Возвращаемое значение

Возвращаются данные определенного счетчика пользователя.

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

echo $code = CUserCounter::GetValue($USER->GetID(), 'code1');


GetValues

Главный модуль>Классы>CUserCounter>GetValues (с версии 11.5.2)

CUserCounter::GetValues

CUserCounter::GetValues(
 $user_id,
 $site_id = SITE_ID
);

Метод позволяет получить список всех счетчиков пользователя. Статический метод.

Параметры

Параметр | Описание | С версии
user_id | Идентификатор пользователя, обязательный параметр. | 11.5.2
site_id | Идентификатор сайта, необязательный параметр. По умолчанию принимает значение текущего сайта. | 11.5.2

Возвращаемое значение

Список счётчиков конкретного пользователя на сайте.

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

$codes = CUserCounter::GetValues($USER->GetID(), SITE_ID);
echo '<pre>'.print_r($codes, 1).'</pre>';


Increment

Главный модуль>Классы>CUserCounter>Increment (с версии 11.5.2)

CUserCounter::Increment

CUserCounter::Increment(
 user_id,
 code,
 site_id = SITE_ID,
 sendPull = true,
 increment = 1
);

Метод позволяет увеличить счётчик пользователя на нужное значение. Статический метод.

Параметры

Параметр | Описание | С версии
user_id | Идентификатор пользователя |
code | Код счётчика |
site_id | Идентификатор сайта, необязательный параметр. По умолчанию подставляется текущий сайт. |
sendPull | Необязательный. Отправлять ли мгновенно данные в модуль Push&Pull, для работы "живых счетчиков" (отправка доступна при установке модуля и активации работы с "Сервером очередей", без сервера очередей работает с версии модуля Push&Pull 12.5.4) Если данный счетчик не требуется пробрасывать, необходимо указать false. По умолчанию true. | 12.5.8
increment | Значение, на которое нужно увеличить счетчик. | 14.0.0

Возвращаемое значение

Возвращает true, если действие успешно, false - если нет.

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

CUserCounter::Increment($USER->GetID(), 'code1');


Set

Главный модуль>Классы>CUserCounter>Set (с версии 11.5.2)

CUserCounter::Set

CUserCounter::Set(
 user_id,
 code,
 value,
 site_id = SITE_ID
 tag = ""
);

Метод позволяет задать для счётчика произвольное число. Статический метод.

Параметры

Параметр | Описание | С версии
user_id | Идентификатор пользователя | 11.5.2
code | Код счётчика | 11.5.2
value | Устанавливаемое значение | 11.5.2
site_id | Идентификатор сайта, необязательный параметр. По умолчанию подставляется текущий сайт. | 11.5.2
tag | Необязательный. Используется для удаления сразу группы похожих счетчиков. | 11.5.6
sendPull | Необязательный. Отправлять ли мгновенно данные в модуль Push&Pull, для работы "живых счетчиков" (отправка доступна при установке модуля и активации работы с "Сервером очередей", без сервера очередей работает с версии модуля Push&Pull 12.5.4) Если данный счетчик не требуется пробрасывать, необходимо указать false. По умолчанию true. | 12.5.8

Возвращаемое значение

Возвращает true, если действие успешно, false - если нет.

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

CUserCounter::Set($USER->GetID(), 'code2', 100500);


Класс CUserFieldEnum

Внимание! Практически все классы для работы с пользовательскими полями объявлены устаревшими с версий 20.0.700 и 20.0.800. Рекомендуется использовать классы ядра D7 [image].

Описание и поля

CUserFieldEnum - класс для работы с пользовательскими полями типа "список".

Может быть использован для получения отображаемых значений списка по коду. Значения данного класса кешируются управляемым кешем. Управление происходит через константу CACHED_b_user_field_enum. По умолчанию время кеширования 1 час. Для отключения кеширования достаточно определить константу CACHED_b_user_field_enum равной false.

Поля

Поле | Тип | Описание
ID | int | ID значения.
USER_FIELD_ID | int | Идентификатор пользовательского поля.
VALUE | varchar (255) | Отображаемое значение.
DEF | char | Является значением по умолчанию (Y|N).
SORT | int | Сортировка. Используется при выводе элемента формы.
XML_ID | varchar (255) | ID значения для связи с внешними источниками (например, ID значения в какой-либо внешний базе). Должен быть уникален в пределах одного USER_FIELD_ID.

Список методов

Метод | Описание | С версии
GetList | Возвращает список значений. |
SetEnumValues | Изменяет список значений. |
DeleteFieldEnum | Полная очиска списка заданного поля. |


DeleteFieldEnum

Главный модуль>Классы>CUserFieldEnum>DeleteFieldEnum (с версии 6.0.2)

CUserFieldEnum::DeleteFieldEnum

CUserFieldEnum::DeleteFieldEnum(
 int FIELD_ID
)

Удаление ВСЕХ значений списка пользовательского поля. Фактически это удаление справочника. Нестатический метод.

Параметры

Параметр | Описание
FIELD_ID | Идентификатор пользовательского поля.

Смотрите также

  • Поля CUserFieldEnum

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

<?
//Пусть для пользователей определено пользовательское свойство
// типа список с кодом UF_GENDER.

//0. определим идентификатор поля.
$arFields = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields("USER");
if(array_key_exists("UF_GENDER", $arFields))
{
    $FIELD_ID = $arFields["UF_GENDER"]["ID"];

    //1. Очистим выпадающий список
    CUserFieldEnum::DeleteFieldEnum($FIELD_ID);
}
?>


GetList

Главный модуль>Классы>CUserFieldEnum>GetList (с версии 6.0.2)

CUserFieldEnum::GetList

Описание и параметры

CDBResult CUserFieldEnum::GetList(
 array aSort = array(),
 array aFilter = array()
)

Возвращает значения списка пользовательского поля в виде объекта класса CDBResult. Для параметра aSort по умолчанию является сортировка по полю SORT, а затем по полю ID по возрастанию. Нестатический метод.

Параметры

Параметр Описание
aSort Массив для сортировки значений. В массиве допустимы следующие ключи:
  • ID - ID значения списка;
  • USER_FIELD_ID - идентификатор пользовательского поля;
  • VALUE - значение для отображения;
  • DEF - флаг умолчания;
  • SORT - сортировка;
  • XML_ID - код внешнего источника.
Значения ключей могут принимать значения:
  • ASC - по возрастанию
  • DESC - по убыванию
aFilter Массив для фильтрации значений. В массиве допустимы следующие ключи:
  • ID - ID значения списка;
  • USER_FIELD_ID - идентификатор пользовательского поля;
  • VALUE - значение для отображения;
  • DEF - флаг умолчания;
  • SORT - сортировка;
  • XML_ID - код внешнего источника.
Значения ключей задают точное соответствие для фильтрации.

Смотрите также

  • Поля CUserFieldEnum

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

<?
//Пусть для пользователей определено пользовательское свойство
// типа список с кодом UF_GENDER. Выведем отображаемое значение для
// текущего пользователя.

//Сначала получим значение пользовательского поля:
global $USER;
if(is_object($USER))
{
    $rsUser = CUser::GetList($by, $order,
        array(
            "ID" => $USER->GetID(),
        ),
        array(
            "SELECT" => array(
                "UF_GENDER",
            ),
        )
    );
    if($arUser = $rsUser->Fetch())
    {
        $rsGender = CUserFieldEnum::GetList(array(), array(
            "ID" => $arUser["UF_GENDER"],
        ));
        if($arGender = $rsGender->GetNext())
            echo $arGender["VALUE"];
    }
}
?>

Пример получения списка вариантов по коду пользовательского поля:

$obEnum = new \CUserFieldEnum;
        $rsEnum = $obEnum->GetList(array(), array("USER_FIELD_ID" => $arUserField["ID"]));

        $enum = array();
        while($arEnum = $rsEnum->Fetch())
        {
            $enum[$arEnum["ID"]] = $arEnum["VALUE"];
        }


SetEnumValues

Главный модуль>Классы>CUserFieldEnum>SetEnumValues (с версии 6.0.2)

CUserFieldEnum::SetEnumValues

Описание и параметры

CUserFieldEnum::SetEnumValues(
 int FIELD_ID,
 array values
)

Изменение значений списка пользовательского поля. Нестатический метод.

Параметры

Параметр Описание
FIELD_ID Идентификатор пользовательского поля.
values
Массив устанавливаемых значений. Ключами массива служат идентификаторы значений списка, а значения ключей определяют новое содержимое списка.

Если ключ начинается с символа "n", то это будет новое значение списка.

Значение ключа в с вою очередь представляет собой массив. Ключи данного массива:
  • VALUE - значение для отображения, если задана пустая строка, то значение будет удалено из списка;
  • DEF - флаг умолчания (Y|N);
  • SORT - сортировка;
  • XML_ID - код внешнего источника, если не задан, то будет вычислен как md5 от VALUE.
  • DEL - если равен Y, то данное значение будет удалено из списка.
Значения ключей задают точное соответствие для фильтрации.

Смотрите также

  • Поля CUserFieldEnum

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

<?
//Пусть для пользователей определено пользовательское свойство
// типа список с кодом UF_GENDER.

//0. определим идентификатор поля.
$arFields = $GLOBALS['USER_FIELD_MANAGER']->GetUserFields("USER");
if(array_key_exists("UF_GENDER", $arFields))
{
    $FIELD_ID = $arFields["UF_GENDER"]["ID"];

    //1. Добавим значение выпадающего списка: "не знаю"

    $obEnum = new CUserFieldEnum;
    $obEnum->SetEnumValues($FIELD_ID, array(
        "n0" => array(
            "VALUE" => "не знаю",
        ),
    ));

    //2. Изменим "не знаю" на "не помню"
    $rsEnum = CUserFieldEnum::GetList(array(), array(
        "VALUE" => "не знаю",
    ));
    if($arEnum = $rsEnum->Fetch())
    {
        $obEnum = new CUserFieldEnum;
        $obEnum->SetEnumValues($FIELD_ID, array(
            $arEnum["ID"] => array(
                "VALUE" => "не помню",
            ),
        ));
    }

    //3. удалим значение "не помню" из списка
    $rsEnum = CUserFieldEnum::GetList(array(), array(
        "VALUE" => "не помню",
    ));
    if($arEnum = $rsEnum->Fetch())
    {
        $obEnum = new CUserFieldEnum;
        $obEnum->SetEnumValues($FIELD_ID, array(
            $arEnum["ID"] => array(
                "DEL" => "Y",
            ),
        ));
    }

}
?>


CUserTypeEntity

Внимание! Практически все классы для работы с пользовательскими полями объявлены устаревшими с версий 20.0.700 и 20.0.800. Рекомендуется использовать классы ядра D7 [image].

Класс CUserTypeEntity расширяет класс CAllUserTypeEntity.

Класс | Описание | С версии
GetByID | Возвращает массив параметров пользовательского поля с кодом ID. |
GetList | Метод возвращает список пользовательских полей |

Смотрите также

  • Добавление, редактирование, удаление пользовательских свойств и их значений


GetByID

Главный модуль>Классы>CUserTypeEntity>GetByID (с версии 6.0.2)

CUserTypeEntity::GetByID

CUserTypeEntity::GetByID(
   int ID
);

Возвращает массив параметров пользовательского поля с кодом ID. Нестатический метод.

Параметры

Параметр | Описание
ID | ID пользовательского поля

Возвращаемое значение

Возвращает массив параметров пользовательского поля. Или false если поле не найдено.

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

<?
$ar_res = CUserTypeEntity::GetByID( $id );
echo $ar_res["NAME"];                // вывод названия
echo "<pre>"; print_r($ar_res); echo "</pre>";       // вывод всего массива
?>

Чтобы получить список возможных значений пользовательского свойства пользователя типа "список":

$rsEnum = CUserFieldEnum::GetList(array(), array("ID" =>$arUser["UF_LEGAL"]));
$arEnum = $rsEnum->GetNext();
echo $arEnum["VALUE"];

$arUser["UF_LEGAL"] - в данном случае значение пользовательского типа "список".


GetList

Главный модуль>Классы>CUserTypeEntity>GetList (с версии 6.0.2)

CUserTypeEntity::GetList

Описание и параметры

CUserTypeEntity::GetList
 (
   Sort=array(),
   Filter=array()
 )

Метод возвращает список пользовательских полей по фильтру $arFilter с сортировкой $arOrder. Статический метод.

Параметры

Параметр Описание
arOrder Массив полей для сортировки, содержащий пары поле сортировки => направление сортировки. Поля сортировки:
  • ID - ID пользовательского поля
  • ENTITY_ID - название объекта, которому принадлежит пользовательское поле.
  • FIELD_NAME - название поля;
  • USER_TYPE_ID
  • XML_ID
  • SORT - значение сортировки;
Направление сортировки:
  • ASC - по возрастанию;
  • DESC - по убыванию.
arFilter Массив вида array("фильтруемое поле" => "значение" [, ...]). Может принимать значения:
  • ID - ID пользовательского поля;
  • ENTITY_ID - название объекта, которому принадлежит пользовательское поле.
    Напр: "ENTITY_ID" => "IBLOCK_".$iblock_id."_SECTION";
  • FIELD_NAME - Название поля;
  • SORT - Значение сортировки;
  • USER_TYPE_ID
  • XML_ID
  • MULTIPLE - Множественность свойства;
  • MANDATORY
  • SHOW_FILTER
  • SHOW_IN_LIST
  • EDIT_IN_LIST
  • IS_SEARCHABLE
  • LANG - ID языка

    Внимание! При не указание в фильтре ключа LANG со значением необходимого языка ('LANG' => 'ru'), поля "Подпись в форме редактирования", "Заголовок в списке" и т.д. не будут участвовать в выборке. ([EDIT_FORM_LABEL], [LIST_COLUMN_LABEL], [LIST_FILTER_LABEL], [ERROR_MESSAGE], [HELP_MESSAGE])

Необязательное. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

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

<?
$rsData = CUserTypeEntity::GetList( array($by=>$order), array() );
while($arRes = $rsData->Fetch())
{
echo $arRes["FIELD_NAME"]."
"; // вывод названия пользовательского поля
echo "<pre>"; print_r($arRes); echo "</pre>"; // вывод массива значений
}
?>


Класс CUtil

Метод | Описание | С версии
translit | Преобразует строку с выбранного языка в транслит. | 9.5.7
PhpToJSObject | Преобразует массив PHP в js | 6.5.0
GetAdditionalFileURL | Метод возвращает url к файлу | 9.5.1


GetAdditionalFileURL

Главный модуль>Классы>CUtil>GetAdditionalFileURL (с версии 9.5.1)

CUtil::GetAdditionalFileURL

result_type
CUtil::GetAdditionalFileURL(
 file,
 bSkipCheck = false
);

Метод возвращает url к файлу с указанием метки версии файла, для его автоматического обновления на клиентской стороны. Метка формируется на основании даты изменения файла и его размера. Статический метод.

Параметры

Параметр | Описание | С версии
file | путь к файлу |
SkipCheck | При установке в true не проверяет наличие файла и не формирует метку. Результат в этом случае равен $file. По умолчанию false. | 9.5.3

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

<link href="<?=CUtil::GetAdditionalFileURL('/bitrix/templates/new/some.css');?>" type="text/css" rel="stylesheet" / >


translit

Главный модуль>Классы>CUtil>translit (с версии 9.5.7)

CUtil::translit

Описание и параметры

result_type
CUtil::translit(
 string str,
 string lang,
 array params ()
);

Метод для транслитерации строки текста. Статический метод.

Параметры

Параметр | Описание
str | Строка текста для транслитерации
lang | Язык с которого производится транслитерация
params Массив параметров:
  • max_len ограничение количества символов, по умолчанию - 100
  • change_case к какому регистру приводить: L - к нижнему, U - к верхнему, false - не изменять. По умолчанию - "L"
  • replace_space чем заменять пробел, по умолчанию: "_"
  • replace_other чем заменять прочие символы, по умолчанию: "_"
  • delete_repeat_replace удалять повторяющиеся пробелы, по умолчанию - "true"
  • safe_chars строка из символов, замена которых не производится

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

<?
$name = "Текст*89";
$arParams = array("replace_space"=>"-","replace_other"=>"-");
$trans = Cutil::translit($name,"ru",$arParams);
echo '<pre>';
var_dump($trans);
echo '</pre>';
?>


CUserTypeString

Внимание! Практически все классы для работы с пользовательскими полями объявлены устаревшими с версий 20.0.700 и 20.0.800. Рекомендуется использовать классы ядра D7 [image].

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

Метод | Описание | С версии
GetFilterData | Метод описывает вид поля фильтрации в компоненте main.ui.filter. |


GetFilterData

Главный модуль>Классы>CUserTypeString>GetFilterData (с версии 18.0.0)

CUserTypeString::GetFilterData

public static function GetFilterData(
   $arUserField,
   $arHtmlControl
)

Метод описывает вид поля фильтрации в компоненте main.ui.filter [image].

Параметры

Параметр | Описание | С версии
arUserField | Массив, описывающий свойство данного типа. |
arHtmlControl | Массив данных по форме. |

Пример

Пример вывода выпадающего списка

{
// ID могут быть как целыми числами, так и строками
   $items = [
       'ID_1' => 'значение_1',
       ...
       'ID_N' => 'значение_N',
   ];

   // значения выпадающего списка
   return [
       "id" => $arHtmlControl["ID"],
    "name" => $arHtmlControl["NAME"],
    "type" => "list",
    "items" => $items,
    "params" => array("multiple" => "Y"), //если нужен множественный выбор
    "filterable" => ""
   ];
}


MyCurledType

Класс MyCurledType является расширением класса CUserTypeString.

Метод | Описание | С версии
GetAdminListViewHTML | Метод вызывается для показа значений в списке. |
GetFilterData | Метод описывает вид поля фильтрации в компоненте main.ui.filter. |
GetFilterHTML | Выводит html для фильтра по свойству на административной странице списка. |
GetSettingsHTML | Метод возвращает безопасный HTML отображения настроек свойства для формы редактирования инфоблока. |
GetUserTypeDescription | Метод возвращает массив описывающий поведение пользовательского свойства. |
OnAfterFetch | Метод обрабатывает запись со значением свойства после выборки из базы. |


GetAdminListViewHTML

function GetAdminListViewHTML(
   $arUserField,
   $arHtmlControl
)

Метод вызывается для показа значений в списке.

Параметры

Параметр | Описание | С версии
arUserField | Массив, описывающий свойство данного типа. |
arHtmlControl | Массив данных по форме. |


GetFilterData

function GetFilterData(
   $arUserField,
   $arHtmlControl
)

Метод описывает вид поля фильтрации в компоненте [dw]main.ui.filter[/dw][di]Компонент системный и не документируется.
В административном разделе отвечает за вывод фильтра в новом гриде.
[/di].

Параметры

Параметр | Описание | С версии
arUserField | Массив, описывающий свойство данного типа. |
arHtmlControl | Массив данных по форме. |


GetFilterHTML

function GetFilterHTML(
   $arUserField,
   $arHtmlControl
)

Выводит html для фильтра по свойству на административной странице списка.

Параметры

Параметр | Описание | С версии
arUserField | Массив, описывающий свойство данного типа. |
arHtmlControl | Массив данных по форме. |


GetSettingsHTML

public function GetSettingsHTML(
   $arUserField,
   $arHtmlControl,
   $bVarsFromForm
)

Метод возвращает безопасный HTML отображения настроек свойства для формы редактирования инфоблока.

Параметры

Параметр | Описание | С версии
arUserField | Массив, описывающий свойство данного типа. |
arHtmlControl | Массив данных по форме. |
bVarsFromForm | ??? |


GetUserTypeDescription

function GetUserTypeDescription(
)

Метод возвращает массив описывающий поведение пользовательского свойства.

Параметры

Без параметров.

Возвращаемое значение

Ключ | Описание | Тип
USER_TYPE_ID | Идентификатор свойства | string
CLASS_NAME | Имя класса | string
DESCRIPTION | Описание свойства | string
BASE_TYPE | Базовый тип свойства | string


OnAfterFetch

public static function OnAfterFetch(
   $field,
   $value
)

Метод обрабатывает запись со значением свойства после выборки из базы. Возвращает обработанное значение.

Параметры

Параметр | Описание | С версии
field | Массив, описывающий свойство данного типа. |
value | Массив данных по форме. |


Функции главного модуля

При разработке сайта на базе системы "1С-Битрикс: Управление сайтом" можно применять функции следующих групп:

  • Строки - функции для работы со строками и текстом.
  • Массивы - функции для работы с массивами.
  • Даты и время - функции для работы с датами, временем и календарем.
  • Файлы и каталоги - функции для работы с файловой системой сайта.
  • Элементы HTML - функции для автоматического построения элементов форм.
  • Фильтр и сортировка - функции для построения и работы с фильтрами и сортировками.
  • Модули - функции для работы с модульной системой сайта.
  • Языковые файлы - функции для локализации скриптов сайта (для показа сайта на разных языках).
  • Отладка - функции для облегчения отладки сайта.
  • Прочее - прочие функции.


Обзор функций

Функции для обработки строк и текста:

Метод | Описание | С версии
TxtToHTML | Конвертирует обычный текст в HTML-код форматирующий исходный текст. | 3.0.3
HTMLToTxt | Преобразует исходный HTML-код в обычный текст путём удаления тегов или замены их на эквивалентное текстовое форматирование. | 3.0.3
TruncateText | Отсекает от строки все символы свыше указанной длины. Если отсечение произошло, то к строке справа дописывается многоточие. | 3.0.3
InsertSpaces | Разбивает длинные слова тексте. Возвращает текст в котором максимальная длина каждого слова не превышает заданной длины. | 3.0.3
RandString | Возвращает строку указанной длины, состоящую из случайных символов. | 3.0.3
ToUpper | Преобразует символы исходной строки в верхний регистр. | 3.0.3
ToLower | Преобразует символы исходной строки в нижний регистр. | 4.0.6
htmlspecialcharsEx | Переводит текст в HTML-безопасный вид, заменяя специальные символы их визуальным HTML представлением. | 3.2.5
htmlspecialcharsBack | Переводит текст из HTML-безопасного вида в исходное представление. | 3.0.11
utf8win1251 | Конвертирует строку из кодировки UTF-8 в Windows-1251. | 4.0.5
TrimEx | Удаляет из строки символ с заданной стороны. | 3.0.3
TrimExAll | Удаляет все крайние символы. | 3.0.3
Bxstrrpos | Возвращает позицию последнего вхождения строки. | 4.0.14
CheckSerializedData | Проверка на валидность серилизованной строки. | 9.1.2


Bxstrrpos

function
Bxstrrpos(
 haystack,
 needle
);

Возвращает позицию последнего вхождения строки needle в haystack. Работает с UTF строками.

Параметры функции

Параметр | Описание
haystack | Стек
needle | Строка


CheckSerializedData

CheckSerializedData(
 $str,
 $max_depth = 200,
);

Проверка на валидность серилизованной строки. Всегда, при работе с неизвестным источником серилизованных данных необходимо делать проверку на валидность. Пример взлома [image].

Параметры функции

Параметр | Описание
str | Серилизованная строка
max_depth | Максимальная вложенность данных обьекта или массива.

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

if (CheckSerializedData($_REQUEST["LIST_DATA"])) {
   $arData = unserialize($_REQUEST["LIST_DATA"]);
}


htmlspecialcharsBack

Описание и параметры

string
htmlspecialcharsBack(
 string text
);

Переводит текст из HTML-безопасного вида в исходное представление, заменяя в тексте:
Исходные символы | После замены
&lt; | <
&gt; | >
&quot; | "
&amp; | &

Параметры функции

Параметр | Описание
text | Текст для преобразования.

Смотрите также

  • htmlspecialcharsEx

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

<?
$text = '&quot;если a&gt;b и b&gt;c, то a&gt;c&quot;'
$res = htmlspecialcharsBack($str);
// в переменной $res будет:
// "если a>b и b>c, то a>c"
?>


htmlspecialcharsEx

Описание и параметры

string
htmlspecialcharsEx(
 string text
);

Переводит текст в HTML-безопасный вид, заменяя специальные символы их визуальным HTML представлением:
Исходные символы | После замены
< | &lt;
> | &gt;
" | &quot;
&quot; | &amp;quot;
&amp; | &amp;amp;
&lt; | &amp;lt;
&gt; | &amp;gt;

Примечание: в отличии от стандартной PHP функции htmlspecialchars, данная функция позволяет задавать в тексте символы в виде: &код_символа;

Параметры функции

Параметр | Описание
text | Текст для преобразования.

Смотрите также

  • htmlspecialcharsBack

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

<?
$text = '"если a>b и b>c, то a>c"';

$res = htmlspecialcharsEx($text);
// в переменной $res будет:
// &quot;если a&gt;b и b&gt;c, то a&gt;c&quot;

echo $res;
// на экране будет:
// "если a>b и b>c, то a>c"
?>


HTMLToTxt

Описание и параметры

string
HTMLToTxt(
 string text,
 string host = "",
 array delete = array(),
 string maxlen=70
);

Преобразует исходный HTML-код в обычный текст путём удаления тегов или замены их на эквивалентное текстовое форматирование.

Параметры функции

Параметр | Описание | С версии
text | Исходный текст в формате HTML. |
host | Web-адрес сайта. Если задан, то дописывается перед каждой ссылкой в HTML для формирования абсолютной ссылки. Необязательный параметр. По умолчанию равен - "". |
delete | Массив шаблонов регулярных выражений, которые удаляются из текста. Необязательный параметр. По умолчанию - пустой массив. До версии главного модуля 9.0.7 шаблоны были для функции eregi_replace. Начиная с указанной версии - preg_replace. |
maxlen | Вставляет тег <br/> через число символов, указанных в значении. Что бы запретить подстановку этого тега достаточно указать false. | 5.9.3

Смотрите также

  • TxtToHTML

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

Вызов:

<?
$str = '
<table>
  <tr>
    <td valign=top><b><a href="/ru/products/sitemanager/editions/business.php">Бизнес</a>
  - </B>полная версия продукта для управления интернет-магазином, интеграция
  с "1С:Торговля и Склад", поддержка дилерских сетей.<BR><FONT class=smalltext><b>$1699</B>
  (MySQL-версия)<br><b>$24500</b>
  (Oracle-версия)</font></td>
  </tr>
</table>
<ul>
  <li>Пункт 1</li>
  <li>Пункт 2</li>
  <li>Пункт 3</li>
</ul>
';
echo HTMLToTxt($str, "http://www.bitrix.ru");
?>

Результат:

Бизнес [ http://www.bitrix.ru/ru/products/sitemanager/editions/business.php ]
- полная версия продукта для управления интернет-магазином, интеграция с
"1С:Торговля и Склад", поддержка дилерских сетей.
$1699(MySQL-версия)
$24500 (Oracle-версия)

- Пункт 1
- Пункт 2
- Пункт 3


InsertSpaces

string
InsertSpaces(
 string text,
 int MaxChar = 80,
 string symbol = " ",
 bool HTML=false
);

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

Параметры функции

Параметр | Описание | С версии
text | Исходный текст. |
max_length | Максимальное количество символов в слове. Более длинные слова разбиваются символом заданным в параметре symbol. |
symbol | Символ которым будут разбиты слова длина которых превышает max_length. | 4.0.6
HTML | Необязательный. По умолчанию - "false". | 9.5.0

Смотрите также

  • TruncateText

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

<?
$str = "1234567890 1234 123456";
echo InsertSpaces($str, 5);
// результатом будет строчка "12345 67890 1234 12345 6"
?>


randString

string
randString(
 int pass_len = 10,
 pass_chars=false
);

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

Параметры функции

Параметр | Описание | С версии
pass_len | Длина результирующей случайной строки.
Набор символов набор символов. Необязательный. По умолчанию: abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLNMOPQRSTUVWXYZ0123456789.

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

Пример:
echo randString(7, array(
  "abcdefghijklnmopqrstuvwxyz",
  "ABCDEFGHIJKLNMOPQRSTUVWXYZ",
  "0123456789",
  "!@#\$%^&*()",
));
7.1.0

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

<?
$new_password = randString(7);
echo "Новый пароль: ".$new_password;
// выводит строку "Новый пароль: fK4ftTP"
?>


ToLower

string
ToLower(
  string text,
 string lang = false
);

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

Примечание. Данную функцию можно использовать в случае если возникают проблемы с преобразованием кириллических символов стандартной PHP функцией strtolower. Иногда это происходит на некоторых хостингах.

Параметры функции

Параметр | Описание | С версии
text | Исходная строка. |
lang | Идентификатор языка. | 10.0.11

Смотрите также

  • ToUpper

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

<?
$lower = ToLower("АБВГД ABCDEF");
echo "Нижний регистр: ".$lower;
// выводит строку "Нижний регистр: абвгд abcdef"
?>


ToUpper

string
ToUpper(
  string text,
 string lang = false
);

Преобразует символы исходной строки в верхний регистр. Данная функция, помимо символов других алфавитов, корректно конвертирует кириллические символы (русские символы) в верхний регистр.

Примечание. Данную функцию можно использовать в случае если возникают проблемы с преобразованием кириллических символов стандартной PHP функцией strtoupper. Иногда это происходит на некоторых хостингах.

Параметры функции

Параметр | Описание | С версии
text | Исходная строка. |
lang | Идентификатор языка. | 10.0.11

Смотрите также

  • ToLower

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

<?
$upper = ToUpper("абвгд abcdef");
echo "Верхний регистр: ".$upper;
// выводит строку "Верхний регистр: АБВГД ABCDEF"
?>


TrimEx

function
TrimEx(
 str,
 symbol,
 side= = "both",
);

Удаляет из строки $str символ $symbol со стороны $side. Функция удаляет не более одного символа с каждой стороны.

Параметры функции

Параметр | Описание
str | Строка, откуда производится удаление
symbol | Символы, подлежащие удалению
side С какой стороны удаление:
  • both - в начале и конце строки;
  • left - в начале строки;
  • right - в конце строки.


TrimExAll

function
TrimExAll(
 str,
 symbol,
);

Удаляет все крайние символы $symbol в строке $str.

Параметры функции

Параметр | Описание
str | Строка, откуда производится удаление
symbol | Символы, подлежащие удалению


TruncateText

string
TruncateText(
 string text,
 int Len
);

Отсекает от строки все символы свыше указанной длины. Если отсечение произошло, то к строке справа дописывается многоточие.

Параметры функции

Параметр | Описание
text | Исходная строка.
Len | Длина конечной строки.

Смотрите также

  • InsertSpaces

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

<?
$str = "1234567890";
echo TruncateText($str, 7);
// результатом будет строка "1234567..."
?>


TxtToHTML

Описание и параметры

string
TxtToHTML(
 string text,
 bool make_url = true,
 int max_string = 0,
 string quote_tag_enabled = "N",
 string not_convert_amp = "Y",
 string code_tag_enabled = "N",
 string biu_tags_enabled = "N",
 string quote_table_class = "quotetable",
 string quote_head_class = "tdquotehead",
 string quote_body_class = "tdquote",
 string code_table_class = "codetable",
 string code_head_class = "tdcodehead",
 string code_body_class = "tdcodebody",
 string code_textarea_class = "codetextarea",
 string link_class = "txttohtmllink",
 array  event = array()
);

Конвертирует обычный текст в HTML-код форматирующий исходный текст.

Параметры функции

Параметр | Описание
text | Исходный текст.
make_url Если значение "true", то - преобразовывать подстроки, которые представляют собой web-адреса (http://... или mailto:), в HTML ссылки.
Необязательный параметр. По умолчанию - "true".
max_string Максимальная длина слова. Все слова длиннее этого параметра разбиваются пробелами. Значение "0" - означает "не разбивать слова".
Необязательный параметр. По умолчанию - "0".
quote_tag_enabled Если значение - "Y", то спец. тег <QUOTE>...</QUOTE> (цитата) будет преобразован в HTML таблицу (визуально цитата будет обрамлена рамкой).
Необязательный параметр. По умолчанию - "N".
not_convert_amp Если значение - "Y", то "&" не будет преобразован "&amp;".
Необязательный параметр. По умолчанию - "Y".
code_tag_enabled Если значение - "Y", то спец. тег <CODE>...</CODE> (код) будет преобразован в HTML элемент textarea, в свою очередь обрамленный таблицей (визуально код будет обрамлен рамкой и выведен в textarea).
Необязательный параметр. По умолчанию - "N".
biu_tags_enabled | Если значение - "Y", то спец. теги <b>...</b>, <i>...</i>, <u>...</u> будут преобразованы в соответствующие им HTML теги.
quote_table_class CSS класс на таблицу цитаты (<quote>).
Необязательный параметр. По умолчанию - "quotetable".
quote_head_class CSS класс на первую ячейку (TD) таблицы цитаты (<quote>).
Необязательный параметр. По умолчанию - "tdquotehead".
quote_body_class CSS класс на вторую ячейку (TD) таблицы цитаты (<quote>):
<table class="quote_table_class">
    <tr>
         <td class="quote_head_class"> ...
         </td>
    </tr>
    <tr>
         <td class="quote_body_class"> ...
         </td>
    </tr>
</table>
Необязательный параметр. По умолчанию - "tdquote".
code_table_class CSS класс на таблицу кода (<code>).
Необязательный параметр. По умолчанию - "codetable".
code_head_class CSS класс на первую TD таблицы кода (<code>).
Необязательный параметр. По умолчанию - "tdcodehead".
code_body_class CSS класс на вторую TD таблицы кода (<code>).
Необязательный параметр. По умолчанию - "tdcodebody".
code_textarea_class CSS класс на textarea в таблице кода (<code>):
<table class="code_table_class">
    <tr>
         <td class="code_head_class"> ... </td>
    </tr>
    <tr>
         <td class="code_body_class">
             <textarea class="code_textarea_class"> ...
             </textarea>
         </td>
    </tr>
</table>
Необязательный параметр. По умолчанию - "codetextarea".
link_class CSS класс на ссылках:
<a class="link_class"> ... </a>
Необязательный параметр. По умолчанию - "txttohtmllink".
event В данном массиве можно задать идентификаторы типа события, которое будет фиксироваться при клике на HTML ссылке. Параметр работает, только если make_url == true.

Допустимы следующие ключи данного массива:
  • EVENT1 - идентификатор event1 типа события;
  • EVENT2 - идентификатор event2 типа события;
  • EVENT3 - идентификатор event3 типа события;
  • SCRIPT - путь относительно корня к скрипту фиксирующему событие и осуществляющему редирект.

Смотрите также

  • HTMLToTxt

Пример работы функции

Вызов:

$text = "
текст текст текст текст
текст текст текст текст
длиннноесловодлиннноеслово
<code>код код код</code>
<quote>цитата цитата цитата</quote>
<b>жирный текст</b>
<i>курсив</i>
<u>подчёркнутый</u>
ссылка: http://www.1c-bitrix.ru
email: support@1c-bitrix.ru
";
echo TxtToHTML(
    $text,
    true,
    20,
    "Y",
    "N",
    "Y",
    "Y",
    "quotetable",
    "tdquotehead",
    "tdquote",
    "codetable",
    "tdcodehead",
    "tdcodebody",
    "codetextarea"
    );

Результат:

текст текст текст текст <br>
текст текст текст текст <br>
длиннноесловодлиннн оеслово<br>
<table class='codetable'>
  <tr>
    <td class='tdcodehead'>Код</td>
  </tr>
  <tr>
    <td class='tdcodebody'>
      <textarea class='codetextarea' contentEditable=false cols=60 rows=15 wrap=virtual>код код код</textarea></td>
    </tr>
</table><br>
<table class='quotetable' width='95%' border='0' cellpadding='3' cellspacing='1'>
  <tr>
    <td class='tdquotehead'>Цитата</td>
  </tr>
  <tr>
    <td class='tdquote'>цитата цитата цитата</td>
  </tr>
</table><br>
<b>жирный текст</b><br>
<i>курсив</i><br>
<u>подчёркнутый</u><br>
ссылка: <a class="txttohtmllink" href="http://www.1c-bitrix.ru">http://www.1c-bitrix.ru</a><br>
email: <a class="txttohtmllink" href="mailto:support@1c-bitrix.ru">support@1c-bitrix.ru</a>

CSS (его предварительно необходимо подключить до вызова функции):

.quotetable, .codetable {width:90%}

.quotetable .tdquotehead,
.quotetable .tdquote,
.codetable  .tdcodehead,
.codetable  .tdcodebody,
.codetextarea {padding: 2px; font-family: Arial; font-size:12px; color:#000000}

.quotetable .tdquotehead,
.codetable  .tdcodehead {font-weight:bold}

.quotetable .tdquote,
.codetable  .tdcodebody {border: 1px solid Black}

.quotetable .tdquotehead,
.quotetable .tdquote,
.codetable  .tdcodehead,
.codetable  .tdcodebody,
.codetextarea {background-color: #FFFFFF}

.codetextarea {
  border: solid 0px;
  width: 100%;
  overflow: auto;
  scrollbar-shadow-color: #000000;
  scrollbar-arrow-color:  #000000;
  scrollbar-base-color:   #000000}

.codetextarea {
  scrollbar-face-color:       #FFFFFF;
  scrollbar-highlight-color:  #FFFFFF;
  scrollbar-track-color:      #FFFFFF;
  scrollbar-darkshadow-color: #FFFFFF}

Визуальное представление (то, что мы увидим на экране монитора):

текст текст текст текст
текст текст текст текст
длиннноесловодлиннн оеслово
Код.

Цитата.
цитата цитата цитата.

жирный текст
курсив
подчёркнутый
ссылка: http://www.1c-bitrix.ru
email: support@1c-bitrix.ru


utf8win1251

string
utf8win1251(
  string text
);

Конвертирует строку из кодировки UTF-8 в кодировку Windows 1251.

Параметры функции

Параметр | Описание
text | Исходная строка.

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

<?
echo utf8win1251("Р±РёС‚СЂРёРєСЃ");
// выводит строку "битрикс"
?>


Обзор функций

Функции для работы с массивами:

Метод | Описание | С версии
TrimArr | Удаляет из массива все элементы с пустыми значениями. | 3.0.3
is_set | Проверяет переменную (или ключ массива) на существование. | 3.0.3
initvar | Инициализирует переменную. | 3.0.3


initvar

function
initvar(
 varname,
 value=""
);

Инициализирует переменную с именем в $varname значением $value. Если переменная уже определена, ее значение не меняется.

Параметры функции

Параметр | Описание
varname | Имя переменной
value | Значение переменной


is_set

Описание и параметры

bool
is_set(
 mixed &var,
 string key = false
);

Проверяет переменную (или ключ массива) на существование. Возвращает "true", если переменная var установлена, либо найден ключ key среди ключей массива var. В противном случае возвращает "false".

Примечание. При проверке на существование элемента массива, необходимо учитывать, что в отличии от стандартной функции isset, данная функция возвратит "true", даже если найденный элемент массива имеет значение "null" (см. пример ниже).

Параметры функции

Параметр | Описание
var | В данном параметре может задаваться переменная произвольного типа. Если это массив, то в key необходимо задать ключ, существование которого будет проверено. Если в var задать не массив, то функция просто проверит инициализирована ли данная переменная или нет (в этом случае работа функции будет идентичная стандартной PHP функции isset).
key | Если в var задан массив, то в данном параметре необходимо задать ключ для проверки его наличия в массиве var.

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

<?

/********************************************
            пример на массиве
********************************************/

$ar = array("a" => "", "b" => null);

if (is_set($ar, "a")) echo 'Ключ "a" в массиве $ar найден.';
else echo 'Ключ "a" в массиве $ar не найден.';
// на экране будет: "Ключ "a" в массиве $ar найден."

if (isset($ar["a"])) echo 'Элемент массива $ar с ключом "a" инициализирован.';
else echo 'Элемент массива $ar с ключом "a" не инициализирован.';
// на экране будет: "Элемент массива $ar с ключом "a" инициализирован."

if (is_set($ar, "b")) echo 'Ключ "b" в массиве $ar найден.';
else echo 'Ключ "b" в массиве $ar не найден.';
// на экране будет: "Ключ "b" в массиве $ar найден."

// НО!
if (isset($ar["b"])) echo 'Элемент массива $ar с ключом "b" инициализирован.';
else echo 'Элемент массива $ar с ключом "b" не инициализирован.';
// (!) на экране будет: "Элемент массива $ar с ключом "b" не инициализирован."

if (is_set($ar, "с")) echo 'Ключ "с" в массиве $ar найден.';
else echo 'Ключ "с" в массиве $ar не найден.';
// на экране будет: "Ключ "с" в массиве $ar не найден."

/********************************************
  пример на обычной переменной (не массиве)
********************************************/

$init_var = "A";
if (is_set($init_var)) echo 'Переменная $init_var инициализированна.';
else echo 'Переменная $init_var не инициализированна.';
// на экране будет: "Переменная $init_var инициализированна."

if (is_set($not_init_var)) echo 'Переменная $init_var инициализированна.';
else echo 'Переменная $init_var не инициализированна.';
// на экране будет: "Переменная $init_var не инициализированна."
?>


TrimArr

bool
TrimArr(
 array &arr,
 bool trim_value=false
);

Функция удаляет из массива все элементы с пустыми значениями. Возвращает "true", если был удален хоть один пустой элемент, иначе - "false". Функция работает только с линейными массивами.

Параметры функции

Параметр | Описание
arr | Исходный массив. Данный параметр задается в виде ссылки на исходную переменную.
trim_value | Необязательный. По умолчанию стоит "false". Если передать true, к каждому элементу массива будет применена функция trim().

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

<?
$ar = array(
  "a" => "1",
  "b" => " ",
  "c" => "",
  "d" => "2"
);
TrimArr($ar);
// массив $ar будет выглядеть как array("a" => "1", "d" => "2")
?>


Обзор функций

Функции для работы с датами, временем и календарем:

Метод | Описание | С версии
Calendar | Возвращает иконку, при нажатии на которую появляется стандартное окно выбора даты. Выбранная в этом окне дата вставляется в указанное поле формы (либо, в случае выбора интервала - в два поля). | 3.0.3
CalendarDate | Возвращает поле ввода и иконку, при нажатии на которую появляется стандартное окно выбора даты. Выбранная в этом окне дата вставляется в поле ввода. | 3.0.3
CalendarPeriod | Отображает два поля ввода для дат "с" и "по" с иконками, при нажатии на которые появляется стандартное окно выбора даты, помимо этого рядом с первым полем выводится выпадающий список дней для быстрого выбора даты "с". | 3.0.3
ParseDateTime | Разбивает дату и время на части в соответствии с заданным форматом. | 4.0.6
ConvertDateTime | Конвертирует дату из формата одного из сайтов в строку произвольного формата. | 4.0.6
MakeTimeStamp | Конвертирует время из строки в Unix-формат. | 4.0.6
ConvertTimeStamp | Конвертирует время из Unix-формата в строку в формате сайта. | 4.0.6
AddToTimeStamp | Добавляет к дате в Unix-формате заданный интервал времени. | 4.0.6
getmicrotime | Возвращает текущее время в Unix-формате. | 3.0.3
[link=253704]FormatDate[/link] | Возвращает строку отформатированную в соответствии с заданным форматом. | 9.0.2
IsAmPmMode | Определяет используется ли 12-и часовой формат времени. | 11.5.4
FormatDateFromDB | Возвращает дату на языке сайта. | 11.5.4

Смотрите также

  • Работа с датой и временем
  • Методы класса Класс CDatabase для работы с датой и временем
  • CheckFilterDates


AddToTimeStamp

Описание и параметры

int
AddToTimeStamp(
 array add,
 int tmp = false
);

Добавляет к дате в Unix-формате заданный интервал времени. Возвращает новую дату также в Unix-формате.

Параметры функции

Параметр Описание
add Массив, описывающий добавляемый интервал времени. Допустимы следующие ключи данного массива:
  • DD - дни
  • MM - месяцы
  • YYYY - годы
  • HH - часы
  • MI - минуты
  • SS - секунды
tmp Время, к которому будет добавляться интервал в Unix-формате.
Необязательный параметр, по умолчанию - текущее время.

Смотрите также

  • MakeTimeStamp
  • ConvertTimeStamp

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

$date = "07.04.2005 11:32:00";
echo "Исходная дата: ".$date."<br>";

// получим Unix timestamp из заданной даты
$stmp = MakeTimeStamp($date, "DD.MM.YYYY HH:MI:SS");

// добавим к полученному Unix timestamp
// 1 день, 1 год, 1 час, 1 минуту, 1 секунду и отнимем 1 месяц
$arrAdd = array(
    "DD"	=> 1,
    "MM"	=> -1,
    "YYYY"	=> 1,
    "HH"	=> 1,
    "MI"	=> 1,
    "SS"	=> 1,
);
$stmp = AddToTimeStamp($arrAdd, $stmp);

// выведем полученную дату
echo "Результат: ".date("d.m.Y H:i:s", $stmp); // 07.03.2006 12:33:01
?>


Calendar

Описание и параметры

string
Calendar(
 string FieldName,
 string FormName = "skform",
 string FromName = "",
 string ToName = ""
);

Возвращает иконку, при нажатии на которую появляется стандартное окно выбора даты. Выбранная в этом окне дата вставляется в указанное поле формы (либо, в случае выбора интервала - в два поля). Работает на JavaScript.

Параметры функции

Параметр | Описание
FieldName | Имя поля, в которое будет вставлена выбранная дата.
FormName | Имя формы, в которой находится поле для вставки даты. Необязательный параметр, по умолчанию принимает значение "skform".
FromName | Имя поля, в которое будет вставлена первая дата из выбранного интервала (дата "с"). Необязательный параметр, по умолчанию - "".
ToName | Имя поля, в которое будет вставлена вторая дата из выбранного интервала (дата "по"). Необязательный параметр, по умолчанию - "".

Смотрите также

  • CalendarDate
  • CalendarPeriod

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

<form action="<?=$APPLICATION->GetCurPage()?>" method="POST" name="curform">
<input type="text" class="typeinput" name="DATE" size="12">
<?=Calendar("DATE", "curform")?>
</form>


CalendarDate

Описание и параметры

string
CalendarDate(
 string FromName,
 string FromVal,
 string FormName = "skform",
 string size = "10",
 string param = "class=\"typeinput\""
);

Возвращает поле ввода и иконку, при нажатии на которую появляется стандартное окно выбора даты. Выбранная в этом окне дата вставляется в поле ввода. Работает на JavaScript.

Параметры функции

Параметр Описание С версии
FromName Имя поля ввода:
<input type="text" name="field_name" ... >
FromVal Начальное значение для поля ввода:
<input type="text" value="field_value" ... >
FormName Имя формы, в которой находится поле ввода для вставки даты:
<form name="form">
Необязательный параметр, по умолчанию принимает значение - "skform".
size Ширина поля ввода:
<input type="text" size="field_size" ... >
Необязательный параметр, по умолчанию принимает значение - "10".
param Строка дополнительных атрибутов поля ввода:
<input type="text" field_param ... >
Необязательный параметр, по умолчанию принимает значение - class="typeinput". 		3.1.6

Смотрите также

  • Calendar
  • CalendarPeriod

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

<form action="<?=$APPLICATION->GetCurPage()?>" method="POST" name="form1">
<?echo CalendarDate("birthdate", "25.11.1975", "form1", "15", "class=\"my_input\"")?>
</form>


CalendarPeriod

Описание и параметры

string
CalendarPeriod(
 string field_from_name,
 string field_from_value,
 string field_to_name,
 string field_to_value,
 string form = "skform",
 string select_enabled = "N",
 string select_param = "class=\"typeselect\"",
 string fields_param = "class=\"typeinput\"",
 string fields_size = "10"
);

Отображает два поля ввода для дат "с" и "по" с иконками, при нажатии на которые появляется стандартное окно выбора даты, помимо этого рядом с первым полем выводится выпадающий список дней от 1 до 90, если выбрать какое-либо значение из этого списка, то в первое поле ввода будет установлена текущая дата минус то количество дней которое было выбрано. Работает на JavaScript.

Параметры функции

Параметр Описание
field_from_name Имя поля ввода для первой даты ("с"):
<input type="text" name="field_from_name" ... >
field_from_value Начальное значение для первой даты ("с"):
<input type="text" value="field_from_value" ... >
field_to_name Имя поля ввода для второй даты ("по"):
<input type="text" name="field_to_name" ... >
field_to_value Начальное значение для второй даты ("по"):
<input type="text" value="field_to_value" ... >
form Имя формы, в которой находятся поля ввода для вставки дат:
<form name="form">
Необязательный параметр, по умолчанию принимает значение - "skform".
select_enabled Если значение "Y", то список дней, состоящий из цифр от 1 до 90, для быстрого выбора даты, будет выведен.
Необязательный параметр, по умолчанию принимает значение "N" - список не выводить.
select_param Строка дополнительных аттрибутов для списка дней:
<select name="field_from_name_DAYS_TO_BACK" select_param ... >
Необязательный параметр, по умолчанию принимает значение - class="typeselect".
fields_param Строка дополнительных аттрибутов для полей ввода дат:
<input type="text" fields_param ... >
Необязательный параметр, по умолчанию принимает значение - class="typeinput".
fields_size Ширина полей ввода:
<input type="text" size="fields_size" ... >
Необязательный параметр, по умолчанию принимает значение - "10". Если значение больше 10, то к дате периода добавляется выбор времени суток.

Смотрите также

  • Calendar
  • CalendarDate

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

<form action="<?=$APPLICATION->GetCurPage()?>" method="POST" name="form1">
<?echo CalendarPeriod("date_from", "25.10.2003", "date_to", "29.10.2003", "form1", "Y")?>
</form>


ConvertDateTime

Описание и параметры

string
ConvertDateTime(
 string datetime,
 string to_format = FORMAT_DATETIME,
 mixed from_site = false,
 bool SearchInSitesOnly = false
);

Конвертирует время из строки в формате сайта в строку произвольного формата.

Параметры функции

Параметр | Описание
datetime | Время в формате сайта site_id.
to_format Формат времени, в который необходимо сконвертировать. При задании формата допустимо использовать следующие обозначения:
  • YYYY - год
  • MM - месяц
  • DD - день
  • HH - часы
  • MI - минуты
  • SS - секунды
Необязательный параметр. По умолчанию равен константе FORMAT_DATETIME, хранящей текущий формат времени сайта или языка (для административной части).
from_site Идентификатор сайта, в формате которого было задано время time.
Необязательный параметр. По умолчанию - текущий сайт.
SearchInSitesOnly | Необязательный параметр. По умолчанию - "false", текущий сайт.

Смотрите также

  • CSite::GetDateFormat
  • CDataBase::FormatDate

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

<?
echo ConvertDateTime("25.12.2003", "YYYY-MM-DD", "ru"); // 2003-12-25
?>


ConvertTimeStamp

Описание и параметры

string
ConvertTimeStamp(
 int timestamp = false,
 string type = "SHORT",
 mixed site = false,
 bool SearchInSitesOnly = false
);

Конвертирует время из Unix-формата в строку в формате сайта.

Параметры функции

Параметр Описание
timestamp Время в Unix-формате.
Необязательный параметр, по умолчанию - текущее время.
type Тип формата. Допустимы следующие значения:
  • FULL - полный (дата и время)
  • SHORT - короткий (дата)
Необязательный параметр, по умолчанию равен "SHORT".
site Идентификатор сайта, в формате которого необходимо вернуть дату.
Необязательный параметр. По умолчанию - текущий сайт.
SearchInSitesOnly Искать только на сайте.
Необязательный параметр. По умолчанию - "false" текущий сайт.

Смотрите также

  • MakeTimeStamp
  • AddToTimeStamp
  • CSite::GetDateFormat
  • CDataBase::DateFormatToPHP

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

<?
echo "Сегодня: ".ConvertTimeStamp();
echo "Вчера: ".ConvertTimeStamp(time()-86400);
echo "Позавчера: ".ConvertTimeStamp(time()-(86400*2));
?>
<?
echo ConvertTimeStamp(mktime(0, 0, 0, 10, 25, 2003), "SHORT", "ru"); // 25.10.2003
?>


FormatDate

Описание и параметры

string
FormatDate(
 string format,
 int timestamp,
 int now = time(),
);

Функция возвращает строку отформатированную в соответствии с заданным форматом основываясь на значении времени выраженного в timestamp.

Примечание: фактически эта функция является оберткой для php функции date.

Параметры метода

Параметр | Описание | С версии
format Формат даты/времени. Кроме стандартных символов поддерживаются расширения:
Формат | Значение | Пример
sago | N секунд назад | 2 секунды назад
sdiff | N секунд | 1 секунда
iago | N минут назад | 11 минут назад
idiff | N минут | 32 минуты
isago | N минут M секунд назад | 4 минуты 12 секунд назад
Hago | N часов назад | 1 час назад
Hdiff | N часов | 3 часа
yesterday | константа | вчера
today | константа | сегодня
dago | N дней назад | 2 дня назад
ddiff | N дней | 8 дней
mdiff | N месяцев | 6 месяцев
Ydiff | N лет | 2 года
F | название месяца в родительном падеже | Января
f | название месяца в именительном падеже | Январь
M | сокращенное название месяца | Янв
l | название дня недели | Воскресенье
D | сокращенное название дня недели | Вс
x | интервал времени в зависимости от его величины. | 32 секунды назад 49 минут назад сегодня, 14:33 вчера, 12:32 или в формате сайта без секунд.
X | интервал времени в зависимости от его величины. | сегодня вчера или в формате сайта без секунд.
Q | интервал времени в зависимости от его величины. | 1 день 22 дня 3 месяца 12 лет
timestamp | метка времени в Unix формате
now | метка времени в unix формате от которой будут вычисляться интервалы. По умолчанию - time(). | 9.5.7

Примечания

В форматах 'x' и 'X' реализована поддержка будущего времени. Если значение параметра timestamp больше значения параметра now (находится в будущем), то форматы "X" и "x" вернут время в формате сайта без секунд.

Возвращаемое значение

Отформатированная строка.

Смотрите также

  • MakeTimeStamp

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

<?
$rsUser = CUser::GetList($by, $order, array(
  "ID_EQUAL_EXACT" => $USER->GetID()
));
if($arUser = $rsUser->Fetch())
{
  echo "Зарегистрирован на сайте: ",FormatDate("Q", MakeTimeStamp($arUser["DATE_REGISTER"])),".";
}
?>


FormatDateFromDB

string
FormatDateFromDB (
 date,
 format = 'FULL',
 phpFormat = false
);

Возвращает дату на языке сайта.

Параметры функции

Параметр | Описание | С версии
date | Дата заданная в формате сайта
format Формат, в который следует преобразовать дату.
  • FULL - полный формат даты;
  • SHORT - короткий формат даты;
  • Явное указание формата, например, MM/DD/YYYY. (Форматы)
Необязательный. По умолчанию "FULL".
phpFormat | Необязательный. | 11.5.8

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

echo FormatDateFromDB('01/23/2013', 'DD MMMM YYYY'); // вернет 23 Enero 2013, если язык сайта испанский

echo FormatDateFromDB('7 June 2012 12:00pm', 'SHORT'); // вернет 7 Июня 2012, если язык сайта русский и короткий формат языка - DD MMMM YYYY

echo FormatDateFromDB('7 June 2012 12:00pm'); // вернет 7 Июня 2012 12:00pm, если язык русский и полный формат - DD MMMM YYYY G:MIT

echo FormatDateFromDB('7 June 2012 12:00pm', 'DD.MM'); // вернет 07.06 для любого языка


getmicrotime

float
getmicrotime()

Возвращает текущее время в Unix-формате.

Параметры функции

Без параметров.

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

<?
// Алгоритм организации временных засечек
$ptime = getmicrotime();

for ($i=0; $i<10000; $i++);

echo "Цикл выполнялся ".round(getmicrotime()-$ptime, 3)." секунд";
?>


IsAmPmMode

IsAmPmMode ()

Определяет используется ли 12-и часовой формат времени. Если true, то время выводится в 12-часовом формате времени.

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

if (IsAmPmMode())
{
  echo date("g:i a");
}
  else
{
  echo date("H:i");
}


MakeTimeStamp

Описание и параметры

int
MakeTimeStamp(
 string datetime,
 string format = FORMAT_DATETIME
);

Конвертирует время из строки в Unix-формат.

Параметры функции

Параметр | Описание
datetime | Исходное время.
format_type Формат времени заданном в параметре datetime. В формате допустимы следующие обозначения:
  • YYYY - год
  • MM - месяц
  • DD - день
  • HH - часы
  • MI - минуты
  • SS - секунды
Необязательный параметр. По умолчанию равен константе FORMAT_DATETIME, хранящей текущий формат времени сайта или языка (для административной части).

Смотрите также

  • ConvertTimeStamp
  • AddToTimeStamp
  • ParseDateTime

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

<?
// зададим дату
$date = "07.04.2005 11:32:00";

// преобразуем ее в Unix-timestamp
if ($stmp = MakeTimeStamp($date, "DD.MM.YYYY HH:MI:SS"))
{
    // для проверки выведем на экран ту же дату
    // полученную из Unix-timestamp
    echo date("d.m.Y H:i:s", $stmp);
}
else // если функция вернула false то
{
    // выведем сообщение об ошибке
    echo "Некорректная дата!";
}
?>
<?
// вывод даты активности элемента информационного блока
// в произвольном формате

// подключим модуль информационных блоков
if (CModule::IncludeModule("iblock"))
{
    // выберем произвольный элемент информационного блока
    $rsElement = CIBlockElement::GetByID(32675);
    $arElement = $rsElement->Fetch();

    // получим дату активности выбранного элемента
    // выбранную в соответствии с форматом времени текущего сайта
    $date_active = $arElement["ACTIVE_FROM"]; // 28.01.2005

    // получим формат времени текущего сайта
    $site_format = CSite::GetDateFormat(); // DD.MM.YYYY HH:MI:SS

    // преобразуем дату в Unix формат
    if ($stmp = MakeTimeStamp($date_active, $site_format))
    {
        // выведем дату активности выбранного элемента в произвольном виде
        // с помощью стандартной PHP функции date
        echo date("d F Y", $stmp); // 28 January 2005
    }
    else // если преобразование безуспешно то
    {
        // выведем сообщение об ошибке
        ShowError("Некорректная дата активности элемента 32675!");
    }
}
?>


ParseDateTime

Описание и параметры

mixed
ParseDateTime(
 string datetime,
 string format = FORMAT_DATETIME
);

Разбивает дату и время на части в соответствии с заданным форматом. Функция возвращает массив описывающий дату и время в соответствии с заданным форматом, если произошла ошибка - возвращает "false".

Параметры функции

Параметр | Описание
datetime | Дата и время заданные в соответствии с форматом указанным в параметре format.
format Формат даты и времени. Вы можете использовать любые обозначения, но желательно использовать символы формата даты и времени допустимые в системе, а именно:
  • YYYY - год
  • MM - месяц
  • DD - день
  • HH - часы
  • MI - минуты
  • SS - секунды
Необязательный параметр. По умолчанию равен константе FORMAT_DATETIME, хранящей текущий формат времени сайта или языка (для административной части).

Смотрите также

  • CSite::GetDateFormat
  • CDatabase::DateFormatToPHP
  • CDatabase::FormatDate

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

<?
$datetime = "21.01.2004 23:44:15";
$format = "DD.MM.YYYY HH:MI:SS";
echo "Исходное время: ".$datetime."<br>";
echo "Формат: ".$format."<hr>";
if ($arr = ParseDateTime($datetime, $format))
{
    echo "День:    ".$arr["DD"]."<br>";    // День: 21
    echo "Месяц:   ".$arr["MM"]."<br>";    // Месяц: 1
    echo "Год:     ".$arr["YYYY"]."<br>";  // Год: 2004
    echo "Часы:    ".$arr["HH"]."<br>";    // Часы: 23
    echo "Минуты:  ".$arr["MI"]."<br>";    // Минуты: 44
    echo "Секунды: ".$arr["SS"]."<br>";    // Секунды: 15
}
else echo "Ошибка!";
?>
<?
// выведем дату в формате вида "21 января, 2004"

$datetime = "21.01.2004"; // дата задана в формате текущего сайта

// FORMAT_DATETIME - константа содержащая формат времени текущего сайта
$arr = ParseDateTime($datetime, FORMAT_DATETIME);

// 21 января, 2004
echo $arr["DD"]." ".ToLower(GetMessage("MONTH_".intval($arr["MM"])."_S")).", ".$arr["YYYY"];
?>
<?
// вывод даты активности элемента информационного блока
// в произвольном формате

// подключим модуль информационных блоков
if (CModule::IncludeModule("iblock"))
{
    // выберем произвольный элемент информационного блока
    $rsElement = CIBlockElement::GetByID(32675);
    $arElement = $rsElement->Fetch();

    // получим дату активности выбранного элемента
    // выбранную в соответствии с форматом времени текущего сайта
    $date_active = $arElement["ACTIVE_FROM"]; // 28.01.2005

    // получим формат времени текущего сайта
    $site_format = CSite::GetDateFormat(); // DD.MM.YYYY HH:MI:SS

    // получим массив описывающий дату активности выбранного элемента
    if ($arr = ParseDateTime($date_active, $site_format))
    {
        /*
        структура полученного массива $arr:
        Array
        (
            [DD] => 28
            [MM] => 1
            [YYYY] => 2005
            [HH] => 0
            [MI] => 0
            [SS] => 0
        )
        */

        // переведем дату активности в Unix-формат
        $stmp = mktime(
            $arr["HH"], $arr["MI"], $arr["SS"],
            $arr["MM"], $arr["DD"], $arr["YYYY"]
            );

        // выведем дату активности выбранного элемента в произвольном виде
        // с помощью стандартной PHP функции date
        echo date("d F Y", $stmp); // 28 January 2005
    }
}
?>


Обзор функций

Функции для работы с файловой системой сайта:

Метод | Описание | С версии
CheckDirPath | Проверяет физическое существование указанного пути. При необходимости - создает все каталоги входящие в данный путь. | 3.0.3
CopyDirFiles | Копирует файлы и каталоги. | 3.0.1
DeleteDirFiles | Удаление из каталога всех файлов, содержащихся в другом каталоге. | 3.0.1
DeleteDirFilesEx | Рекурсивное удаление каталога или файла. | 3.0.1
RewriteFile | Перезапись файла. | 3.0.3
GetDirPath | Получение каталога по полному пути. | 3.0.3
GetPagePath | Получение пути к файлу по заданному URL'у. | 3.0.3
GetDirIndex | Определение индексного файла каталога. | 4.0.6
GetFileExtension | Возвращает расширение файла. | 3.0.14
GetFileType | Возвращает тип файла. | 3.0.14

Смотрите также

  • Класс CFile
  • Права для новых файлов и каталогов


CheckDirPath

Описание и параметры

CheckDirPath(
 string path,
 bool permissions = true
);

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

Права на каталоги, которые будут устанавливаться этой функцией, должны быть предварительно определены в константе BX_DIR_PERMISSIONS (в файлах /bitrix/php_interface/dbconn.php или /bitrix/php_interface/ID сайта/init.php). Если константа не определена, то она автоматически инициализируется значением 0777 и далее это значение используется везде когда дело касается установки Unix прав на файлы и каталоги.

АНалог метода в новом ядре: Bitrix\Main\IO\Directory::createDirectory [image].

Параметры функции

Параметр | Описание
abs_path | Абсолютный путь к папке.
set_permissions | Если значение данного параметра равно "true" и если последний каталог пути указанного в параметре abs_path не доступен для записи, то будет предпринята попытка установить новые права на данный каталог. Значения для этих прав будут браться либо из константы BX_DIR_PERMISSIONS, либо если константа не определена, то она автоматически инициализируется значением 0777 и далее это значение используется везде когда дело касается установки Unix прав на файлы и каталоги.

Смотрите также

  • Права для новых файлов и каталогов

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

<?
// файл /bitrix/php_interface/dbconn.php

// определим константы для прав на каталоги и файлы
define("BX_FILE_PERMISSIONS", 0775);
define("BX_DIR_PERMISSIONS", 0775);
?>
<?
// Создадим путь "/temp/data/" начиная от корня сайта, если этого пути нет
CheckDirPath($_SERVER["DOCUMENT_ROOT"]."/temp/data/");
?>


CopyDirFiles

Описание и параметры

bool
CopyDirFiles(
 string path_from,
 string path_to,
 bool rewrite = true,
 bool recursive = false,
 bool DeleteAfterCopy = false,
 string exclude = ""
);

Копирует файлы и каталоги. Возвращает "true" при успешном завершении копирования и "false" - в противном случае.

Параметры функции

Параметр | Описание
path_from | Абсолютный путь к каталогу (файлу), содержимое которой нужно скопировать.
path_to | Абсолютный путь к каталогу, в который надо скопировать. Путь указанный в данном параметре будет предварительно проверен функцией CheckDirPath.
rewrite | Перезаписывать ли существующие файлы. Необязательный параметр, по умолчанию равен "true" (перезаписывать).
recursive | Копировать ли рекурсивно все подкаталоги и файлы входящие в путь указанный в параметре from. Необязательный параметр, по умолчанию равен "false" (копировать не рекурсивно).
delete_after_copy | Удалить ли путь указанный в параметре from после того как копирование будет завершено (т.е. по сути - сделать перенос каталогов и файлов). Необязательный параметр, по умолчанию равен "false" (не удалять).
exclude | Если данный параметр задан, то из копирования будут исключены файлы / папки, название которых начинается со значения данного параметра.

Смотрите также

  • CFile::CopyFile

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

<?
// копируем файлы из папки /temp1/ в папку /temp2/
CopyDirFiles($_SERVER["DOCUMENT_ROOT"]."/temp1", $_SERVER["DOCUMENT_ROOT"]."/temp2");
?>

Если копируется один файл, то нужно строго указать не только источник, но и приемник. Имя файла-приемника может отличаться от имени источника.

CopyDirFiles($_SERVER["DOCUMENT_ROOT"]."/temp1/file.ex", $_SERVER["DOCUMENT_ROOT"]."/temp2/file.ex");


DeleteDirFiles

Описание и параметры

DeleteDirFiles(
 string frDir,
 string toDir,
 array arExept  = array()
);

Удаляет из каталога все файлы, которые содержатся в другом каталоге. Функция не работает рекурсивно.

Параметры функции

Параметр | Описание | С версии
frDir | Абсолютный путь к каталогу, файлы которого проверяются на наличие в каталоге, задаваемом в параметре toDir. |
toDir | Абсолютный путь к каталогу, в котором будут удалены файлы с именами, найденными в каталоге, задаваемом в параметре frDir. |
arExept | Массив исключений. Содержит краткие имена файлов, которые не будут удалены. | 3.1.6

Смотрите также

  • DeleteDirFilesEx
  • CFile::Delete

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

<?
// удалим из папки /temp1/ все файлы, которые есть в папке /temp2/,
// за исключением файла index.php
DeleteDirFiles(
    $_SERVER["DOCUMENT_ROOT"]."/temp2",
    $_SERVER["DOCUMENT_ROOT"]."/temp1",
    array("index.php")
    );
?>


DeleteDirFilesEx

bool
DeleteDirFilesEx(
 string path
);

Удаляет рекурсивно указанный каталог (файл). Возвращает "true" в случае успешного выполнения.

Аналог функции вновом ядре: Bitrix\Main\IO\Directory::deleteDirectory [image].

Параметры функции

Параметр | Описание
path | Путь относительно корня сайта к удаляемому каталогу (файлу).

Смотрите также

  • DeleteDirFiles
  • CFile::Delete

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

<?
// удалим каталог /temp1/ и все что в нем находится
DeleteDirFilesEx("/temp1");
?>


GetDirIndex

Описание и параметры

string
GetDirIndex(
 string path,
 string DirIndex = false
);

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

Параметры функции

Параметр | Описание
path | Путь к каталогу относительно корня для которого необходимо определить индексный файл.
DirIndex | Разделенные пробелом возможные имена индексных файлов в порядке убывания приоритета. Для корректной работы функции в данный параметр необходимо передавать значение из поля DirectoryIndex настроек веб-сервера Apache, для IIS данный параметр можно найти в свойствах сайта, закладка "Documents" -> "Enable default content page". Необязательный параметр. По умолчанию - "false" (значение будет взято из константы DIRECTORY_INDEX, если константа не определена, то будет взято значение по умолчанию - "index.php index.html index.htm index.phtml default.html index.php3").

Алгоритм определения индексного файла каталога следующий:

  1. Берется значение из параметра index. Если параметр не задан, то берется значение константы DIRECTORY_INDEX (данную константу можно определить в файле /bitrix/php_interface/dbconn.php или в файлах /bitrix/php_interface/ID сайта/init.php). Если значение константы не задано, то берется значение по умолчанию - "index.php index.html index.htm index.phtml default.html index.php3"
  2. Полученное значение разбивается по пробелу на отдельные имена файлов
  3. Каждый полученный файл проверяется на физическое существование в каталоге.
  4. Первый найденный файл будет считаться индексной страницей каталога

Смотрите также

  • GetPagePath
  • CMain::GetCurPage
  • CMain::GetCurPageParam
  • CMain::GetCurUri


GetDirPath

string
GetDirPath(
 string path
);

Возвращает каталог файла по пути к этому файлу.

Параметры функции

Параметр | Описание
path | Путь к файлу.

Смотрите также

  • CMain::GetCurDir

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

<?
echo GetDirPath("/temp1/data/file.php");
// выводит строку "/temp1/data/"
?>


GetFileExtension

function
GetFileExtension(
 path
);

По заданному пути к файлу path возвращает расширение файла.

Параметры функции

Параметр | Описание
path | Путь к файлу

Возвращаемое значение

Фактически, функция возвращает символы после последней точки в строке.


GetFileType

function
GetFileType(
 path
);

По заданному пути к файлу возвращает его тип:

  • IMAGE для jpg, jpeg, gif, bmp, png;
  • FLASH для swf;
  • SOURCE для html, htm, asp, aspx, phtml, php, php3, php4, php5, php6, shtml, sql, txt, inc, js, vbs, tpl, css, shtm;
  • UNKNOWN для остальных.

Параметры функции

Параметр | Описание
path | Путь к файлу


GetPagePath

Описание и параметры

string
GetPagePath(
 string page = false,
 bool get_index_page=null
);

Возвращает путь к странице относительно корня.

В функцию может поступить URL относительно корня с параметрами, в этом случае функция вернет путь к странице без параметров.

Если в функцию поступает путь без указания файла, например: /ru/about/, то функция попытается самостоятельно определить индексный файл каталога и если определит его например, как index.php, то в результате вернет значение /ru/about/index.php.

Примечание. Алгоритм определения индексного файла представлен в описании функции GetDirIndex.

Параметры функции

Параметр | Описание | С версии
page | Страница, путь к которой необходимо вернуть. Если параметр равен "false", то возвращается путь к текущей странице. Необязательный параметр, по умолчанию равен "false". |
get_index_page | Параметр указывает, нужно ли для индексной страницы раздела возвращать путь, заканчивающийся на "index.php". Если значение параметра равно true, то возвращается путь с "index.php", иначе - путь, заканчивающийся на "/". Поведение параметра по умолчанию регулируется константой BX_DISABLE_INDEX_PAGE. Если значение константы true, то значение параметра по умолчанию get_index_page=false. | 4.0.11
obj | Служебный параметр. Необязательный параметр, по умолчанию равен "false". | с 7.1.1, устарел с 8.5.0

Смотрите также

  • CMain::GetCurPage
  • CMain::GetCurPageParam
  • CMain::GetCurUri
  • GetDirIndex


RewriteFile

Описание и параметры

bool
RewriteFile(
 string abs_path,
 string content
);

Записывает в файл новое содержимое. Возвращает "true" в случае удачной записи в файл, иначе - "false".

Аналог функции в новом ядре D7: Bitrix\Main\IO\File::putFileContents [image].

Параметры функции

Параметр | Описание
abs_path | Абсолютный путь к файлу, который необходимо перезаписать.
content | Новое содержимое файла.

Примечание

Если в абсолютном пути файла будут указаны несуществующие директории, то указанный метод их создаст. Например, в:

RewriteFile($_SERVER["DOCUMENT_ROOT"]."/ru/index.php", $content);

если папки /ru/ не существует, то она будет создана.

Смотрите также

  • CFile::SaveFile
  • CMain::SaveFileContent

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

<?
// перезапишем файл /ru/index.php
$content = '
    <?
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
    $APPLICATION->SetTitle("Заголовок страницы");
    ?>
    <?
    require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
    ?>
';
RewriteFile($_SERVER["DOCUMENT_ROOT"]."/ru/index.php", $content);
?>


Обзор функций

Функции для работы с элементами HTML:

Метод | Описание | С версии
InputType | Возвращает HTML код тегов <input type="checkbox"> (переключатель с множественным варинтом выбора ответа), либо <input type="radio"> (переключатель с единственным вариантом выбора ответа). | 3.0.3
SelectBox | Возвращает HTML код тега <select> (выпадающий список с единственным вариантом выбора ответа) на основании данных из объекта класса CDBResult. | 3.0.3
SelectBoxM | Возвращает HTML код тега <select multiple> (выпадающий список с множественными варинтами выбора ответа) на основании данных из объекта класса CDBResult. | 4.0.6
SelectBoxFromArray | Возвращает HTML код тега <select> (выпадающий список с единственным вариантом выбора ответа) на основании данных из массива. | 3.0.3
SelectBoxMFromArray | Возвращает HTML код тега <select multiple> (выпадающий список с множественными варинтами выбора ответа) на основании данных из массива. | 4.0.6
ShowJSHint | Выводит иконку-вопросик, при наведении на которую всплывает текст $text. | 7.0.14
print_url | Возвращает html-код для вставки ссылки. | 3.0.3


InputType

Описание и параметры

string
InputType(
 string type,
 string name,
 string value,
 mixed Cmp,
 bool print_value = false,
 string Print = "",
 string add_to_tag = "",
 string Id=""
);

Возвращает HTML код тегов <input type="checkbox"> (переключатель с множественным вариантом выбора ответа), либо <input type="radio"> (переключатель с единственным вариантом выбора ответа).

Параметры функции

Параметр | Описание | С версии
type Тип тэга:
<input type="type" ... >

Возможные значения:
  • checkbox - переключатель с множественным вариантом выбора ответа
  • radio - переключатель с единственным вариантом выбора ответа
name Имя тэга:
<input name="name" ... >
value Значение тэга:
<input value="value" ... >
Cmp Значение данного параметра будет сравниваться со значением параметра value, в случае совпадения - переключатель будет "отмечен" (checked):
<input checked ... >
print_value Если в данном параметре задано значение "true", то справа от тэга будет выведено значение параметра value.
Необязательный параметр. По умолчанию - "false".
Print Если параметр print_value не равен "true" и в параметре title задано значение, то оно будет выведено справа от тэга.
Необязательный параметр. По умолчанию - "".
field1 Произвольный HTML который будет добавлен в тэг:
<input add_to_tag ... >
Необязательный параметр. По умолчанию - "".
Id | Необязательный параметр. По умолчанию - "". | 11.0.5

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

<?
// Множественный выбор

echo "Результат выбора:<pre>"; print_r($check); echo "</pre>";
echo "Отметьте нужные варианты:<br>";
?>
<form action="" method="GET">
<?
echo "1:".InputType("checkbox", "check[]", "1", $check)."<br>";
echo "2:".InputType("checkbox", "check[]", "2", $check)."<br>";
echo "3:".InputType("checkbox", "check[]", "3", $check)."<br>";
?>
<br><input type="submit" value="OK">
</form>
<?
// Единичный выбор

echo "Результат выбора: ".$radio."<br><br>";
echo "Выберете один из следующих вариантов:<br>";
?>
<form action="" method="GET">
<?
echo "1: ".InputType("radio", "radio", "1", $radio)."<br>";
echo "2: ".InputType("radio", "radio", "2", $radio)."<br>";
echo "3: ".InputType("radio", "radio", "3", $radio)."<br>";
echo "4: ".InputType("radio", "radio", "4", $radio)."<br>";
?>
<br><input type="submit" value="OK">
</form>


print_url

result_type
print_url(
 strUrl,
 strText,
 sParams=""
);

Возвращает html-код для вставки ссылки на $strUrl с якорем $strText:

<a href="$strUrl" $sParams>$strText</a>

Параметры функции

Параметр | Описание
strUrl | адрес
strText | текст якоря
sParams | Параметры ссылки


SelectBox

Описание и параметры

string
SelectBox(
 string name,
 CDBResult values,
 string default = "",
 string selected = "",
 string add_to_tag = "class=\"typeselect\""
);

Возвращает HTML код тега <select> (выпадающий список с единственным вариантом выбора ответа) на основании данных из объекта класса CDBResult.

Параметры функции

Параметр | Описание
name | Имя тэга: <select name="name" ... >
values | Элементы списка. Объект типа CDBResult, содержащий набор записей, каждая из которых должна иметь по два: "REFERENCE_ID" (значение элемента списка) и "REFERENCE" (заголовок элемента списка).
default | Заголовок элемента списка выбираемого по умолчанию. Значение этого элемента - "NOT_REF". Необязательный параметр. По умолчанию - "" (не добавлять подобный элемент).
selected | Выбранный элемент. Значение данного параметра будет сравниваться с полями "REFERENCE_ID" набора записей передаваемого в параметре values, в случае совпадения элемент будет "выбран" (selected). Необязательный параметр. По умолчанию - "".
add_to_tag | Произвольный HTML который будет добавлен в тэг: <select add_to_tag ... > Необязательный параметр. По умолчанию - "class=\"typeselect\"".

Смотрите также

  • SelectBoxFromArray

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

<?
// сформируем выборку из таблицы групп
$strSql = "
    SELECT
        G.ID as REFERENCE_ID,
        G.NAME as REFERENCE
    FROM
        b_group G
    ";
$rs = $DB->Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);

// выведем выпадающий список групп
echo SelectBox("GROUP", $rs, "< выберите группу >", $GROUP, "class =\"inputselect\"");
?>


SelectBoxFromArray

Описание и параметры

string
SelectBoxFromArray(
 string name,
 array values,
 string selected = "",
 string default = "",
 string add_to_tag = "class=\"typeselect\"",
 bool submit_form = false,
 string form_name = "form1"
);

Возвращает HTML код тега <select> (выпадающий список с единственным вариантом выбора ответа) на основании данных из массива.

Параметры функции

Параметр Описание
name Имя тэга:
<select name="name" ... >
values Элементы списка. Массив имеющий следующую структуру:
array(
    "REFERENCE" =>
        array(
            "Заголовок элемента 1",
            "Заголовок элемента 2",
            ...
            ),
    "REFERENCE_ID" =>
        array(
            "Значение элемента 1",
            "Значение элемента 2",
            ...
            )
    )
selected Выбранный элемент. Значение данного параметра будет искаться в массиве передаваемом в ключе "REFERENCE_ID" массива values, в случае совпадения элемент будет "выбран" (selected).
Необязательный параметр. По умолчанию - "".
default Заголовок элемента списка выбираемого по умолчанию. Значение этого элемента - "NOT_REF".
Необязательный параметр. По умолчанию - "" (не добавлять подобный элемент).
add_to_tag Произвольный HTML который будет добавлен в тэг:
<select add_to_tag ... >
Необязательный параметр. По умолчанию - "class=\"typeselect\"".
submit_form Если в данном параметре указать "true", то в момент выбора какого либо значения из выпадающего списка, произойдет submit формы, имя которой указано в параметре form_name.
Необязательный параметр. По умолчанию - "false" (не submit'ить форму).
form_name Если параметр submit_form = true, то здесь вам необходимо указать имя формы в которой будет расположен тэг <select>.
Необязательный параметр. По умолчанию - "form1".

Смотрите также

  • SelectBox

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

<form name="form2" action="" method="GET">
<?
$arr = array(
    "REFERENCE" => // массив заголовков элементов
        array("Вариант 1", "Вариант 2", "Вариант 3"),
    "REFERENCE_ID" => // массив значений элементов
        array(1, 2, 3)
    );
echo SelectBoxFromArray("CHOICE", $arr, $CHOICE, "", "", true, "form2")
?>
</form>


SelectBoxM

Описание и параметры

string
SelectBoxM(
 string name,
 CDBResult values,
 array selected,
 string top_element = "",
 bool select_top_element = false,
 int size = 5,
 string add_to_tag = "class=\"typeselect\""
);

Возвращает HTML код тега <select multiple> (выпадающий список с множественными вариантами выбора ответа) на основании данных из объекта класса CDBResult.

Параметры функции

Параметр | Описание
name | Имя тэга: <select name="name" ... >
values | Элементы списка. Объект типа CDBResult, содержащий набор записей, каждая из которых должна иметь по два: "REFERENCE_ID" (значение элемента списка) и "REFERENCE" (заголовок элемента списка).
selected | Выбранные элементы. Массив, элементы которого будут сравниваться с полями "REFERENCE_ID" набора записей передаваемого в параметре values, в случае совпадения элемент будет "выбран" (selected).
top_element | Заголовок специального элемента который всегда помещается первым в списке и он может быть всегда выбран (контролируется параметром select_top_element). Значение этого элемента - "NOT_REF". Необязательный параметр. По умолчанию - "" (не добавлять подобный элемент).
select_top_element | Если значение "true", то элемент top_element будет всегда выбран (selected). Необязательный параметр. По умолчанию - "false" (не выбирать).
size | Поле size тэга select: <select size="size" ... > В данном параметре передается количество видимых строк в списке множественного выбора. Параметр необязательный. Значение по умолчанию - 5.
add_to_tag | Произвольный HTML который будет добавлен в тэг: <select add_to_tag ... > Необязательный параметр. По умолчанию - "class=\"typeselect\"".

Смотрите также

  • SelectBoxMFromArray

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

<?
// сформируем выборку из таблицы групп
$strSql = "
    SELECT
        G.ID as REFERENCE_ID,
        G.NAME as REFERENCE
    FROM
        b_group G
    WHERE
        G.ID<>2 -- группа everybody которой все принадлежат по умолчанию
    ";
$rs = $DB->Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);

// выведем список групп с множественным выбором
echo SelectBoxM("arrGROUP[]", $rs, $arrGROUP, "< группа everybody >", true, 20,
"class =\"inputselect\"");
?>


SelectBoxMFromArray

Описание и параметры

string
SelectBoxMFromArray(
 string name,
 array values,
 array selected,
 string top_element = "",
 bool select_top_element = false,
 int size = 5,
 string add_to_tag = "class=\"typeselect\""
);

Возвращает HTML код тега <select multiple> (выпадающий список с множественными вариантами выбора ответа) на основании данных из массива.

Параметры функции

Параметр Описание
name Имя тэга:
<select name="name" ... >
values Элементы списка. Массив имеющий следующую структуру:
array(
    "REFERENCE" =>
        array(
            "Заголовок элемента 1",
            "Заголовок элемента 2",
            ...
            ),
    "REFERENCE_ID" =>
        array(
            "Значение элемента 1",
            "Значение элемента 2",
            ...
            )
    )
selected Выбранные элементы. Массив, значения которого будут искаться в массиве передаваемом в ключе "REFERENCE_ID" массива values, в случае совпадения элемент будет "выбран" (selected).
Необязательный параметр. По умолчанию - "".
top_element Заголовок специального элемента который всегда помещается первым в списке и он может быть всегда выбран (контролируется параметром select_top_element). Значение этого элемента - "NOT_REF".
Необязательный параметр. По умолчанию - "" (не добавлять подобный элемент).
select_top_element Если значение "true", то элемент top_element будет всегда выбран (selected).
Необязательный параметр. По умолчанию - "false" (не выбирать).
size Поле size тэга select:
<select size="size" ... >
В данном параметре передается количество видимых строк в списке множественного выбора. Параметр необязательный. Значение по умолчанию - 5.
add_to_tag Произвольный HTML который будет добавлен в тэг:
<select add_to_tag ... >
Необязательный параметр. По умолчанию - "class=\"typeselect\"".

Смотрите также

  • SelectBoxM

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

<?
$arr = array(
    "REFERENCE" => // массив заголовков элементов
        array("Вариант 1", "Вариант 2", "Вариант 3"),
    "REFERENCE_ID" => // массив значений элементов
        array(1, 2, 3)
    );
echo SelectBoxMFromArray("arrSEL[]", $arr, $arrSEL, "", false, 4,
"class =\"inputselect\"");
?>


ShowJSHint

result_type
ShowJSHint(
 string text,
 array Params = false
);

Подсказка. Выводит иконку-вопросик, при наведении на которую всплывает текст $text.

Примечание. По умолчанию метод работает только в административной части. Метод может работать и в публичной части при подключении файла \bitrix\modules\main\interface\admin_lib.php.

Параметры функции

Параметр | Описание
text | Выводимый текст
Params | Параметры вывода. Если передать вторым параметром array('return' => true), то вместо вывода на экран, будет возвращен html-код подсказки.


Обзор функций

Функции для построения и работы с фильтрами и сортировками

Метод | Описание | С версии
InitFilterEx | Инициализация фильтра. | 3.0.3
DelFilterEx | Удаление фильтра. | 3.0.3
GetFilterHiddens | Позволяет создать набор HTML тэгов типа hidden из набора переменных имена которых передаются в массиве, либо указан префикс имен этих переменных. | 3.0.3
GetFilterParams | Создание строки состоящей из параметров для URL'а из входящего массива переменных, либо переменных имена которых начинаются с указанного префикса. | 3.0.3
CheckFilterDates | Проверяет две даты введенные в фильтре на корректность. | 3.1.6
InitSorting | Инициализация сортировки. | 3.0.3
SortingEx | Генерация "стрелок" сортировки. | 3.0.3


CheckFilterDates

Описание и параметры

CheckFilterDates(
 string date1,
 string date2,
 string &is_date1_wrong,
 string &is_date2_wrong,
 string &is_date2_less_date1
);

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

Параметры функции

Параметр | Описание
date1 | Первая дата интервала ("c").
date2 | Вторая дата интервала ("по").
is_date1_wrong | Данный параметр является ссылкой на исходную переменную. Если в нем будет возвращено "Y", то дата заданная в параметре date1 некорректна для формата даты текущего сайта (языка).
is_date2_wrong | Данный параметр является ссылкой на исходную переменную. Если в нем будет возвращено "Y", то дата заданная в параметре date2 некорректна для формата даты текущего сайта (языка).
is_date2_less_date1 | Данный параметр является ссылкой на исходную переменную. Если в нем будет возвращено "Y", то дата заданная в параметре date1 больше даты заданной в параметре date2, что неправильно если задается период времени.

Смотрите также

  • CDataBase::IsDate
  • CDataBase::CompareDates

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

<?
CheckFilterDates("10.01.2003", "15.02.2004", $date1_wrong, $date2_wrong, $date2_less);
if ($date1_wrong=="Y") echo "Неверный формат первой даты!";
if ($date2_wrong=="Y") echo "Неверный формат второй даты!";
if ($date2_less=="Y") echo "Первая дата больше второй!";
?>


DelFilterEx

Описание и параметры

DelFilterEx(
 array vars,
 string id,
 bool session = true
);

Очищает переменные, содержащие значения фильтра, и очищает соответствующие сессионные переменные.

Примечание. Функция работает с переменными из глобальной области видимости, это необходимо учитывать при создании основных файлов компонентов [image].

Параметры функции

Параметр | Описание
vars | Массив имен переменных фильтра.
id | Идентификатор фильтра. Строка идентифицирующая данный фильтр в сессионном массиве: $_SESSION["SESS_ADMIN"][id]
session | Использовать ли сессию. Если значение данного параметра равно "true", то значения фильтра будут также очищены из сессионного массива $_SESSION["SESS_ADMIN"][id].

Смотрите также

  • InitFilterEx

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

<?
$FilterArr = Array(
    "find_id",
    "find_id_exact_match",
    );

// если нажата кнопка "Установить фильтр" то
if (strlen($set_filter)>0)
{
    // запоминаем значения фильтра в сессии
    InitFilterEx($FilterArr,"ADV_BANNER_LIST","set");
}
else
{
    // инициализируем значения фильтра из сессии
    InitFilterEx($FilterArr,"ADV_BANNER_LIST","get");
}

// если была нажата кнопка "Сбросить фильтр"
if (strlen($del_filter)>0) DelFilterEx($FilterArr,"ADV_BANNER_LIST");

$arFilter = Array(
    "ID"                    => $find_id,
    "ID_EXACT_MATCH"        => $find_id_exact_match,
    );
$rsBanners = CAdvBanner::GetList($by, $order, $arFilter, $is_filtered);
?>


GetFilterHiddens

Описание и параметры

string
GetFilterHiddens(
 mixed var,
 array button = array("filter"=>"Y","set_filter"=>"Y")
);

Возвращает набор HTML тэгов типа hidden из набора переменных, имена которых передаются в массиве, либо указан префикс имен этих переменных.

Параметры функции

Параметр | Описание | С версии
var | Имена переменных. В данном параметре можно передать либо массив, либо префикс имен этих переменных.
button В данном параметре можно передать массив, представляющий из себя имя и значение произвольных переменных, которые будут добавлены в результат. Структура данного массива:
array("ИМЯ_ПЕРЕМЕННОЙ" => "ЗНАЧЕНИЕ_ПЕРЕМЕННОЙ")
Как правило данный параметр используют для передачи имени и значения кнопки "Установить фильтр".
Параметр необязательный. По умолчанию - array("filter" => "Y", "set_filter" => "Y"). 		4.0.6

Смотрите также

  • GetFilterParams

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

<form method="GET">
    <?
    // добавим набор тэгов hidden имена которых будут начинаться с префикса "filter_"
    // и значениями равными значениям соответствующих переменных
    echo GetFilterHiddens("filter_");
    ?>
    <input type="hidden" name="lang" value="<?echo LANGUAGE_ID?>">
    <input type="submit" name="Add" value="Добавить новую запись&gt;">
</form>


GetFilterParams

Описание и параметры

string
GetFilterParams(
 mixed var,
 bool DoHtmlEncode = true,
 array button = array("filter"=>"Y","set_filter"=>"Y")
);

Возвращает строку состоящюю из параметров для URL'а из входящего массива переменных, либо переменных имена которых начинаются с указанного префикса.

Параметры функции

Параметр | Описание | С версии
var | Имена переменных. В данном параметре можно передать либо массив, либо префикс имен этих переменных.
DoHtmlEncode | Если значение равно "true", то результат будет приведен в HTML-безопасный вид.
button В данном параметре можно передать массив, представляющий из себя имя и значение произвольных переменных, которые будут добавлены в результат. Структура данного массива:
array("ИМЯ_ПЕРЕМЕННОЙ" => "ЗНАЧЕНИЕ_ПЕРЕМЕННОЙ")
Как правило данный параметр используют для передачи имени и значения кнопки "Установить фильтр".
Параметр необязательный. По умолчанию - array("filter" => "Y", "set_filter" => "Y"). 		4.0.6

Смотрите также

  • GetFilterHiddens

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

<?
// Данный код строит ссылку, при переходе по которой пользователь
// попадет на страницу adv.php с теми же переменными,
// имена которых имеют префикс - "filter_",
// с какими он попал на текущую страницу
?>
<a href="adv.php?id=<?echo $f_ID?>&<?echo GetFilterParams("filter_");?>">Изменить</a>


InitFilterEx

Описание и параметры

InitFilterEx(
 array vars,
 string id,
 string action = "set",
 bool session = true
);

Инициализирует, либо запоминает переменные фильтра в сессии.

Примечание. Функция работает с переменными из глобальной области видимости, это необходимо учитывать при создании основных файлов компонентов [image].

Параметры функции

Параметр | Описание
vars | Массив имен переменных фильтра.
id | Идентификатор фильтра. Строка идентифицирующая данный фильтр в сессионном массиве: $_SESSION["SESS_ADMIN"][id]
action | Что необходимо сделать: запомнить значения или получить значения фильтра. Если значение равно "set", то значения переменных имена которых были переданы в параметре vars будут запомнены в сессионном массиве $_SESSION["SESS_ADMIN"][id]. В противном случае эти переменный будут инициализированы значениями хранящимися в сессионном массиве $_SESSION["SESS_ADMIN"][id]. Параметр необязательный. По умолчанию - "set".
session | Использовать ли сессию. Если значение данного параметра равно "true", то значения фильтра будут запоминаться в сессионном массиве $_SESSION["SESS_ADMIN"][id].

Смотрите также

  • DelFilterEx

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

<?
$FilterArr = Array(
    "find_id",
    "find_id_exact_match",
    );

// если нажата кнопка "Установить фильтр" то
if (strlen($set_filter)>0)
{
    // запоминаем значения фильтра в сессии
    InitFilterEx($FilterArr,"ADV_BANNER_LIST","set");
}
else
{
    // инициализируем значения фильтра из сессии
    InitFilterEx($FilterArr,"ADV_BANNER_LIST","get");
}

// если была нажата кнопка "Сбросить фильтр"
if (strlen($del_filter)>0) DelFilterEx($FilterArr,"ADV_BANNER_LIST");

$arFilter = Array(
    "ID"                    => $find_id,
    "ID_EXACT_MATCH"        => $find_id_exact_match,
    );
$rsBanners = CAdvBanner::GetList($by, $order, $arFilter, $is_filtered);
?>


InitSorting

Описание и параметры

InitSorting(
 mixed Path = false,
 string by_var = "by",
 string order_var = "order"
);

Инициализирует параметры сортировки хранимые в сессии, если сортировка не была явно задана. Если сортировка задана явно, то функция запоминает параметры сортировки в сессии.

Примечание. Функция работает с переменными из глобальной области видимости, это необходимо учитывать при создании основных файлов компонентов [image].

Параметры функции

Параметр | Описание | С версии
Path | Для какой страницы инициализировать сортировку. Значение "false" означает, что необходимо инициализировать сортировку для текущей страницы. Необязательный параметр, по умолчанию равен "false". |
by_var | Имя переменной в которой передается идентфикатор поля для сортировки. Необязательный, по умолчанию равен "by". |
order_var | Имя переменной, которая содержит направление сортировки: asc (по возрастания) или desc (по убыванию). Необязательный параметр, по умолчанию равен "order". | 4.0.6

Смотрите также

  • SortingEx

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

<?
// если переменные $by и $order явно заданы, то их значения запоминаются в сессии
// иначе они инициализируется значениями хранимыми в сессии
InitSorting();
$rsUsers = CUser::GetList($by, $order);
?>
<table>
    <tr>
        <td>ID<br><?=SortingEx("s_id")?></td>
        <td>Логин<br><?=SortingEx("s_name")?></td>
    </tr>
    ...
</table>


SortingEx

Описание и параметры

string
SortingEx(
 string by,
 mixed Path = false,
 string by_var = "by",
 string order_var = "order",
 string anchor = "nav_start"
);

Возвращает HTML, представляющий из себя "стрелки" сортировки. Функция как правило используется в шапке таблиц.

Параметры функции

Параметр | Описание
by | Значение которое будет передано в переменную by_var. Как правило в данном параметре указывается идентификатор поля для сортировки.
Path | URL страницы вместе со всеми параметрами для которой будет сформирована ссылка на "стрелке". Необязательный параметр, равный по умолчанию - "false" (текущая страница).
by_var | Имя переменной в которую будет передано значение параметра by. Необязательный, по умолчанию равен "by".
order_var | Имя переменной, которая содержит направление сортировки: "asc" (по возрастания) или desc (по убыванию). Необязательный параметр, по умолчанию равен "order".
anchor | Якорь, до которого страница будет прокручена в браузере после установки сортировки. Необязательный параметр, по умолчанию равен "nav_start".

Смотрите также

  • InitSorting

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

<table>
    <tr>
        <td>ID<br><?=SortingEx("s_id")?></td>
        <td>Заголовок<br><?=SortingEx("s_name")?></td>
    </tr>
    <tr>
        <td>1</td>
        <td>Заголовок элемента</td>
    </tr>
</table>


Обзор функций

Функции для работы с модулями.

Метод | Описание | С версии
AddEventHandler | Регистрирует произвольный обработчик событий модуля. | 4.0.6
CheckVersion | Сравнение версий модулей. | 3.0.5
ExecuteModuleEvent | Выполнение обработчика события. | 3.0.1
GetModuleEvents | Запрос списка обработчиков событий. | 3.0.1
GetModuleID | Возвращает идентификатор модуля, которому принадлежит файл. | 3.0.3
IsModuleInstalled | Проверяет установлен ли модуль. | 3.0.1
RegisterModule | Регистрация модуля в системе. | 3.0.1
RegisterModuleDependences | Регистрация нового обработчика события. | 3.0.1
UnRegisterModule | Удаляет регистрационную запись модуля. | 3.0.1
UnRegisterModuleDependences | Удаляет регистрационную запись обработчика события. | 3.0.1
RemoveEventHandler | Функция отзывает зарегистрированный обработчик. | 6.5.4

Смотрите также

  • Описание концепции модулей
  • Класс CModule


AddEventHandler

Описание и параметры

AddEventHandler(
 string from_module_id,
 string MESSAGE_ID,
 mixed callback,
 int sort = 100,
 mixed full_path = false
);

Регистрирует произвольный обработчик callback события MESSAGE_ID модуля from_module_id. Если указан полный путь к файлу с обработчиком full_path, то он будет автоматически подключен перед вызовом обработчика. Вызывается на каждом хите и работает до момента окончания работы скрипта.

Аналоги функции в новом ядре D7: Bitrix\Main\EventManager::addEventHandler (новый формат) и Bitrix\Main\EventManager::addEventHandlerCompatible.

Параметры функции

Параметр | Описание
from_module_id | Идентификатор модуля который будет инициировать событие.
MESSAGE_ID | Идентификатор события.
callback | Название функции обработчика. Если это метод класса, то массив вида Array(класс(объект), название метода).
sort | Очередность (порядок), в котором выполняется данный обработчик (обработчиков данного события может быть больше одного). Необязательный параметр, по умолчанию равен 100.
full_path | Полный путь к файлу для подключения при возникновении события перед вызовом callback.

Примечание

Все зарегистрированные обработчики хранятся в глобальной переменной $MAIN_MODULE_EVENTS.

Смотрите также

  • Связи и взаимодействие модулей
  • RegisterModuleDependences

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

<?
// скрипт в файле /bitrix/php_interface/init.php
AddEventHandler("main", "OnBeforeUserLogin", Array("MyClass", "BeforeLogin"));
class MyClass
{
  function BeforeLogin(&$arFields)
  {
        if(strtolower($arFields["LOGIN"])=="guest")
        {
            global $APPLICATION;
            $APPLICATION->throwException("Пользователь с именем входа Guest не может быть авторизован.");
            return false;
        }
  }
}
?>


CheckVersion

bool
CheckVersion(
 string version1,
 string version2
);

Сравнивает версии в форматах XX.XX.XX. Возвращает true, если первая версия, переданная в параметре version1, больше или равна второй версии, переданной в параметре version2, иначе - false.

Параметры функции

Параметр | Описание
version1 | Первая версия в формате "XX.XX.XX"
version2 | Вторая версия в формате "XX.XX.XX"

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

<?
$ver1 = "3.0.15";
$ver2 = "4.0.0";

$res = CheckVersion($ver1, $ver2);

echo ($res) ? $ver1." >= ".$ver2 : $ver1." < ".$ver2;

// результат: 3.0.15 < 4.0.0
?>


ExecuteModuleEvent

Описание и параметры

mixed
ExecuteModuleEvent(
 array event,
 mixed param1 = NULL,
 mixed param2 = NULL,
 mixed param3 = NULL,
 mixed param4 = NULL,
 mixed param5 = NULL,
 mixed param6 = NULL,
 mixed param7 = NULL,
 mixed param8 = NULL,
 mixed param9 = NULL,
 mixed param10 = NULL
);

Запускает обработчик события на выполнение. Возвращает то значение, которое возвращает конкретный обработчик события.

Параметры функции

Параметр Описание С версии
event Массив описывающий одну регистрационную запись хранящую связь между событием и обработчиком этого события (подобные записи хранятсяв таблице b_module_to_module). Ключи данного массива:
  • ID - ID записи
  • TIMESTAMP_X - время изменения записи
  • SORT - сортировка
  • FROM_MODULE_ID - какой модуль инициализирует событие
  • MESSAGE_ID - идентификатор события
  • TO_MODULE_ID - какой модуль содержит обработчик события
  • TO_CLASS - какой класс содержит обработчик события
  • TO_METHOD - метод класса являющийся по сути обработчиком события
param1,
param2,
... ,
param10 		Произвольный набор значений, которые передаются в качестве параметров в обработчик события. 4.0.6

Смотрите также

  • GetModuleEvents

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

<?
// проверка возможности удаления форума

// флаг запрещающий или разрешающий удалять форум
$bCanDelete = true;

// получим данные по всем обработчикам события "OnBeforeForumDelete"
// принадлежащего модулю с идентификатором "forum"
$rsEvents = GetModuleEvents("forum", "OnBeforeForumDelete");
while ($arEvent = $rsEvents->Fetch())
{
    // запустим на выполнение очередной обработчик события "OnBeforeForumDelete"
    // если функция-обработчик возвращает false, то
    if (ExecuteModuleEvent($arEvent, $del_id)===false)
    {
        // запрещаем удалять форум
        $bCanDelete = false;
        break;
    }
}
?>


ExecuteModuleEventEx

Описание и параметры

mixed
ExecuteModuleEventEx(
     $arEvent,
     $arParams = array()
);

Запускает обработчик события на выполнение.

Параметры функции

Параметр | Описание | С версии
Event | Структура данных описывающая один обработчик события. Массив описаний обработчиков возвращает метод GetModuleEvents |
Params | Перечень параметров передаваемых в обработчики события. Этот перечень определяется автором события и индивидуален для каждого события. Параметры могут передаваться как по ссылке так и по значению. Параметры переданные по значению могут быть изменены внутри обработчика. Для передачи параметра по значению в массив должна быть добавлена ссылка на него. |

Получение списка обработчиков события и вызов их:

foreach (GetModuleEvents("мой_модуль", "МоеСобытие", true) as $arEvent)
{
    ExecuteModuleEventEx($arEvent, array(параметры));
}

Получение списков обработчика с возможностью отмены работы метода, внутри которого вызываются события:

foreach (GetModuleEvents("мой_модуль", "МоеСобытие", true) as $arEvent)
{
    if (ExecuteModuleEventEx($arEvent, array(параметры))===false)
        return false;
}

Примечание

Для вызова обработчиков функция ExecuteModuleEvent не поддерживается с версии 10.0.0.

Смотрите также

  • GetModuleEvents

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

 ExecuteModuleEventEx($arEvent, array($ID, &$arFields))

В этом случае обработчик получит два параметра - $ID и $arFields. Значения второго он может менять, так как передан по ссылке.


GetModuleEvents

Описание и параметры

CDBResult
GetModuleEvents(
 string module_id,
 string event_id,
 bReturnArray = false
);

Возвращает список обработчиков события event_id модуля module_id в виде объекта класса CDBResult.

Аналог метода в новом ядре: Bitrix\Main\EventManager::findEventHandlers.

Параметры функции

Параметр | Описание | С версии
module_id | Идентификатор модуля. |
event_id | Идентификатор события. |
ReturnArray | Необязательный. По умолчанию "false". Рекомендуется использовать "true". В этом случае вернёт массив параметров, а не CDBResult. | 10.0.11

Смотрите также

  • ExecuteModuleEvent

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

<?
// проверка возможности удаления форума

// флаг запрещающий или разрешающий удалять форум
$bCanDelete = true;

// получим данные по всем обработчикам события "OnBeforeForumDelete"
// принадлежащего модулю с идентификатором "forum"
$rsEvents = GetModuleEvents("forum", "OnBeforeForumDelete");
while ($arEvent = $rsEvents->Fetch())
{
    // запустим на выполнение очередной обработчик события "OnBeforeForumDelete"
    // если функция-обработчик возвращает false, то
    if (ExecuteModuleEvent($arEvent, $del_id)===false)
    {
        // запрещаем удалять форум
        $bCanDelete = false;
        break;
    }
}
?>


GetModuleID

string
GetModuleID(
 string path
);

Возвращает идентификатор модуля, которому принадлежит файл.

Параметры функции

Параметр | Описание
path | Путь к файлу лежащему в каталоге /bitrix/modules/.

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

<?
echo GetModuleID("/bitrix/modules/main/include.php"); // main
?>


IsModuleInstalled

bool
IsModuleInstalled(
 string module_id
);

Проверяет установлен ли модуль. Возвращает "true", если модуль установлен. Иначе - "false".

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

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.

Смотрите также

  • CModule::IsInstalled
  • CModule::IncludeModule

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

<?
if (IsModuleInstalled("iblock")):

    echo "Модуль информационных блоков установлен";

endif;
?>


RegisterModule

RegisterModule(
 string mоdule_id
);

Регистрация модуля в системе. Как правило регистрация модуля является неотъемлемой частью процесса инсталляции модуля [image].

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.

Смотрите также

  • UnRegisterModule
  • CModule::DoInstall

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

<?
// файл /bitrix/modules/statistic/install/step2.php
RegisterModule("statistic");
?>


RegisterModuleDependences

Описание и параметры

RegisterModuleDependences(
 string from_module_id,
 string MESSAGE_ID,
 string to_module_id,
 string to_class = "",
 string to_method = "",
 int sort = 100,
 TO_PATH="",
 TO_METHOD_ARG = array()
);

Регистрирует обработчик события. Выполняется один раз (при установке модуля) и этот обработчик события действует до момента вызова события UnRegisterModuleDependences.

Аналог функции в новом ядре: Bitrix\Main\EventManager::registerEventHandler [image].

Параметры функции

Параметр | Описание | С версии
from_module_id | Идентификатор модуля, который будет инициировать событие. |
MESSAGE_ID | Идентификатор события. |
to_module_id | Идентификатор модуля, содержащий функцию-обработчик события. |
to_class | Класс принадлежащий модулю module, метод которого является функцией-обработчиком события. Необязательный параметр. По умолчанию - "" (будет просто подключен файл /bitrix/modules/to_module_id/include.php). |
to_method | Метод класса to_class являющийся функцией-обработчиком события. Необязательный параметр. По умолчанию - "" (будет просто подключен файл /bitrix/modules/to_module_id/include.php). |
sort | Очередность (порядок), в котором выполняется данный обработчик (обработчиков данного события может быть больше одного). Необязательный параметр, по умолчанию равен 100. | 3.0.10
TO_PATH | Необязательный параметр, по умолчанию пустой. Подключает файл по указанному пути (с функцией обработчика) без подключения модуля. Это позволяет создавать более экономные обработчики. | 5.1.0
TO_METHOD_ARG | Массив аргументов для функции-обработчика событий. Необязательный параметр. | 8.5.0

Смотрите также

  • Связи и взаимодействие модулей
  • UnRegisterModuleDependences

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

<?
// Для того, чтобы при удалении пользователя сайта
// производилась соответствующая очистка данных форума,
// при установке форума выполняется регистрация нового
// обработчика события "OnUserDelete" модуля main.
// Этим обработчиком является метод OnUserDelete класса CForum модуля forum.

RegisterModuleDependences("main", "OnUserDelete", "forum", "CForum", "OnUserDelete");
?>


RemoveEventHandler

function
ClassName::MethodName(
 FROM_MODULE_ID,
 MESSAGE_ID,
 iEventHandlerKey = default value
);

Функция отзывает зарегистрированный обработчик.

Параметры функции

Параметр | Описание
FROM_MODULE_ID | Идентификатор модуля
MESSAGE_ID | Идентификатор события
iEventHandlerKey | Идентификатор, возвращенный функцией AddEventHandler.


UnRegisterModule

UnRegisterModule(
 string module_id
);

Удаляет регистрационную запись, а также все настройки модуля из базы данных. Как правило удаление регистрационной записи модуля является неотъемлемой частью процесса деинсталляции модуля [image].

Параметры функции

Параметр | Описание
module_id | Идентификатор модуля.

Смотрите также

  • RegisterModule
  • CModule::DoUninstall

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

<?
// файл /bitrix/modules/statistic/install/unstep2.php
UnRegisterModule("statistic");
?>


UnRegisterModuleDependences

Описание и параметры

UnRegisterModuleDependences(
 string from_module_id,
 string MESSAGE_ID,
 string to_module_id,
 string to_class = "",
 string to_method = "",
 string TO_PATH="",
 array TO_METHOD_ARG = array()
);

Удаляет регистрационную запись обработчика события.

Аналог метода в новом ядре: Bitrix\Main\EventManager::unRegisterEventHandler.

Параметры функции

Параметр | Описание | С версии
from_module_id | Идентификатор модуля который инициирует событие. |
MESSAGE_ID | Идентификатор события. |
to_module_id | Идентификатор модуля содержащий функцию-обработчик события. |
to_class | Класс принадлежащий модулю module, метод которого является функцией-обработчиком события. Необязательный параметр. По умолчанию - "". |
to_method | Метод класса to_class являющийся функцией-обработчиком события. Необязательный параметр. По умолчанию - "". |
TO_PATH | Необязательный параметр, по умолчанию пустой. | 5.1.0
TO_METHOD_ARG | Массив аргументов для функции-обработчика событий. Необязательный параметр. | 8.5.0

Смотрите также

  • Связи и взаимодействие модулей
  • RegisterModuleDependences

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

<?
UnRegisterModuleDependences("main", "OnUserDelete", "forum", "CForum", "OnUserDelete");
?>


Обзор функций

Функции для работы с языковыми файлами:

Метод | Описание | С версии
GetMessage | Возвращает по коду соответствующее сообщение на текущем языке. | 3.0.3
IncludeModuleLangFile | Подключает языковой файл для скрипта модуля. | 3.0.3
IncludeTemplateLangFile | Подключает языковой файл для компонента. | 3.3.21

Смотрите также

  • Языки


GetMessage

Описание и параметры

string
GetMessage(
 string name,
 array Replace=false
);

Возвращает по коду соответствующее сообщение на текущем языке. Массивы соответствий кодов и сообщений задаются в языковых файлах. Перед использованием этой функции необходимо подключить соответствующий языковой файл.

В ядре D7 аналог этой функции: Bitrix\Main\Localization\Loc::getMessage [image].

Параметры функции

Параметр | Описание | С версии
name | Код сообщения. Код должен быть уникальным в рамках всего продукта. |
Replace | Массив пар "шаблон" => "замена". Позволяет организовать замену по шаблону. | 5.0.4

Смотрите также

  • IncludeModuleLangFile
  • IncludeTemplateLangFile

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

<?
IncludeTemplateLangFile(__FILE__);
echo GetMessage("SOME_MESSAGE_CODE");
?>

Замена языковой фразы по шаблону

Языковой файл:
$MESS["ERROR_MODULE_NOT_FOUND"] = "Ошибка: модуль #MODULE# не найден"

Файл компонента или модуля:

// ...
if (!CModule::IncludeModule("blog"))
{
   ShowError(GetMessage("ERROR_MODULE_NOT_FOUND", Array ("#MODULE#" => "blog")));


IncludeModuleLangFile

Описание и параметры

IncludeModuleLangFile(
 string abs_path,
 string lang = false,
 bool ReturnArray=false
);

Подключает языковой файл для скрипта, полный путь к которому передается в параметре path. Как правило данная функция используется для подключения языковых файлов модулей.

Подключаемый языковой файл должен иметь то же имя, что и подключающий файл, и быть расположен на диске в каталоге:/bitrix/modules/ID модуля/lang/ID языка/путь к файлу относительно корня модуля

В новом ядре D7 имеет аналог: Bitrix\Main\Localization\Loc::loadMessages [image].

Параметры функции

Параметр | Описание | С версии
abs_path | Абсолютный путь к файлу, для которого необходимо подключить языковые сообщения. |
lang | Идентификатор языка. Необязательный параметр, по умолчанию равен "false" (текущий язык). | 3.3.21
ReturnArray | Массив возвращаемых значений. Необязательный параметр, по умолчанию равен "false". | 6.5.1

Смотрите также

  • Что такое "языковые файлы"
  • Языковые файлы модулей
  • IncludeTemplateLangFile

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

<?
// Подключим языковой файл для текущего скрипта
IncludeModuleLangFile(__FILE__);
?>


IncludeTemplateLangFile

Описание и параметры

IncludeTemplateLangFile(
 string abs_path,
 string lang = false
);

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

Алгоритм поиска языкового файла:

  1. Сначала языковой файл будет искаться в каталоге

    /bitrix/templates/ID текущего шаблона сайта/lang/ID языка/относительный путь к скрипту

  2. Если файл не найден, он будет искаться в каталоге

    /bitrix/templates/.default/lang/ID языка/относительный путь к скрипту

  3. Затем если файл не найден, он будет искаться дистрибутиве модуля, т.е. в каталоге

    /bitrix/modules/ID модуля/install/templates/lang/ID языка/относительный путь к скрипту

В общем случае, под "относительный путь к скрипту", понимается путь к файлу относительно каталога /bitrix/templates/ID текущего шаблона сайта/.

В частном случае, при подключении компонент, под "относительный путь к скрипту", понимается путь для подключения компонента передаваемый в функцию CMain::IncludeFile в качестве первого параметра.

В новом ядре D7 имеет аналог: Bitrix\Main\Localization\Loc::loadMessages [image].

Параметры функции

Параметр | Описание
abs_path | Абсолютный путь к файлу, для которого необходимо подключить языковые сообщения.
lang | Идентификатор языка. Необязательный параметр, по умолчанию равен "false" (текущий язык).

Смотрите также

  • Что такое "языковые файлы"
  • Языковые файлы модулей
  • IncludeModuleLangFile

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

<?
// Подключим языковой файл для текущего компонента
// Предполагаем, что языковой файл расположен стандартным образом
IncludeTemplateLangFile(__FILE__);
?>


Обзор функций

Функции для отладки:

Метод | Описание | С версии
AddMessage2Log | Добавляет новую запись в log-файл. | 3.3.0
SendError | Отсылает по E-Mail сообщение об ошибке. | 3.0.3
mydump | Возвращает визуальное представление значения (дамп) переменной или объекта класса. | 3.0.3

Смотрите также

Специальные переменные включающие отладку


AddMessage2Log

Описание и параметры

AddMessage2Log(
 string text,
 string module_id = "",
 traceDepth = 6,
 bool ShowArgs = false
);

Функция добавляет новую запись в log-файл. Путь до файла (или имя файла) рекомендуется делать уникальным в рамках каждого проекта.

Для работы функции необходимо, чтобы до ее вызова была определена константа LOG_FILENAME, содержащая абсолютный путь к log-файлу. Если эта константа не определена, то функция не выполняет никаких действий. Константа LOG_FILENAME при необходимости определяется в начале текущей страницы или в одном из файлов:

  • /bitrix/php_interface/dbconn.php
  • /bitrix/php_interface/ID сайта/init.php

Данная функция вызывается в случае ошибки в следующих функциях:

  • CDataBase::Query
  • CDataBase::QueryBind
  • CDataBase::QueryBindSelect

Log-файл накапливает все добавленные в него сообщения. Для очистки log-файла его можно просто удалить с диска.

Примечание. Существует возможность записывать в отдельный отладочный файл все запросы к базе данных и время их выполнения, для этого необходимо инициализировать переменную $DBDebugToFile, значением "true" в файле /bitrix/php_interface/dbconn.php.

Аналог функции в новом ядре: Bitrix\Main\Diag\Debug::dumpToFile и Bitrix\Main\Diag\Debug::writeToFile.

Параметры функции

Параметр | Описание | С версии
text | Текст сообщения. |
module_id | Идентификатор модуля, который сохраняет сообщение. Необязательный параметр, по умолчанию - "". |
traceDepth | Необязательный параметр, по умолчанию - "6". | 11.0.14
ShowArgs | Необязательный параметр, по умолчанию - "false". | 11.0.14

Смотрите также

Специальные переменные включающие отладку

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

<?
// файл /bitrix/php_interface/dbconn.php

// определим константу LOG_FILENAME, в которой зададим путь к лог-файлу
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");
?>
<?
// Сохраним в лог сообщение
AddMessage2Log("Произвольный текст сообщения", "my_module_id");
?>
<?
// выполним преднамеренно некорректный SQL-запрос
$DB->Query("SELECT");
// работа скрипта будет прекращена и в лог-файл будет добавлено сообщение об ошибке
?>
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"] . "/_logs/bx/" . date("Y_m_d") . "_PROJECT_UNIQUE_POSTFIX.log");


mydump

Описание и параметры

string
mydump(
 mixed var,
 int max_depth = -1,
 int depth = 0
);

Возвращает визуальное представление значения (дамп) переменной или объекта класса.

Аналог функции в новом ядре D7^ Bitrix\Main\Diag\Debug::dump.

Параметры функции

Параметр | Описание
var | Переменная для дампа.
max_depth | Максимальное количество рекурсивных вызовов данной функции в момент создания дампов сложных массивов или объектов класса с большой вложенностью. Необязательный параметр, по умолчанию - -1 (не ограничено).
depth | Счетчик рекурсивных вызовов данной функции в момент создания дампов сложных массивов или объектов класса с большой вложенностью. Необязательный параметр, по умолчанию - 0 (начальное значение).

Примеры

Пример вызова функции

<?
// создадим дамп стандартного объекта класса CUser
echo "<pre>";
echo mydump($USER);
echo "</pre>";
?>

Пример результата

<?
 object(cuser) =>
  method(0) => Array[0]
  method(1) => Array[1]
  method(2) => Array[2]
  method(3) => Array[3]
  method(4) => Array[4]
  method(5) => Array[5]
  method(6) => Array[6]
  method(7) => Array[7]
  method(8) => Array[8]
  method(9) => Array[9]
  method(10) => Array[10]
  method(11) => Array[11]
  method(12) => Array[12]
  method(13) => Array[13]
  method(14) => Array[14]
  method(15) => Array[15]
  method(16) => Array[16]
  method(17) => Array[17]
  method(18) => Array[18]
  method(19) => Array[19]
  method(20) => Array[20]
  method(21) => Array[21]
  method(22) => Array[22]
  method(23) => Array[23]
  method(24) => Array[24]
  method(25) => Array[25]
  method(26) => Array[26]
  method(27) => Array[27]
  method(28) => Array[28]
  method(29) => Array[29]
  method(30) => Array[30]
  method(31) => Array[31]
  method(32) => Array[32]
  method(33) => Array[33]
  method(34) => Array[34]
  method(35) => Array[35]
  method(36) => Array[36]
  method(37) => Array[37]
  method(38) => Array[38]
  method(39) => Array[39]
  method(40) => Array[40]
  method(41) => Array[41]
  method(42) => Array[42]
  method(43) => Array[43]
  method(44) => Array[44]
  method(45) => Array[45]
  method(46) => Array[46]
  method(47) => Array[47]
  method(48) => Array[48]
  method(49) => Array[49]
  method(50) => Array[50]
  method(51) => Array[51]
  method(52) => Array[52]
  method(53) => Array[53]
  method(54) => Array[54]
  method(55) => Array[55]
  default => result =>
         NULL()  default => arResult =>
         NULL()  default => bNavStart =>
         boolean(true)  default => bShowAll =>
         boolean(true)  default => NavNum =>
         NULL()  default => NavPageCount =>
         NULL()  default => NavPageNomer =>
         NULL()  default => NavPageSize =>
         NULL()  default => NavShowAll =>
         NULL()  default => NavRecordCount =>
         NULL()  default => bFirstPrintNav =>
         boolean(true)  default => PAGEN =>
         NULL()  default => SIZEN =>
         NULL()  default => bFromArray =>
         boolean(true)  default => bFromLimited =>
         boolean(true)  default => sSessInitAdd =>
         string(0) =>
        ""
  default => nPageWindow =>
         integer(11)  default => nSelectedCount =>
         boolean(true)  default => SESS_AUTH =>
         NULL()  default => LAST_ERROR =>
         string(0) =>
        ""
  result =>
         NULL()  arResult =>
         NULL()  bNavStart =>
         boolean(true)  bShowAll =>
         boolean(true)  NavNum =>
         NULL()  NavPageCount =>
         NULL()  NavPageNomer =>
         NULL()  NavPageSize =>
         NULL()  NavShowAll =>
         NULL()  NavRecordCount =>
         NULL()  bFirstPrintNav =>
         boolean(true)  PAGEN =>
         NULL()  SIZEN =>
         NULL()  bFromArray =>
         boolean(true)  bFromLimited =>
         boolean(true)  sSessInitAdd =>
         string(0) =>
        ""
  nPageWindow =>
         integer(11)  nSelectedCount =>
         boolean(true)  SESS_AUTH =>
         array(10) =>
         [AUTHORIZED] =>
             string(1) =>
            "Y"
         [USER_ID] =>
             string(1) =>
            "2"
         [LOGIN] =>
             string(5) =>
            "nessy"
         [EMAIL] =>
             string(15) =>
            "mail@server.com"
         [PASSWORD_HASH] =>
             string(32) =>
            "fc0b9bd428702e477fb6a6fbc3da211c"
         [NAME] =>
             string(14) =>
            "Vitaly Kaplich"
         [FIRST_NAME] =>
             string(6) =>
            "Vitaliy"
         [LAST_NAME] =>
             string(7) =>
            "Kaplich"
         [GROUPS] =>
             array(3) =>
             [0] =>
                 integer(2)             [1] =>
                 integer(1)             [2] =>
                 integer(3)         [ADMIN] =>
             boolean(true)  LAST_ERROR =>
         string(0) =>
        ""
?>


SendError

Описание и параметры

SendError(
 string text,
 string module_id = ""
);

Отсылает по E-Mail сообщение об ошибке.

Для работы функции необходимо, чтобы до ее вызова была определена константа ERROR_EMAIL, содержащая E-Mail адрес на который будут отправляться сообщения об ошибках. Если эта константа не определена, то функция не выполняет никаких действий. Константа ERROR_EMAIL при необходимости определяется в начале текущей страницы или в одном из файлов:

  • /bitrix/php_interface/dbconn.php
  • /bitrix/php_interface/ID сайта/init.php

В константе ERROR_EMAIL может быть определено несколько адресов, на которые отсылать сообщения:

define("ERROR_EMAIL", "admin1@site.ru, admin2@site.ru");

Помимо текста ошибки, в письмо будут включены:

  • HTTP_GET_VARS - массив переменных пришедших на страницу в HTTP запросе типа GET
  • HTTP_POST_VARS - массив переменных пришедших на страницу в HTTP запросе типа POST
  • HTTP_COOKIE_VARS - массив переменных хранящихся у посетителя на локальной машине (cookie)
  • HTTP_SERVER_VARS - массив стандартных серверных переменных

Данная функция вызывается в случае ошибки в следующих функциях:

  • CDataBase::Connect
  • CDataBase::Query
  • CDataBase::QueryBind
  • CDataBase::QueryBindSelect
  • CDBResult::Fetch (только для Oracle версии)

Для корректной отправки сообщений об ошибке необходимо также определять константы:
ERROR_EMAIL_FROM,
ERROR_EMAIL_REPLY_TO.

Параметры функции

Параметр | Описание
text | Текст сообщения.
module_id | Идентификатор модуля, который сохраняет сообщение. Необязательный параметр, по умолчанию - "".

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

<?
// файл /bitrix/php_interface/dbconn.php

// определим константу ERROR_EMAIL, в которой зададим E-Mail администратора
define("ERROR_EMAIL", "admin@site.ru");
?>
<?
SendError("Произвольное текстовое сообщение");
?>


Обзор функций

Метод | Описание | С версии
check_email | Проверяет E-Mail адрес на синтаксическую корректность. | 3.0.3
FindUserID | Выводит ряд HTML элементов позволяющих задать ID пользователя и рядом с этим полем ввода получить данные пользователя. Также выводиться кнопка ведущая на страницу поиска пользователя. | 3.3.10
LocalRedirect | Выполняет перенаправление браузера на указанную страницу. | 3.0.3
QueryGetData | Запрашивает web-адрес по протоколу HTTP. | 3.1.6
GetWhoisLink | Возвращает ссылку на один из сайтов службы Whois для получения данных по заданному IP адресу. | 3.3.0
DeleteParam | На основе стандартного массива $HTTP_GET_VARS формирует строку параметров, удаляя из нее указанные параметры. | 3.0.3
InitURLParam | Инициализирует необходимые переменные из параметров заданного URL'а. | 4.0.6
IsIE | Проверяет, является ли текущий браузер посетителя браузером "MS Internet Explorer". | 3.0.10
Rel2Abs | Формирует путь относительно заданного каталога. | 3.0.3
BXClearCache | Удаляет файлы кеша по указанному пути. | 3.3.7
GetCountryByID | Возвращает название страны на заданном языке. | 3.0.7
GetCountryArray | Возвращает отсортированный массив стран с названиями на заданном языке. | 3.0.6
ShowError | Вывод сообщений об ошибках. | 3.0.3
ShowNote | Вывод нотификаций. | 3.0.3
ShowMessage | Вывод сообщений об ошибках и прочих сообщений. | 3.0.3
bitrix_sessid_get | Передача идентификатора сессии. | 4.0.8
bitrix_sessid_post | Передача идентификатора сессии | 4.0.8
bxmail | Проверяет существование функции custom_mail и вызывает её. | 7.1.3
check_bitrix_sessid | проверяет условие условие $_REQUEST[$varname] == bitrix_sessid(). | 4.0.8
bitrix_sessid | Возвращает идентификатор сессии, предварительно обработанный функцией md5. | 4.0.8
roundEx | Округляет сверху значение. | 3.0.3


bitrix_sessid

string
bitrix_sessid(
);

Возвращаемое значение

Возвращает идентификатор сессии, предварительно обработанный функцией md5.


bitrix_sessid_get

string
bitrix_sessid_get(
$varname='sessid'
)

Параметры функции

Параметр | Описание
varname | Идентификатор сессии

Возвращаемое значение

Возвращает строку вида [dw]$varname=идентификатор сессии[/dw][di]Например, sessid=d3f742dc1453da22e9e08e113ccad5b8[/di] для использования в ссылках, предварительно обработанную функцией md5.

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

Передача идентификатора в ссылке.

<a href="/news/detail.php?ID=123&delete=Y&<?=bitrix_sessid_get()?>">Удалить</a>


bitrix_sessid_post

string
bitrix_sessid_post(
$varname='sessid'
)

Параметры функции

Параметр | Описание
varname | Идентификатор сессии

Возвращаемое значение

Возвращает строку вида <input type="hidden" name="$varname" id="$varname" value="идентификатор сесии" />.

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

Передача идентификатора сессии в форме

<form method="post" action="/news/add.php">
<?=bitrix_sessid_post()?>
Title: <input type="text" name="NAME" size="40" maxlength="255" value="">
</form>


BXClearCache

bool
BXClearCache(
 bool delete_all = false,
 string dir = ""
);

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

Параметры функции

Параметр | Описание
delete_all | Если значение равно "true", то будут удалены все файлы кеша, если значение равно "false", то будут удалены только устаревшие файлы кеша.
dir | Каталог, начиная с которого производить обработку. Применяется для частичной обработки кеша. Задается относительно корневой папки кеша - /bitrix/cache/.

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

<?
// удалим весь кэш для каталога /forum/
BXClearCache(true, "/forum/");
?>


bxmail

bxmail(
 string to,
 string subject,
 string message,
 string additional_haders = "",
 string additional_parameters = ""
);

Проверяет существование функции custom_mail и если такая функция есть, то bxmail вызывает ее со всеми параметрами и возвращает ее результат.

Иначе вызывается встроенная php функция mail.

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

Параметры функции

Параметр | Описание
to | Получатель.
subject | Заголовок письма.
message | Тело письма.
additional_headers | Дополнительные заголовки.
additional_parameters | Дополнительные параметры для php функции mail().

Возвращаемое значение

Возвращается результат работы функции custom_mail или mail.

Смотрите также

  • mail

    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008-2022 1С-Битрикс: Управление сайтом


check_bitrix_sessid

bool
check_bitrix_sessid()(
$varname='sessid'
)

Параметры функции

Параметр | Описание
varname | Идентификатор сессии

Возвращаемое значение

Возвращает true, если верно условие $_REQUEST[$varname] == bitrix_sessid(), иначе false.

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

if($arResult["Perm"]>=BLOG_PERMS_MODERATE && intval($_GET["delete_comment_id"])>0 && check_bitrix_sessid())
{
   /*Удаление комментария*/
}


check_email

Описание и параметры

bool
check_email(
  string email,
  bool Strict = false
);

Проверяет E-Mail адрес на синтаксическую корректность. Возвращает "true", если адрес синтаксически корректен, в противном случае - "false".

Примечание. Email проверяется согласно RFC822, то есть, к примеру, test@test - абсолютно правильный с точки зрения данной функции адрес. Поэтому данная функция не подходит для проверки формата адреса электронной почты в традиционном понимании.

Параметры функции

Параметр | Описание | С версии
email | Проверяемый E-Mail адрес.
Strict Необязательный. По умолчанию: "false". При bStrict = true
echo (check_email("Bitrix ")) ? "OK!" : "Error!"; // Error!
10.0.3

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

<?
echo (check_email("Bitrix <admin@bitrix.ru>")) ? "OK!" : "Error!"; // OK
echo (check_email("mail@server.com")) ? "OK!" : "Error!"; // OK
echo (check_email("admin@bi$trix.ru")) ? "OK!" : "Error!"; // ERROR
?>


DeleteParam

string
DeleteParam(
 array remove_params
);

На основе стандартного массива $HTTP_GET_VARS формирует строку параметров, удаляя из нее те параметры, имена которых указаны в remove_params.

В новом ядре D7 обращайтесь к методам:

  • Bitrix\Main\Web\Uri::deleteParams [image],
  • Bitrix\Main\Web\Uri::getUri

Параметры функции

Параметр | Описание
remove_params | Массив имен параметров, которые необходимо удалить из результирующей строки.

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

<?
// Сформируем ссылку на произвольную страницу
// со всеми текущими GET параметрами,
// при этом заменив (или добавив если их не было)
// параметры "page" и "order"
?>
<a href="page.php?page=1&order=asc&<?=DeleteParam(array("page","order"))?>">ссылка</a>


FindUserID

Описание и параметры

bool
FindUserID(
 string tag_name,
 string tag_value
 string user_name = "",
 string form_name = "form1",
 string tag_size = "3",
 string tag_maxlength = "",
 string button_title = "...",
 string tag_class = "typeinput",
 string button_class = "tablebodybutton",
 string search_page = "/bitrix/admin/user_search.php"
);

Выводит ряд HTML элементов, позволяющих задать ID пользователя и рядом с этим полем ввода получить данные пользователя. Также выводится кнопка, ведущая на страницу поиска пользователя.

Параметры функции

Параметр | Описание
tag_name | Имя поля для ввода ID пользователя: <input type="text" name="tag_name" ...>
tag_value | Значение поля для ввода ID пользователя: <input type="text" value="tag_value" ...>
user_name | ID, логин, имя и фамилия пользователя, выводимые рядом с полем для ввода ID пользователя, сразу же после загрузки страницы. Необязательный параметр. По умолчанию - "".
form_name | Имя формы, в которой находится поле для ввода ID пользователя. Необязательный параметр. По умолчанию - "form1".
tag_size | Ширина поля для ввода ID пользователя. <input type="text" size="tag_size" ...> Необязательный параметр. По умолчанию - "3".
tag_maxlength | Максимальное количество символов в поле для ввода ID пользователя: <input type="text" maxlength="tag_maxlength" ...> Необязательный параметр. По умолчанию - "" (не ограничено).
button_title | Подпись на кнопке ведущей на страницу поиска пользователя: <input type="button" value="button_title" ...> Необязательный параметр. По умолчанию - "...".
tag_class | CSS класс для поля ввода ID пользователя: <input type="input" class="tag_class" ...> Необязательный параметр. По умолчанию - "typeinput".
button_class | CSS класс для кнопки ведущей на страницу поиска пользователя: <input type="button" class="button_class" ...> Необязательный параметр. По умолчанию - "tablebodybutton".
search_page | Путь относительно корня на страницу поиска пользователя. Необязательный параметр. По умолчанию - "/bitrix/admin/user_search.php" (административная страница).

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

<form name="form1">
<?
$name = "[<a href=\"/bitrix/admin/user_edit.php?lang=".language_id."&id=".
$USER_ID."\">".$USER_ID."</a>] (".$LOGIN.") ".$NAME;

echo FindUserID("USER_ID", $USER_ID, $name,
"form1", "3", "", "...", "inputtext", "inputbodybutton");
?>
</form>


GetCountryArray

Описание и параметры

array
GetCountryArray(
 string language_id = LANGUAGE_ID
)

Возвращает массив стран с названиями на заданном языке. Формат возвращаемого массива позволяет его использовать в функциях SelectBoxFromArray, SelectBoxMFromArray без предварительной подготовки.

Примечание. Массив стран задается в файлах /bitrix/modules/main/lang/language_id/tools.php.

Параметры функции

Параметр | Описание
language_id | Идентификатор языка в котором необходимо вернуть названия стран. Необязательный параметр. По умолчанию - LANGUAGE_ID (текущий язык).

Примеры

Пример возвращаемого массива:

Array
(
    [reference_id] => Array
        (
            [0] => 16
            [1] => 17
            [2] => 2
            [3] => 18
            ...
        ),
    [reference] => Array
        (
            [0] => Австралия
            [1] => Австрия
            [2] => Азербайджан
            [3] => Албания
            ...
        )
)

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

<?
// выведем выпадающий список стран
echo SelectBoxFromArray(
    "COUNTRY_ID",
    <b>GetCountryArray</b>(),
    $COUNTRY_ID,
    "< выберите страну >"
    );
?>


GetCountryByID

string
GetCountryByID(
 int cid,
 string lang = LANGUAGE_ID
)

Возвращает название страны на заданном языке по ее коду.

Примечание. Цифровые коды стран вы можете посмотреть в файле /bitrix/modules/main/lang/language_id/tools.php.

Параметры функции

Параметр | Описание | С версии
id | Цифровой код страны. |
lang | Идентификатор языка в котором необходимо вернуть название страны. Необязательный параметр. По умолчанию - LANGUAGE_ID (текущий язык). | 4.0.6

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

<?
echo GetCountryByID(34, "ru"); // Бразилия
?>


GetWhoisLink

string
GetWhoisLink(
  string ip,
  string link_class =
);

Возвращает ссылку на один из сайтов службы Whois для получения данных по заданному IP адресу.

Формат возвращаемой ссылки:
<a href="http://www.whois.sc/ip" class="link_class">ip</a>

Параметры функции

Параметр | Описание
ip | IP адрес в формате XXX.XXX.XXX.XXX для которого необходимо сформировать ссылку.
class | CSS класс ссылки.

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

<?
echo GetWhoisLink("210.49.16.111");
?>


InitURLParam

string
InitURLParam(
 mixed url = false
);

Инициализирует переменные и массивы $_GET, $HTTP_GET_VARS, $_REQUEST, $GLOBALS параметрами переданными в url.

Примечание. Как правило, данная функция используется с обработчике 404 ошибки, когда необходимо получить переменные переданные в URL'е. Подобные обработчики используются для организации сервисов на базе 404 ошибки. Подобные сервисы позволяют создавать более дружелюбные для поисковиков адреса.

Параметры функции

Параметр | Описание
url | URL, параметры которого необходимо инициализировать. Необязательный параметр. По умолчанию - "false" (текущая страница).

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

<?
InitURLParam("/ru/index.php?ID=2&A=123");
// будут инициализированы переменные $ID=2 и $A=123
// а также соответствующие ключи массивов $_GET, $HTTP_GET_VARS, $_REQUEST, $GLOBALS
?>


IsIE

bool
IsIE()

Возвращает "true", если текущий браузер посетителя является браузером "MS Internet Explorer", в противном случае - "false".

Параметры функции

Без параметров.

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

<?
if (IsIE()) echo "Вы пользуетесь MS Internet Explorer";
?>


LocalRedirect

Описание и параметры

LocalRedirect(
 string url,
 bool skip_security_check=false,
 string status="302 Found"
);

Выполняет перенаправление браузера на указанную страницу.

Обратите внимание!В функции LocalRedirect в качестве статуса можно установить только те, которые относятся к редиректам, то есть имеют код 3хх. Остальные статусы игнорируются, при попытке их установки будет передан статус 302.

Примечание. Для административной части перенаправление браузера можно использовать только до вывода какого-либо контента (т.е. до подключения файла prolog_admin_after.php или prolog_admin.php). В публичной части - никаких ограничений не накладывается.

Параметры функции

Параметр | Описание | С версии
url | URL на который будет перенаправлен браузер. Допустимо использование как относительных адресов, так и адресов ведущих на другие сайты и начинающихся со следующих протоколов: "http://", "https://", "ftp://". |
skip_security_check | Необязательный. Значение true позволяет пропустить проверку модуля безопасности на фишинг. | 8.0.3
status | Необязательный. Параметр устанавливает код (статус) в HTTP-заголовке ответа. Например, "301 Moved permanently". Параметр добавлен в версии 8.5.1. | 8.5.1

События

OnBeforeLocalRedirect - происходит перед редиректом, в обработчик передаётся url.

Параметр | Описание | С версии
url | URL на который будет перенаправлен браузер. Допустимо использование как относительных адресов, так и адресов ведущих на другие сайты и начинающихся со следующих протоколов: "http://", "https://", "ftp://". | 6.5.4
skip_security_check | Необязательный. Значение true позволяет пропустить проверку модуля безопасности на фишинг. | 6.5.4
bExternal | Признак того, что передан полный или относительный путь. | 6.5.4

OnLocalRedirect - происходит во время редиректа после установки заголовка Location. Никакие параметры при этом не возвращаются в обработчик. С версии 6.5.4.

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

<?
// полный URL на другой сайт
LocalRedirect("http://www.bitrixsoft.ru/");

// относительный путь от корня текущего сайта
LocalRedirect("/ru/index.php");

// относительный путь к файлу в текущем каталоге текущего сайта
LocalRedirect("index.php");
?>


QueryGetData

Описание и параметры

string
QueryGetData(
  string site,
  int port,
  string PATH,
  string QUERY_STR,
  int &errno,
  string &errstr,
  string Method = "GET",
  string Proto = "",
  string ContentType = 'N'
);

Функция запрашивает указанный в параметрах web-адрес по протоколу HTTP. Возвращает тело (без заголовка) ответа, полученного от сервера. В случае ошибки возвращается пустая строка и устанавливаются параметры error_number и error_text.

Параметры функции

Параметр | Описание | С версии
site | Адрес сайта, страница которого запрашивается.
port | Номер порта. Как правило - 80.
PATH | Путь к запрашиваемой странице.
QUERY_STR | Строка параметров запроса в стандартном формате.
errno | Данный параметр является ссылкой на исходную переменную. В нее будет возвращен номер ошибки в случае ее возникновения.
errstr | Данный параметр является ссылкой на исходную переменную. В нее будет возвращен текст ошибки в случае ее возникновения.
Method Метод отправки запроса удаленному серверу. Допустимые значения:
  • "GET"
  • "POST"
Необязательный параметр, по умолчанию равен GET. 		3.2.7
Proto Префикс адреса сайта для работы с SSL и TLS. Допустимые значения:
  • ""
  • "ssl://"
  • "tls://"
Необязательный параметр, по умолчанию равен "" (пустой строке) - стандартное соединение.

Ваш хостинг может не поддерживать соединения, отличные от стандартного.

4.0.4
ContentType | Необязательный. По умолчанию "N". | 7.1.6

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

<?
// Запросим с сайта центрального банка РФ курсы валют за 18 января 2005 г
$strQueryText = QueryGetData(
    "www.cbr.ru",
    80,
    "/scripts/XML_daily.asp",
    "date_req=18.01.2005",
    $error_number,
    $error_text
    );
if (strlen($strQueryText)<=0)
{
   echo "Ошибка запроса курсов валют";
   if (intval($error_number)>0 || strlen($error_text)>0)
      echo ": (".$error_number.") ".$error_text;
   echo ". ";
}
else
{
   echo htmlspecialchars($strQueryText);
}
?>


Rel2Abs

string
Rel2Abs(
 string cur_dir,
 string rel_path
);

Возвращает путь относительно заданного каталога cur_dir. Если rel_path пустой, то функция возвращает false. Если rel_path является абсолютным путем (т.е. начинается с "/" или имеет вид "C:\"), то параметр cur_dir игнорируется. Если в rel_path попытаться с помощью "../" подняться выше корня, то функция блокирует эту попытку удалив все промежуточные подъемы. Например: по запросу /test/../../test.php она вернет /test/test.php.

Параметры функции

Параметр | Описание
cur_dir | Каталог, относительно которого задается путь rel_path.
rel_path | Относительный путь.

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

<?
echo Rel2Abs("/site/", "/temp/index.php");	// /temp/index.php
echo Rel2Abs("/site/", "temp/index.php");	// /site/temp/index.php
echo Rel2Abs("/site/temp/", "../index.php");	// /site/index.php
echo Rel2Abs("/site/temp/", "../../index.php");	// /index.php
?>


roundEx

function
roundEx(
 value,
 prec=0
);

Округляет сверху значение $value до $prec знаков после запятой.

Параметры функции

Параметр | Описание
value | Округляемое значение
prec | Число знаков запятой, до которых происходит округление.


ShowError

ShowError(
 string message,
 string css_class =
);

Выводит сообщение об ошибке.

Параметры функции

Параметр | Описание
message | Строка сообщения.
css_class | Название CSS класса для оформления сообщения. Необязательный параметр, как правило красного цвета.

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

<?
ShowError("Ошибка!");
?>


ShowMessage

ShowMessage(
  mixed message
);

Выводит ошибки и прочие сообщения.

Параметры функции

Параметр Описание
message Текст сообщения об ошибке или массив со следующими ключами:
  • TYPE - тип сообщения, допустимы следующие значения:
    • OK - обычное сообщения, для вывода будет использоваться CSS класс "notetext"
    • ERROR - сообщение об ошибке, для вывода будет использоваться CSS класс "errortext"
  • MESSAGE - текст сообщения.

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

<?
// выведем обычное сообщение
ShowMessage(Array("TYPE"=>"OK", "MESSAGE"=>"Данные сохранены."));
?>
<?
// выведем сообщение об ошибке
ShowMessage("Ошибка! Вы забыли заполнить обязательные поля!");
?>


ShowNote

ShowNote(
 string Note,
 string cls = "notetext"
);

Выводит заданное сообщение.

Параметры функции

Параметр | Описание
Note | Сообщение.
cls | Название CSS класса для оформления сообщения. Необязательный параметр, по умолчанию равен "notetext" (как правило зеленого цвета).

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

<?
ShowNote("Все в порядке!");
?>


Список событий

Ниже представлены списки событий главного модуля. Для регистрации обработчика укажите в качестве идентификатора модуля - "main".

Выполнение страницы

События, вызывающиеся в процессе выполнения страницы:

Событие | Вызывается | Метод | С версии
OnPageStart | в начале выполняемой части пролога сайта, после подключения всех библиотек и отработки агентов [image] . |  | 3.0.6
OnBeforeProlog | в выполняемой части пролога сайта (после события OnPageStart). |  | 3.0.6
OnProlog | в начале визуальной части пролога сайта. | CAllMain::PrologActions | 4.0.14
OnEpilog | в конце визуальной части эпилога сайта. |  | 3.3.21
OnAfterEpilog | в конце выполняемой части эпилога сайта (после события OnEpilog). |  | 3.0.11
OnBeforeEndBufferContent | перед выводом буферизированного контента | CAllMain::EndBufferContent | 9.5.0
OnBeforeRestartBuffer | перед сбросом буфера контента | CAllMain::RestartBuffer | 6.5.4
OnEndBufferContent | при выводе буферизированного контента. | CAllMain::EndBufferContent | 7.0.1

Смотрите также

  • Этапы выполнения страницы

Пользователи и авторизация

События при работе с пользователями и авторизация:

Событие | Вызывается | Метод | С версии
OnBeforeUserRegister | до попытки зарегистрировать нового пользователя | CUser::Register | 4.0.6
OnAfterUserRegister | после попытки регистрации нового пользователя | CUser::Register | 4.0.6
OnBeforeUserSimpleRegister | до попытки упрощённой регистрации нового пользователя | CUser::SimpleRegister | 4.0.6
OnAfterUserSimpleRegister | после попытки упрощённой регистрации нового пользователя | CUser::SimpleRegister | 4.0.6
OnBeforeUserLogin | до попытки авторизации пользователя | CUser::Login | 4.0.6
OnUserLoginExternal | перед попыткой авторизации пользователя, предназначен для проверки внешней авторизации [image] . | CUser::Login | 4.0.6
OnAfterUserLogin | после попытки авторизации пользователя | CUser::Login | 4.0.6
OnBeforeUserLoginByHash | перед попыткой авторизации пользователя | CUser::LoginByHash | 4.0.6
OnAfterUserLoginByHash | после попытки авторизации пользователя | CUser::LoginByHash | 4.0.6
OnAfterUserAuthorize | после авторизации пользователя | CAllUser::Authorize | 4.0.6
OnBeforeUserLogout | перед завершением сеанса авторизации пользователя | CUser::Logout | 4.0.6
OnAfterUserLogout | после завершения сеанса авторизации пользователя | CUser::Logout | 4.0.6
OnBeforeUserAdd | перед добавлением нового пользователя. | CAllUser::CheckFields | 4.0.16
OnAfterUserAdd | после добавления нового пользователя. | CUser::Add | 4.0.16
OnBeforeUserUpdate | перед изменением параметров пользователя. | CAllUser::CheckFields | 4.0.16
OnAfterUserUpdate | после изменения параметров пользователя. | CAllUser::Update | 4.0.16
OnBeforeUserDelete | перед удалением пользователя. | CAllUser::Delete | 3.0.10
OnUserDelete | во время удаления пользователя. | CAllUser::Delete | 3.0.10
OnExternalAuthList | для получения списка источников внешней авторизации. | CAllUser::GetExternalAuthList | 4.0.6
OnBeforeUserChangePassword | перед сменой пользовательского пароля | CUser::ChangePassword | 4.0.14
OnBeforeUserSendPassword | перед отправкой пользователю пароля | CUser::SendPassword | 4.0.14
OnUserLogin | при попытке авторизации | CUser::Authorize | 3.3.0
OnUserLogout | после завершения сеанса авторизации пользователя | CUser::Logout | 3.3.13
OnSendUserInfo | при передаче данных о пользователе | CUser::SendUserInfo | 4.0.6
OnAuthProvidersBuildList | при создании провайдеров авторизации | CAccess::__construct | 11.0.7

Смотрите также

  • Внешняя авторизация

Группы пользователей

События при работе с группами пользователей:

Событие | Вызывается | Метод | С версии
OnBeforeGroupDelete | перед удалением группы пользователей | CAllGroup::Delete | 3.0.10
OnGroupDelete | при удалении группы пользователей | CAllGroup::Delete | 3.0.10
[link=258359]OnAfterGroupAdd[/link] | после добавления новой группы пользователей | CAdminTabControl::Begin | 9.5.8
OnAfterGroupUpdate | после изменения группы пользователей | CGroup::Update | 9.5.8
[link=258349]OnBeforeGroupAdd[/link] | перед добавлением группы пользователей | CGroup::Add | 9.5.8
OnBeforeGroupUpdate | перед изменением группы пользователей | CGroup::Update | 9.5.8

Файлы и права

События при работе с файлами и правами:

Событие | Вызывается | Метод | С версии
OnBeforeChangeFile | на изменение файла сразу после его сохранения. | CAllMain::SaveFileContent | 8.5.1
OnChangePermissions | при изменении прав доступа к файлу или папке. | CAllMain::RemoveFileAccessPermission | 3.0.3
[link=284614]OnFileDelete[/link] | при удалении файла из таблицы b_file. | CFile::Delete | 10.0.5
OnAfterResizeImage | после изменения размера изображения | CFile::ResizeImageGet | 10.0.11
OnBeforeChangeFile | перед изменением файла | CMain::SaveFileContent | 8.5.1
OnBeforeResizeImage | перед изменением размера изображения | CFile::ResizeImageGet | 10.0.11
OnFileCopy | при копировании файла | CFile::CopyFile | 10.0.11
OnFileSave при сохранении файла

Пример использования: при сохранении обрезает оригинал до 1920*1920

AddEventHandler("main",'OnFileSave','OnFileSave');
function OnFileSave(&$arFile, $fileName, $module)
{
   $arNewFile = CIBlock::ResizePicture($arFile, array("WIDTH" => 1920, "HEIGHT" => 1920, "METHOD" => "resample"));
   if(is_array($arNewFile))
      $arFile = $arNewFile;
   else
      $APPLICATION->throwException("Ошибка масштабирования изображения в свойстве \"Файлы\":".$arNewFile);

}
 CFile::SaveFile 10.0.11
OnGetFileSRC | при получении адреса изображения | CFile::GetFileSRC | 10.0.11
OnMakeFileArray | при создании массива, описывающего файл | CFile::MakeFileArray | 10.0.11
OnSearchGetFileContent | при индексации модулем поиска | CUserTypeFile::__GetFileContent | 11.0.0
OnTaskOperationsChanged | при изменении уровня доступа | CTask::SetOperations | 11.0.6

Шаблоны почтовых сообщений

События при работе с шаблонами почтовых сообщений:

Событие | Вызывается | Метод | С версии
OnBeforeEventMessageDelete | перед удалением почтового шаблона. | CAllEventMessage::Delete | 3.0.10
OnEventMessageDelete | во время удаления почтового шаблона | CEventMessage::Delete | 3.0.10
OnBeforeEventAdd | перед добавлением почтового события | CEvent::Send | 6.0.2
OnBeforeEventSend | перед отправкой почтового события | CEvent::HandleEvent | 6.0.2

Сайты

События при работе с сайтами:

Событие | Вызывается | Метод | С версии
OnBeforeSiteDelete | перед удалением сайта. | CAllSite::Delete | 4.0.6
OnSiteDelete | в момент удаления сайта. | CAllSite::Delete | 4.0.6
OnBeforeSiteAdd | перед добавлением сайта в систему | CSite::CheckFields | 9.1.2
OnBeforeSiteUpdate | перед изменением сайта | CSite::CheckFields | 9.1.2

Языки

События при работе с языками:

Событие | Вызывается | Метод | С версии
OnBeforeLanguageDelete | перед удалением языка. | CAllLanguage::Delete | 3.3.21
OnLanguageDelete | в момент удаления языка | CAllLanguage::Delete | 3.3.21
OnBeforeLangDelete | перед удалением языка из системы | CSite::Delete | 3.0.10
OnLangDelete | при удалении языка из системы | CSite::Delete | 3.0.10

Панель управления и админ. часть

События при работе с панелью управления и административной частью:

Событие | Вызывается | Метод | С версии
OnPanelCreate | в момент сбора данных для построения панели управления в публичной части сайта. | CTopPanel::InitPanelIcons | 3.0.14
OnAdminContextMenuShow | при выводе в административном разделе панели кнопок. | CAdminContextMenu::Show | 9.5.10
[link=265178]OnAdminListDisplay[/link] | при выводе в административном разделе списка элементов. | CAdminList::Display | 9.5.10
[link=265192]OnAdminTabControlBegin[/link] | при выводе в административном интерфейсе формы редактирования. | CAdminTabControl::Begin | 9.5.10
OnAfterSetOption_ | после изменения настроек модуля | COption::SetOptionString | 6.5.8
OnBuildGlobalMenu | при построении меню в административной части | CAdminMenu::Init | 6.0.3

Смотрите также

  • Обработка событий
  • Связи и взаимодействие модулей

Рейтинги

События при работе с рейтингами:

Событие | Вызывается | Метод | С версии
OnAddRatingVote | после добавлении голоса за контент. | CRatings::Add | 11.0.5
OnAfterCheckAllowVote | после проверки прав на голосование, перед добавление голоса, нужно вернуть массив вида array('RESULT' => false, 'ERROR_TYPE' => 'тип ошибки', 'ERROR_MSG' => 'текст ошибки') голос не будет засчитан, если вернуть true голос будет засчитан. | CRatingRule::Add | 11.0.15
OnCancelRatingVote | после отмены ранее отданного голоса за контент. | CRatings::Update | 11.0.5
OnAfterUpdateRatingRule | после обновления правила обработки рейтинга | CRatingRule::Update | 9.5.4
OnBeforeDeleteRating | перед удалением рейтинга | CRatings::Delete | 9.5.0
OnBeforeDeleteRatingRule | перед удалением правила обработки рейтинга | CRatingRule::Delete | 9.5.4
OnGetRatingContentOwner | перед добавлением голоса для определения идентификатора автора контента | CRatings::AddRatingVote | 11.0.0
OnGetRatingRuleConfigs | во время генерации страницы добавления (редактирования) правил обработки для получения настроек правил | CRatingRule::GetRatingRuleConfigs | 9.5.4
OnGetRatingRuleObjects | при вызове правил обработки рейтинга | CRatingRule::GetRatingRuleObjects | 9.5.4
OnGetRatingsConfigs | во время генерации страницы добавления (редактирования) правил обработки для получения объектов голосования к которым могут быть применены правила | CRatings::GetRatingConfigs | 9.5.0
OnGetRatingsObjects | во время генерации страницы добавления (редактирования) рейтингов для получения настроек компонентов рейтинга | CRatings::GetRatingObjects | 9.5.0

Парсинг текста

События при парсинге текста:

Событие | Вызывается | Метод | С версии
TextParserAfter | после парсинга | CTextParser::convertText | 10.0.2
TextParserAfterTags | после парсинга тегов | CTextParser::convertText | 10.0.2
TextParserBefore | перед парсингом | CTextParser::convertText | 10.0.2
TextParserBeforePattern | перед парсингом | CTextParser::convertText | 10.0.2
TextParserBeforeTags | перед парсингом тегов | CTextParser::convertText | 10.0.2
TextParserVideoConvert | при парсинге тега видео | CTextParser::convert_video | 10.0.2

Обновление системы

События при обновлении системы:

Событие | Вызывается | Метод | С версии
OnUpdatesInstalled после установки обновлений. Имеет единственный параметр: массив вида:
Array (
   "successModules" => $arSuccessModules,
   "loadModules" => $arLoadModules,
   "errorModules" => $arErrorModules,
   "modulesUpdates" => $arModulesUpdates
 CUpdateOutput::ShowBlockInfo 7.0.12
OnModuleUpdate | после обновления модуля | CUpdateClientPartner::UpdateStepModules | 7.1.1

Установка модулей

События при установке модулей:

Событие | Вызывается | Метод | С версии
OnAfterRegisterModule | после регистрации модуля | RegisterModule | 12.0.8
OnAfterUnRegisterModule | после деинсталляции модуля | UnRegisterModule | 12.0.8

Пользовательские поля

События при работе с пользовательскими полями:

Событие | Вызывается | Метод | С версии
OnUserTypeBuildList | при построении списка пользовательских полей | CUserTypeManager::GetUserType | 6.0.2
OnUserTypeRightsCheck | при проверке прав доступа на пользовательские поля | GetRights | 6.5.5
OnAfterFetch | после выполнения выборки | 12.5.12
onAfterUserTypeUpdate после обновления пользовательского поля. Аргументы:
  • $arFields - массив полей после обновления
  • $ID - идентификатор поля.
 CUserTypeEntity 16.5.3
OnAfterUserTypeDelete после удаления пользовательского поля. Аргументы:
  • $arFields - массив полей удаленного элемента
  • $ID - идентификатор поля.
 CUserTypeEntity 16.5.3

Прочие события

Событие | Вызывается | Метод | С версии
OnAutoSaveRestore | при восстановлении автосохраненных данных | CAutoSave::_Restore | 11.0.1
OnBeforeLocalRedirect | перед редиректом | LocalRedirect | 6.5.4
OnLocalRedirect | при редиректе | LocalRedirect | 6.5.4
OnCheckListGet | при отправке чеклиста | CCheckList::__construct | 11.0.1
onAfterAjaxResponse | после обработки аяксового запроса к компоненту в аякс-режиме | ExecuteEvents | 7.0.0
OnAfterShortUriAdd | после добавления короткой ссылки | CBXShortUri::Add | 12.5.0
OnBeforeShortUriDelete | перед удалением короткой ссылки | CBXAllShortUri::Delete | 12.5.0


OnAdminContextMenuShow

Описание и параметры

void
Handler(
 array &items
);

Событие OnAdminContextMenuShow вызывается в функции CAdminContextMenu::Show() при выводе в административном разделе панели кнопок. Событие позволяет модифицировать или добавить собственные кнопки на панель.

Параметры функции

Параметр | Описание
items | Ссылка на массив кнопок на панели. Структура массива описана на странице Конструктор CAdminContextMenu.

Возвращаемое значение

Возвращаемое значение не используется.

Смотрите также

  • События
  • Класс CAdminContextMenu

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

<?
AddEventHandler("main", "OnAdminContextMenuShow", "MyOnAdminContextMenuShow");
function MyOnAdminContextMenuShow(&$items)
{
    //add custom button to the index page toolbar
    if($GLOBALS["APPLICATION"]->GetCurPage(true) == "/bitrix/admin/index.php")
        $items[] = array("TEXT"=>"Настройки модулей", "ICON"=>"", "TITLE"=>"Страница настроек модулей", "LINK"=>"settings.php?lang=".LANGUAGE_ID);
}
?>


OnAdminListDisplay

Описание и параметры

void
Handler(
 object &list
);

Событие OnAdminListDisplay вызывается в функции CAdminList::Display() при выводе в административном разделе списка элементов. Событие позволяет модифицировать объект списка, в частности, добавить произвольные групповые действия над элементами списка, добавить команды в меню действий элемента списка и т.п.

Параметры функции

Параметр | Описание
list | Ссылка на объект класса CAdminList.

Возвращаемое значение

Возвращаемое значение не используется.

Смотрите также

  • События
  • Класс CAdminListRow

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

<?
AddEventHandler("main", "OnAdminListDisplay", "MyOnAdminListDisplay");
function MyOnAdminListDisplay(&$list)
{
    //add custom group action
    if($list->table_id == "tbl_posting")
        $list->arActions["status_draft"] = "Статус: Черновик";
}
//process custom action
AddEventHandler("main", "OnBeforeProlog", "MyOnBeforeProlog");
function MyOnBeforeProlog()
{
    if($_SERVER["REQUEST_METHOD"] == "POST" && $_POST["action"] == "status_draft" && is_array($_POST["ID"]) && $GLOBALS["APPLICATION"]->GetCurPage() == "/bitrix/admin/posting_admin.php")
    {
        if($GLOBALS["APPLICATION"]->GetGroupRight("subscribe") == "W" && check_bitrix_sessid())
        {
            if(CModule::IncludeModule("subscribe"))
            {
                $cPosting = new CPosting;
                foreach($_POST["ID"] as $ID)
                    if(($ID = intval($ID)) > 0)
                        $cPosting->ChangeStatus($ID, "D");
            }
        }
    }
}
?>


OnAdminTabControlBegin

Описание и параметры

void
Handler(
  &form
);

Событие OnAdminTabControlBegin вызывается в функции CAdminTabControl::Begin() при выводе в административном интерфейсе формы редактирования. Событие позволяет изменить или добавить собственные вкладки формы редактирования.

Параметры функции

Параметр | Описание
form | Ссылка на объект класса CAdminTabControl. Использование члена класса $form->tabs позволяет получить доступ к закладкам формы. Структура массива закладок описана на странице Конструктор CAdminTabControl.

Возвращаемое значение

Возвращаемое значение не используется.

Смотрите также

  • События
  • Создание формы редактирования

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

<?
AddEventHandler("main", "OnAdminTabControlBegin", "MyOnAdminTabControlBegin");
function MyOnAdminTabControlBegin(&$form)
{
    if($GLOBALS["APPLICATION"]->GetCurPage() == "/bitrix/admin/posting_edit.php")
    {
        $form->tabs[] = array("DIV" => "my_edit", "TAB" => "Дополнительно", "ICON"=>"main_user_edit", "TITLE"=>"Дополнительные параметры", "CONTENT"=>
            '<tr valign="top">
                <td>Дополнительные заголовки письма:</td>
                <td>
                    <input type="text" name="MY_HEADERS[]" value="" size="30"><br>
                    <input type="text" name="MY_HEADERS[]" value="" size="30"><br>
                    <input type="text" name="MY_HEADERS[]" value="" size="30"><br>
                </td>
            </tr>'
        );
    }
}
?>


OnAfterEpilog

функция-обработчик();

Событие "OnAfterEpilog" возникает в конце выполняемой части эпилога сайта (после события OnEpilog).

Параметры функции-обработчика

Без параметров.

Смотрите также

  • Событие "OnEpilog"
  • Этапы выполнения страницы и доступные на каждом этапе переменные и константы
  • События

Пример регистрации функции-обработчика:

<?
RegisterModuleDependences("main",
                          "OnAfterEpilog",
                          "compression",
                          "CCompress",
                          "OnAfterEpilog");
?>


OnAfterGroupAdd

Описание и параметры

bool
EventHandler(
 array &arFields
);

Событие вызывается в методе CGroup::Add после добавления группы, и может быть использовано для действий, связанных с группой.

Параметры метода

Параметр | Описание
arFields | Список полей (класс CGroup) добавляемой группы пользователей. Массив содержит в том числе ключ ID с идентификатором добавленной группы.

Возвращаемое значение

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

Смотрите также

  • CGroup
  • События

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

<?
AddEventHandler("main", "OnAfterGroupAdd", "MyOnAfterGroupAdd");
function MyOnAfterGroupAdd(&$arFields)
{
    AddMessage2Log(print_r($arFields, true));
}?>


OnAfterGroupUpdate

Описание и параметры

void
EventHandler(
 int ID,
 array &arFields
);

Событие вызывается в методе CGroup::Update после изменения полей группы, и может быть использовано для дополнительных действий, связанных с группой.

Параметры метода

Параметр | Описание
ID | Идентификатор измененной группы пользователей.
arFields | Список полей (класс CGroup) измененной группы пользователей.

Возвращаемое значение

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

Смотрите также

  • CGroup
  • События

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

<?
AddEventHandler("main", "OnAfterGroupUpdate", "MyOnAfterGroupUpdate");
function MyOnAfterGroupUpdate($ID, &$arFields)
{
    if($ID == 1)
        AddMessage2Log(print_r($arFields, true));
}
?>


OnAfterUserAdd

Описание и параметры

функция-обработчик(
 array &arFields
);
Событие "OnAfterUserAdd" вызывается после попытки добавления нового пользователя методом CUser::Add.

Параметры

Параметр | Описание
arFields | Массив полей нового пользователя. Дополнительно, в элементе массива с индексом "RESULT" содержится результат работы (возвращаемое значение) метода CUser::Add и, в случае ошибки, элемент с индексом "RESULT_MESSAGE" будет содержать текст ошибки.

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

Смотрите также

  • Событие "OnBeforeUserAdd"
  • CUser::Add
  • События

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("main", "OnAfterUserAdd", Array("MyClass", "OnAfterUserAddHandler"));

class MyClass
{
    // создаем обработчик события "OnAfterUserAdd"
    function OnAfterUserAddHandler(&$arFields)
    {
        if($arFields["ID"]>0)
            AddMessage2Log("Запись с кодом ".$arFields["ID"]." добавлена.");
        else
            AddMessage2Log("Ошибка добавления записи (".$arFields["RESULT_MESSAGE"].").");
    }
}
?>


OnAfterUserAuthorize

Описание и параметры

функция-обработчик(
 array user_fields
)
Обработчик события будет вызван из метода CUser::Authorize после авторизации пользователя, передавая в параметре user_fields массив всех полей авторизованного пользователя.

Параметры

Параметр | Описание
user_fields | Массив всех полей пользователя.

Смотрите также

  • CUser::Authorize
  • События
  • Внешняя авторизация

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("main", "OnAfterUserAuthorize", Array("MyClass", "OnAfterUserAuthorizeHandler"));

class MyClass
{
    // создаем обработчик события "OnAfterUserAuthorize"
    function OnAfterUserAuthorizeHandler($arUser)
    {
         // выполняем все действия связанные с авторизацией

    }
}
?>


OnAfterUserLogin

Описание и параметры

функция-обработчик(
 array &arParams
);

Событие "OnAfterUserLogin" вызывается в методе CUser::Login после попытки авторизовать пользователя, проверив имя входа arParams['LOGIN'] и пароль arParams['PASSWORD'].

Параметры

Параметр Описание
arParams Массив полей проверки имени входа и пароля:
  • USER_ID - в случае если авторизация прошла успешно содержит код пользователя
  • RESULT_MESSAGE - массив с информационным текстом, описывающий результат проверки пользователя, в дальнейшем используется функцией ShowMessage для вывода сообщения.
  • LOGIN - Логин пользователя
  • PASSWORD - Пароль. Если параметр PASSWORD_ORIGINAL равен"Y", то в данном параметре был передан оригинальный пароль, в противном случае был передан хеш (md5) от оригинального пароля.
  • REMEMBER - Если значение равно "Y", то авторизация пользователя должна быть сохранена в куках.
  • PASSWORD_ORIGINAL - Если значение равно "Y", то это означает что PASSWORD не был сконвертирован в MD5 (т.е. в параметре PASSWORD был передан реальный пароль вводимый пользователем с клавиатуры), если значение равно "N", то это означает что PASSWORD уже сконвертирован в MD5.

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

Смотрите также

  • Событие "OnBeforeUserLogin"
  • CUser::Login
  • События
  • Внешняя авторизация

Пример функции-обработчика

<?
AddEventHandler("main", "OnAfterUserLogin", Array("MyClass", "OnAfterUserLoginHandler"));

class MyClass
{
    // создаем обработчик события "OnAfterUserLogin"
    function OnAfterUserLoginHandler(&$fields)
    {
        // если логин не успешен то
        if($fields['USER_ID']<=0)
        {
            // счетчик неудавшихся попыток логина
            $_SESSION["AUTHORIZE_FAILURE_COUNTER"]++;

            // если количество неудачных попыток авторизации превышает 10, то
            if ($_SESSION["AUTHORIZE_FAILURE_COUNTER"]>10)
            {
                // ищем пользователя по логину
                $rsUser = CUser::GetByLogin($fields['LOGIN']);
                // и если нашли, то
                if ($arUser = $rsUser->Fetch())
                {
                    // блокируем бюджет пользователя
                    $user = new CUser;
                    $user->Update($arUser["ID"],array("ACTIVE" => "N"));

                    // задаем сообщение
                    $fields['RESULT_MESSAGE'] = array("TYPE" => "ERROR", "MESSAGE" => "Ваш бюджет блокирован.");
                }
            }
        }
    }
}
?>


OnAfterUserLoginByHash

Описание и параметры

функция-обработчик(
 array &arParams
);
Событие "OnAfterUserLoginByHash" вызывается в методе CUser::LoginByHash() после проверки имени входа arParams['LOGIN'] и хеша от пароля arParams['HASH'] и попытки авторизовать пользователя. В параметре arParams['USER_ID'] будет передан код пользователя которого удалось авторизовать, а также массив с сообщением об ошибке arParams['RESULT_MESSAGE'].

Параметры

Параметр Описание
arParams Массив полей проверки имени входа и пароля:
  • USER_ID - в случае, если авторизация прошла успешно, содержит код пользователя
  • RESULT_MESSAGE - массив с информационным текстом, описывающий результат проверки пользователя, в дальнейшем используется функцией ShowMessage для вывода сообщения.
  • LOGIN - Логин пользователя
  • HASH - Пароль. Специальный хеш от пароля пользователя. Данный хеш как правило хранится в куках пользователя.

Некоторые параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.
Это позволяет, например, изменить RESULT_MESSAGE, что приведет к смене сообщения возвращаемого функцией CUser::LoginByHash.

Смотрите также

  • Событие "OnBeforeUserLoginByHash"
  • CUser::LoginByHash
  • События
  • Внешняя авторизация

Пример функции-обработчика

// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("main", "OnAfterUserLoginByHash", Array("MyClass", "OnAfterUserLoginByHashHandler"));

class MyClass
{
    // создаем обработчик события "OnAfterUserLoginByHash"
    function OnAfterUserLoginByHashHandler(&$arParams)
    {
        if($arParams['USER_ID']<=0)
        {
            //переопределим сообщение об ошибке.
            $arParams['RESULT_MESSAGE'] = Array("MESSAGE" => "New error.", "TYPE" => "ERROR");
        }
    }
}
?>


OnAfterUserLogout

Описание и параметры

функция-обработчик(
 array &arParams
);
Событие "OnAfterUserLogout" вызывается после завершения авторизации пользователя.

Параметры

Параметр Описание
arParams Массив параметров:
  • USER_ID - код пользователя
  • SUCCESS - результат операции: true, если авторизация завершена, false - в случае ошибки или отмены завершения авторизации обработчиком события OnBeforeUserLogout.

Смотрите также

  • Событие "OnBeforeUserLogout"
  • CUser::Logout
  • События

Пример функции-обработчика

<?
// файл /bitrix/modules/my_module_id/include.php
class MyClass
{
    // создаем обработчик события "OnAfterUserLogout"
    function OnAfterUserLogoutHandler($arParams)
    {
        // здесь выполняем все что касается завершения авторизации
        ...
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnAfterUserLogout"
RegisterModuleDependences("main", "OnAfterUserLogout",
"my_module_id", "MyClass", "OnAfterUserLogoutHandler");?>


OnAfterUserRegister

Описание и параметры

функция-обработчик(
 array &arFields
);
Событие "OnAfterUserRegister" вызывается после попытки регистрации нового пользователя методом CUser::Register.

Параметры

Параметр Описание
arFields Массив полей регистрации нового пользователя:
  • USER_ID - в случае если регистрация прошла успешно содержит код нового пользователя
  • RESULT_MESSAGE - массив с информационным текстом, описывающий результат регистрации пользователя, в дальнейшем используется функцией ShowMessage для вывода сообщения.
  • LOGIN - имя входа пользователя
  • NAME - имя пользователя
  • LAST_NAME - фамилия пользователя
  • PASSWORD - пароль
  • CONFIRM_PASSWORD - подтверждение пароля
  • CHECKWORD - новое контрольное слово для смены пароля
  • EMAIL - EMail пользователя
  • ACTIVE - флаг активности [Y|N]
  • SITE_ID - ID сайта по умолчанию для уведомлений
  • GROUP_ID - массив ID групп пользователя
  • USER_IP - IP адрес пользователя
  • USER_HOST - хост пользователя

Примечание. Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому изменить эти параметры невозможно: изменения не сохраняются. Реально можно изменить только RESULT_MESSAGE, что приведет к смене сообщения возвращаемого функцией CUser::Register. Если необходимо модифицировать поля регистрации пользователя перед сохранением, необходимо использовать событие OnBeforeUserRegister

Смотрите также

  • Событие "OnBeforeUserRegister"
  • События [image] в курсе Разработчик Bitrix Framework
  • CUser::Register

Примеры

Пример функции-обработчика:

<?
// файл /bitrix/modules/my_module_id/include.php
class MyClass
{
    // создаем обработчик события "OnAfterUserRegister"
    function OnAfterUserRegisterHandler(&$arFields)
    {
        // если регистрация успешна то
        if($arFields["USER_ID"]>0)
        {
            // если текущий сайт - r1, то
            if(SITE_ID=="r1")
            {
                // зададим сообщение об успешной регистрации на сайте r1
                $arFields["RESULT_MESSAGE"]["MESSAGE"] = "Вы успешно зарегистрировались на сайте \"Мой любимый сайт 1\"";
            }
            elseif(SITE_ID=="r2")
            {
                // зададим сообщение об успешной регистрации на сайте r2
                $arFields["RESULT_MESSAGE"]["MESSAGE"] = "Вы успешно зарегистрировались на сайте \"Мой любимый сайт 2\"";

            }
        }
        return $arFields;
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnAfterUserRegister"
RegisterModuleDependences("main", "OnAfterUserRegister", "my_module_id", "MyClass", "OnAfterUserRegisterHandler");
?>


OnAfterUserSimpleRegister

Описание и параметры

функция-обработчик(
 array &arFields,
);
Событие "OnAfterUserSimpleRegister" вызывается после попытки упрощённой регистрации нового пользователя методом CUser::SimpleRegister.

Параметры

Параметр Описание
arFields Массив полей регистрации нового пользователя:
  • USER_ID - в случае если регистрация прошла успешно содержит код нового пользователя
  • RESULT_MESSAGE - массив с информационным текстом, описывающий результат регистрации пользователя, в дальнейшем используется функцией ShowMessage для вывода сообщения.
  • PASSWORD - пароль
  • CONFIRM_PASSWORD - подтверждение пароля
  • CHECKWORD - контрольное слово для смены пароля
  • EMAIL - EMail пользователя
  • ACTIVE - флаг активности [Y|N]
  • SITE_ID - ID сайта по умолчанию для уведомлений
  • GROUP_ID - массив ID групп пользователя
  • USER_IP - IP адрес пользователя
  • USER_HOST - хост пользователя

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

Смотрите также

  • Событие "OnBeforeUserSimpleRegister"
  • События
  • CUser::Register

Примеры

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnAfterUserSimpleRegister"
RegisterModuleDependences("main", "OnAfterUserSimpleRegister", "my_module_id", "MyClass", "OnAfterUserSimpleRegisterHandler");
?>

Пример функции-обработчика:

<?
// файл /bitrix/modules/my_module_id/include.php
class MyClass
{
    // создаем обработчик события "OnAfterUserSimpleRegister"
    function OnAfterUserSimpleRegisterHandler(&$fields)
    {
        // если регистрация успешна то
        if($fields["USER_ID"]>0)
        {
            // зададим сообщение об успешной регистрации
            $fields["RESULT_MESSAGE"]["MESSAGE"] = "Вы успешно зарегистрировались на сайте. Ваш логин - ".$fields["LOGIN"];
        }
    }
}
?>


OnAfterUserUpdate

Описание и параметры

функция-обработчик(
 array &arFields
);
Событие OnAfterUserUpdate вызывается после попытки изменения свойств пользователя методом CUser::Update.

Параметры

Параметр | Описание
arFields | Массив полей изменяемого пользователя. Дополнительно, в элементе массива с индексом RESULT содержится результат работы (возвращаемое значение) метода CUser::Update и, в случае ошибки, элемент с индексом RESULT_MESSAGE будет содержать текст ошибки. Если изменяется $arFields["RESULT"] на false, то необходимо устанавливать $USER->LAST_ERROR.

Примечание. Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому изменить эти параметры невозможно: изменения не сохраняются. Реально можно изменить только RESULT_MESSAGE, что приведет к смене сообщения возвращаемого функцией CUser::Register. Если необходимо модифицировать поля регистрации пользователя перед сохранением, необходимо использовать событие OnBeforeUserRegister

Смотрите также

  • Событие "OnBeforeUserUpdate"
  • CUser::Update
  • События

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("main", "OnAfterUserUpdate", Array("MyClass", "OnAfterUserUpdateHandler"));

class MyClass
{
    // создаем обработчик события "OnAfterUserUpdate"
    function OnAfterUserUpdateHandler(&$arFields)
    {
        if($arFields["RESULT"])
            AddMessage2Log("Запись с кодом ".$arFields["ID"]." изменена.");
        else
            AddMessage2Log("Ошибка изменения записи ".$arFields["ID"]." (".$arFields["RESULT_MESSAGE"].").");
    }
}
?>


OnBeforeChangeFile

Описание и параметры

bool функция-обработчик(
 string abs_path,
 string &strContent
);

Событие "OnBeforeChangeFile" вызывается при изменении файла методом $APPLICATION->SaveFileContent, перед его сохранением. Событие добавлено в версии 8.5.1 ядра. Контент в событие передается по ссылке.

Возвращаемое значение

При возврате true поизводится сохранение файла. При возврате false сохранение файла отменяется.

Параметры

Параметр | Описание
abs_path | Абсолютный путь к файлу (включая document_root).
strContent | Новое содержимое файла. Значение передается по ссылке. Таким образом, обработчик может изменить содержимое файла перед его сохранением.

Смотрите также

  • Событие "OnChangePermissions"
  • CMain::SaveFileContent
  • События

Пример функции-обработчика

// файл /bitrix/php_interface/init.php
AddEventHandler("main", "OnBeforeChangeFile", "MyBeforeChangeFile");

function MyBeforeChangeFile($abs_path, $content)
{
    if(strpos($content, "Вася") !== false)
    {
        $GLOBALS['APPLICATION']->ThrowException("Вы не можете сохранять слово 'Вася' в документе! (".$abs_path.")");
        return false;
    }
    return true;
}


OnBeforeEventAdd

Описание и параметры

функция-обработчик(
 string &$event,
 string &$lid,
 array &$arFields,
 string &$message_id,
 array &$files,
 string languageId = ''
)
Событие OnBeforeEventAdd вызывается в момент добавления почтового события в таблицу b_event. Как правило, задача обработчика данного события - изменить или добавить какое-либо значение, передаваемое в макросы почтового шаблона.

Параметры

Параметр | Описание | С версии
$event | Идентификатор типа почтового события, например FORM_FILLING_ANKETA
$lid | ID сайта, на котором был вызов метода CEvent::Send()
$arFields Массив параметров, которые передаются в обработчик события.
Пример массива:
Array
        (
            [RS_FORM_ID] => 1
            [RS_FORM_NAME] => Анкета посетителя сайта
            [RS_FORM_VARNAME] => ANKETA
            [RS_FORM_SID] => ANKETA
            [RS_RESULT_ID] => 11
            [RS_DATE_CREATE] => 24.07.2011 16:59:55
            [RS_USER_ID] => 1
            [RS_USER_EMAIL] => my@email.com
            [RS_USER_NAME] =>
            [RS_USER_AUTH] =>
            [RS_STAT_GUEST_ID] => 1
            [RS_STAT_SESSION_ID] => 1
            [VS_NAME] => sfdsf
            [VS_NAME_RAW] => sfdsf
            [VS_BIRTHDAY] => 21.07.2011
            [VS_BIRTHDAY_RAW] => 21.07.2011
            [VS_ADDRESS] => sdfdsf
            [VS_ADDRESS_RAW] => sdfdsf
            [VS_MARRIED] => Да [4]
            [VS_MARRIED_RAW] => Да
            [VS_INTEREST] => физика (2) [7]
                             программирование (5) [10]
            [VS_INTEREST_RAW] => физика,программирование
            [VS_AGE] => 30-39 (30) [13]
            [VS_AGE_RAW] => 30-39
            [VS_EDUCATION] => высшее (3) [19]
            [VS_EDUCATION_RAW] => высшее
            [VS_INCOME] =>
            [VS_INCOME_RAW] =>
            [VS_PHOTO] =>
            [VS_PHOTO_RAW] =>
        )
$message_id | Идентификатор почтового шаблона (если указан). Если переменная определена в обработчике, то среди нескольких почтовых шаблонов по одному типу будет отправлен только с этим ID, а не все. | 11.0.16
$files | Файл | 16.0.1
$languageId (По умолчанию - текущий язык) Отвечает за отправку уведомлений на указанном языке (у почтовых шаблонов параметр "Язык"). Отправляются все шаблоны без указания языка и те у которых язык соответствует $languageId.

Фильтр по языку шаблонов не выполняется если передается переменная $messageId.

Пример функции-обработчика:

<?
class MyClass
{
    function onBeforeEventAdd(&$event, &$lid, &$arFields, &$messageId, &$files, &$languageId)
    {
         // код
    }
}
?>
16.5.8

Возвращаемое значение

Нет. Начиная с версии ядра 11.0.16 при возврате false добавление почтового события отменяется.

Смотрите также

  • Событие "OnBeforeEventSend"
  • CEvent::Send
  • События

Пример функции-обработчика

<?
//Обработчик в файле /bitrix/php_interface/init.php
AddEventHandler("main", "OnBeforeEventAdd", array("MyClass", "OnBeforeEventAddHandler"));
class MyClass
{
    function OnBeforeEventAddHandler(&$event, &$lid, &$arFields)
    {
        $arFields["NEW_FIELD"] = "Новый макрос для почтового шаблона";
        $arFields["VS_BIRTHDAY"] = "Изменение существующего макроса";
        $lid = 's2'; //Изменяем привязку к сайту
    }
}
?>


OnBeforeEventMessageDelete

Описание и параметры

bool
функция-обработчик(
 int template_id
);
Событие "OnBeforeEventMessageDelete" вызывается перед удалением почтового шаблона. Как правило задачи обработчика данного события - разрешить или запретить удаление почтового шаблона.

Параметры

Параметр | Описание
template_id | ID удаляемого почтового шаблона.

Возвращаемое значение

Для отмены удаления пользователя и прекращении выполнения метода CEventMessage::Delete необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnEventMessageDelete"
  • CEventMessage::Delete
  • События

Примеры

Пример функции-обработчика:

<?
// файл /bitrix/modules/my_module_id/include.php
class MyClass
{
    // создаем обработчик события "OnBeforeEventMessageDelete"
    function OnBeforeEventMessageDeleteHandler($template_id)
    {
        // проверим есть ли связанные с удаляемым шаблоном записи
        $strSql = "SELECT * FROM my_table WHERE EMAIL_TEMPLATE_ID=".intval($template_id);
        $rs = $DB->Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);

        // если связанные записи есть то
        if ($ar = $rs->Fetch())
        {
            // запретим удаление почтового шаблона
            global $APPLICATION;
            $APPLICATION->throwException("В моей таблице есть связанные записи.");
            return false;
        }
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnBeforeEventMessageDelete"
RegisterModuleDependences("main", "OnBeforeEventMessageDelete",
             "my_module_id", "MyClass", "OnBeforeEventMessageDeleteHandler");
?>


OnBeforeEventSend

Вызывается перед отправкой сообщения.

Параметры

Параметр | Описание
arFields | список переменных
arTemplate | массив данных для шаблона
context | контекст письма \Bitrix\Main\Mail\Context. Параметр используется для разделения потоков писем, путем установки кода категории (потока) писем.

Пример функции-обработчика

AddEventHandler('main', 'OnBeforeEventSend', Array("MyForm", "my_OnBeforeEventSend"));
class MyForm
{
   function my_OnBeforeEventSend($arFields, $arTemplate)
   {

         //получим сообщение
         $mess = $arTemplate["MESSAGE"];
         foreach($arFields as $keyField => $arField)
            $mess = str_replace('#'.$keyField.'#', $arField, $mess); //подставляем значения в шаблон
   }
}

Параметры можно передавать по ссылкам. Вместо:

function my_OnBeforeEventSend($arFields, $arTemplate)

Использовать

function my_OnBeforeEventSend(&$arFields, &$arTemplate)


OnBeforeGroupAdd

Описание и параметры

bool
EventHandler(
 array &arFields
);

Событие вызывается в методе CGroup::Add до добавления группы, и может быть использовано для отмены добавления или переопределения некоторых полей.

Параметры метода

Параметр | Описание
arFields | Список полей (класс CGroup) добавляемой группы пользователей.

Параметр arFields данного обработчика является ссылкой на исходные переменные. Поэтому если изменить значение параметра внутри обработчика, это приведет к смене значения исходной переменной, поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены добавления группы и прекращении выполнения метода CGroup::Add необходимо в функции-обработчике создать исключение методом $APPLICATION-> ThrowException() и вернуть false.

Смотрите также

  • CGroup
  • События

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

<?
AddEventHandler("main", "OnBeforeGroupAdd", "MyOnBeforeGroupAdd");
function MyOnBeforeGroupAdd(&$arFields)
{
    if($arFields["DESCRIPTION"] == '')
        $arFields["DESCRIPTION"] = "Описание группы";
}
?>


OnBeforeGroupDelete

Описание и параметры

bool
функция-обработчик(
 int group_id
);
Событие "OnBeforeGroupDelete" вызывается перед удалением группы пользователей. Как правило задачи обработчика данного события - разрешить или запретить удаление группы пользователей.

Параметры

Параметр | Описание
group_id | ID удаляемой группы пользователей.

Возвращаемое значение

Для отмены удаления пользователя и прекращении выполнения метода CGroup::Delete необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnGroupDelete"
  • CGroup::Delete
  • События

Пример

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("main", "OnBeforeGroupDelete", Array("MyClass", "OnBeforeGroupDeleteHandler"));
class MyClass
{
    // создаем обработчик события "OnBeforeGroupDelete"
    function OnBeforeGroupDeleteHandler($group_id)
    {
        // проверим есть ли связанные с удаляемой группой пользователей записи
        $strSql = "SELECT * FROM my_table WHERE GROUP_ID=".intval($group_id);
        $rs = $DB->Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);

        // если связанные записи есть то
        if ($ar = $rs->Fetch())
        {
            // запретим удаление группы пользователей
            global $APPLICATION;
            $APPLICATION->throwException("В моей таблице есть связанные записи.");
            return false;
        }
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnBeforeGroupDelete" для модуля my_module_id
RegisterModuleDependences("main", "OnBeforeGroupDelete",
     "my_module_id", "MyClass", "OnBeforeGroupDeleteHandler");
?>


OnBeforeGroupUpdate

Описание и параметры

bool
EventHandler(
 int ID,
 array &arFields
);

Событие вызывается в методе CGroup::Update до изменения полей группы, и может быть использовано для отмены изменения или переопределения некоторых полей.

Параметры метода

Параметр | Описание
ID | Идентификатор изменяемой группы пользователей.
arFields | Список полей (класс CGroup) изменяемой группы пользователей.

Параметр arFields данного обработчика является ссылкой на исходные переменные. Поэтому если изменить значение параметра внутри обработчика, это приведет к смене значения исходной переменной, поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены изменения и прекращении выполнения метода CGroup::Update необходимо в функции-обработчике создать исключение методом $APPLICATION-> ThrowException() и вернуть false.

Смотрите также

  • CGroup
  • События

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

<?
AddEventHandler("main", "OnBeforeGroupUpdate", "MyOnBeforeGroupUpdate");
function MyOnBeforeGroupUpdate($ID, &$arFields)
{
    if($ID == 1)
        $arFields["DESCRIPTION"] = "Главная группа админов.";
}
?>


OnBeforeLanguageDelete

Описание и параметры

bool
функция-обработчик(
 string language_id
);
Событие "OnBeforeLanguageDelete" вызывается перед удалением языка. Как правило задачи обработчика данного события - разрешить или запретить удаление языка.

Параметры

Параметр | Описание
language_id | ID удаляемого языка.

Возвращаемое значение

Для отмены удаления языка и прекращении выполнения метода CLanguage::Delete необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnLanguageDelete"
  • CLanguage::Delete
  • События

Примеры

Пример функции-обработчика:

<?
// файл /bitrix/modules/my_module_id/include.php
class MyClass
{
    // создаем обработчик события "OnBeforeLanguageDelete"
    function OnBeforeLanguageDeleteHandler($language_id)
    {
        // проверим есть ли связанные с удаляемым языком записи
        $strSql = "SELECT * FROM my_table WHERE LANGUAGE_ID=".$DB->ForSql($language_id);
        $rs = $DB->Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);

        // если связанные записи есть то
        if ($ar = $rs->Fetch())
        {
            // запретим удаление языка
            global $APPLICATION;
            $APPLICATION->throwException("В моей таблице есть связанные записи.");
            return false;
        }
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnBeforeLanguageDelete"
RegisterModuleDependences("main", "OnBeforeLanguageDelete",
         "my_module_id", "MyClass", "OnBeforeLanguageDeleteHandler");
?>


OnBeforeProlog

функция-обработчик();
Событие "OnBeforeProlog" вызывается в выполняемой части пролога сайта (после события OnPageStart).

Параметры функции-обработчика

Без параметров.

Смотрите также

  • Событие "OnPageStart"
  • Этапы выполнения страницы и доступные на каждом этапе переменные и константы
  • События

Пример:

<?
// файл /bitrix/php_interface/init.php
AddEventHandler("main", "OnBeforeProlog", "MyOnBeforePrologHandler", 50);

function MyOnBeforePrologHandler()
{
   global $USER;
   if(SITE_TEMPLATE_ID=='mynewtemplate' && $_SERVER['REMOTE_ADDR']!='127.0.0.1' && !$USER->IsAdmin())
      die('This template temporary unavailable.');
}
?>


OnBeforeSiteDelete

Описание и параметры

bool
функция-обработчик(
 string site_id
);
Событие "OnBeforeSiteDelete" вызывается перед удалением сайта. Как правило задачи обработчика данного события - разрешить или запретить удаление сайта.

Параметры

Параметр | Описание
site_id | ID удаляемого сайта.

Возвращаемое значение

Для отмены удаления сайта и прекращении выполнения метода CSite::Delete необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnSiteDelete"
  • CSite::Delete
  • События

Примеры

Пример функции-обработчика:

<?
// файл /bitrix/modules/my_module_id/include.php
class MyClass
{
    // создаем обработчик события "OnBeforeSiteDelete"
    function OnBeforeSiteDeleteHandler($site_id)
    {
        // проверим есть ли связанные с удаляемым сайтом записи
        $strSql = "SELECT * FROM my_table WHERE SITE_ID=".$DB->ForSql($site_id);
        $rs = $DB->Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);

        // если связанные записи есть то
        if ($ar = $rs->Fetch())
        {
            // запретим удаление сайта
            global $APPLICATION;
            $APPLICATION->throwException("В моей таблице есть связанные записи.");
            return false;
        }
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnBeforeSiteDelete"
RegisterModuleDependences("main", "OnBeforeSiteDelete",
      "my_module_id", "MyClass", "OnBeforeSiteDeleteHandler");
?>


OnBeforeUserAdd

Описание и параметры

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе CUser::Add до вставки нового пользователя, и может быть использовано для отмены вставки или переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей нового пользователя.

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

Возвращаемое значение

Для отмены добавления и прекращении выполнения метода CUser::Add необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnAfterUserAdd"
  • CUser::Add
  • События

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("main", "OnBeforeUserAdd", Array("MyClass", "OnBeforeUserAddHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeUserAdd"
    function OnBeforeUserAddHandler(&$arFields)
    {
        if(strlen($arFields["LAST_NAME"])<=0)
        {
            global $APPLICATION;
            $APPLICATION->throwException("Пожалуйста, введите фамилию.");
            return false;
        }
    }
}
?>


OnBeforeUserDelete

Описание и параметры

bool
функция-обработчик(
 int user_id
);
Событие "OnBeforeUserDelete" вызывается перед удалением пользователя. Как правило задачи обработчика данного события - разрешить или запретить удаление пользователя.

Параметры

Параметр | Описание
user_id | ID удаляемого пользователя.

Возвращаемое значение

Для отмены удаления пользователя и прекращении выполнения метода CUser::Delete необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnUserDelete"
  • CUser::Delete
  • События

Пример

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("main", "OnBeforeUserDelete", Array("MyClass", "OnBeforeUserDeleteHandler"));
class MyClass
{
    // создаем обработчик события "OnBeforeUserDelete"
    function OnBeforeUserDeleteHandler($user_id)
    {
        // проверим есть ли связанные с удаляемым пользователем записи
        $strSql = "SELECT * FROM my_table WHERE USER_ID=".intval($user_id);
        $rs = $DB->Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);

        // если связанные записи есть то
        if ($ar = $rs->Fetch())
        {
            // запретим удаление пользователя
            global $APPLICATION;
            $APPLICATION->throwException("В моей таблице есть связанные записи.");
            return false;
        }
    }
}
?>


OnBeforeUserLogin

Описание и параметры

bool
функция-обработчик(
 array &arParams
);
Событие "OnBeforeUserLogin" вызывается в методе CUser::Login до проверки имени входа arParams['LOGIN'] и пароля arParams['PASSWORD'] и попытки авторизовать пользователя, и может быть использовано для прекращения процесса проверки или переопределения некоторых полей.

Параметры

Параметр Описание
arParams Массив полей для проверки имени входа и пароля:
  • LOGIN - Логин пользователя
  • PASSWORD - Пароль. Если параметр PASSWORD_ORIGINAL равен"Y", то в данном параметре был передан оригинальный пароль, в противном случае был передан хеш (md5) от оригинального пароля.
  • REMEMBER - Если значение равно "Y", то авторизация пользователя должна быть сохранена в куках.
  • PASSWORD_ORIGINAL - Если значение равно "Y", то это означает что PASSWORD не был сконвертирован в MD5 (т.е. в параметре PASSWORD был передан реальный пароль вводимый пользователем с клавиатуры), если значение равно "N", то это означает что PASSWORD уже сконвертирован в MD5.

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

Возвращаемое значение

Для отмены авторизации пользователя и прекращении выполнения метода CUser::Login необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnAfterUserLogin"
  • CUser::Login
  • События
  • Внешняя авторизация

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("main", "OnBeforeUserLogin", Array("MyClass", "OnBeforeUserLoginHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeUserLogin"
    function OnBeforeUserLoginHandler(&$arFields)
    {
        // здесь выполняем любые действия связанные
        if(strtolower($arFields["LOGIN"])=="guest")
        {
            global $APPLICATION;
            $APPLICATION->throwException("Пользователь с именем входа Guest не может быть авторизован.");
            return false;
        }
    }
}
?>


OnBeforeUserLoginByHash

Описание и параметры

bool
функция-обработчик(
 array &arParams
)

Событие "OnBeforeUserLoginByHash" вызывается в методе CUser::LoginByHash() до проверки имени входа arParams['LOGIN'], хеша от пароля arParams['HASH'] и попытки авторизовать пользователя.

Параметры

Параметр Описание
arParams Массив полей для проверки имени входа и пароля:
  • LOGIN - Имя входа пользователя.
  • HASH - Специальный хеш от пароля пользователя. Данный хеш как правило хранится в куках пользователя.

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

Возвращаемое значение

Для отмены авторизации пользователя и прекращении выполнения метода CUser::LoginByHash необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnAfterUserLoginByHash"
  • CUser::LoginByHash
  • События
  • Внешняя авторизация

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("main", "OnBeforeUserLoginByHash", Array("MyClass", "OnBeforeUserLoginByHashHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeUserLoginByHash"
    function OnBeforeUserLoginByHashHandler(&$arParams)
    {
        // здесь выполняем любые действия связанные
        if(strtolower($arParams['LOGIN'])=="guest")
        {
            global $APPLICATION;
            $APPLICATION->throwException("Пользователь с именем входа Guest не может авторизоваться по хешу.");
            return false;
        }
    }
}
?>


OnBeforeUserLogout

Описание и параметры

bool
функция-обработчик(
 array &arParams
);

Вызывается перед завершением сеанса авторизации пользователя методом CUser::Logout и может быть использовано для отмены завершения сеанса.

Параметры

Параметр Описание
arParams Массив параметров:
  • USER_ID - код пользователя

Смотрите также

  • Событие "OnAfterUserLogout"
  • CUser::Logout
  • События

Примеры

Пример функции-обработчика:

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("main", "OnBeforeUserLogout", Array("MyClass", "OnBeforeUserLogoutHandler"));
class MyClass
{
    function OnBeforeUserLogoutHandler($arParams)
    {
        if($arParams['ID']==10)
            return false;
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnBeforeUserLogout"
RegisterModuleDependences("main", "OnBeforeUserLogout",
"my_module_id", "MyClass", "OnBeforeUserLogoutHandler");?>


OnBeforeUserRegister

Описание и параметры

bool
функция-обработчик(
 array &arArgs
);
Событие "OnBeforeUserRegister" вызывается до попытки регистрации нового пользователя методом CUser::Register и может быть использовано для прекращения процесса регистрации или переопределения некоторых полей.

Примечание: функция будет вызываться также при подтверждении регистрации (событие OnBeforeUserUpdate), где ключа LOGIN нет.

Параметры

Параметр Описание
arArgs Массив полей регистрации нового пользователя:
  • LOGIN - имя входа пользователя
  • NAME - имя пользователя
  • LAST_NAME - фамилия пользователя
  • PASSWORD - пароль
  • CONFIRM_PASSWORD - подтверждение пароля
  • CHECKWORD - новое контрольное слово для смены пароля
  • EMAIL - EMail пользователя
  • ACTIVE - флаг активности [Y|N]
  • SITE_ID - ID сайта по умолчанию для уведомлений
  • GROUP_ID - массив ID групп пользователя
  • USER_IP - IP адресс пользователя
  • USER_HOST - хост пользователя
На основании массива полей происходит добавление пользователя и отсылка почтового события NEW_USER.

Примечание. Массив значений данного обработчика является ссылкой на исходные переменные. Поэтому при изменении значения параметра или добавлении нового поля в массив внутри обработчика приведет к смене значения исходной переменной поступившей на вход функции-обработчика.
Это позволяет, например, добавить в массив arArgs дополнительные регистрационные поля нового пользователя или поля для почтового события NEW_USER.

if ( isset($args['LOGIN']) && ! preg_match("/^[-a-zA-Z0-9_]+$/", $args['LOGIN']) )

Возвращаемое значение

Для отмены авторизации пользователя и прекращении выполнения метода CUser::Register необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnAfterUserRegister"
  • События
  • CUser::Register

Примеры

Пример функции-обработчика:

<?
// файл /bitrix/modules/my_module_id/include.php
class MyClass
{
    // создаем обработчик события "OnBeforeUserRegister"
    function OnBeforeUserRegisterHandler(&$arFields)
    {
        // если пользователь пришел по рекламной кампании #34, то
        if ($_SESSION["SESS_LAST_ADV_ID"]==34)
        {
            // добавляем его в группу #3
            $arFields["GROUP_ID"][] = 3;

            // добавим административный комментарий
            if (intval($_SESSION["SESS_ADV_ID"])>0)
                $arFields["ADMIN_NOTES"] = "Рекламная кампания #34 - прямой заход";
            else
                $arFields["ADMIN_NOTES"] = "Рекламная кампания #34 - возврат";

            $arFields["SITE_ID"] = "ru";
        }
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnBeforeUserRegister"
RegisterModuleDependences("main", "OnBeforeUserRegister", "my_module_id", "MyClass", "OnBeforeUserRegisterHandler");
?>


OnBeforeUserSimpleRegister

Описание и параметры

bool
функция-обработчик(
 array &arFields,
);
Событие "OnBeforeUserSimpleRegister" вызывается до попытки упрощённой регистрации нового пользователя методом CUser::SimpleRegister и может быть использовано для прекращения процесса регистрации или переопределения некоторых полей.

Параметры

Параметр Описание
arFields Массив полей упрощённой регистрации нового пользователя:
  • PASSWORD - пароль
  • CONFIRM_PASSWORD - подтверждение пароля
  • CHECKWORD - контрольное слово для смены пароля
  • EMAIL - EMail пользователя
  • ACTIVE - флаг активности [Y|N]
  • SITE_ID - ID сайта по умолчанию для уведомлений
  • GROUP_ID - массив ID групп пользователя
  • USER_IP - IP адрес пользователя
  • USER_HOST - хост пользователя
На основании массива полей происходит добавление пользователя и отсылка почтового события NEW_USER.

Примечание. Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.
Это позволяет, например, добавить в массив fields дополнительные регистрационные поля или, например, определить поле LOGIN - имя входа пользователя (в противном случае после регистрации пользователя логин будет заменен user< ID нового пользователя>") .

Возвращаемое значение

Для отмены авторизации пользователя и прекращении выполнения метода CUser::SimpleRegister необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnAfterUserSimpleRegister"
  • События
  • CUser::Register

Пример

<?
// файл /bitrix/php_interface/init.php
AddEventHandler(
    "main",
    "OnBeforeUserSimpleRegister",
    Array("MyClass", "OnBeforeUserSimpleRegisterHandler"),
    100,
    $_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/scripts/onbeforeusersimplereg.php"
);
?>
<?
// файл /bitrix/php_interface/scripts/onbeforeusersimplereg.php
class MyClass
{
    // создаем обработчик события "OnBeforeUserSimpleRegister"
    function OnBeforeUserSimpleRegisterHandler(&$arFields)
    {
        if (strpos($arFields["EMAIL"], "@mysite.com")===false)
        {
            global $APPLICATION;
            $APPLICATION->ThrowException("Регистрация возможно только для EMail адресов домена mysite.com");
            return false;
        }
    }
}
?>


OnBeforeUserUpdate

Описание и параметры

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе CUser::Update до изменения параметров пользователя, и может быть использовано для отмены изменения или переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей изменяемого пользователя.

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

Возвращаемое значение

Для отмены изменения и прекращении выполнения метода CUser::Update необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnAfterUserUpdate"
  • CUser::Update
  • События

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("main", "OnBeforeUserUpdate", Array("MyClass", "OnBeforeUserUpdateHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeUserUpdate"
    function OnBeforeUserUpdateHandler(&$arFields)
    {
        if(is_set($arFields, "LAST_NAME") && strlen($arFields["LAST_NAME"])<=0)
        {
            global $APPLICATION;
            $APPLICATION->throwException("Пожалуйста, введите фамилию. (ID:".$arFields["ID"].")");
            return false;
        }
    }
}
?>


OnBuildGlobalMenu

функция-обработчик

Пример функции-обработчика

function OnBuildGlobalMenu(&$aGlobalMenu, &$aModuleMenu)
    {
     global $USER;
     if(!$USER->IsAdmin())
      return;

     $aMenu = array(
      "parent_menu" => "global_menu_content",
      "section" => "clouds",
      "sort" => 150,
      "text" => GetMessage("CLO_STORAGE_MENU"),
      "title" => GetMessage("CLO_STORAGE_TITLE"),
      "url" => "clouds_index.php?lang=".LANGUAGE_ID,
      "icon" => "clouds_menu_icon",
      "page_icon" => "clouds_page_icon",
      "items_id" => "menu_clouds",
      "more_url" => array(
          "clouds_index.php",
      ),
      "items" => array()
     );

     $rsBuckets = CCloudStorageBucket::GetList(array("SORT"=>"DESC", "ID"=>"ASC"));
     while($arBucket = $rsBuckets->Fetch())
      $aMenu["items"][] = array(
          "text" => $arBucket["BUCKET"],
          "url" => "clouds_file_list.php?lang=".LANGUAGE_ID."&bucket=".$arBucket["ID"]."&path=/",
          "more_url" => array(
           "clouds_file_list.php?bucket=".$arBucket["ID"],
          ),
          "title" => "",
          "page_icon" => "clouds_page_icon",
          "items_id" => "menu_clouds_bucket_".$arBucket["ID"],
          "module_id" => "clouds",
          "items" => array()
      );

     if(!empty($aMenu["items"]))
      $aModuleMenu[] = $aMenu;
    }


OnChangePermissions

Описание и параметры

функция-обработчик(
 array site_path,
 array permissions
);
Событие "OnChangePermissions" вызывается при изменении прав доступа к файлу или папке методом $APPLICATION->SetFileAccessPermission.

Параметры

Параметр | Описание
site_path | Массив вида: array("идентификатор сайта", "путь к файлу относительно корня этого сайта").
permissions | Массив прав доступа.

Смотрите также

  • Событие "OnChangeFile"
  • CMain::SetFileAccessPermission
  • События

Примеры

<?
// файл /bitrix/modules/search/classes/mysql/search.php
class CSearch extends CAllSearch
{
    // создаем обработчик события "OnChangePermissions"
    function OnChangeFilePermissions($path, $permission)
    {
        CMain::InitPathVars($site, $path);
        $DOC_ROOT = CSite::GetSiteDocRoot($site);

        while(strlen($path)>0 && $path[strlen($path)-1]=="/") //отрежем / в конце, если есть
            $path=substr($path, 0, strlen($path)-1);

        global $APPLICATION, $DB;
        if(file_exists($DOC_ROOT.$path))
        {
            @set_time_limit(300);
            $arGroups = CSearch::GetGroupCached();
            if(is_dir($DOC_ROOT.$path))
            {
                $handle  = @opendir($DOC_ROOT.$path);
                while($file = @readdir($handle))
                {
                    if($file == "." || $file == "..") continue;
                    if(is_dir($DOC_ROOT.$path."/".$file))
                    {
                        if($path."/".$file=="/bitrix")
                            continue;
                    }
                    CSearch::OnChangeFilePermissions(Array($site, $path."/".$file), Array());
                }
            }
            else //if(is_dir($DOCUMENT_ROOT.$path))
            {
                $strGPerm = "0";
                for($i=0; $i<count($arGroups); $i++)
                {
                    if($arGroups[$i]>1)
                    {
                        $p = $APPLICATION->GetFileAccessPermission(Array($site, $path), Array($arGroups[$i]));
                        if($p>="R")
                        {
                            $strGPerm .= ",".$arGroups[$i];
                            if($arGroups[$i]==2) break;
                        }
                    }
                }

                $r = $DB->Query("SELECT ID FROM b_search_content WHERE MODULE_ID='main' AND ITEM_ID='".$site."|".$path."'");
                while($arR = $r->Fetch())
                    $DB->Query("DELETE FROM b_search_content_group WHERE SEARCH_CONTENT_ID=".$arR["ID"]);

                $strSql =
                    "INSERT INTO b_search_content_group(SEARCH_CONTENT_ID, GROUP_ID) ".
                    "SELECT S.ID, G.ID ".
                    "FROM b_search_content S, b_group G ".
                    "WHERE MODULE_ID='main' ".
                    "    AND ITEM_ID='".$site."|".$path."' ".
                    "    AND G.ID IN (".$strGPerm.") ";

                $DB->Query($strSql);
            } //if(is_dir($DOCUMENT_ROOT.$path))
        }//if(file_exists($DOCUMENT_ROOT.$path))
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnChangePermissions"
RegisterModuleDependences("main", "OnChangePermissions", "search", "CSearch", "OnChangeFilePermissions");
?>


OnEndBufferContent

функция-обработчик(
  Frame::endBuffering
)

Вызывается при выводе буферизированного контента.

Параметры

Без параметров


OnEpilog

функция-обработчик();
Событие "OnEpilog" вызывается в конце визуальной части эпилога сайта.

Параметры функции-обработчика

Без параметров.

Смотрите также

  • Событие "OnAfterEpilog"
  • Этапы выполнения страницы и доступные на каждом этапе переменные и константы
  • События

Пример регистрации функции-обработчика:

<?
AddEventHandler("main", "OnEpilog", "statistic", "CStatistic", "Set404", "100");
?>


OnEventMessageDelete

Описание и параметры

функция-обработчик(
 int template_id
);
Событие "OnEventMessageDelete" вызывается во время удаления почтового шаблона. Как правило задачи обработчика данного события - очистить базу данных от записей связанных с удаляемым почтовым шаблоном.

Параметры

Параметр | Описание
template_id | ID удаляемого почтового шаблона.

Смотрите также

  • Событие "OnBeforeEventMessageDelete"
  • CEventMessage::Delete
  • События

Примеры

Пример функции-обработчика:

<?
// файл /bitrix/modules/my_module_id/include.php
class MyClass
{
    // создаем обработчик события "OnEventMessageDelete"
    function OnEventMessageDeleteHandler($template_id)
    {
        // удалим связанные записи
        $strSql = "DELETE FROM my_table WHERE TEMPLATE_ID=".intval($template_id);
        $rs = $DB->Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnEventMessageDelete"
RegisterModuleDependences("main", "OnEventMessageDelete",
          "my_module_id", "MyClass", "OnEventMessageDeleteHandler");
?>


OnExternalAuthList

Описание и параметры

array
функция-обработчик();
Событие "OnExternalAuthList" вызывается для получения списка источников внешней авторизации при вызове метода CUser::GetExternalAuthList.

Параметры

Без параметров.

Возвращаемое значение

Массив вида Array(Array("ID"=>"Код источника 1", "NAME"=>"Название источника 1"), ...) .

Смотрите также

  • События
  • CUser::GetExternalAuthList
  • Внешняя авторизация

Пример функции-обработчика

<?
AddEventHandler("main", "OnExternalAuthList", Array("__IPBAuth", "OnExternalAuthList"));
class __IPBAuth
{
  function OnExternalAuthList()
  {
     return Array(
      Array("ID"=>"IPB", "NAME"=>"Invision Power Board")
      );
 }
}
?>


OnFileDelete

Описание и параметры

void
функция-обработчик(
 array arFile
);

Событие "OnFileDelete" вызывается после удаления файла в методе CFile::Delete. Событие может использоваться для удаления производной от файла информации (созданных при загрузке картинки эскизов и т.п.).

Параметры функции

Параметр | Описание
arFile | Массив с информацией об удаленном файле, содержащий ключи: SUBDIR - подпапка в папке для загрузки файлов (обычно в /upload); FILE_NAME - имя удаленного файла.

Возвращаемое значение

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

Смотрите также

  • События

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

<?
AddEventHandler("main", "OnFileDelete", "MyOnFileDelete");
function MyOnFileDelete($arFile)
{
    $fname = $_SERVER["DOCUMENT_ROOT"]."/upload/resize/".$arFile["SUBDIR"]."/small_".$arFile["FILE_NAME"];
    if(file_exists($fname))
        unlink($fname);

}

?>


OnGroupDelete

Описание и параметры

функция-обработчик(
 int group_id
);
Событие "OnGroupDelete" вызывается в момент удаления группы пользователей. Как правило задачи обработчика данного события - очистить базу данных от записей связанных с удаляемой группой пользователей.

Параметры

Параметр | Описание
group_id | ID удаляемой группы пользователей.

Смотрите также

  • Событие "OnBeforeGroupDelete"
  • CGroup::Delete
  • События

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
AddEventHandler("main", "OnGroupDelete", Array("MyClass", "OnGroupDeleteHandler"));
class MyClass
{
    // создаем обработчик события "OnGroupDelete"
    function OnGroupDeleteHandler($group_id)
    {
        // удалим связанные записи
        $strSql = "DELETE FROM my_table WHERE GROUP_ID=".intval($group_id);
        $rs = $DB->Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);
    }
}
?>


OnLanguageDelete

Описание и параметры

функция-обработчик(
 int language_id
);
Событие "OnLanguageDelete" вызывается во время удаления языка. Как правило задачи обработчика данного события - очистить базу данных от записей связанных с удаляемым языком.

Параметры

Параметр | Описание
language_id | ID удаляемого языка.

Смотрите также

  • Событие "OnBeforeLanguageDelete"
  • CLanguage::Delete
  • События

Примеры

Пример функции-обработчика:

<?
// файл /bitrix/modules/my_module_id/include.php
class MyClass
{
    // создаем обработчик события "OnLanguageDelete"
    function OnLanguageDeleteHandler($language_id)
    {
        // удалим связанные записи
        $strSql = "DELETE FROM my_table WHERE LANGUAGE_ID=".$DB->ForSql($language_id);
        $rs = $DB->Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnLanguageDelete"
RegisterModuleDependences("main", "OnLanguageDelete",
            "my_module_id", "MyClass", "OnLanguageDeleteHandler");
?>


OnPageStart

функция-обработчик();
Событие "OnPageStart" вызывается в начале выполняемой части пролога сайта, после подключения всех библиотек и отработки Агентов [image].

Параметры функции-обработчика

Без параметров.

Смотрите также

  • Событие "OnBeforeProlog"
  • Этапы выполнения страницы и доступные на каждом этапе переменные и константы
  • События

Пример регистрации функции-обработчика:

<?
RegisterModuleDependences("main", "OnPageStart", "statistic", "CStatistic", "Stoplist", "100");
?>


OnPanelCreate

функция-обработчик();
Событие "OnPanelCreate" вызывается в момент сбора данных для построения панели управления в публичной части сайта. Как правило задачи обработчика данного события - добавлять свои кнопки в панель управления сайтом.

Параметры

Без параметров.

Смотрите также

  • Панель управления
  • CMain::AddPanelButton
  • CMain::ShowPanel
  • События

Пример функции-обработчика:

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("main", "OnPanelCreate", Array("MyClass", "OnPanelCreateHandler"));
class MyClass
{
    // добавим кнопку в панель управления
    function OnPanelCreateHandler()
    {
        global $APPLICATION;
        $APPLICATION->AddPanelButton(array(
            "HREF"      => "/bitrix/admin/my_page.php", // ссылка на кнопке
            "SRC"       => "/bitrix/images/my_module_id/button_image.gif", // картинка на кнопке
            "ALT"       => "Текст всплывающей подсказки на кнопке",
            "MAIN_SORT" => 300,
            "SORT"      => 10
            ));
    }
    /*
    Теперь при выводе панели управления в публичной части сайта
    будет также всегда выводиться наша кнопка
    */
}
?>


OnProlog

функция-обработчик();
Событие "OnProlog" вызывается в начале визуальной части пролога сайта.

Параметры функции-обработчика

Без параметров.

Смотрите также

  • Событие "OnBeforeProlog"
  • Этапы выполнения страницы и доступные на каждом этапе переменные и константы
  • События

Пример регистрации функции-обработчика:

<?
    RegisterModuleDependences("main",
                              "OnProlog",
                              "statistic",
                              "CStatistic",
                              "StartBuffer", "100");
?>


OnSendUserInfo

Описание и параметры

функция-обработчик(
  array &arParams
);
Событие "OnSendUserInfo" вызывается в методе CUser::SendUserInfo и предназначено для возможности переопределения параметров для отправки почтового события USER_INFO.

Параметры

Параметр Описание
arParams Массив полей для проверки имени входа и пароля:
  • FIELDS - Массив, содержащий набор полей вида Array("поле 1"=>"значение 1", ...). При отправке все поля передаются в обработку шаблона USER_INFO. Содержит по умолчанию след. поля:
    • "USER_ID" - код пользователя,
    • "STATUS" - текст статуса активности,
    • "MESSAGE" - текст сообщения,
    • "LOGIN" - имя входа,
    • "CHECKWORD" - контрольная строка,
    • "NAME" - имя пользователя,
    • "LAST_NAME" - фамилия,
    • "EMAIL" - E-Mail адрес
  • USER_FIELDS - Все поля пользователя, информация о котором будет высылаться.
  • SITE_ID - код сайта, используется для определения шаблона почтового события USER_INFO.

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

Смотрите также

  • CUser::SendUserInfo
  • Почтовые события
  • События

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
AddEventHandler("main", "OnSendUserInfo", "MyOnSendUserInfoHandler");
function MyOnSendUserInfoHandler(&$arParams)
{
   if(strlen($arParams['USER_FIELDS']['LAST_NAME'])<=0)
       $arParams['FIELDS']['CUSTOM_NAME'] = $arParams['USER_FIELDS']['LAST_NAME'];
   else
       $arParams['FIELDS']['CUSTOM_NAME'] = $arParams['USER_FIELDS']['LOGIN'];
   // теперь в шаблоне USER_INFO можно использовать макрос #CUSTOM_NAME#
}
? >


OnSiteDelete

Описание и параметры

функция-обработчик(
 int site_id
);
Событие "OnSiteDelete" вызывается во время удаления сайта. Как правило задачи обработчика данного события - очистить базу данных от записей связанных с удаляемым сайтом.

Параметры

Параметр | Описание
site_id | ID удаляемого сайта.

Смотрите также

  • Событие "OnBeforeSiteDelete"
  • CSite::Delete
  • События

Примеры

Пример функции-обработчика:

<?
// файл /bitrix/modules/my_module_id/include.php
class MyClass
{
    // создаем обработчик события "OnSiteDelete"
    function OnSiteDeleteHandler($site_id)
    {
        // удалим связанные записи
        $strSql = "DELETE FROM my_table WHERE SITE_ID=".$DB->ForSql($site_id);
        $rs = $DB->Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnSiteDelete"
RegisterModuleDependences("main", "OnSiteDelete",
       "my_module_id", "MyClass", "OnSiteDeleteHandler");
?>


OnUserDelete

Описание и параметры

функция-обработчик(
 int user_id
)
Событие "OnUserDelete" вызывается в момент удаления пользователя. Как правило задачи обработчика данного события - очистить базу данных от записей связанных с удаляемым пользователем.

Параметры

Параметр | Описание
user_id | ID удаляемого пользователя.

Смотрите также

  • Событие "OnBeforeUserDelete"
  • CUser::Delete
  • События

Примеры

Пример функции-обработчика:

<?
// файл /bitrix/modules/my_module_id/include.php
class MyClass
{
    // создаем обработчик события "OnUserDelete"
    function OnUserDeleteHandler($user_id)
    {
        // удалим связанные записи
       global $DB;
        $strSql = "DELETE FROM my_table WHERE USER_ID=".intval($user_id);
        $rs = $DB->Query($strSql, false, "FILE: ".__FILE__."
LINE: ".__LINE__);
    }
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnUserDelete"
RegisterModuleDependences("main", "OnUserDelete",
        "my_module_id", "MyClass", "OnUserDeleteHandler");
?>


OnUserLoginExternal

Описание и параметры

mixed
функция-обработчик(
  array &arParams
);

Событие OnUserLoginExternal предназначено для возможности проверки имени входа и пароля во внешнем источнике. Обработчики этого события вызываются в методе CUser::Login, если ни один обработчик события OnBeforeUserLogin не вернул false, перед стандартной проверкой имени входа arParams['LOGIN'], пароля arParams['PASSWORD'] и попытки авторизовать пользователя.

Параметры

Параметр Описание
arParams Массив полей для проверки имени входа и пароля:
  • LOGIN - Логин пользователя
  • PASSWORD - Пароль. Если параметр PASSWORD_ORIGINAL равен"Y", то в данном параметре был передан оригинальный пароль, в противном случае был передан хеш (md5) от оригинального пароля.
  • REMEMBER - Если значение равно "Y", то авторизация пользователя должна быть сохранена в куках.
  • PASSWORD_ORIGINAL - Если значение равно "Y", то это означает что PASSWORD не был сконвертирован в MD5 (т.е. в параметре PASSWORD был передан реальный пароль вводимый пользователем с клавиатуры), если значение равно "N", то это означает что PASSWORD уже сконвертирован в MD5.

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

Возвращаемое значение

Если необходимо авторизовать пользователя, то обработчик события должен вернуть идентификатор этого пользователя.

Смотрите также

  • Событие "OnBeforeUserLogin"
  • Событие "OnAfterUserLogin"
  • CUser::Login
  • События
  • Внешняя авторизация

Пример функции-обработчика

<?
// пример авторизации пользователя из таблиц форума Innovision Power Board

// файл /bitrix/php_interface/init.php
AddEventHandler("main", "OnUserLoginExternal", Array("__IPBAuth", "OnUserLoginExternal"));
AddEventHandler("main", "OnExternalAuthList", Array("__IPBAuth", "OnExternalAuthList"));

define("IPB_TABLE_PREFIX", "ibf_");
define("IPB_VERSION", "2");

class __IPBAuth
{
    function OnUserLoginExternal(&$arArgs)
    {
        $groups_map = Array(
            /*'IPB Group ID' => 'Local Group ID',*/
            '4' => '1'
            );
        $table_user = IPB_TABLE_PREFIX."members";
        $table_converge = IPB_TABLE_PREFIX."members_converge";

        global $DB, $USER, $APPLICATION;
     extract($arArgs);

        if(IPB_VERSION == '1')
        {
            $strSql = "SELECT * FROM ".$table_user." WHERE name='".
                      $DB->ForSql($LOGIN)."' AND password='".md5($PASSWORD)."'";
        }
        else
        {
            $strSql =
                "SELECT t1.* ".
                "FROM ".$table_user." t1, ".$table_converge." t2 ".
                "WHERE t1.name='".$DB->ForSql($LOGIN)."' ".
                "    AND t1.email = t2.converge_email ".
                "    AND t2.converge_pass_hash = MD5(CONCAT(MD5(t2.converge_pass_salt), '".md5($PASSWORD)."'))";
        }

        $dbAuthRes = $DB->Query($strSql);
        if($arAuthRes = $dbAuthRes->Fetch())
        {
            $arFields = Array(
                "LOGIN" => $LOGIN,
                "NAME" => $arAuthRes['title'],
                "PASSWORD" => $PASSWORD,
                "EMAIL" => $arAuthRes['email'],
                "ACTIVE" => "Y",
                "EXTERNAL_AUTH_ID"=>"IPB",
                "LID" => SITE_ID
                );

            $oUser = new CUser;
            $res = CUser::GetList($O, $B, Array("LOGIN_EQUAL_EXACT"=>$LOGIN, "EXTERNAL_AUTH_ID"=>"IPB"));
            if(!($ar_res = $res->Fetch()))
                $ID = $oUser->Add($arFields);
            else
            {
                $ID = $ar_res["ID"];
                $oUser->Update($ID, $arFields);
            }

            if($ID>0)
            {
                $USER->SetParam("IPB_USER_ID", $arAuthRes['id']);

                $user_group = $arAuthRes['mgroup'];
                $arUserGroups = CUser::GetUserGroup($ID);
                foreach($groups_map as $ext_group_id => $group_id)
                {
                    if($ext_group_id==$user_group)
                        $arUserGroups[] = $group_id;
                    else
                    {
                        $arUserGroupsTmp = Array();
                        foreach($arUserGroups as $grid)
                            if($grid != $group_id)
                                $arUserGroupsTmp[] = $grid;
                        $arUserGroups = $arUserGroupsTmp;
                    }
                }
                CUser::SetUserGroup($ID, $arUserGroups);
                $arParams["STORE_PASSWORD"] = "N";

                return $ID;
            }
        }
    }

    function OnExternalAuthList()
    {
        return Array(
            Array("ID"=>"IPB", "NAME"=>"Invision Power Board")
            );
    }
}?>


Для разработчика

О значениях полей форм модуля смотрите в пользовательской документации [image].

О работе с модулем подробно можно узнать в статьях helpdesk.bitrix24.ru [image] и курсах Администратор. модули [image] и Администратор сервиса Битрикс24 (коробочная версия) [image]. Также доступен отдельный курс Бизнес-процессы [image], в котором рассматривается разработка бизнес-процессов [image].

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("bizproc")){
//здесь можно использовать функции и классы модуля
}
?>


Бизнес-процессы в ядре D7

Список классов модуля Бизнес-процессы в ядре D7

Класс | Описание | С версии
BaseType | Набор обработчиков базовых типов данных в бизнес-процессах. |
FieldType | Вспомогательный класс для работы API типов полей. |
RestActivityTable | Стандартная ORM-таблица для хранения и управления данными REST действий. |
RestService | API для работы бизнес-процессов через REST. |
Activity | Пространство имен, содержащее классы для работы с действиями. | 17.0.0


Документ

Тип документа и документ – абстрактные для бизнес-процесса объекты, физический смысл которых в рамках бизнес-процесса не определен. Тип документа есть некоторое объединение документов. Тип документа и документ могут не иметь физического представления, т.е. быть чисто виртуальными. Бизнес-процесс работает с документом при помощи класса документа, который реализует интерфейс IBPWorkflowDocument.

Тип документа и документ определяются своими идентификаторами, которые имеют вид кортежа из трех элементов: кода модуля, имени класса документа и некоторого кода (как правило, кода элемента). Например,

array("iblock", "CIBlockDocument", "458")
где
  • iblock - код модуля инфоблоков,
  • CIBlockDocument - имя класса документа,
  • 458 - ID элемента инфоблока.

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

Бизнес-процесс всегда выполняется над определенным документом. На один и тот же документ может быть одновременно запущено произвольное число бизнес-процессов.

Класс документа должен реализовывать методы интерфейса IBPWorkflowDocument. Этот интерфейс содержит методы, которые необходимы БП для работы с документом.

Чтобы БП мог работать с каким-либо объектом, необходимо выбрать:

  • что будет являться документом,
  • что будет являться типом документа,
  • какие будут идентификаторы у документа и типа документа.

Кроме того нужно реализовать класс документа в соответствии с интерфейсом IBPWorkflowDocument. Для полноценной работы с БП, необходимо так же при создании документа организовать создание и запуск бизнес-процессов, настроенных на автозапуск. Нужно подключить интерфейс для создания шаблонов бизнес процессов. А так же нужно предоставить пользователям интерфейс для управления запущенными бизнес-процессами. Для создания указанного функционала существует готовое АПИ.


Интерфейсы

  • IBPWorkflowDocument


IBPWorkflowDocument

Класс документа должен реализовывать методы интерфейса IBPWorkflowDocument. Этот интерфейс содержит методы, которые необходимы бизнес-процессу для работы с документом.

Для того чтобы бизнес-процесс мог работать с каким-либо объектом, необходимо выбрать, что будет являться документом, что будет являться типом документа, какие будут идентификаторы у документа и типа документа. Кроме того нужно реализовать класс документа в соответствии с интерфейсом IBPWorkflowDocument.

Тип документа и документ определяются своими идентификаторами, которые имеют вид кортежа из трех элементов: кода модуля, имени класса документа и некоторого кода (как правило, кода элемента). Подробнее смотрите статью Документ.

Методы

Название | Описание | С версии
CanUserOperateDocument | Метод проверяет права на выполнение операций над заданным документом. | 8.5
CanUserOperateDocumentType | Метод проверяет права на выполнение операций над документами заданного типа | 8.5
CreateDocument | Метод создает новый документ с указанными свойствами (полями) и возвращает его код. | 8.5
DeleteDocument | Метод удаляет указанный документ. | 8.5
GetAllowableOperations | Метод для типа документа возвращает массив доступных операций. | 8.5
GetAllowableUserGroups | Метод для типа документа возвращает массив возможных групп пользователей. | 8.5
GetDocument | Метод возвращает свойства (поля) документа в виде ассоциативного массива. | 8.5
GetDocumentAdminPage | Метод по коду документа возвращает ссылку на страницу документа в административной части. | 8.5
GetDocumentFields | Метод возвращает массив свойств (полей), которые имеет документ данного типа. | 8.5
GetDocumentForHistory | Метод возвращает массив произвольной структуры, содержащий всю информацию о документе. | 8.5
GetUsersFromUserGroup | Метод возвращает пользователей указанной группы для указанного документа в виде массива кодов пользователей. | 8.5
IsDocumentLocked | Метод проверяет, заблокирован ли указанный документ для указанного бизнес-процесса. | 8.5
LockDocument | Метод блокирует указанный документ для указанного бизнес-процесса. | 8.5
PublishDocument | Метод публикует документ, то есть делает его доступным в публичной части сайта. | 8.5
RecoverDocumentFromHistory | Метод восстанавливает указанный документ из массива. | 8.5
UnlockDocument | Метод разблокирует указанный документ. | 8.5
UnpublishDocument | Метод снимает документ с публикации, то есть делает его недоступным в публичной части сайта. | 8.5
UpdateDocument | Метод изменяет свойства (поля) указанного документа на указанные значения. | 8.5


CanUserOperateDocument

bool
IBPWorkflowDocument::CanUserOperateDocument(
 int operation,
 int userId,
 mixed documentId,
 array arParameters = array()
);

Метод проверяет права на выполнение операций над заданным документом. Проверяются операции:

  • 0 - просмотр данных бизнес-процесса,
  • 1 - запуск бизнес-процесса,
  • 2 - право изменять документ,
  • 3 - право смотреть документ.
Если права есть, то возвращается true, иначе – false.

Параметры метода

Параметр | Описание
operation | Операция
userId | Код пользователя, для которого проверяется право на выполнение операции
documentId | Код документа, к которому применяется операция
arParameters | Ассоциативный массив вспомогательных параметров. Используется для того, чтобы не рассчитывать заново те вычисляемые значения, которые уже известны на момент вызова метода. Стандартными являются ключи массива DocumentStates - массив состояний бизнес-процессов данного документа, WorkflowId - код бизнес-процесса (если требуется проверить операцию на одном бизнес-процессе). Массив может быть дополнен другими произвольными ключами.


CanUserOperateDocumentType

bool
IBPWorkflowDocument::CanUserOperateDocumentType(
 int operation,
 int userId,
 mixed documentId,
 array arParameters = array()
);

Метод проверяет права на выполнение операций над документами заданного типа. Проверяются операции:

  • 2 - право изменять документ,
  • 4 - право изменять шаблоны бизнес-процессов для данного типа документа.
Если права есть, то возвращается true, иначе – false.

Параметры метода

Параметр | Описание
operation | Операция
userId | Код пользователя, для которого проверяется право на выполнение операции
documentId | Код документа, к которому применяется операция
arParameters | Ассоциативный массив вспомогательных параметров. Используется для того, чтобы не рассчитывать заново те вычисляемые значения, которые уже известны на момент вызова метода. Стандартными являются ключи массива DocumentStates - массив состояний бизнес-процессов данного документа, WorkflowId - код бизнес-процесса (если требуется проверить операцию на одном бизнес-процессе). Массив может быть дополнен другими произвольными ключами.


CreateDocument

Описание и параметры

mixed
IBPWorkflowDocument::CreateDocument(
 mixed pid,
 array arFields
);

Метод создает новый документ с указанными свойствами (полями) и возвращает его код.

Параметры метода

Параметр | Описание
pid | Не используется
arFields Массив значений свойств документа в виде
array(
   код_свойства => значение,
   ...
)
Коды свойств соответствуют кодам свойств, возвращаемым методом GetDocumentFields.

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

<?
public function CreateDocument($pid, $arFields)
{
    $iblockElement = new CIBlockElement();
    $id = $iblockElement->Add($arFields);
    if (!$id || $id <= 0)
        throw new Exception($iblockElement->LAST_ERROR);
    return $id;
}
?>


DeleteDocument

void
IBPWorkflowDocument::DeleteDocument(
 mixed documentId
);

Метод удаляет указанный документ.

Параметры метода

Параметр | Описание
documentId | Код документа

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

<?
public function DeleteDocument($documentId)
{
    $documentId = intval($documentId);
    if ($documentId <= 0)
        throw new CBPArgumentNullException("documentId");

    CIBlockElement::Delete($documentId);
}
?>


GetAllowableOperations

array
IBPWorkflowDocument::GetAllowableOperations(
 mixed documentType
);

Метод для типа документа возвращает массив доступных операций в виде

array(
   "код_операции" => "название_операции_на_текущем_языке",
   . . .
)

Параметры метода

Параметр | Описание
documentType | Код типа документа


GetAllowableUserGroups

array
IBPWorkflowDocument::GetAllowableUserGroups(
 mixed documentType
);

Метод для типа документа возвращает массив возможных групп пользователей в виде

array(
   "код_группы" => "название_группы_на_текущем_языке",
   . . .
)

Параметры метода

Параметр | Описание
documentType | Код типа документа


GetDocument

Описание и параметры

array
IBPWorkflowDocument::GetDocument(
 mixed documentId
);

Метод возвращает свойства (поля) документа в виде ассоциативного массива вида

array(
   код_свойства => значение,
   ...
)
Определены все свойства, которые возвращает метод GetDocumentFields.

Параметры метода

Параметр | Описание
documentId | Идентификатор документа

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

<?
public function GetDocument($documentId)
{
    $documentId = intval($documentId);
    if ($documentId <= 0)
        throw new CBPArgumentNullException("documentId");

    $arResult = null;

    $dbDocumentList = CIBlockElement::GetList(
        array(),
        array("ID" => $documentId, "SHOW_NEW"=>"Y", "SHOW_HISTORY" => "Y")
    );
    if ($objDocument = $dbDocumentList->GetNextElement())
    {
        $arDocumentFields = $objDocument->GetFields();
        $arDocumentProperties = $objDocument->GetProperties();

        foreach ($arDocumentFields as $fieldKey => $fieldValue)
        {
            if (substr($fieldKey, 0, 1) != "~")
                $arResult[$fieldKey] = $fieldValue;
        }

        foreach ($arDocumentProperties as $propertyKey => $propertyValue)
            $arResult["PROPERTY_".$propertyKey] = $propertyValue["VALUE"];
    }

    return $arResult;
}
?>


GetDocumentAdminPage

string
IBPWorkflowDocument::GetDocumentAdminPage(
 mixed documentId
);

Метод по коду документа возвращает ссылку на страницу документа в административной части.

Параметры метода

Параметр | Описание
documentId | Код документа


GetDocumentFields

Описание и параметры

array
IBPWorkflowDocument::GetDocumentFields(
 mixed documentType
);

Метод возвращает массив свойств (полей), которые имеет документ данного типа. Метод GetDocument возвращает значения свойств для заданного документа. Возвращаемый массив имеет вид

array(
   код_свойства => array(
      "NAME" => название_свойства,
      "TYPE" => тип_свойства
   ),
   ...
)

Параметры метода

Параметр | Описание
documentType | Идентификатор типа документа

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

<?
public function GetDocumentFields($documentType)
{
    $iblockId = intval(substr($documentType, strlen("iblock_")));
    if ($iblockId <= 0)
        throw new CBPArgumentOutOfRangeException("documentType", $documentType);

    $arResult = array(
        "ID" => array(
            "Name" => GetMessage("IBD_FIELD_ID"),
            "Type" => "int",
            "Filterable" => true,
            "Editable" => false,
            "Required" => false,
            "Multiple" => false,
        ),
        "TIMESTAMP_X" => array(
            "Name" => GetMessage("IBD_FIELD_TIMESTAMP_X"),
            "Type" => "datetime",
            "Filterable" => true,
            "Editable" => true,
            "Required" => false,
            "Multiple" => false,
        ),
        ...
    );
    return $arResult;
}
?>


GetDocumentForHistory

array
IBPWorkflowDocument::GetDocumentForHistory(
 mixed documentId
);

Метод возвращает массив произвольной структуры, содержащий всю информацию о документе. По этому массиву документ восстанавливается методом RecoverDocumentFromHistory.

Параметры метода

Параметр | Описание
documentId | Код документа


GetUsersFromUserGroup

array
IBPWorkflowDocument::GetUsersFromUserGroup(
 mixed group,
 mixed documentId
);

Метод возвращает пользователей указанной группы для указанного документа в виде массива кодов пользователей.

Параметры метода

Параметр | Описание
group | Код группы пользователей
documentId | Код документа


IsDocumentLocked

bool
IBPWorkflowDocument::IsDocumentLocked(
 mixed documentId,
 string workflowId
);

Метод проверяет, заблокирован ли указанный документ для указанного бизнес-процесса. Т.е. если для данного бизнес-процесса документ не доступен для записи из-за того, что он заблокирован другим бизнес-процессом, то метод должен вернуть true, иначе - false.

Параметры метода

Параметр | Описание
documentId | Код документа
workflowId | Код бизнес-процесса


LockDocument

bool
IBPWorkflowDocument::LockDocument(
 mixed documentId,
 string workflowId
);

Метод блокирует указанный документ для указанного бизнес-процесса. Заблокированный документ может изменяться только указанным бизнес-процессом. Если удалось заблокировать документ, то возвращается true, иначе – false.

Параметры метода

Параметр | Описание
documentId | Код документа
workflowId | Код бизнес-процесса


PublishDocument

void
IBPWorkflowDocument::PublishDocument(
 mixed documentId
);

Метод публикует документ, то есть делает его доступным в публичной части сайта.

Параметры метода

Параметр | Описание
documentId | Код документа


RecoverDocumentFromHistory

array
IBPWorkflowDocument::RecoverDocumentFromHistory(
 mixed documentId,
 array arDocument
);

Метод восстанавливает указанный документ из массива. Массив создается методом GetDocumentForHistory.

Параметры метода

Параметр | Описание
documentId | Код документа
arDocument | Массив документа


UnlockDocument

bool
IBPWorkflowDocument::UnlockDocument(
 mixed documentId,
 string workflowId
);

Метод разблокирует указанный документ. При разблокировке вызываются обработчики события вида "Сущность_OnUnlockDocument", которым входящим параметром передается код документа. Если удалось разблокировать документ, то возвращается true, иначе - false.

Параметры метода

Параметр | Описание
documentId | Код документа
workflowId | Код бизнес-процесса


UnpublishDocument

void
IBPWorkflowDocument::UnpublishDocument(
 mixed documentId
);

Метод снимает документ с публикации, то есть делает его недоступным в публичной части сайта.

Параметры метода

Параметр | Описание
documentId | Код документа


UpdateDocument

Описание и параметры

void
IBPWorkflowDocument::UpdateDocument(
 mixed documentId,
 array arFields
);

Метод изменяет свойства (поля) указанного документа на указанные значения.

Параметры метода

Параметр | Описание
documentId | Код документа
arFields Массив новых значений свойств документа в виде
array(
   код_свойства => значение,
   ...
)
Коды свойств соответствуют кодам свойств, возвращаемым методом GetDocumentFields.

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

<?
public function UpdateDocument($documentId, $arFields)
{
    $documentId = intval($documentId);
    if ($documentId <= 0)
        throw new CBPArgumentNullException("documentId");

    $iblockElement = new CIBlockElement();
    $res = $iblockElement->Update($documentId, $arFields);
    if (!$res)
        throw new Exception($iblockElement->LAST_ERROR);
}
?>


Классы

Класс | Описание | С версии
CBPActivity | Основной класс. | создан ранее 8.5.3
CBPDocument | Вспомогательный класс, содержащий статические методы-обертки для удобного использования API модуля бизнес-процессов. | создан ранее 8.5.1
CBPRuntime | Класс исполняющей среды. Он создает бизнес-процессы, а так же инфраструктуру для их исполнения. | создан ранее 8.5.4
CBPWorkflow | Класс экземпляра бизнес-процесса. Он управляет бизнес-процессом, умеет отправлять на запуск его действия, транслировать и обрабатывать события. | создан ранее 8.5.6


CBPActivity

Описание

Все, что происходит в бизнес-процессе — это действия. Сам бизнес-процесс представляет собой составное действие, которое позволяет определять внутри себя дочерние действия. Действие в бизнес-процессе имеет уникальное в рамках этого бизнес-процесса имя.

Действие — это класс, который наследуется от абстрактного класса CBPActivity или его потомков. Название класса должно начинаться с подстроки "CBP" и может состоять из латинских букв и цифр.

<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

class CBPMyActivity1
    extends CBPActivity
{
    . . .
}
?>

Непосредственно от абстрактного класса CBPActivity наследуются действия, которые не могут содержать внутри себя другие действия. Этот класс определяет набор базовых методов, которые необходимы любому действию. Некоторые методы, определенные в классе CBPActivity могут или должны быть переопределены в классе-наследнике.

Составные действия наследуются от абстрактного класса CBPCompositeActivity, который в свою очередь наследуется от класса CBPActivity. Класс CBPCompositeActivity обеспечивает поддержку возможности включать внутрь действия дочерние действия. Например, составным действием является стандартное действие CBPParallelActivity (параллельное выполнение), которое содержит в себе дочерние действия, соответствующие веткам параллельного выполнения.

Класс CBPCompositeActivity содержит член arActivities, с помощью которого можно обращаться к дочерним действиям.

Класс CBPActivity содержит следующие члены, которые можно применять в действиях-наследниках:

  • workflow – содержит объект-оболочку типа CBPWorkflow для данного бизнес-процесса,
  • parent – содержит родительское действие,
  • executionStatus – статус выполнения действия,
  • executionResult – результат выполнения действия.

Список методов

Метод | Описание | С версии
Execute | Этот метод вызывается исполняющей средой при выполнении действия. Он непосредственно реализует поведение действия и должен быть переопределен в каждом действии. |
Initialize | Этот метод вызывается исполняющей средой для инициализации действия, которая происходит до запуска бизнес-процесса на выполнение. Большинство действий не переопределяют этот метод. |
HandleFault | Этот метод вызывается исполняющей средой при возникновении ошибки выполнения действия. Метод может быть переопределен, если при возникновении ошибки выполнения действия необходимо выполнить какой-либо код. |
AddStatusChangeHandler | Метод добавляет новый обработчик события изменения статуса действия. |
GetName | Метод возвращает имя действия. Имя действия уникально в рамках бизнес-процесса. |
GetRootActivity | Метод возвращает корневое действие бизнес-процесса. Корневое действие реализует интерфейс IBPRootActivity. |
GetWorkflowInstanceId | Метод возвращает код бизнес-процесса. |
RemoveStatusChangeHandler | Метод удаляет обработчик события изменения статуса действия. |
WriteToTrackingService | Метод записывает в лог произвольное сообщение. Кроме того может быть записано, от имени какого пользователя отправляется это сообщение. |

Пример

<?
// Код класса действия, которое создаст файл с указанным в свойствах действия именем
class CBPMyActivity
    extends CBPActivity
{
    public function __construct($name)
    {
        parent::__construct($name);
        // Определим свойство FileName, в котором будет содержаться имя файла
        $this->arProperties = array("Title" => "", "FileName" => "");
    }

    // Исполняемый метод действия
    public function Execute()
    {
        // Если свойство с именем файла задано, осуществим в него запись
        // Обратите внимание, что для упрощения кода здесь не добавлены
        // необходимые проверки безопасности
        if (strlen($this->FileName) > 0)
        {
            $f = fopen($this->FileName, "w");
            fwrite($f, "Какой-то текст");
            fclose($f);
        }

        // Вернем указание исполняющей среде, что действие завершено
        return CBPActivityExecutionStatus::Closed;
    }
}
?>


AddStatusChangeHandler

Описание и параметры

void
CBPActivity::AddStatusChangeHandler(
 int event,
 IBPActivityEventListener eventHandler
);

Метод добавляет новый обработчик события изменения статуса действия.

Параметры метода

Параметр | Описание
event | Одна из констант CBPActivity::ExecutingEvent, CBPActivity::ClosedEvent, CBPActivity::FaultingEvent, определяющая, на какое изменение статуса будет вызываться обработчик.
eventHandler | Обработчик события, который реализует интерфейс IBPActivityEventListener.

Смотрите также

  • RemoveStatusChangeHandler

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

<?
class CBPMyActivity
    extends CBPCompositeActivity    // наследуем, так как составное действие
    implements IBPEventActivity	// обработка события завершения дочернего действия
{
    // Исполняемый метод действия
    public function Execute()
    {
        // Возьмем первое дочернее действие
        $activity = $this->arActivities[0];
        // Подпишемся на событие изменения статуса дочернего действия (завершение)
        $activity->AddStatusChangeHandler(self::ClosedEvent, $this);
        // Отправим дочернее действие исполняющей среде на выполнение
        $this->workflow->ExecuteActivity($activity);

        // Вернем указание исполняющей среде, что действие еще выполняется
        return CBPActivityExecutionStatus::Executing;
    }

    // Обработчик события изменения статуса интерфейса IBPEventActivity
    // Параметром передается действие, изменившее статус
    protected function OnEvent(CBPActivity $sender)
    {
        // Отпишемся от события изменения статуса дочернего действия (завершения)
        $sender->RemoveStatusChangeHandler(self::ClosedEvent, $this);
        // Дочернее действие завершено, выполняем другой необходимый нам код
        // Например завершаем действие
        $this->workflow->CloseActivity($this);
    }
}
?>


Execute

public int
CBPActivity::Execute( void )

Этот метод вызывается исполняющей средой при выполнении действия. Он непосредственно реализует поведение действия и должен быть переопределен в каждом действии. Метод Execute может содержать произвольный код. По умолчанию метод ничего не делает.

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

  • CBPActivityExecutionStatus::Closed - действие завершило свою работу и может быть закрыто;
  • CBPActivityExecutionStatus::Executing - у действия еще есть работа, которую нужно доделать. Например, составное действие должно выполнить свои дочерние элементы. В этом случае составное действие может запланировать запуск каждого своего дочернего действия и ожидать завершения их работы прежде, чем известить исполняющую среду о том, что данное действие завершилось.
На изменение статуса выполнения действия можно подписываться. Например, составное действие может узнать о завершении содержащегося в нем дочернего действия, подписавшись на изменение его статуса выполнения в CBPActivityExecutionStatus::Closed.

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

<?
public function Execute()
{
   $this->WriteToTrackingService(“Test record: ”. $this->MyProperty);
   . . .
   return CBPActivityExecutionStatus::Closed;
}
?>


GetName

string
CBPActivity::GetName(
);

Метод возвращает имя действия. Имя действия уникально в рамках бизнес-процесса.

Возвращаемое значение

Строка, содержащая имя действия.


GetRootActivity

CBPActivity
CBPActivity::GetRootActivity(
);

Метод возвращает корневое действие бизнес-процесса. Корневое действие реализует интерфейс IBPRootActivity.

Возвращаемое значение

Объект типа CBPActivity, представляющий корневое действие бизнес-процесса.

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

<?
$rootActivity = $this->GetRootActivity();
$documentId = $rootActivity->GetDocumentId();
?>


getTaskControls

Описание и параметры

return CBPActivity::CallStaticMethod(
      $arTask["ACTIVITY"],
      "getTaskControls",
      array(
          $arTask
      )
)

Метод возвращает массив элементов формы задания: кнопки и поля.

Примечание: на данный момент метод передает только описания кнопок.

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

Параметры метода

Параметр | Описание
$arTask | Массив с параметрами задания.

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

return array(
    'BUTTONS' => array(
        array(
            'TYPE' => 'submit',
            'TARGET_USER_STATUS' => CBPTaskUserStatus::Yes,
            'NAME' => 'approve',
            'VALUE' => 'Y',
            'TEXT' => "Утвердить"
        ),
        array(
            'TYPE' => 'submit',
            'TARGET_USER_STATUS' => CBPTaskUserStatus::No,
            'NAME' => 'nonapprove',
            'VALUE' => 'Y',
            'TEXT' => "Отклонить"
        )
    )
);


GetWorkflowInstanceId

string
CBPActivity::GetWorkflowInstanceId(
);

Метод возвращает код бизнес-процесса.

Возвращаемое значение

Строка, содержащая идентификатор экземпляра бизнес-процесса.

Смотрите также

  • CBPWorkflow::GetInstanceId


HandleFault

void
public function HandleFault(
 Exception exception
);

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

Параметры метода

Параметр | Описание
exception | Объект типа Exception, представляющий собой ошибку выполнения

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

<?
public function HandleFault(Exception $exception)
{
    if ($exception == null)
        throw new Exception("exception");
    $status = $this->Cancel();
    if ($status == CBPActivityExecutionStatus::Canceling)
        return CBPActivityExecutionStatus::Faulting;
    return $status;
}
?>


Initialize

public int
CBPActivity::Initialize( void )

Этот метод вызывается исполняющей средой для инициализации действия, которая происходит до запуска бизнес-процесса на выполнение. Большинство действий не переопределяют этот метод. По умолчанию метод ничего не делает.


RemoveStatusChangeHandler

void
CBPActivity::RemoveStatusChangeHandler(
 int event,
 IBPActivityEventListener eventHandler
);

Метод удаляет обработчик события изменения статуса действия.

Параметры метода

Параметр | Описание
event | Одна из констант CBPActivity::ExecutingEvent, CBPActivity::ClosedEvent, CBPActivity::FaultingEvent, определяющая, на какое изменение статуса будет вызываться обработчик.
eventHandler | Обработчик события, который реализует интерфейс IBPActivityEventListener.

Смотрите также

  • AddStatusChangeHandler


ShowTaskForm

Описание и параметры

return CBPActivity::CallStaticMethod(
     $arTask["ACTIVITY"],
     "ShowTaskForm",
     array(
         $arTask,
         $userId,
         $userName,
         $arRequest
     )
)

Метод возвращает массив из двух элементов: первый - часть HTML формы (поле для комментария, поля ввода доп.информации), второй - HTML кнопки формы (Ознакомлен, Утвердить и т.п.)

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

Параметры метода

Параметр | Описание
$arTask | Массив с параметрами задания.
$userId | Пользователь, который запрашивает форму задания.
$userName | Имя пользователя.
$arRequest | Данные из наполнения формы (например, когда пользователь заполнил форму, но она не прошла валидацию - те данные, что он ввел ранее, передаются, чтобы при перезагрузке страницы введенная информация не потерялась).

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

return array(
    '<tr><td valign="top" width="40%" align="right" class="bizproc-field-name">'.(strlen($arTask["PARAMETERS"]["CommentLabelMessage"]) > 0 ?
    $arTask["PARAMETERS"]["CommentLabelMessage"] : GetMessage("BPAA_ACT_COMMENT")).':</td>'.
    '<td valign="top" width="60%" class="bizproc-field-value">'.
    '<textarea rows="3" cols="50" name="task_comment"></textarea>'.
    '</td></tr>',
    '<input type="submit" name="approve" value="'.(strlen($arTask["PARAMETERS"]["TaskButton1Message"]) > 0 ?
    $arTask["PARAMETERS"]["TaskButton1Message"] : GetMessage("BPAA_ACT_BUTTON1")).'"/>'.
    '<input type="submit" name="nonapprove" value="'.(strlen($arTask["PARAMETERS"]["TaskButton2Message"]) > 0 ?
    $arTask["PARAMETERS"]["TaskButton2Message"] : GetMessage("BPAA_ACT_BUTTON2")).'"/>'
);


WriteToTrackingService

void
CBPActivity::WriteToTrackingService(
 string message,
 int modifiedBy = 0
 int trackingType = -1);

Метод записывает произвольное сообщение в лог Бизнес-процесса. Кроме того может быть записано, от имени какого пользователя отправляется это сообщение.

Параметры метода

Параметр | Описание | С версии
message | Сообщение
modifiedBy | Идентификатор пользователя, от имени которого отправляется сообщение | 8.5.4
trackingType Тип записи. Указывается с помощью констант класса CBPTrackingType:
const Unknown = 0;
const ExecuteActivity = 1;
const CloseActivity = 2;
const CancelActivity = 3;
const FaultActivity = 4;
const Custom = 5;
const Report = 6;
 11.0.4


CBPDocument

CBPDocument - вспомогательный класс, содержащий статические методы-обертки для удобного использования API модуля бизнес-процессов.

Например, для того, чтобы запустить бизнес-процесс по коду его шаблона, можно использовать код:

$runtime = CBPRuntime::GetRuntime();
$wi = $runtime->CreateWorkflow($workflowTemplateId, $documentId, $arParameters);
$wi->Start();

Или можно использовать метод:

string CBPDocument::StartWorkflow($workflowTemplateId, $documentId, $arParameters, &$arErrors)
который кроме того обработает исключения, собрав их в массив $arErrors, и вернет идентификатор бизнес-процесса.

Методы класса

Метод | Описание | С версии
AddDocumentToHistory | Метод добавляет текущую версию документа в историю. | 9.0.0
AutoStartWorkflows | Метод запускает рабочие потоки, настроенные на автозапуск. |
CanOperate | Метод проверяет, может ли указанный пользователь совершить указанную операцию, если документ находится в указанных состояниях. |
CanUserOperateDocument | Метод проверяет путем обращения к сущности документа, может ли пользователь совершать указанную операцию с документом. |
CanUserOperateDocumentType | Метод проверяет путем обращения к сущности типа документа, может ли пользователь совершать указанную операцию с документами данного типа. |
DeleteWorkflowTemplate | Метод удаляет шаблон бизнес-процесса. |
GetAllowableEvents | Метод возвращает массив событий, которые указанный пользователь может отправить рабочему потоку в указанном состоянии. |
GetAllowableOperations | Метод возвращает массив операций, которые указанный пользователь может совершить, если документ находится в указанных состояниях. |
GetDocumentState | Метод для данного документа возвращает состояние указанного рабочего потока. |
GetDocumentStates | Метод возвращает массив всех рабочих потоков и их состояний для данного документа. |
GetUserTasksForWorkflow | Метод возвращает массив заданий для данного пользователя в данном рабочем потоке. |
GetWorkflowTemplatesForDocumentType | Метод возвращает массив шаблонов рабочих потоков для данного типа документа. |
OnDocumentDelete | Метод удаляет все связанные с документом записи модуля бизнес-процессов. |
SendExternalEvent | Метод отправляет внешнее событие рабочему потоку. |
StartWorkflow | Метод запускает рабочий поток по коду его шаблона. Это рекомендуемый метод для запуска бизнес-процессов. |
TerminateWorkflow | Метод останавливает выполнение рабочего потока. |
UpdateWorkflowTemplate | Метод изменяет параметры шаблона бизнес-процесса. |


AddDocumentToHistory

integer
public static function CBPDocument::AddDocumentToHistory(
 array documentId,
 string name,
 integer userId
);

Метод добавляет текущую версию документа в историю.

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

Параметры метода

Параметр | Описание
documentId | Идентификатор документа, заданный в виде массива array(код_модуля, класс_документа, идентификатор_документа_в_модуле)
name | Название записи в истории
userId | Идентификатор пользователя, от имени которого заносится запись

Возвращаемое значение

Возвращается идентификатор записи в истории или false в случае ошибки.


AutoStartWorkflows

Описание и параметры

void
public static function CBPDocument::AutoStartWorkflows(
 array documentType,
 integer autoExecute,
 array documentId,
 array arParameters,
 array &arErrors
);

Метод запускает рабочие потоки, настроенные на автозапуск.

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

Параметры метода

Параметр | Описание
documentType | Код типа документа в виде массива array(модуль, класс_документа, код_типа_документа_в_модуле)
autoExecute | Флаг CBPDocumentEventType типа автозапуска (1 = CBPDocumentEventType::Create, 2 = CBPDocumentEventType::Edit)
documentId | Код документа в виде массива array(модуль, класс_документа, код_документа_в_модуле)
arParameters | Массив параметров запуска рабочего потока
arErrors Массив ошибок, которые произошли при запуске рабочего потока в виде
array(
   array(
      "code" => код_ошибки,
      "message" => сообщение,
      "file" => путь_к_файлу
   ),
   ...
)

Смотрите также

  • CBPDocument::StartWorkflow


CanOperate

boolean
public static function CBPDocument::CanOperate(
 string operation,
 integer userId,
 array arGroups,
 array arStates
);

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

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

Параметры метода

Параметр | Описание
operation | Код операции
userId | Идентификатор пользователя
arGroups | Массив групп пользователя
arStates | Массив состояний рабочих потоков документа

Возвращаемое значение

Если среди состояний нет ни одного рабочего потока типа конечных автоматов, то возвращается true. Если пользователь не может выполнить операцию, то возвращается false. Иначе возвращается true.


CanUserOperateDocument

Описание и параметры

bool
public static function CBPDocument::CanUserOperateDocument(
 int operation,
 int userId,
 array documentId,
 array arParameters = array()
);

Метод проверяет путем обращения к сущности документа, может ли пользователь совершать указанную операцию с документом.

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

Параметры метода

Параметр | Описание
operation | Операция из CBPCanUserOperateOperation
userId | Код пользователя
documentId | Код документа в виде массива array(модуль, класс_документа, код_документа_в_модуле)
arParameters | Ассоциативный массив вспомогательных параметров. Используется для того, чтобы не рассчитывать заново те вычисляемые значения, которые уже известны на момент вызова метода. Стандартными являются ключи массива DocumentStates - массив состояний рабочих потоков данного документа, UserGroups - группы пользователя, WorkflowId - код рабочего потока (если требуется проверить операцию на одном рабочем потоке). Массив может быть дополнен другими произвольными ключами

Возвращаемое значение

Возвращается true, если пользователь имеет право на выполнение указанной операции. Иначе возвращается false.

Смотрите также

  • CBPDocument::CanUserOperateDocumentType

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

<?
$bCanAccess = CBPDocument::CanUserOperateDocument(
    CBPCanUserOperateOperation::CreateWorkflow,
    $GLOBALS["USER"]->GetID(),
    $documentId,
    array("UserGroups" => $arUserGroups)
);
if (!$bCanAccess)
   die("Access denied");
?>


CanUserOperateDocumentType

Описание и параметры

bool
public static function CBPDocument::CanUserOperateDocumentType(
 int operation,
 int userId,
 array documentType,
 array arParameters = array()
);

Метод проверяет путем обращения к сущности типа документа, может ли пользователь совершать указанную операцию с документами данного типа.

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

Параметры метода

Параметр | Описание
operation | Операция из CBPCanUserOperateOperation
userId | Код пользователя
documentType | Код типа документа в виде массива array(модуль, класс_документа, код_типа_документа_в_модуле)
arParameters | Ассоциативный массив вспомогательных параметров. Используется для того, чтобы не рассчитывать заново те вычисляемые значения, которые уже известны на момент вызова метода. Стандартными являются ключи массива DocumentStates - массив состояний рабочих потоков данного документа, WorkflowId - код рабочего потока (если требуется проверить операцию на одном рабочем потоке). Массив может быть дополнен другими произвольными ключами.

Возвращаемое значение

Возвращается true, если пользователь имеет право на выполнение указанной операции. Иначе возвращается false.

Смотрите также

  • CBPDocument::CanUserOperateDocument

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

<?
$bCanAccess = CBPDocument::CanUserOperateDocumentType(
    CBPCanUserOperateOperation::CreateWorkflow,
    $GLOBALS["USER"]->GetID(),
    $documentType,
    array("UserGroups" => $arUserGroups)
);
if (!$bCanAccess)
   die("Access denied");
?>


DeleteWorkflowTemplate

Описание и параметры

void
CBPDocument::DeleteWorkflowTemplate(
 int id,
 array documentType,
 array &arErrors
);

Метод удаляет шаблон бизнес-процесса.

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

Параметры метода

Параметр | Описание
id | Код шаблона бизнес-процесса
documentType | Код типа документа в виде массива array(модуль, класс_документа, код_типа_документа_в_модуле)
arErrors массив ошибок, которые произошли при выполнении в виде
array(
  array(
    "code" => код_ошибки,
    "message" => сообщение,
    "file" => путь_к_файлу
  ),
  ...
)

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

<?
// Удалим шаблон бизнес-процесса с кодом 132 для инфоблока 18
CBPDocument::DeleteWorkflowTemplate(
  132,
  array("iblock", "CIBlockDocument", "iblock_18"),
  $arErrorTmp
);
?>


GetAllowableEvents

Описание и параметры

array
public static function CBPDocument::GetAllowableEvents(
 int userId,
 array arGroups,
 array arState
);

Метод возвращает массив событий, которые указанный пользователь может отправить рабочему потоку в указанном состоянии.

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

Параметры метода

Параметр | Описание
userId | Код пользователя
arGroups | Массив групп пользователя
arState | Состояние рабочего потока

Возвращаемое значение

Возвращается массив событий вида

array(
   array(
      "NAME" => событие,
      "TITLE" => название_события
   ),
   ...
)

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

<?
$documentType = array("bizproc", "CBPVirtualDocument", "type_".$blockId);
$documentId = array("bizproc", "CBPVirtualDocument", $id);

$arCurrentUserGroups = $GLOBALS["USER"]->GetUserGroupArray();
if ($GLOBALS["USER"]->GetID() == $authorId)
   $arCurrentUserGroups[] = "Author";

$arDocumentStates = CBPDocument::GetDocumentStates($documentType, $documentId);

foreach ($arDocumentStates as $arDocumentState)
{
   $arDocumentStateEvents = CBPDocument::GetAllowableEvents($GLOBALS["USER"]->GetID(), $arCurrentUserGroups, $arDocumentState);
   print_r($arDocumentStateEvents);
}
?>


GetAllowableOperations

array
public static function CBPDocument::GetAllowableOperations(
 integer userId,
 array arGroups,
 array arStates
);

Метод возвращает массив операций, которые указанный пользователь может совершить, если документ находится в указанных состояниях.

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

Параметры метода

Параметр | Описание
userId | Идентификатор пользователя
arGroups | Массив групп пользователя
arStates | Массив состояний рабочих потоков документа

Возвращаемое значение

Если среди состояний нет ни одного рабочего потока типа конечных автоматов, то возвращается null. Если пользователь не может выполнить ни одной операции, то возвращается array(). Иначе возвращается массив доступных для пользователя операций в виде

array(
   операция,
   ...
)


GetDocumentState

array
public static function CBPDocument::GetDocumentState(
 array documentId,
 string workflowId
);

Метод для данного документа возвращает состояние указанного рабочего потока.

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

Параметры метода

Параметр | Описание
documentId | Идентификатор документа в виде массива array(модуль, класс_документа, код_документа_в_модуле)
workflowId | Идентификатор рабочего потока

Возвращаемое значение

Результирующий массив аналогичен массиву метода CBPDocument::GetDocumentStates.

Смотрите также

  • CBPDocument::GetDocumentStates


GetDocumentStates

Описание и параметры

array
public static function CBPDocument::GetDocumentStates(
 array documentType,
 array documentId = null
);

Метод возвращает массив всех рабочих потоков и их состояний для данного документа. Если задан код документа, то метод возвращает массив всех запущенных для данного документа рабочих потоков (в том числе и завершенные), а так же шаблонов рабочих потоков, настроенных на автозапуск при изменении документа. Если код документа не задан, то метод возвращает массив шаблонов рабочих потоков, настроенных на автозапуск при создании документа.

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

Параметры метода

Параметр | Описание
documentType | Тип документа в виде массива array(модуль, класс_документа, тип_документа_в_модуле)
documentId | Код документа в виде массива array(модуль, класс_документа, код_документа_в_модуле). Если новый документ, то null

Возвращаемое значение

Массив имеет вид:

array(
   код_рабочего_потока_или_шаблона => array(
      "ID" => код_рабочего_потока,
      "TEMPLATE_ID" => код_шаблона_рабочего_потока,
      "TEMPLATE_NAME" => название_шаблона_рабочего_потока,
      "TEMPLATE_DESCRIPTION" => описание_шаблона_рабочего_потока,
      "TEMPLATE_PARAMETERS" => массив_параметров_запуска_рабочего_потока_из_шаблона,
      "STATE_NAME" => текущее_состояние_рабочего_потока,
      "STATE_TITLE" => название_текущего_состояния_рабочего_потока,
      "STATE_MODIFIED" => дата_изменения_статуса_рабочего_потока,
      "STATE_PARAMETERS" => массив_событий_принимаемых_потоком_в_данном_состоянии,
      "STATE_PERMISSIONS" => права_на_операции_над_документом_в_данном_состоянии,
      "WORKFLOW_STATUS" => статус_рабочего_потока,
   ),
   . . .
)
В зависимости от того, рабочий поток это или шаблон, часть полей может быть не установлена. Для шаблона рабочего потока типа конечных автоматов состоянием является его начальное состояние.
Массив параметров запуска рабочего потока из шаблона (TEMPLATE_PARAMETERS) имеет вид:
array(
   "param1" => array(
      "Name" => "Параметр 1",
      "Description" => "",
      "Type" => "int",
      "Required" => true,
      "Multiple" => false,
      "Default" => 8,
      "Options" => null,
   ),
   "param2" => array(
      "Name" => "Параметр 2",
      "Description" => "",
      "Type" => "select",
      "Required" => false,
      "Multiple" => true,
      "Default" => "v2",
      "Options" => array(
         "v1" => "V 1",
         "v2" => "V 2",
         "v3" => "V 3",
         . . .
      ),
   ),
   . . .
)
Допустимые типы параметров: int, double, string, text, select, bool, date, datetime, user.
Массив событий, принимаемых потоком в данном состоянии (STATE_PARAMETERS) имеет вид:
array(
   array(
      "NAME" => принимаемое_событие,
      "TITLE" => название_принимаемого_события,
      "PERMISSION" => массив_групп_пользователей_могущих_отправить_событие
   ),
   . . .
)
Права на операции над документом в данном состоянии (STATE_PERMISSIONS) имеют вид:
array(
   операция => массив_групп_пользователей_могущих_осуществлять_операцию,
   . . .
)

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

<?
$documentType = array("bizproc", "CBPVirtualDocument", "type_".$blockId);
$documentId = array("bizproc", "CBPVirtualDocument", $id);

$arDocumentStates = CBPDocument::GetDocumentStates($documentType, $documentId);

foreach ($arDocumentStates as $arDocumentState)
{
   $arDocumentStateTasks = CBPDocument::GetUserTasksForWorkflow($GLOBALS["USER"]->GetID(), $arDocumentState["ID"]);
   print_r($arDocumentStateTasks);
}
?>


GetUserTasksForWorkflow

Описание и параметры

array
public static function CBPDocument::GetUserTasksForWorkflow(
 integer userId,
 string workflowId
);

Метод возвращает массив заданий для данного пользователя в данном рабочем потоке.

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

Параметры метода

Параметр | Описание
userId | Код пользователя
workflowId | Код бизнес-процесса

Возвращаемое значение

Возвращаемый массив имеет вид:

array(
   array(
      "ID" => код_задания,
      "NAME" => название_задания,
      "DESCRIPTION" => описание_задания,
   ),
   . . .
)

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

<?
$documentType = array("bizproc", "CBPVirtualDocument", "type_".$iblockId);
$documentId = array("bizproc", "CBPVirtualDocument", $id);

$arDocumentStates = CBPDocument::GetDocumentStates($documentType, $documentId);

foreach ($arDocumentStates as $arDocumentState)
{
   $ar = CBPDocument::GetUserTasksForWorkflow($GLOBALS["USER"]->GetID(), $arDocumentState["ID"]);
   print_r($ar);
}
?>


GetWorkflowTemplatesForDocumentType

result_type
public static function GetWorkflowTemplatesForDocumentType(
 array documentType
);

Метод возвращает массив шаблонов рабочих потоков для данного типа документа.

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

Параметры метода

Параметр | Описание
documentType | Код типа документа в виде массива array(модуль, класс_документа, код_типа_документа_в_модуле)

Возвращаемое значение

Возвращаемый массив имеет вид:

array(
   array(
      "ID" => код_шаблона,
      "NAME" => название_шаблона,
      "DESCRIPTION" => описание_шаблона,
      "MODIFIED" => дата_изменения_шаблона,
      "USER_ID" => код_пользователя_изменившего_шаблон,
      "USER_NAME" => имя_пользователя_изменившего_шаблон,
      "AUTO_EXECUTE" => флаг_автовыполнения_CBPDocumentEventType,
      "AUTO_EXECUTE_TEXT" => текст_автовыполнения,
   ),
   . . .
)


OnDocumentDelete

Описание и параметры

void
public static function CBPDocument::OnDocumentDelete(
 array documentId,
 array &arErrors
);

Метод удаляет все связанные с документом записи модуля бизнес-процессов.

Параметры метода

Параметр | Описание
documentId | Код документа в виде массива array(модуль, класс_документа, код_документа_в_модуле)
arErrors Массив ошибок, которые произошли при удалении в виде
array(
   array(
      "code" => код_ошибки,
      "message" => сообщение,
      "file" => путь_к_файлу
   ),
   ...
)

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

<?
$arState = CBPStateService::GetWorkflowState($deleteWorkflowId);
if (count($arState) > 0)
{
   $arErrorsTmp = array();
   CBPDocument::OnDocumentDelete($arState["DOCUMENT_ID"], $arErrorsTmp);
   if (count($arErrorsTmp) > 0)
   {
      foreach ($arErrorsTmp as $e)
         $errorMessage .= $e["message"].". ";
   }
}
?>


SendExternalEvent

Описание и параметры

void
public function CBPDocument::SendExternalEvent(
 string workflowId,
 string workflowEvent,
 array arParameters,
 array &arErrors
);

Метод отправляет внешнее событие рабочему потоку.

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

Параметры метода

Параметр | Описание
workflowId | Код рабочего потока
workflowEvent | Название события
arParameters | Параметры события
arErrors Массив ошибок, которые произошли при отправке события в виде
array(
   array(
      "code" => код_ошибки,
      "message" => сообщение,
      "file" => путь_к_файлу
   ),
   ...
)

Смотрите также

  • CBPRuntime::SendExternalEvent

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

<?
$arCurrentUserGroups = $GLOBALS["USER"]->GetUserGroupArray();
if ($GLOBALS["USER"]->GetID() == $createdBy)
   $arCurrentUserGroups[] = "Author";

$arErrorTmp = array();

CBPDocument::SendExternalEvent(
   $bizprocId,
   $bizprocEvent,
   array("Groups" => $arCurrentUserGroups, "User" => $GLOBALS["USER"]->GetID()),
   $arErrorTmp
);

if (count($arErrorsTmp) > 0)
{
   foreach ($arErrorsTmp as $e)
      $fatalErrorMessage .= $e["message"].". ";
}
?>


StartWorkflow

Описание и параметры

string
public static function CBPDocument::StartWorkflow(
 integer workflowTemplateId,
 array documentId,
 array arParameters,
 array &arErrors
);

Метод запускает рабочий поток по коду его шаблона. Это рекомендуемый метод для запуска бизнес-процессов.

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

Параметры метода

Параметр | Описание
workflowTemplateId | Код шаблона рабочего потока.
documentId Массив из 3 элементов. id модуля, сущность (класс) и непосредственно ID документа, например:
['crm', 'CCrmDocumentLead', 'LEAD_1']
['lists', 'BizprocDocument', '22']
['disk', 'Bitrix\Disk\BizProcDocument', '490']
['tasks', 'Bitrix\Tasks\Integration\Bizproc\Document\Task', '13']

Для бизнес-процессов:

$documentId => array('lists', 'BizprocDocument', $id_element)

Для шаблона списка:

$documentId => array('lists', 'Bitrix\Lists\BizprocDocumentLists', $id_element)
arParameters Массив параметров запуска рабочего потока.

Примечание: если процесс запускается из другого процесса через API, и при этом передается значение множественного параметра, то оно должно передаваться в виде массива.

arErrors Массив ошибок, которые произошли при запуске рабочего потока в виде
array(
   array(
      "code" => код_ошибки,
      "message" => сообщение,
      "file" => путь_к_файлу
   ),
   ...
).

Возвращаемое значение

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

Смотрите также

  • CBPRuntime::CreateWorkflow

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

<?

// Запустим бизнес-процесс по шаблону $workflowTemplateId с входящими параметрами $arWorkflowParameters
// для документа array("bizproc", "CBPVirtualDocument", $documentId)

$arErrorsTmp = array();

$wfId = CBPDocument::StartWorkflow(
   $workflowTemplateId,
   array("bizproc", "CBPVirtualDocument", $documentId),
   array_merge($arWorkflowParameters, array("TargetUser" => "user_".intval($GLOBALS["USER"]->GetID()))),
   $arErrorsTmp
);

if (count($arErrorsTmp) > 0)
{
   foreach ($arErrorsTmp as $e)
      $errorMessage .= "[".$e["code"]."] ".$e["message"]."
";
}
?>


TerminateWorkflow

Описание и параметры

void
public static function CBPDocument::TerminateWorkflow(
 string workflowId,
 array documentId,
 array &arErrors
);

Метод останавливает выполнение рабочего потока.

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

Параметры метода

Параметр | Описание
workflowId | Код рабочего потока
documentId | Код документа в виде массива array(модуль, класс_документа, код_документа_в_модуле)
arErrors Массив ошибок, которые произошли при остановке рабочего потока в виде
array(
   array(
      "code" => код_ошибки,
      "message" => сообщение,
      "file" => путь_к_файлу
   ),
   ...
)

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

<?
$arState = CBPStateService::GetWorkflowState($stopWorkflowId);
if (count($arState) > 0)
{
   CBPDocument::TerminateWorkflow(
      $stopWorkflowId,
      $arState["DOCUMENT_ID"],
      $arErrorsTmp
   );

   if (count($arErrorsTmp) > 0)
   {
      foreach ($arErrorsTmp as $e)
         $errorMessage .= $e["message"].". ";
   }
}
?>


UpdateWorkflowTemplate

Описание и параметры

void
CBPDocument::UpdateWorkflowTemplate(
 int id,
 array documentType,
 array arFields,
 array& arErrors
);

Метод изменяет параметры шаблона бизнес-процесса.

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

Параметры метода

Параметр | Описание
id | Код шаблона бизнес-процесса
documentType | Код типа документа в виде массива array(модуль, класс_документа, код_типа_документа_в_модуле)
arFields | Массив новых значений параметров шаблона бизнес-процесса
arErrors массив ошибок, которые произошли при выполнении в виде
array(
  array(
    "code" => код_ошибки,
    "message" => сообщение,
    "file" => путь_к_файлу
  ),
  ...
)

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

<?
// изменим флаг автозапуска шаблона бизнес-процесса с кодом 132 для инфоблока с кодом 32
CBPDocument::UpdateWorkflowTemplate(
    132,
    array("iblock", "CIBlockDocument", "iblock_32"),
    array(
        "AUTO_EXECUTE" => CBPDocumentEventType::Create
    ),
    $arErrorsTmp
);
?>


CBPRuntime

CBPRuntime - класс исполняющей среды. Он создает бизнес-процессы, а так же инфраструктуру для их исполнения.

Исполняющая среда в рамках одного хита существует в единственном экземпляре. Получить экземпляр исполняющей среды можно с помощью кода:

$runtime = CBPRuntime::GetRuntime();

Методы класса

Метод | Описание | С версии
GetRuntime | Статический метод возвращает экземпляр класса, представляющего текущую исполняющую среду. |
CreateWorkflow | Метод создает новый экземпляр бизнес-процесса над указанным документом. |
GetService | Метод возвращает экземпляр сервиса исполняющей среды по его имени. |
GetWorkflow | Метод возвращает экземпляр бизнес-процесса по его идентификатору. |
SendExternalEvent | Статический метод отправляет внешнее событие указанному бизнес-процессу. |
StartRuntime | Метод запускает исполняющую среду. Исполняющая среда должна быть запущена перед любым ее использованием. |


CreateWorkflow

Описание и параметры

CBPWorkflow
public function CBPRuntime::CreateWorkflow(
 int workflowTemplateId,
 array documentId,
 array workflowParameters = array()
);

Метод создает новый экземпляр бизнес-процесса над указанным документом. Экземпляр бизнес-процесса создается на основании шаблона бизнес-процесса. Метод при необходимости автоматически запускает исполняющую среду.

Это низкоуровневый метод. Рекомендуется использовать метод CBPDocument::StartWorkflow.

Параметры метода

Параметр | Описание
workflowTemplateId | Код шаблона бизнес-процесса
documentId | Код документа, над которым запускается бизнес-процесс. Имеет вид массива array(код_модуля_документа, класс_документа, код_документа)
workflowParameters | Массив параметров запуска бизнес-процесса

Возвращаемое значение

Возвращается запущенный экземпляр бизнес-процесса.

Исключения

Код | Описание
workflowTemplateId | Не указан код шаблона бизнес-процесса
EmptyRootActivity | Не удалось создать экземпляр бизнес-процесса

Смотрите также

  • CDBResult

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

<?
$runtime = CBPRuntime::GetRuntime();

try
{
  $wi = $runtime->CreateWorkflow($workflowTemplateId, $documentId, $arParameters);
  $wi->Start();
}
catch (Exception $e)
{
  //
}
?>


GetRuntime

CBPRuntime
public function CBPRuntime::GetRuntime();

Статический метод возвращает экземпляр класса, представляющего текущую исполняющую среду.

Примечание: в рамках хита должен быть только один экземпляр класса исполняющей среды (шаблон Одиночка). Этот метод возвращает данный экземпляр.

Возвращаемое значение

Возвращается экземпляр класса, представляющего текущую исполняющую среду.

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

<?
$runtime = CBPRuntime::GetRuntime();
$runtime->StartRuntime();
$documentService = $runtime->GetService("DocumentService");

$arDocumentFields = $documentService->GetDocumentFields($documentType);
foreach ($arDocumentFields as $key => $value)
{
  print_r($value);
}
?>


GetService

Описание и параметры

CBPRuntimeService
public function GetService($name)(
 string name
);

Метод возвращает экземпляр сервиса исполняющей среды по его имени.

Примечание: доступны следующие сервисы исполняющей среды.

Название | Класс | Описание
SchedulerService | CBPSchedulerService | Служит для установки агента, который выполнится через указанное время и отправит внешнее событие указанному бизнес-процессу
StateService | CBPStateService | Служит для работы с сохраненным в базе данных состоянием бизнес-процесса
TrackingService | CBPTrackingService | Служит для записи сообщений в лог
TaskService | CBPTaskService | Служит для работы с заданиями
HistoryService | CBPHistoryService | Служит для работы с историей изменения документа
DocumentService | CBPDocumentService | Служит для работы с документом

Параметры метода

Параметр | Описание
name | Название сервиса

Возвращаемое значение

Возвращается класс сервиса, наследованный от CBPRuntimeService.

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

<?
// Сохраним историю документа $documentId от имени пользователя $userId
$runtime = CBPRuntime::GetRuntime();

$historyService = $runtime->GetService("HistoryService");
$documentService = $runtime->GetService("DocumentService");

$historyIndex = $historyService->AddHistory(
    array(
        "DOCUMENT_ID" => $documentId,
        "NAME" => "New",
        "DOCUMENT" => null,
        "USER_ID" => $userId,
    )
);

$arDocument = $documentService->GetDocumentForHistory($documentId, $historyIndex);
if (is_array($arDocument))
{
    $historyService->UpdateHistory(
        $historyIndex,
        array(
            "NAME" => $arDocument["NAME"],
            "DOCUMENT" => $arDocument,
        )
    );
}
?>


GetWorkflow

Описание и параметры

CBPWorkflow
public function CBPRuntime::GetWorkflow(
 string workflowId
);

Метод возвращает экземпляр бизнес-процесса по его идентификатору.

Параметры метода

Параметр | Описание
workflowId | Идентификатор бизнес-процесса

Возвращаемое значение

Возвращается экземпляр класса CBPWorkflow, представляющий собой экземпляр существующего бизнес-процесса.

Исключения

Код | Описание
workflowId | Не указан код бизнес-процесса
Empty root activity | Не удалось восстановить экземпляр бизнес-процесса

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

<?

// Получим код документа, над которым запущен бизнес-процесс с указаным идентификатором
$runtime = CBPRuntime::GetRuntime();
try
{
  $workflow = $runtime->GetWorkflow($workflowId);
  $d = $workflow->GetDocumentId();
}
catch(Exception $e)
{
  //
}
?>


SendExternalEvent

void
public static function SendExternalEvent(
 string workflowId,
 string eventName,
 array arEventParameters = array()
);

Статический метод отправляет внешнее событие указанному бизнес-процессу.

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

Параметры метода

Параметр | Описание
workflowId | Идентификатор бизнес-процесса
eventName | Название события
arEventParameters | Параметры события

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

<?
CBPRuntime::SendExternalEvent($workflowId, $eventName, $arEventParameters);
?>


StartRuntime

public int
CBPRuntime::StartRuntime( void );

Метод запускает исполняющую среду. Исполняющая среда должна быть запущена перед любым ее использованием.

Примечание: некоторые методы автоматически запускают окружающую среду. При этом повторный запуск исполняющей среды безопасен.

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

<?
$runtime = CBPRuntime::GetRuntime();
$runtime->StartRuntime();
$documentService = $runtime->GetService("DocumentService");

$arDocumentFields = $documentService->GetDocumentFields($documentType);
foreach ($arDocumentFields as $key => $value)
  $arSelectFields[] = $key;
?>


CBPWorkflow

CBPWorkflow - класс экземпляра бизнес-процесса. Он управляет бизнес-процессом, умеет отправлять на запуск его действия, транслировать и обрабатывать события.

Для каждого бизнес-процесса существует свой собственный объект-оболочка. Получить объект-оболочку можно с помощью методов CreateWorkflow и GetWorkflow исполняющей среды:

$runtime = CBPRuntime::GetRuntime();
$wi = $runtime->CreateWorkflow($workflowTemplateId, $documentId, $arParameters);

В коде действия объект-оболочка для бизнес-процесса, в который входит это действие, доступна через переменную-член workflow:

$this->workflow->ExecuteActivity($activity);

Методы класса

Метод | Описание | С версии
Конструктор | Создает новый экземпляр класса. |
GetService | Возвращает сервис исполняющей среды по его имени. |
GetRuntime | Возвращает экземпляр исполняющей среды. |
GetInstanceId | Возвращает идентификатор бизнес-процесса. |
GetExecutionStatus | Возвращает статус выполнения бизнес-процесса. |
GetExecutionResult | Возвращает результат выполнения бизнес-процесса. |
GetDocumentId | Возвращает идентификатор документа, над которым запущен бизнес-процесс. |


GetDocumentId

array
public function GetDocumentId()

Метод возвращает идентификатор документа, над которым запущен бизнес-процесс.

Возвращаемое значение

Возвращается идентификатор документа, который представляет собой массив из трех элементов: array(код_модуля, класс_документа, код_документа).


GetExecutionResult

int
private function CBPWorkflow::GetExecutionResult();

Метод возвращает результат выполнения бизнес-процесса.

Возвращаемое значение

Возвращаемое значение соответствует константам класса CBPActivityExecutionResult. Возможные значения:

  • CBPActivityExecutionResult::None - результат выполнения бизнес-процесса не установлен,
  • CBPActivityExecutionResult::Succeeded - бизнес-процесс завершен успешно,
  • CBPActivityExecutionResult::Canceled - бизнес-процесс отменен,
  • CBPActivityExecutionResult::Faulted - бизнес-процесс остановлен по ошибке,
  • CBPActivityExecutionResult::Uninitialized - бизнес-процесс не инициализирован.

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

<?
$runtime = CBPWorkflow::GetRuntime();
try
{
   $workflow = $runtime->GetWorkflow($workflowId);
}
catch (Exception $e)
{
   //
}

$executionResult = $workflow->GetExecutionResult();
switch ($executionResult)
{
   case CBPActivityExecutionResult::None:
      echo "Нет";
      break;
   case CBPActivityExecutionResult::Succeeded:
      echo "Успешно";
      break;
   case CBPActivityExecutionResult::Canceled:
      echo "Отменено";
      break;
   case CBPActivityExecutionResult::Faulted:
      echo "Ошибка";
      break;
   case CBPActivityExecutionResult::Uninitialized:
      echo "Не инициализировано";
      break;
   default:
      echo "Не определено";
}
?>


GetExecutionStatus

int
private function CBPWorkflow::GetExecutionStatus();

Метод возвращает текущий статус выполнения бизнес-процесса.

Возвращаемое значение

Возвращаемое значение соответствует константам класса CBPActivityExecutionStatus. Возможные значения:

  • CBPActivityExecutionStatus::Initialized - бизнес-процесс создан,
  • CBPActivityExecutionStatus::Executing - бизнес-процесс выполняется,
  • CBPActivityExecutionStatus::Canceling - бизнес-процесс отменен,
  • CBPActivityExecutionStatus::Closed - бизнес-процесс завершен,
  • CBPActivityExecutionStatus::Faulting - бизнес-процесс остановлен по ошибке.


GetInstanceId

string
public function GetInstanceId();

Метод возвращает идентификатор бизнес-процесса.

Смотрите также

  • CBPActivity::GetWorkflowInstanceId


GetRuntime

CBPRuntime
public function CBPWorkflow::GetRuntime();

Метод возвращает экземпляр исполняющей среды, в которой запущен бизнес-процесс.

Возвращаемое значение

Возвращается объект типа CBPRuntime, представляющий собой экземпляр исполняющей среды, в которой запущен бизнес-процесс.

Смотрите также

  • CBPRuntime


GetService

Описание и параметры

CBPRuntimeService
public function GetService($name)(
 string name
);

Метод возвращает экземпляр сервиса исполняющей среды по его имени. Доступны следующие сервисы исполняющей среды.

Название | Класс | Описание
SchedulerService | CBPSchedulerService | Служит для установки агента, который выполнится через указанное время и отправит внешнее событие указанному бизнес-процессу
StateService | CBPStateService | Служит для работы с сохраненным в базе данных состоянием бизнес-процесса
TrackingService | CBPTrackingService | Служит для записи сообщений в лог
TaskService | CBPTaskService | Служит для работы с заданиями
HistoryService | CBPHistoryService | Служит для работы с историей изменения документа
DocumentService | CBPDocumentService | Служит для работы с документом

Параметры метода

Параметр | Описание
name | Название сервиса

Возвращаемое значение

Возвращается класс сервиса, наследованный от CBPRuntimeService.

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

<?
// Сохраним историю документа $documentId от имени пользователя $userId
$runtime = CBPRuntime::GetRuntime();

$historyService = $runtime->GetService("HistoryService");
$documentService = $runtime->GetService("DocumentService");

$historyIndex = $historyService->AddHistory(
    array(
        "DOCUMENT_ID" => $documentId,
        "NAME" => "New",
        "DOCUMENT" => null,
        "USER_ID" => $userId,
    )
);

$arDocument = $documentService->GetDocumentForHistory($documentId, $historyIndex);
if (is_array($arDocument))
{
    $historyService->UpdateHistory(
        $historyIndex,
        array(
            "NAME" => $arDocument["NAME"],
            "DOCUMENT" => $arDocument,
        )
    );
}
?>


Конструктор

public function CBPWorkflow::__construct(
 string instanceId,
 CBPRuntime runtime
);

Конструктор создает новый экземпляр класса CBPWorkflow.

Параметры метода

Параметр | Описание
instanceId | Идентификатор бизнес-процесса
runtime | Исполняющая среда

Смотрите также

  • CBPRuntime


Сервисы

Сервис исполняющей среды — это класс, экземпляр которого создается при запуске исполняющей среды. Запущенный экземпляр предоставляет действиям бизнес-процесса какой-либо функционал. Например, сервис CBPDocumentService дает действиям возможность вызывать методы документа, а CBPHistoryService дает возможность сохранять документ в истории.

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

Набор стандартных сервисов включает в себя:

  • Сервис с именем SchedulerService, являющийся экземпляром класса CBPSchedulerService. Дает возможность подписываться на внешнее событие – истечение периода времени (работает с помощью функционала агентов).
  • Сервис с именем StateService, являющийся экземпляром класса CBPStateService. Служит для работы со статусами бизнес-процесса (документа).
  • Сервис с именем TrackingService, являющийся экземпляром класса CBPTrackingService. Дает возможность записывать информацию в лог. В лог записываются системные события времени выполнения бизнес-процесса. Например, какие действия и с каким результатом были выполнены. Кроме того в лог может записываться любая произвольная информация.
  • Сервис с именем TaskService, являющийся экземпляром класса CBPTaskService. Дает возможность работать с заданиями для пользователей.
  • Сервис с именем HistoryService, являющийся экземпляром класса CBPHistoryService. Дает возможность сохранять документ в историю и восстанавливать его из истории.
  • Сервис с именем DocumentService, являющийся экземпляром класса CBPDocumentService. Дает возможность вызывать методы документа.


Список событий

Событие | Вызывается | Метод | С версии
OnAddToHistory | перед добавлением записи в историю. | CBPHistoryService::AddHistory | 11.0.1
OnBeforeDeleteFileFromHistory | перед удалением файла из истории. | CBPAllHistoryService::DeleteHistory | 11.0.4
OnCreateWorkflow | при создании экземпляра бизнес-процесса. | CBPRuntime::CreateWorkflow | 11.0.4
OnTaskAdd | при создании задания бизнес-процесса. | CBPTaskService::Add | 11.0.5
OnTaskDelete | при удалении задания бизнес-процесса. | CBPAllTaskService::DeleteByWorkflow | 11.0.5
OnTaskMarkCompleted | после того, как производится удаление записи о задании пользователя. Если в БП несколько заданий (для разных пользователей) событие вызовется несколько раз. | CBPAllTaskService::MarkCompleted | 11.0.5
OnTaskUpdate | при обновлении задания бизнес-процесса. | CBPTaskService::Update | 11.0.5
OnTaskDelegate | при делегировании задачи. | CBPTaskService::delegateTask | 16.0.3


Для разработчиков

Перед использованием модуля необходимо проверить, установлен ли он, и подключить его при помощи конструкции:

<?
if (CModule::IncludeModule("blog"))
{
   //здесь можно использовать функции модуля
}
?>

Модуль включает в себя следующие Компоненты 2.0:
Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Блоги (комплексный компонент) | blog | Создает полноценный публичный интерфейс блога.
Сообщения блога | blog.blog | Выводит сообщения блога с возможностью их фильтрации по категории и дате.
Черновики сообщений блога | blog.blog.draft | Выводит неопубликованные сообщения текущего пользователя блога.
Редактирование блога | blog.blog.edit | Служит для изменения параметров и настройки блога.
Лучшие сообщения блога | blog.blog.favorite | Выводит список лучших сообщения блога на основе отметок владельца блога (при создании сообщений владелец блога указывает индекс сортировки сообщения).
Календарь | blog.calendar | Выводит календарь сообщений блога.
Теги блога | blog.category | Служит для редактирования тегов сообщений блога.
Комментируемые сообщения | blog.commented_posts | Выводит наиболее комментируемые сообщения блогов за заданный период.
Лента друзей | blog.friends | Выводит сообщения друзей пользователя блога.
Блоги группы | blog.group.blog | Выводит блоги группы.
Группы блогов | blog.groups | Выводит непустые группы блогов.
Информация о блоге | blog.info | Выводит информацию о блоге со списком тегов.
Меню блогов | blog.menu | Выводит меню блога.
Новые блоги | blog.new_blogs | Выводит новые блоги.
Новые комментарии | blog.new_comments | Выводит последние комментарии к сообщениям блогов.
Новые сообщения | blog.new_posts | Выводит последние сообщения блогов текущего сайта.
Последние сообщения всех блогов | blog.new_posts.list | Выводит последние сообщения блогов с постраничной навигацией.
Популярные блоги | blog.popular_blogs | Выводит популярные блоги.
Популярные сообщения | blog.popular_posts | Выводит наиболее просматриваемые сообщения блогов за заданный период.
Сообщение детально | blog.post | Выводит сообщение блога подробно.
Комментарии к сообщению | blog.post.comment | Выводит комментарии к сообщению блога с возможностью добавления нового комментария.
Редактирование сообщения | blog.post.edit | Служит для создания новых или редактирования существующих сообщения блога.
Trackback'и сообщения | blog.post.trackback | Выводит Trackback-адрес и Trackback'и к сообщению блога.
Получение Trackback'ов к сообщению | blog.post.trackback.get | Получает Trackback к сообщению блога.
RSS блога | blog.rss | Выводит RSS блогов в заданном формате.
RSS блогов по группам/сайтам | blog.rss.all | Выводит RSS блогов группы или сайта в заданном формате.
Ссылки на RSS блога | blog.rss.link | Выводит ссылки на RSS блога.
Поиск по блогам | blog.search | Выводит непустые группы блогов.
Профиль пользователя | blog.user | Позволяет просмотреть и изменить профиль пользователя.
Группы пользователей блога | blog.user.group | Служит для редактирования группы пользователей блога.
Настройка пользователей блога | blog.user.settings | Позволяет настраивать пользователей блога: добавлять их в друзья, удалять.
Настройка прав пользователя блога | blog.user.settings.edit | Позволяет настраивать привязку пользователя к группам блога.
Получение данных в формате metaWeblog | blog.metaweblog | Осуществляет импорт в формате MetaWeblog.
Неопубликованные сообщения блога | blog.blog.moderation | Выводит сообщения блога, требующие модерации.


Блоги в ядре D7

Список классов модуля Блоги в ядре D7

Класс, простраство имён | Описание
BlogUser | Класс для работы с пользователями блога.
Item | Классы для работы с записями блогов.


Константы модуля блогов

Ниже приведены все константы, которые используются в модуле блогов. В описании констант используется понятие "объект", которым может быть блог, сообщение, комментарий и т.д.

Константа | Значение | Описание | С версии
BLOG_PERMS_DENY | D | Доступ запрещён ко всем объектам блога. | Ранее 5.0.1
BLOG_PERMS_READ | I | Чтение всех объектов. | Ранее 5.0.1
BLOG_PERMS_PREMODERATE | K | Чтение всех объектов и запись своих скрытых объектов (премодерация). | Ранее 5.0.1
BLOG_PERMS_WRITE | P | Чтение всех объектов и запись своих объектов. | Ранее 5.0.1
BLOG_PERMS_MODERATE | T | Чтение всех объектов, запись своих объектов и публикация/скрытие всех объектов (модерация). | Ранее 5.0.1
BLOG_PERMS_FULL | W | Чтение всех объектов, запись всех объектов. | Ранее 5.0.1
BLOG_PERMS_POST | P | Сообщения | Ранее 5.0.1
BLOG_PERMS_COMMENT | C | Комментарии | Ранее 5.0.1
BLOG_PUBLISH_STATUS_DRAFT | D | Статус "Черновик". Видит только автор или пользователь с правами BLOG_PERMS_FULL. | Ранее 5.0.1
BLOG_PUBLISH_STATUS_READY | K | Статус "Премодерация". Видит только автор или пользователь с правами BLOG_PERMS_MODERATE или выше. | Ранее 5.0.1
BLOG_PUBLISH_STATUS_PUBLISH | P | Статус "Опубликовано". Видят все, у кого есть права BLOG_PERMS_READ. | Ранее 5.0.1
BLOG_BY_USER_ID | 1 | Используется при поиске по идентификатору пользователя сайта. | Ранее 5.0.1
BLOG_BY_BLOG_USER_ID | 2 | Используется при поиске по идентификатору пользователя блога. | Ранее 5.0.1
BLOG_ADD | 1 | Действие - добавление. | Ранее 5.0.1
BLOG_CHANGE | 2 | Действие - изменение. | Ранее 5.0.1
BLOG_RESET | 3 | Действие - сброс. | Ранее 5.0.1
BX_MOBILE_LOG |  | Проверяется blogTextParser::convert_blog_user | 11.5.5
SITE_CHARSET |  | Проверяется CBlog::BuildRSS | 5.0.1
SITE_SERVER_NAME |  | Проверяется CBlog::BuildRSS | 5.0.1


Структура таблиц модуля блогов

Блог

Поле | Описание
ID | Идентификатор блога.
NAME | Название блога.
DESCRIPTION | Описание блога.
DATE_CREATE | Дата создания блога.
DATE_UPDATE | Дата последнего изменения блога.
ACTIVE | Флаг активности блога.
OWNER_ID | Идентификатор пользователя - владельца блога.
URL | Адрес блога.
GROUP_ID | Идентификатор группы блога.
ENABLE_COMMENTS | Флаг - разрешены ли комментарии в блоге.
ENABLE_IMG_VERIF | Флаг - использовать ли CAPTCHA для анонимных комментариев.
ENABLE_RSS | Флаг - разрешен ли экспорт в RSS блога.
LAST_POST_ID | Идентификатор последнего сообщения в блоге.
LAST_POST_DATE | Дата последнего сообщения в блоге.
AUTO_GROUPS | Открытые группы.
EMAIL_NOTIFY | Флаг - отправлять ли письма на Email с новыми комментариями, сообщениями.

Сообщения блога

Поле | Описание
ID | Идентификатор сообщения.
TITLE | Заголовок сообщения.
BLOG_ID | Идентификатор блога сообщения.
AUTHOR_ID | Идентификатор автора сообщения - пользователя сайта.
CODE | Код сообщения.
DETAIL_TEXT | Текст сообщения.
DATE_CREATE | Дата создания сообщения.
DATE_PUBLISH | Дата публикации сообщения.
KEYWORDS | Ключевые слова сообщения.
PUBLISH_STATUS | Статус сообщения. Значения: P - комментарий виден, K - комментарий скрыт.
CATEGORY_ID | Идентификатор категории сообщения.
ATRIBUTE | Атрибуты сообщения. Устарело с 21.300.
ENABLE_TRACKBACK | Флаг - разрешены ли Trackback'и для этого сообщения.
ENABLE_COMMENTS | Флаг - разрешены ли комментарии для этого сообщения.
NUM_COMMENTS | Количество комментариев к сообщению.
NUM_TRACKBACKS | Количество Trackback'ов к сообщению.

Комментарии к сообщениям блога

Поле | Описание
ID | Идентификатор комментария.
BLOG_ID | Идентификатор блога.
POST_ID | Идентификатор сообщения.
PARENT_ID | Идентификатор родителя комментария.
AUTHOR_ID | Идентификатор пользователя - автора комментария.
ICON_ID | Идентификатор иконки комментария.
AUTHOR_NAME | Имя анонимного автора комментария.
AUTHOR_EMAIL | Email анонимного автора комментария.
AUTHOR_IP | IP автора комментария.
AUTHOR_IP1 | IP автора комментария.
DATE_CREATE | Дата создания комментария.
TITLE | Заголовок комментария.
POST_TEXT | Текст комментария.

Группы блогов

Поле | Описание
ID | Идентификатор группы.
NAME | Название группы.
SITE_ID | Идентификатор сайта группы.

Trackback'и к сообщениям блога

Поле | Описание
ID | Идентификатор Trackback'a.
TITLE | Заголовок Trackback'а.
URL | Адрес Trackback'а.
PREVIEW_TEXT | Текст Trackback'а.
BLOG_NAME | Название блога.
BLOG_ID | Идентификатор блога.
POST_DATE | Дата создания сообщения.
POST_ID | Идентификатор сообщения.

Пользователи блога

Поле | Описание
ID | Идентификатор пользователя блога.
USER_ID | Идентификатор пользователя сайта.
ALIAS | Псевдоним пользователя блога.
DESCRIPTION | Описание пользователя блога.
AVATAR | Аватар пользователя блога.
INTERESTS | Интересы пользователя блога.
LAST_VISIT | Дата последнего посещения.
DATE_REG | Дата регистрации пользователя блога.
ALLOW_POST | Флаг. Определяет, разрешено ли пользователю создавать сообщения в блогах.

Группы пользователей блога

Поле | Описание
ID | Идентификатор группы пользователей блога.
NAME | Название группы пользователей блога.
BLOG_ID | Идентификатор блога группы пользователей.


Классы

Следующие PHP классы используются в модуле блогов.

Классы

Класс | Описание | С версии
CBlog | Класс для работы с блогами. | 5.0.1
CBlogCandidate | Класс для работы с желающими стать друзьями. | 7.1.2
CBlogCategory | Класс для работы с категориями сообщений блога. | 6.5.1
CBlogComment | Класс для работы с комментариями к сообщениям. | 5.9.1
CBlogGroup | Класс для работы с группами блогов. | 7.1.2
CBlogImage | Класс для работы с изображениями, прикреплёнными к сообщениям в блоге. | 8.5.3
CBlogPost | Класс для работы с сообщениями блогов. | 5.0.2
CBlogSitePath | Класс для работы с путями к публичной части блогов. | 5.9.1
CBlogTrackBack | Класс для работы с TrackBack'ами к сообщениям. | 5.9.0
CBlogUser | Класс для работы с пользователями блогов. | 5.0.2
CBlogUserGroup | Класс для работы с группами пользователей блогов. | 7.1.2
blogTextParser | Класс для форматирования сообщений. | 5.0.2


Класс blogTextParser

blogTextParser - класс, предназначенный для форматирования сообщений и комментариев блогов. Осуществляет замену спецсимволов и заказных тегов на реальные HTML-теги, обработку ссылок, отображение смайлов и изображений.

Методы класса

Метод | Описание | С версии
convert | Функция форматирования сообщения. |


convert

Описание и параметры

string
convert(
 string text,
 bool   bPreview = true,
 array  arImages = array(),
 array  arAllow = array("HTML" =>   "N",
                        "ANCHOR" => "Y",
                        "BIU" =>    "Y",
                        "IMG" =>    "Y",
                        "QUOTE" =>  "Y",
                        "CODE" =>   "Y",
                        "FONT" =>   "Y",
                        "LIST" =>   "Y",
                        "SMILES" => "Y",
                        "NL2BR" =>  "N")
);

Метод форматирует текст text в соответствии с параметрами bPreview, arImages, arAllow. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
text | Исходный текст сообщения.
bPreview Флаг - обрезать ли текст для просмотра (по тегу [CUT]).
Необязательный. По умолчанию true - текст будет обрезан до тега [CUT].
arImages Массив вида array(array(IMAGE_ID, FILE_ID)[, ...]).
  • IMAGE_ID - идентификaтор изображения в сообщении;
  • FILE_ID - идентификатор файла этого изображения.
Необязательный. По умолчания теги изображений не будут заменяться.
arAllow Массив параметров форматирования сообщения. Необязательный параметр. Допустимы следующие параметры:
  • HTML - в тексте могут содержаться любые HTML теги
  • ANCHOR - разрешен тег <a>;
  • BIU - разрешены теги <b>, <i>, <u>;
  • IMG - разрешен тег <img>;
  • QUOTE - разрешен тег цитирования <quote>;
  • CODE - разрешен тег показа кода <code>;
  • FONT - разрешен тег <font>;
  • LIST - разрешены теги <ul>, <li>;
  • SMILES - показ смайликов в виде картинок;
  • NL2BR - заменять переводы каретки на тег <br> при разрешении принимать любые HTML теги;
  • VIDEO;
  • TABLE;
  • CUT_ANCHOR;
    • SHORT_ANCHOR.
Параметры могут принимать значения Y и N.
type | Необязательный параметр. Значение по умолчанию - "html". Удален с версии 10.0.0 | 9.0.0
arParams | Необязательный параметр. | 12.0.0

Возвращаемое значение

Метод возвращает отформатированное сообщение.

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

<?
$arPost = CBlogPost::GetByID(3);
$p = new blogTextParser();

$res = CBlogImage::GetList(array("ID"=>"ASC"),
                           array("POST_ID"=>$arPost['ID'],
                           "BLOG_ID"=>$arPost['BLOG_ID']));
while ($arImage = $res->Fetch())
    $arImages[$arImage['ID']] = $arImage['FILE_ID'];

$text = $p->convert($arPost["DETAIL_TEXT"], false, $arImages);
?>


Класс CBlog

CBlog - класс для работы с блогами.

Метод | Описание | С версии
Add | Добавляет новый блог. | 5.0.2
BuildRSS | Возвращает RSS сообщений блога. |
CanUserCreateBlog | Проверяет - может ли пользователь создать блог. |
CanUserManageBlog | Проверяет - может ли пользователь управлять блогом. |
Delete | Удаляет блог. |
GetBlogUserCommentPerms | Возвращает доступ к комментариям. |
GetBlogUserPostPerms | Возвращает доступ к сообщениям. |
GetByID | Возвращает блог по его идентификатору. |
GetByOwnerID | Возвращает блог по идентификатору его владельца. |
GetList | Возвращает список блогов по фильтру. | 5.0.2
IsBlogOwner | Проверяет является ли пользователь владельцем блога. |
IsFriend | Проверяет является ли пользователь другом блога. | 5.0.2
PreparePath | Возвращает путь к блогу. |
SetBlogPerms | Устанавливает уровень доступа к сообщениям и комментариям блога. |
Update | Изменяет блог. | 5.0.2


Add

Блоги>Классы>CBlog>Add (5.0.2)

CBlog::Add

Описание и параметры

int
CBlog::Add(
 array arFields
);

Метод добавляет новый блог. Метод нестатический.

Параметры метода

Параметр | Описание
arFields | Массив вида array("поле"=>"значение"[, ...]), содержащий значения полей блога. Также можно задать уровень доступа на сообщения и комментарии. Для этого необходимо задать массив вида array("PERMS_POST" => array("userGroupID" => "Permission"[, ...]), "PERMS_COMMENT" => array("userGroupID" => "Permission"[, ...])), где userGroupID - группа пользователей блога, Permission - уровень доступа.

Возвращаемое значение

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

Смотрите также

  • CBlog::Update
  • Поля блога
  • Уровни доступа

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

<?
$arFields = array(
    "NAME" => 'Блог администратора сайта',
    "DESCRIPTION" => 'В блоге описаны все изменения, происходящие на сайте',
    "GROUP_ID" => '1',
    "ENABLE_IMG_VERIF" => 'Y',
    "EMAIL_NOTIFY" => 'Y',
    "ENABLE_RSS" => "Y",
    "URL" => "admin-blog",
    "ACTIVE" => "Y",
    "OWNER_ID" => $USER->GetID()
);

$newID = CBlog::Add($arFields);
if(IntVal($newID)>0)
{
    echo "Новый блог [".$newID."] создан.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


BuildRSS

Блоги>Классы>CBlog>BuildRSS (5.0.1)

CBlog::BuildRSS

Описание и параметры

array
CBlog::BuildRSS(
 int    ID,
 string type = "RSS .92",
 int    numPosts = 10,
);

Метод возвращает сгенерированный RSS в формате type блога ID. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор блога. |
type | Формат возвращаемого RSS. Может принимать значения: RSS .92 RSS 2.0 ATOM .03 Необязательный. По умолчанию RSS генерируется в формате RSS .92. |
numPosts | Количество сообщений для экспорта. Необязательный. По умолчанию возвращется 10 последних сообщений. |
blogTemplate | Необязательный параметр. Значение по умолчанию - "". | 5.9.0
postTemplate | Необязательный параметр. Значение по умолчанию - "". | 5.9.0
userTemplate | Необязательный параметр. Значение по умолчанию - "". | 5.9.0
bSoNet | Необязательный параметр. Значение по умолчанию - false. | 7.1.1
arParams | Необязательный параметр. | 10.0.0

Возвращаемое значение

Возвращается сгенерированный RSS сообщений блога.

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

<?
echo CBlog::BuildRSS("2", "RSS 2.0", 25);
?>


CanUserCreateBlog

Блоги>Классы>CBlog>CanUserCreateBlog (5.0.1)

CBlog::CanUserCreateBlog

bool
CBlog::CanUserCreateBlog(
 int userID = 0
);

Метод проверяет, имеет ли право пользователь userID создать и вести блог. Метод нестатический.

Параметры метода

Параметр | Описание
userID | Идентификатор пользователя. Необязательный. По умолчанию проверка осуществляется для текущего пользователя.

Возвращаемое значение

Метод возвращает true в случае, если пользователь имеет право создать блог, в противном случае возвращает false.

Смотрите также

  • CBlog::CanUserManageBlog

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

<?
if(CBlog::CanUserCreateBlog($USER->GetID())
    echo "Вы можете создать и вести блог.";
else
    echo "Вы не можете создать и вести блог.";
?>


CanUserManageBlog

Блоги>Классы>CBlog>CanUserManageBlog (5.0.1)

CBlog::CanUserManageBlog

bool
CBlog::CanUserManageBlog(
 int ID,
 int userID
);

Метод проверяет, может ли пользователь userID управлять блогом ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор блога.
userID | Идентификатор пользователя. Необязательный параметр.

Возвращаемое значение

Метод возвращает true в случае, если пользователь может управлять блогом, в противном случае возвращает false.

Смотрите также

  • CBlog::CanUserCreateBlog

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

<?
if(CBlog::CanUserManageBlog(1, $USER->GetID())
    echo "Вы можете управлять блогом.";
else
    echo "Вы не можете управлять блогом.";
?>


Delete

Блоги>Классы>CBlog>Delete (5.0.1)

CBlog::Delete

bool
CBlog::Delete(
 int ID
);

Метод удаляет блог ID и все связанные с ним объекты. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор блога.

Возвращаемое значение

Метод возвращает true в случае успешного удаления блога и всех связанных с ним объектов, в противном случае возвращает false.

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

<?
$DB->StartTransaction();
if(!CBlog::Delete($ID))
{
    echo 'Ошибка удаления блога '.$ID;
    $DB->Rollback();
}
else
    $DB->Commit();
?>


GetBlogUserCommentPerms

Блоги>Классы>CBlog>GetBlogUserCommentPerms (5.0.1)

CBlog::GetBlogUserCommentPerms

string
CBlog::GetBlogUserCommentPerms(
 int ID,
 int userID
);

Метод возвращает право пользователя userID на комментарии блога ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор блога.
userID | Идентификатор пользователя.

Возвращаемое значение

Метод возвращает право пользователя на комментарии блога.

Смотрите также

  • Уровни доступа к комментариям
  • CBlog::GetBlogUserPostPerms()

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

<?
$perms = CBlog::GetBlogUserCommentPerms(1, $USER->GetID());
echo "Вы имеете следующее право на комментарии блога: ".$perms;
?>


GetBlogUserPostPerms

Блоги>Классы>CBlog>GetBlogUserPostPerms (5.0.1)

CBlog::GetBlogUserPostPerms

string
CBlog::GetBlogUserPostPerms(
 int ID,
 int userID
);

Метод возвращает право пользователя userID на сообщения блога ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор блога.
userID | Идентификатор пользователя.

Возвращаемое значение

Метод возвращает право пользователя на сообщения блога.

Смотрите также

  • Уровни доступа к сообщениям блога
  • CBlog::GetBlogUserCommentPerms()

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

<?
$perms = CBlog::GetBlogUserPostPerms(1, $USER->GetID());
echo "Вы имеете следующее право на сообщения блога: ".$perms;
?>


GetByID

Блоги>Классы>CBlog>GetByID (5.0.1)

CBlog::GetByID

Описание и параметры

array
CBlog::GetByID(
 int ID
);

Метод возвращает параметры блога с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор блога.

Возвращаемое значение

Возвращается массив с полями блога.

Примечание

Метод использует встроенное кеширование. Таким образом, запрос к базе данных при многократном использовании метода на странице будет производиться только один раз.

Смотрите также

  • Поля блога
  • CBlog::GetList()
  • CBlog::GetByOwnerID()

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

<?
$ID = 1;
$arBlog = CBlog::GetByID($ID);
if(is_array($arBlog))
    print_r($arBlog);
else
    echo "Блог не найден";
?>


GetByOwnerID

Блоги>Классы>CBlog>GetByOwnerID (5.0.1)

CBlog::GetByOwnerID

Описание и параметры

array
CBlog::GetByOwnerID(
 int userID,
 $arGroup = Array()
);

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

Параметры метода

Параметр | Описание | С версии
userID | Идентификатор пользователя. |
arGroup | ИД групп блогов (массив целых чисел). Необязательный параметр. | 8.0.5

Возвращаемое значение

Возвращается массив с полями блога.

Примечание

Метод использует встроенное кеширование. Таким образом, запрос к базе данных при многократном использовании метода на странице будет производиться только один раз.

Смотрите также

  • Поля блога
  • CBlog::GetList()

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

<?
$arBlog = CBlog::GetByOwnerID($ID);
if(is_array($arBlog))
    print_r($arBlog);
else
    echo "Блог не найден";
?>


GetList

Блоги>Классы>CBlog>GetList (5.0.2)

CBlog::GetList

Описание и параметры

CDBResult
CBlog::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array(),
 bool  arGroupBy = false,
 bool  arNavStartParams = false,
 array arSelectFields = Array()
);

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

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]) Поле для сортировки может принимать значения:
  • ID - идентификатор блога;
  • NAME - название блога;
  • DATE_CREATE - дата создания блога;
  • DATE_UPDATE - дата изменения блога;
  • ACTIVE - активность блога;
  • OWNER_ID - идентификатор владельца блога;
  • URL - адрес блога;
  • GROUP_ID - идентификатор группы блога;
  • GROUP_NAME - название группы блога;
  • GROUP_SITE_ID - идентификатор сайта группы блога;
  • LAST_POST_ID - идентификатор последнего сообщения в блоге;
  • LAST_POST_DATE - дата последнего сообщения в блоге;
  • OWNER_LOGIN - логин владельца блога;
  • OWNER_NAME - имя владельца блога;
  • OWNER_LAST_NAME - фамилия владельца блога;
  • OWNER_EMAIL - электронный адрес владельца блога;
  • BLOG_USER_ALIAS - псевдоним владельца блога;
Необязательный. По умолчанию фильтруется по убыванию идентификатора блога.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор блога;
  • NAME - название блога;
  • DATE_CREATE - дата создания блога;
  • DATE_UPDATE - дата изменения блога;
  • ACTIVE - активность блога;
  • OWNER_ID - идентификатор владельца блога;
  • URL - адрес блога;
  • GROUP_ID - идентификатор группы блога;
  • GROUP_NAME - название группы блога;
  • GROUP_SITE_ID - идентификатор сайта группы блога;
  • ENABLE_COMMENTS - включены ли комментарии в блоге;
  • ENABLE_IMG_VERIF - включена ли CAPTCHA для комментариев в блоге;
  • EMAIL_NOTIFY - включено ли уведомление по Email в блоге;
  • ENABLE_RSS - включен ли экспорт в RSS блога;
  • LAST_POST_ID - идентификатор последнего сообщения в блоге;
  • LAST_POST_DATE - дата последнего сообщения в блоге;
  • OWNER_LOGIN - логин владельца блога;
  • OWNER_NAME - имя владельца блога;
  • OWNER_LAST_NAME - фамилия владельца блога;
  • OWNER_EMAIL - электронный адрес владельца блога;
  • BLOG_USER_ALIAS - псевдоним владельца блога;
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Необязательный. По умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Необязательный. По умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Необязательный. По умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля блога

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

<?
// выберем все активные блоги, привязанные к текущему сайту.
// результат будет отсортирован сначала по дате создания, затем по названию блога
// выберутся только необходимые нам поля: Идентификатор блога, Название блога, Адрес блога,
// Идентификатор владельца блога и Дату создания блога
$SORT = Array("DATE_CREATE" => "DESC", "NAME" => "ASC");
$arFilter = Array(
        "ACTIVE" => "Y",
        "GROUP_SITE_ID" => SITE_ID
    );
$arSelectedFields = array("ID", "NAME", "DESCRIPTION", "URL", "OWNER_ID", "DATE_CREATE");

$dbBlogs = CBlog::GetList(
        $SORT,
        $arFilter,
        false,
        false,
        $arSelectedFields
    );

while ($arBlog = $dbBlogs->Fetch())
{
    print_r($arBlog);
}
?>


IsBlogOwner

Блоги>Классы>CBlog>IsBlogOwner (5.0.1)

CBlog::IsBlogOwner

bool
CBlog::IsBlogOwner(
 int ID,
 int userID
);

Метод проверяет, является ли пользователь userID владельцем блога ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор блога.
userID | Идентификатор пользователя.

Возвращаемое значение

Метод возвращает true в случае если пользователь является владельцем блога, в противном случае возвращает false.

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

<?
if(CBlog::IsBlogOwner(1, $USER->GetID()))
    echo "Вы являетесь владельцем блога.";
else
    echo "Вы не являетесь владельцем блога.";
?>


IsFriend

Блоги>Классы>CBlog>IsFriend (5.0.2)

CBlog::IsFriend

bool
CBlog::IsFriend(
 int ID,
 int userID
);

Метод проверяет, является ли пользователь userID другом блога ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор блога.
userID | Идентификатор пользователя.

Возвращаемое значение

Возвращается true если пользователь является другом блога, в противном случае возвращается false.

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

<?
$ID = 1;
if(CBlog::IsFriend($ID, $USER->GetID))
    echo "Вы являетесь другом блога с ID=".$ID;
else
    echo "Вы можете падать заявку на вступление в друзья блога с ID=".$ID;
?>


PreparePath

Блоги>Классы>CBlog>PreparePath (5.0.1)

CBlog::PreparePath

string
CBlog::PreparePath(
 string blogUrl,
 string siteID = false,
 bool   is404 = true,
);

Метод возвращает путь к блогу с адресом blogUrl относительно корня сайта siteID с учётом варианта публичной части (с обработчиком 404 ошибки или без). Метод нестатический.

Параметры метода

Параметр | Описание | С версии
blogUrl | Адрес блога. |
siteID | Сайт. Необязательный. По умолчанию false - берется текущий сайт. |
is404 | Используется ли обработчик 404 ошибки в публичной части. Необязательный. По умолчанию true - публичная часть блогов работает на базе обработчика 404 ошибки. | 5.0.2
userID | Необязательный параметр. Значение по умолчанию - 0. | 7.1.1
groupID | Необязательный параметр. Значение по умолчанию - 0. | 7.1.1

Возвращаемое значение

Возвращается путь к блогу относительно корня сайта.

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

<?
echo '<a href="'.CBlog::PreparePath("admin-blog").'">Блог администратора</a>';
?>


SetBlogPerms

Блоги>Классы>CBlog>SetBlogPerms (5.0.1)

CBlog::SetBlogPerms

Описание и параметры

void
CBlog::SetBlogPerms(
 int    ID,
 array  arPerms,
 string permsType = BLOG_PERMS_POST
);

Метод устанавливает уровень доступа к сообщениям и комментариям блога ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор блога.
arPerms | Массив вида: array("BlogUserGroupID" => "Permissions"[, ...]), где BlogUserGroupID - идентификатор группы пользователей текущего блога, Permissions - уровень доступа. Необязательный параметр.
permsType | Тип уровня доступа, который необходимо установить. Возможные значения: BLOG_PERMS_POST - на сообщения блога; BLOG_PERMS_COMMENT - на комментарии блога. Необязательный. По умолчанию равен BLOG_PERMS_POST - будет изменен уровень доступа к сообщениям блога.

Смотрите также

  • Уровни доступа к сообщениям блога
  • Уровни доступа к комментариям блога

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

<?
$ID = 1;
$arPerms = Array(
        "1" => BLOG_PERMS_READ,
        "2" => BLOG_PERMS_WRITE
    );
CBlog::SetBlogPerms($ID, $arPerms, BLOG_PERMS_COMMENT);
?>

Чтобы разрешить неавторизованным и авторизованным пользователям оставлять комментарии с премодерацией для данного блога, можно использовать следующий код:

CBlog::SetBlogPerms(
         $blogID,
         array(
            "1" => "K",
            "2" => "K"
         ),
         BLOG_PERMS_COMMENT
      );

Где где $blogID — ID блога; 1, 2 — предустановленные группы пользователей "все" и "авторизованные"; K - право на запись с премодерацией.


Update

Блоги>Классы>CBlog>Update (5.0.2)

CBlog::Update

Описание и параметры

int
CBlog::Update(
 int   ID
 array arFields
);

Метод изменяет параметры блога с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор изменяемого блога.
arFields | Массив вида array("поле"=>"значение"[, ...]), содержащий значения полей блога. Также можно задать уровень доступа на сообщения и комментарии. Для этого необходимо задать массив вида array("PERMS_POST" => array("userGroupID" => "Permission"[, ...]), "PERMS_COMMENT" => array("userGroupID" => "Permission"[, ...])), где userGroupID - группа пользователей блога, Permission - уровень доступа.

Возвращаемое значение

Метод возвращает идентификатор измененного блога, если изменение параметров прошло успешно. Для успешного изменения должно модифицироваться как минимум одно основное поле (например DATE_UPDATE). При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Смотрите также

  • Поля блога
  • CBlog::Add
  • Уровни доступа

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

<?
$ID = 1;
$arFields = array(
    "NAME" => 'Блог администратора сайта',
    "DESCRIPTION" => 'В блоге описаны все изменения, происходящие на сайте',
    "=DATE_UPDATE" => $DB->CurrentTimeFunction(),
    "GROUP_ID" => '1',
    "ENABLE_IMG_VERIF" => 'N',
    "EMAIL_NOTIFY" => 'Y',
    "ENABLE_RSS" => "N",
    "URL" => "admin-blog",
    "ACTIVE" => "Y",
    "OWNER_ID" => $USER->GetID()
);

$updateID = CBlog::Update($ID, $arFields);
if(IntVal($updateID)>0)
{
    echo "Блог [".$updateID."] изменен.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


Класс CBlogCandidate

CBlogCandidate - класс для работы со списком пользователей, желающих вступить в друзья блога.

Метод | Описание | С версии
Add | Добавляет пользователя в список желающих вступить в друзья блога. |
Delete | Удаляет желающего вступить в друзья блога. |
GetByID | Возвращает информацию о пользователе, желающем вступить в друзья блога, по его идентификатору. |
GetList | Возвращает список пользователей, желающих вступить в друзья блога. |


Add

Блоги>Классы>CBlogCandidate>Add (7.1.2)

CBlogCandidate::Add

Описание и параметры

int
CBlogCandidate::Add(
 array arFields
);

Метод добавляет пользователя в список желающих вступить в друзья блога. Метод нестатический.

Параметры метода

Параметр | Описание
arFields | Массив вида array("BLOG_ID"=>"значение", "USER_ID"=>"значение").

Возвращаемое значение

Метод возвращает идентификатор добавленной записи, если добавление прошло успешно. При возникновении ошибки метод вернет false.

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

<?
//добавим текущего пользователя в список желающих вступить в друзья блога
// с идентификатором 1
$arFields = array(
        "BLOG_ID" => 1,
        "USER_ID" => $USER->GetID()
    );

$newID = CBlogCandidate::Add($arFields);
if(IntVal($newID)>0)
{
    echo "Вы добавлены в список желающих вступить в друзья блога";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


Delete

Блоги>Классы>CBlogCandidate>Delete (7.1.2)

CBlogCandidate::Delete

bool
CBlogCandidate::Delete(
 int ID
);

Метод удаляет запись с идентификатором ID из списка желающих вступить в друзья блога. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор записи.

Возвращаемое значение

Метод возвращает true в случае успешного удаления записи, в противном случае возвращает false.

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

<?

if(!CBlogCandidate::Delete($ID))
{
    echo 'Ошибка удаления записи!';
}
else
{
    echo 'Пользователь удален из списка желающих вступить в сообщество.';
}
?>


GetByID

Блоги>Классы>CBlogCandidate>GetByID (7.1.2)

CBlogCandidate::GetByID

Описание и параметры

array
CBlogCandidate::GetByID(
 int ID
);

Метод возвращает параметры записи с идентификатором ID. Метод статический.

Параметры метода

Параметр | Описание
ID | Идентификатор записи.

Возвращаемое значение

Возвращается массив вида:
Array(
    "ID"=>"ID записи",
    "BLOG_ID"=>"ID блога",
    "USER_ID"=>"ID пользователя"
)

Примечание

Метод использует встроенное кэширование. Таким образом, запрос к базе данных при многократном использовании метода на странице будет производиться только один раз.

Смотрите также

  • CBlogCandidate::GetList()

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

<?
$ID = 1;
$arCandidate = CBlogCandidate::GetByID($ID);
if(is_array($arCandidate))
    print_r($arCandidate);
else
    echo "Запись не найдена";
?>


GetList

Блоги>Классы>CBlogCandidate>GetList (7.1.2)

CBlogCandidate::GetList

Описание и параметры

CDBResult
CBlogCandidate::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array(),
 bool  arGroupBy = false,
 bool  arNavStartParams = false,
 array arSelectFields = Array()
);

Возвращает список пользователей, желающих вступить в друзья блога, по фильтру arFilter, отсортированный в порядке arOrder. Метод нестатический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...])
Поле для сортировки может принимать значения:
  • ID - идентификатор записи;
  • BLOG_ID - идентификатор блога;
  • USER_ID - идентификатор пользователя;
  • BLOG_USER_ID - идентификатор пользователя блога;
  • BLOG_USER_ALIAS - псевдоним пользователя блога;
  • USER_LOGIN - логин пользователя;
  • USER_NAME - имя пользователя;
  • USER_LAST_NAME - фамилия пользователя;
  • USER_EMAIL - Email пользователя.
Необязательный. По умолчанию фильтруется по убыванию идентификатора записи.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]).
Фильтруемое поле может принимать значения:
  • ID - идентификатор записи;
  • BLOG_ID - идентификатор блога;
  • USER_ID - идентификатор пользователя;
  • BLOG_USER_ID - идентификатор пользователя блога;
  • BLOG_USER_ALIAS - псевдоним пользователя блога;
  • USER_LOGIN - логин пользователя;
  • USER_NAME - имя пользователя;
  • USER_LAST_NAME - фамилия пользователя;
  • USER_EMAIL - Email пользователя.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно
"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.
Необязательный. По умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Необязательный. По умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Необязательный. По умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult

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

<?
// выберем список желающих вступить в друзья блога
//c идентификатором 1
$dbUsers = CBlogCandidate::GetList(
    array("USER_LAST_NAME" => "ASC", "USER_NAME" => "ASC"),
    array("BLOG_ID" => 1),
    false,
    false,
    array("ID", "USER_ID", "BLOG_USER_ALIAS", "USER_LOGIN", "USER_NAME", "USER_LAST_NAME")
);
while ($arUsers = $dbUsers->Fetch())
{
    print_r($arUsers);
}
?>


Класс CBlogCategory

CBlogCategory - класс для работы с категориями сообщений блога.

Метод | Описание | С версии
Add | Добавляет новый категорию. | 7.1.2
Delete | Удаляет категорию. |
GetByID | Возвращает категорию по ее идентификатору. |
GetList | Возвращает список категорий по фильтру. | 7.1.2
Update | Изменяет категорию. | 7.1.2


Add

Блоги>Классы>CBlogCategory>Add (7.1.2)

CBlogCategory::Add

Описание и параметры

int
CBlogCategory::Add(
 array arFields
);

Метод добавляет новую категорию. Метод нестатический.

Параметры метода

Параметр | Описание
arFields | Массив вида array("BLOG_ID"=>"значение", "NAME"=>"значение").

Возвращаемое значение

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

Смотрите также

  • CBlogCategory::Update

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

<?
$arFields = array(
    "BLOG_ID" => 1,
    "NAME" => "Общая категория"
);

$newID = CBlogCategory::Add($arFields);
if(IntVal($newID)>0)
{
    echo "Новая категория [".$newID."] добавлена.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


Delete

Блоги>Классы>CBlogCategory>Delete (6.5.1)

CBlogCategory::Delete

Описание и параметры

bool
CBlogCategory::Delete(
 int ID
);

Метод удаляет категорию с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор категории.

Возвращаемое значение

Метод возвращает true в случае успешного удаления категории, в противном случае возвращает false.

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

<?
if(!CBlogCategory::Delete($ID))
{
    echo 'Ошибка удаления категории '.$ID;
}
else
    echo 'Категория удалена.';
?>

Удаление всех тэгов блога:

CModule::IncludeModule ("blog");
$dbCategory = CBlogCategory::GetList (Array ("ID" => "ASC"), Array ("BLOG_ID" => 5));
while ($arCategory = $dbCategory->Fetch())
{
   CBlogCategory::Delete ($arCategory["ID"]);
}


GetByID

Блоги>Классы>CBlogCategory>GetByID (6.5.1)

CBlogCategory::GetByID

Описание и параметры

array
CBlogCategory::GetByID(
 int ID
);

Метод возвращает параметры категории с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор категории.

Возвращаемое значение

Возвращается массив вида:
Array(
    "ID" => "ID категории",
    "BLOG_ID" => "ID блога",
    "NAME" => "Название категории"
)
Если категория не найдена метод вернет false.

Примечание

Метод использует встроенное кеширование. Таким образом, запрос к базе данных при многократном использовании метода на странице будет производиться только один раз.

Смотрите также

  • CBlogCategory::GetList()

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

<?
$ID = 1;
$arCategory = CBlogCategory::GetByID($ID);
if(is_array($arCategory))
    print_r($arCategory);
else
    echo "Категория не найдена.";
?>


GetList

Блоги>Классы>CBlogCategory>GetList (7.1.2)

CBlogCategory::GetList

Описание и параметры

CDBResult
CBlogCategory::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array(),
 bool  arGroupBy = false,
 bool  arNavStartParams = false,
 array arSelectFields = Array()
);

Возвращает список категорий по фильтру arFilter, отсортированный в порядке arOrder. Метод нестатический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]) Поле для сортировки может принимать значения:
  • ID - идентификатор категории;
  • BLOG_ID - идентификатор блога;
  • NAME - название категории.
Необязательный. По умолчанию фильтруется по убыванию идентификатора категории.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор категории;
  • BLOG_ID - идентификатор блога;
  • NAME - название категории.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.
Необязательный. По умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Необязательный. По умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Необязательный. По умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult

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

<?
// выберем все категории блога с идентификатором 1
$arOrder = Array(
        "NAME" => "ASC",
        "ID" => "ASC"
    );
$arFilter = Array(
        "BLOG_ID"=>'1'
    );
$arSelectedFields = Array("ID", "BLOG_ID", "NAME");

$dbCategory = CBlogCategory::GetList($arOrder, $arFilter, false, false, $arSelectedFields);
while ($arCategory = $dbCategory->Fetch())
{
    print_r($arCategory);
}
?>


Update

Блоги>Классы>CBlogCategory>Update (7.1.2)

CBlogCategory::Update

Описание и параметры

int
CBlogCategory::Update(
 int   ID
 array arFields
);

Метод изменяет параметры категории с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор изменяемой категории.
arFields | Массив вида array("BLOG_ID"=>"ID блога", "NAME"=>"название категории").

Возвращаемое значение

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

Смотрите также

  • CBlogCategory::Add

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

<?
$ID = 1;
$arFields = array(
    "BLOG_ID" => 1,
    "NAME" => 'Личное'
);

$updateID = CBlogCategory::Update($ID, $arFields);
if(IntVal($updateID)>0)
{
    echo "Категория [".$updateID."] изменена.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


Класс CBlogComment

CBlogComment - класс для работы с комментариями к сообщениям блогов.

Метод | Описание | С версии
Add | Добавляет новый комментарий к сообщению. | 7.0.2
Delete | Удаляет комментарий к сообщению. |
GetByID | Возвращает комментарий к блогу по его идентификатору. |
GetList | Возвращает список комментариев по фильтру. | 7.0.2
Update | Изменяет комментарий к сообщению. | 7.0.2


Add

Блоги>Классы>CBlogComment>Add (7.0.2)

CBlogComment::Add

Описание и параметры

int
CBlogComment::Add(
 array arFields
);

Метод добавляет новый комментарий к сообщению. Метод нестатический.

Параметры метода

Параметр | Описание
arFields | Массив вида array("поле"=>"значение"[, ...]), содержащий значения полей комментария.

Возвращаемое значение

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

Смотрите также

  • CBlogComment::Update
  • Поля комментария к сообщению

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

<?
$UserIP = CBlogUser::GetUserIP();
$arFields = array(
    "TITLE" => 'Мое первое сообщение в блоге',
    "POST_TEXT" => 'Текст моего первого сообщения в блоге',
    "BLOG_ID" => 1,
    "POST_ID" => 2,
    "PARENT_ID" => 0, //комментарий привязан к сообщению
    "AUTHOR_ID" => $USER->GetID(), //добавляем неанонимный комментарий,
    //в противном случае необходимо задать AUTHOR_NAME, AUTHOR_EMAIL
    "DATE_CREATE" => ConvertTimeStamp(false, "FULL"),
    "AUTHOR_IP" => $UserIP[0],
    "AUTHOR_IP1" => $UserIP[1]
);

$newID = CBlogComment::Add($arFields);
if(IntVal($newID)>0)
{
    echo "Новый комментарий [".$newID."] добавлен.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


Delete

Блоги>Классы>CBlogComment>Delete (5.9.1)

CBlogComment::Delete

bool
CBlogComment::Delete(
 int ID
);

Метод удаляет комментарий с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор комментария.

Возвращаемое значение

Метод возвращает true в случае успешного удаления комментария, в противном случае возвращает false.

Примечание

При удалении комментария, у которого PARENT_ID не равен нулю, все его комментарии будут привязаны на уровень выше.

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

<?
$DB->StartTransaction();
if(!CBlogComment::Delete($ID))
{
    echo 'Ошибка удаления комментария '.$ID;
    $DB->Rollback();
}
else
    $DB->Commit();
?>


GetByID

Блоги>Классы>CBlogComment>GetByID (5.9.1)

CBlogComment::GetByID

Описание и параметры

array
CBlogComment::GetByID(
 int ID
);

Метод возвращает параметры комментария с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор комментария.

Возвращаемое значение

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

Примечание

Метод использует встроенное кэширование. Таким образом, запрос к базе данных при многократном использовании метода на странице будет производиться только один раз.

Смотрите также

  • CBlogComment::GetList()
  • Поля комментария к сообщению

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

<?
$ID = 1;
$arComment = CBlogComment::GetByID($ID);
if(is_array($arComment))
    print_r($arComment);
else
    echo "Комментарий не найден.";
?>


GetList

Блоги>Классы>CBlogComment>GetList (7.0.2)

CBlogComment::GetList

Описание и параметры

CDBResult CBlogComment::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array(),
 bool  arGroupBy = false,
 bool  arNavStartParams = false,
 array arSelectFields = Array()
);

Возвращает список комментариев по фильтру arFilter, отсортированный в порядке arOrder. Метод нестатический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]) Поле для сортировки может принимать значения:
  • ID - идентификатор комментария;
  • POST_ID - идентификатор сообщения;
  • BLOG_ID - идентификатор блога;
  • AUTHOR_ID - идентификатор автора комментария;
  • TITLE - заголовок комментария;
  • POST_TEXT - текст комментария;
  • DATE_CREATE - дата создания комментария;
  • PARENT_ID - идентификатор родителя комментария;
  • AUTHOR_NAME - имя автора анонимного комментария;
  • AUTHOR_EMAIL - Email автора анонимного комментария;
  • AUTHOR_IP - IP-адрес автора комментария;
  • AUTHOR_IP1 - IP-адрес автора комментария;
  • USER_LOGIN - логин автора неанонимного комментария;
  • USER_NAME - имя автора неанонимного комментария;
  • USER_LAST_NAME - фамилия автора неанонимного комментария;
  • USER_EMAIL - Email автора неанонимного комментария.
Необязательный. По умолчанию фильтруется по убыванию идентификатора комментария.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор комментария;
  • POST_ID - идентификатор сообщения;
  • BLOG_ID - идентификатор блога;
  • AUTHOR_ID - идентификатор автора комментария;
  • TITLE - заголовок комментария;
  • POST_TEXT - текст комментария;
  • DATE_CREATE - дата создания комментария;
  • PARENT_ID - идентификатор родителя комментария;
  • AUTHOR_NAME - имя автора анонимного комментария;
  • AUTHOR_EMAIL - Email автора анонимного комментария;
  • AUTHOR_IP - IP-адрес автора комментария;
  • AUTHOR_IP1 - IP-адрес автора комментария;
  • USER_LOGIN - логин автора неанонимного комментария;
  • USER_NAME - имя автора неанонимного комментария;
  • USER_LAST_NAME - фамилия автора неанонимного комментария;
  • USER_EMAIL - Email автора неанонимного комментария.
  • PUBLISH_STATUS - статус публикации сообщения;
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.
Необязательный. По умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Необязательный. По умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Необязательный. По умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля комментария к сообщению

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

<?
// выберем все комментарии к сообщению с идентификатором 1
$arOrder = Array(
        "ID" => "ASC",
        "DATE_CREATE" => "ASC"
    );
$arFilter = Array(
        "POST_ID"=>'1'
    );
$arSelectedFields = Array("ID", "BLOG_ID", "POST_ID", "PARENT_ID", "AUTHOR_ID", "AUTHOR_NAME", "AUTHOR_EMAIL", "AUTHOR_IP", "AUTHOR_IP1", "TITLE", "POST_TEXT", "DATE_CREATE");

$dbComment = CBlogComment::GetList($arOrder, $arFilter, false, false, $arSelectedFields);
while ($arComment = $dbComment->Fetch())
{
    print_r($arComment);
}
?>


Update

Блоги>Классы>CBlogComment>Update (7.0.2)

CBlogComment::Update

Описание и параметры

int
CBlogComment::Update(
 int   ID
 array arFields
);

Метод изменяет параметры комментария с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор изменяемого комментария к сообщению. |
arFields | Массив вида array("поле"=>"значение"[, ...]), содержащий значения полей комментария к сообщению. |
bSearchIndex | Необязательный параметр. Значение по умолчанию - "true". | 14.0.0

Возвращаемое значение

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

Смотрите также

  • CBlogComment::Add
  • Поля комментария к сообщению

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

<?
$ID = 1;
$arFields = array(
    "TITLE" => 'Мое первый измененный комментарий',
    "POST_TEXT" => 'Текст моего первого измененного комментария',
    "BLOG_ID" => 1,
    "POST_ID" => 2
);

$updateID = CBlogComment::Update($ID, $arFields);
if(IntVal($updateID)>0)
{
    echo "Комментарий [".$updateID."] изменен.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


Класс CBlogGroup

CBlogGroup - класс для работы с группами блогов.

Метод | Описание | С версии
Add | Добавляет новую группу. |
Delete | Удаляет группу. |
GetByID | Возвращает группу по ее идентификатору. |
GetList | Возвращает список групп по фильтру. |
Update | Изменяет группу. |


Add

Блоги>Классы>CBlogGroup>Add (7.1.2)

CBlogGroup::Add

Описание и параметры

int
CBlogGroup::Add(
 array arFields
);

Метод добавляет новую группу. Метод нестатический.

Параметры метода

Параметр | Описание
arFields | Массив вида array("SITE_ID"=>"значение", "NAME"=>"значение").

Возвращаемое значение

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

Смотрите также

  • CBlogGroup::Update

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

<?
$arFields = array(
    "SITE_ID" => "ru",
    "NAME" => "Общая группа"
);

$newID = CBlogGroup::Add($arFields);
if(IntVal($newID)>0)
{
    echo "Новая группа [".$newID."] добавлена.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


Delete

Блоги>Классы>CBlogGroup>Delete (7.1.2)

CBlogGroup::Delete

bool
CBlogGroup::Delete(
 int ID
);

Метод удаляет группу с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор группы.

Возвращаемое значение

Метод возвращает true в случае успешного удаления группы, в противном случае возвращает false.

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

<?
if(!CBlogGroup::Delete($ID))
{
    echo 'Ошибка удаления группы '.$ID;
}
else
    echo 'Группа удалена.';
?>


GetByID

Блоги>Классы>CBlogGroup>GetByID (7.1.2)

CBlogGroup::GetByID

Описание и параметры

array
CBlogGroup::GetByID(
 int ID
);

Метод возвращает параметры группы с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор группы.

Возвращаемое значение

Возвращается массив вида:
Array(
    "ID" => "ID группы",
    "SITE_ID" => "ID сайта",
    "NAME" => "Название группы"
)
Если группа не найдена метод вернет false.

Примечание

Метод использует встроенное кеширование. Таким образом, запрос к базе данных при многократном использовании метода на странице будет производиться только один раз.

Смотрите также

  • CBlogGroup::GetList()

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

<?
$ID = 1;
$arGroup = CBlogGroup::GetByID($ID);
if(is_array($arGroup))
    print_r($arGroup);
else
    echo "Группа не найдена.";
?>


GetList

Блоги>Классы>CBlogGroup>GetList (7.1.2)

CBlogGroup::GetList

Описание и параметры

CDBResult
CBlogGroup::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array(),
 bool  arGroupBy = false,
 bool  arNavStartParams = false,
 array arSelectFields = Array()
);

Возвращает список групп по фильтру arFilter, отсортированный в порядке arOrder. Метод нестатический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]) Поле для сортировки может принимать значения:
  • ID - идентификатор категории;
  • SITE_ID - идентификатор сайта;
  • NAME - название категории.
Необязательный. По умолчанию фильтруется по убыванию идентификатора категории.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор категории;
  • SITE_ID - идентификатор сайта;
  • NAME - название категории.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.
Необязательный. По умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Необязательный. По умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Необязательный. По умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult

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

<?
// выберем все группы сайта с идентификатором "ru"
$arOrder = Array(
        "NAME" => "ASC",
        "ID" => "ASC"
    );
$arFilter = Array(
        "SITE_ID"=>'ru'
    );
$arSelectedFields = Array("ID", "SITE_ID", "NAME");

$dbGroup = CBlogGroup::GetList($arOrder, $arFilter, false, false, $arSelectedFields);
while ($arGroup = $dbGroup->Fetch())
{
    print_r($arGroup);
}
?>


Update

Блоги>Классы>CBlogGroup>Update (7.1.2)

CBlogGroup::Update

Описание и параметры

int
CBlogGroup::Update(
 int   ID
 array arFields
);

Метод изменяет параметры группы с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор изменяемой группы.
arFields | Массив вида array("SITE_ID"=>"ID сайта", "NAME"=>"название категории").

Возвращаемое значение

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

Смотрите также

  • CBlogGroup::Add

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

<?
$ID = 1;
$arFields = array(
    "SITE_ID" => "ru",
    "NAME" => "Веселые блоги"
);

$updateID = CBlogGroup::Update($ID, $arFields);
if(IntVal($updateID)>0)
{
    echo "Группа [".$updateID."] изменена.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


Класс CBlogImage

CBlogImage - Класс для работы с изображениями, прикреплёнными к сообщениям в блоге.

Метод | Описание | С версии
Add | Добавляет новое изображение к сообщению. |
Update | Изменяет изображение. |
Delete | Удаляет изображение. |
GetList | Возвращает список изображений по фильтру. |
GetByID | Возвращает одно изображение по его идентификатору. |
CheckFields | Проверяет корректность параметров для выполнения различных операций (ADD, UPDATE, DELETE). |
ImageFixSize | Проверяет изображение на соответствие заданным максимальным размерам. В случае превышения размеров - уменьшает изображение до нужных размеров. |
AddImageResizeHandler | Регистрирует обработчика события main.file.input.upload модуля main. | 12.0.0
ImageResizeHandler | Обработчик события main.file.input.upload модуля main. | 12.0.0


Add

Блоги>Классы>CBlogImage>Add

CBlogImage::Add

Описание и параметры

int
CBlogImage::Add(
 array arFields
);

Метод добавляет новое изображение к сообщению в блоге.

Параметры метода

Параметр Описание
arFields Массив вида array("поле"=>"значение").
  • ID - идентификатор изображения;
  • FILE_ID - идентификатор файла;
  • BLOG_ID - идентификатор блога;
  • POST_ID - идентификатор сообщения блога;
  • USER_ID - идентификатор пользователя;
  • TIMESTAMP_X - время создания сообщения;
  • TITLE - заголовок изображения;
  • IMAGE_SIZE - размер изображения в байтах;
  • IS_COMMENT - флаг, прикреплено ли изображение к комментарию;
  • COMMENT_ID - идентификатор комментария, к которому прикреплено изображение.

Возвращаемое значение

Метод возвращает идентификатор добавленной записи, если добавление прошло успешно. При возникновении ошибки метод вернет false.

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

    $fileID = 2268;
    $file = CFile::GetFileArray($fileID);

    $res = CBlogImage::Add(
        array(
            "TITLE" => "image title",
            "FILE_ID" => $fileID,
            "BLOG_ID" => 1,
            "POST_ID" => 2,
            "USER_ID" => $USER->GetID(),
            "IMAGE_SIZE" => $file["FILE_SIZE"],
            "TIMESTAMP_X" => $DB->GetNowFunction(),
        )
    );

    if($res)
        echo 'Success';


AddImageResizeHandler

Блоги>Классы>CBlogImage>AddImageResizeHandler

CBlogImage::AddImageResizeHandler

bool
CBlogImage::AddImageResizeHandler(
 array arParams
);

Метод регистрирует в качестве события main.file.input.upload метод CBlogImage::ImageResizeHandler. Полученные методом параметры будут переданы обработчику события при вызове. Метод статический.

Параметры метода

Параметр | Описание
arParams | Массив параметров, которые будут переданы в обработчик события.

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

CBlogImage::AddImageResizeHandler(array("width" => 400, "height" => 400));


CheckFields

Блоги>Классы>CBlogImage>CheckFields

CBlogImage::CheckFields

bool
CBlogImage::CheckFields(
 string Action
 array arFields
);

Метод проверяет возможность выполнения различных операций (ADD, UPDATE, DELETE) для указанных полей. Метод встроен в операции Add, Update и Delete, но может быть использован отдельно. Метод статический.

Параметры метода

Параметр | Описание
Action | Текстовая строка с названием проверяемого метода
arFields | Массив полей, которые будут использоваться в проверяемом методе.

Возвращаемое значение

Возвращает true, если выполнение операции возможно, иначе false.

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

Проверка на возможность использование метода Add и вывод сообщения об ошибке в случае неудачи:

if (!CBlogImage::CheckFields("ADD", $arFields))
{
    echo 'Невозможно добавить запись';
}


Delete

Блоги>Классы>CBlogImage>Delete

CBlogImage::Delete

bool
CBlogImage::Delete(
 int ID
);

Метод удаляет изображение с идентификатором ID. Метод статический.

Параметры метода

Параметр | Описание
ID | Идентификатор изображения.

Возвращаемое значение

Метод возвращает true в случае успешного удаления изображения, в противном случае возвращает false.

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

Удаление изображения с идентификатором 13:

$res = CBlogImage::Delete(13);
if($res)
    echo 'Success';


GetByID

Блоги>Классы>CBlogImage>GetByID

CBlogImage::GetByID

array
CBlogImage::GetByID(
 int ID
);

Метод возвращает параметры изображения с идентификатором ID. Метод статический.

Параметры метода

Параметр | Описание
ID | Идентификатор изображения.

Возвращаемое значение

Возвращается массив с полями изображения.

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

Получение информации об изображении с идентификатором 16

$res = CBlogImage::GetByID(16);

if($res)
    print_r($res);


GetList

Блоги>Классы>CBlogImage>GetList

CBlogImage::GetList

Описание и параметры

CDBResult
CBlogImage::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array(),
 bool  arGroupBy = false,
 bool  arNavStartParams = false,
 array arSelectFields = Array()
);

Возвращает список изображений по фильтру arFilter, отсортированный в порядке arOrder. Метод статический.

Параметры функции

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]) Поле для сортировки может принимать значения:
  • ID - идентификатор изображения;
  • FILE_ID - идентификатор файла;
  • BLOG_ID - идентификатор блога;
  • POST_ID - идентификатор сообщения блога;
  • USER_ID - идентификатор пользователя;
  • TIMESTAMP_X - время создания сообщения;
  • TITLE - заголовок изображения;
  • IMAGE_SIZE - размер изображения в байтах;
  • IS_COMMENT - флаг, прикреплено ли изображение к комментарию;
  • COMMENT_ID - идентификатор комментария, к которому прикреплено изображение.
Необязательный параметр. По умолчанию фильтруется по убыванию идентификатора изображения.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор изображения;
  • FILE_ID - идентификатор файла;
  • BLOG_ID - идентификатор блога;
  • POST_ID - идентификатор сообщения блога;
  • USER_ID - идентификатор пользователя;
  • TIMESTAMP_X - время создания сообщения;
  • TITLE - заголовок изображения;
  • IMAGE_SIZE - размер изображения в байтах;
  • IS_COMMENT - флаг, прикреплено ли изображение к комментарию;
  • COMMENT_ID - идентификатор комментария, к которому прикреплено изображение.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный параметр. По умолчанию записи не фильтруются.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Необязательный. По умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Необязательный. По умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Необязательный. По умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult

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

Для изображений, прикреплённых к комментариям в сообщение с идентификатором 2, вывод идентификатора изображений и идентификатора файла:

$res = CBlogImage::GetList(
    $arOrder = Array("POST_ID" => "DESC"),
    $arFilter = Array("POST_ID" => "2", "IS_COMMENT" => "Y"),
    $arGroupBy = false,
    $arNavStartParams = false,
    $arSelectFields = array("ID", "FILE_ID",)
);

while($image = $res->Fetch())
    print_r($image);


ImageFixSize

Блоги>Классы>CBlogImage>ImageFixSize

CBlogImage::ImageFixSize

bool
CBlogImage::ImageFixSize(
 array aFile
);

Проверяет изображение на соответствие заданным максимальным размерам. В случае превышения размеров - уменьшает изображение до нужных размеров. Метод статический.

Параметры метода

Параметр | Описание
aFile | Массив с параметрами файла изображения.

Возвращаемое значение

В случае успешного уменьшения возвращает true, если передаваемое изображение меньше или равно заданным параметрам - возвращает true, в остальных случаях возвращает false.


ImageResizeHandler

Блоги>Классы>CBlogImage>ImageResizeHandler

CBlogImage::ImageResizeHandler

bool
CBlogImage: ImageResizeHandler(
 array arCustomFile
 array arParams
);

Обработчик события main.file.input.upload. Регистрируется с помощью метода CBlogImage::AddImageResizeHandler. Метод вызывается только при срабатывание события, применять его отдельно бессмысленно.

Параметры метода

Параметр | Описание
arCustomFile | Массив с параметрами загруженного файла. Передается из события main.file.input.upload
arParams | Массив полей, переденный при регистрации обработчика.


Update

Блоги>Классы>CBlogImage>Update

CBlogImage::Update

Описание и параметры

int
CBlogImage::Update(
 int   ID
 array arFields
);

Метод изменяет изображение в блоге. Метод статический.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор изменяемого изображения.
arFields Массив вида array("поле"=>"значение").
  • ID - идентификатор изображения;
  • FILE_ID - идентификатор файла;
  • BLOG_ID - идентификатор блога;
  • POST_ID - идентификатор сообщения блога;
  • USER_ID - идентификатор пользователя;
  • TIMESTAMP_X - время создания сообщения;
  • TITLE - заголовок изображения;
  • IMAGE_SIZE - размер изображения в байтах;
  • IS_COMMENT - флаг, прикреплено ли изображение к комментарию;
  • COMMENT_ID - идентификатор комментария, к которому прикреплено изображение.

Возвращаемое значение

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

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

Изменяем TITLE для изображения с идентификатором 14:

$res = CBlogImage::Update(
        14,
        array("TITLE" => "new image title")
    );

if($res)
    echo 'Success';


Класс CBlogPost

CBlogPost - класс для работы с сообщениями блогов.

Метод | Описание | С версии
Add | Добавляет новое сообщение в блог. | 5.0.6
CanUserDeletePost | Проверяет - может ли пользователь удалить сообщение. |
CanUserEditPost | Проверяет - может ли пользователь изменять сообщение. |
Delete | Удаляет сообщение блога. |
GetBlogUserCommentPerms | Возвращает доступ к комментариям сообщения. |
GetBlogUserPostPerms | Возвращает доступ к сообщению. |
GetByID | Возвращает сообщение блога по его идентификатору. | 5.0.6
GetList | Возвращает список сообщений по фильтру. | 5.0.6
GetListCalendar | Возвращает список дней в которые были сообщения для календаря. | 5.0.6
PreparePath | Возвращает путь к сообщению. |
SetPostPerms | Устанавливает уровень доступа на сообщение и комментарии. |
Update | Изменяет сообщение. | 5.0.6


Add

Блоги>Классы>CBlogPost>Add (5.0.6)

CBlogPost::Add

Описание и параметры

int
CBlogPost::Add(
 array arFields
);

Метод добавляет новое сообщение в блог. Метод статический.

Параметры метода

Параметр Описание
arFields Массив вида array("поле"=>"значение"[, ...]), содержащий значения полей сообщения блога.

Также, можно задать отдельный уровень доступа на сообщение и комментарии. Для этого необходимо задать массив вида
array("PERMS_POST" =>    array("userGroupID" => "Permission"[, ...]),
      "PERMS_COMMENT" => array("userGroupID" => "Permission"[, ...]))
где userGroupID - группа пользователей блога, Permission - уровень доступа.

Возвращаемое значение

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

Смотрите также

  • CBlogPost::Update
  • Поля сообщения
  • Уровни доступа

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

<?
$CATEGORY_ID = CBlogCategory::Add(array("BLOG_ID" => 1,"NAME" => 'Категория 1'));
$arFields = array(
    "TITLE" => 'Мое первое сообщение в блоге',
    "DETAIL_TEXT" => 'Текст моего первого сообщения в блоге',
    "BLOG_ID" => 1,
    "AUTHOR_ID" => $USER->GetID,
    "=DATE_CREATE" => $DB->GetNowFunction(),
    "DATE_PUBLISH" => '15.08.2007 9:40',
    "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH,
    "ENABLE_TRACKBACK" => 'N',
    "ENABLE_COMMENTS" => 'Y',
    "CATEGORY_ID" => $CATEGORY_ID,
    "PERMS_P" => Array("1" => BLOG_PERMS_READ, "2" => BLOG_PERMS_READ),
    "PERMS_C" => Array("1" => BLOG_PERMS_READ, "2" => BLOG_PERMS_WRITE)
);
$newID = CBlogPost::Add($arFields);
if(IntVal($newID)>0)
{
    foreach($CATEGORY_ID as $v)
        CBlogPostCategory::Add(Array("BLOG_ID" => 1, "POST_ID" => $newID, "CATEGORY_ID"=>$v));
    echo "Новое сообщение [".$newID."] добавлено.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


CanUserDeletePost

Блоги>Классы>CBlogPost>CanUserDeletePost (5.0.2)

CBlogPost::CanUserDeletePost

Описание и параметры

bool
CBlogPost::CanUserDeletePost(
 int ID,
 int userID
);

Метод проверяет может ли пользователь userID удалить сообщение ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор сообщения.
userID | Идентификатор пользователя.

Возвращаемое значение

Метод возвращает true в случае если пользователь может удалить сообщение, в противном случае возвращает false.

Смотрите также

  • CBlogPost::CanUserEditPost

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

<?
if(CBlogPost::CanUserDeletePost(1, $USER->GetID()))
    echo "Вы можете удалить сообщение.";
else
    echo "Вы не можете удалить сообщение.";
?>


CanUserEditPost

Блоги>Классы>CBlogPost>CanUserEditPost (5.0.2)

CBlogPost::CanUserEditPost

Описание и параметры

bool
CBlogPost::CanUserEditPost(
 int ID,
 int userID
);

Метод проверяет может ли пользователь userID изменить сообщение ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор сообщения.
userID | Идентификатор пользователя.

Возвращаемое значение

Метод возвращает true в случае если пользователь может изменить сообщение, в противном случае возвращает false.

Смотрите также

  • CBlogPost::CanUserDeletePost

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

<?
if(CBlogPost::CanUserEditPost(1, $USER->GetID()))
    echo "Вы можете изменить сообщение.";
else
    echo "Вы не можете изменить сообщение.";
?>


Delete

Блоги>Классы>CBlogPost>Delete (5.0.2)

CBlogPost::Delete

bool
CBlogPost::Delete(
 int ID
);

Метод удаляет сообщение ID и все объекты, с ним связанные. Метод статический.

Параметры метода

Параметр | Описание
ID | Идентификатор сообщения.

Возвращаемое значение

Метод возвращает true в случае успешного удаления сообщения, в противном случае возвращает false.

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

<?
$DB->StartTransaction();
if(!CBlogPost::Delete($ID))
{
    echo 'Ошибка удаления сообщения '.$ID;
    $DB->Rollback();
}
else
    $DB->Commit();
?>


GetBlogUserCommentPerms

Блоги>Классы>CBlogPost>GetBlogUserCommentPerms (5.0.2)

CBlogPost::GetBlogUserCommentPerms

Описание и параметры

string
CBlogPost::GetBlogUserCommentPerms(
 int ID,
 int userID
);

Метод возвращает право пользователя userID на комментарии к сообщению ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор сообщения.
userID | Идентификатор пользователя.

Возвращаемое значение

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

Смотрите также

  • Уровни доступа к комментариям
  • CBlogPost::GetBlogUserPostPerms()

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

<?
$perms = CBlogPost::GetBlogUserCommentPerms(1, $USER->GetID());
echo "Вы имеете следующее право на комментарии к сообщению: ".$perms;
?>


GetBlogUserPostPerms

Блоги>Классы>CBlogPost>GetBlogUserPostPerms (5.0.2)

CBlogPost::GetBlogUserPostPerms

Описание и параметры

string
CBlogPost::GetBlogUserPostPerms(
 int ID,
 int userID
);

Метод возвращает право пользователя userID на сообщение ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор сообщения.
userID | Идентификатор пользователя.

Возвращаемое значение

Метод возвращает право пользователя на сообщение.

Смотрите также

  • Уровни доступа к сообщениям
  • CBlogPost::GetBlogUserCommentPerms()

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

<?
$perms = CBlogPost::GetBlogUserPostPerms(1, $USER->GetID());
echo "Вы имеете следующее право на сообщение: ".$perms;
?>


GetByID

Блоги>Классы>CBlogPost>GetByID (5.0.6)

CBlogPost::GetByID

Описание и параметры

array
CBlogPost::GetByID(
 int ID
);

Метод возвращает параметры сообщения с идентификатором ID. Метод статический.

Параметры метода

Параметр | Описание
ID | Идентификатор сообщения.

Возвращаемое значение

Возвращается массив с полями сообщения.

Примечание

Метод использует встроенное кэширование. Таким образом, запрос к базе данных при многократном использовании метода на странице будет производиться только один раз.

Смотрите также

  • Поля блога
  • CBlogPost::GetList()

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

<?
$ID = 1;
$arPost = CBlogPost::GetByID($ID);
if(is_array($arPost))
    print_r($arPost);
else
    echo "Сообщение не найдено";
?>


GetList

Блоги>Классы>CBlogPost>GetList (5.0.6)

CBlogPost::GetList

Описание и параметры

CDBResult
CBlogPost::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array(),
 bool  arGroupBy = false,
 bool  arNavStartParams = false,
 array arSelectFields = Array()
);

Возвращает список сообщений по фильтру arFilter, отсортированный в порядке arOrder. Метод нестатический.

Примечание: фильтрация по ID категорий делается так: CATEGORY_ID_F. В результате ID категорий будут выведены через запятую.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]) Поле для сортировки может принимать значения:
  • ID - идентификатор сообщения;
  • TITLE - заголовок сообщения;
  • BLOG_ID - идентификатор блога;
  • AUTHOR_ID - идентификатор автора сообщения;
  • DETAIL_TEXT - текст сообщения;
  • DATE_CREATE - дата создания сообщения;
  • DATE_PUBLISH - дата публикации сообщения;
  • KEYWORDS - ключевые слова сообщения;
  • PUBLISH_STATUS - статус публикации сообщения;
  • ATRIBUTE - атрибуты сообщения;
  • ENABLE_TRACKBACK - разрешены ли trackback'и к сообщению;
  • ENABLE_COMMENTS - разрешены ли комментарии к сообщению;
  • NUM_COMMENTS - количество комментариев;
  • NUM_TRACKBACKS - количество trackback'ов;
  • AUTHOR_LOGIN - логин автора сообщения;
  • AUTHOR_NAME - имя автора сообщения;
  • AUTHOR_LAST_NAME - фамилия автора сообщения;
  • AUTHOR_EMAIL - Email автора сообщения;
  • VIEWS — сортировка по количеству просмотров.
Необязательный. По умолчанию фильтруется по убыванию идентификатора сообщения.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор сообщения;
  • TITLE - заголовок сообщения;
  • BLOG_ID - идентификатор блога;
  • BLOG_ACTIVE - [dw]признак активности блога[/dw][di]Стандартный GetList выбирает записи и из неактивных блогов. Чтобы выборка не включала в себя неактивные блоги нужно указать:
    $arFilter = Array ( "BLOG_ACTIVE" => "Y" );[/di];
  • AUTHOR_ID - идентификатор автора сообщения;
  • DETAIL_TEXT - текст сообщения;
  • DATE_CREATE - дата создания сообщения;
  • DATE_PUBLISH - дата публикации сообщения;
  • DATE_PUBLISH_DAY - день публикации сообщения;
  • DATE_PUBLISH_MONTH - месяц публикации сообщения;
  • DATE_PUBLISH_YEAR - год публикации сообщения;
  • KEYWORDS - ключевые слова сообщения;
  • PUBLISH_STATUS - статус публикации сообщения;
  • CATEGORY_ID_F - идентификатор категории сообщения;
  • ATRIBUTE - атрибуты сообщения;
  • ENABLE_TRACKBACK - разрешены ли trackback'и к сообщению;
  • ENABLE_COMMENTS - разрешены ли комментарии к сообщению;
  • NUM_COMMENTS - количество комментариев;
  • NUM_TRACKBACKS - количество trackback'ов;
  • AUTHOR_LOGIN - логин автора сообщения;
  • AUTHOR_NAME - имя автора сообщения;
  • AUTHOR_LAST_NAME - фамилия автора сообщения;
  • AUTHOR_EMAIL - Email автора сообщения;
  • VIEWS — сортировка по количеству просмотров.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Необязательный. По умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Необязательный. По умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Необязательный. По умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Примечание: в компонент blog.blog невозможно передать фильтрацию по опубликованности. Для этого необходимо скопировать стандартный компонент в своё пространство имён и вручную дописать проверку на опубликованность.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля сообщения

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

<?
// выберем все опубликованные сообщения всех блогов за апрель 2007 года
// у которых больше двух комментариев

$SORT = Array("DATE_PUBLISH" => "DESC", "NAME" => "ASC");
$arFilter = Array(
    "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH,
    "DATE_PUBLISH_MONTH" => '04',
    "DATE_PUBLISH_YEAR" => '2007',
    ">NUM_COMMENTS" => 2
    );

$dbPosts = CBlogPost::GetList(
        $SORT,
        $arFilter
    );

while ($arPost = $dbPosts->Fetch())
{
    print_r($arPost);
}
?>
// выборка всех сообщений блога с заголовком, включающим слово "фильм"

$arFilter =  Array ( "~TITLE" => "%фильм%" );


GetListCalendar

Блоги>Классы>CBlogPost>GetListCalendar (5.0.6)

CBlogPost::GetListCalendar

Описание и параметры

Array
CBlogPost::GetListCalendar(
 int blogID,
 int year = false,
 int month = false,
 int day = false
);

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

Параметры метода

Параметр | Описание
blogID | Идентификатор блога.
year | Год. Год за который необходимо найти дни, в которые были написаны сообщения. Принимает как значение года двухзначным числом, тогда это считается 20хх год, так и значения года четырехзначным числом. Необязательный. По умолчанию записи не фильтруются.
month | Месяц. Месяц за который необходимо найти дни, в которые были написаны сообщения. Для фильтрации по месяцу обязательно задать параметр year. Необязательный. По умолчанию записи не фильтруются.
day | День. Позваляет проверить были ли сообщения в этот день. Для фильтрации по дню обязательно задать параметры year и month. Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается массив вида:
Array(
 [0] => Array
        (
            [YEAR] => 2007
            [MONTH] => 07
            [DAY] => 17
            [DATE] => 17.07.2007
        )[,
 ...]
)

Смотрите также

  • CBlogPost::GetList()

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

<?
// выберем данные для календаря за апрель 2007 года для блога
// с идентификатором 1

$arDates = CBlogPost::GetListCalendar(
        1,
        '06',
        '4'
    );

print_r($arDates);
?>


PreparePath

Блоги>Классы>CBlogPost>PreparePath (5.0.2)

CBlogPost::PreparePath

Описание и параметры

string
CBlogPost::PreparePath(
 string blogUrl,
 int    postID = 0,
 string siteID = false,
 bool   is404 = true,
);

Метод возвращает путь к сообщению postID блога с адресом blogUrl относительно корня сайта siteID с учётом варианта публичной части (с обработчиком 404 ошибки или без). Метод нестатический.

Параметры метода

Параметр | Описание | С версии
blogUrl | Адрес блога. |
postID | Идентификатор сообщения. Необязательный. По умолчанию 0 - будет возвращен путь к блогу. |
siteID | Сайт. Необязательный. По умолчанию false - берется текущий сайт. |
is404 | Используется ли обработчик 404 ошибки в публичной части. Необязательный. По умолчанию true - публичная часть блогов работает на базе обработчика 404 ошибки. |
userID | Необязательный параметр. Значение по умолчанию - 0. | 7.1.1
groupID | Необязательный параметр. Значение по умолчанию - 0. | 7.1.1

Возвращаемое значение

Возвращается путь к сообщению блога относительно корня сайта.

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

<?
echo '<a href="'.CBlogPost::PreparePath("admin-blog", 1).'">Первое сообщение в блоге "Блог администратора"</a>';
?>


SetPostPerms

Блоги>Классы>CBlogPost>SetPostPerms (5.0.2)

CBlogPost::SetPostPerms

Описание и параметры

void
CBlogPost::SetPostPerms(
 int    ID,
 array  arPerms,
 string permsType = BLOG_PERMS_POST
);

Метод устанавливает уровень доступа к сообщению и комментариям сообщения ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор сообщения.
arPerms Массив вида: array("BlogUserGroupID" => "Permissions"[, ...]), где
BlogUserGroupID - идентификатор группы пользователей текущего блога,
Permissions - уровень доступа. Необязательный параметр.
permsType Тип уровня доступа, который необходимо установить. Возможные значения:
  • BLOG_PERMS_POST - на сообщение;
  • BLOG_PERMS_COMMENT - на комментарии к сообщению.
Необязательный. По умолчанию равен BLOG_PERMS_POST - будет изменен уровень доступа к сообщению.

Смотрите также

  • Уровни доступа к сообщениям блога
  • Уровни доступа к комментариям блога

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

<?
$ID = 1;
$arPerms = Array(
        "1" => BLOG_PERMS_READ,
        "2" => BLOG_PERMS_WRITE
    );
CBlogPost::SetPostPerms($ID, $arPerms, BLOG_PERMS_COMMENT);
?>


Update

Блоги>Классы>CBlogPost>Update (5.0.6)

CBlogPost::Update

Описание и параметры

int
CBlogPost::Update(
 int   ID
 array arFields
);

Метод изменяет параметры сообщения с идентификатором ID. Метод статический.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор изменяемого сообщения блога.
arFields Массив вида array("поле"=>"значение"[, ...]), содержащий значения полей соообщения блога.
Также можно задать отдельный уровень доступа на сообщение и комментарии. Для этого необходимо задать массив вида:
array("PERMS_POST" =>    array("userGroupID" => "Permission"[, ...]),
      "PERMS_COMMENT" => array("userGroupID" => "Permission"[, ...]))
где userGroupID - группа пользователей блога, Permission - уровень доступа.
bSearchIndex | Необязательный параметр. Значение по умолчанию - "true". | 14.0.0

Возвращаемое значение

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

Смотрите также

  • Поля сообщения
  • CBlogPost::Add

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

<?
$ID = 1;
$arFields = array(
    "TITLE" => 'Мое первое измененное сообщение в блоге',
    "DETAIL_TEXT" => 'Текст моего первого измененного сообщения в блоге',
    "BLOG_ID" => 1,
    "AUTHOR_ID" => $USER->GetID,
    "DATE_PUBLISH" => '25.08.2007 9:40',
    "PUBLISH_STATUS" => BLOG_PUBLISH_STATUS_PUBLISH,
    "ENABLE_TRACKBACK" => 'N',
    "ENABLE_COMMENTS" => 'Y'
    "PERMS_P" => Array("1" => BLOG_PERMS_DENY, "2" => BLOG_PERMS_DENY),
    "PERMS_C" => Array("1" => BLOG_PERMS_READ, "2" => BLOG_PERMS_WRITE)
);

$updateID = CBlogPost::Update($ID, $arFields);
if(IntVal($updateID)>0)
{
    echo "Сообщение [".$updateID."] изменено.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


Класс CBlogSitePath

CBlogSitePath - класс для работы с путями к публичной части блогов.

Метод | Описание | С версии
Add | Добавляет новый путь. |
Delete | Удаляет путь. |
GetByID | Возвращает путь по его идентификатору. |
GetBySiteID | Возвращает путь по идентификатору сайта. |
GetList | Возвращает список путей по фильтру. |
Update | Изменяет путь. |


Add

Блоги>Классы>CBlogSitePath>Add (5.9.1)

CBlogSitePath::Add

Описание и параметры

int
CBlogSitePath::Add(
 array arFields
);

Метод добавляет новый путь. Метод нестатический.

Параметры метода

Параметр | Описание
arFields | Массив вида array("SITE_ID"=>"значение", "PATH"=>"значение").

Возвращаемое значение

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

Смотрите также

  • CBlogSitePath::Update

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

<?
$arFields = array(
    "SITE_ID" => "ru",
    "PATH" => "/blog/"
);

$newID = CBlogSitePath::Add($arFields);
if(IntVal($newID)>0)
{
    echo "Новый путь [".$newID."] добавлен.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


Delete

Блоги>Классы>CBlogSitePath>Delete (5.9.1)

CBlogSitePath::Delete

bool
CBlogSitePath::Delete(
 int ID
);

Метод удаляет путь с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор пути.

Возвращаемое значение

Метод возвращает true в случае успешного удаления пути, в противном случае возвращает false.

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

<?
$ID = 1;
if(!CBlogSitePath::Delete($ID))
{
    echo 'Ошибка удаления пути '.$ID;
}
else
    echo 'Путь удален.';
?>


GetByID

Блоги>Классы>CBlogSitePath>GetByID (5.9.1)

CBlogSitePath::GetByID

Описание и параметры

array
CBlogSitePath::GetByID(
 int ID
);

Метод возвращает параметры пути с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор пути.

Возвращаемое значение

Возвращается массив вида:
Array(
    "ID" => "ID пути",
    "SITE_ID" => "ID сайта",
    "PATH" => "Путь"
)
Если путь не найден метод вернет false.

Примечание

Метод использует встроенное кеширование. Таким образом, запрос к базе данных при многократном использовании метода на странице будет производиться только один раз.

Смотрите также

  • CBlogSitePath::GetList()
  • CBlogSitePath::GetBySiteID()

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

<?
$ID = 1;
$arSitePath = CBlogSitePath::GetByID($ID);
if(is_array($arSitePath))
    print_r($arSitePath);
else
    echo "Путь не найден.";
?>


GetBySiteID

Блоги>Классы>CBlogSitePath>GetBySiteID (5.9.1)

CBlogSitePath::GetBySiteID

Описание и параметры

array
CBlogSitePath::GetBySiteID(
 string siteID
);

Метод возвращает параметры пути сайта siteID. Метод нестатический.

Параметры метода

Параметр | Описание
siteID | Идентификатор сайта.

Возвращаемое значение

Возвращается массив вида:

Array(
    "ID" => "ID пути",
    "SITE_ID" => "ID сайта",
    "PATH" => "Путь"
)
Если путь не найден метод вернет false.

Примечание

Метод использует встроенное кеширование. Таким образом, запрос к базе данных при многократном использовании метода на странице будет производиться только один раз.

Смотрите также

  • CBlogSitePath::GetList()
  • CBlogSitePath::GetByID()

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

<?
$SiteID = "ru";
$arSitePath = CBlogSitePath::GetBySiteID($SiteID);
if(is_array($arSitePath))
    print_r($arSitePath);
else
    echo "Путь не найден.";
?>


GetList

Блоги>Классы>CBlogSitePath>GetList (5.9.1)

CBlogSitePath::GetList

Описание и параметры

CDBResult
CBlogSitePath::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array(),
 bool  arGroupBy = false,
 bool  arNavStartParams = false,
 array arSelectFields = Array()
);

Возвращает список путей по фильтру arFilter, отсортированный в порядке arOrder. Метод нестатический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]) Поле для сортировки может принимать значения:
  • ID - идентификатор пути;
  • SITE_ID - идентификатор сайта;
  • PATH - путь.
Необязательный. По умолчанию фильтруется по убыванию идентификатора категории.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор пути;
  • SITE_ID - идентификатор сайта;
  • PATH - путь.
Фильтровать можно так же и по типу. Существуют типы:
  • B - user blog,
  • P - user post,
  • U - just user,
  • G - group blog,
  • H - group post
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.
Необязательный. По умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Необязательный. По умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Необязательный. По умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult

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

<?
// выберем все пути сайта с идентификатором "ru"
$arOrder = Array(
        "PATH" => "ASC",
        "ID" => "ASC"
    );
$arFilter = Array(
        "SITE_ID"=>'ru'
    );
$arSelectedFields = Array("ID", "SITE_ID", "PATH");

$dbSitePath = CBlogSitePath::GetList($arOrder, $arFilter, false, false, $arSelectedFields);
while ($arSitePath = $dbSitePath->Fetch())
{
    print_r($arSitePath);
}
?>


Update

Блоги>Классы>CBlogSitePath>Update (5.9.1)

CBlogSitePath::Update

Описание и параметры

int
CBlogSitePath::Update(
 int   ID
 array arFields
);

Метод изменяет параметры пути с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор изменяемого пути.
arFields | Массив вида array("SITE_ID"=>"ID сайта", "PATH"=>"путь").

Возвращаемое значение

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

Смотрите также

  • CBlogSitePath::Add

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

<?
$ID = 1;
$arFields = array(
    "SITE_ID" => "ru",
    "PATH" => "/ru/blog/"
);

$updateID = CBlogSitePath::Update($ID, $arFields);
if(IntVal($updateID)>0)
{
    echo "Путь [".$updateID."] изменен.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


Класс CBlogTrackback

CBlogTrackback - класс для работы с Trackback к сообщениям.

GetPing | Принимает Trackback-запросы.
SendPing | Отправляет Trackback-запрос по заданным адресам.


GetPing

Блоги>Классы>CBlogTrackback>GetPing (5.9.0)

CBlogTrackback::GetPing

Описание и параметры

void
CBlogTrackback::GetPing(
 string blogUrl,
 int    postID,
 array  arParams
);

Метод принимает и сохраняет Trackback-запрос arParams к сообщению postID блога с адресом blogUrl. Метод нестатический.

Параметры метода

Параметр | Описание
blogUrl | Адрес блога.
postID | Идентификатор сообщения.
arParams Массив параметров Trackback-запроса:
  • title - обязательный, заголовок Trackback'а;
  • url - обязательный, адрес Trackback'a;
  • excerpt - текст Trackback'а;
  • blog_name - название блога.
Необязательный параметр.

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

<?
if (CModule::IncludeModule("blog"))
{
    $postID = IntVal($postID);
    $blogUrl = Trim($blogUrl);

    if (strtoupper($_SERVER["REQUEST_METHOD"]) != "POST")
    {
        LocalRedirect(CBlogPost::PreparePath($blogUrl, $postID));
        die();
    }

    $arParams = array();
    if (isset($_REQUEST))
    {
        if (isset($_REQUEST["title"]))
            $arParams["title"] = $_REQUEST["title"];
        if (isset($_REQUEST["url"]))
            $arParams["url"] = $_REQUEST["url"];
        if (isset($_REQUEST["excerpt"]))
            $arParams["excerpt"] = $_REQUEST["excerpt"];
        if (isset($_REQUEST["blog_name"]))
            $arParams["blog_name"] = $_REQUEST["blog_name"];
    }

    CBlogTrackback::GetPing($blogUrl, $postID, $arParams);
}
?>


SendPing

Блоги>Классы>CBlogTrackback>SendPing (5.9.0)

CBlogTrackback::SendPing

void
CBlogTrackback::SendPing(
 int   postID,
 array arPingUrls
);

Метод отправляет Trackback-запрос о сообщении postID по заданным адресам arPingUrls. Метод нестатический.

Параметры метода

Параметр | Описание
postID | Идентификатор сообщения.
arPingUrls | Массив адресов, по которым необходимо отправить Trackback-запрос. Необязательный параметр.

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

<?
$ID = 2;
$arPingUrls = array(
        "/blog/trackback.php/admin-blog/1.php",
        "http://www.bitrixsoft.ru/blog/blogman/trackback.php/admin-blog/1.php"
    );
CBlogTrackback::SendPing($ID, $arPingUrls);
?>


Класс CBlogUser

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

Метод | Описание | С версии
Add | Добавляет пользователя блогов. |
Delete | Удаляет пользователя блогов. |
GetByID | Возвращает пользователя блога по его идентификатору. |
GetList | Возвращает список пользователя блога по фильтру. |
Update | Изменяет параметры пользователя блога. |
GetUserFriendsList | Возвращает список сообщений друзей блога. |
CanUserUpdateUser | Проверяет - может ли пользователь блога изменить информацию о себе. |
DeleteFromUserGroup | Удаляет пользователя блога из группы пользователей блога. |
AddToUserGroup | Добавляет пользователя блога в группу пользователей блога. |
SetLastVisit | Регистрирует посещение пользователя блога в его профайле. |
GetUserFriends | Возвращет список друзей пользователя блога или список пользователей блогов в друзьях у которых находится пользователь. |
GetUserGroups | Возвращает список групп блога, в которых находится пользователь блога. |
GetUserPerms | Возвращает уровень прав пользователя блога. |
GetUserName | Вовзращает имя пользователя для отображения в публичной части. |
PreparePath | Возвращает путь к профайлу пользователя блога. |
GetUserIP | Возвращает IP-адреса пользователя. |


Add

Блоги>Классы>CBlogUser>Add (5.0.2)

CBlogUser::Add

Описание и параметры

int
CBlogUser::Add(
 array arFields
);

Метод добавляет нового пользователя блогов. Метод статический.

Параметры метода

Параметр | Описание
arFields | Массив вида array("поле"=>"значение"[, ...]), содержащий значения полей пользователя.

Возвращаемое значение

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

Смотрите также

  • CBlogUser::Update
  • Поля пользователя блога

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

<?
//создадим профайл пользователя блога для текущего пользователя
$arFields = array(
    "USER_ID" => $USER->GetID(),
    "=LAST_VISIT" => $DB->GetNowFunction(),
    "=DATE_REG" => $DB->GetNowFunction(),
    "ALLOW_POST" => "Y",
    "ALIAS" => "Псевдоним пользователя",
    "DESCRIPTION" => "Обычный пользователь сайта с блогом",
    "INTERESTS" => "программирование, PHP, MySQL, Bitrix, Битрикс"
);

$newID = CBlogUser::Add($arFields);
if(IntVal($newID)>0)
{
    echo "Новый пользователь блога [".$newID."] добавлен.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


AddToUserGroup

Блоги>Классы>CBlogUser>AddToUserGroup (5.0.2)

CBlogUser::AddToUserGroup

Описание и параметры

bool
CBlogUser::AddToUserGroup(
 int    ID,
 int    blogID,
 array  arGroups = array(),
 string joinStatus = "Y",
 int    selectType = BLOG_BY_BLOG_USER_ID,
 int    action = BLOG_CHANGE
);

Метод добавляет пользователя с идентификатором ID в группы пользователей arGroups блога blogID. Метод статический.

Параметры метода

Параметр | Описание
ID | Идентификатор пользователя.
blogID | Идентификатор блога.
arGroups | Массив идентификаторов групп пользователей блога, к которым необходимо привязать пользователя. Необязательный параметр.
joinStatus | Необязательный. Значение по умолчанию - "Y". Параметр временно не используется.
selectType По какому идентификатору искать пользователя. Возможные значения:
  • BLOG_BY_USER_ID - по идентификатору пользователя сайта;
  • BLOG_BY_BLOG_USER_ID - по идентификатору пользователя блога.
Необязательный. По умолчанию BLOG_BY_BLOG_USER_ID - по идентификатору пользователя блога.
action Совершаемое действие. Возможные значения:
  • BLOG_ADD - добавление пользователя в группы;
  • BLOG_CHANGE - изменение уже существующих привязок.
Необязательный. По умолчанию BLOG_CHANGE - изменение уже существующих привязок.

Возвращаемое значение

Метод возвращает true в случае успешного добавления пользователя в группы, в противном случае возвращает false, а в исключениях будут содержаться ошибки.

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

<?
// добавим текущего пользователя в группы с ID = 1, 2, 3 пользователей блога с ID = 1
$ID = $USER->GetID();
if(!CBlogUser::AddToUserGroup($ID, 1, array(1,2,3), "", BLOG_BY_USER_ID, BLOG_ADD))
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
else
{
    echo 'Пользователь ['.$ID.'] добавлен в группы пользователей блога';
}
?>


CanUserUpdateUser

Блоги>Классы>CBlogUser>CanUserUpdateUser (5.0.2)

CBlogUser::CanUserUpdateUser

Описание и параметры

bool
CBlogUser::CanUserUpdateUser(
 int ID,
 int userID,
 int selectType = BLOG_BY_BLOG_USER_ID
);

Метод проверяет может ли пользователь сайта userID изменять профайл пользователя ID блога. Метод статический.

Параметры метода

Параметр | Описание
ID | Идентификатор пользователя.
userID | Идентификатор пользователя сайта.
selectType По какому идентификатору искать пользователя. Возможные значения:
  • BLOG_BY_USER_ID - по идентификатору пользователя сайта;
  • BLOG_BY_BLOG_USER_ID - по идентификатору пользователя блога.
Необязательный. По умолчанию BLOG_BY_BLOG_USER_ID - по идентификатору пользователя блога.

Возвращаемое значение

Метод возвращает true в случае если пользователь изменить профайл, в противном случае возвращает false.

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

<?
if(CBlogUser::CanUserUpdateUser(1, $USER->GetID(), BLOG_BY_USER_ID)
    echo "Вы можете изменить этот профайл.";
else
    echo "Вы не можете изменить этот профайл.";
?>


Delete

Блоги>Классы>CBlogUser>Delete (5.0.2)

CBlogUser::Delete

Описание и параметры

bool
CBlogUser::Delete(
 int ID
);

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

Параметры метода

Параметр | Описание
ID | Идентификатор пользователя сайта.

Возвращаемое значение

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

Примечание

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

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

<?
$ID = $USER->GetID();
if(!CBlogUser::Delete($ID))
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
else
{
    echo 'Профайл блога пользователя ['.$ID.'] удален';
}
?>


DeleteFromUserGroup

Блоги>Классы>CBlogUser>DeleteFromUserGroup (5.0.2)

CBlogUser::DeleteFromUserGroup

Описание и параметры

bool
CBlogUser::DeleteFromUserGroup(
 int ID,
 int blogID,
 int selectType = BLOG_BY_BLOG_USER_ID,
);

Метод удаляет пользователя с идентификатором ID из всех групп пользователей блога blogID. Метод статический.

Параметры метода

Параметр | Описание
ID | Идентификатор пользователя.
blogID | Идентификатор блога.
selectType По какому идентификатору искать пользователя. Возможные значения:
  • BLOG_BY_USER_ID - по идентификатору пользователя сайта;
  • BLOG_BY_BLOG_USER_ID - по идентификатору пользователя блога.
Необязательный. По умолчанию BLOG_BY_BLOG_USER_ID - по идентификатору пользователя блога.

Возвращаемое значение

Метод возвращает true в случае успешного удаления пользователя из групп, в противном случае возвращает false, а в исключениях будут содержаться ошибки.

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

<?
// удалим текущего пользователя из всех групп пользователей блога с ID = 1
$ID = $USER->GetID();
if(!CBlogUser::DeleteFromUserGroup($ID, 1, BLOG_BY_USER_ID))
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
else
{
    echo 'Пользователь ['.$ID.'] удален из групп пользователей блога';
}
?>


GetByID

Блоги>Классы>CBlogUser>GetByID (5.0.2)

CBlogUser::GetByID

Описание и параметры

array
CBlogUser::GetByID(
 int ID,
 int selectType = BLOG_BY_BLOG_USER_ID
);

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

Параметры метода

Параметр | Описание
ID | Идентификатор пользователя.
selectType Тип выборки. Может принимать следующие значения:
  • BLOG_BY_BLOG_USER_ID - найти пользователя по идентификатору пользователя блога;
  • BLOG_BY_USER_ID - найти пользователя по идентификатору пользователя сайта.
Необязательный. По умолчанию равен BLOG_BY_BLOG_USER_ID.

Возвращаемое значение

Возвращается массив с полями пользователя блога.

Примечание

Метод использует встроенное кеширование. Таким образом, запрос к базе данных при многократном использовании метода на странице будет производиться только один раз.

Смотрите также

  • CBlogUser::GetList()
  • Поля пользователя блога

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

<?
$ID = $USER->GetID();
$arUser = CBlogUser::GetByID($ID, BLOG_BY_USER_ID);
if(is_array($arUser))
    print_r($arUser);
else
    echo "Пользователь не найден.";
?>


GetList

Блоги>Классы>CBlogUser>GetList (5.0.2)

CBlogUser::GetList

Описание и параметры

CDBResult
CBlogUser::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array(),
 bool  arGroupBy = false,
 bool  arNavStartParams = false,
 array arSelectFields = Array()
);

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

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]) Поле для сортировки может принимать значения:
  • ID - идентификатор пользователя блога;
  • USER_ID - идентификатор пользователя сайта;
  • ALIAS - псевдоним пользователя;
  • AVATAR - идентификатор аватара пользователя блога;
  • INTERESTS - интересы пользователя блога;
  • LAST_VISIT - время последнего посещения блогов;
  • DATE_REG - дата регистрации пользователя блога;
  • ALLOW_POST - флаг - разрешено ли писать в блогах;
  • USER_LOGIN - логин пользователя сайта;
  • USER_NAME - имя пользователя сайта;
  • USER_LAST_NAME - фамилия пользователя сайта;
  • USER_EMAIL - Email пользователя сайта;
  • GROUP_GROUP_ID - идентификатор группы пользователей блога;
  • GROUP_BLOG_ID - идентификатор блога группы пользователей блога.
Необязательный. По умолчанию фильтруется по убыванию идентификатора пользователя блога.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор пользователя блога;
  • USER_ID - идентификатор пользователя сайта;
  • ALIAS - псевдоним пользователя;
  • AVATAR - идентификатор аватара пользователя блога;
  • INTERESTS - интересы пользователя блога;
  • LAST_VISIT - время последнего посещения блогов;
  • DATE_REG - дата регистрации пользователя блога;
  • ALLOW_POST - флаг - разрешено ли писать в блогах;
  • USER_LOGIN - логин пользователя сайта;
  • USER_NAME - имя пользователя сайта;
  • USER_LAST_NAME - фамилия пользователя сайта;
  • USER_EMAIL - Email пользователя сайта;
  • GROUP_GROUP_ID - идентификатор группы пользователей блога;
  • GROUP_BLOG_ID - идентификатор блога группы пользователей блога.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.
Необязательный. По умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Необязательный. По умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Необязательный. По умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля пользователей блога

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

<?
// выберем всех пользователей - друзей блога с идентификатором 1
$arOrder = Array(
        "USER_NAME" => "ASC",
        "ID" => "ASC"
    );
$arFilter = Array(
        "GROUP_BLOG_ID" => 1
    );
$arSelectedFields = Array("ID", "USER_ID", "ALIAS", "USER_LOGIN", "USER_NAME", "USER_LAST_NAME");

$dbUsers = CBlogUser::GetList(
    $arOrder,
    $arFilter,
    false,
    false
    $arSelectedFields
);
while ($arUsers = $dbUsers->Fetch())
{
    print_r($arUsers);
}
?>


GetUserFriends

Блоги>Классы>CBlogUser>GetUserFriends (5.0.2)

CBlogUser::GetUserFriends

Описание и параметры

CDBResult
CBlogUser::GetUserFriends(
 int  ID,
 bool bFlag = true
);

В зависимости от флага bFlag возвращает или список блогов друзей пользователя ID или список блогов, в которых пользователь ID является другом. Метод статический.

Параметры метода

Параметр | Описание
ID | Идентификатор пользователя сайта.
bFlag | Флаг. Если значение true, то возвращается список блогов в которых пользователь является другом, в противном случае возвращается список блогов друзей пользователя. Необязательный. По умолчанию true - возвращается список блогов в которых пользователь является другом.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult

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

<?
// выберем все блоги друзей пользователя
$dbFriends = CBlogUser::GetUserFriends($USER->GetID(), True);
while ($arFriends = $dbFriends->Fetch())
{
    ?><a href="<?= CBlog::PreparePath($arFriends["URL"], false, $is404) ?>"><?= htmlspecialchars($arFriends["NAME"]) ?></a><?
}

?>


GetUserFriendsList

Блоги>Классы>CBlogUser>GetUserFriendsList (5.0.2)

CBlogUser::GetUserFriendsList

Описание и параметры

CDBResult
CBlogUser::GetUserFriendsList(
 int  ID,
 int  userID = false,
 bool bAuth = false,
 int  limit = 20
);

Возвращает список сообщений друзей пользователя ID. Метод статический.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор пользователя, сообщения друзей которого необходимо выбрать. |
userID | Идентификатор пользователя сайта для которого будут проверяться права. Необязательный параметр. Значение по умолчанию - "False". |
bAuth | Авторизован ли текущий пользователь, для которого будет происходить проверка прав. Необязательный параметр. Значение по умолчанию - "False". |
limit | Количество выводимых сообщений. Необязательный параметр. Значение по умолчанию - 20. |
arGroup | Необязательный параметр. | 8.0.5

Возвращаемое значение

Метод возвращает массив вида:
Array(
    [ID] => 20, //идетификатор сообщения
    [DATE_PUBLISH] => 2007-08-08 18:41:24, // дата публикации сообщения
    [BLOG_ID] => 1, // идентификатор блога
    [URL] => 'admin-blog' // адрес блога
)

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

<?
// выберем 20 сообщений друзей пользователя с ID=2
$ID = 2;
$dbList = CBlogUser::GetUserFriendsList($ID, $USER->GetID(), $USER->IsAuthorized(), 20);
while($arList = $dbLis->Fetch())
{
    $arPost = CBlogPost::GetByID($arList["ID"]);
    print_r($arPost);
}
?>


GetUserGroups

Блоги>Классы>CBlogUser>GetUserGroups (5.0.2)

CBlogUser::GetUserGroups

Описание и параметры

array
CBlogUser::GetUserGroups(
 int    ID,
 int    blogID,
 string joinStatus = "",
 int    selectType = BLOG_BY_BLOG_USER_ID
);

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

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор пользователя.
blogID | Идентификатор блога.
joinStatus | Флаг - уже привязан пользователь к группе или только ожидает привязки. Необязательный. По умолчанию статус не учитывается.
selectType По какому идентификатору искать пользователя. Возможные значения:
  • BLOG_BY_USER_ID - по идентификатору пользователя сайта;
  • BLOG_BY_BLOG_USER_ID - по идентификатору пользователя блога.
Необязательный. По умолчанию BLOG_BY_BLOG_USER_ID - по идентификатору пользователя блога.
bUrl | Необязательный параметр. Значение по умолчанию - "false". | 8.0.5

Возвращаемое значение

Метод возвращает массив групп пользователей блога, в случае ошибки возвращает false.

Примечание

Метод использует встроенное кеширование. Таким образом, запрос к базе данных при многократном использовании метода на странице будет производиться только один раз.

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

<?
// получим группы пользователей блога с ID=1, к которым привязан текущий пользователь
$ID = $USER->GetID();
$arUserGroups = CBlogUser::GetUserGroups($ID, 1, "", BLOG_BY_USER_ID);
if(is_array($arUserGroups))
    print_r($arUserGroups);
?>


GetUserIP

Блоги>Классы>CBlogUser>GetUserIP (5.0.2)

CBlogUser::GetUserIP

string
CBlogUser::GetUserIP();

Метод возвращает IP-адреса текущего посетителя. Метод статический.

Возвращаемое значение

Возвращается массив с доступными IP.

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

<?
    $userIP = CBlogUser::GetUserIP();
    print_r($userIP);
?>


GetUserName

Блоги>Классы>CBlogUser>GetUserName (5.0.2)

CBlogUser::GetUserName

Описание и параметры

string
CBlogUser::GetUserName(
 string alias,
 string name,
 string lastName,
 string login
);

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

Параметры метода

Параметр | Описание | С версии
alias | Псевдоним пользователя блога. |
name | Имя пользователя сайта. |
lastName | Фамилия пользователя сайта. |
login | Логин пользователя сайта. |
secondName | Необязательный параметр. Значение по умолчанию - "". | 12.0.0

Возвращаемое значение

Возвращается имя пользователя.

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

<?
//выведем имя текущего пользователя для блогов
$dbUser = CUser::GetByID($USER->GetID());
$arUser = $dbUser->Fetch();
$BlogUser = CBlogUser::GetByID($arUser["ID"], BLOG_BY_USER_ID);
$AuthorName = CBlogUser::GetUserName($BlogUser["ALIAS"], $arUser["NAME"], $arUser["LAST_NAME"], $arUser["LOGIN"]);
echo $AuthorName;
?>


GetUserPerms

Блоги>Классы>CBlogUser>GetUserPerms (5.0.2)

CBlogUser::GetUserPerms

Описание и параметры

string
CBlogUser::GetUserPerms(
 array arGroups,
 int   blogID,
 int   postID = 0,
 int   permsType = BLOG_PERMS_POST,
 int   selectType = BLOG_BY_BLOG_USER_ID,
);

Метод возвращает уровень доступа пользователя блога на permsType, привязанного к группам arGroups, на сообщение postID блога ID. Метод статический.

Параметры метода

Параметр | Описание
arGroups | Массив групп пользователей блога или идентификтор пользователя. Если указывается идентификатор пользователя, то метод самостоятельно получает группы пользователей блога.
blogID | Идентификатор блога.
postID Идентификатор сообщения.
Необязательный. По умолчанию 0 - будет возвращено уровень доступа по умолчанию.
permsType Тип доступа. Возможные значения:
  • BLOG_PERMS_POST - доступ на сообщения;
  • BLOG_PERMS_COMMENT - доступ на комментарии.
Необязательный. По умолчанию BLOG_PERMS_POST - уровень доступа на сообщения.
selectType По какому идентификатору искать пользователя. Используется только, если в качестве первого параметра передается идентификатор пользователя. Возможные значения:
  • BLOG_BY_USER_ID - по идентификатору пользователя сайта;
  • BLOG_BY_BLOG_USER_ID - по идентификатору пользователя блога.
    Необязательный. По умолчанию BLOG_BY_BLOG_USER_ID - по идентификатору пользователя блога.

    • Возвращаемое значение

    Метод возвращает уровень доступа пользователя.

    Смотрите также

    • Уровни доступа

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

    <?
// получим уровень доступа к сообщениям блога с идентификатором 2
$blogID = 2;
$arUserGroups = CBlogUser::GetUserGroups($userID, $blogID, "Y", BLOG_BY_USER_ID);
$perms = CBlogUser::GetUserPerms(arUserGroups, $blogID, 0, BLOG_PERMS_POST);
echo "Вы имеете следующее право на сообщения блога: ".$perms;
?>


PreparePath

Блоги>Классы>CBlogUser>PreparePath (5.0.2)

CBlogUser::PreparePath

Описание и параметры

string
CBlogUser::PreparePath(
 int    userID,
 string siteID = false,
 bool   is404 = true,
);

Метод возвращает путь к профайлу пользователя userID относительно корня сайта siteID с учётом варианта публичной части (с обработчиком 404 ошибки или без). Метод статический.

Параметры метода

Параметр | Описание
userID | Идентификатор пользователя сайта. Необязательный параметр. Значение по умолчанию - 0.
siteID | Идентификатор сайта. Необязательный. По умолчанию false - берется текущий сайт.
is404 | Используется ли обработчик 404 ошибки в публичной части. Необязательный. По умолчанию true - публичная часть блогов работает на базе обработчика 404 ошибки.

Возвращаемое значение

Возвращается путь к профайлу пользователя относительно корня сайта.

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

<?
echo '<a href="'.CBlogUser::PreparePath($USER->GetID()).'">Ваш профайл</a>';
?>


SetLastVisit

Блоги>Классы>CBlogUser>SetLastVisit (5.0.2)

CBlogUser::SetLastVisit

bool
CBlogUser::SetLastVisit(
);

Метод регистрирует последнее посещение блога текущим пользователем. Метод статический.

Возвращаемое значение

Метод возвращает true в случае успешной регистрации посещения, в противном случае возвращает false.

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

<?
if(!CBlogUser::SetLastVisit())
    echo 'Ошибка!';
?>


Update

Блоги>Классы>CBlogUser>Update (5.0.2)

CBlogUser::Update

Описание и параметры

int
CBlogUser::Update(
 int   ID
 array arFields
);

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

Параметры метода

Параметр | Описание
ID | Идентификатор изменяемого пользователя блога.
arFields | Массив вида array("поле"=>"значение"[, ...]), содержащий значения полей пользователя блога.

Возвращаемое значение

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

Смотрите также

  • CBlogUser::Add
  • Поля пользователя блога

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

<?
//изменим профайл пользователя блога для текущего пользователя
$arUser = CBlogUser::GetByID($USER->GetID(), BLOG_BY_USER_ID)
$arFields = array(
    "ALIAS" => "Псевдоним текущего пользователя",
    "DESCRIPTION" => "Обычный пользователь сайта с блогом",
    "INTERESTS" => "программирование, PHP, MySQL, Bitrix, Битрикс, Microsoft"
);

$updateID = CBlogUser::Update($arUser["ID"], $arFields);
if(IntVal($updateID)>0)
{
    echo "Информация о пользователе блогов [".$updateID."] изменена.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


Класс CBlogUserGroup

CBlogUserGroup - класс для работы с группами пользователей блогов.

Метод | Описание | С версии
Add | Добавляет новую группу пользователей блога. |
Delete | Удаляет группу пользователей блога. |
GetGroupPerms | Возвращает уровень доступа группы пользователей блога. |
GetByID | Возвращает группу пользователей блога по ее идентификатору. |
GetList | Возвращает список групп пользователей блога по фильтру. |
Update | Изменяет группу пользователей блога. |


Add

Блоги>Классы>CBlogUserGroup>Add (7.1.2)

CBlogUserGroup::Add

Описание и параметры

int
CBlogUserGroup::Add(
 array arFields
);

Метод добавляет новую группу пользователей блога. Метод нестатический.

Примечание: при установке модуля автоматически создаются две группы пользователей блога, которые доступны для всех блогов: "Все посетители" и "Авторизованные посетители". Следующая группа уже будет привязана к конкретному блогу и будет иметь ID, равный 3.

Параметры метода

Параметр | Описание
arFields | Массив вида array("поле"=>"значение"[, ...]), содержащий значения полей группы пользователей блога.

Возвращаемое значение

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

Смотрите также

  • CBlogUserGroup::Update
  • Поля группы пользователей

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

<?
$arFields = array(
    "NAME" => 'Друзья',
    "BLOG_ID" => 1
);

$newID = CBlogUserGroup::Add($arFields);
if(IntVal($newID)>0)
{
    echo "Новая группа [".$newID."] добавлена.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


Delete

Блоги>Классы>CBlogUserGroup>Delete (7.1.2)

CBlogUserGroup::Delete

bool
CBlogUserGroup::Delete(
 int ID
);

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

Параметры метода

Параметр | Описание
ID | Идентификатор группы пользователей блога.

Возвращаемое значение

Метод возвращает true в случае успешного удаления группы пользователей блога, в противном случае возвращает false.

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

<?
if(!CBlogUserGroup::Delete($ID))
{
    echo 'Ошибка удаления группы '.$ID;
}
?>


GetByID

Блоги>Классы>CBlogUserGroup>GetByID (7.1.2)

CBlogUserGroup::GetByID

Описание и параметры

array
CBlogUserGroup::GetByID(
 int ID
);

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

Параметры метода

Параметр | Описание
ID | Идентификатор группы пользователей блога.

Возвращаемое значение

Возвращается массив с полями группы пользователей блога.

Примечание

Метод использует встроенное кеширование. Таким образом, запрос к базе данных при многократном использовании метода на странице будет производиться только один раз.

Смотрите также

  • Поля группы пользователей блога
  • CBlogUserGroup::GetList()

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

<?
$ID = 3;
$arUserGroup = CBlogUserGroup::GetByID($ID);
if(is_array($arUserGroup))
    print_r($arUserGroup);
else
    echo "Группа пользователей не найдена.";
?>


GetGroupPerms

Блоги>Классы>CBlogUserGroup>GetGroupPerms (7.1.2)

CBlogUserGroup::GetGroupPerms

Описание и параметры

string
CBlogUserGroup::GetGroupPerms(
 int    ID,
 int    blogID,
 int    postID = 0,
 string permsType = BLOG_PERMS_POST
);

Метод возвращает уровень доступа группы ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор группы пользователей блога.
blogID | Идентификатор блога.
postID Идентификатор сообщения.
Необязательный. По умолчанию 0 - возвращается уровень доступа по умолчанию, который задается в настройках блога.
permsType Тип доступа. Возможные значения:
  • BLOG_PERMS_POST - доступ к сообщениям;
  • BLOG_PERMS_COMMENT - доступ к комментариям сообщения.
Необязательный. По умолчанию BLOG_PERMS_POST - возвращается уровень доступа для сообщений.

Возвращаемое значение

Метод возвращает уровень доступа группы пользователей блога на сообщение или комментарии.

Смотрите также

  • Уровни доступа к сообщениям

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

<?
$perms = CBlogUserGroup::GetGroupPerms(3, 1);
echo "Группа пользователей с ID=3 имеете следующее право на сообщения блога 1: ".$perms;
?>


GetList

Блоги>Классы>CBlogUserGroup>GetList (7.1.2)

CBlogUserGroup::GetList

Описание и параметры

CDBResult
CBlogUserGroup::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array(),
 bool  arGroupBy = false,
 bool  arNavStartParams = false,
 array arSelectFields = Array()
);

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

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]) Поле для сортировки может принимать значения:
  • ID - идентификатор группы пользователей;
  • NAME - название группы пользователей;
  • BLOG_ID - идентификатор блога;
  • USER2GROUP_ID - идентификатор привязки пользователя к группе пользователей;
  • USER2GROUP_USER_ID - идентификатор пользователя группы пользователей блога.
Необязательный. По умолчанию фильтруется по убыванию идентификатора группы пользователей.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор группы пользователей;
  • NAME - название группы пользователей;
  • BLOG_ID - идентификатор блога;
  • USER2GROUP_ID - идентификатор привязки пользователя к группе пользователей;
  • USER2GROUP_USER_ID - идентификатор пользователя группы пользователей блога.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Необязательный. По умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Необязательный. По умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Необязательный. По умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля группы пользователей

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

<?
// выберем все группы пользователей блога с ID = 1

$SORT = Array("NAME" => "ASC", "ID" => "ASC");
$arFilter = Array(
    "BLOG_ID" => 1
    );

$dbUserGroup = CBlogUserGroup::GetList(
        $SORT,
        $arFilter
    );

while ($arUserGroup = $dbUserGroup->Fetch())
{
    print_r($arUserGroup);
}
?>


Update

Блоги>Классы>CBlogUserGroup>Update (7.1.2)

CBlogUserGroup::Update

Описание и параметры

int
CBlogUserGroup::Update(
 int   ID
 array arFields
);

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

Параметры метода

Параметр | Описание
ID | Идентификатор изменяемой группы пользователей.
arFields | Массив вида array("поле"=>"значение"[, ...]), содержащий значения полей группы пользователей блога.

Возвращаемое значение

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

Смотрите также

  • Поля группы пользователя блога
  • CBlogUserGroup::Add

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

<?
$ID = 3;
$arFields = array(
    "NAME" => 'Близкие друзья',
    "BLOG_ID" => 1
);

$updateID = CBlogUserGroup::Update($ID, $arFields);
if(IntVal($updateID)>0)
{
    echo "Группа пользователей [".$updateID."] изменена.";
}
else
{
    if ($ex = $APPLICATION->GetException())
        echo $ex->GetString();
}
?>


События модуля блогов

Событие | Вызывается | Метод | С версии
OnBeforeBlogAdd | перед добавлением блога. | CBlog::Add | 5.0.2
OnBlogAdd | при добавлении блога. | CBlog::Add | 5.0.2
OnBeforeBlogUpdate | перед изменением блога. | CBlog::Update | 5.0.2
OnBlogUpdate | при изменении блога. | CBlog::Update | 5.0.2
OnBeforeBlogDelete | перед удалением блога. | CBlog::Delete | 5.0.1
OnBlogDelete | при удалении блога. | CBlog::Delete | 5.0.1
OnBeforeCommentAdd | перед добавлением комментария. | CBlogComment::Add | 9.5.0
OnBeforeCommentDelete | перед удалением комментария. Текст ошибки, зарегистрированной в обработчике этого события, отображается в интерфейсе живой ленты. | CBlogComment::Delete | 9.5.0
OnBeforeCommentUpdate | перед изменением комментария. | CBlogComment::Update | 9.5.0
OnBeforePostAdd | перед добавлением сообщения. | CBlogPost::Add | 9.5.0
OnBeforePostDelete | перед удалением сообщения. | CBlogPost::Delete | 9.5.0
OnBeforePostUpdate | перед изменением сообщения. | CBlogPost::Update | 9.5.0
OnCommentAdd | при добавлении комментария. | CBlogComment::Add | 9.5.0
OnCommentDelete | при удалении комментария. | CBlogComment::Delete | 9.5.0
OnCommentUpdate | при изменении комментария. | CBlogComment::Update | 9.5.0
OnPostAdd | при добавлении сообщения. | CBlogPost::Add | 9.5.0
OnPostDelete | при удалении сообщения. | CBlogPost::Delete | 9.5.0
OnPostUpdate | при изменении сообщения. | CBlogPost::Update | 9.5.0
videoConvert | при конвертации видео. | blogTextParser::blogConvertVideo | 9.0.0
BlogImageSize при конвертировании тега типа
[IMG ID=12345]
в строку типа <img .../> 		blogTextParser::blogTextParser
OnBeforePostUserFieldUpdate | после изменения\добавления сообщения в блог, но перед обновлением пользовательских свойств. | CBlogPost::Update
OnBlogPostMentionNotifyIm | после отправки уведомления об упоминании в сообщении\комментарии. | CBlogPost::NotifyIm


OnBeforeBlogAdd

Описание и параметры

bool
функция-обработчик(
 array &arParams
);

Событие вызывается в методе CBlog::Add до вставки блога, и может быть использовано для отмены вставки или переопределения некоторых полей.

Параметры функции

Параметр | Описание
arParams | Массив полей блога.

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

Возвращаемое значение

Для отмены добавления и прекращении выполнения метода CBlog::Add необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnBlogAdd"
  • CBlog::Add

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

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("blog",
                "OnBeforeBlogAdd",
                Array("MyClass", "OnBeforeBlogAddHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeBlogAdd"
    function OnBeforeBlogAddHandler(&$arFields)
    {
        if(strlen($arFields["DESCRIPTION"])<=0)
        {
            global $APPLICATION;
            $APPLICATION->throwException("Введите описание блога.");
            return false;
        }
    }
}
?>


OnBeforeBlogDelete

Описание и параметры

bool
функция-обработчик(
 int   ID
);

Событие вызывается в методе CBlog::Delete до удаления блога и может быть использовано для отмены удаления.

Параметры функции

Параметр | Описание
ID | Идентификатор удаляемого блога.

Возвращаемое значение

Для отмены удаления и прекращения выполнения метода CBlog::Delete необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnBlogDelete"
  • CBlog::Delete

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

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("blog",
                "OnBeforeBlogDelete",
                Array("MyClass", "OnBeforeBlogDeleteHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeBlogDelete"
    function OnBeforeBlogDeleteHandler($ID)
    {
        if(IntVal($ID) == 1)
        {
            global $APPLICATION;
            $APPLICATION->throwException("Первый блог удалить нельзя.");
            return false;
        }
    }
}
?>


OnBeforeBlogUpdate

Описание и параметры

bool
функция-обработчик(
 int   ID,
 array &arParams
);

Событие вызывается в методе CBlog::Update до изменения блога и может быть использовано для отмены изменения или переопределения некоторых полей.

Параметры функции

Параметр | Описание
ID | Идентификатор изменяемого блога.
arParams | Массив полей блога.

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

Возвращаемое значение

Для отмены изменения и прекращении выполнения метода CBlog::Update, необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnBlogUpdate"
  • CBlog::Update

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

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("blog",
                "OnBeforeBlogUpdate",
                Array("MyClass", "OnBeforeBlogUpdateHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeBlogUpdate"
    function OnBeforeBlogUpdateHandler($ID, &$arFields)
    {
        if(strlen($arFields["DESCRIPTION"])<=0)
        {
            global $APPLICATION;
            $APPLICATION->throwException("Введите описание блога.");
            return false;
        }
    }
}
?>


OnBlogAdd

Описание и параметры

bool
функция-обработчик(
 int   ID
 array &arParams
);

Событие вызывается в момент добавления блога.

Параметры функции

Параметр | Описание
ID | Идентификатор добавленного блога.
arParams | Массив полей блога.

Смотрите также

  • Событие "OnBeforeBlogAdd"
  • CBlog::Add

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

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("blog",
                "OnBlogAdd",
                Array("MyClass", "OnBlogAddHandler"));

class MyClass
{
    // создаем обработчик события "OnBlogAdd"
    function OnBlogAddHandler($ID, &$arFields)
    {
        ...
    }
}
?>


OnBlogDelete

Описание и параметры

bool
функция-обработчик(
 int   ID
);

Событие вызывается в момент удаления блога.

Параметры функции

Параметр | Описание
ID | Идентификатор удаляемого блога.

Смотрите также

  • Событие "OnBeforeBlogDelete"
  • CBlog::Delete

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

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("blog",
                "OnBlogDelete",
                Array("MyClass", "OnBlogDeleteHandler"));

class MyClass
{
    // создаем обработчик события "OnBlogDelete"
    function OnBlogDeleteHandler($ID)
    {
        ...
    }
}
?>


OnBlogUpdate

Описание и параметры

bool
функция-обработчик(
 int   ID
 array &arParams
);

Событие вызывается в момент изменения блога.

Параметры функции

Параметр | Описание
ID | Идентификатор изменяемого блога.
arParams | Массив полей блога.

Смотрите также

  • Событие "OnBeforeBlogUpdate"
  • CBlog::Update

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

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("blog",
                "OnBlogUpdate",
                Array("MyClass", "OnBlogUpdateHandler"));

class MyClass
{
    // создаем обработчик события "OnBlogUpdate"
    function OnBlogUpdateHandler($ID, &$arFields)
    {
        ...
    }
}
?>


Для разработчиков

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

Перед использованием модуля необходимо проверить установлен ли он, и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("currency")){
//здесь можно использовать функции и классы модуля
}
?>

Модуль включает в себя следующие Компоненты 2.0:
Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Таблица курсов валют | currency.rates | Служит для отображения таблицы курсов валют в соответствии с их форматом.


Валюты в ядре D7

Список классов модуля Валюты в ядре D7

Класс | Описание
CurrencyClassifier | Класс для работы с классификатором валют.
CurrencyLangTable | Класс для работы с таблицей языкозависимых параметров валют.
CurrencyManager | Класс для управления валютами.
CurrencyRateTable | Класс для работы с таблицей курсов валют.
CurrencyTable | Класс для работы с таблицей валют.
Helpers | Пространство имен \Bitrix\Currency\Helpers содержит вспомогательные классы.


Классы

Следующие классы используются для работы с модулем валют.

Классы

Класс | Описание | С версии
CCurrency | Класс для управления валютами: добавление, удаление, перечисление. | 3.3.2
CCurrencyLang | Класс для работы с языкозависимыми параметрами валют (название, формат и пр.) | 3.3.2
CCurrencyRates | Класс для работы с курсами валют: сохранение, конвертация и пр. | 3.3.2


Класс CCurrency

CCurrency - класс для управления валютами: добавление, удаление, перечисление.

Методы класса

Метод | Описание | С версии
Add | Метод добавляет новую валюту. |
CheckFields | Выполняет проверку полей валюты при добавлении или изменении. | 11.5.1
Delete | Метод удаляет валюту с кодом currency. |
GetBaseCurrency | Метод возвращает код базовой валюты. |
GetByID | Метод возвращает массив языконезависимых параметров валюты по ее коду currency. |
GetCurrency | Метод возвращает массив языконезависимых параметров валюты по ее коду currency. Метод аналогичен методу GetByID, за исключение того, что возвращаемый результат в методе GetCurrency кешируется. |
GetList | Метод возвращает список валют, отсортированный по полю из параметра by в направлении order. |
SelectBox | Метод для формирования готового кода выпадающего списка (select) валют. |
Update | Метод изменяет параметры валюты currency на параметры, указанные в массиве arFields. |


Add

Валюты>Классы>CCurrency>Add (3.3.2)

CCurrency::Add

Описание и параметры

string
CCurrency::Add(
 array arFields
);

Статический метод добавляет новую валюту, если ее еще не было. После добавления новой валюты необходимо установить ее языкозависимые параметры в помощью метода CCurrencyLang::Add.

Параметры метода

Параметр Описание
arFields

Ассоциативный массив параметров валюты, в котором ключами являются названия параметров, а значениями - значения параметров.

Допустимые названия параметров:

  • CURRENCY - трехсимвольный код валюты (обязательный);
  • AMOUNT_CNT - количество единиц валюты по-умолчанию, которое учавствует в задании курса валюты (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это количество единиц);
  • AMOUNT - курс валюты по-умолчанию (одна из валют сайта должна иметь курс 1, она называется базовой, остальные валюты имеют курс относительно базовой валюты);
  • SORT - порядок сортировки;
  • NUMCODE - трехзначный цифровой код валюты;
  • BASE - флаг (Y/N) является ли валюта базовой (если для добавляемой валюты указано Y и в системе уже есть некоторая базовая валюта, то флаг с существующей валюты будет снят и AMOUNT у базовой валюты станет равен 1);
  • CREATED_BY - ID пользователя, добавившего валюту;
  • MODIFIED_BY - ID последнего пользователя, изменившего валюту.
  • LANG - массив языкозависимых параметров, ключи - языки, значение каждого ключа - массив и CCurrencyLang
  • CURRENT_BASE_RATE - Текущая стоимость 1 денежной единицы в базовой валюте. Служебное поле, используется для сортировки с учетом валют, значение по умолчанию не менять!

Возвращаемые значения

Метод возвращает код добавленной валюты (сбрасывает кеш currency_currency_list и currency_base_currency в случае успешного добавления). Или false в случае ошибки (текст ошибки берётся через $APPLICATION->GetException()).

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

<?
// Добавим новую валюту "Исландские кроны"
$arFields = array(
   "CURRENCY" => "ISK",
   "AMOUNT" => 44.8378,
   "AMOUNT_CNT" => 100,
   "SORT" => 250
);
CCurrency::Add($arFields);
?>


CheckFields

Валюты>Классы>CCurrency>CheckFields (11.5.1)

CCurrency::CheckFields

Описание и параметры

boolean
CCurrency::CheckFields(
 $ACTION,
 &$arFields
 $strCurrencyID = false
);

Выполняет проверку полей валюты при добавлении или изменении. Нестатический метод.

Параметры метода

Параметр | Описание
ACTION | Равен ADD или UPDATE с учетом регистра. Если значение в другом регистре или другое значение - вернет false без текста ошибки (exception). Если значение равно UPDATE, то дополнительно проверяется CurrencyID. Если значение пустое - вернет ошибку, если не пустое, то обрежет до 3 символов.
arFields Ключи:
  • CURRENCY - (обязательный), обрезается до 3 символов. Обязательно будет проверен, если присутствует в массиве (даже если это обновление). При добавлении будет дополнительно проверен на формат - 3 латинских символа. (При обновлении такая проверка не выполняется в целях сохранения совместимости.) Если формат верен, то будет выполнен поиск - не существует ли уже такая валюта (БЕЗ УЧЕТА регистра). Если не существует - код валюты будет приведен к верхнему регистру. При обновлении проверки существования в методе CheckFields не производится.
  • AMOUNT_CNT - номинал (обязательный). Может быть только целым числом > 0.
  • AMOUNT - базовый курс (обязательный). Берется, если нет курсов по датам. Может быть только вещественным числом > 0.
  • SORT - сортировка. Целое число. Приводится к типу целого.
  • NUMCODE - трехзначный цифровой код валюты.
  • BASE - флаг (Y/N) является ли валюта базовой.
  • CREATED_BY - ID пользователя, добавившего валюту.
  • MODIFIED_BY - ID последнего пользователя, изменившего валюту.
  • DATE_UPDATE - время обновления - задается системой. Если есть такой ключ в массиве - удаляется.
CurrencyID | Код обновляемой валюты. Необязательный параметр.

Возвращаемое значение

В случае успеха возвращает true. В случае ошибки - false. Текст ошибки можно получить через $APPLICATION->GetException().

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

$arFields = array(
        'CURRENCY' => 'руб',
        'AMOUNT_CNT' => 1,
        'AMOUNT' => 0
    );

    $boolRes = CCurrency::CheckFields('ADD', $arFields);
    if (!$boolRes)
    {
        if ($ex = $APPLICATION->GetException())
        {
            $strError = $ex->GetString();
            ShowError($strError);
        }
    }

    /*
    Вернет ошибки по полям CURRENCY и AMOUNT
    */


Delete

Валюты>Классы>CCurrency>Delete (3.3.2)

CCurrency::Delete

bool
CCurrency::Delete(
 string currency
);

Статический метод удаляет валюту с кодом currency. Удаляются в том числе все введенные курсы для этой валюты, а так же языкозависимые свойства валюты.

Перед удалением вызывает событие OnBeforeCurrencyDelete, где можно отменить удаление. Формат обработчика: boolean Handler($currency).

Сбрасывает кеш currency_currency_list и currency_base_currency. Так же сбросит тегированный кеш currency_id_КОД_ВАЛЮТЫ.

Параметры метода

Параметр | Описание
currency | Код валюты.

Возвращаемые значения

Метод возвращает True в случае успешного удаления и False - в противном случае

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

<?
CCurrency::Delete("USD");
?>


GetBaseCurrency

Валюты>Классы>CCurrency>GetBaseCurrency (3.3.2)

CCurrency::GetBaseCurrency

string CCurrency::GetBaseCurrency();

Метод возвращает код базовой валюты.

Одна из валют сайта должна иметь курс "по-умолчанию" равный 1. Эта валюта называется базовой. Курс всех валют, кроме базовой, задается относительно базовой валюты. Нестатический метод.

Параметры метода

Метод не имеет параметров.


GetByID

Валюты>Классы>CCurrency>GetByID (3.3.2, устарел с 16.0.0)

CCurrency::GetByID

Описание и параметры

array
CCurrency::GetByID(
 string currency
);

Статический метод возвращает массив языконезависимых параметров валюты по ее коду currency.

Параметры метода

Параметр | Описание
currency | Код валюты.

Возвращаемые значения

Ассоциативный массив с ключами:

Ключ | Описание
CURRENCY | Код валюты (трехсимвольный)
AMOUNT_CNT | Количество единиц валюты по-умолчанию, которое учавствует в задании курса валюты (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это количество единиц)
AMOUNT | Курс валюты по-умолчанию (одна из валют сайта должна иметь курс 1, она называется базовой, остальные валюты имеют курс относительно базовой валюты)
SORT | Порядок сортировки.
BASE | Флаг (Y/N) является ли валюта базовой.
NUMCODE | Трехзначный цифровой код валюты.
CREATED_BY | ID пользователя, добавившего валюту.
MODIFIED_BY | ID последнего пользователя, изменившего валюту.
DATE_UPDATE_FORMAT | Отформатированная в соответствии с настройками сайта дата последнего изменения записи.

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

<?
if (!($ar_usd_cur = CCurrency::GetByID("USD")))
{
    echo "Валюта USD не найдена";
}
else
{
    echo "Валюта USD имеет параметры:<pre>";
    print_r($ar_usd_cur);
    echo "</pre>";
}
?>


GetCurrency

Валюты>Классы>CCurrency>GetCurrency (доступен с 3.3.2, устарел с 9.0.0)

CCurrency::GetCurrency

array
CCurrency::GetCurrency(
 string currency
);

Метод возвращает массив языконезависимых параметров валюты по ее коду currency. Метод является оболочкой метода CCurrency::GetByID. Нестатический метод.

Важно! Метод устарел и не поддерживается с версии 9.0.0.

Смотрите также

  • CCurrency::GetByID


GetList

Валюты>Классы>CCurrency>GetList (3.3.2)

CCurrency::GetList

Описание и параметры

CDBResult
CCurrency::GetList(
 string &by,
 string &order,
 string lang = LANGUAGE_ID
);

Метод возвращает список валют, отсортированный по полю из параметра by в направлении order. Языкозависимые параметры валют берутся для языка, указанного в параметре lang (по умолчанию равен текущему языку). Нестатический метод.

Параметры метода

Параметр | Описание
by | Переменная, содержащая порядок сортировки валют. Допустимые значения переменной: currency - код валюты name - название валюты на языке lang sort - индекс сортировки (по-умолчанию)
order | Переменная, содержащая направление сортировки. Допустимые значения: asc - по возрастанию значений (по-умолчанию) desc - по убыванию значений.
lang | Код языка, для которого выбираются языкозависимые параметры валют. Необязательный параметр.

Возвращаемые значения

Возвращается объект класса CDBResult, каждая запись в котором представляет собой массив с ключами:

Ключ | Описание
CURRENCY | Код валюты (трехсимвольный)
AMOUNT_CNT | Количество единиц валюты по-умолчанию, которое учавствует в задании курса валюты (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это количество единиц)
AMOUNT | Курс валюты по-умолчанию (одна из валют сайта должна иметь курс 1, она называется базовой, остальные валюты имеют курс относительно базовой валюты)
SORT | Порядок сортировки.
DATE_UPDATE | Дата последнего изменения записи (в формате базы данных).
BASE | Флаг (Y/N) является ли валюта базовой.
NUMCODE | Трехзначный цифровой код валюты.
CREATED_BY | ID пользователя, добавившего валюту.
MODIFIED_BY | ID последнего пользователя, изменившего валюту.
DATE_UPDATE_FORMAT | Отформатированная в соответствии с настройками сайта дата последнего изменения записи.
LID | Код языка.
FORMAT_STRING | Строка формата для показа сумм в этой валюте.
FULL_NAME | Полное название валюты.
DEC_POINT | Символ, который используется при показе сумм в этой валюте для отображения десятичной точки.
THOUSANDS_SEP | Символ, который используется при показе сумм в этой валюте для отображения разделителя тысяч.
DECIMALS | Количество знаков после запятой при показе.
HIDE_ZERO | Флаг (Y/N) убирает показ в публичной части незначащих нулей у дробной части цены.

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

<?
// Выведем список валют на текущем языке, отсортированный по названию
// Кроме того выведем сумму 11.95 в формате этой валюты на текущем языке
$lcur = CCurrency::GetList(($by="name"), ($order="asc"), LANGUAGE_ID);
while($lcur_res = $lcur->Fetch())
{
    echo "[".$lcur_res["CURRENCY"]."] ".$lcur_res["FULL_NAME"].": ";
    echo CurrencyFormat(11.95, $lcur_res["CURRENCY"])."<br>";
}
?>


SelectBox

Валюты>Классы>CCurrency>SelectBox (3.3.2)

CCurrency::SelectBox

Описание и параметры

string

  CCurrency::SelectBox(
 string sFieldName,
 string sValue,
 string sDefaultValue = "",
 bool bFullName = True,
 string JavaFunc = "",
 string sAdditionalParams = ""
);

Метод для формирования готового кода выпадающего списка (select) валют. Список валют при построении списка кешируется. Поэтому вывод дополнительных выпадающих списков в рамках одной страницы не приводит к дополнительным запросам к базе данных. Нестатический метод.

Параметры метода

Параметр | Описание
sFieldName | Название выпадающего списка.
sValue | Код валюты, которую нужно установить в списке выбранной.
sDefaultValue | Особое значение в списке, которое не соответствует ни одной валюте. Например, значение "Все" или "Не установлено". В этом случае код валюты в списке будет пустым. Если параметр пуст, то особое значение не отображается. Необязательный параметр.
bFullName | Выводить ли полное имя валюты. Если параметр равен False, то в списке выводятся только коды валют. Необязательный параметр.
JavaFunc | Название JavaScript функции, которая вызывается на событие OnChange списка. Если значение пустое, то функция не вызывается. Необязательный параметр.
sAdditionalParams | Строка произвольных дополнительных атрибутов тега <select> Необязательный параметр.

Возвращаемые значения

Строка, содержащая код для формирования выпадающего списка валют

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

<?
// Выведем выпадающий список валют
// с именем CURRENCY_DEFAULT, выбранной по умолчанию,
// валютой RUB, без особого значения

echo CCurrency::SelectBox("CURRENCY_DEFAULT",
                          "RUB",
                          "",
                          True,
                          "",
                          "class='typeselect'");
?>


Update

Валюты>Классы>CCurrency>Update (3.3.2)

CCurrency::Update

bool CCurrency::Update(
 string currency,
 array arFields
);

Статический метод изменяет параметры валюты currency на параметры, указанные в массиве arFields. Языкозависимые параметры (название, формат и прочее) обновляются отдельно, через класс CCurrencyLang.

Сбрасывает кеш currency_currency_list и currency_base_currency в случае успешного обновления (только если произошел запрос к базе). Так же сбросит тегированный кеш currency_id_КОД_ВАЛЮТЫ.

Параметры метода

Параметр | Описание
currency | Код валюты, параметры которой нужно изменить.
arFields Массив новых параметров валюты.
  • CURRENCY - трехсимвольный код валюты (обязательный). Должно совпадать с кодом currency изменяемой валюты;
  • AMOUNT_CNT - количество единиц валюты по-умолчанию, которое участвует в задании курса валюты (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это количество единиц);
  • AMOUNT - курс валюты по-умолчанию (одна из валют сайта должна иметь курс 1, она называется базовой, остальные валюты имеют курс относительно базовой валюты);
  • SORT - порядок сортировки;
  • NUMCODE - трехзначный цифровой код валюты;
  • BASE - флаг (Y/N) является ли валюта базовой;
  • MODIFIED_BY - ID последнего пользователя, изменившего валюту.

    • Если в массиве нет ни одного из полей, то обращения к базе данных не будет, но вернет код валюты.

Возвращаемые значения

Код валюты, параметры которой изменили, или false в случае ошибки (текст получается через $APPLICATION->GetException()).


Класс CCurrencyLang

CCurrencyLang - класс для работы с языкозависимыми параметрами валют (название, формат и пр.)

Методы класса

Метод | Описание | С версии
Add | Метод добавляет новые языкозависимые параметры валюты. |
CurrencyFormat | Метод форматирует цену в соответствии с настройками валюты. | 14.0.0
Delete | Метод удаляет языкозависимые свойства валюты для указываемого языка. |
GetByID | Метод возвращает массив языкозависимых параметров валюты для указываемого языка. |
GetCurrencyFormat | Метод возвращает массив языкозависимых параметров валюты для указываемого языка. |
GetFormatDescription | Метод позволяет получить формат валюты на текущем языке для форматирования цен. |
Update | Метод обновляет языкозависимые параметры валюты для указываемого языка. |
disableUseHideZero | Метод служит для временного отключения использования настройки "В публичной части не показывать незначащие нули в дробной части цены". | 15.0.0
enableUseHideZero | Метод служит для возвращения в исходное состояние использования настройки "В публичной части не показывать незначащие нули в дробной части цены". | 15.0.0
formatValue | Метод используется для форматирования значения по переданному формату. |
isAllowUseHideZero | Метод проверяет снят ли флаг, запрещающий использование настройки "В публичной части не показывать незначащие нули в дробной части цены". | 15.0.0


Add

Валюты>Классы>CCurrencyLang>Add (3.3.2)

CCurrencyLang::Add

Описание и параметры

bool
CCurrencyLang::Add(
 array arFields
);

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

Параметры метода

Параметр Описание
arFields

Ассоциативный массив параметров валюты, ключами которого являются названия параметров, а значениями - значения параметров.

Допустимые ключи:
CURRENCY - код валюты, для которой добавляются языкозависимые параметры (обязательно должен присутствовать);
LID - код языка (обязательный);
FORMAT_STRING - строка формата, в соответствии с которой выводится суммы в этой валюте на этом языке (обязательный);
FULL_NAME - полное название валюты;
DEC_POINT - символ, являющийся десятичной точкой при выводе сумм (обязательный);
THOUSANDS_SEP - разделитель тысяч при выводе;
DECIMALS - количество знаков после запятой при выводе (обязательный);
HIDE_ZERO - (Y|N) определяет скрывать или показывать незначащие нули в дробной части (результат будет виден только в публичной части).

Возвращаемые значения

Возвращает значение True в случае успешного добавления и False - в противном случае

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

<?
$arFields = array(
    "FORMAT_STRING" => "# руб", // символ # будет заменен
                                // реальной суммой при выводе
    "FULL_NAME" => "Рубль",
    "DEC_POINT" => ".",
    "THOUSANDS_SEP" => "\xA0",  // неразрывный пробел
    "DECIMALS" => 2,
    "CURRENCY" => "RUB",
    "LID" => "ru"
);

// Если запись существует, обновляем,
// иначе добавляем новую
$db_result_lang = CCurrencyLang::GetByID("RUB", "ru");
if ($db_result_lang)
    CCurrencyLang::Update("RUB", "ru", $arFields);
else
    CCurrencyLang::Add($arFields);
?>


CurrencyFormat

Валюты>Классы>CCurrencyLang>CurrencyFormat (доступен с 14.0.0)

CCurrencyLang::CurrencyFormat

string
CCurrencyLang::CurrencyFormat(
 float price,
 string currency,
 bool useTemplate
);

Форматирует цену в соответствии с настройками валюты. В случае вызова в административной части дополнительно выполняет очистку формата от тегов и скриптов. Если метод вызывается в публичной части, то будет задействован параметр HIDE_ZERO, который отвечает за скрытие незначащих нулей в дробной части. Метод статический.

Примечание: используется взамен функций CurrencyFormat и CurrencyFormatNumber, которые считаются устаревшими с версии модуля 14.0.0.

Параметры метода

Параметр | Описание
price | Цена (денежная сумма), которую нужно сконвертировать.
currency | Код валюты.
useTemplate | Если указано true, то работает как CurrencyFormat и вызывается событие [link=869185]CurrencyFormat[/link]. Если задано false, то работает как CurrencyFormatNumber.

Возвращаемые значения

Возвращает отформатированную строку.


Delete

Валюты>Классы>CCurrencyLang>Delete (3.3.2)

CCurrencyLang::Delete

bool
CCurrencyLang::Delete(
 string currency,
 string lang
);

Метод удаляет языкозависимые свойства валюты currency для языка lang. Нестатический метод.

Параметры метода

Параметр | Описание
currency | Код валюты для удаления.
lang | Код языка.

Возвращаемые значения

Метод возвращает True в случае успешного удаления и False - в противном случае.


disableUseHideZero

Валюты>Классы>CCurrencyLang>disableUseHideZero (доступен с 15.0.0)

CCurrencyLang::disableUseHideZero

CurrencyLang::disableUseHideZero(
);

Метод служит для временного отключения использования настройки В публичной части не показывать незначащие нули в дробной части цены. Для возвращения в исходное состояние необходимо вызвать метод CCurrencyLang::enableUseHideZero. Метод статический.

Параметры вызова

Нет.

Возвращаемое значение

Нет.


enableUseHideZero

Валюты>Классы>CCurrencyLang>enableUseHideZero (доступен с 15.0.0)

CCurrencyLang::enableUseHideZero

CCurrencyLang::enableUseHideZero(
);

Метод служит для возвращения после вызова метода CurrencyLang::disableUseHideZero в исходное состояние использования настройки В публичной части не показывать незначащие нули в дробной части цены. Метод статический.

Параметры вызова

Нет.

Возвращаемое значение

Нет.


formatValue

Валюты>Классы>CCurrencyLang>formatValue (доступен с 19.0.0)

CCurrencyLang::formatValue

CCurrencyLang::formatValue(
$value, array $format, $useTemplate = true
);

Метод используется для форматирования значения по переданному формату. Статический метод.

Возвращаемое значение – строка.

Параметры метода

Параметр | Описание
value | Значение.
format | Формат.
useTemplate | Использовать шаблон или нет. Если указано true, то работает как CurrencyFormat и вызывается событие [link=869185]CurrencyFormat[/link]. Если задано false, то работает как CurrencyFormatNumber.


GetByID

Валюты>Классы>CCurrencyLang>GetByID (3.3.2)

CCurrencyLang::GetByID

Описание и параметры

array
CCurrencyLang::GetByID(
 string currency,
 string lang
);

Метод возвращает массив языкозависимых параметров валюты currency для языка lang. Нестатический метод.

Параметры метода

Параметр | Описание
currency | Код валюты, языкозависимые параметры которой нужны.
lang | Код языка.

Возвращаемые значения

Ассоциативный массив с ключами

Ключ | Описание
CURRENCY | Код валюты (трехсимвольный).
LID | Код языка.
FORMAT_STRING | Строка формата, в соответствии с которой выводится суммы в этой валюте на этом языке.
FULL_NAME | Полное название валюты.
DEC_POINT | Символ, являющийся десятичной точкой при выводе сумм.
THOUSANDS_SEP | Разделитель тысяч при выводе.
DECIMALS | Количество знаков после запятой при выводе.
HIDE_ZERO | (Y|N) Определяет скрывать или показывать незначащие нули в дробной части (результат будет виден только в публичной части).

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

<?
$arFields = array(
    "FORMAT_STRING" => "# руб", // символ # будет заменен
                                // реальной суммой при выводе
    "FULL_NAME" => "Рубль",
    "DEC_POINT" => ".",
    "THOUSANDS_SEP" => "\xA0",  // неразрывный пробел
    "DECIMALS" => 2,
    "CURRENCY" => "RUB",
    "LID" => "ru"
);

// Если запись существует, то обновляем, иначе добавляем новую
$db_result_lang = CCurrencyLang::GetByID("RUB", "ru");
if ($db_result_lang)
    CCurrencyLang::Update("RUB", "ru", $arFields);
else
    CCurrencyLang::Add($arFields);
?>


GetCurrencyFormat

Валюты>Классы>CCurrencyLang>GetCurrencyFormat (3.3.2)

CCurrencyLang::GetCurrencyFormat

Описание и параметры

array
CCurrencyLang::GetCurrencyFormat(
 string currency,
 string lang = LANGUAGE_ID
);

Метод возвращает массив языкозависимых параметров валюты currency для языка lang.

Метод аналогичен методу CCurrencyLang::GetByID, за исключение того, что возвращаемый результат в методе CCurrencyLang::GetCurrencyFormat кешируется. Поэтому повторный вызов метода с теми же кодами валюты и языка в рамках одной страницы не приводит к дополнительному запросу к базе данных. Нестатический метод.

Параметры метода

Параметр | Описание
currency | Код валюты, языкозависимые параметры которой нужны.
lang | Код языка. Необязательный параметр.

Возвращаемые значения

Ассоциативный массив с ключами:

Ключ | Описание
CURRENCY | Код валюты (трехсимвольный)
LID | Код языка.
FORMAT_STRING | Строка формата, в соответствии с которой выводится суммы в этой валюте на этом языке.
FULL_NAME | Полное название валюты.
DEC_POINT | Символ, являющийся десятичной точкой при выводе сумм.
THOUSANDS_SEP | Разделитель тысяч при выводе.
DECIMALS | Количество знаков после запятой при выводе.
HIDE_ZERO | (Y|N) Определяет скрывать или показывать незначащие нули в дробной части (результат будет виден только в публичной части).

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

<?
function MyFormatCurrency($fSum, $strCurrency)
{
    if (!isset($fSum) || strlen($fSum)<=0)
        return "";

    $arCurFormat = CCurrencyLang::GetCurrencyFormat($strCurrency);

    if (!isset($arCurFormat["DECIMALS"]))
        $arCurFormat["DECIMALS"] = 2;

    $arCurFormat["DECIMALS"] = IntVal($arCurFormat["DECIMALS"]);

    if (!isset($arCurFormat["DEC_POINT"]))
        $arCurFormat["DEC_POINT"] = ".";

    if (!isset($arCurFormat["THOUSANDS_SEP"]))
        $arCurFormat["THOUSANDS_SEP"] = "\\"."xA0";

    if (!isset($arCurFormat["FORMAT_STRING"]))
        $arCurFormat["FORMAT_STRING"] = "#";

    $num = number_format($fSum,
                         $arCurFormat["DECIMALS"],
                         $arCurFormat["DEC_POINT"],
                         $arCurFormat["THOUSANDS_SEP"]);

    return str_replace("#",
                       $num,
                       $arCurFormat["FORMAT_STRING"]);
}

echo "Сумма 11800.95 руб на текущем языке будет выглядеть так: ";
echo MyFormatCurrency(11800.95, "RUR");
?>


GetFormatDescription

Валюты>Классы>CCurrencyLang>GetFormatDescription (доступен с 14.5.0)

CCurrencyLang::GetFormatDescription

Описание и параметры

array
CCurrencyLang::GetCurrencyFormat(
string currency
);

Метод позволяет получить формат валюты на текущем языке для форматирования цен.

Проверяет наличие всех необходимых ключей: если каких-либо ключей нет, то устанавливает их значения по умолчанию.

Проверяет, в рамках какой части сайта вызван метод: если административной части продуктов «1С-Битрикс: Управление сайтом» или «Битрикс24», то формат валюты приводится к html-безопасному виду (вырезаются html-теги и java-скрипты).

Параметры метода

Параметр | Описание
currency | Код валюты, языкозависимые параметры которой нужны.

Возвращаемые значения

Ассоциативный массив с ключами:

Ключ | Описание
FORMAT_STRING | Строка формата, в соответствии с которой выводится суммы в этой валюте на этом языке.
DEC_POINT | Символ, являющийся десятичной точкой при выводе сумм.
THOUSANDS_SEP | Разделитель тысяч при выводе.
THOUSANDS_SEP | Разделитель тысяч при выводе.
THOUSANDS_VARIANT | Предустановленный вариант разделителя тысяч или признак, что разделитель кастомизированный.
DECIMALS | Количество знаков после запятой при выводе.
HIDE_ZERO | (Y|N) Определяет скрывать или показывать незначащие нули в дробной части (результат будет виден только в публичной части).

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

\Bitrix\Main\Loader::includeModule('currency');
$format = \CCurrencyLang::GetFormatDescription('RUB');
$value = 121.15;
$result = \CCurrencyLang::formatValue($value, $format);


isAllowUseHideZero

Валюты>Классы>CCurrencyLang>isAllowUseHideZero (доступен с 15.0.0)

CCurrencyLang::isAllowUseHideZero

bool
CurrencyLang::isAllowUseHideZero(
);

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

Параметры вызова

Нет.

Возвращаемое значение

Если флаг снят, то метод возвращает true, в противном случае - false.


Update

Валюты>Классы>CCurrencyLang>Update (3.3.2)

CCurrencyLang::Update

Описание и параметры

bool
CCurrencyLang::Update(
 string currency,
 string lang,
 array arFields
);

Метод обновляет языкозависимые параметры валюты currency для языка lang. Нестатический метод.

Параметры вызова

Параметр | Описание
currency | Код валюты, языкозависимые параметры которой нужно обновить.
lang | Код языка, для которого языкозависимые параметры валюты нужно обновить.
arFields

Ассоциативный массив новых параметров валюты, ключами которого являются названия параметров, а значениями - значения параметров.

Допустимые ключи:
CURRENCY - код валюты;
LID - код языка;
FORMAT_STRING - строка формата, в соответствии с которой выводится суммы в этой валюте на этом языке;
FULL_NAME - полное название валюты;
DEC_POINT - символ, являющийся десятичной точкой при выводе сумм;
THOUSANDS_SEP - разделитель тысяч при выводе;
DECIMALS - количество знаков после запятой при выводе;
HIDE_ZERO - (Y|N) определяет скрывать или показывать незначащие нули в дробной части (результат будет виден только в публичной части).

Возвращаемые значения

Возвращает значение True в случае успешного добавления и False - в противном случае

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

<?
$arFields = array(
    "FORMAT_STRING" => "# руб", // символ # будет заменен
                                // реальной суммой при выводе
    "FULL_NAME" => "Рубль",
    "DEC_POINT" => ".",
    "THOUSANDS_SEP" => "\xA0",  // неразрывный пробел
    "DECIMALS" => 2,
    "CURRENCY" => "RUB",
    "LID" => "ru"
);

// Если запись существует, то обновляем, иначе добавляем новую
$db_result_lang = CCurrencyLang::GetByID("RUB", "ru");
if ($db_result_lang)
    CCurrencyLang::Update("RUB", "ru", $arFields);
else
    CCurrencyLang::Add($arFields);
?>


Класс CCurrencyRates

CCurrencyRates - класс для работы с курсами валют: сохранение, конвертация и пр.

Методы класса

Метод | Описание | С версии
Add | Метод добавляет новую запись в таблицу курсов валют. |
CheckFields | Метод выполняет проверку полей курса при добавлении или изменении. | 11.5.1
ConvertCurrency | Метод переводит сумму из одной валюты в другую по курсу, установленному на конкретную дату. |
Delete | Удаляет запись из таблицы курсов валют. |
GetByID | Возвращает параметры курса валют. |
GetConvertFactor | Метод возвращает коэффициент для перевода сумм на конкретную дату. |
GetList | Метод возвращает отсортированный список курсов валют, удовлетворяющих фильтру. |
Update | Метод изменяет параметры записи в таблице курсов валют на значения из передаваемого массива. |


Add

Валюты>Классы>CCurrencyRates>Add (3.3.2)

CCurrencyRates::Add

Описание и параметры

bool
CCurrencyRates::Add(
 array arFields
);

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

Сбрасывает кеш currency_rate в случае успешного добавления, сбрасывает тэгированный кеш currency_id_КОД_ВАЛЮТЫ.

Параметры вызова

Параметр Описание
arFields

Ассоциативный массив параметров курса валюты, ключами которого являются названия параметров, а значениями - значения параметров.

Допустимые ключи (Все поля обязательны):

  • CURRENCY - код валюты, для которой добавляется курс;
  • DATE_RATE - дата БЕЗ ВРЕМЕНИ, на которую устанавливается курс;
  • RATE_CNT - количество единиц валюты, которое участвует в задании курса валюты (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это количество единиц);
  • RATE - курс валюты.

Возвращаемые значения

Возвращает значение ID курса валют в случае успешного добавления и False - в противном случае. Текст ошибки выводится с помощью $APPLICATION->GetException().

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

<?
// Считаем, что RUR - базовая валюта
// Курс ирландских крон (ISK) на 21.02.2005:  10 ISK = 48.1756 RUR

$arFields = array(
    "RATE" => 48.1756,
    "RATE_CNT" => 10,
    "CURRENCY" => "ISK",
    "DATE_RATE" => "21.02.2005"
    );

if (!CCurrencyRates::Add($arFields))
    echo "Ошибка добавления курса";
?>


CheckFields

Валюты>Классы>CCurrencyRates>CheckFields (11.5.1)

CCurrencyRates::CheckFields

Описание и параметры

boolean function
CCurrencyRates::CheckFields(
 ACTION,
 arFields
 ID = 0
);

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

Параметры вызова

Параметр | Описание
ACTION | Равно ADD или UPDATE с учетом регистра. Если значение в другом регистре или другое значение, то возвращает false без текста ошибки (exception). Если значение равно UPDATE, то проверяется ID. Если ID <= 0, то возвращается ошибка. В случае наличия в arFields ключа ID удалит его.
arFields Значения ключей:
  • CURRENCY - не пустой код валюты, обрезается до 3 символов. Обязательно будет проверен, если присутствует в массиве (даже если это обновление).
  • DATE_RATE - дата курса БЕЗ ВРЕМЕНИ. Проверяется на валидность (должна быть в формате сайта/языка). Обязательно будет проверена, если присутствует в массиве (даже если обновление).
  • RATE_CNT - номинал. Может быть только целым числом > 0.
  • RATE - курс. Может быть только вещественным числом > 0.

При добавлении обязательны все. При обновлении - RATE_CNT и RATE могут отсутсвовать.
ID | Код обновляемого курса. Необязательный параметр.

Возвращаемое значение

В случае успеха возвращает true. В случае ошибки - false. Текст ошибки можно получить через $APPLICATION->GetException().

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

$ID = 7;
    $arFields = array(
        'CURRENCY' => 'RUB',
        'DATE_RATE' => '21.02.2012',
        'RATE_CNT' => 7
    );

    $mxRes = CCurrencyRates::CheckFields('ADD', $arFields); // вернет ошибку, т.к. нет курса (RATE)
    $mxRes = CCurrencyRates::CheckFields('UPDATE', $arFields, $ID); // ошибки не будет, т.к. при обновлении RATE не является обязательным;


ConvertCurrency

Валюты>Классы>CCurrencyRates>ConvertCurrency (3.3.2)

CCurrencyRates::ConvertCurrency

Описание и параметры

float
CCurrencyRates::ConvertCurrency(
 float valSum,
 string curFrom,
 string curTo,
 string valDate = ""
);

Метод переводит сумму valSum из валюты curFrom в валюту curTo по курсу, установленному на дату valDate. Метод статический.

Параметры вызова

Параметр | Описание
valSum | Сумма в валюте curFrom, которую нужно перевести в валюту curTo
curFrom | Исходная валюта.
curTo | Конечная валюта.
valDate | Дата, по курсу на которую нужно осуществить перевод. Если дата пуста, то перевод идет по текущему курсу. Необязательный параметр.

Возвращаемые значения

Сумма в новой валюте

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

<?
// предполагаем, что валюты USD и EUR существуют в базе
$val = 11.95; // сумма в USD
$newval = CCurrencyRates::ConvertCurrency($val, "USD", "EUR");
echo $val." USD = ".$newval." EUR";
?>
<?
// способ конвертации валюты для списка
if (CModule::IncludeModule('currency')) {
   $factor = CCurrencyRates::GetConvertFactor('UEE', 'RUB');
} else {
   $factor = 1;
}

foreach ($arResult['ITEMS'] as $i => &$arItem) {
   $arItem['PROPERTY_PRICE_VALUE'] = number_format($arItem['PROPERTY_PRICE_VALUE'] * $factor, 0, '.', ' ');
}
?>


Delete

Валюты>Классы>CCurrencyRates>Delete (3.3.2)

CCurrencyRates::Delete

bool
CCurrencyRates::Delete(
 int ID
);

Удаляет запись с кодом ID из таблицы курсов валют. Если удаляется несуществующий курс (нет курса с таким ID) - будет ошибка. Метод статический.

В случае успеха сбросится кеш currency_rate и тэгированный currency_id_КОД_ВАЛЮТЫ.

Параметры вызова

Параметр | Описание
ID | Код записи для удаления.

Возвращаемые значения

Возвращает значение True в случае успешного добавления и False - в противном случае. Текст ошибки выводится с помощью $APPLICATION->GetException.


GetByID

Валюты>Классы>CCurrencyRates>GetByID (3.3.2)

CCurrencyRates::GetByID

array
CCurrencyRates::GetByID(
 int ID
);

Возвращает параметры курса валют с кодом ID. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код курса.

Возвращаемые значения

Ассоциативный массив с ключами

Ключ | Описание
ID | Код курса.
CURRENCY | Код валюты.
DATE_RATE | Дата, за которую установлен курс.
RATE_CNT | количество единиц валюты, которое участвует в задании курса валюты (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это количество единиц)
RATE | курс валюты (одна из валют сайта должна иметь курс "по-умолчанию" 1, она называется базовой, остальные валюты имеют курс относительно базовой валюты)


GetConvertFactor

Валюты>Классы>CCurrencyRates>GetConvertFactor (с версии 3.3.2 до версии 16.0.0)

CCurrencyRates::GetConvertFactor

Описание и параметры

float
CCurrencyRates::GetConvertFactor(
 string curFrom,
 string curTo,
 string valDate = ""
);

Метод возвращает коэффициент для перевода сумм из валюты curFrom в валюту curTo по курсу, установленному на дату valDate. Метод статический.

С версии 16.0.0 вместо этого метода используйте GetConvertFactorEx.

Параметры вызова

Параметр | Описание
curFrom | Исходная валюта.
curTo | Валюта назначения.
valDate | Дата, по курсу на которую нужно осуществить перевод. Если дата пуста, то перевод идет по текущему курсу. Необязательный параметр. Дата должна быть указана в формате YYYY-MM-DD.

Возвращаемые значения

Коэффициент для перевода.

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

<?
$arVals = array(11.95, 18.27, 5.01);
$rate_cost = CCurrencyRates::GetConvertFactor("RUR", "USD");
for ($i = 0; $i < count($arVals); $i++)
{
    echo $arVals[$i]." RUR = ".Round($rate_cost*$arVals[$i], 2)." USD";
}
?>


GetConvertFactorEx

Валюты>Классы>CCurrencyRates>GetConvertFactorEx (доступен с 11.5.0)

CCurrencyRates::GetConvertFactorEx

float
CCurrencyRates::GetConvertFactorEx(
 string curFrom,
 string curTo,
 string valDate = ""
);

Метод возвращает коэффициент для перевода сумм из валюты curFrom в валюту curTo по курсу, установленному на дату valDate. Метод статический.

Параметры вызова

Параметр | Описание
curFrom | Исходная валюта.
curTo | Валюта назначения.
valDate | Дата, по курсу на которую нужно осуществить перевод. Если дата пуста, то перевод идет по текущему курсу. Необязательный параметр. Дата должна быть указана в формате YYYY-MM-DD.

Возвращаемые значения

Коэффициент для перевода.


GetList

Валюты>Классы>CCurrencyRates>GetList (3.3.2)

CCurrencyRates::GetList

Описание и параметры

CDBResult
CCurrencyRates::GetList(
 string &by,
 string &order,
 array arFilter = Array()
);

Метод возвращает список курсов валют, удовлетворяющих фильтру arFilter, отсортированный по полю by в направлении order. Метод статический.

Параметры вызова

Параметр Описание
by Переменная , содержащая название поля для сортировки. Доступные названия:
date - дата курса (по умолчанию)
curr - валюта
rate - курс.
order Переменная, содержащая направление сортировки. Допустимы значения:
asc - по возрастанию (по умолчанию)
desc - по убыванию.
arFilter

Фильтр на записи представляет собой ассоциативный массив, в котором ключами являются названия фильтруемых полей, а значениями - условия фильтра. Необязательный параметр.

Допустимые поля для фильтра:
CURRENCY - код валюты
DATE_RATE - дата курса (выбираются записи с датами больше или равными указанной)
!DATE_RATE - дата курса (выбираются записи с датами меньше указанной)

Возвращаемые значения

Объект класса CDBResult, содержащий записи с ключами

Ключ | Описание
ID | Код курса.
CURRENCY | Код валюты.
DATE_RATE | Дата, за которую установлен курс.
RATE_CNT | количество единиц валюты, которое участвует в задании курса валюты (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это количество единиц)
RATE | курс валюты (одна из валют сайта должна иметь курс "по-умолчанию" 1, она называется базовой, остальные валюты имеют курс относительно базовой валюты)

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

<?
// Выведем все курсы USD, отсортированные по дате
$arFilter = array(
    "CURRENCY" => "USD"
    );
$by = "date";
$order = "desc";

$db_rate = CCurrencyRates::GetList($by, $order, $arFilter);
while($ar_rate = $db_rate->Fetch())
{
    echo $ar_rate["RATE"]."<br>";
}
?>


Update

Валюты>Классы>CCurrencyRates>Update (3.3.2)

CCurrencyRates::Update

bool
CCurrencyRates::Update(
 int ID,
 array arFields
);

Метод обновляет параметры записи в таблице курсов валют на значения из массива arFields. Перед обновлением выполняется проверка, нет ли курса этой валюты на эту дату с другим ID. Если есть - то произойдет ошибка. Метод статический.

В случае успешного обновления сбрасываются кеш currency_rate и тэгированный кеш currency_id_КОД_ВАЛЮТЫ.

Параметры вызова

Параметр | Описание
ID | Код записи.
arFields

Ассоциативный массив новых параметров курса валюты, ключами которого являются названия параметров, а значениями - значения параметров.

Допустимые ключи:

  • CURRENCY - код валюты (обязательный);
  • DATE_RATE - дата БЕЗ ВРЕМЕНИ, за которую устанавливается курс (обязательный);
  • RATE_CNT - количество единиц валюты, которое участвует в задании курса валюты (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это количество единиц);
  • RATE - курс валюты.

Возвращаемые значения

В случае успеха возвращает ID изменённого курса, иначе false. Текст ошибки выводится через $APPLICATION->GetException().


События

Событие | Вызывается | Метод | С версии
OnBeforeCurrencyAdd | перед добавлением валюты. | CCurrency::Add | 14.0.0
OnCurrencyAdd | в случае успешного добавления новой валюты. | CCurrency::Add | 14.0.0
OnBeforeCurrencyUpdate | перед обновлением существующей валюты. | CCurrency::Update | 14.0.0
OnCurrencyUpdate | в случае успешного изменения валюты. | CCurrency::Update | 14.0.0
OnBeforeCurrencyDelete | перед удалением валюты. | CCurrency::Delete | 3.3.2
OnCurrencyDelete | при удалении существующей валюты. | CCurrency::Delete | 3.3.2
[link=869185]CurrencyFormat[/link] | при форматировании валюты. | CCurrencyLang::CurrencyFormat | 8.0.2
OnBeforeCurrencyRateAdd | перед добавлением курса валюты. | CCurrencyRates::Add | 14.0.0
OnCurrencyRateAdd | в случае успешного добавления нового курса валюты. | CCurrencyRates::Add | 14.0.0
OnBeforeCurrencyRateUpdate | перед обновлением существующего курса валюты. | CCurrencyRates::Update | 14.0.0
OnCurrencyRateUpdate | в случае успешного изменения курса валюты. | CCurrencyRates::Update | 14.0.0
OnBeforeCurrencyRateDelete | перед удалением курса валюты. | CCurrencyRates::Delete | 14.0.0
OnCurrencyRateDelete | при удалении существующего курса валюты. | CCurrencyRates::Delete | 14.0.0


OnBeforeCurrencyAdd

bool функция-обработчик(
   array arFields
);

OnBeforeCurrencyAdd - событие, вызываемое в методе CCurrency::Add перед добавлением валюты и перед проверкой полей. Позволяет изменить вносимые данные либо вообще отменить запись.

Параметры

Параметр | Описание
arFields | Ассоциативный массив параметров валюты. Перечень допустимых ключей массива смотрите в CCurrency::Add.

Возвращаемое значение

Возвращает false при отказе, возвращает true при успешном разрешении на добавление.

Смотрите также

  • CCurrency::Add


OnCurrencyAdd

функция-обработчик(
   string currency,
   array arFields
);

OnCurrencyAdd - событие, вызываемое в случае успешного добавления новой валюты.

Параметры

Параметр | Описание
currency | Код валюты.
arFields | Ассоциативный массив параметров валюты. Перечень допустимых ключей массива смотрите в CCurrency::Add.

Возвращаемое значение

Нет.

Смотрите также

  • CCurrency::Add


OnBeforeCurrencyUpdate

bool функция-обработчик(
   string currency,
   array arFields
);

OnBeforeCurrencyUpdate - событие, вызываемое перед обновлением существующей валюты. Позволяет изменить вносимые данные.

Параметры

Параметр | Описание
currency | Код валюты.
arFields | Ассоциативный массив параметров валюты. Перечень допустимых ключей массива смотрите в CCurrency::Update.

Возвращаемое значение

Может вернуть false, если нужно воспрепятствовать обновлению. В противном случае нужно вернуть значение true.

Смотрите также

  • CCurrency::Update


OnCurrencyUpdate

функция-обработчик(
   string currency,
   array arFields
);

OnCurrencyUpdate - событие, вызываемое в случае успешного изменения валюты.

Параметры

Параметр | Описание
currency | Код валюты.
arFields | Ассоциативный массив параметров валюты. Перечень допустимых ключей массива смотрите в CCurrency::Update.

Возвращаемое значение

Нет.

Смотрите также

  • CCurrency::Update


OnBeforeCurrencyDelete

bool
функция-обработчик(
   string currency
);

OnBeforeCurrencyDelete - событие, вызываемое перед удалением валюты в методе CCurrency::Delete.

Параметры

Параметр | Описание
currency | Код валюты.

Возвращаемое значение

  • true - удаление разрешено;
  • false - удаление отменено.

Смотрите также

  • CCurrency::Delete


OnCurrencyDelete

функция-обработчик(
    string currency
);

OnCurrencyDelete - событие, вызываемое при удалении существующей валюты в методе CCurrency::Delete. Может быть использовано для выполнения каких-либо действий при удалении валюты. Возвращаемое значение обработчика игнорируется.

Параметры

Параметр | Описание
currency | Код валюты.

Возвращаемое значение

Нет.

Смотрите также

  • CCurrency::Delete


CurrencyFormat

string функция-обработчик(
   float price,
   string currency
);

CurrencyFormat - событие, вызываемое при форматировании цены в соответствии с настройками валюты.

Параметры

Параметр | Описание
price | Цена (денежная сумма), которую нужно отформатировать.
currency | Валюта, по правилам которой нужно производить форматирование.

Возвращаемое значение

Если обработчик возвращает непустую строку, то она будет возвращена и как результат работы метода CCurrencyLang::CurrencyFormat.

Смотрите также

  • CCurrencyLang::CurrencyFormat


OnBeforeCurrencyRateAdd

bool функция-обработчик(
   array arFields
);

OnBeforeCurrencyRateAdd - событие, вызываемое в методе CCurrencyRates::Add перед добавлением курса валюты и перед проверкой полей. Позволяет изменить вносимые данные либо вообще отменить запись.

Параметры

Параметр | Описание
arFields | Ассоциативный массив параметров курса валюты. Перечень допустимых ключей массива смотрите в CCurrencyRates::Add.

Возвращаемое значение

Возвращает false при отказе, а true - при успешном разрешении на добавление.

Смотрите также

  • CCurrencyRates::Add


OnCurrencyRateAdd

функция-обработчик(
   int ID,
   array arFields
);

OnCurrencyRateAdd - событие, вызываемое в случае успешного добавления нового курса валюты.

Параметры

Параметр | Описание
ID | Код курса валюты.
arFields | Ассоциативный массив параметров курса валюты. Перечень допустимых ключей массива смотрите в CCurrencyRates::Add.

Возвращаемое значение

Нет.

Смотрите также

  • CCurrencyRates::Add


OnBeforeCurrencyRateUpdate

bool функция-обработчик(
   int ID,
   array arFields
);

OnBeforeCurrencyRateUpdate - событие, вызываемое перед обновлением существующего курса валюты. Позволяет изменить вносимые данные.

Параметры

Параметр | Описание
ID | Код курса валюты.
arFields | Ассоциативный массив параметров курса валюты. Перечень допустимых ключей массива смотрите в CCurrencyRates::Update.

Возвращаемое значение

Может вернуть false, если нужно воспрепятствовать обновлению. В противном случае нужно вернуть значение true.

Смотрите также

  • CCurrencyRates::Update


OnCurrencyRateUpdate

функция-обработчик(
   int ID,
   array arFields
);

OnCurrencyRateUpdate - событие, вызываемое в случае успешного изменения курса валюты.

Параметры

Параметр | Описание
ID | Код курса валюты.
arFields | Ассоциативный массив параметров курса валюты. Перечень допустимых ключей массива смотрите в CCurrencyRates::Update.

Возвращаемое значение

Нет.

Смотрите также

  • CCurrencyRates::Update


OnBeforeCurrencyRateDelete

bool функция-обработчик(
   int ID
);

OnBeforeCurrencyRateDelete - событие, вызываемое перед удалением курса валюты в методе CCurrencyRates::Delete.

Параметры

Параметр | Описание
ID | Код курса валюты.

Возвращаемое значение

  • true - удаление разрешено;
  • false - удаление отменено.

Смотрите также

  • CCurrencyRates::Delete


OnCurrencyRateDelete

функция-обработчик(
   int ID
);

OnCurrencyRateDelete - событие, вызываемое при удалении существующего курса валюты в методе CCurrencyRates::Delete. Может быть использовано для выполнения каких-либо действий при удалении курса валюты.

Параметры

Параметр | Описание
ID | Код курса валюты.

Возвращаемое значение

Нет.

Смотрите также

  • CCurrencyRates::Delete


Функции

Функция | Описание | С версии | До версии
CurrencyFormat | Форматирует сумму price в соответствии с правилами форматирования для валюты currency на текущем языке. | 5.1.0 | 14.0.0
CurrencyFormatNumber | Форматирует цену price в соответствии с настройками валюты currency для текущего языка без использования шаблона. | 11.5.0 | 14.0.0


CurrencyFormat

Описание и параметры

string
CurrencyFormat(
 float price,
 string currency
);

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

Примечание: вместо этой устаревшей функции рекомендуется использовать новую функцию CurrencyFormat класса CCurrencyLang.

Параметры функции

Параметр | Описание
price | Цена (денежная сумма), которую нужно сформатировать.
currency | Валюта, по правилам которой нужно производить форматирование.

Возвращаемые значения

Возвращает сформатированную строку.

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

<?
echo CurrencyFormat(11800.95, "USD");
?>
<?
// Задать свой формат вывода цены можно следующим образом

AddEventHandler("currency", "CurrencyFormat", "myFormat");

function myFormat($fSum, $strCurrency)
{
   return number_format ( $fSum, 2, '.', ' ' ).' Рублей.';
}

echo CurrencyFormat(1234.5678, 'RUB');
?>


CurrencyFormatNumber

string
CurrencyFormatNumber(
 float price,
 string currency
);

Функция форматирует цену price в соответствии с настройками валюты currency для текущего языка без использования шаблона.

Примечание: вместо этой устаревшей функции рекомендуется использовать новую функцию CurrencyFormat класса CCurrencyLang.

Параметры функции

Параметр | Описание
price | Цена (денежная сумма), которую нужно сформатировать.
currency | Валюта, по правилам которой нужно производить форматирование.

Возвращаемые значения

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


Для разработчиков

Информация представленная в данном разделе содержит сведения о классах модуля Веб-аналитика, необходимых для сбора и отображения статистики сайта.

О работе с модулем смотрите в учебном курсе [image].

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("statistic")){
//здесь можно использовать функции и классы модуля
}
?>

Модуль включает в себя следующие Компоненты 2.0:
Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Таблица статистики | statistic.table | Выводит таблицу статистики по сайту, кроме того, его настройки позволяют отключить подсчет статистики для администраторов.


Инсталляция

Для инсталляции модуля требуется выполнить следующие действия.

  1. На странице списка модулей нажмите кнопку Установить напротив модуля статистики.
  2. Введите начальные параметры, перечисленные в таблице ниже.
    Параметр Описание
    Перегенерировать индекс для поиска страны по IP адресу ? Подразумевает пересоздание индекса по базе IP адресов для определения страны посетителя.

    Объем базы IP адресов составляет не менее 60 000 записей. Поэтому, пересоздание индекса может занять определённое время. Если ваш сайт в момент инсталляции нагружен потоком посетителей, то лучше не устанавливать данный флаг и при необходимости произвести переиндексацию базы на странице настроек модуля "Статистика".
    Начальное значение для количества хитов В случае, если вы инсталлируете статистику в уже работавший до этого сайт с накопленной статистикой, можно указать начальное значение для счетчика хитов. Это значение, в частности, будет использовано при выводе результирующей таблицы статистики в публичной части (если такая таблица у вас выводится).

    Данный параметр доступен в случае, если инсталляция модуля производится в базу, в которой отсутствуют таблицы модуля "Статистика".
    Начальное значение для количества хостов Соответственно начальное значение для счетчика хостов.

    Данный параметр доступен в случае, если инсталляция модуля производится в базу, в которой отсутствуют таблицы модуля "Статистика".
    Начальное значение для количества посетителей Соответственно начальное значение для счетчика посетителей.

    Данный параметр доступен в случае, если инсталляция модуля производится в базу, в которой отсутствуют таблицы модуля "Статистика".
  3. После нажатия кнопки Установить в базе данных будут созданы таблицы модуля, а также скопированы необходимые скрипты.
  4. Если вы подключаете модуль "Статистика" на сайте, созданном не на базе системы "1С-Битрикс: Управление сайтом" (например, при инсталляции редакции "Веб-аналитика"), следует для всех страниц сайта, для которых вам необходимо собирать статистику:
    • в самом начале файла страницы добавить следующий код:
      <?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/include_statistics_before.php");
?>
    • в самом конце файла страницы добавить следующий код:
      <?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/include_statistics_after.php");
?>


Список терминов

Ниже перечислены термины, на основе которых базируется идеология модуля "Статистика".

  • Рекламная кампания
  • Идентификаторы рекламной кампании (referer1, referer2)
  • Дополнительный параметр рекламной кампании (referer3)
  • Прямой заход по рекламной кампании
  • Возврат по рекламной кампании
  • Трафик рекламной кампании
  • Внимательность посетителей рекламной кампании
  • Затраты на рекламную кампанию
  • Доходы рекламной кампании
  • Прибыль рекламной кампании
  • Рентабельность рекламной кампании
  • Событие
  • Тип события
  • Идентификаторы типа события (event1, event2)
  • Дополнительный параметр события (event3)
  • Специальный параметр события
  • Обработчик CSV файлов
  • Посетитель
  • Пользователь
  • Новый посетитель
  • Посетители в online
  • UserAgent
  • Сессия
  • Хост
  • Хит
  • Поисковая фраза
  • Поисковая система
  • Домен поисковой системы
  • UserAgent поисковой системы
  • Хит поисковой системы
  • Стоп-лист
  • Запись стоп-листа
  • Маска подсети для стоп-листа
  • Конъюнкция
  • Ссылающийся сайт (страница)
  • Полный путь
  • Отрезок пути
  • IP-адрес
  • Октет IP-адреса
  • Языки в настройках браузера
  • 404 ошибка
  • Метод HTTP запроса
  • Cookie
  • Точка входа
  • Точка выхода
  • Лимит активности
    Рекламная кампания
    В модуле статистики предусмотрен механизм обсчета определённых потоков посетителей, приходящих на сайт. Каждый такой поток можно идентифицировать по ряду признаков:
    1. Наличие в ссылке, ведущей на ваш сайт, одного или двух параметров – referer1, referer2 (либо их синонимов, задаваемых в настройках модуля). Пример подобной ссылки: http://www.bitrixsoft.ru/?referer1=bsm&referer2=doc.
    2. Поисковые системы, с которых могут заходить посетители.
    3. Маски любых ссылающихся страниц.
    4. Маски страниц вашего сайта, на которые приходят посетители.
    Для каждого такого потока посетителей отдельно считаются:
    1. Сессии.
    2. Хиты.
    3. Хосты.
    4. Посетители.
    5. Новые посетители.
    6. Посетители, добавившие сайт в Избранное.
    7. Все события, инициированные посетителями данной рекламной кампании.
    Для ряда этих данных в отчетах по рекламным кампаниям вы можете видеть две цифры:
    • На прямом заходе по рекламной кампании
    • На возврате по рекламной кампании.

    Рекламная кампания определяется только на первом хите сессии.

    Идентификаторы рекламной кампании (referer1, referer2)
    Идентификаторы рекламной кампании (РК) - это два произвольных строковых значения, которые в первую очередь позволяют идентифицировать РК в более понятном виде, чем просто цифровой ID, а во-вторых, позволяют группировать различные РК в соответствующем отчете. Данные идентификаторы могут быть заданы:
    • "Вручную" в форме редактирования/создания РК.
    • Автоматически. Если на первом хите сессии в параметрах страницы присутствуют referer1, referer2 (либо их синонимы) и если в настройках модуля статистики включен параметр "Автоматически создавать рекламные кампании при наличии параметров referer1, referer2 в URL'е", то это позволит автоматически создавать новые РК с идентификаторами, значения которых совпадут в параметрами referer1, referer2.
    Дополнительный параметр рекламной кампании (referer3)
    Задать данный параметр (referer3) можно в ссылке на сайт одновременно с идентификаторами рекламной кампании. Например:

    http://www.bitrixsoft.ru/?referer1=bsm&referer2=doc&referer3=xxx

    Если по такой ссылке зайдет посетитель, то он будет фиксироваться по рекламной кампании с идентификаторами "bsm/doc" и дополнительным параметром "xxx", который будет доступен для просмотра в отчете "Сессии". Цель подобного параметра - персонализировать заход по рекламной кампании.

    Прямой заход по рекламной кампании
    Прямым заходом по рекламной кампании считается сессия, открытая в момент идентификации посетителя как посетителя по той или иной рекламной кампании. Т.е., если вы переходите по ссылке http://www.bitrix.ru/?referer1=bsm&referer2=doc, то после того, как вы зайдете на сайт, у вас откроется сессия и вы будете идентифицированы как посетитель по рекламной кампании: r1: bsm; r2: doc. Пока сессия открыта, вы считаетесь посетителем, сделавшим прямой заход по соответствующей рекламной кампании.

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

    Трафик рекламной кампании
    Под данным термином понимается совокупность таких статистических параметров как:
    1. Сессии;
    2. Хиты;
    3. Хосты;
    4. Посетители;
    5. Новые посетители;
    6. Посетители, добавившие сайт в Избранное;
    7. Все события, инициированные посетителями данной рекламной кампании.

    Внимательность посетителей рекламной кампании
    Среднее количество хитов за одну сессию. Данные параметр отдельно считается для сессии на прямом заходе и на возврате.

    Затраты на рекламную кампанию
    Денежная сумма, потраченная на ту или иную рекламную кампанию. Значение данного параметра может задано в настройках рекламной кампании.

    Доходы рекламной кампании
    Денежная сумма, полученная от посетителей той или иной рекламной кампании.

    Прибыль рекламной кампании
    Разница между доходами и затратами на рекламную кампанию.

    Рентабельность рекламной кампании
    Рентабельность рекламной кампании рассчитывается по формуле (прибыль / расходы) * 100%.

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

    Тип события
    Каждое событие, фиксируемое на сайте имеет свой тип. Тип события представляет из себя совокупность:
    • идентификаторов (event1, event2) типа события
    • названия
    • описания
    • индекса сортировки
    • времени хранения событий данного типа
    • времени хранения динамики количества событий данного типа в разрезе по дням
    • дополнительных настроек

    Идентификаторы типа события (event1, event2)
    Идентификаторы типа события - два произвольных строковых значения, которые, в первую очередь, позволяют идентифицировать тип события в более читабельном виде, чем просто цифровой ID, а во вторых, позволяют группировать различные типы событий в соответствующем отчете. Данные идентификаторы могут быть заданы:
    • "Вручную" в форме редактирования/создания типа события.
    • Автоматически. При создании событий такими методами как CStatEvent::AddByEvents, CStatEvent::AddCurrent. Если тип события, идентификатор которого был указан в параметрах этих методов, не существует, то он автоматически будет создан.

    Дополнительный параметр события (event3)
    Задать данный параметр можно при создании события соответствующими функциями. Значения этих дополнительных параметров можно посмотреть в отчете "События", выводящем каждое событие по отдельности. Цель данного параметра - персонализация каждого отдельного события.

    Специальный параметр события
    Используется для идентификации посетителя, при уходе его на внешний сайт (например на внешнюю платежную систему для оплаты товара), впоследствии специальный параметр может быть использован для фиксации событий, произошедших вне пределов сайта (например оплата того или иного товара) (подробнее см. метод CStatEvent::Add и "Загрузка событий"). Значение данного параметра представляет из себя строку состоящую из:
    • краткий идентификатор [image] (из настроек модуля "Статистика")
    • ID сессии
    • ID посетителя
    • двусимвольный идентификатор страны
    • ID рекламной кампании
    • флаг прямого захода, либо возврата по рекламной кампании
    • двусимвольный идентификатор сайта
    В зависимости от значения параметра "Кодировать дополнительный параметр #EVENT_GID# для событий" (из настроек модуля "Статистика"), данный специальный параметр может быть как в закодированном, так и в открытом виде.

    Обработчик CSV файлов
    Представляет из себя специальный PHP скрипт, главная задача которого - сконвертировать CSV формат отчета о продажах какой либо платежной системы, в стандартный CSV формат принимаемый модулем "Статситика", для загрузки событий. Стандартный CSV формат выглядит как:
    • ID типа события
    • дополнительный параметр события
    • дата и время генерации события
    • специальный параметр события
    • денежная сумма
    • знак денежной суммы: "Y" - положительная сумма; "N" - отрицательная сумма.

    Посетитель
    Посетителем является уникальный цифровой идентификатор, выданный любому браузеру и сохраняющийся в файлах cookie (файлы, используемые браузерами для хранения информации от посещенных ранее сайтов на локальной машине). Если браузер (либо любая другая программа) не поддерживает cookie (обычные и/или сессионные), используется специальный механизм идентификации посетителя по хэш-функции (MD5) от переменных окружения, включающих в себя IP-адрес, настройки браузера, настройки провайдера и другие параметры, характеризующие посетителя в данный момент его захода на сайт.

    Другими словами, посетитель – это один браузер (или любая другая программа), зашедшие на сайт.

    В данном модуле статистики используется различные степени уникальности посетителей. В меню Статистика вы можете видеть количество уникальных посетителей за день, а также количество уникальных посетителей относительно всего времени ведения статистики (с момента инсталляции модуля).

    Для рекламных кампаний, также, как и для хостов, соблюдается уникальность посетителей в пределах данной рекламной кампании. При этом под новыми посетителями понимаются посетители, впервые пришедшие на сайт в обоих случаях.
    Новый посетитель
    Это посетитель от которого не был получен его цифровой идентификатор. Предположительно считается, что такие посетители впервые приходят на сайт.
    Пользователь
    Синонимом данного термина можно считать "бюджет пользователя", "профайл пользователя". Это совокупность таких параметров как:
    • логин
    • пароль
    • E-Mail
    • фамилия
    • имя
    • персональные данные
    • данные по работе
    • административные заметки
    Один посетитель сайта может быть авторизованным в тот или иной момент как тот или иной пользователь.
    Посетители в online
    Это список посетителей сайта, сделавших хит в течении последних N секунд. Данное количество секунд задается в настройках модуля "Статистика" в параметре "Интервал посетителей в online (сек.)".
    UserAgent
    Под данным термином понимают содержимое поля UserAgent в протоколе HTTP, которое заполняется программой, обращающейся к веб-серверу. Такой программой могут быть: браузеры, программы скачивания, offline-браузеры, поисковые роботы и т.д. Данное поле предназначено для самоидентификации таких программ. Как правило, значение этого поля можно самостоятельно поменять, многие программы позволяют это делать через стандартный интерфейс (например, ReGet).

    Примеры значений UserAgent’ов:
    • Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; NetCaptor 7.0.2 Final; .NET CLR 1.0.3705) - так идентифицирует себя браузер NetCaptor.
    • ReGet SE version 1.3.1* - так идентифицирует себя программа для скачивания файлов из Интернета "ReGet".
    Сессия
    Под термином сессия в системе 1C-Битрикс: Управление сайтом понимается сессия PHP. Сессия может открываться в момент захода на сайт и закрывается при закрытии окна браузера. Также новая сессия открывается при авторизации посетителя и закрывается, если закончить сеанс авторизации (разлогиниться). Синонимом термина сессия можно считать термин заход. Другими словами, сессия - один визит на сайт.

    Хост
    Термин хост означает IP-адрес посетителя сайта. В системе 1C-Битрикс: Управление сайтом все хосты представленные в статистических отчетах имеют свою степень уникальности.

    В меню Статистика вы можете видеть количество уникальных хостов (IP-адресов) за день, а в отдельной ячейке – количество уникальных хостов относительно всего времени ведения статистики, с момента инсталляции модуля.

    Для рекламных кампаний уникальность определяется только в пределах данной рекламной кампании, т.е. все посетители и их IP-адреса, зашедшие по данной рекламной кампании запоминаются в специальной таблице и уникальность IP-адреса, а также посетителя, определяется фактом наличия данного IP-адреса, либо посетителя, в вышеописанной таблице. Как правило, в большинстве систем сбора статистики принято, что количество хостов не должно отличаться от количества посетителей более чем на 10% (чем больше различие, тем менее точно считается статистика). В данном модуле статистики различие, как правило, не превышает 3%.

    Хит
    Под термином хит понимается одна загрузка страницы. Нажатие на ссылку на сайте и загрузка страницы приводит к генерации хита. Перезагрузка страницы с помощью F5 или Ctrl+F5 генерирует хит. Запрос к несуществующей страницы (404 ошибка) также генерирует хит.

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

    Поисковая система
    Под термином поисковая система понимается любая поисковая система Интернета. Синонимом данного термина можно также считать поисковик. Пример: Google, Rambler, Yandex, Aport и т.д. Каждая поисковая система характеризуется UserAgent’ом, под которым идентифицируется индексирующий сайты робот, а также группой доменов – адресов сайтов на которых можно воспользоваться поиском и переменной содержащей поисковую фразу.

    Домен поисковой системы
    Это один из возможно многих доменов той или иной поисковой системы. К примеру для поисковой системы Google, существует много доменов, перечислим только некоторые из них:
    • www.google.com
    • www.google.ru
    • www.google.de
    • ...
    К примеру для Yandex, существует нижеследующие домены:
    • www.yandex.ru
    • www.ya.ru

    UserAgent поисковой системы
    Это UserAgent специальной программы, называемой "поисковым роботом" (или "ботом"). Цель данной программы - индексация содержимого вашего сайта, другими словами - занесение часть содержимого вашего сайта для базы данных, которая в дальнейшем используется для поиска в помощью той или иной поисковой системы. Каждая поисковая система имеет как правило, индивидуального поискового робота, имеющего свой индивидуальный UserAgent, но это бывает не всегда, иногда одна или более поисковых систем используют одного поискового робота (например Google и Yahoo).

    Хит поисковой системы
    Под данным термином понимается факт индексации одной страницы. Все поисковые системы имеют ряд механизмов для индексации Интернет-ресурсов. Сама индексация осуществляется так называемыми поисковыми роботами. Каждый робот имеет идентификатор хранящийся в UserAgent’е. В момент когда робот пытается проиндексировать ту или иную страницу вашего сайта, он запрашивает ее у веб-сервера и загружает ее HTML-код (отсюда название хит) и затем производит индексацию содержимого этой страницы. Все подобные загрузки фиксируются модулем статистики в виде хит поисковика, при этом поисковые роботы между собой различаются по UserAgent’у.

    Стоп-лист
    Представляет из себе совокупность записей. Цель стоп-листа - ограничить доступ либо перенаправить посетителей вашего сайта на другую страницу, возможно даже другого сайта.

    Запись стоп-листа
    Это набор параметров, по которым необходимо отфильтровать поток посетителей и выполнить с ними какие- либо действия: перенаправить, показать сообщение, просто не показать сайт и т.п.

    Маска подсети для стоп-листа

    В терминологии сетей TCP/IP маской подсети или маской сети называется битовая маска, определяющая, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети. Например, узел с IP-адресом 12.34.56.78 и маской подсети 255.255.0.0 находится в сети 12.34.0.0.

    Чтобы получить адрес сети, зная IP-адрес и маску подсети, необходимо применить к ним операцию поразрядной конъюнкции. Например, в случае более сложной маски:

    IP-адрес:       00001100 00100010 00111000 1001110 (12.34.56.78)
Маска подсети:  11111111 11111111 11100000 0000000 (255.255.224.0)
--------------------------------------------------------------------
Адрес сети:     00001100 00100010 00100000 0000000 (12.34.32.0)

    Запись стоп-листа содержит два поля: IP адрес сети и маска сети. Посетитель считается попадающим под ту или иную запись стоп-листа в случае если при наложении маски сети на его IP адрес мы получим IP адрес сети.

    Пример 1. Стоит задача ограничить доступ всех посетителей приходящих с IP = 206.191.49.66

    1. В этом случае нам необходимо задать:
      • IP адрес сети = 206.191.49.66
      • маска сети = 255.255.255.255
    2. В момент захода на сайт посетителя с IP = 206.191.49.66 будет произведена следующая операция конъюнкции:
      IP-адрес посетителя: 11010001 10111111 11000001 1000010 (206.191.49.66)
маска сети:          11111111 11111111 11111111 1111111 (255.255.225.255)
----------------------------------------------------------------------------
Результат:           11010001 10111111 11000001 1000010 (206.191.49.66)
      Если результат совпадает с IP адресом сети, то посетитель попадает под данную запись стоп-листа, что в данном случае и происходит. Таким образом все посетители заходящие на сайт с IP = 206.191.49.66 попадут под данную запись стоп-листа.

    Пример 2. Стоит задача ограничить доступ всех посетителей приходящих с подсети = 206.191.49.xxx (IP в интервале от 206.191.49.1 до 206.191.49.255)

    1. В этом случае нам необходимо задать:
      • IP адрес сети = 206.191.49.0
      • маска сети = 255.255.255.0
    2. В момент захода на сайт посетителя с IP = 206.191.49.76 будет произведена следующая операция конъюнкции:
      IP-адрес посетителя: 11010001 10111111 11000001 1001100 (206.191.49.76)
маска сети:          11111111 11111111 11111111 0000000 (255.255.225.0)
----------------------------------------------------------------------------
Результат:           11010001 10111111 11000001 0000000 (206.191.49.0)
      Если результат совпадает с IP адресом сети, то посетитель попадает под данную запись стоп-листа. Таким образом все посетители заходящие на сайт с IP в интервале от 206.191.49.1 до 206.191.49.255 попадут под данную запись стоп-листа.

    Конъюнкция
    Логическая операция. Правила данной операции представлены ниже:
    Операнд 1:  0110
Операнд 2:  1010
Результат:  0010

    Ссылающийся сайт (страница)
    Под термином ссылающаяся страница или ссылающийся сайт понимается любой веб-ресурс, на котором есть страницы, содержащие ссылки на ваш сайт. Если по этой ссылке переходит посетитель, адрес сайта и страницы, с которой посетитель перешел, запоминаются в модуле статистики и считаются ссылающимися.

    Полный путь
    Полный путь по сайту – это набор страниц (одна и более), которые последовательно открывал посетитель сайта, пользуясь ссылками на этих страницах. Путь может разветвляться образуя несколько путей в том случае если посетитель открывает с одной страницы сразу несколько ссылок. В Internet Explorer это можно сделать, кликнув на ссылку левой кнопкой мыши, удерживая клавишу "Shift", либо кликнув правой кнопкой мыши по ссылке и выбрав пункт меню "Open in New Window".

    Отрезок пути
    В модуле статистики принято следующее определение отрезка пути по сайту.
    Отрезок пути по сайту это набор страниц состоящий из первой страницы пути и произвольного количество последующих страниц данного пути.

    К примеру, вы заходите на сайт на страницу 1, затем видите на ней ссылку, ведущую на страницу 2, и идете по ней, затем следуете на ссылку ведущую на страницу 3. Таким образом, вы проследовали по сайту одним путём, состоящим из трех отрезков:

    • страница 1
    • страница 1 –> страница 2
    • страница 1 -> страница 2 -> страница 3
    Если со страницы 3 вы откроете ссылку, ведущую на страницу 4 ("Shift" + клик на ссылку левой кнопкой мыши или клик на ссылку правой кнопкой мыши и выбор пункта меню "Open in New Window"), и точно также - ссылку ведущую на страницу 5, то в сумме вы пройдете по двум путям, каждый из которых будет состоять из 4 отрезков, первые 3 из которых будут одинаковыми.

    IP-адрес
    Это уникальный идентификатор (адрес) устройства (обычно компьютера), подключённого к локальной сети или интернету, если быть более точным, то IP-адрес - это идентификатор одного сетевого соединения.

    IP-адрес представляет собой 32-битовое (по версии IPv4) или 128-битовое (по версии IPv6) двоичное число. Удобной формой записи IP-адреса (IPv4) является запись в виде четырёх десятичных чисел (октетов) (от 0 до 255), разделённых точками, например, 192.168.0.1. (или 128.10.2.30 — традиционная десятичная форма представления адреса, а 10000000 00001010 00000010 00011110 — двоичная форма представления этого же адреса).

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

    Каждая страна имеет персональный набор интервалов IP-адресов. Благодаря этому существует возможность определить страну посетителя сайта по его IP-адресу.

    Октет IP-адреса
    Часть IP-адреса, представляющее из себя двоичное число от 0 до 255.

    Языки в настройках браузера
    В ряде браузеров присутствует настройка, позволяющая задать набор языков которые понимает посетитель сайта. К примеру в Internet Explorer данная настройка доступна в пункте меню:

    "Tools" -> "Internet Options..." -> закладка "General" -> кнопка "Languages"

    404 ошибка
    При запросе браузером посетителя сайта той или иной страницы, может сложиться ситуация когда этой страницы физически (как файла) может не быть на сервере. В этом случае веб-сервер генерирует 404 ошибку и отсылает статус этой ошибки (404) браузеру посетителя сайта. Есть возможность перехватить обработку этой ошибки, например для Apache необходимо разместить файл с именем .htaccess в корне вашего сайта (либо в подкаталоге запрашиваемой страницы) к примеру со следующим содержимым:

    ErrorDocument 404 /404_handler.php
    В данном примере, при возникновении 404 ошибки на веб-сервере управление будет передано скрипту /404_handler.php, в котором вы, как веб-разработчик, можете выполнить любое действие.

    Для фиксации 404 ошибки на той или иной странице в модуле "Статистика", необходимо в любом месте страницы, но до [link=89476#epilog]эпилога[/link], инициализировать константу "ERROR_404" значением "Y". Пример:

    define("ERROR_404", "Y");
    Метод HTTP запроса
    Существуют несколько методов HTTP запросов: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT. В основном используются GET, POST, HEAD.
    • GET

      Данные передаваемые этим методом закодированы непосредственно в URI. Например:

      http://www.bitrixsoft.ru/bitrix/admin/stat_list.php?find_site_id=ru&find_date1_DAYS_TO_BACK=2&find_date2=&lang=ru&set_filter=Y&set_filter=%D3%F1%F2%E0%ED%EE%E2%E8%F2%FC

      Переменные передаются парами, разделенными символом "&", каждая пара состоит из "названия переменной" и "значение переменной". При это значение переменной должно быть URL-кодировано.

    • POST

      Данные передаваемый этим методом закодированы в теле HTTP-запроса.

    • HEAD

      Основное назначение данного метода - получение информации о запрашиваемой странице. Он аналогичен методу GET, но сервер в качестве ответа возвращает только HTTP-заголовки без содержимого запрошенной страницы.

    Cookie
    Часть информации, передаваемая веб-сервером, принимаемая браузером посетителя сайта и сохраняемая в файле на компьютере посетителя сайта. Как правило, используется для определения уникальности посетителя, времени его последнего визита, личных настроек, уникального идентификатора корзины покупок и т.д.

    Точка входа
    Если вы только что открыли браузер и набрали любой адрес, ведущий на ваш сайт, то, как только вы зайдете на сайт по этому адресу, он будет считаться точкой входа на сайт. Другими словами, точка входа – это первый хит в сессии.

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

    Лимит активности
    В настройках модуля "Статистика" существует возможность задать лимит активности. Превышение данного лимита означает, что посетитель сайта превысил установленное количество хитов за определённый интервал времени. В момент превышения лимита, посетителю сайта отсылается HTTP статус "503 Service Unavailable" и на экран выводится соответствующее сообщение. Достигается это посредством подключения файла /bitrix/activity_limit.php.

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


Переменные окружения

Модуль статистики реализует следующие сессионные переменные:
$_SESSION["SESS_SESSION_ID"] | ID сессии.
$_SESSION["SESS_GUEST_ID"] | ID посетителя.
$_SESSION["SESS_GUEST_NEW"] | "Y" - посетитель впервые на сайте; "N" - посетитель вернулся на сайт.
$_SESSION["SESS_COUNTRY_ID"] | двухсимвольный идентификатор страны посетителя.
$_SESSION["SESS_ADV_ID"] | ID рекламной кампании по которой посетитель делает прямой заход.
$_SESSION["SESS_LAST_ADV_ID"] | ID последней рекламной кампании посетителя по которой он сделал прямой заход, либо по которой вернулся.
$_SESSION["SESS_LAST_USER_ID"] | ID пользователя после его последней авторизации.
$_SESSION["SESS_LAST_USER_AUTH"] | "Y" - в последний раз посетитель был авторизован; "N" - нет.
$_SESSION["SESS_GUEST_FAVORITES"] | "Y" - посетитель уже добавлял сайт в избранное; "N" - нет.
$_SESSION["FROM_SEARCHER_ID"] | ID поисковика с которого посетитель пришел на сайт.
$_SESSION["SESS_SEARCH_PHRASE"] | поисковая фраза с которой посетитель пришел на сайт.
$_SESSION["SESS_SEARCHER_ID"] | ID поисковика робот которого индексирует сайт.


Список классов

Класс | Описание | С версии
CAdv | Класс для работы с рекламными кампаниями. | создан ранее 8.6.3
CAutoDetect | Класс для поиска неизвестных UserAgent'ов. | создан ранее 8.6.3
CCountry | Класс для получения данных по трафику в разрезе по странами. | создан ранее 8.6.3
CGuest | Класс для получения данных по посетителям сайта. | создан ранее 8.6.3
CHit | Класс для получения данных по хитами посетителей. | создан ранее 8.6.3
CPage | Класс для получения данных о посещенных страницах сайта. | создан ранее 8.6.3
CPath | Класс для получения данных о путях по сайту. | создан ранее 8.6.3
CPhrase | Класс для получения данных по поисковым фразам. | создан ранее 8.6.3
CReferer | Класс для получения данных о ссылающихся сайтах. | создан ранее 8.6.3
CSearcher | Класс для работы с поисковыми системами. | создан ранее 8.6.3
CSearcherHit | Класс для получения данных о хитах поисковых систем. | создан ранее 8.6.3
CSession | Класс для получения данных о сессиях посетителей. | создан ранее 8.6.3
CStatEvent | Класс для работы с событиями. | создан ранее 8.6.3
CStatEventType | Класс для работы с типами событий. | создан ранее 8.6.3
CStatistics | Класс содержащий общие методы работы с модулем "Статистика". | создан ранее 8.6.3
CStopList | Класс для работы со стоп-листом. | создан ранее 8.6.3
CTraffic | Класс для получения общих данных по посещаемости сайта. | создан ранее 8.6.3
CUserOnline | Класс для получения данных о недавних посетителях сайта и их сессиях. | создан ранее 8.6.3


Класс CAdv

CAdv - класс для работы с рекламными кампаниями.

Методы класса

Метод | Описание | С версии
Delete | Удаляет рекламную кампанию. |
GetByID | Возвращает настройки рекламной кампании. |
GetDropdownList | Возвращает список рекламных кампаний для вывода его в выпадающем списке с помощью функции SelectBox, либо в списке множественного выбора с помощью функции SelectBoxM. |
GetDynamicList | Возвращает данные по трафику рекламной кампании в разрезе по дням. |
GetEventList | Возвращает список типов событий инициализированным посетителями зашедшими по определённой рекламной кампании. |
GetList | Возвращает список рекламных кампаний с рассчитанными статистическими показателями и со всеми данными по трафику. |
GetSimpleList | Возвращает список рекламных кампаний. |
Reset | Обнуляет статистические данные рекламной кампании. |

Смотрите также

  • Термин "Рекламная кампания"
  • Пользовательская документация, раздел Веб-аналитика > Рекламные кампании > Список кампаний [image].


Delete

Веб-аналитика>Классы>CAdv>Delete

CAdv::Delete

bool
CAdv::Delete(
 int adv_id
)

Удаляет рекламную кампанию.

Параметры метода

Параметр | Описание
adv_id | ID рекламной кампании.

Смотрите также

  • Термин "Рекламная кампания"
  • CAdv::Reset

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

<?
$adv_id = 1;
if (CAdv::Delete($adv_id))
    echo "Рекламная кампания #".$adv_id." успешно удалена.";
?>


GetByID

Веб-аналитика>Классы>CAdv>GetByID

CAdv::GetByID

Описание и параметры

CDBResult
CAdv::GetByID(
 int adv_id
)

Возвращает настройки рекламной кампании.

Параметры метода

Параметр | Описание
adv_id | ID рекламной кампании.

Смотрите также

  • Термин "Рекламная кампания"

Структура возвращаемой записи

Array
(
    [ID] => ID
    [REFERER1] => идентификатор referer1
    [REFERER2] => идентификатор referer2
    [DATE_FIRST] => дата первого прямого захода
    [DATE_LAST] => дата последнего прямого захода или возврата
    [COST] => затраты
    [REVENUE] => доходы
    [DESCRIPTION] => описание
    [PRIORITY] => приоритет
    [EVENTS_VIEW] => режим показа списка событий, возможные значения:
        link - ссылкой на список
        list - списком
        event1 - сгруппированными по event1
        event2 - сгруппированными по event2
    [GUESTS] => суммарное кол-во посетителей на прямом заходе
    [NEW_GUESTS] => суммарное кол-во новых посетителей на прямом заходе
    [FAVORITES] => суммарное кол-во посетителей добавившие сайт в "Избранное"
        на прямом заходе
    [C_HOSTS] => суммарное кол-во хостов на прямом заходе
    [SESSIONS] => суммарное кол-во сессий на прямом заходе
    [HITS] => суммарное кол-во хитов на прямом заходе
    [GUESTS_BACK] => суммарное кол-во посетителей на возврате
    [FAVORITES_BACK] => суммарное кол-во посетителей добавившие сайт в "Избранное"
        на возврате
    [HOSTS_BACK] => суммарное кол-во хостов на возврате
    [SESSIONS_BACK] => суммарное кол-во сессий на возврате
    [HITS_BACK] => суммарное кол-во хитов на возврате
)

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

<?
$adv_id = 1;
if ($rs = CAdv::GetByID($adv_id))
{
    $ar = $rs->Fetch();
    // выведем настройки рекламной кампании
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetDropdownList

Веб-аналитика>Классы>CAdv>GetDropdownList

CAdv::GetDropdownList

Описание и параметры

CDBResult
CAdv::GetDropdownList(
 string order = "ORDER BY REFERER1, REFERER2"
)

Возвращает список рекламных кампаний (РК) для вывода его в выпадающем списке с помощью функции SelectBox, либо в списке множественного выбора с помощью функции SelectBoxM.

Параметры метода

Параметр | Описание
order | SQL код, позволяющий задать произвольную сортировку списка рекламных кампаний.

Смотрите также

  • Термин "Рекламная кампания"
  • CAdv::GetList
  • CAdv::GetSimpleList
  • SelectBox
  • SelectBoxM

Структура возвращаемой записи

Array
(
    [REFERENCE_ID] => ID РК
    [REFERENCE] => [ID РК] referer1 / referer2
)

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

<?
// выпадающий список с одиночным выбором
echo SelectBox("ADV_ID", CAdv::GetDropdownList(), "", intval($ADV_ID));

// список из 20 видимых элементов с возможностью множественного выбора
echo SelectBoxM("arADV_ID[]", CAdv::GetDropdownList(), $arADV_ID, "", false, 20);
?>


GetDynamicList

Веб-аналитика>Классы>CAdv>GetDynamicList

CAdv::GetDynamicList

Описание и параметры

CDBResult
CAdv::GetDynamicList(
 int adv_id,
 string &by = "s_date",
 string &order = "desc",
 array &max_min,
 array filter = array()
)

Возвращает данные по трафику рекламной кампании в разрезе по датам.

Параметры метода

Параметр | Описание
adv_id | ID рекламной кампании.
by Поле для сортировки. Возможные значения:
  • s_date - дата
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию
  • desc - по убыванию
max_min Ссылка на массив содержащий максимальную и минимальную даты результирующего списка. Структура данного массива:
Array
(
    [DATE_FIRST] => минимальная дата
    [MIN_DAY] => день минимальной даты (1-31)
    [MIN_MONTH] => месяц минимальной даты (1-12)
    [MIN_YEAR] => год минимальной даты

    [DATE_LAST] => максимальная дата
    [MAX_DAY] => день максимальной даты (1-31)
    [MAX_MONTH] => месяц максимальной даты (1-12)
    [MAX_YEAR] => год максимальной даты
)
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • DATE_1 - дата "с"
  • DATE_2 - дата "по"

Смотрите также

  • Термин "Рекламная кампания"

Структура возвращаемой записи

Array
(
    [DATE_STAT] => дата
    [DAY] => день (1-31)
    [MONTH] => месяц (1-12)
    [YEAR] => год
    [GUESTS] => посетителей на прямом заходе
    [NEW_GUESTS] => новых посетителей на прямом заходе
    [FAVORITES] => посетителей, добавивших сайт в "Избранное" на прямом заходе
    [C_HOSTS] => хостов на прямом заходе
    [SESSIONS] => сессий на прямом заходе
    [HITS] => хитов на прямом заходе
    [GUESTS_BACK] => посетителей на возврате
    [FAVORITES_BACK] => посетителей, добавивших сайт в "Избранное" на возврате
    [HOSTS_BACK] => хостов на возврате
    [SESSIONS_BACK] => сессий на возврате
    [HITS_BACK] => хитов на возврате
)

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

<?
$adv_id = 1;

// установим фильтр на декабрь 2005 года
$arFilter = array(
    "DATE1" => "01.12.2005",
    "DATE2" => "31.12.2005"
    );

// получим набор записей
$rs = CAdv::GetDynamicList(
    $adv_id,
    ($by="s_date"),
    ($order="desc"),
    $arMaxMin,
    $arFilter,
    $is_filtered
    );

// выведем массив с максимальной и минимальной датами
echo "<pre>"; print_r($arMaxMin); echo "</pre>";

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetEventList

Веб-аналитика>Классы>CAdv>GetEventList

CAdv::GetEventList

Описание и параметры

CDBResult
CAdv::GetEventList(
 int adv_id,
 string &by = "s_counter",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список типов событий, инициализированных посетителями, зашедшими по определённой рекламной кампании (РК).

Параметры метода

Параметр | Описание
adv_id | ID рекламной кампании.
by Поле для сортировки. Возможные значения:
  • s_id - ID типа события
  • s_event1 - идентификатор event1 типа события
  • s_event2 - идентификатор event2 типа события
  • s_sort - индекс сортировки типа события
  • s_name - наименование типа события
  • s_counter - количество событий инициализированных посетителями на прямом заходе по рекламной кампании adv_id
  • s_counter_back - количество событий инициализированных посетителями на возврате по рекламной кампании adv_id
  • s_def - сортировка по умолчанию (для вывода в соответствующей таблице)
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию
  • desc - по убыванию
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID* - ID типа события
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение
  • EVENT1* - идентификатор event1 типа события
  • EVENT1_EXACT_MATCH - если значение равно "Y", то при фильтрации по EVENT1 будет искаться точное совпадение
  • EVENT2* - идентификатор event2 типа события
  • EVENT2_EXACT_MATCH - если значение равно "Y", то при фильтрации по EVENT2 будет искаться точное совпадение
  • KEYWORDS* - имя и описание типа события
  • KEYWORDS_EXACT_MATCH - если значение равно "Y", то при фильтрации по KEYWORDS будет искаться точное совпадение
  • DATE1_PERIOD - начальная дата периода
  • DATE2_PERIOD - конечная дата периода
  • COUNTER_PERIOD_1 - если установлены DATE1_PERIOD или DATE2_PERIOD, то в данном поле можно указать начальное значение интервала количества событий инициализированных посетителями на прямом заходе по рекламной кампании adv_id
  • COUNTER_PERIOD_2 - если установлены DATE1_PERIOD или DATE2_PERIOD, то в данном поле можно указать конечное значение интервала количества событий инициализированных посетителями на прямом заходе по рекламной кампании adv_id
  • COUNTER_BACK_PERIOD_1 - если установлены DATE1_PERIOD или DATE2_PERIOD, то в данном поле можно указать начальное значение интервала количества событий инициализированных посетителями на возврате по рекламной кампании adv_id
  • COUNTER_BACK_PERIOD_2 - если установлены DATE1_PERIOD или DATE2_PERIOD, то в данном поле можно указать конечное значение интервала количества событий инициализированных посетителями на возврате по рекламной кампании adv_id
  • MONEY_PERIOD_1 - если установлены DATE1_PERIOD или DATE2_PERIOD, то в данном поле можно указать начальное значение интервала количество денег инициализированных посетителями на прямом заходе по рекламной кампании adv_id
  • MONEY_PERIOD_2 - если установлены DATE1_PERIOD или DATE2_PERIOD, то в данном поле можно указать конечное значение интервала количества денег инициализированных посетителями на прямом заходе по рекламной кампании adv_id
* - допускается сложная логика
is_filtered | Флаг отфильтрованности списка типов событий. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • Термин "Рекламная кампания"
  • Термин "Событие"

Структура возвращаемой записи

Array
(
    [ID] => ID типа события
    [EVENT1] => идентификатор event1
    [EVENT2] => идентификатор event2
    [C_SORT] => сортировка
    [NAME] => название
    [EVENT] => название либо [ID] event1 / event2
    [DESCRIPTION] => описание
    [COUNTER] => суммарное кол-во событий данного типа на прямом заходе по РК
    [COUNTER_BACK] => суммарное кол-во событий данного типа на возврате по РК
    [COUNTER_TODAY] => кол-во событий данного типа на прямом заходе по РК за сегодня
    [COUNTER_YESTERDAY] => кол-во событий данного типа на прямом заходе по РК за вчера
    [COUNTER_BEF_YESTERDAY] => кол-во событий данного типа на прямом заходе по РК
        за позавчера
    [COUNTER_PERIOD] => кол-во событий данного типа на прямом заходе по РК за период
    [COUNTER_BACK_TODAY] => кол-во событий данного типа на возврате по РК за сегодня
    [COUNTER_BACK_YESTERDAY] => кол-во событий данного типа на возврате по РК за вчера
    [COUNTER_BACK_BEF_YESTERDAY] => кол-во событий данного типа на возврате по РК
       за позавчера
    [COUNTER_BACK_PERIOD] => кол-во событий данного типа на возврате по РК за период
    [MONEY] => итоговая денежная сумма событий данного типа на прямом заходе по РК
    [MONEY_TODAY] => денежная сумма событий данного типа на прямом заходе по РК за сегодня
    [MONEY_YESTERDAY] => денежная сумма событий данного типа на прямом заходе по РК
       за вчера
    [MONEY_BEF_YESTERDAY] => денежная сумма событий данного типа на прямом заходе по РК
       за позавчера
    [MONEY_PERIOD] => денежная сумма событий данного типа на прямом заходе по РК за период
    [MONEY_BACK] => итоговая денежная сумма событий данного на возврате по РК
    [MONEY_BACK_TODAY] => денежная сумма событий данного типа на возврате по РК за сегодня
    [MONEY_BACK_YESTERDAY] => денежная сумма событий данного типа на возврате по РК за вчера
    [MONEY_BACK_BEF_YESTERDAY] => денежная сумма событий данного типа на возврате по РК
       за позавчера
    [MONEY_BACK_PERIOD] => денежная сумма событий данного типа на возврате по РК за период
)

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

<?
$adv_id = 1;

// отфильтруем по типам события "download / file1" и "download / file2"
// а также получим дополнительные данные за декабрь 2005 года
$arFilter = array(
    "EVENT1"       => "download",
    "EVENT2"       => "file1 | file2",
    "DATE1_PERIOD" => "01.12.2005",
    "DATE2_PERIOD" => "31.12.2005"
    );

// получим список записей
$rs = CAdv::GetEventList(
    $adv_id,
    ($by="s_counter"),
    ($order="desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetList

Веб-аналитика>Классы>CAdv>GetList

CAdv::GetList

Описание и параметры

CDBResult
CAdv::GetList(
 string &by = "SESSIONS",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered,
 mixed limit = "",
 array &referer_group,
 string &sql
)

Возвращает список рекламных кампаний (РК) с рассчитанными статистическими показателями и со всеми данными по трафику.

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • ID - ID РК;
  • PRIORITY - приоритет;
  • REFERER1 - идентификатор referer1 РК;
  • REFERER2 - идентификатор referer2 РК;
  • C_TIME_FIRST - время начала РК (первый прямой заход);
  • C_TIME_LAST - последний прямой заход или возврат по РК;
  • ADV_TIME - длительность РК (разница C_TIME_LAST - C_TIME_FIRST);
  • ATTENT - коэфициент внимательности посетителей на прямом заходе по РК;
  • ATTENT_BACK - коэфициент внимательности посетителей на возврате по РК;
  • NEW_VISITORS - процент посетителей впервые пришедших на сайт по данной РК от общего количества посетителей пришедших по данной РК;
  • RETURNED_VISITORS - процент посетителей возвратившихся на сайт после прямого захода по данной РК;
  • VISITORS_PER_DAY - среднее количество посетителей за день;
  • COST - затраты на РК;
  • REVENUE - доходы с РК;
  • BENEFIT - прибыль РК;
  • ROI - рентабельность РК;
  • SESSION_COST - средняя стоимость сессии (затраты/кол-во сессий на прямом заходе);
  • VISITOR_COST - средняя стоимость посетителя (затраты/кол-во посетителей на прямых заходах);
  • GUESTS - суммарное кол-во посетителей на прямых заходах;
  • GUESTS_BACK - суммарное кол-во посетителей на возвратах;
  • NEW_GUESTS - суммарное кол-во новых посетителей по данной РК;
  • FAVORITES - суммарное кол-во посетителей, добавивших сайт в "Избранное" на прямом заходе по РК;
  • FAVORITES_BACK - суммарное кол-во посетителей, добавивших сайт в "Избранное" на возврате по РК;
  • C_HOSTS - суммарное кол-во хостов на прямом заходе по РК;
  • HOSTS_BACK - суммарное кол-во хостов на возврате по РК;
  • SESSIONS - суммарное кол-во сессий на прямом заходе по РК;
  • SESSIONS_BACK - суммарное кол-во сессий на возврате по РК;
  • HITS - суммарное кол-во хитов на прямом заходе по РК;
  • HITS_BACK - суммарное кол-во хитов на возврате по РК;
  • GUESTS_TODAY - кол-во посетителей на прямом заходе за сегодня;
  • GUESTS_BACK_TODAY - кол-во посетителей на возврате за сегодня;
  • NEW_GUESTS_TODAY - кол-во новых посетителей за сегодня;
  • FAVORITES_TODAY - кол-во посетителей, добавивших сайт в "Избранное" на прямом заходе за сегодня;
  • FAVORITES_BACK_TODAY - кол-во посетителей, добавивших сайт в "Избранное" на возврате за сегодня;
  • C_HOSTS_TODAY - кол-во хостов на прямом заходе за сегодня;
  • HOSTS_BACK_TODAY - кол-во хостов на возврате за сегодня;
  • SESSIONS_TODAY - кол-во сессий на прямом заходе за сегодня;
  • SESSIONS_BACK_TODAY - кол-во сессий на возврате за сегодня;
  • HITS_TODAY - кол-во хитов на прямом заходе за сегодня;
  • HITS_BACK_TODAY - кол-во хитов на возврате за сегодня;
  • GUESTS_YESTERDAY - кол-во посетителей на прямом заходе за вчера;
  • GUESTS_BACK_YESTERDAY - кол-во посетителей на возврате за вчера;
  • NEW_GUESTS_YESTERDAY - кол-во новых посетителей за вчера;
  • FAVORITES_YESTERDAY - кол-во посетителей, добавивших сайт в "Избранное" на прямом заходе за вчера;
  • FAVORITES_BACK_YESTERDAY - кол-во посетителей, добавивших сайт в "Избранное" на возврате за вчера;
  • C_HOSTS_YESTERDAY - кол-во хостов на прямом заходе за вчера;
  • HOSTS_BACK_YESTERDAY - кол-во хостов на возврате за вчера;
  • SESSIONS_YESTERDAY - кол-во сессий на прямом заходе за вчера;
  • SESSIONS_BACK_YESTERDAY - кол-во сессий на возврате за вчера;
  • HITS_YESTERDAY - кол-во хитов на прямом заходе за вчера;
  • HITS_BACK_YESTERDAY - кол-во хитов на возврате за вчера;
  • GUESTS_BEF_YESTERDAY - кол-во посетителей на прямом заходе за позавчера;
  • GUESTS_BACK_BEF_YESTERDAY - кол-во посетителей на возврате за позавчера;
  • NEW_GUESTS_BEF_YESTERDAY - кол-во новых посетителей за позавчера;
  • FAVORITES_BEF_YESTERDAY - кол-во посетителей, добавивших сайт в "Избранное" на прямом заходе за позавчера;
  • FAVORITES_BACK_BEF_YESTERDAY - кол-во посетителей, добавивших сайт в "Избранное" на возврате за позавчера;
  • C_HOSTS_BEF_YESTERDAY - кол-во хостов на прямом заходе за позавчера;
  • HOSTS_BACK_BEF_YESTERDAY - кол-во хостов на возврате за позавчера;
  • SESSIONS_BEF_YESTERDAY - кол-во сессий на прямом заходе за позавчера;
  • SESSIONS_BACK_BEF_YESTERDAY - кол-во сессий на возврате за позавчера;
  • HITS_BEF_YESTERDAY - кол-во хитов на прямом заходе за позавчера;
  • HITS_BACK_BEF_YESTERDAY - кол-во хитов на возврате за позавчера;
  • GUESTS_PERIOD - кол-во посетителей на прямом заходе за установленный в фильтре (filter) интервал времени;
  • GUESTS_BACK_PERIOD - кол-во посетителей на возврате за установленный в фильтре интервал времени;
  • NEW_GUESTS_PERIOD - кол-во новых посетителей за установленный в фильтре интервал времени;
  • FAVORITES_PERIOD - кол-во посетителей, добавивших сайт в "Избранное" на прямом заходе за установленный в фильтре интервал времени;
  • FAVORITES_BACK_PERIOD - кол-во посетителей, добавивших сайт в "Избранное" на возврате за установленный в фильтре интервал времени;
  • C_HOSTS_PERIOD - кол-во хостов на прямом заходе за установленный в фильтре интервал времени;
  • HOSTS_BACK_PERIOD - кол-во хостов на возврате за установленный в фильтре интервал времени;
  • SESSIONS_PERIOD - кол-во сессий на прямом заходе за установленный в фильтре интервал времени;
  • SESSIONS_BACK_PERIOD - кол-во сессий на возврате за установленный в фильтре интервал времени;
  • HITS_PERIOD - кол-во хитов на прямом заходе за установленный в фильтре интервал времени;
  • HITS_BACK_PERIOD - кол-во хитов на возврате за установленный в фильтре интервал времени.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • GROUP - список возможных значений:
    • referer1 - список РК будет сгруппирован по идентификатору referer1 РК;
    • referer2 - список РК будет сгруппирован по идентификатору referer2 РК.
  • ID* - ID РК;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • DATE1_PERIOD - начальное значение периода за который необходимо получить данные;
  • DATE2_PERIOD - конечное значение периода за который необходимо получить данные;
  • DATE1_FIRST - начальное значение интервала для поля "время начала РК";
  • DATE2_FIRST - конечное значение интервала для поля "время начала РК";
  • DATE1_LAST - начальное значение интервала для поля "время окончания РК";
  • DATE2_LAST - конечное значение интервала для поля "время окончания РК";
  • REFERER1* - идентификатор referer1 РК;
  • REFERER1_EXACT_MATCH - если значение равно "Y", то при фильтрации по REFERER1 будет искаться точное совпадение;
  • REFERER2* - идентификатор referer2 РК;
  • REFERER2_EXACT_MATCH - если значение равно "Y", то при фильтрации по REFERER2 будет искаться точное совпадение;
  • PRIORITY1 - начальное значение интервала для поля "приоритет РК";
  • PRIORITY2 - конечное значение интервала для поля "приоритет РК";
  • NEW_GUESTS1 - начальное значение интервала для поля "новые посетители РК";
  • NEW_GUESTS2 - конечное значение интервала для поля "новые посетители РК";
  • GUESTS_BACK - флаг означающий по какому полю фильтровать посетителей, список возможных значений:
    • N - на прямом заходе;
    • Y - на возврате.
  • GUESTS1 - начальное значение интервала для поля "посетители на прямом заходе или на возврате" (в зависимости от флага GUESTS_BACK);
  • GUESTS2 - конечное значение интервала для поля "посетители на прямом заходе или на возврате" (в зависимости от флага GUESTS_BACK);
  • FAVORITES_BACK - флаг означающий по какому полю фильтровать посетителей, добавившие сайт в "Избранное", список возможных значений:
    • N - на прямом заходе;
    • Y - на возврате.
  • FAVORITES1 - начальное значение интервала для поля "посетители, добавившие сайт в Избранное на прямом заходе или возврате" (в зависимости от флага FAVORITES_BACK);
  • FAVORITES2 - конечное значение интервала для поля "посетители, добавившие сайт в Избранное на прямом заходе или возврате" (в зависимости от флага FAVORITES_BACK);
  • HOSTS_BACK - флаг означающий по какому полю фильтровать хосты, список возможных значений:
    • N - на прямом заходе;
    • Y - на возврате.
  • HOSTS1 - начальное значение интервала для поля "хосты на прямом заходе или возврате" (в зависимости от флага HOSTS_BACK);
  • HOSTS2 - конечное значение интервала для поля "хосты на прямом заходе или возврате" (в зависимости от флага HOSTS_BACK);
  • SESSIONS_BACK - флаг означающий по какому полю фильтровать сессии, список возможных значений:
    • N - на прямом заходе;
    • Y - на возврате.
  • SESSIONS1 - начальное значение интервала для поля "сессии на прямом заходе или возврате" (в зависимости от флага SESSIONS_BACK);
  • SESSIONS2 - конечное значение интервала для поля "сессии на прямом заходе или возврате" (в зависимости от флага SESSIONS_BACK);
  • HITS_BACK - флаг означающий по какому полю фильтровать хиты, список возможных значений:
    • N - на прямом заходе;
    • Y - на возврате.
  • HITS1 - начальное значение интервала для поля "хиты на прямом заходе или возврате" (в зависимости от флага HITS_BACK);
  • HITS2 - конечное значение интервала для поля "хиты на прямом заходе или возврате" (в зависимости от флага HITS_BACK);
  • COST1 - начальное значение интервала для поля "затраты на РК";
  • COST2 - конечное значение интервала для поля "затраты на РК";
  • REVENUE1 - начальное значение интервала для поля "доходы с РК";
  • REVENUE2 - конечное значение интервала для поля "доходы с РК";
  • BENEFIT1 - начальное значение интервала для поля "прибыль с РК";
  • BENEFIT2 - конечное значение интервала для поля "прибыль с РК";
  • ROI1 - начальное значение интервала для поля "рентабельность РК";
  • ROI2 - конечное значение интервала для поля "рентабельность РК";
  • ATTENT1 - начальное значение интервала для поля "коэфициент внимательности посетителей РК";
  • ATTENT2 - конечное значение интервала для поля "коэфициент внимательности посетителей РК";
  • VISITORS_PER_DAY1 - начальное значение интервала для поля "среднее кол-во посетителей в день";
  • VISITORS_PER_DAY2 - конечное значение интервала для поля "среднее кол-во посетителей в день";
  • DURATION1 - начальное значение интервала для поля "длительность РК";
  • DURATION2 - конечное значение интервала для поля "длительность РК";
  • CURRENCY - валюта в которой заданы финансовые показатели РК;
  • DESCRIPTION* - описание РК;
  • DESCRIPTION_EXACT_MATCH - если значение равно "Y", то при фильтрации по DESCRIPTION будет искаться точное совпадение.
* - допускается сложная логика
is_filtered | Флаг отфильтрованности списка рекламных кампаний. Если значение равно "true", то список был отфильтрован.
limit | Максимальное число РК которые будут выбраны в списке. Если значение равно "", то кол-во РК будет ограничено в соответствии со значением параметра "Максимальное кол-во показываемых записей в таблицах" из настроек модуля "Статистика".
referer_group Ссылка на массив инициализируемый только при установленной группировке по referer1 или referer2 (если filter["GROUP"]="referer1" или filter["GROUP"]="referer2"). Структура данного массива:
[referer1 или referer2] => Array
    (
        [REFERER1] => referer1 или
        [REFERER2] => referer2

        [GUESTS_TODAY] => посетителей на прямом заходе за сегодня
        [GUESTS_BACK_TODAY] => посетителей на возврате за сегодня
        [NEW_GUESTS_TODAY] => новых посетителей за сегодня
        [FAVORITES_TODAY] => посетителей, добавивших сайт в "Избранное"
            на прямом заходе за сегодня
        [FAVORITES_BACK_TODAY] => посетителей, добавившие сайт в "Избранное"
            на возврате за сегодня
        [C_HOSTS_TODAY] => хостов на прямом заходе за сегодня
        [HOSTS_BACK_TODAY] => хостов на возврате за сегодня
        [SESSIONS_TODAY] => сессий на прямом заходе за сегодня
        [SESSIONS_BACK_TODAY] => сессий на возврате за сегодня
        [HITS_TODAY] => хитов на прямом заходе за сегодня
        [HITS_BACK_TODAY] => хитов на возврате за сегодня

        [GUESTS_YESTERDAY] => посетителей на возврате за вчера
        [GUESTS_BACK_YESTERDAY] => посетителей на возврате за вчера
        [NEW_GUESTS_YESTERDAY] => новых посетителей за вчера
        [FAVORITES_YESTERDAY] => посетителей, добавившие сайт в
            "Избранное" на прямом заходе за вчера
        [FAVORITES_BACK_YESTERDAY] => посетителей, добавившие сайт в
            "Избранное" на возврате за вчера
        [C_HOSTS_YESTERDAY] => хостов на прямом заходе за вчера
        [HOSTS_BACK_YESTERDAY] => хостов на возврате за вчера
        [SESSIONS_YESTERDAY] => сессий на прямом заходе за вчера
        [SESSIONS_BACK_YESTERDAY] => сессий на возврате за вчера
        [HITS_YESTERDAY] => хитов на прямом заходе за вчера
        [HITS_BACK_YESTERDAY] => хитов на возврате за вчера

        [GUESTS_BEF_YESTERDAY] => посетителей на прямом заходе за позавчера
        [NEW_GUESTS_BEF_YESTERDAY] => новых посетителей за позавчера
        [FAVORITES_BEF_YESTERDAY] => посетителей, добавившие сайт в
            "Избранное" на прямом заходе за позавчера
        [C_HOSTS_BEF_YESTERDAY] => хостов на прямом заходе за позавчера
        [SESSIONS_BEF_YESTERDAY] => сессий на прямом заходе за позавчера
        [HITS_BEF_YESTERDAY] => хитов на прямом заходе за позавчера
        [GUESTS_BACK_BEF_YESTERDAY] => посетителей на возврате за позавчера
        [FAVORITES_BACK_BEF_YESTERDAY] => посетителей, добавившие сайт в
           "Избранное" на возврате за позавчера
        [HOSTS_BACK_BEF_YESTERDAY] => хостов на возврате за позавчера
        [SESSIONS_BACK_BEF_YESTERDAY] => сессий на возврате за позавчера
        [HITS_BACK_BEF_YESTERDAY] => хитов на возврате за позавчера

        [GUESTS_PERIOD] => посетителей на прямом заходе за период времени
            (установка периода времени осушествляется инициализацией
            filter["DATE1_PERIOD"] и/или filter["DATE2_PERIOD"])
        [GUESTS_BACK_PERIOD] => посетителей на возврате за период времени
        [NEW_GUESTS_PERIOD] => новые посетители на прямом заходе за
             период времени
        [C_HOSTS_PERIOD] => хосты на прямом заходе за период времени
        [HOSTS_BACK_PERIOD] => хостов на возврате за период времени
        [FAVORITES_PERIOD] => посетителей, добавившие сайт в
            "Избранное" на прямом заходе за период времени
        [FAVORITES_BACK_PERIOD] => посетителей, добавившие сайт в
            "Избранное" на возврате за период времени
        [SESSIONS_PERIOD] => сессий на прямом заходе за период времени
        [SESSIONS_BACK_PERIOD] => сессий на возврате за период времени
        [HITS_PERIOD] => хитов на прямом заходе за период времени
        [HITS_BACK_PERIOD] => хитов на возврате за период времени
    )
sql | Ссылка на результирующий SQL запрос по которому будет выбран список РК.

Смотрите также

  • Термин "Рекламная кампания"
  • CAdv::GetSimpleList
  • CAdv::GetDropdownList

Структура возвращаемой записи

Array
(
    [ID] => ID
    [PRIORITY] => приоритет
    [REFERER1] => идентификатор referer1
    [REFERER2] => идентификатор referer2
    [DESCRIPTION] => описание
    [EVENTS_VIEW] => режим показа списка событий, возможные значения:
        link - ссылкой на список
        list - списком
        event1 - сгруппированными по event1
        event2 - сгруппированными по event2

    [DATE_FIRST] => дата первого прямого захода
    [DATE_LAST] => дата последнего прямого захода или возврата
    [ADV_TIME] => длительность РК в секундах

    [ATTENT] => внимательность на прямом заходе
    [ATTENT_BACK] => внимательность на возврате
    [NEW_VISITORS] => процент новых посетителей
    [RETURNED_VISITORS] => процент вернувшихся на сайт посетителей после прямого захода
    [VISITORS_PER_DAY] => среднее кол-во посетителей в день

    [CURRENCY] => валюта в которой заданы финансовые показатели
    [COST] => затраты
    [REVENUE] => доход
    [BENEFIT] => прибыль
    [SESSION_COST] => стоимость сессии
    [VISITOR_COST] => стоимость посетителя
    [ROI] => рентабельность

    [GUESTS] => суммарное кол-во посетителей на прямом заходе
    [NEW_GUESTS] => суммарное кол-во новых посетителей на прямом заходе
    [FAVORITES] => суммарное кол-во посетителей, добавившие сайт в "Избранное"
        на прямом заходе
    [C_HOSTS] => суммарное кол-во хостов на прямом заходе
    [SESSIONS] => суммарное кол-во сессий на прямом заходе
    [HITS] => суммарное кол-во хитов на прямом заходе
    [GUESTS_BACK] => суммарное кол-во посетителей на возврате
    [FAVORITES_BACK] => суммарное кол-во посетителей, добавившие сайт в "Избранное"
        на возврате
    [HOSTS_BACK] => суммарное кол-во хостов на возврате
    [SESSIONS_BACK] => суммарное кол-во сессий на возврате
    [HITS_BACK] => суммарное кол-во хитов на возврате

    [GUESTS_TODAY] => посетителей на прямом заходе за сегодня
    [GUESTS_BACK_TODAY] => посетителей на возврате за сегодня
    [NEW_GUESTS_TODAY] => новых посетителей на возврате за сегодня
    [FAVORITES_TODAY] => посетителей, добавившие сайт в "Избранное" на прямом заходе
        за сегодня
    [FAVORITES_BACK_TODAY] => посетителей, добавившие сайт в "Избранное" на возврате
        за сегодня
    [C_HOSTS_TODAY] => хостов на прямом заходе за сегодня
    [HOSTS_BACK_TODAY] => хостов на возврате за сегодня
    [SESSIONS_TODAY] => сессий на прямом заходе за сегодня
    [SESSIONS_BACK_TODAY] => сессий на возврате за сегодня
    [HITS_TODAY] => хитов на прямом заходе за сегодня
    [HITS_BACK_TODAY] => хитов на возврате за сегодня

    [GUESTS_YESTERDAY] => посетителей на прямом заходе за вчера
    [GUESTS_BACK_YESTERDAY] => посетителей на возврате за вчера
    [NEW_GUESTS_YESTERDAY] => новых посетителей на возврате за вчера
    [FAVORITES_YESTERDAY] => посетителей, добавившие сайт в "Избранное" на прямом заходе
        за вчера
    [FAVORITES_BACK_YESTERDAY] => посетителей, добавившие сайт в "Избранное" на возврате
        за вчера
    [C_HOSTS_YESTERDAY] => хостов на прямом заходе за вчера
    [HOSTS_BACK_YESTERDAY] => хостов на возврате за вчера
    [SESSIONS_YESTERDAY] => сессий на прямом заходе за вчера
    [SESSIONS_BACK_YESTERDAY] => сессий на возврате за вчера
    [HITS_YESTERDAY] => хитов на прямом заходе за вчера
    [HITS_BACK_YESTERDAY] => хитов на возврате за вчера

    [GUESTS_BEF_YESTERDAY] => посетителей на прямом заходе за позавчера
    [GUESTS_BACK_BEF_YESTERDAY] => посетителей на возврате за позавчера
    [NEW_GUESTS_BEF_YESTERDAY] => новых посетителей на возврате за позавчера
    [FAVORITES_BEF_YESTERDAY] => посетителей, добавившие сайт в "Избранное"
        на прямом заходе за позавчера
    [FAVORITES_BACK_BEF_YESTERDAY] => посетителей, добавившие сайт в "Избранное"
        на возврате за позавчера
    [C_HOSTS_BEF_YESTERDAY] => хостов на прямом заходе за позавчера
    [HOSTS_BACK_BEF_YESTERDAY] => хостов на возврате за позавчера
    [SESSIONS_BEF_YESTERDAY] => сессий на прямом заходе за позавчера
    [SESSIONS_BACK_BEF_YESTERDAY] => сессий на возврате за позавчера
    [HITS_BEF_YESTERDAY] => хитов на прямом заходе за позавчера
    [HITS_BACK_BEF_YESTERDAY] => хитов на возврате за позавчера

    [GUESTS_PERIOD] => посетителей на прямом заходе за период
    [GUESTS_BACK_PERIOD] => посетителей на возврате за период
    [NEW_GUESTS_PERIOD] => новых посетителей на возврате за период
    [FAVORITES_PERIOD] => посетителей, добавившие сайт в "Избранное" на прямом заходе
        за период
    [FAVORITES_BACK_PERIOD] => посетителей, добавившие сайт в "Избранное" на возврате
        за период
    [C_HOSTS_PERIOD] => хостов на прямом заходе за период
    [HOSTS_BACK_PERIOD] => хостов на возврате за период
    [SESSIONS_PERIOD] => сессий на прямом заходе за период
    [SESSIONS_BACK_PERIOD] => сессий на возврате за период
    [HITS_PERIOD] => хитов на прямом заходе за период
    [HITS_BACK_PERIOD] => хитов на возврате за период
)

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

<?
// отфильтруем по рекламным кампаниям в referer1 которых входит "google"
// а также получим дополнительные данные за декабрь 2005 года
$arFilter = array(
    "REFERER1"     => "google",
    "DATE1_PERIOD" => "01.12.2005",
    "DATE2_PERIOD" => "31.12.2005"
    );

// получим список записей
$rs = CAdv::GetList(
    ($by="SESSIONS"),
    ($order="desc"),
    $arFilter,
    $is_filtered,
    "",
    $referer_group,
    $sql
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetSimpleList

Веб-аналитика>Классы>CAdv>GetSimpleList

CAdv::GetSimpleList

Описание и параметры

CDBResult
CAdv::GetSimpleList(
 string &by = "s_referer1",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает упрощённый список рекламных кампаний (РК).

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_id - ID РК;
  • s_referer1 - идентификатор referer1 РК;
  • s_referer2 - идентификатор referer2 РК;
  • s_description - описание РК.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID* - ID РК;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • REFERER1* - идентификатор referer1 РК;
  • REFERER1_EXACT_MATCH - если значение равно "Y", то при фильтрации по REFERER1 будет искаться точное совпадение;
  • REFERER2* - идентификатор referer2 РК;
  • REFERER2_EXACT_MATCH - если значение равно "Y", то при фильтрации по REFERER2 будет искаться точное совпадение;
  • DESCRIPTION* - описание РК;
  • DESCRIPTION_EXACT_MATCH - если значение равно "Y", то при фильтрации по DESCRIPTION будет искаться точное совпадение.
* - допускается сложная логика
is_filtered | Флаг отфильтрованности списка рекламных кампаний. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • Термин "Рекламная кампания"
  • CAdv::GetList
  • CAdv::GetDropdownList

Структура возвращаемой записи

Array
(
    [ID] => ID
    [REFERER1] => идентификатор referer1
    [REFERER2] => идентификатор referer2
    [DESCRIPTION] => описание
)

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

<?
// выберем только те рекламные кампании у которых в referer1 входит "google"
$arFilter = array(
    "REFERER1" => "google"
    );

// получим список записей
$rs = CAdv::GetSimpleList(
    ($by="s_referer1"),
    ($order="desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


Reset

Веб-аналитика>Классы>CAdv>Reset

CAdv::Reset

Описание и параметры

bool
CAdv::Reset(
 int adv_id
)

Обнуляет статистические данные рекламной кампании.

Примечание. Метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.

Параметры метода

Параметр | Описание
adv_id | ID рекламной кампании.

Смотрите также

  • Термин "Рекламная кампания"
  • CAdv::Delete

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

<?
$adv_id = 1;
if (CAdv::Reset($adv_id))
    echo "Данные по рекламной кампании #".$adv_id." успешно удалены.";
?>


Класс CAutoDetect

CAutoDetect - класс для поиска неизвестных UserAgent'ов.

Методы класса

Метод | Описание | С версии
GetList | Возвращает список незнакомых UserAgent'ов. |

Смотрите также

  • Пользовательскую документацию, раздел Веб-аналитика > Поисковые системы > Автодетект


GetList

Веб-аналитика>Классы>CAutoDetect>GetList

CAutoDetect::GetList

Описание и параметры

CDBResult
CAutoDetect::GetList(
 string &by = "s_counter",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список незнакомых UserAgent'ов. Метод анализирует список сессий, и собирает все UserAgent'ы которые не принадлежат ни одной поисковой системе и ни одному браузеру (UserAgent'ы браузеров задаются в настройках модуля "Статистика").

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_user_agent - UserAgent;
  • s_counter - количество сессий.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • LAST - флаг определяющий какие сессии буду анализироваться, возможные значения:
    • Y - за текущий день;
    • N - за предыдущие дни (не включая текущий).
  • USER_AGENT* - искомый UserAgent (маска, либо его часть);
  • USER_AGENT_EXACT_MATCH - если значение равно "Y", то при фильтрации по USER_AGENT будет искаться точное совпадение;
  • COUNTER1 - начальное значение интервала для поля "количество сессий";
  • COUNTER2 - конечное значение интервала для поля "количество сессий".
* - допускается сложная логика
is_filtered | Флаг отфильтрованности списка UserAgent'ов. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • Пользовательскую документацию, раздел Веб-аналитика > Поисковые системы > Автодетект

Структура возвращаемой записи

Array
(
    [USER_AGENT] => UserAgent
    [COUNTER] => кол-во сессий
)

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

<?
// выберем данные только за последний день
$arFilter = array(
    "LAST" => "Y"
    );

// получим список записей
$rs = CAutoDetect::GetList(
    ($by = "s_counter"),
    ($order = "desc"),
    $arFilter = array(),
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


Класс CCountry

CCountry - класс для получения данных по трафику в разрезе по странами.

Методы класса

Метод | Описание | С версии
GetGraphArray | Возвращает данные необходимые для построения графика и круговой диаграммы посещаемости в разрезе по странам. |
GetList | Возвращает список стран, определённых в модуле "Статистика". |

Смотрите также

  • Пользовательскую документацию, "География по странам"


GetGraphArray

Веб-аналитика>Классы>CCountry>GetGraphArray

CCountry::GetGraphArray

Описание и параметры

array
CCountry::GetGraphArray(
 array filter,
 array &legend
)

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

Параметры метода

Параметр Описание
filter Массив для фильтрации стран. В массиве допустимы следующие ключи:
  • COUNTRY_ID - двухсимвольный идентификатор страны;
  • DATE1 - начальное значение интервала времени;
  • DATE2 - конечное значение интервала времени.
legend Массив содержащий суммарные показатели по каждой стране, а также цвет линии графика и сектора круговой диаграммы для каждой страны. Структура данного массива:
Array
(
    [ID страны] => Array
        (
            [NAME] => название страны
            [SESSIONS] => кол-во сессий за интервал времени
            [NEW_GUESTS] => кол-во новых посетителей за интервал времени
            [HITS] => кол-во хитов за интервал времени
            [C_EVENTS] => кол-во событий за интервал времени
            [TOTAL_SESSIONS] => суммарное кол-во сессий
            [TOTAL_NEW_GUESTS] => суммарное кол-во новых посетителей
            [TOTAL_HITS] => суммарное кол-во хитов
            [TOTAL_C_EVENTS] => суммарное кол-во событий
            [COLOR] => цвет линии графика и сектора круговой диаграммы
        )
    ...
)

Смотрите также

  • Пользовательскую документацию, "География по странам"

Структура возвращаемого массива

Array
(
    [дата] => Array
        (
            [D] => день (1-31)
            [M] => месяц (1-12)
            [Y] => год
            [ID страны] => Array
                (
                    [SESSIONS] => кол-во сессий по стране за дату
                    [NEW_GUESTS] => кол-во новых посетителей по стране за дату
                    [HITS] => кол-во хитов по стране за дату
                    [C_EVENTS] => кол-во событий по стране за дату
                )
            ...

        )
    ...
)

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

<?
include($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/statistic/colors.php");
// отфильтруем данные только по России на декабрь 2007 года
$arFilter = Array(
    "COUNTRY_ID" => "ru",
    "DATE1"      => "01.12.2007",
    "DATE2"      => "31.12.2007"
    );

// получим массив данных в разрезе по дням
$arDays = CCountry::GetGraphArray($arFilter, $arLegend);

// выведем полученные данные по России за декабрь 2007 года
while (list($date, $arr) = each($arDays))
{
    echo "Дата: ".$date."<br>";
    echo "Данные на эту дату: <pre>"; print_r($arr); echo "</pre>";
}
?>


GetList

Веб-аналитика>Классы>CCountry>GetList

CCountry::GetList

Описание и параметры

CDBResult
CCountry::GetList(
 string &by = "s_name",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список стран, определённых в модуле "Статистика". Загрузка списка стран осуществляется при переиндексации базы IP адресов в настройках модуля "Статистика".

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_id - двухсимвольный идентификатор страны;
  • s_short_name - трехсимвольный идентификатор страны;
  • s_name - наименование страны;
  • s_sessions - суммарное кол-во сессий по данной стране;
  • s_new_guests - суммарное кол-во новых посетителей по данной стране;
  • s_hits - суммарное кол-во хитов по данной стране;
  • s_events - суммарное кол-во событий по данной стране.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID* - двухсимвольный идентификатор страны;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • SHORT_NAME* - трехсимвольный идентификатор страны;
  • SHORT_NAME_EXACT_MATCH - если значение равно "Y", то при фильтрации по SHORT_NAME будет искаться точное совпадение;
  • NAME* - наименование страны;
  • NAME_EXACT_MATCH - если значение равно "Y", то при фильтрации по NAME_EXACT_MATCH будет искаться точное совпадение;
  • SESSIONS1 - начальное значение интервала для поля "кол-во сессий";
  • SESSIONS2 - конечное значение интервала для поля "кол-во сессий";
  • NEW_GUESTS1 - начальное значение интервала для поля "кол-во новых посетителей";
  • NEW_GUESTS2 - конечное значение интервала для поля "кол-во новых посетителей";
  • HITS1 - начальное значение интервала для поля "кол-во хитов";
  • HITS2 - конечное значение интервала для поля "кол-во хитов";
  • EVENTS1 - начальное значение интервала для поля "кол-во событий";
  • EVENTS2 - конечное значение интервала для поля "кол-во событий".

    * - допускается сложная логика
is_filtered | Флаг отфильтрованности списка UserAgent'ов. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • Пользовательскую документацию, настройки модуля "Статистика"
  • SelectBox
  • SelectBoxM

Структура возвращаемой записи

Array
(
    [ID] => двухсимвольный идентификатор страны
    [SHORT_NAME] => трехсимвольный идентификатор страны
    [NAME] => название страны
    [SESSIONS] => суммарное кол-во сессий
    [NEW_GUESTS] => суммарное кол-во новых посетителей
    [HITS] => суммарное кол-во хитов
    [C_EVENTS] => суммарное кол-во событий
    [REFERENCE_ID] => параметр REFERENCE_ID для использования в
        функции SelectBox или SelectBoxM
    [REFERENCE] => параметр REFERENCE для использования в
        функции SelectBox или SelectBoxM
)

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

<?
// выберем только те страны из которых было не менее 100 заходов на сайт
$arFilter = array(
    "SESSIONS1" => 100
    );

// получим список записей
$rs = CCountry::GetList(
    ($by = "s_name"),
    ($order = "desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>

<?
// выпадающий список с одиночным выбором
echo SelectBox("COUNTRY_ID", CCountry::GetList(), "", intval($COUNTRY_ID));

// список из 20 видимых элементов с возможностью множественного выбора
echo SelectBoxM("arCOUNTRY_ID[]", CCountry::GetList(), $arCOUNTRY_ID, "", false, 20);
?>


Класс CGuest

CGuest - класс для получения данных по посетителям сайта.

Методы класса

Метод | Описание | С версии
GetByID | Возвращает данные по указанному посетителю. |
GetList | Возвращает список посетителей. |

Смотрите также

  • Термин "Посетитель"
  • Пользовательская документация, отчет "Посетители"


GetByID

Веб-аналитика>Классы>CGuest>GetByID

CGuest::GetByID

Описание и параметры

CDBResult
CGuest::GetByID(
 int guest_id
)

Возвращает данные по указанному посетителю.

Параметры метода

Параметр | Описание
guest_id | ID посетителя.

Смотрите также

  • Термин "Посетитель"

Структура возвращаемой записи

Array
(
    [ID] => ID посетителя
    [FAVORITES] => [Y|N] флаг добавления сайта в "Избранное"
    [C_EVENTS] => количество событий сгенерированных данным посетителей
    [SESSIONS] => количество сессий данного посетителя
    [HITS] => количество хитов данного посетителя
    [REPAIR] => [Y|N] флаг того что данный посетитель был "восстановлен" после очистки устаревших данных (Y)
    [FIRST_SESSION_ID] => ID сессии первого захода на сайт
    [FSESSION_TIME] => длительность первой сессии посетителя (сек.)
    [FSESSION_HITS] => кол-во хитов первой сессии посетителя
    [FIRST_DATE] => время первого захода на сайт
    [FIRST_URL_FROM] => адрес страницы с которой посетитель впервые пришел на сайт
    [FIRST_URL_TO] => адрес страницы сайта на которую посетитель впервые пришел
    [FIRST_URL_TO_404] => флаг 404 ошибки на странице сайта на которую посетитель впервые пришел
    [FIRST_SITE_ID] => ID сайта на который посетитель впервые пришел
    [FIRST_ADV_ID] => ID рекламной кампании по которой посетитель впервые пришел на сайт
    [FIRST_REFERER1] => идентификатор referer1 рекламной кампании FIRST_ADV_ID
    [FIRST_REFERER2] => идентификатор referer2 рекламной кампании FIRST_ADV_ID
    [FIRST_REFERER3] => дополнительный параметр referer3 рекламной кампании FIRST_ADV_ID
    [LAST_SESSION_ID] => ID сессии последнего захода на сайт
    [LSESSION_TIME] => длительность последней сессии посетителя (сек.)
    [LSESSION_HITS] => кол-во хитов последней сессии посетителя
    [LAST_DATE] => время последнего захода на сайт
    [LAST_USER_ID] => ID пользователя
    [USER_NAME] => имя и фамилия пользователя под которым посетитель был авторизован последний раз
    [LOGIN] => логин пользователя под которым посетитель был авторизован последний раз
    [LAST_USER_AUTH] => [Y|N] был ли авторизован посетитель в последнем заходе на сайт
    [LAST_URL_LAST] => адрес последней страницы на которую зашел посетитель
    [LAST_URL_LAST_404] => флаг 404 ошибки (страница не существует) на последней странице сайта на которую зашел посетитель
    [LAST_USER_AGENT] => UserAgent посетителя в последнем заходе
    [LAST_IP] => IP адрес посетителя сайта в последнем заходе
    [LAST_COOKIE] => Cookie посетителя сайта в последнем заходе
    [LAST_LANGUAGE] => языки установленные в настройках браузера посетителя в последнем заходе
    [LAST_ADV_ID] => ID рекламной кампании по которой посетитель пришел на сайт в последнем заходе
    [LAST_ADV_BACK] => [Y|N] флаг того был ли это возврат (Y) или прямой заход (N) по рекламной кампании LAST_ADV_ID
    [LAST_REFERER1] => идентификатор referer1 рекламной кампании LAST_ADV_ID
    [LAST_REFERER2] => идентификатор referer2 рекламной кампании LAST_ADV_ID
    [LAST_REFERER3] => дополнительный параметр referer3 рекламной кампании LAST_ADV_ID
    [LAST_SITE_ID] => ID сайта последнего захода
    [LAST_COUNTRY_ID] => ID страны посетителя в последнем заходе
    [COUNTRY_NAME] => название страны посетителя в последнем заходе
)

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

<?
$guest_id = 1;
if ($rs = CGuest::GetByID($guest_id))
{
    $ar = $rs->Fetch();
    // выведем параметры посетителя
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetList

Веб-аналитика>Классы>CGuest>GetList

CGuest::GetList

Описание и параметры

CDBResult
CGuest::GetList(
 string &by = "s_last_date",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список посетителей.

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_id - ID посетителя;
  • s_events - суммарное кол-во событий сгенерированных посетителем;
  • s_sessions - суммарное кол-во сессий посетителя;
  • s_hits - суммарное кол-во хитов посетителя;
  • s_first_site_id - ID сайта на который впервые пришел посетитель;
  • s_first_date - время первого захода на сайт;
  • s_first_url_from - страница с которой впервые пришел посетитель;
  • s_first_url_to - страница куда впервые пришел посетитель;
  • s_first_adv_id - ID рекламной кампании первого захода;
  • s_last_site_id - ID сайта последнего захода посетителя;
  • s_last_date - время последнего захода поестителя;
  • s_last_user_id - ID пользователя;
  • s_last_url_last - последняя страница на которую заходил посетитель;
  • s_last_user_agent - UserAgent посетителя на последнем заходе;
  • s_last_ip - IP адрес посетителя на последнем заходе;
  • s_last_adv_id - ID рекламной кампании на последнем заходе;
  • s_last_country_id - ID страны посетителя на последнем заходе.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID* - ID посетителя;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • REGISTERED - был ли посетитель когда либо авторизован на сайте, возможные значения:
    • Y - был;
    • N - не был.
  • FIRST_DATE1 - начальное значение интервала для поля "дата первого захода на сайт";
  • FIRST_DATE2 - конечное значение интервала для поля "дата первого захода на сайт";
  • LAST_DATE1 - начальное значение интервала для поля "дата последнего захода на сайт";
  • LAST_DATE2 - конечное значение интервала для поля "дата первого захода на сайт";
  • PERIOD_DATE1 - начальное значение интервала для даты посещения посетителем сайта;
  • PERIOD_DATE2 - конечно значение интервала для даты посещения посетителем сайта;
  • SITE_ID* - ID сайта первого либо последнего захода;
  • SITE_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по SITE_ID будет искаться вхождение;
  • FIRST_SITE_ID* - ID сайта первого захода;
  • FIRST_SITE_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по FIRST_SITE_ID будет искаться вхождение;
  • LAST_SITE_ID* - ID сайта последнего захода;
  • LAST_SITE_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по LAST_SITE_ID будет искаться вхождение;
  • URL* - страница откуда впервые пришел посетитель, страница на которую впервые пришел посетитель и последняя страница просмотренная посетителем;
  • URL_EXACT_MATCH - если значение равно "Y", то при фильтрации по URL будет искаться точное совпадение;
  • URL_404 - была ли 404 ошибка на первой странице или на последней странице посещенной посетителем, возможные значения:
    • Y - была;
    • N - не было.
  • USER_AGENT* - UserAgent посетителя на последнем заходе;
  • USER_AGENT_EXACT_MATCH - если значение равно "Y", то при фильтрации по USER_AGENT будет искаться точное совпадение;
  • ADV - флаг "приходил ли посетитель когда либо по рекламной кампании (не равной NA/NA)", возможные значения:
    • Y - посетитель приходил по какой либо рекламной кампании (не равной NA/NA);
    • N - не приходил никогда ни по одной рекламной кампании (не равной NA/NA).
  • ADV_ID - ID рекламной кампании первого либо последнего захода посетителя (при этом это мог быть как прямой заход так и возврат по рекламной кампании);
  • REFERER1* - идентификатор referer1 рекламной кампании первого либо последнего захода посетителя;
  • REFERER1_EXACT_MATCH - если значение равно "Y", то при фильтрации по REFERER1 будет искаться точное совпадение;
  • REFERER2* - идентификатор referer2 рекламной кампании первого либо последнего захода посетителя;
  • REFERER2_EXACT_MATCH - если значение равно "Y", то при фильтрации по REFERER2 будет искаться точное совпадение;
  • REFERER3* - дополнительный параметр referer3 рекламной кампании первого либо последнего захода посетителя;
  • REFERER3_EXACT_MATCH - если значение равно "Y", то при фильтрации по REFERER3 будет искаться точное совпадение;
  • EVENTS1 - начальное значение для интервала кол-ва событий сгенерированных посетителем;
  • EVENTS2 - конечное значение для интервала кол-ва событий сгенерированных посетителем;
  • SESS1 - начальное значение для интервала кол-ва сессий сгенерированных посетителем;
  • SESS2 - конечное значение для интервала кол-ва сессий сгенерированных посетителем;
  • HITS1 - начальное значение для интервала кол-ва хитов сгенерированных посетителем;
  • HITS2 - конечное значение для интервала кол-ва хитов сгенерированных посетителем;
  • FAVORITES - флаг "добавлял ли посетитель сайт в "Избранное"", возможные значения:
    • Y - добавлял;
    • N - не добавлял.
  • IP - IP адрес посетителя сайта в последнем заходе;
  • LANG - языки установленные в настройках браузера посетителя в последнем заходе;
  • COUNTRY_ID* - ID страны (двухсимвольный идентификатор) посетителя в последнем заходе;
  • COUNTRY_ID_EXACT_MATCH - если значение равно "Y", то при фильтрации по COUNTRY_ID будет искаться точное совпадение;
  • COUNTRY* - название страны;
  • COUNTRY_EXACT_MATCH - если значение равно "Y", то при фильтрации по COUNTRY будет искаться точное совпадение;
  • USER* - ID, логин, имя, фамилия пользователя, под которыми посетитель последний раз был авторизован;
  • USER_EXACT_MATCH - если значение равно "Y", то при фильтрации по USER будет искаться точное совпадение;
  • USER_ID* - ID пользователя, под которым посетитель последний раз был авторизован;
  • USER_ID_EXACT_MATCH - если значение равно "Y", то при фильтрации по USER_ID будет искаться точное совпадение.

* - допускается сложная логика
is_filtered | Флаг отфильтрованности списка посетителей. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • Термин "Посетитель"

Структура возвращаемой записи

Array
(
    [ID] => ID посетителя
    [FAVORITES] => [Y|N] флаг добавления сайта в "Избранное"
    [C_EVENTS] => количество событий сгенерированных данным посетителей
    [SESSIONS] => количество сессий данного посетителя
    [HITS] => количество хитов данного посетителя
    [FIRST_SESSION_ID] => ID сессии первого захода на сайт
    [FIRST_DATE] => время первого захода на сайт
    [FIRST_URL_FROM] => адрес страницы с которой посетитель впервые пришел на сайт
    [FIRST_URL_TO] => адрес страницы сайта на которую посетитель впервые пришел
    [FIRST_URL_TO_404] => флаг 404 ошибки (страница не существует) на странице сайта на которую посетитель впервые пришел
    [FIRST_SITE_ID] => ID сайта на который посетитель впервые пришел
    [FIRST_ADV_ID] => ID рекламной кампании по которой посетитель впервые пришел на сайт
    [FIRST_REFERER1] => идентификатор referer1 рекламной кампании FIRST_ADV_ID
    [FIRST_REFERER2] => идентификатор referer2 рекламной кампании FIRST_ADV_ID
    [FIRST_REFERER3] => дополнительный параметр referer3 рекламной кампании FIRST_ADV_ID
    [LAST_SESSION_ID] => ID сессии последнего захода на сайт
    [LAST_DATE] => время последнего захода на сайт
    [LAST_USER_ID] => ID пользователя
    [LAST_USER_AUTH] => [Y|N] был ли авторизован посетитель в последнем заходе на сайт
    [LAST_URL_LAST] => адрес последней страницы на которую зашел посетитель
    [LAST_URL_LAST_404] => флаг 404 ошибки (страница не существует) на последней странице сайта на которую зашел посетитель
    [LAST_USER_AGENT] => UserAgent посетителя в последнем заходе
    [LAST_IP] => IP адрес посетителя сайта в последнем заходе
    [LAST_LANGUAGE] => языки установленные в настройках браузера посетителя в последнем заходе
    [LAST_ADV_ID] => ID рекламной кампании по которой посетитель пришел на сайт в последнем заходе
    [LAST_ADV_BACK] => [Y|N] флаг того был ли это возврат (Y) или прямой заход (N) по рекламной кампании LAST_ADV_ID
    [LAST_REFERER1] => идентификатор referer1 рекламной кампании LAST_ADV_ID
    [LAST_REFERER2] => идентификатор referer2 рекламной кампании LAST_ADV_ID
    [LAST_REFERER3] => дополнительный параметр referer3 рекламной кампании LAST_ADV_ID
    [LAST_SITE_ID] => ID сайта последнего захода
    [LAST_COUNTRY_ID] => ID страны посетителя в последнем заходе
    [LAST_COUNTRY_NAME] => название страны посетителя в последнем заходе (если установлено filter["COUNTRY_ID"])
)

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

<?
// выберем только тех посетителей UserAgent которых содержит "Opera"
$arFilter = array(
    "USER_AGENT" => "Opera"
    );

// получим список записей
$rs = CGuest::GetList(
    ($by = "s_id"),
    ($order = "desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


Класс CHit

CHit - класс для получения данных по хитами посетителей.

Методы класса

Метод | Описание | С версии
GetByID | Возвращает данные по указанному хиту. |
GetList | Возвращает список хитов. |

Смотрите также

  • Термин "Хит"
  • Пользовательская документация, отчет "Хиты посетителей"


GetByID

Веб-аналитика>Классы>CHit>GetByID

CHit::GetByID

Описание и параметры

CDBResult
CHit::GetByID(
 int hit_id
)

Возвращает данные по указанному хиту посетителя.

Параметры метода

Параметр | Описание
hit_id | ID хита.

Смотрите также

  • Термин "Хит"

Структура возвращаемой записи

Array
(
    [ID] => ID хита
    [SESSION_ID] => ID сессии
    [DATE_HIT] => время хита
    [GUEST_ID] => ID посетителя
    [NEW_GUEST] => [Y|N] флаг "был ли это новый посетитель на сайте" (Y)
    [USER_ID] => ID пользователя под которым посетитель был авторизован (в момент хита или до этого)
    [USER_AUTH] => флаг "был ли посетитель авторизован в момент хита"
    [URL] => страница хита
    [URL_404] => была ли 404 ошибка на странице хита
    [URL_FROM] => страница откуда пришел посетитель
    [IP] => IP адрес посетитель в момент хита
    [METHOD] => HTTP метод отсылки данных
    [COOKIES] => содержимое Cookie посетителя в момент хита
    [USER_AGENT] => UserAgent посетителя в момент хита
    [STOP_LIST_ID] => ID записи стоп-листа под которую попал посетитель (если это имело место быть)
    [COUNTRY_ID] => ID страны (двухсимвольный идентификатор) посетителя сайта в момент хита (определяется по IP адресу)
    [COUNTRY_NAME] => название страны посетителя сайта в момент хита (определяется по IP адресу)
    [SITE_ID] => ID сайта (двухсимвольный идентификатор)
    [LOGIN] => логин пользователя под которым посетитель был авторизован (в момент хита или до этого)
    [USER_NAME] => имя и фамилия пользователя под которым посетитель был авторизован (в момент хита или до этого)
)

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

<?
$hit_id = 1;
if ($rs = CHit::GetByID($hit_id))
{
    $ar = $rs->Fetch();
    // выведем параметры хита
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetList

Веб-аналитика>Классы>CHit>GetList

CHit::GetList

Описание и параметры

CDBResult
CHit::GetList(
 string &by = "s_id",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список хитов посетителей. Число выводимых строк определяется в поле Максимальное кол-во показываемых записей в таблицах в настройках модуля [image] Веб-аналитика.

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_id - ID хита;
  • s_site_id - ID сайта;
  • s_session_id - ID сессии;
  • s_date_hit - время хита;
  • s_user_id - ID пользователя под которым был авторизован посетитель (в момент хита или до того);
  • s_guest_id - ID посетителя;
  • s_ip - IP адрес посетителя;
  • s_url - страница хита;
  • s_country_id - ID страны посетителя.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID* - ID хита;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • GUEST_ID* - ID посетителя;
  • GUEST_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по GUEST_ID будет искаться вхождение;
  • NEW_GUEST - флаг "новый посетитель", возможные значения:
    • Y - посетитель впервые на портале;
    • N - посетитель уже посещал ранее портал.
  • SESSION_ID* - ID сессии;
  • SESSION_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по SESSION_ID будет искаться вхождение;
  • STOP_LIST_ID* - ID записи стоп-листа под которую попал посетитель (если это имело место быть);
  • STOP_LIST_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по STOP_LIST_ID будет искаться вхождение;
  • URL* - страница хита;
  • URL_EXACT_MATCH - если значение равно "Y", то при фильтрации по URL будет искаться точное совпадение;
  • URL_404 - была ли 404 ошибка на странице хита
    • Y - была;
    • N - не было.
  • USER* - ID, логин, имя, фамилия пользователя под которым был авторизован посетитель в момент хита или до него;
  • USER_EXACT_MATCH - если значение равно "Y", то при фильтрации по USER будет искаться точное совпадение;
  • REGISTERED - флаг "был ли авторизован посетитель в момент хита или до этого", возможные значения:
    • Y - был;
    • N - не был.
  • DATE_1 - начальное значение интервала даты хита;
  • DATE_2 - конечное значение интервала даты хита;
  • IP* - IP адрес посетителя в момент хита;
  • IP_EXACT_MATCH - если значение равно "Y", то при фильтрации по IP будет искаться точное совпадение;
  • USER_AGENT* - UserAgent посетителя в момент хита;
  • USER_AGENT_EXACT_MATCH - если значение равно "Y", то при фильтрации по USER_AGENT будет искаться точное совпадение;
  • COUNTRY_ID* - ID страны посетителя в момент хита;
  • COUNTRY_ID_EXACT_MATCH - если значение равно "Y", то при фильтрации по COUNTRY_ID будет искаться точное совпадение;
  • COUNTRY* - название страны;
  • COUNTRY_EXACT_MATCH - если значение равно "Y", то при фильтрации по COUNTRY будет искаться точное совпадение;
  • COOKIE* - содержимое Cookie в момент хита;
  • COOKIE_EXACT_MATCH - если значение равно "Y", то при фильтрации по COOKIE будет искаться точное совпадение;
  • STOP -
    • Y - был;
    • N - не был.
  • SITE_ID* - ID сайта;
  • SITE_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по SITE_ID будет искаться вхождение.

* - допускается сложная логика
is_filtered | Флаг отфильтрованности списка хитов. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • Термин "Хит"

Структура возвращаемой записи

Array
(
    [ID] => ID хита
    [SESSION_ID] => ID сессии
    [DATE_HIT] => время хита
    [GUEST_ID] => ID посетителя
    [NEW_GUEST] => [Y|N] флаг "был ли это новый посетитель на сайте" (Y)
    [USER_ID] => ID пользователя под которым посетитель был авторизован (в момент хита или до этого)
    [USER_AUTH] => флаг "был ли посетитель авторизован в момент хита"
    [URL] => страница хита
    [URL_404] => была ли 404 ошибка на странице хита
    [URL_FROM] => страница откуда пришел посетитель
    [IP] => IP адрес посетитель в момент хита
    [METHOD] => HTTP метод отсылки данных
    [COOKIES] => содержимое Cookie посетителя в момент хита
    [USER_AGENT] => UserAgent посетителя в момент хита
    [STOP_LIST_ID] => ID записи стоп-листа под которую попал посетитель (если это имело место быть)
    [COUNTRY_ID] => ID страны (двухсимвольный идентификатор) посетителя сайта в момент хита (определяется по IP адресу)
    [COUNTRY_NAME] => название страны посетителя сайта в момент хита (определяется по IP адресу)
    [SITE_ID] => ID сайта (двухсимвольный идентификатор)
    [LOGIN] => логин пользователя под которым посетитель был авторизован (в момент хита или до этого)
    [USER_NAME] => имя и фамилия пользователя под которым посетитель был авторизован (в момент хита или до этого)
)

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

<?
// выберем хиты сессии #1056
$arFilter = array(
    "SESSION_ID" => 1056
    );

// получим список записей
$rs = CHit::GetList(
    ($by = "s_id"),
    ($order = "desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


Класс CPage

CPage - класс для получения данных о посещенных страницах сайта.

Методы класса

Метод | Описание | С версии
GetDynamicList | Возвращает данные по посещаемости указанной страницы в разрезе по дням. |
GetList | Возвращает список посещенных на сайте страниц. |

Смотрите также

  • Пользовательская документация, отчет "Разделы и страницы"


GetDynamicList

Веб-аналитика>Классы>CPage>GetDynamicList

CPage::GetDynamicList

Описание и параметры

CDBResult
CPage::GetDynamicList(
 string url,
 string &by = "s_date",
 string &order = "desc",
 array filter = array()
)

Возвращает данные по посещаемости указанной страницы (каталогу) в разрезе по дням.

Параметры метода

Параметр | Описание
url | Полный путь к странице (каталогу) по которой необходимо получить данные.
by Порядок сортировки. Возможные значения:
  • s_date - дата.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • DATE1 - начальное значение интервала даты;
  • DATE2 - конечное значение интервала даты;
  • ADV* - ID рекламной кампании (РК), данное поле позволяет отфильтровать только те страницы (каталоги) которые были открыты только посетителями по данной РК и соответственно получить данные по посещаемости страницы (каталога) url только этих посетителей;
  • ADV_EXACT_MATCH - если значение равно "N", то при фильтрации по ADV будет искаться вхождение;
  • ADV_DATA_TYPE - флаг "возврат или прямой заход по рекламной кампании" (используется только если указано filter["ADV"]), возможные значения:
    • B - показывать данные по посетителям только на возврате по РК;
    • P - показывать данные по посетителям только на прямом заходе по РК.
  • IS_DIR - показывать данные по разделам или страницам. Для фильтрации разделов требуется указать значение Y. Для страниц - N;

    • Если не указать ни одно из вышеперечисленных значений, то данные будут показываться в сумме как по прямому заходу так и по возврату.
* - допускается сложная логика

Смотрите также

  • Термин "Точка входа"
  • Термин "Точка выхода"

Структура возвращаемой записи

Array
(
    [DATE_STAT] => дата
    [DAY] => номер дня (1-31)
    [MONTH] => номер месяца (1-12)
    [YEAR] => год
    [COUNTER] => кол-во хитов на странице url
    [ENTER_COUNTER] => сколько раз данная страница была точкой входа
    [EXIT_COUNTER] => сколько раз данная страница была точкой выхода
)

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

<?
$url = "http://www.bitrixsoft.ru/about/index.php";

// установим фильтр на декабрь 2007 года
// по прямым заходам с рекламной кампании 1 либо 2
$arFilter = array(
    "DATE1" => "01.12.2007",
    "DATE2" => "31.12.2007",
    "ADV"   => "1 | 2",
    "ADV_DATA_TYPE" => "P"
    );

// получим набор записей
$rs = CPage::GetDynamicList(
    $url,
    ($by="s_date"),
    ($order="desc"),
    $arFilter,
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetList

Веб-аналитика>Классы>CPage>GetList

CPage::GetList

Описание и параметры

CDBResult
CPage::GetList(
 string counter_type = "",
 string &by = "s_last_date",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список посещенных на сайте страниц (каталогов) и данные по их посещаемости.

Параметры метода

Параметр | Описание
counter_type Тип счетчика. Возможные значения:
  • ENTER_COUNTER - кол-во раз когда данная страница (каталог) была точкой входа;
  • EXIT_COUNTER - кол-во раз когда данная страница (каталог) была точкой выхода.
По умолчанию в счетчике хранится общее число хитов по странице (каталогу) (включая и точки входа и точки выхода).
by Порядок сортировки. Возможные значения:
  • s_url - страница (каталог);
  • s_counter - счетчик.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • DATE1 - начальное значение для интервала даты за которую необходимо получить данные;
  • DATE2 - конечное значение для интервала даты за которую необходимо получить данные;
  • DIR - флаг "показывать только каталоги или только страницы", возможные значения:
    • Y - в результирующем списке должны быть только каталоги;
    • N - в результирующем списке должны быть только страницы.
  • URL* - Полный путь к странице (каталогу) для которой необходимо вывести данные;
  • URL_EXACT_MATCH - если значение равно "Y", то при фильтрации по URL будет искаться точное совпадение;
  • URL_404 - была ли 404 ошибка на странице, возможные значения:
    • Y - была;
    • N - не было.
    Для фильтрации каталогов данное поле не может использоваться.
  • ADV* - ID рекламной кампании (РК), данное поле позволяет отфильтровать только те страницы (каталоги) которые были открыты только посетителями по данной РК и соответственно получить данные по посещаемости страницы (каталога) url только этих посетителей;
  • ADV_EXACT_MATCH - если значение равно "N", то при фильтрации по ADV будет искаться вхождение;
  • ADV_DATA_TYPE - флаг типа данных для рекламной кампании, возможные значения:
    • P - только по прямым заходам по рекламной кампании;
    • B - только по возвратам по рекламной кампании;
    • S - сумма по прямым заходам и возвратам.
  • SITE_ID* - ID сайта;
  • SITE_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по SITE_ID будет искаться вхождение.
* - допускается сложная логика
is_filtered | Флаг отфильтрованности списка страниц (каталогов). Если значение равно "true", то список был отфильтрован.

Смотрите также

  • Термин "Точка входа"
  • Термин "Точка выхода"

Структура возвращаемой записи

Array
(
    [URL] => страница (раздел)
    [DIR] => [Y|N] флаг "страница(N) или каталог(Y)"
    [SITE_ID] => ID сайта
    [URL_404] => флаг 404 ошибки для страницы
    [COUNTER] => счетчик хитов на данной странице (в данном каталоге)
                 (только если counter_type<>ENTER_COUNTER
                 и counter_type<>EXIT_COUNTER)
    [ENTER_COUNTER] => счетчик сколько раз данная страница (каталог)
                       являлась точкой входа (только при установленном
                       counter_type=ENTER_COUNTER)
    [EXIT_COUNTER] => счетчик сколько раз данная страница (каталог)
                      являлась точкой выхода (только при установленном
                      counter_type=EXIT_COUNTER)
)

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

<?
// получим данные по заданной странице
$arFilter = array(
    "URL" => "http://www.bitrixsoft.ru/about/index.php",
    "URL_EXACT_MATCH" => "Y"
    );

// получим список записей
$rs = CPage::GetList(
    "",
    ($by = "s_last_date"),
    ($order = "desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


Класс CPath

CPath - класс для получения данных о путях по сайту.

Методы класса

Метод | Описание | С версии
GetByID | По указанному ID записи, функция возвращает данные из таблицы, хранящей статистическую информацию как по полным путям, так и по отрезкам путей в разрезе по дням. |
GetList | Возвращает данные из таблицы, хранящей статистическую информацию как по полным путям, так и по отрезкам путей в разрезе по дням. |

Смотрите также

  • Пользовательскуя докуметацию, отчет "Пути по сайту"
  • Термин "Полный путь"
  • Термин "Отрезок пути"


GetByID

Веб-аналитика>Классы>CPath>GetByID

CPath::GetByID

Описание и параметры

CDBResult
CPath::GetByID(
 int id
)

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

Параметры метода

Параметр | Описание
id | ID записи из таблицы.

Смотрите также

  • Термин "Полный путь"
  • Термин "Отрезок пути"

Структура возвращаемой записи

Array
(
    [ID] => ID записи из таблицы отрезков путей по сайту
    [PATH_ID] => ID отрезка пути
    [PARENT_PATH_ID] => ID родительского отрезка пути
    [DATE_STAT] => дата
    [COUNTER] => количество переходов по данному отрезку пути
    [COUNTER_ABNORMAL] => количество переходов по данному отрезку пути
                          без передачи браузером адреса
                          ссылающейся страницы (HTTP_REFERER)
    [COUNTER_FULL_PATH] => количество переходов по полному пути,
                           страницы которого перечислены в [PAGES]
    [PAGES] => набор страниц входящих в полный путь
    [FIRST_PAGE] => первая страница пути
    [FIRST_PAGE_404] => флаг 404 ошибки на первой странице пути
    [FIRST_PAGE_SITE_ID] => ID сайта первой страницы пути
    [PREV_PAGE] => предпоследняя страница пути
    [PREV_PAGE_HASH] => хэш (crc32) предпоследней страницы пути
    [LAST_PAGE] => последняя страница пути
    [LAST_PAGE_404] => флаг 404 ошибки на последней странице пути
    [LAST_PAGE_SITE_ID] => ID сайта последней страницы пути
    [LAST_PAGE_HASH] => хэш (crc32) последней страницы пути
    [STEPS] => количество страниц входящих в полный путь
               (количество страниц в [PAGES])
)

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

<?
$path_id = 1;
if ($rs = CPath::GetByID($path_id))
{
    $ar = $rs->Fetch();
    // выведем параметры отрезка пути
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetList

Веб-аналитика>Классы>CPath>GetList

CPath::GetList

Описание и параметры

CDBResult
CPath::GetList(
 int parent_id = "",
 string counter_type = "COUNTER_FULL_PATH",
 string &by = "s_counter",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

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

Параметры метода

Параметр | Описание
parent_id | ID "родительского" отрезка пути (предшествовавшему текущему).
counter_type Тип счетчика, возможные значения:
  • COUNTER_FULL_PATH - количество переходов по полному пути;
  • COUNTER - количество переходов по отрезку пути.
by Поле для сортировки. Возможные значения:
  • s_counter - значение счетчика тип которого задается в counter_type;
  • s_last_page - последняя страница отрезка пути (используется только если counter_type=COUNTER);
  • s_pages - набор всех страниц полного пути (используется только если counter_type=COUNTER_FULL_PATH).
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • PATH_ID* - ID отрезка пути;
  • PATH_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по PATH_ID будет искаться вхождение;
  • DATE1 - начальное значение для интервала даты;
  • DATE2 - конечное значение для интервала даты;
  • FIRST_PAGE* - первая страница пути;
  • FIRST_PAGE_EXACT_MATCH - если значение равно "Y", то при фильтрации по FIRST_PAGE будет искаться точное совпадение;
  • FIRST_PAGE_SITE_ID - ID сайта первой страницы пути;
  • FIRST_PAGE_SITE_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по FIRST_PAGE_SITE_ID будет искаться вхождение;
  • FIRST_PAGE_404 - была ли 404 ошибка на первой странице пути, возможные значения:
    • Y - была;
    • N - не была.
  • LAST_PAGE* - последняя страница пути;
  • LAST_PAGE_EXACT_MATCH - если значение равно "Y", то при фильтрации по LAST_PAGE будет искаться точное совпадение;
  • LAST_PAGE_SITE_ID* - ID сайта последней страницы пути;
  • LAST_PAGE_SITE_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по LAST_PAGE_SITE_ID будет искаться вхождение;
  • LAST_PAGE_404 - была ли 404 ошибка на последней странице пути, возможные значения:
    • Y - была;
    • N - не была.
  • PAGE* - произвольная страница пути
  • PAGE_EXACT_MATCH - если значение равно "N", то при фильтрации по PAGE будет искаться вхождение
  • PAGE_SITE_ID - ID сайта произвольной страницы пути
  • PAGE_404 - была ли 404 ошибка на произвольной странице пути, возможные значения:
    • Y - была
    • N - не была.
  • ADV* - ID рекламной кампании, по посетителям которой надо получить данные;
  • ADV_EXACT_MATCH - если значение равно "N", то при фильтрации по ADV будет искаться вхождение;
  • ADV_DATA_TYPE - флаг типа данных для рекламной кампании, возможные значения:
    • P - только по прямым заходам по рекламной кампании;
    • B - только по возвратам по рекламной кампании;
    • S - сумма по прямым заходам и возвратам.
  • STEPS1 - начальное значение интервала для поля "количество страниц в пути";
  • STEPS2 - конечное значение интервала для поля "количество страниц в пути".
* - допускается сложная логика
is_filtered | Флаг отфильтрованности списка записей. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • Термин "Полный путь"
  • Термин "Отрезок пути"

Структура возвращаемой записи

В зависимости от типа счетчика (counter_type), структура возвращаемой записи различная.

  • если counter_type = COUNTER:
    Array(
    [PATH_ID] => ID отрезка пути
    [LAST_PAGE] => последняя страница отрезка пути
    [LAST_PAGE_404] => [Y|N] флаг 404 ошибки  на последней странице пути
    [LAST_PAGE_SITE_ID] => ID сайта последней страницы пути
    [COUNTER] => количество переходов по отрезку пути
)
  • если counter_type = COUNTER_FULL_PATH:
    Array(
    [PATH_ID] => ID пути
    [PAGES] => набор страниц входящих в полный путь
    [COUNTER] => количество переходов по полному пути
)

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

<?
// выберем данные по полным путям пройденных посетителями
// рекламной кампании #1 или #2
$arFilter = array(
    "ADV" => "1 | 2"
    );

// получим список записей
$rs = CPath::GetList(
    "",
    "COUNTER_FULL_PATH",
    ($by = "s_counter"),
    ($order = "desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


Класс CPhrase

CPhrase - класс для получения данных по поисковым фразам.

Методы класса

Метод | Описание | С версии
GetList | Возвращает список поисковых фраз.

Смотрите также

  • Пользовательскую документацию, отчет "Поисковые фразы"
  • Термин "Поисковая фраза"
  • Термин "Поисковая система"


GetList

Веб-аналитика>Классы>CPhrase>GetList

CPhrase::GetList

Описание и параметры

CDBResult
CPhrase::GetList(
 string &by = "s_id",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered,
 int &total,
 string &group_by,
 int &max
)

Возвращает список поисковых фраз с возможностью группировки по поисковое фразе или поисковой системе.

Параметры метода

Параметр | Описание
by Поле для сортировки. В зависимости от группировки списка, набор доступных значений данной переменной может быть различным.
  • при группировке по поисковой фразе (filter["GROUP"]="P"):
    • s_phrase - поисковая фраза;
    • s_quantity - количество заходов с той или иной поисковой фразой.
  • при группировке по поисковой системе (filter["GROUP"]="S"):
    • s_name - поисковая система;
    • s_quantity - количество заходов с данной поисковой системы;
    • s_average_hits - среднее количество хитов производимое посетителями заходящим с той или иной поисковой системы.
  • когда группировка не установлена:
    • s_id - ID записи;
    • s_counter - счетчик;
    • s_site_id - ID сайта на который пришли;
    • s_phrase - поисковая фраза;
    • s_searcher_id - ID поисковой системы;
    • s_referer_id - ID записи из таблицы ссылающихся сайтов (страниц);
    • s_date_hit - дата захода;
    • s_url_to - страница на которую пришли;
    • s_session_id - ID сессии.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID - ID записи;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • SESSION_ID - ID сессии;
  • SESSION_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по SESSION_ID будет искаться вхождение;
  • SEARCHER_ID - ID поисковой системы;
  • SEARCHER_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по SEARCHER_ID будет искаться вхождение;
  • REFERER_ID - ID записи из таблицы ссылающихся сайтов (страниц);
  • REFERER_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по REFERER_ID будет искаться вхождение;
  • SEARCHER* - название поисковой системы;
  • SEARCHER_EXACT_MATCH - если значение равно "Y", то при фильтрации по SEARCHER будет искаться точное совпадение;
  • DATE1 - начальное значение интервала для поля "дата";
  • DATE2 - конечно значение интервала для поля "дата";
  • PHRASE* - поисковая фраза;
  • PHRASE_EXACT_MATCH - если значение равно "Y", то при фильтрации по PHRASE будет искаться точное совпадение;
  • TO* - страница на которую пришли;
  • TO_EXACT_MATCH - если значение равно "Y", то при фильтрации по TO будет искаться точное совпадение;
  • TO_404 - была ли 404 ошибка на странице на которую пришли, возможные значения:
    • Y - была;
    • N - не была.
  • SITE_ID - ID сайта, на который пришли;
  • GROUP - группировка результирующего списка, возможные значения:
    • P - группировка по поисковой фразе;
    • S - группировка по поисковой системе.
* - допускается сложная логика
is_filtered | Флаг отфильтрованности результирующего списка. Если значение равно "true", то список был отфильтрован.
total | Суммарное количество поисковых фраз. Принимает значение только при установленной группировке.
group_by Группировка списка поисковых фраз. Возможные значения:
  • P - группировка по поисковой фразе;
  • S - группировка по поисковой системе.
max | Количество заходов по самой популярной поисковой фразе. Принимает значение только при установленной группировке.

Смотрите также

  • Термин "Поисковая фраза"
  • Термин "Поисковая система"

Структура возвращаемой записи

В зависимости от установленной группировки, структура возвращаемой записи различная.

  • при группировке по поисковой фразе (filter["GROUP"]="P"):
    Array
    (
        [PHRASE] => поисковая фраза
        [QUANTITY] => сколько раз заходили на сайт по данной
                      поисковой фразе
        [PERCENT] => процент от общего количества заходов по
                     разным поисковым фразам
    )
  • при группировке по поисковой системе (filter["GROUP"]="S"):
    Array
    (
        [SEARCHER_ID] => ID поисковой системы
        [SEARCHER_NAME] => название поисковой системы
        [QUANTITY] => количество заходов с поисковой системы
        [PERCENT] => процент заходов с данной поисковой системы
        [AVERAGE_HITS] => среднее количество хитов, производимое
                          посетителями, заходящими с той или иной
                          поисковой системы
    )
  • когда группировка не установлена:
    Array
    (
        [ID] => ID записи
        [PHRASE] => поисковая фраза
        [DATE_HIT] => время
        [SESSION_ID] => ID сессии
        [REFERER_ID] => ID записи из таблицы ссылающихся сайтов (страниц)
        [SEARCHER_ID] => ID поисковой системы
        [SEARCHER_NAME] => название поисковой системы
        [URL_TO] => страница на которую пришли
        [URL_TO_404] => [Y|N] флаг 404 ошибки на странице,
                        на которую пришли
        [SITE_ID] => ID сайта, на который пришли
    )

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

<?
// отфильтруем только те поисковые фразы
// которые искали на сайте с помощью внутреннего поиска
$arFilter = array(
    "SEARCHER_ID"  => 1
    );

// получим список записей
$rs = CPhrase::GetList(
    ($by = "s_id"),
    ($order = "desc"),
    $arFilter,
    $is_filtered,
    $total,
    $group_by,
    $max
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


Класс CReferer

CReferer - класс для получения данных о ссылающихся сайтах.

Методы класса

Метод | Описание | С версии
GetList | Возвращает список ссылающихся сайтов (страниц). |

Смотрите также

  • Пользовательскую документацию, отчет "Ссылающиеся сайты"
  • Термин "Ссылающийся сайт (страница)"


GetList

Веб-аналитика>Классы>CReferer>GetList

CReferer::GetList

Описание и параметры

CDBResult
CReferer::GetList(
 string &by = "s_id",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered,
 int &total,
 string &group_by,
 int &max
)

Возвращает список ссылающихся сайтов (страниц).

Параметры метода

Параметр | Описание
by Поле для сортировки. В зависимости от группировки списка, набор доступных значений данной переменной может быть различным.
  • при группировке по ссылающейся странице (filter["GROUP"]="U"):
    • s_url_from - ссылающаяся страница;
    • s_quantity - количество заходов с ссылающейся страницы;
    • s_average_hits - среднее количество хитов, производимое посетителями заходящими с той или ссылающейся страницы.
  • при группировке по ссылающемуся домену (filter["GROUP"]="S"):
    • s_url_from - ссылающийся домен;
    • s_quantity - количество заходов с ссылающегося домена;
    • s_average_hits - среднее количество хитов, производимое посетителями.
  • когда группировка не установлена:
    • s_id - ID записи;
    • s_site_id - ID сайта, на который пришли;
    • s_url_from - ссылающаяся страница (с которой пришли);
    • s_url_to - страница на которую пришли;
    • s_date_hit - дата;
    • s_session_id - ID сессии.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID - ID записи;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • SESSION_ID - ID сессии;
  • SESSION_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по SESSION_ID будет искаться вхождение;
  • DATE1 - начальное значение интервала для поля "дата";
  • DATE2 - конечное значение интервала для поля "дата";
  • FROM_PROTOCOL - протокол ссылающейся страницы;
  • FROM_PROTOCOL_EXACT_MATCH - если значение равно "Y", то при фильтрации по FROM_PROTOCOL будет искаться точное совпадение;
  • FROM_DOMAIN - домен ссылающейся страницы;
  • FROM_DOMAIN_EXACT_MATCH - если значение равно "Y", то при фильтрации по FROM_DOMAIN будет искаться точное совпадение;
  • FROM_PAGE - ссылающаяся страница;
  • FROM_PAGE_EXACT_MATCH - если значение равно "Y", то при фильтрации по FROM_PAGE будет искаться точное совпадение;
  • FROM - протокол + домен + ссылающаяся страница;
  • FROM_EXACT_MATCH - если значение равно "Y", то при фильтрации по FROM будет искаться точное совпадение;
  • TO* - страница на которую пришли;
  • TO_EXACT_MATCH - если значение равно "Y", то при фильтрации по TO будет искаться точное совпадение;
  • TO_404 - была ли 404 ошибка на странице, на которую пришли, возможные значения:
    • Y - была;
    • N - не была.
  • SITE_ID - ID сайта на который пришли;
  • GROUP - группировка результирующего списка; возможные значения:
    • S - группировка по ссылающемуся домену (сайту);
    • U - группировка по ссылающейся странице.
* - допускается сложная логика
is_filtered | Флаг отфильтрованности результирующего списка. Если значение равно "true", то список был отфильтрован.
total | Суммарные количество заходов с ссылающихся страниц.
group_by Группировка результирующего списка. Возможные значения:
  • U - группировка по ссылающейся странице;
  • S - группировка по ссылающемуся домену.
max | Количество заходов с самой популярной ссылающейся страницы.

Смотрите также

  • Термин "Ссылающийся сайт (страница)"

Структура возвращаемой записи

В зависимости от установленной группировки, структура возвращаемой записи различная.

  • при группировке по ссылающейся странице (filter["GROUP"]="U"):
    Array
(
    [URL_FROM] => ссылающаяся страница
    [QUANTITY] => сколько раз зашли с данной ссылающейся страницы
    [PERCENT] => процент заходов с данной ссылающейся страницы,
                 относительно всех заходов со всех ссылающихся сайтов
    [AVERAGE_HITS] => среднее количество хитов, производимое
                      посетителями, заходящими с данной
                      ссылающейся страницы
)
  • при группировке по ссылающемуся домену (filter["GROUP"]="S"):
    Array
(
    [URL_FROM] => ссылающийся домен
    [QUANTITY] => сколько раз зашли с данного ссылающегося домена
    [PERCENT] => процент заходов с данного ссылающегося домена,
                 относительно всех заходов со всех ссылающихся сайтов
    [AVERAGE_HITS] => среднее количество хитов, производимое
                      посетителями, заходящими с данного
                      ссылающегося домена
)
  • когда группировка не установлена:
    Array
(
    [ID] => ID записи
    [URL_FROM] => ссылающаяся страница
    [DATE_HIT] => дата
    [SESSION_ID] => ID сессии
    [URL_TO] => страница, на которую пришли
    [URL_TO_404] => [Y|N] флаг 404 ошибки на странице на которую пришли
    [SITE_ID] => ID сайта на который пришли
)

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

<?
// отфильтруем только заходы с доменов "google"
// сгруппировав по ссылающемуся домену
$arFilter = array(
    "FROM_DOMAIN"  => "google",
    "GROUP"        => "S"
    );

// получим список записей
$rs = CReferer::GetList(
    ($by = "s_url_from"),
    ($order = "desc"),
    $arFilter,
    $is_filtered,
    $total,
    $group_by,
    $max
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


Класс CSearcher

CSearcher - класс для работы с поисковыми системами.

Методы класса

Метод | Описание | С версии
GetByID | Возвращает данные по указанной поисковой системе. |
GetDomainList | Возвращает список доменов поисковых систем. |
GetDropdownList | Возвращает список поисковых систем для вывода его в выпадающем списке с помощью функции SelectBox, либо в списке множественного выбора с помощью функции SelectBoxM. |
GetDynamicList | Возвращает количество хитов, для указанной поисковой системы в разрезе по дням. |
GetList | Возвращает список поисковых систем и количество хитов каждой из них за все время ведения статистики, за последние 3 дня, либо за указанный интервал времени. |

Смотрите также

  • Пользовательскую документацию, отчет "Поисковые системы"


GetByID

Веб-аналитика>Классы>CSearcher>GetByID

CSearcher::GetByID

Описание и параметры

CDBResult
CSearcher::GetByID(
 int searcher_id
)

Возвращает данные по указанной поисковой системе.

Параметры метода

Параметр | Описание
searcher_id | ID поисковой системы.

Смотрите также

  • CSearcher::GetDomainList
  • Термин "Поисковая система"

Структура возвращаемой записи

Array
(
    [ID] => ID поисковый системы
    [DATE_CLEANUP] => дата очистки устаревших данных по
                      индексации страниц, в разрезе по дням
    [TOTAL_HITS] => суммарное количество проиндексированных страниц
    [SAVE_STATISTIC] => [Y|N] флаг "сохранять ли информацию
                                    о проиндексированных страницах"
    [ACTIVE] => [Y|N] флаг активности
    [NAME] => название поисковой системы
    [USER_AGENT] => UserAgent поисковой системы
    [DIAGRAM_DEFAULT] => [Y|N] флаг "включать в диаграмму
                                     и график по умолчанию"
    [HIT_KEEP_DAYS] => сколько дней хранить хиты поисковой системы
    [DYNAMIC_KEEP_DAYS] => сколько дней хранить данные по
                           индексации сайта в разрезе по дням
    [PHRASES] => количество заходов на сайт по
                 поисковой фразе с данной поисковой системы
    [PHRASES_HITS] => суммарное количество хитов,
                      производимое посетителями, заходящими с данной
                      поисковой системы по той или иной поисковой фразе
    [CHECK_ACTIVITY] => [Y|N] флаг "проверять ли лимит активности для
                                    данной поисковой системы в моменты
                                    индексации сайта"
)

Примеры использования

<?
$searcher_id = 1;
if ($rs = CSearcher::GetByID($searcher_id))
{
    $ar = $rs->Fetch();
    // выведем параметры поисковой системы
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetDomainList

Веб-аналитика>Классы>CSearcher>GetDomainList

CSearcher::GetDomainList

Описание и параметры

CDBResult
CSearcher::GetDomainList(
 string &by = "s_id",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список доменов поисковых систем.

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_id - ID домена;
  • s_domain - домен;
  • s_variable - имя переменной (или группа имен переменных разделенных запятой) в которых хранится поисковая фраза.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID* - ID домена;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • SEARCHER_ID* - ID поисковой системы;
  • SEARCHER_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по SEARCHER_ID будет искаться вхождение;
  • DOMAIN* - домен;
  • DOMAIN_EXACT_MATCH - если значение равно "Y", то при фильтрации по DOMAIN будет искаться точное совпадение;
  • VARIABLE* - имя переменной (или группа имен переменных разделенных запятой) в которых хранится поисковая фраза;
  • VARIABLE_EXACT_MATCH - если значение равно "Y", то при фильтрации по VARIABLE будет искаться точное совпадение.
* - допускается сложная логика
is_filtered | Флаг отфильтрованности результирующего списка. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • CSearcher::GetByID
  • Термин "Домен поисковой системы"

Структура возвращаемой записи

Array
(
    [ID] => ID домена
    [DOMAIN] => домен
    [VARIABLE] => имя переменной (или группа имен переменных,
                  разделенных запятой) в которых хранится поисковая фраза
)

Примеры использования

<?
// выберем домены поисковой системы #20
$arFilter = array(
    "SEARCHER_ID" => 20
    );

// получим список записей
$rs = CSearcher::GetDomainList(
    ($by = "s_id"),
    ($order = "desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetDropdownList

Веб-аналитика>Классы>CSearcher>GetDropdownList

CSearcher::GetDropdownList

Описание и параметры

CDBResult
CSearcher::GetDropdownList(
 string order = "ORDER BY NAME, ID"
)

Возвращает список поисковых систем для вывода его в выпадающем списке с помощью функции SelectBox, либо в списке множественного выбора с помощью функции SelectBoxM.

Параметры метода

Параметр | Описание
order | SQL код, позволяющий задать произвольную сортировку результирующего списка.

Смотрите также

  • CSearcher::GetList
  • Термин "Поисковая система"

Примеры использования

<?
// выпадающий список с одиночным выбором
echo SelectBox(
    "SEARCHER_ID",
    CSearcher::GetDropdownList(),
    "",
    intval($SEARCHER_ID)
    );

// список из 20 видимых элементов с возможностью множественного выбора
echo SelectBoxM(
    "arSEARCHER_ID[]",
    CSearcher::GetDropdownList(),
    $arSEARCHER_ID,
    "",
    false,
    20
    );
?>


GetDynamicList

Веб-аналитика>Классы>CSearcher>GetDynamicList

CSearcher::GetDynamicList

Описание и параметры

CDBResult
CSearcher::GetDynamicList(
 int searcher_id,
 string &by = "s_date",
 string &order = "desc",
 array &max_min,
 array filter = array()
)

Возвращает количество хитов (проиндексированных страниц), для указанной поисковой системы в разрезе по дням.

Параметры метода

Параметр | Описание
searcher_id | ID поисковой системы.
by Поле для сортировки. Возможные значения:
  • s_date - дата.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
max_min Ссылка на массив содержащий максимальную и минимальную даты результирующего списка. Структура данного массива:
Array
(
    [DATE_FIRST] => минимальная дата
    [MIN_DAY] => номер дня для минимальной даты (1-31)
    [MIN_MONTH] => номер месяца для минимальной даты (1-12)
    [MIN_YEAR] => номер года для минимальной даты

    [DATE_LAST] => максимальная дата
    [MAX_DAY] => номер дня для максимальной даты (1-31)
    [MAX_MONTH] => номер месяца для максимальной даты (1-12)
    [MAX_YEAR] => номер года для максимальной даты
)
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • DATE1 - начальное значение интервала для поля "дата";
  • DATE2 - конечное значение интервала для поля "дата".

Смотрите также

  • Термин "Хит поисковой системы"

Структура возвращаемой записи

Array
(
    [DATE_STAT] => дата
    [DAY] => номер дня (1-31)
    [MONTH] => номер месяца (1-12)
    [YEAR] => номер года
    [TOTAL_HITS] => количество хитов (проиндексированных страниц)
)

Примеры использования

<?
$searcher_id = 1;

// установим фильтр на декабрь 2005 года
$arFilter = array(
    "DATE1" => "01.12.2005",
    "DATE2" => "31.12.2005"
    );

// получим набор записей
$rs = CSearcher::GetDynamicList(
    $searcher_id,
    ($by="s_date"),
    ($order="desc"),
    $arMaxMin,
    $arFilter
    );

// выведем массив с максимальной и минимальной датами
echo "<pre>"; print_r($arMaxMin); echo "</pre>";

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetList

Веб-аналитика>Классы>CSearcher>GetList

CSearcher::GetList

Описание и параметры

CDBResult
CSearcher::GetList(
 string &by = "s_today_hits",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered,
 mixed limit = false
)

Возвращает список поисковых систем и количество хитов (проиндексированных страниц) каждой из них за все время ведения статистики, за последние 3 дня, либо за указанный интервал времени.

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_id - ID поисковой системы;
  • s_date_last - дата последнего хита;
  • s_today_hits - количество хитов за сегодня;
  • s_yesterday_hits - количество хитов за вчера;
  • s_b_yesterday_hits - количество хитов за позавчера;
  • s_total_hits - суммарное количество хитов;
  • s_period_hits - количество хитов за установленный период времени (filter["DATE1"], filter["DATE2"]);
  • s_name - название поисковой системы;
  • s_user_agent - UserAgent поисковой системы.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID* - ID поисковой системы;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение
  • ACTIVE - флаг активности, возможные значения:
    • Y - активна;
    • N - не активна.
  • SAVE_STATISTIC - флаг "сохранять хиты поисковой системы", возможные значения:
    • Y - да;
    • N - нет.
  • DIAGRAM_DEFAULT - флаг "включать в круговую диаграмму и график по умолчанию", возможные значения:
    • Y - да;
    • N - нет.
  • HITS1 - начальное значение интервала для поля "количество хитов";
  • HITS2 - конечное значение интервала для поля "количество хитов";
  • DATE1_PERIOD - начальное значение значение для произвольного периода;
  • DATE2_PERIOD - конечное значение значение для произвольного периода;
  • DATE1 - начальное значение интервала для поля "дата последнего хита поисковой системы";
  • DATE2 - конечное значение интервала для поля "дата последнего хита поисковой системы";
  • NAME* - наименование поисковой системы;
  • NAME_EXACT_MATCH - если значение равно "Y", то при фильтрации по NAME будет искаться точное совпадение;
  • USER_AGENT* - UserAgent поисковой системы;
  • USER_AGENT_EXACT_MATCH - если значение равно "Y", то при фильтрации по USER_AGENT будет искаться точное совпадение.
* - допускается сложная логика
is_filtered | Флаг отфильтрованности списка поисковых систем. Если значение равно "true", то список был отфильтрован.
limit | Максимальное количество поисковых систем которые будут выбраны в списке. Если значение равно false, то кол-во РК будет ограничено в соответствии со значением параметра "Максимальное кол-во показываемых записей в таблицах" из настроек модуля "Статистика".

Смотрите также

  • CSearcher::GetDropdownList
  • Термин "Поисковая система"

Структура возвращаемой записи

Array
(
    [ID] => ID поисковой системы
    [NAME] => название
    [USER_AGENT] => UserAgent
    [DIAGRAM_DEFAULT] => [Y|N] флаг "включать в круговую диаграмму и график по умолчанию"
    [DATE_LAST] => дата последнего хита
    [TOTAL_HITS] => суммарное количество хитов
    [TODAY_HITS] => количество хитов за сегодня
    [YESTERDAY_HITS] => количество хитов за вчера
    [B_YESTERDAY_HITS] => количество хитов за позавчера
    [PERIOD_HITS] => количество хитов за установленный период времени (filter["DATE1_PERIOD"], filter["DATE2_PERIOD"])
)

Примеры использования

<?
// отфильтруем данные только для поисковой системы #20 и #21
// а также получим дополнительные данные на декабрь 2005 года
$arFilter = array(
    "ID"           => "20 | 21",
    "DATE1_PERIOD" => "01.12.2005",
    "DATE2_PERIOD" => "31.12.2005",
    );

// получим список записей
$rs = CSearcher::GetList(
    ($by = "s_today_hits"),
    ($order = "desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


Класс CSearcherHit

CSearcherHit - класс для получения данных о хитах поисковых систем (проиндекированных страниц).

Методы класса

Метод | Описание | С версии
GetList | Возвращает список хитов поисковых систем. |

Смотрите также

  • Пользовательскую документацию, отчет "Хиты поисковиков"
  • Термин "Хит поисковой системы"


GetList

Веб-аналитика>Классы>CSearcherHit>GetList

CSearcherHit::GetList

Описание и параметры

CDBResult
CSearcherHit::GetList(
 string &by = "s_date_hit",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список хитов поисковых систем.

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_id - ID хита;
  • s_site_id - ID сайта;
  • s_date_hit - дата хита;
  • s_searcher_id - ID поисковой системы;
  • s_user_agent - UserAgent поисковой системы;
  • s_ip - IP адрес поисковой системы;
  • s_url - адрес проиндексированной страницы.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID* - ID хита;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • SEARCHER_ID* - ID поисковой системы;
  • SEARCHER_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по SEARCHER_ID будет искаться вхождение;
  • URL* - адрес проиндексированной страницы;
  • URL_404 - была ли 404 ошибка на проиндексированной странице:
    • Y - была;
    • N - не была.
  • SEARCHER* - название поисковой системы;
  • SEARCHER_EXACT_MATCH - если значение равно "Y", то при фильтрации по SEARCHER будет искаться точное совпадение;
  • DATE1 - начальное значение интервала для поля "дата хита";
  • DATE2 - конечное значение интервала для поля "дата хита";
  • IP* - IP адрес поисковой системы;
  • IP_EXACT_MATCH - если значение равно "Y", то при фильтрации по IP будет искаться точное совпадение;
  • USER_AGENT* - UserAgent поисковой системы;
  • USER_AGENT_EXACT_MATCH - если значение равно "Y", то при фильтрации по USER_AGENT будет искаться точное совпадение;
  • SITE_ID* - ID сайта;
  • SITE_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по SITE_ID будет искаться вхождение.
* - допускается сложная логика
is_filtered | Флаг отфильтрованности результирующего списка. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • Термин "Хит поисковой системы"

Структура возвращаемой записи

Array
(
    [ID] => ID хита
    [DATE_HIT] => дата хита
    [SEARCHER_ID] => ID поисковой системы
    [SEARCHER_NAME] => название поисковой системы
    [URL] => адрес проиндексированной страницы
    [URL_404] => [Y|N] флаг 404 ошибки на проиндексированной странице
    [IP] => IP адрес поисковой системы
    [USER_AGENT] => UserAgent поисковой системы
    [HIT_KEEP_DAYS] => индивидуально количество дней,
                       отводимое для хранения хитов поисковой системы
    [SITE_ID] => ID сайта
)

Примеры использования

<?
// отфильтруем страницы проиндексированные
// поисковой системой #20 и #21
$arFilter = array(
    "SEARCHER_ID" => "20 | 21"
    );

// получим список записей
$rs = CSearcherHit::GetList(
    ($by = "s_url"),
    ($order = "desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


Класс CSession

CSession - класс для получения данных о сессиях посетителей.

Методы класса

Метод | Описание | С версии
GetByID | Возвращает данные по указанной сессии. |
GetList | Возвращает список сессий. |

Смотрите также

  • Пользовательская документация, отчет "Сессии посетителей"


GetByID

Веб-аналитика>Классы>CSession>GetByID

CSession::GetByID

Описание и параметры

CDBResult
CSession::GetByID(
 int session_id
)

Возвращает данные по указанной сессии.

Параметры метода

Параметр | Описание
session_id | ID сессии.

Смотрите также

  • Термин "Сессия"

Структура возвращаемой записи

Array
(
    [ID] => ID сессии
    [GUEST_ID] => ID посетителя
    [NEW_GUEST] => [Y|N] флаг "новый посетитель"
    [USER_ID] => ID пользователя, под которым последний раз
                 был авторизован посетитель
    [USER_AUTH] => [Y|N] флаг "был ли посетитель авторизован
                               в данной сессии"
    [LOGIN] => логин пользователя, под которым последний раз
               был авторизован посетитель
    [USER_NAME] => имя и фамилия пользователя, под которым последний раз
                   был авторизован посетитель
    [C_EVENTS] => количество событий, произведенных в данной сесси
    [HITS] => количество хитов данной сессии
    [FAVORITES] => [Y|N] флаг "добавлял ли посетитель сайт в
                               "Избранное" в данной сессии"
    [URL_FROM] => ссылающаяся страница для первого хита сессии
    [URL_TO] => первая страница сессии
    [URL_TO_404] => [Y|N] флаг 404 ошибки на первой странице сессии
    [URL_LAST] => последняя страница сессии
    [URL_LAST_404] => [Y|N] флаг 404 ошибки на первой странице сессии
    [USER_AGENT] => UserAgent посетителя
    [DATE_STAT] => дата начала сессии
    [DATE_FIRST] => время первого хита сессии
    [DATE_LAST] => время последнего хита сессии
    [SESSION_TIME] => разница во времени между первым и
                      последним хитом сессии (сек.)
    [IP_FIRST] => IP адрес посетителя на первом хите сессии
                  (в виде: XXX.XXX.XXX.XXX)
    [IP_FIRST_NUMBER] => IP адрес посетителя на первом хите сессии
                         (в числовом представлении)
    [IP_LAST] => IP адрес посетителя на последнем хите сессии
                 (в виде: XXX.XXX.XXX.XXX)
    [IP_LAST_NUMBER] => IP адрес посетителя на последнем хите сессии
                        (в числовом представлении)
    [FIRST_HIT_ID] => ID первого хита
    [FIRST_SITE_ID] => ID сайта для первого хита сессии
    [LAST_HIT_ID] => ID последнего хита
    [LAST_SITE_ID] => ID сайта для последнего хита сессии
    [ADV_ID] => ID рекламной кампании
    [ADV_BACK] => [Y|N] флаг прямого захода (N)
                  или возврата (Y) по рекламной кампании
    [REFERER1] => идентификатор referer1 рекламной кампании
    [REFERER2] => идентификатор referer2 рекламной кампании
    [REFERER3] => дополнительный параметр referer3 рекламной кампании
    [COUNTRY_ID] => ID страны посетителя
    [COUNTRY_NAME] => название страны посетителя
    [STOP_LIST_ID] => ID записи стоп-листа,
                      под которую попал посетитель
                      (если это имело место быть)
    [PHPSESSID] => идентификатор сессии выданный PHP
)

Примеры использования

<?
$session_id = 1;
if ($rs = CSession::GetByID($session_id))
{
    $ar = $rs->Fetch();
    // выведем параметры сессии
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetList

Веб-аналитика>Классы>CSession>GetList

CSession::GetList

Описание и параметры

CDBResult
CSession::GetList(
 string &by = "s_id",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список сессий.

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_id - ID сессии;
  • s_last_site_id - ID сайта последнего хита сессии;
  • s_first_site_id - ID сайта первого хита сессии;
  • s_date_first - время первого хита сессии;
  • s_date_last - время последнего хита сессии;
  • s_user_id - ID пользователя под которым последний раз был авторизован посетитель;
  • s_guest_id - ID посетителя;
  • s_ip - IP адрес посетителя на последнем хите сессии;
  • s_hits - количество хитов в данной сессии;
  • s_events - количество событий в данной сессии;
  • s_adv_id - ID рекламной кампании по которой пришел посетитель;
  • s_country_id - ID страны посетителя;
  • s_url_last - страница первого хита сессии;
  • s_url_to - страница последнего хита сессии.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID* - ID сессии;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • GUEST_ID* - ID посетителя;
  • GUEST_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по GUEST_ID будет искаться вхождение;
  • NEW_GUEST - флаг "новый посетитель", возможные значения:
    • Y - посетитель впервые на портале;
    • N - посетитель уже посещал ранее портал.
  • USER_ID* - ID пользователя под которым последний раз был авторизован посетитель;
  • USER_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по USER_ID будет искаться вхождение;
  • USER_AUTH - флаг "был ли посетитель авторизован в данной сессии", возможные значения:
    • Y - да;
    • N - нет.
  • USER* - ID, логин, имя, фамилия пользователя под которым последний раз был авторизован посетитель;
  • USER_EXACT_MATCH - если значение равно "Y", то при фильтрации по USER будет искаться точное совпадение;
  • REGISTERED - флаг "был ли авторизован посетитель в данной сессии или до этого", возможные значения:
    • Y - был;
    • N - не был.
  • FAVORITES - флаг "добавлял ли посетитель сайт в "Избранное"", возможные значения:
    • Y - да;
    • N - нет.
  • EVENTS1 - начальное значение интервала для поля "количество событий данной сессии";
  • EVENTS2 - конечное значение интервала для поля "количество событий данной сессии";
  • HITS1 - начальное значение интервала для поля "количество хитов данной сессии";
  • HITS2 - конечное значение интервала для поля "количество хитов данной сессии";
  • ADV - флаг "приходил ли посетитель в данной сессии по какой-либо рекламной кампании", возможные значения:
    • Y - да;
    • N - нет.
  • ADV_ID* - ID рекламной кампании;
  • ADV_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ADV_ID будет искаться вхождение;
  • ADV_BACK - флаг "возврат по рекламной кампании", возможные значения:
    • Y - был возврат;
    • N - был прямой заход.
  • REFERER1* - идентификатор referer1 рекламной кампании;
  • REFERER1_EXACT_MATCH - если значение равно "Y", то при фильтрации по REFERER1 будет искаться точное совпадение;
  • REFERER2* - идентификатор referer2 рекламной кампании;
  • REFERER2_EXACT_MATCH - если значение равно "Y", то при фильтрации по REFERER2 будет искаться точное совпадение;
  • REFERER3* - дополнительный параметр referer3 рекламной кампании;
  • REFERER3_EXACT_MATCH - если значение равно "Y", то при фильтрации по REFERER3 будет искаться точное совпадение;
  • STOP - флаг "попал ли посетитель под какую либо запись стоп-листа", возможные значения:
    • Y - да;
    • N - нет.
  • STOP_LIST_ID* - ID записи стоп-листа под которую попал посетитель, если это имело место быть;
  • STOP_LIST_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по STOP_LIST_ID будет искаться вхождение;
  • COUNTRY_ID* - ID страны посетителя;
  • COUNTRY_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по COUNTRY_ID будет искаться вхождение;
  • COUNTRY* - наименование страны посетителя;
  • COUNTRY_EXACT_MATCH - если значение равно "Y", то при фильтрации по COUNTRY будет искаться точное совпадение;
  • IP* - IP адрес посетителя на последнем хите сессии;
  • IP_EXACT_MATCH - если значение равно "Y", то при фильтрации по IP будет искаться точное совпадение;
  • USER_AGENT* - UserAgent посетителя;
  • USER_AGENT_EXACT_MATCH - если значение равно "Y", то при фильтрации по USER_AGENT будет искаться точное совпадение;
  • DATE_START_1 - начальное значение интервала для поля "время первого хита сессии";
  • DATE_START_2 - конечное значение интервала для поля "время первого хита сессии";
  • DATE_END_1 - начальное значение интервала для поля "время последнего хита сессии";
  • DATE_END_2 - конечное значение интервала для поля "время последнего хита сессии";
  • URL_TO* - первая страница сессии;
  • URL_TO_EXACT_MATCH - если значение равно "Y", то при фильтрации по URL_TO будет искаться точное совпадение;
  • URL_TO_404 - была ли 404 ошибка на первой страницы сессии
    • Y - была;
    • N - не было.
  • FIRST_SITE_ID* - ID сайта на первом хите сессии;
  • FIRST_SITE_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по FIRST_SITE_ID будет искаться вхождение;
  • URL_LAST* - последняя страница сессии;
  • URL_LAST_EXACT_MATCH - если значение равно "Y", то при фильтрации по URL_LAST будет искаться точное совпадение;
  • URL_LAST_404 - была ли 404 ошибка на последней страницы сессии
    • Y - была;
    • N - не было.
  • LAST_SITE_ID* - ID сайта на последнем хите сессии;
  • LAST_SITE_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по LAST_SITE_ID будет искаться вхождение.
* - допускается сложная логика
is_filtered | Флаг отфильтрованности результирующего списка. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • Термин "Сессия"

Структура возвращаемой записи

Array
(
    [ID] => ID сессии
    [GUEST_ID] => ID посетителя
    [NEW_GUEST] => флаг "новый посетитель" (Y - новый; N - вернувшийся)
    [USER_ID] => ID пользователя под которым последний раз был
                 авторизован посетитель
    [USER_AUTH] => флаг "авторизован ли посетитель в данной сессии"
                   (Y - да; N - нет)
    [C_EVENTS] => количество событий произведенных в данной сессии
    [HITS] => количество хитов произведенных в данной сессии
    [FAVORITES] => флаг "добавлял ли посетитель сайт в "Избранное"
                         в данной сессии
    [STOP_LIST_ID] => ID записи стоп-листа, под которую попал посетитель
                      (если это имело место быть)
    [COUNTRY_ID] => ID страны посетителя
    [USER_AGENT] => UserAgent посетителя

    [URL_FROM] => ссылающаяся страница для первого хита сессии

    [DATE_STAT] => дата первого хита сессии
    [DATE_FIRST] => время первого хита сессии
    [URL_TO] => страница первого хита сессии
    [URL_TO_404] => флаг 404 ошибки на первой странице сессии
                    (Y - да; N - нет)
    [FIRST_HIT_ID] => ID первого хита
    [FIRST_SITE_ID] => ID сайта для первого хита сессии
    [IP_FIRST] => IP адрес посетителя на первом хите сессии
                  (в виде: XXX.XXX.XXX.XXX)
    [IP_FIRST_NUMBER] => IP адрес посетителя на первом хите сессии
                         (в числовом представлении)

    [DATE_LAST] => время последнего хита сессии
    [URL_LAST] => страница последнего хита сессии
    [URL_LAST_404] => флаг 404 ошибки на последней странице сессии
                      (Y - да; N - нет)
    [LAST_HIT_ID] => ID последнего хита
    [LAST_SITE_ID] => ID сайта для последнего хита сессии
    [IP_LAST] => IP адрес посетителя на последнем хите сессии
                 (в виде: XXX.XXX.XXX.XXX)
    [IP_LAST_NUMBER] => IP адрес посетителя на последнем хите сессии
                        (в числовом представлении)

    [ADV_ID] => ID рекламной кампании
    [ADV_BACK] => флаг прямого захода (N) или возврата (Y)
                  по рекламной кампании
    [REFERER1] => идентификатор referer1 рекламной кампании
    [REFERER2] => идентификатор referer2 рекламной кампании
    [REFERER3] => дополнительный параметр referer3 рекламной кампании

    [SESSION_TIME] => разница во времени между первым и последним
                     хитом сессии (сек.)
    [PHPSESSID] => идентификатор сессии выданный PHP
)

Примеры использования

<?
// выберем все неудаленные сессии посетителя #1025
$arFilter = array(
    "GUEST_ID" => "1025"
    );

// получим список записей
$rs = CSession::GetList(
    ($by = "s_id"),
    ($order = "desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


Класс CStatEvent

CStatEvent - класс для работы с событиями.

Методы класса

Метод | Описание | С версии
Add | Добавляет событие по заданному ID типа события и специальному параметру. |
AddByEvents | Добавляет событие по заданным идентификаторам типа события и специальному параметру. |
AddCurrent | Добавляет событие используя текущие параметры посетителя. |
DecodeGid | Декодирует специальный параметр используемый при создании события. |
Delete | Удаляет указанное событие. |
GetGID | Возвращает специальный параметр для текущего посетителя. |
GetHandlerList | Возвращает список доступных обработчиков CSV файлов для вывода его в выпадающем списке с помощью функции SelectBoxFromArray, либо в списке множественного выбора с помощью функции SelectBoxMFromArray. |
GetList | Возвращает список событий. |
GetListByGuest | Возвращает список событий по указанному ID посетителя сайта. |

Смотрите также

  • Пользовательскую документацию, отчет "Список событий"


Add

Веб-аналитика>Классы>CStatEvent>Add

CStatEvent::Add

Описание и параметры

int
CStatEvent::Add(
 int type_id,
 string event3,
 string date,
 string gid,
 mixed money = "",
 string currency = "",
 string chargeback = "N"
)

Добавляет событие по заданному типу и специальному параметру.

Примечание. Метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.

Параметры метода

Параметр | Описание
type_id | ID типа события.
event3 | Дополнительный параметр event3 события.
date | Дата в текущем формате.
gid | Специальный параметр в котором закодированы все необходимые данные для добавления события.
money | Денежная сумма.
currency | Трехсимвольный идентификатор валюты. Идентификаторы валют задаются в модуле "Валюты".
chargeback Флаг отрицательной суммы. Используется, когда необходимо зафиксировать событие о возврате денег (chargeback). Возможные значения:
  • Y - денежная сумма отрицательная;
  • N - денежная сумма положительная.

Возвращаемое значение

Функция возвращает ID добавленного события в случае успеха и 0 если событие не было добавлено по каким либо причинам.

Смотрите также

  • CStatEvent::AddByEvents
  • CStatEvent::AddCurrent
  • Загрузка событий
  • Термин "Событие"
  • Термин "Дополнительный параметр события (event3)"
  • Термин "Специальный параметр события"

Примеры использования

<?
// добавим событие по типу события #1
// данный тип должен быть заранее создан

// специальный параметр события в незакодированном виде
$gid = "BITRIX_SM.995.82.N0.25.N.ru";

// дата должна быть заданы в формате текущего сайта или языка
$date = "23.12.2005 18:15:10";

CStatEvent::Add(1, "", $date, $gid, 99, "USD");
?>
<?
// добавим событие по типу события #2
// данный тип должен быть заранее создан

// специальный параметр события в закодированном виде
$gid = "BITRIX_SM.OTk1LjgyLk4wLjI1Lk4ucnU%3D";

// дата должна быть заданы в формате текущего сайта или языка
$date = "01.06.2005";

CStatEvent::Add(2, "", $date, $gid, "199", "EUR");
?>


AddByEvents

Веб-аналитика>Классы>CStatEvent>AddByEvents

CStatEvent::AddByEvents

Описание и параметры

int
CStatEvent::AddByEvents(
 string event1,
 string event2,
 string event3,
 string date,
 string gid,
 mixed money = "",
 string currency = "",
 string chargeback = "N"
)

Добавляет событие по заданным идентификаторам типа события и специальному параметру. Если типа события с идентификаторами event1, event2 не существует, то он будет автоматически создан с указанными идентификаторами.

Параметры метода

Параметр | Описание
event1 | Идентификатор типа события event1.
event2 | Идентификатор типа события event2.
event3 | Дополнительный параметр event3 события.
date | Дата в текущем формате.
gid | Специальный параметр в котором закодированы все необходимые данные для добавления события.
money | Денежная сумма.
currency | Трехсимвольный идентификатор валюты. Идентификаторы валют задаются в модуле "Валюты".
chargeback Флаг отрицательной суммы. Используется когда необходимо зафиксировать событие о возврате денег (chargeback). Возможные значения:
  • Y - денежная сумма отрицательная;
  • N - денежная сумма положительная.

Возвращаемое значение

Метод возвращает ID добавленного события в случае успеха, и 0, если событие не было добавлено по каким либо причинам.

Смотрите также

  • CStatEvent::Add
  • CStatEvent::AddCurrent
  • Загрузка событий
  • Термин "Событие"
  • Термин "Дополнительный параметр события (event3)"
  • Термин "Специальный параметр события"

Примеры использования

<?
// добавим событие по типу softkey/buy
// если такого типа нет, то он автоматически будет создан

// специальный параметр события в незакодированном виде
$gid = "BITRIX_SM.995.82.N0.25.N.ru";

// дата должна быть заданы в формате текущего сайта или языка
$date = "23.12.2005 18:15:10";

CStatEvent::AddByEvents("softkey", "buy", "", $date, $gid, "899", "USD");
?>

<?
// добавим событие по типу regnow/buy
// если такого типа нет, то он автоматически будет создан

// специальный параметр события в закодированном виде
$gid = "BITRIX_SM.OTk1LjgyLk4wLjI1Lk4ucnU%3D";

// дата должна быть заданы в формате текущего сайта или языка
$date = "01.06.2005";

CStatEvent::AddByEvents("regnow", "buy", "", $date, $gid, "199", "EUR");
?>


AddCurrent

Веб-аналитика>Классы>CStatEvent>AddCurrent

CStatEvent::AddCurrent

Описание и параметры

array
CStatEvent::AddCurrent(
 string event1,
 string event2 = "",
 string event3 = "",
 mixed money = "",
 string currency = "",
 string goto = "",
 string chargeback = "N",
 mixed site_id = false
)

Добавляет событие используя текущие параметры посетителя. Если типа события с идентификаторами event1, event2 не существует, то он будет автоматически создан с указанными идентификаторами.

Параметры метода

Параметр | Описание
event1 | Идентификатор типа события event1.
event2 | Идентификатор типа события event2.
event3 | Дополнительный параметр event3 события.
money | Денежная сумма.
currency | Трехсимвольный идентификатор валюты. Идентификаторы валют задаются в модуле "Валюты".
goto | Адрес страницы куда перешел посетитель. Как правило используется в скриптах вида /bitrix/redirect.php, перенаправляющих посетителей на другие страницы с одновременной фиксацией события.
chargeback Флаг отрицательной суммы. Используется когда необходимо зафиксировать событие о возврате денег (chargeback). Возможные значения:
  • Y - денежная сумма отрицательная;
  • N - денежная сумма положительная.
site_id | ID сайта к которому будет привязано будущее событие.

Возвращаемое значение

Метод возвращает массив вида:

Array
(
    [TYPE_ID] => ID типа события
    [EID] => ID добавленного события
)

Смотрите также

  • CStatEvent::Add
  • CStatEvent::AddByEvents
  • Термин "Событие"
  • Термин "Дополнительный параметр события (event3)"

Примеры использования

<?
// зафиксируем событие типа "Просмотр спец. страницы" (view/special_page)
CStatEvent::AddCurrent("softkey", "out", $GLOBALS["APPLICATION"]->GetCurPage());
?>
<?
// зафиксируем событие типа "Уход на оплату заказа на Софткее" (softkey/out)
// если такого типа не существует, то он будет автоматически создан
// событие будет фиксироваться по параметрам текущего посетителя сайта

// в данной переменной может быть задана страница на которую осуществляется переход
$goto = "http://www.softkey.ru/catalog/basket.php?prodid=902&quantity=1&referer1=ritlabs_site&referer2=BITRIX_SM.OTk1LjgyLk4wLjI1Lk4ucnU%3D";

CStatEvent::AddCurrent("softkey", "out", "", "", "", $goto);
?>
<?
// зафиксируем событие типа "Скачивание файла manual.chm" (download/manual)
// если такого типа не существует, то он будет автоматически создан
// событие будет фиксироваться по параметрам текущего посетителя сайта

// сначала проверим не скачивал ли уже текущий посетитель этот файл
// в течение последнего часа

// получим ID типа события
$rs = CStatEventType::GetByEvents($event1, $event2);
if ($ar = $rs->Fetch())
{
    // теперь получим все события данного типа для текущего посетителя сайта
    // произошедшие за последний час (3600 секунд)
    $rs = CStatEvent::GetListByGuest($_SESSION["SESS_GUEST_ID"], $ar["TYPE_ID"], "", 3600);

    // если таких событий не было то
    if (!($ar=$rs->Fetch()))
    {
        // добавляем данное событие
        CStatEvent::AddCurrent("download", "manual");
    }
}
?>


DecodeGID

Веб-аналитика>Классы>CStatEvent>DecodeGID

CStatEvent::DecodeGID

Описание и параметры

array
CStatEvent::DecodeGID(
 string gid
)

Декодирует специальный параметр используемый при создании события в методах CStatEvent::Add, CStatEvent::AddByEvents. Метод успешно декодирует параметр как в открытом виде, так и в base64-кодированном.

Параметры метода

Параметр | Описание
gid | Специальный параметр события.

Возвращаемое значение

Метод возвращает массив вида:

Array
(
    [SESSION_ID] => ID сессии
    [GUEST_ID] => ID посетителя
    [COUNTRY_ID] => ID страны
    [ADV_ID] => ID рекламной кампании
    [ADV_BACK] => Y - возврат по рекламной кампании; N - прямой заход
    [SITE_ID] => ID сайта
)

Смотрите также

  • CStatEvent::GetGID
  • Термин "Специальный параметр события"

Примеры использования

<?
// раскодируем специальный параметр события
$arr = CStatEvent::DecodeGID("BITRIX_SM.OTk1LjgyLk4wLjI1Lk4ucnU%3D");

// распечатаем результирующий массив
echo "<pre>"; print_r($arr); echo "</pre>";
?>


Delete

Веб-аналитика>Классы>CStatEvent>Delete

CStatEvent::Delete

bool
CStatEvent::Delete(
 int event_id
)

Удаляет указанное событие.

Параметры метода

Параметр | Описание
event_id | ID удаляемого события.

Возвращаемое значение

Метод возвращает "true" в случае успешного удаления и "false" в случае неудачи.

Смотрите также

  • Термин "Событие"

Примеры использования

<?
$event_id = 1;
if (CStatEvent::Delete($event_id))
    echo "Событие #".$event_id." успешно удалено.";
?>


GetGID

Веб-аналитика>Классы>CStatEvent>GetGID

CStatEvent::GetGID

Описание и параметры

string
CStatEvent::GetGID(
 mixed site_id = false
)

Возвращает специальный параметр используемый при создании события в методах CStatEvent::Add, CStatEvent::AddByEvents.

Значение данного параметра формируется на основе нижеследующих данных текущего посетителя:

  • краткий идентификатор портала (из настроек модуля "Статистика");
  • ID сессии;
  • ID посетителя;
  • двухсимвольный идентификатор страны;
  • ID рекламной кампании;
  • флаг прямого захода, либо возврата по рекламной кампании;
  • двухсимвольный идентификатор сайта.
В зависимости от значения настройки "Кодировать дополнительный параметр #EVENT_GID# для событий" модуля "Статистика" возвращаемый параметр может быть как в открытом виде, так и в base64-кодированном виде.

Параметры метода

Параметр | Описание
site_id | ID сайта.

Смотрите также

  • CStatEvent::DecodeGID
  • Термин "Специальный параметр события"

Примеры использования

<?
// страница, на которую посетитель будет перенаправлен
// после фиксации события.
// например: платежная система или регистратор
$goto = "http://www.softkey.ru/catalog/basket.php?prodid=902&"
        "quantity=1&referer1=ritlabs_site&referer2=#EVENT_GID#";

// фиксируем событие
$goto = eregi_replace("#EVENT_GID#",
                      urlencode(CStatEvent::GetGID()),
                      $goto);
CStatEvent::AddCurrent("softkey", "out", "", "", "", $goto);

// перенаправляем посетителя
LocalRedirect($goto);
?>


GetHandlerList

Веб-аналитика>Классы>CStatEvent>GetHandlerList

CStatEvent::GetHandlerList

Описание и параметры

array
CStatEvent::GetHandlerList(
 array &handlers
)

Возвращает список обработчиков CSV файлов для вывода его в выпадающем списке с помощью функции SelectBoxFromArray, либо в списке множественного выбора с помощью функции SelectBoxMFromArray.

Обработчики CSV файлов могут быть как пользовательские (путь к ним указывается в параметре "Путь к дополнительным обработчикам при ручной загрузке событий" в настройках модуля "Статистика"), так и стандартные - входящие в дистрибутив модуля (хранятся в каталоге /bitrix/modules/statistic/loading/).

Параметры метода

Параметр Описание
handlers Данная переменная после отработки метода будет содержать в себе массив путей относительно корня к пользовательским обработчикам. Пример данного массива:
Array
(
    [0] => /bitrix/php_interface/include/statistic/regnow_alawar.php
    [1] => /bitrix/php_interface/include/statistic/regnow_editable.php
    [2] => /bitrix/php_interface/include/statistic/regsoft_editable.php
    [3] => /bitrix/php_interface/include/statistic/shareit_editable.php
    [4] => /bitrix/php_interface/include/statistic/softkey_editable.php
)

Смотрите также

  • CStatEvent::Add
  • CStatEvent::AddByEvents
  • Загрузка событий
  • Термин "Событие"

Возвращаемое значение

Пример массива, возвращаемого методом:

Array
(
    [reference] => Array
        (
            [0] => regnow.php
            [1] => regsoft.php
            [2] => shareit_eur.php
            [3] => shareit_usd.php
            [4] => softkey.php
            [5] => [1] regnow_alawar.php
            [6] => [2] regnow_editable.php
            [7] => [3] regsoft_editable.php
            [8] => [4] shareit_editable.php
            [9] => [5] softkey_editable.php
        )

    [reference_id] => Array
        (
            [0] => /bitrix/modules/statistic/loading/regnow.php
            [1] => /bitrix/modules/statistic/loading/regsoft.php
            [2] => /bitrix/modules/statistic/loading/shareit_eur.php
            [3] => /bitrix/modules/statistic/loading/shareit_usd.php
            [4] => /bitrix/modules/statistic/loading/softkey.php
            [5] => /bitrix/php_interface/include/statistic/regnow_alawar.php
            [6] => /bitrix/php_interface/include/statistic/regnow_editable.php
            [7] => /bitrix/php_interface/include/statistic/regsoft_editable.php
            [8] => /bitrix/php_interface/include/statistic/shareit_editable.php
            [9] => /bitrix/php_interface/include/statistic/softkey_editable.php
        )

)

Примеры использования

<?
// получим список доступных обработчиков
$arrHandlers = CStatEvent::GetHandlerList($arUSER_HANDLERS);

// выведем этот список в виде выпадающего списка
echo SelectBoxFromArray("handler", $arrHandlers, $handler, " ");
?>


GetList

Веб-аналитика>Классы>CStatEvent>GetList

CStatEvent::GetList

Описание и параметры

CDBResult
CStatEvent::GetList(
 string &by = "s_id",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список событий. Максимальное количество выдаваемых строк ограничено настройкой модуля [image] statistic Максимальное кол-во показываемых записей в таблицах (RECORDS_LIMIT), по умолчанию 500.

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_id - ID события;
  • s_site_id - ID сайта;
  • s_type_id - ID типа события;
  • s_event3 - дополнительный параметр event3 события;
  • s_date_enter - время создания события;
  • s_adv_id - ID рекламной кампании;
  • s_adv_back - флаг возврата либо прямого захода по рекламной кампании;
  • s_session_id - ID сессии;
  • s_guest_id - ID посетителя;
  • s_hit_id - ID хита;
  • s_url - страница где зафиксированно событие;
  • s_referer_url - ссылающаяся страница;
  • s_redirect_url - страница куда был перенаправлен посетитель после фиксации события;
  • s_country_id - ID страны посетителя;
  • s_money - денежная сумма.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID* - ID события;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • EVENT_ID* - ID типа события;
  • EVENT_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по EVENT_ID будет искаться вхождение;
  • EVENT_NAME* - название типа события;
  • EVENT_NAME_EXACT_MATCH - если значение равно "Y", то при фильтрации по EVENT_NAME будет искаться точное совпадение;
  • EVENT1* - идентификатор event1 типа события;
  • EVENT1_EXACT_MATCH - если значение равно "Y", то при фильтрации по EVENT1 будет искаться точное совпадение;
  • EVENT2* - идентификатор event2 типа события;
  • EVENT2_EXACT_MATCH - если значение равно "Y", то при фильтрации по EVENT2 будет искаться точное совпадение;
  • EVENT3* - дополнительный параметр event3 события;
  • EVENT3_EXACT_MATCH - если значение равно "Y", то при фильтрации по EVENT3 будет искаться точное совпадение;
  • DATE - время события (точное совпадение);
  • DATE1 - начальное значение интервала для поля "дата события";
  • DATE2 - начальное значение интервала для поля "дата события";
  • MONEY - денежная сумма события (точное совпадение);
  • MONEY1 - начальное значение интервала для поля "денежная сумма";
  • MONEY2 - конечное значение интервала для поля "денежная сумма";
  • CURRENCY - трехсимвольный идентификатор валюты для денежной суммы;
  • SESSION_ID* - ID сессии;
  • SESSION_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по SESSION_ID будет искаться вхождение;
  • GUEST_ID* - ID посетителя;
  • GUEST_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по GUEST_ID будет искаться вхождение;
  • ADV_ID* - ID рекламной кампании;
  • ADV_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ADV_ID будет искаться вхождение;
  • ADV_BACK - флаг "возврат по рекламной кампании", возможные значения:
    • Y - был возврат;
    • N - был прямой заход.
  • HIT_ID* - ID хита;
  • HIT_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по HIT_ID будет искаться вхождение;
  • COUNTRY_ID* - ID страны посетителя сгенерировавшего событие;
  • COUNTRY_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по COUNTRY_ID будет искаться вхождение;
  • COUNTRY* - название страны посетителя сгенерировавшего событие;
  • COUNTRY_EXACT_MATCH - если значение равно "Y", то при фильтрации по COUNTRY будет искаться точное совпадение;
  • REFERER_URL* - ссылающаяся страница;
  • REFERER_URL_EXACT_MATCH - если значение равно "Y", то при фильтрации по REFERER_URL будет искаться точное совпадение;
  • REFERER_SITE_ID - ID сайта для ссылающейся страницы;
  • URL* - страница на которой было зафиксировано событие;
  • URL_EXACT_MATCH - если значение равно "Y", то при фильтрации по URL будет искаться точное совпадение;
  • SITE_ID - ID сайта для страницы на которой было зафиксировано событие;
  • REDIRECT_URL* - страница куда был перенаправлен посетитель после фиксации события;
  • REDIRECT_URL_EXACT_MATCH - если значение равно "Y", то при фильтрации по REDIRECT_URL будет искаться точное совпадение.
* - допускается сложная логика
is_filtered | Флаг отфильтрованности результирующего списка. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • CStatEvent::GetListByGuest
  • Термин "Событие"

Структура возвращаемой записи

Array
(
    [ID] => ID события
    [EVENT3] => дополнительный параметр event3 события
    [TYPE_ID] => ID типа события
    [DATE_ENTER] => время создания события
    [EVENT1] => идентификатор event1 типа события
    [EVENT2] => идентификатор event2 типа события
    [NAME] => название типа события
    [EVENT] => event1 / event2, либо название типа события
               (если оно задано)
    [DESCRIPTION] => описание типа события

    [ADV_ID] => ID рекламной кампании
    [ADV_BACK] => флаг прямого захода (N) или возврата (Y)
                  по рекламной кампании
    [COUNTRY_ID] => ID страны посетителя
    [COUNTRY_NAME] => название страны посетителя
    [SESSION_ID] => ID сессии
    [GUEST_ID] => ID посетителя
    [HIT_ID] => ID хита

    [REFERER_URL] => ссылающаяся страница
    [REFERER_SITE_ID] => ID сайта для ссылающейся страницы
    [URL] => страница на которой было зафиксировано событие
    [SITE_ID] => ID сайта для страницы, на которой было
                 зафиксировано событие
    [REDIRECT_URL] => страница, на которую был перенаправлен
                      посетитель после фиксации события

    [MONEY] => денежная сумма
    [CHARGEBACK] => Y - отрицательная денежная сумма;
                    N - положительная денежная сумма
    [CURRENCY] => трехсимвольный идентификатор валюты для денежной суммы
)

Примеры использования

<?
// выберем все неудаленные события посетителя #1025
$arFilter = array(
    "GUEST_ID" => "1025"
    );

// получим список записей
$rs = CStatEvent::GetList(
    ($by = "s_id"),
    ($order = "desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetListByGuest

Веб-аналитика>Классы>CStatEvent>GetListByGuest

CStatEvent::GetListByGuest

Описание и параметры

CDBResult
CStatEvent::GetListByGuest(
 int guest_id,
 mixed type_id = false,
 mixed event3 = false,
 mixed time = false
)

Возвращает список идентификаторов событий по указанному ID посетителя сайта.

Параметры метода

Параметр | Описание
guest_id | ID посетителя.
type_id | ID типа события. Если значение равно "false", то фильтрации по типу события не будет.
event3 | Дополнительный параметр event3 события. Если значение равно "false", то фильтрации по event3 не будет.
time | Количество секунд, прошедших с текущего момента. Если значение равно "false", то фильтрации по времени не будет.

Смотрите также

  • CStatEvent::GetList
  • Термин "Событие"
  • Термин "Дополнительный параметр события (event3)"

Структура возвращаемой записи

Array
(
    [ID] => ID события
)

Примеры использования

<?
// зафиксируем событие типа
// "Скачивание файла manual.chm" (download/manual)
// если такого типа не существует, он будет автоматически создан
// событие будет фиксироваться по параметрам
// текущего посетителя сайта

// сначала проверим - не скачивал ли уже текущий посетитель
// этот файл в течение последнего часа

// получим ID типа события
$rs = CStatEventType::GetByEvents($event1, $event2);
if ($ar = $rs->Fetch())
{
    // теперь получим все события данного типа
    // для текущего посетителя сайта,
    // произошедшие за последний час (3600 секунд)
    $rs = CStatEvent::GetListByGuest($_SESSION["SESS_GUEST_ID"],
                                     $ar["TYPE_ID"], "", 3600);

    // если таких событий не было...
    if (!($ar=$rs->Fetch()))
    {
        // ...добавляем данное событие
        CStatEvent::AddCurrent("download", "manual");
    }
}
?>


Класс CStatEventType

CStatEventType - класс для работы с типами событий.

Методы класса

Метод | Описание | С версии
ConditionSet | Находит тип события по указанным идентификаторам, либо создает новый тип события если такого ещё не существует. |
Delete | Удаляет указанный тип события. |
GetByEvents | Возвращает тип события по указанным идентификаторам. |
GetByID | Возвращает данные по указанному типу события. |
GetDropdownList | Возвращает список типов событий для вывода его в выпадающем списке с помощью функции SelectBox, либо в списке множественного выбора с помощью функции SelectBoxM. |
GetDynamicList | Возвращает количество событий указанного типа в разрезе по дням. |
GetList | Возвращает список типов событий. |
GetSimpleList | Возвращает список типов событий в упрощённом виде. |

Смотрите также

  • Пользовательская документация, отчет "Типы событий"


ConditionSet

Веб-аналитика>Классы>CStatEventType>ConditionSet

CStatEventType::ConditionSet

Описание и параметры

int
CStatEventType::ConditionSet(
 string event1,
 string event2,
 array &type
)

Находит тип события по указанным идентификаторам, либо создает новый тип события если такого ещё не существует.

Параметры метода

Параметр | Описание
event1 | Идентификатор event1 типа события.
event2 | Идентификатор event2 типа события.
type Ссылка на массив описывающий найденный, либо созданный тип события. Структура данного массива:
Array
(
    [TYPE_ID] => ID типа события
    [DYNAMIC_KEEP_DAYS] => количество дней, отведенное для
                           хранения статистики по данному
                           типу события в разрезе по дням
    [KEEP_DAYS] => количество дней, отведенное для хранения
                   событий данного типа
    [DATE_ENTER_STR] => дата создания события
)

Возвращаемое значение

Метод возвращает ID найденного типа события, либо вновь созданного.

Смотрите также

  • CStatEventType::GetByEvents
  • CStatEventType::GetByID
  • Термин "Тип события"

Примеры использования

<?
// получим ID типа события "softkey/order"
// либо создадим новый тип события
$TYPE_ID = CStatEventType::ConditionSet("softkey", "order", $arEventType);
?>


Delete

Веб-аналитика>Классы>CStatEventType>Delete

CStatEventType::Delete

Описание и параметры

bool
CStatEventType::Delete(
 int type_id
)

Удаляет указанный тип события, вместе со всеми событиями данного типа.

Параметры метода

Параметр | Описание
type_id | ID типа события.

Возвращаемое значение

Метод возвращает "true" в случае успешного удаления типа события, либо "false" в противном случае.

Смотрите также

  • Термин "Тип события"

Примеры использования

<?
$type_id = 1;
if (CStatEventType::Delete($type_id))
    echo "Тип события #".$type_id." успешно удалено.";
?>


GetByEvents

Веб-аналитика>Классы>CStatEventType>GetByEvents

CStatEventType::GetByEvents

Описание и параметры

CDBResult
CStatEventType::GetByEvents(
 string event1,
 string event2
)

Возвращает тип события по указанным идентификаторам.

Параметры метода

Параметр | Описание
event1 | Идентификатор event1 типа события.
event2 | Идентификатор event2 типа события.

Смотрите также

  • CStatEventType::ConditionSet
  • Термин "Тип события"

Структура возвращаемой записи

Array
(
    [TYPE_ID] => ID типа события
    [DYNAMIC_KEEP_DAYS] => количество дней, отведенное для
                           хранения статистики по данному типу
                           события в разрезе по дням
    [KEEP_DAYS] => количество дней, отведенное для хранения
                   событий данного типа
    [DATE_ENTER_STR] => дата создания события
)

Примеры использования

<?
// зафиксируем событие типа "Скачивание файла manual.chm" (download/manual)
// если такого типа не существует, он будет автоматически создан
// событие будет фиксироваться по параметрам текущего посетителя сайта

// сначала проверим не скачивал ли уже текущий посетитель этот файл
// в течение последнего часа

// получим ID типа события
$rs = CStatEventType::GetByEvents($event1, $event2);
if ($ar = $rs->Fetch())
{
    // теперь получим все события данного типа для текущего посетителя сайта
    // произошедшие за последний час (3600 секунд)
    $rs = CStatEvent::GetListByGuest($_SESSION["SESS_GUEST_ID"],
                                     $ar["TYPE_ID"], "", 3600);

    // если таких событий не было...
    if (!($ar = $rs->Fetch()))
    {
        // ...добавляем данное событие
        CStatEvent::AddCurrent("download", "manual");
    }
}
?>


GetByID

Веб-аналитика>Классы>CStatEventType>GetByID

CStatEventType::GetByID

Описание и параметры

CDBResult
CStatEventType::GetByID(
 int type_id
)

Возвращает данные по указанному типу события.

Параметры метода

Параметр | Описание
type_id | ID типа события.

Смотрите также

  • CStatEventType::GetByEvents
  • CStatEventType::ConditionSet
  • Термин "Тип события"

Структура возвращаемой записи

Array
(
    [ID] => ID типа события
    [EVENT1] => идентификатор event1 типа события
    [EVENT2] => идентификатор event2 типа события
    [NAME] => название типа события
    [EVENT] => event1 / event2, либо название типа события если оно указано
    [DESCRIPTION] => описание типа события
    [MONEY] => суммарная денежная сумма по данному типу события
    [DATE_ENTER] => дата создания типа события
    [DATE_CLEANUP] => дата очистки статистики по
                      данному типу события в разрезе по дням
    [C_SORT] => порядок сортировки
    [COUNTER] => счетчик хранящий часть суммарного количества
                 событий данного типа
    [ADV_VISIBLE] => [Y|N] флаг: включать ли статистику по
                     данному типу события в отчет по рекламным кампаниям
    [KEEP_DAYS] => количество дней отведенное для
                   хранения событий данного типа
    [DYNAMIC_KEEP_DAYS] => количество дней, отведенное для хранения
                           статистики по данному типу события
                           в разрезе по дням
    [DIAGRAM_DEFAULT] => [Y|N] флаг: включать ли данный тип события
                         в круговую диаграмму и график по умолчанию
)

Примеры использования

<?
$type_id = 1;
if ($rs = CStatEventType::GetByID($type_id))
{
    $ar = $rs->Fetch();
    // выведем параметры типа события
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetDropdownList

Веб-аналитика>Классы>CStatEventType>GetDropdownList

CStatEventType::GetDropdownList

Описание и параметры

CDBResult
CStatEventType::GetDropdownList(
 string order = "ORDER BY EVENT1, EVENT2"
)

Возвращает список типов событий для вывода его в выпадающем списке с помощью функции SelectBox, либо в списке множественного выбора с помощью функции SelectBoxM.

Параметры метода

Параметр | Описание
order | SQL код, позволяющий задать произвольную сортировку списка типов событий.

Смотрите также

  • CStatEventType::GetList
  • CStatEventType::GetSimpleList
  • Термин "Тип события"

Структура возвращаемой записи

Array
(
    [REFERENCE_ID] => ID типа событий
    [REFERENCE] => "[ID] (event1 / event2) название типа события"
)

Примеры использования

<?
// выпадающий список с одиночным выбором
echo SelectBox(
    "SEARCHER_ID",
    CStatEventType::GetDropdownList(),
    "",
    intval($SEARCHER_ID)
    );

// список из 20 видимых элементов с возможностью множественного выбора
echo SelectBoxM(
    "arSEARCHER_ID[]",
    CStatEventType::GetDropdownList(),
    $arSEARCHER_ID,
    "",
    false,
    20
    );
?>


GetDynamicList

Веб-аналитика>Классы>CStatEventType>GetDynamicList

CStatEventType::GetDynamicList

Описание и параметры

CDBResult
CStatEventType::GetDynamicList(
 int type_id,
 string &by = "s_date",
 string &order = "desc",
 array max_min,
 array filter
)

Возвращает количество событий указанного типа в разрезе по дням.

Параметры метода

Параметр | Описание
type_id | ID типа события.
by Поле для сортировки. Возможные значения:
  • s_date - дата.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
max_min Ссылка на массив содержащий максимальную и минимальную даты результирующего списка. Структура данного массива:
Array
(
    [DATE_FIRST] => минимальная дата
    [MIN_DAY] => день минимальной даты (1-31)
    [MIN_MONTH] => месяц минимальной даты (1-12)
    [MIN_YEAR] => год минимальной даты

    [DATE_LAST] => максимальная дата
    [MAX_DAY] => день максимальной даты (1-31)
    [MAX_MONTH] => месяц максимальной даты (1-12)
    [MAX_YEAR] => год максимальной даты
)
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • DATE1 - начальное значение интервала для поля "дата";
  • DATE2 - конечное значение интервала для поля "дата".

Смотрите также

  • CStatEventType::GetList
  • CStatEventType::GetSimpleList

Структура возвращаемой записи

Array
(
    [DATE_STAT] => дата
    [DAY] => день (1-31)
    [MONTH] => месяц (1-12)
    [YEAR] => год
    [COUNTER] => количество событий указанного типа для данной даты
)

Примеры использования

<?
$type_id = 1;

// установим фильтр на декабрь 2007 года
$arFilter = array(
    "DATE1" => "01.12.2007",
    "DATE2" => "31.12.2007"
    );

// получим набор записей
$rs = CStatEventType::GetDynamicList(
    $type_id,
    ($by="s_date"),
    ($order="desc"),
    $arMaxMin,
    $arFilter
    );

// выведем массив с максимальной и минимальной датами
echo "<pre>"; print_r($arMaxMin); echo "</pre>";

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetList

Веб-аналитика>Классы>CStatEventType>GetList

CStatEventType::GetList

Описание и параметры

CDBResult
CStatEventType::GetList(
 string &by = "s_today_counter",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered,
 mixed limit = false
)

Возвращает список типов событий.

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_id - ID типа события;
  • s_date_last - дата последнего события данного типа;
  • s_date_enter - дата первого события данного типа;
  • s_today_counter - количество событий данного типа за сегодня;
  • s_yesterday_counter - количество событий данного типа за вчера;
  • s_b_yesterday_counter - количество событий данного типа за позавчера;
  • s_total_counter - суммарное количество событий данного типа;
  • s_period_counter - количество событий данного типа за указанный период (filter[DATE1_PERIOD], filter[DATE2_PERIOD]);
  • s_name - название типа события;
  • s_event1 - идентификатор event1 типа события;
  • s_event2 - идентификатор event2 типа события;
  • s_event12 - сортировка по "EVENT1, EVENT2";
  • s_chart - сортировка по "DIAGRAM_DEFAULT desc, TOTAL_COUNTER";
  • s_stat - сортировка по "TODAY_COUNTER desc, YESTERDAY_COUNTER desc, B_YESTERDAY_COUNTER desc, TOTAL_COUNTER desc, PERIOD_COUNTER".
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID* - ID типа события;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • EVENT1* - идентификатор event1 типа события;
  • EVENT1_EXACT_MATCH - если значение равно "Y", то при фильтрации по EVENT1 будет искаться точное совпадение;
  • EVENT2* - идентификатор event2 типа события;
  • EVENT2_EXACT_MATCH - если значение равно "Y", то при фильтрации по EVENT2 будет искаться точное совпадение;
  • NAME* - название типа события;
  • NAME_EXACT_MATCH - если значение равно "Y", то при фильтрации по NAME будет искаться точное совпадение;
  • DESCRIPTION* - описание типа события;
  • DESCRIPTION_EXACT_MATCH - если значение равно "Y", то при фильтрации по DESCRIPTION будет искаться точное совпадение;
  • DATE_ENTER_1 - начальное значение интервала для поля "дата первого события данного типа";
  • DATE_ENTER_2 - конечное значение интервала для поля "дата первого события данного типа";
  • DATE_LAST_1 - начальное значение интервала для поля "дата последнего события данного типа";
  • DATE_LAST_2 - конечное значение интервала для поля "дата последнего события данного типа";
  • DATE1_PERIOD - начальное значение значение для произвольного периода;
  • DATE2_PERIOD - конечное значение значение для произвольного периода;
  • COUNTER1 - начальное значение интервала для поля "суммарное количество событий данного типа";
  • COUNTER2 - конечное значение интервала для поля "суммарное количество событий данного типа";
  • ADV_VISIBLE - флаг включать ли статистику по данному типу события в отчет по рекламным кампаниям, возможные значения:
    • Y - включать;
    • N - не включать.
  • DIAGRAM_DEFAULT - флаг включать ли данный тип события в круговую диаграмму и график по умолчанию, возможные значения:
    • Y - включать;
    • N - не включать.
  • KEEP_DAYS1 - начальное значение интервала для поля "количество дней отведенное для хранения событий данного типа";
  • KEEP_DAYS2 - конечное значение интервала для поля "количество дней отведенное для хранения событий данного типа";
  • DYNAMIC_KEEP_DAYS1 - начальное значение интервала для поля "количество дней отведенное для хранения статистики по данному типу события в разрезе по дням";
  • DYNAMIC_KEEP_DAYS2 - конечное значение интервала для поля "количество дней отведенное для хранения статистики по данному типу события в разрезе по дням";
  • MONEY1 - начальное значение интервала для поля "суммарная денежная сумма для данного типа событий";
  • MONEY2 - конечное значение интервала для поля "суммарная денежная сумма для данного типа событий";
  • CURRENCY - трехсимвольный идентификатор валюты для денежной суммы;
  • GROUP - группировка результирующего списка, возможные значения:
    • event1 - группировка по event1;
    • event2 - группировка по event2.
* - допускается сложная логика
is_filtered | Флаг отфильтрованности результирующего списка. Если значение равно "true", то список был отфильтрован.
limit | Максимальное число типов событий которые будут выбраны в списке. Если значение равно "false", то кол-во РК будет ограничено в соответствии со значением параметра Максимальное кол-во показываемых записей в таблицах из настроек модуля "Статистика".

Смотрите также

  • CStatEventType::GetDynamicList
  • CStatEventType::GetSimpleList
  • Термин "Тип события"

Структура возвращаемой записи

В зависимости от установленной группировки, структура возвращаемой записи различная.

  • при группировке по event1 (filter["GROUP"]="event1"):
    Array
(
    [EVENT1] => идентификатор event1 типа события
    [DATE_ENTER] => дата первого события, тип которого
                    имеет данный идентификатор event1
    [DATE_LAST] => дата последнего события, тип которого
                   имеет данный идентификатор event1
    [TOTAL_COUNTER] => суммарное количество событий
    [TODAY_COUNTER] => количество событий за сегодня
    [YESTERDAY_COUNTER] => количество событий за вчера
    [B_YESTERDAY_COUNTER] => количество событий за позавчера
    [PERIOD_COUNTER] => количество событий за период времени,
                        указанный в фильтре
                        (filter[DATE1_PERIOD], filter[DATE2_PERIOD])
    [TOTAL_MONEY] => суммарная денежная сумма
    [TODAY_MONEY] => денежная сумма за сегодня
    [YESTERDAY_MONEY] => денежная сумма за вчера
    [B_YESTERDAY_MONEY] => денежная сумма за позавчера
    [PERIOD_MONEY] => денежная сумма за период времени,
                      указанный в фильтре
                      (filter[DATE1_PERIOD], filter[DATE2_PERIOD])
    [CURRENCY] => трехсимвольный идентификатор валюты
)
  • при группировке по event2 (filter["GROUP"]="event2"):
    Array
(
    [EVENT2] => идентификатор event2 типа события
    [DATE_ENTER] => дата первого события, тип которого имеет
                    данный идентификатор event2
    [DATE_LAST] => дата последнего события, тип которого имеет
                   данный идентификатор event2
    [TOTAL_COUNTER] => суммарное количество событий
    [TODAY_COUNTER] => количество событий за сегодня
    [YESTERDAY_COUNTER] => количество событий за вчера
    [B_YESTERDAY_COUNTER] => количество событий за позавчера
    [PERIOD_COUNTER] => количество событий за период времени,
                        указанный в фильтре
                        (filter[DATE1_PERIOD], filter[DATE2_PERIOD])
    [TOTAL_MONEY] => суммарная денежная сумма
    [TODAY_MONEY] => денежная сумма за сегодня
    [YESTERDAY_MONEY] => денежная сумма за вчера
    [B_YESTERDAY_MONEY] => денежная сумма за позавчера
    [PERIOD_MONEY] => денежная сумма за период времени,
                      указанный в фильтре
                      (filter[DATE1_PERIOD], filter[DATE2_PERIOD])
    [CURRENCY] => трехсимвольный идентификатор валюты
)
  • когда группировка не установлена:
    Array
(
    [ID] => ID типа события
    [EVENT1] => идентификатор event1 типа события
    [EVENT2] => идентификатор event2 типа события
    [DIAGRAM_DEFAULT] => [Y|N] флаг: включать ли данный тип события
                         в круговую диаграмму и график по умолчанию
    [NAME] => название типа события
    [EVENT] => event1 / event2, либо название типа события
               (если оно указано)
    [DESCRIPTION] => описание типа события
    [TOTAL_COUNTER] => суммарное количество событий данного типа
    [TODAY_COUNTER] => количество событий данного типа за сегодня
    [YESTERDAY_COUNTER] => количество событий данного типа за вчера
    [B_YESTERDAY_COUNTER] => количество событий данного типа
                             за позавчера
    [PERIOD_COUNTER] => количество событий данного типа за период времени,
                        указанный в фильтре
                        (filter[DATE1_PERIOD], filter[DATE2_PERIOD])
    [TOTAL_MONEY] => суммарная денежная сумма по данному типу события
    [TODAY_MONEY] => денежная сумма по данному типу события за сегодня
    [YESTERDAY_MONEY] => денежная сумма по данному типу события за вчера
    [B_YESTERDAY_MONEY] => денежная сумма по данному типу события за позавчера
    [PERIOD_MONEY] => денежная сумма по данному типу события за период времени,
                      указанный в фильтре
                      (filter[DATE1_PERIOD], filter[DATE2_PERIOD])
    [CURRENCY] => трехсимвольный идентификатор валюты
)

Примеры использования

<?
// получим данные только по тем типам событий
// у которых event1 = "download"
// а также получим дополнительные данные на декабрь 2007 года
$arFilter = array(
    "DATE1_PERIOD" => "01.12.2007",
    "DATE2_PERIOD" => "31.12.2007",
    "EVENT1"       => "download"
    );

// получим список записей
$rs = CStatEventType::GetList(
    ($by = "s_today_counter"),
    ($order = "desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetSimpleList

Веб-аналитика>Классы>CStatEventType>GetSimpleList

CStatEventType::GetSimpleList

Описание и параметры

CDBResult
CStatEventType::GetSimpleList(
 string &by = "s_event1",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список типов событий в упрощённом виде.

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_id - ID типа события;
  • s_event1 - идентификатор event1 типа события;
  • s_event2 - идентификатор event2 типа события;
  • s_name - название типа события;
  • s_description - описание типа события.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID* - ID типа события;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • EVENT1* - идентификатор event1 типа события;
  • EVENT1_EXACT_MATCH - если значение равно "Y", то при фильтрации по EVENT1 будет искаться точное совпадение;
  • EVENT2* - идентификатор event2 типа события;
  • EVENT2_EXACT_MATCH - если значение равно "Y", то при фильтрации по EVENT2 будет искаться точное совпадение;
  • NAME* - название типа события;
  • NAME_EXACT_MATCH - если значение равно "Y", то при фильтрации по NAME будет искаться точное совпадение;
  • DESCRIPTION* - описание типа события;
  • DESCRIPTION_EXACT_MATCH - если значение равно "Y", то при фильтрации по DESCRIPTION будет искаться точное совпадение;
  • KEYWORDS - event1, event2, название и описание типа события;
  • KEYWORDS_EXACT_MATCH - если значение равно "Y", то при фильтрации по KEYWORDS будет искаться точное совпадение.
* - допускается сложная логика
is_filtered | Флаг отфильтрованности результирующего списка. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • CStatEventType::GetDynamicList
  • CStatEventType::GetList
  • Термин "Тип события"

Структура возвращаемой записи

Array
(
    [ID] => ID типа события
    [EVENT1] => идентификатор event1 типа события
    [EVENT2] => идентификатор event2 типа события
    [NAME] => название типа события
    [EVENT] => event1 / event2, либо название типа события если оно указано
    [DESCRIPTION] => описание типа события
)

Примеры использования

<?
// выберем только те типы событий у которых в event1 входит "download"
$arFilter = array(
    "EVENT1" => "download"
    );

// получим список записей
$rs = CStatEventType::GetSimpleList(
    ($by="s_event2"),
    ($order="desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


Класс CStatistics

CStatistics - класс содержащий общие методы работы с модулем "Статистика".

Методы класса

Метод | Описание | С версии
CleanUp | Очищает собранные статистические данные. |
Keep | Собирает статистические данные. |

Смотрите также

  • Введение в модуль "Статистика"


CleanUp

Веб-аналитика>Классы>CStatistics>CleanUp

CStatistics::CleanUp

Описание и параметры

bool
CStatistics::CleanUp(
 string date = "",
 array &errors
)

Очищает собранные статистические данные.

Параметры метода

Параметр | Описание
date | Дата в формате текущего сайта (или языка) до которой (включительно) необходимо очистить статистику. Если в данном параметре не указать дату, то будут очищены все накопленные данные статистики.
errors | Если параметр date не содержит даты, то в данном параметре будут возвращены возможные ошибки которые могут возникнуть в процессе полной очистки данных статистики.

Возвращаемое значение

Метод возвращает "true", в случае успешного выполнения и "false" - в противном случае.

Смотрите также

  • Настройки модуля "Статистика"

Примеры использования

<?
// дата в формате текущего сайта или языка
// до которой включительно будет очищена вся собранная статистика
$date = "31.12.2007";

// очищаем
CStatistics::CleanUp($date);
?>


Keep

Веб-аналитика>Классы>CStatistics>Keep

CStatistics::Keep

Описание и параметры

CStatistics::Keep(
 bool handle_call = false
)

Вызов данного метода обеспечивает сбор всех статистических данных.

При инсталлированном модуле статистики данный метод автоматически вызывается в прологе. Но есть возможность отключить автоматический вызов этого метода в прологе, инициализировав константу STOP_STATISTICS перед подключением пролога. После этого данный метод можно вызвать, указав в параметрах handle_call=true.

Параметры метода

Параметр | Описание
handle_call | Если значение данного параметра равно "true", то метод проигнорирует константу STOP_STATISTICS и продолжит свою работу.

Смотрите также

  • Константа "STOP_STATISTICS"
  • Константа "NO_KEEP_STATISTIC"

Примеры использования

<?
// отключим автоматический сбор статистики в прологе
define("STOP_STATISTICS", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

// вручную запустим сбор статистики
CStatistics::Keep(true);

...

?>


Класс CStopList

CStopList - класс для работы со стоп-листом.

Методы класса

Метод | Описание | С версии
Check | Выполняет проверку на попадание текущего посетителя в стоп-лист. |
GetByID | Возвращает данные по записи стоп-листа. |
GetList | Возвращает список записей стоп-листа. |

Смотрите также

  • Работа со стоп-листом


Check

Веб-аналитика>Классы>CStopList>Check

CStopList::Check

Описание и параметры

mixed
CStopList::Check(
 string test = "N",
 mixed params = false
)

Выполняет проверку на попадание текущего посетителя под условия записей стоп-листа. Данный метод автоматически вызывается в прологе на каждом хите.

Параметры метода

Параметр Описание
test При управлении стоп-листом существует вероятность занести самого себя в стоп-лист. Для исключения подобных ситуаций, система сначала добавляет в стоп-лист тестовую запись, проверяет текущего посетителя на попадание в стоп-лист по этой тестовой записи и если посетитель не пападает под нее, то она удаляется.

Если вызвать данный метод с параметром test="Y", она проверит попадание текущего посетителя только под тестовые записи стоп-листа. Если же метод вызывается с параметром test="N" (значение по умолчанию), то он будет проверять попадание посетителя уже под все записи стоп-листа, за исключением тестовых.
params Здесь можно задать массив параметров для которых будет произведена проверка на попадание в стоп-лист. Ключами данного массива могут быть:
  • IP - IP адрес в формате XXX.XXX.XXX.XXX;
  • USER_AGENT - UserAgent (полный, либо его часть);
  • URL_FROM - ссылающаяся страница;
  • URL_TO - страница на которую приходит посетитель;
  • SITE_ID - ID сайта.

Возвращаемое значение

Метод возвращает ID записи стоп-листа под которую попал посетитель, либо "false" в противном случае.

Смотрите также

  • Термин "Стоп-лист"
  • Термин "Маска подсети для стоп-листа"

Примеры использования

<?
// зададим параметры посетителя для которых мы хотим проверить попадание в стоп-лист
$arParams = array(
    "IP" => "192.168.0.1",
    "USER_AGENT" => "Firefox"
    );

$record_id = CStopList::Check("N", $arParams);
if (intval($record_id)>0)
    echo "Попадание в стоп-лист под параметры записи #".intval($record_id);
?>


GetByID

Веб-аналитика>Классы>CStopList>GetByID

CStopList::GetByID

Описание и параметры

CDBResult
CStopList::GetByID(
 int record_id
)

Возвращает данные по записи стоп-листа.

Параметры метода

Параметр | Описание
record_id | ID записи сто-листа.

Смотрите также

  • Термин "Стоп-лист"

Структура возвращаемой записи

Array
(
    [ID] => ID записи
    [TIMESTAMP_X] => время изменения
    [DATE_START] => время с которого запись начинает действовать
    [DATE_END] => время после которого действие записи заканчивается
    [ACTIVE] => "Y" - запись активна; "N" - запись не активна
    [SAVE_STATISTIC] => "Y" - сохранять статистику по посетителю,
                        попавшему в стоп-лист;
                        "N" - не сохранять подобную статистику
    [IP_1] => октет 1 IP адреса
    [IP_2] => октет 2 IP адреса
    [IP_3] => октет 3 IP адреса
    [IP_4] => октет 4 IP адреса
    [MASK_1] => маска для октета 1 IP адреса
    [MASK_2] => маска для октета 2 IP адреса
    [MASK_3] => маска для октета 3 IP адреса
    [MASK_4] => маска для октета 4 IP адреса
    [USER_AGENT] => UserAgent посетителя
    [USER_AGENT_IS_NULL] => "Y" - UserAgent посетителя не задан (пустой);
                            "N" - UserAgent посетителя задан
                            (значение по умолчанию)
    [URL_TO] => страница (или ее часть),
                на которую приходит посетитель
    [URL_FROM] => ссылающаяся страница (или ее часть),
                  с которой приходит посетитель
    [MESSAGE] => текст сообщения, которое будет выдано посетителю сайта,
                 в случае его попадания под данную запись стоп-листа
    [MESSAGE_LID] => язык сообщения задаваемого в поле [MESSAGE]
    [URL_REDIRECT] => страница, на которую необходимо перенаправить
                      посетителя после его попадания
                      под данную запись стоп-листа
    [COMMENTS] => административный комментарий;
                  используется, как правило,
                  для указания причин создания данной записи
    [TEST] => "Y" - данная запись является тестовой;
              "N" - данная запись не тестовая
              (см. метод CStopList::Check)
    [SITE_ID] => ID сайта, для которого запись будет действительна;
                 если значение не задано, то это означает,
                 что запись действительная для всех сайтов
    [LAMP] => "green" - запись активна и работает;
              "red" - запись по каким либо причинам не активна
              (возможно истек срок действия, либо снят флаг активности)
)

Примеры использования

<?
$stop_id = 1;
if ($rs = CStopList::GetByID($stop_id))
{
    $ar = $rs->Fetch();
    // выведем параметры записи стоп-листа
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


GetList

Веб-аналитика>Классы>CStopList>GetList

CStopList::GetList

Описание и параметры

CDBResult
CStopList::GetList(
 string &by = "s_id",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список записей стоп-листа.

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_id - ID записи;
  • s_date_start - время начала активности записи;
  • s_date_end - время окончания активности записи ;
  • s_site_id - ID сайта для которого действительна записи;
  • s_active - флаг активности записи;
  • s_save_statistic - флаг необходимости сохранять статистику по посетителю попавшему в стоп-лист;
  • s_ip - IP адрес посетителя;
  • s_mask - маска IP адреса посетителя;
  • s_url_to - страница на которую приходит посетитель;
  • s_url_from - ссылающаяся страница, с которой приходит посетитель.
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID* - ID записи стоп-листа;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • DATE_START_1 - начальное значение интервала для поля "время начала активности записи";
  • DATE_START_2 - конечное значение интервала для поля "время начала активности записи";
  • DATE_END_1 - начальное значение интервала для поля "время окончания активности записи";
  • DATE_END_2 - конечное значение интервала для поля "время окончания активности записи";
  • ACTIVE - флаг активности записи, воможные значения:
    • Y - запись активна;
    • N - запись не активна.
  • SAVE_STATISTIC - флаг необходимости сохранения статистики по посетителю попавшему в стоп-лист, воможные значения:
    • Y - статистику сохранять;
    • N - статистику не сохранять.
  • IP_1* - октет 1 IP адреса;
  • IP_1_EXACT_MATCH - если значение равно "N", то при фильтрации по IP_1 будет искаться вхождение;
  • IP_2* - октет 2 IP адреса;
  • IP_2_EXACT_MATCH - если значение равно "N", то при фильтрации по IP_2 будет искаться вхождение;
  • IP_3* - октет 3 IP адреса;
  • IP_3_EXACT_MATCH - если значение равно "N", то при фильтрации по IP_3 будет искаться вхождение;
  • IP_4* - октет 4 IP адреса;
  • IP_4_EXACT_MATCH - если значение равно "N", то при фильтрации по IP_4 будет искаться вхождение;
  • URL_FROM* - ссылающаяся страница, с которой приходит посетитель;
  • URL_FROM_EXACT_MATCH - если значение равно "Y", то при фильтрации по URL_FROM будет искаться точное совпадение;
  • USER_AGENT* - UserAgent посетителя;
  • USER_AGENT_EXACT_MATCH - если значение равно "Y", то при фильтрации по USER_AGENT будет искаться точное совпадение;
  • MESSAGE* - текст сообщения которое будет выдано посетителю сайта, в случае его попадания под данную запись стоп-листа;
  • MESSAGE_EXACT_MATCH - если значение равно "Y", то при фильтрации по MESSAGE будет искаться точное совпадение;
  • COMMENTS* - административный комментарий, используется как правило для указания причин создания данной записи;
  • COMMENTS_EXACT_MATCH - если значение равно "Y", то при фильтрации по COMMENTS будет искаться точное совпадение;
  • URL_TO* - страница (или ее часть) на которую приходит посетитель;
  • URL_TO_EXACT_MATCH - если значение равно "Y", то при фильтрации по URL_TO будет искаться точное совпадение;
  • URL_REDIRECT* - страница на которую необходимо перенаправить посетителя после его попадания под данную запись стоп-листа;
  • URL_REDIRECT_EXACT_MATCH - если значение равно "Y", то при фильтрации по URL_REDIRECT будет искаться точное совпадение;
  • SITE_ID* - ID сайта для которого запись будет действительна; если значение не задано, то это означает что запись действительная для всех сайтов;
  • SITE_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по SITE_ID будет искаться вхождение.
* - допускается сложная логика
is_filtered | Флаг отфильтрованности результирующего списка. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • Термин "Стоп-лист"

Структура возвращаемой записи

Array
(
    [DATE_START] => время с которого запись начинает действовать
    [DATE_END] => время после которого действие записи заканчивается
    [ACTIVE] => "Y" - запись активна; "N" - запись не активна
    [SAVE_STATISTIC] => "Y" - сохранять статистику по посетителю,
                        попавшему в стоп-лист;
                        "N" - не сохранять подобную статистику
    [IP_1] => октет 1 IP адреса
    [IP_2] => октет 2 IP адреса
    [IP_3] => октет 3 IP адреса
    [IP_4] => октет 4 IP адреса
    [MASK_1] => маска для октета 1 IP адреса
    [MASK_2] => маска для октета 2 IP адреса
    [MASK_3] => маска для октета 3 IP адреса
    [MASK_4] => маска для октета 4 IP адреса
    [USER_AGENT] => UserAgent посетителя
    [USER_AGENT_IS_NULL] => "Y" - UserAgent посетителя не задан (пустой);
                            "N" - UserAgent посетителя задан
                            (значение по умолчанию)
    [URL_TO] => страница (или ее часть) на которую приходит посетитель
    [URL_FROM] => ссылающаяся страница (или ее часть),
                  с которой приходит посетитель
    [MESSAGE] => текст сообщения которое будет выдано посетителю сайта,
                 в случае его попадания под данную запись стоп-листа
    [MESSAGE_LID] => язык сообщения задаваемого в поле [MESSAGE]
    [URL_REDIRECT] => страница на которую необходимо перенаправить
                     посетителя после его попадания
                     под данную запись стоп-листа
    [COMMENTS] => административный комментарий; используется, как правило,
                  для указания причин создания данной записи
    [TEST] => "Y" - данная запись является тестовой;
              "N" - данная запись не тестовая
              (см. метод CStopList::Check)
    [SITE_ID] => ID сайта для которого запись будет действительна;
                 если значение не задано, то это означает что запись
                 действительная для всех сайтов
    [LAMP] => "green" - запись активна и работает;
              "red" - запись не активная по каким либо причинам
              (возможно истек срок действия, либо снят флаг активности)
)

Примеры использования

<?
// выберем записи стоп-листа с IP адресами 192.168.0.xxx
$arFilter = array(
    "IP_1" => 192,
    "IP_2" => 168,
    "IP_3" => 0
    );

// получим список записей
$rs = CStopList::GetList(
    ($by = "s_id"),
    ($order = "desc"),
    $arFilter,
    $is_filtered
    );

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


Класс CTraffic

CTraffic - класс для получения общих данных по посещаемости сайта.

Методы класса

Метод | Описание | С версии
GetCommonValues | Возвращает основные статистические данные (количество хитов, хостов, сессий, посетителей, событий) за весь период ведения статистики, за последние 3 дня, а также за произвольный указанный интервал времени. |
GetDailyList | Возвращает основные статистические данные, а также данные по внимательности посетителей в разрезе по дням. |
GetPhraseList | Возвращает количество поисковых фраз за весь период ведения статистики, за последние 3 дня, а также за произвольный указанный интервал времени. |
GetRefererList | Возвращает количество ссылающихся сайтов за весь период ведения статистики, за последние 3 дня, а также за произвольный указанный интервал времени. |
GetSumList | Возвращает основные статистические данные в разрезе по часам, дням недели и месяцам. |

Смотрите также

  • Отчет "Сводная статистика"
  • Отчет "Посещаемость"


GetCommonValues

Веб-аналитика>Классы>CTraffic>GetCommonValues

CTraffic::GetCommonValues

Описание и параметры

array
CTraffic::GetCommonValues(
 array filter = array()
)

Возвращает количество хитов, хостов, сессий, посетителей, событий за весь период ведения статистики, за последние 3 дня, а также за произвольный указанный интервал времени.

Примечание: при фильтрации по сайту (filter[SITE_ID]), будут доступны только данные по хитам, хостам, сессиям, событиям. Данные по посетителям будут отсутствовать, т.к. текущая версия модуля предполагает, что посетитель один на весь портал.

Параметры метода

Параметр Описание
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • SITE_ID - ID сайта для которого необходимо получить статистику;
  • DATE1 - начальная дата;
  • DATE2 - конечная дата.

Смотрите также

  • CUserOnline::GetGuestCount
  • Отчет "Сводная статистика"

Возвращаемое значение

В случае если не установлена фильтрация по сайту, то структура возвращаемого массива будет следующей:

Array
(
    [TOTAL_HITS] => суммарное количество хитов за все время ведения статистики
    [TOTAL_SESSIONS] => суммарное количество сессий за все время ведения статистики
    [TOTAL_EVENTS] => суммарное количество событий за все время ведения статистики
    [TOTAL_HOSTS] => суммарное количество хостов за все время ведения статистики
    [TOTAL_GUESTS] => суммарное количество посетителей за все время ведения статистики
    [TOTAL_FAVORITES] => суммарное количество посетителей, добавивших сайт в
                         "Избранное" за все время ведения статистики

    [TODAY_HITS] => количество хитов за сегодня
    [TODAY_SESSIONS] => количество сессий за сегодня
    [TODAY_EVENTS] => количество событий за сегодня
    [TODAY_HOSTS] => количество хостов за сегодня
    [TODAY_GUESTS] => суммарное количество посетителей за сегодня
    [TODAY_NEW_GUESTS] => количество новых посетителей  за сегодня
    [TODAY_FAVORITES] => количество посетителей, добавивших сайт в
                         "Избранное", за сегодня

    [YESTERDAY_HITS] => количество хитов за вчера
    [YESTERDAY_SESSIONS] => количество сессий за вчера
    [YESTERDAY_EVENTS] => количество событий за вчера
    [YESTERDAY_HOSTS] => количество хостов за вчера
    [YESTERDAY_GUESTS] => суммарное количество посетителей за вчера
    [YESTERDAY_NEW_GUESTS] => количество новых посетителей за вчера
    [YESTERDAY_FAVORITES] => количество посетителей, добавивших сайт в
                             "Избранное", за вчера

    [B_YESTERDAY_HITS] => количество хитов за позавчера
    [B_YESTERDAY_SESSIONS] => количество сессий за позавчера
    [B_YESTERDAY_EVENTS] => количество событий за позавчера
    [B_YESTERDAY_HOSTS] => количество хостов за позавчера
    [B_YESTERDAY_GUESTS] => суммарное количество посетителей за позавчера
    [B_YESTERDAY_NEW_GUESTS] => количество новых посетителей за позавчера
    [B_YESTERDAY_FAVORITES] => количество посетителей, добавивших сайт в
                               "Избранное", за позавчера

    [PERIOD_HITS] => количество хитов за установленный период времени
                     (filter[DATE1], filter[DATE2])
    [PERIOD_SESSIONS] => количество сессий за установленный период времени
    [PERIOD_EVENTS] => количество событий за установленный период времени
    [PERIOD_NEW_GUESTS] => количество новых посетителей за установленный
                           период времени
    [PERIOD_FAVORITES] => количество посетителей, добавивших сайт в
                          "Избранное", за установленный период времени

    [ONLINE_GUESTS] => количество посетителей в online
)

Примеры использования

<?
// получим данные по посещаемости сайта
$arr = CTraffic::GetCommonValues();

echo "Всего хитов: ".$arr["TOTAL_HITS"];
echo "Сегодня хитов: ".$arr["TODAY_HITS"];

echo "Всего хостов: ".$arr["TOTAL_HOSTS"];
echo "Сегодня хостов: ".$arr["TODAY_HOSTS"];

echo "Всего посетителей: ".$arr["TOTAL_GUESTS"];
echo "Сегодня посетителей: ".$arr["TODAY_GUESTS"];
echo "Посетителей в онлайн: ".$arr["ONLINE_GUESTS"];
?>


GetDailyList

Веб-аналитика>Классы>CTraffic>GetDailyList

CTraffic::GetDailyList

Описание и параметры

CDBResult
CTraffic::GetDailyList(
 string &by = "s_date",
 string &order = "desc",
 array &max_min,
 array filter = array(),
 bool &is_filtered,
 string get_maxmin = "Y"
)

Возвращает количество хитов, хостов, сессий, посетителей, событий, коэфициенты оценки внимательности посетителей в разрезе по дням.

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_id - ID записи;
  • s_date - дата;
  • s_hits - количество хитов;
  • s_hosts - количество хостов;
  • s_sessions - количество сессий;
  • s_events - количество событий;
  • s_guests - количество посетителей;
  • s_new_guests - количество новых посетителей;
  • s_favorites - количество посетителей, добавивших сайт в "Избранное".
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
max_min Ссылка на массив содержащий максимальную и минимальную даты из выбранного результирующего списка. Структура данного массива:
Array
(
    [DATE_FIRST] => минимальная дата
    [MIN_DAY] => день минимальной даты (1-31)
    [MIN_MONTH] => месяц минимальной даты (1-12)
    [MIN_YEAR] => год минимальной даты

    [DATE_LAST] => максимальная дата
    [MAX_DAY] => день максимальной даты (1-31)
    [MAX_MONTH] => месяц максимальной даты (1-12)
    [MAX_YEAR] => год максимальной даты
)
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • ID* - ID записи;
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • DATE1 - начальное значение интервала для поля "дата";
  • DATE2 - конечное значение интервала для поля "дата";
  • HITS_1 - начальное значение интервала для поля "количество хитов";
  • HITS_2 - конечное значение интервала для поля "количество хитов";
  • HOSTS_1 - начальное значение интервала для поля "количество хостов";
  • HOSTS_2 - начальное значение интервала для поля "количество хостов";
  • SESSIONS_1 - начальное значение интервала для поля "количество сессий";
  • SESSIONS_2 - конечное значение интервала для поля "количество сессий";
  • EVENTS_1 - начальное значение интервала для поля "количество событий";
  • EVENTS_2 - конечное значение интервала для поля "количество событий";
  • GUESTS_1 - начальное значение интервала для поля "количество посетителей";
  • GUESTS_2 - конечное значение интервала для поля "количество посетителей";
  • NEW_GUESTS_1 - начальное значение интервала для поля "количество новых посетителей";
  • NEW_GUESTS_2 - конечное значение интервала для поля "количество новых посетителей";
  • FAVORITES_1 - начальное значение интервала для поля "количество посетителей добавивших сайт в "Избранное"";
  • FAVORITES_2 - конечное значение интервала для поля "количество посетителей добавивших сайт в "Избранное";
  • SITE_ID* - ID сайта;
  • SITE_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по SITE_ID будет искаться вхождение.
* - допускается сложная логика
is_filtered | Флаг отфильтрованности результирующего списка. Если значение равно "true", то список был отфильтрован.
get_maxmin | Если значение данной переменной равно "Y", то в параметр max_min будет возвращен соответствующий массив содержащий максимальную и минимальную даты из выбранного результирующего списка.

Смотрите также

  • CTraffic::GetCommonValues
  • Отчет "Динамика посещаемости"

Структура возвращаемой записи

Array
(
    [ID] => ID записи
    [DATE_STAT] => дата
    [DAY] => день (1-31)
    [MONTH] => месяц (1-12)
    [YEAR] => год
    [WDAY] => номер дня недели
              (0 - понедельник,
               1 - вторник, ...
               6 - воскресенье)
    [HITS] => количество хитов
    [C_HOSTS] => количество хостов
    [SESSIONS] => количество сессий
    [C_EVENTS] => количество событий
    [GUESTS] => количество посетителей
    [NEW_GUESTS] => количество новых посетителей
    [FAVORITES] => количество посетителей, добавивших сайт в "Избранное"
    [TOTAL_HOSTS] => количество хостов
    [AM_AVERAGE_TIME] => среднее время длительности сессии
    [AM_1] => количество сессий длительность которых менее 1 минуты
    [AM_1_3] => количество сессий длительность которых от 1 до 3 минут
    [AM_3_6] => количество сессий длительность которых от 3 до 6 минут
    [AM_6_9] => количество сессий длительность которых от 6 до 9 минут
    [AM_9_12] => количество сессий длительность которых от 9 до 12 минут
    [AM_12_15] => количество сессий длительность которых от 12 до 15 минут
    [AM_15_18] => количество сессий длительность которых от 15 до 18 минут
    [AM_18_21] => количество сессий длительность которых от 18 до 21 минут
    [AM_21_24] => количество сессий длительность которых от 21 до 24 минут
    [AM_24] => количество сессий длительность которых более 24 минут
    [AH_AVERAGE_HITS] => среднее количество хитов в сессии
    [AH_1] => количество сессий в которых был только 1 хит
    [AH_2_5] => количество сессий в которых было от 2 до 5 хитов
    [AH_6_9] => количество сессий в которых было от 6 до 9 хитов
    [AH_10_13] => количество сессий в которых было от 10 до 13 хитов
    [AH_14_17] => количество сессий в которых было от 14 до 17 хитов
    [AH_18_21] => количество сессий в которых было от 18 до 21 хитов
    [AH_22_25] => количество сессий в которых было от 22 до 25 хитов
    [AH_26_29] => количество сессий в которых было от 26 до 29 хитов
    [AH_30_33] => количество сессий в которых было от 30 до 33 хитов
    [AH_34] => количество сессий в которых было более 34 хитов
)

Примеры использования

<?
// ограничимся данными только за декабрь 2007 года
$arFilter = array(
    "DATE1" => "01.12.2007",
    "DATE2" => "31.12.2007"
    );

// получим данные по посещаемости
$rsDays = CTraffic::GetDailyList(
    ($by="s_date"),
    ($order="desc"),
    $arMaxMin,
    $arFilter,
    $is_filtered
    );

while ($arDay = $rsDays->Fetch())
{
    echo "дата: ".$arDay["DATE_STAT"]."<br>";
    echo "количество хитов: ".$arDay["HITS"]."<br>";
    echo "количество хостов: ".$arDay["C_HOSTS"]."<br>";
    echo "количество сессий: ".$arDay["SESSIONS"]."<br>";
    echo "количество событий: ".$arDay["C_EVENTS"]."<br>";
    echo "количество посетителей: ".$arDay["GUESTS"]."<br>";
}
?>


GetPhraseList

Веб-аналитика>Классы>CTraffic>GetPhraseList

CTraffic::GetPhraseList

Описание и параметры

CDBResult
CTraffic::GetPhraseList(
 string &by = "s_today",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered,
 mixed limit = 10,
)

Возвращает количество поисковых фраз за весь период ведения статистики, за последние 3 дня, а также за произвольный указанный интервал времени.

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • s_phrase - поисковая фраза;
  • s_today - количество поисковых фраз за сегодня;
  • s_yesterday - количество поисковых фраз за вчера;
  • s_bef_yesterday - количество поисковых фраз за позавчера;
  • s_total - суммарное количество поисковых фраз;
  • s_period - количество поисковых фраз за установленный период времени (filter[DATE1], filter[DATE2]).
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • SITE_ID - ID сайта для которого необходимо получить статистику по поисковым фразам;
  • DATE1 - начальная дата;
  • DATE2 - конечная дата.
is_filtered | Флаг отфильтрованности списка поисковых фраз. Если значение равно "true", то список был отфильтрован.
limit | Максимальное число записей результирующего списка. Если задано число >0, то число записей будет ограничено, иначе ограничений не будет.

Смотрите также

  • Класс "CPhrase"
  • Отчет "Сводная статистика"

Структура возвращаемой записи

Array
(
    [PHRASE] => поисковая фраза
    [TOTAL_PHRASES] => суммарное количество заходов
                       с данной поисковой фразой
    [TODAY_PHRASES] => сколько раз сегодня заходили
                       с данной поисковой фразой
    [YESTERDAY_PHRASES] => сколько раз вчера заходили
                           с данной поисковой фразой
    [B_YESTERDAY_PHRASES] => сколько раз позавчера заходили
                             с данной поисковой фразой
    [PERIOD_PHRASES] => сколько раз заходили с данной
                        поисковой фразой за установленный период времени
                        (filter[DATE1], filter[DATE2])
)

Примеры использования

<?
// получим дополнительные данные за декабрь 2007 года
$arFilter = array(
    "DATE1" => "01.12.2007",
    "DATE2" => "31.12.2007"
    );

// получим список поисковых фраз и статистику по ним
$rs = CTraffic::GetPhraseList($by="s_today",
                              $order="desc",
                              $arFilter,
                              $is_filtered,
                              false);
while ($ar = $rs->Fetch())
{
    echo "поисковая фраза: ".$ar["PHRASE"]."<br>";
    echo "всего заходов с данной поисковой фразой: ".
         $ar["TOTAL_PHRASES"].
         "<br>";
    echo "сегодня: ".$ar["TODAY_PHRASES"]."<br>";
    echo "вчера: ".$ar["YESTERDAY_PHRASES"]."<br>";
    echo "позавчера: ".$ar["B_YESTERDAY_PHRASES"]."<br>";
    echo "в течение декабря 2005 года: ".
         $ar["PERIOD_PHRASES"]."<br>";
}
?>


GetRefererList

Веб-аналитика>Классы>CTraffic>GetRefererList

CTraffic::GetRefererList

Описание и параметры

CDBResult
CTraffic::GetRefererList(
 string &by = "ref_today",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered,
 mixed limit = 10,
)

Возвращает количество ссылающихся сайтов за весь период ведения статистики, за последние 3 дня, а также за произвольный указанный интервал времени.

Параметры метода

Параметр | Описание
by Поле для сортировки. Возможные значения:
  • ref_server - ссылающийся сайт;
  • ref_today - количество заходов с ссылающегося сайта за сегодня;
  • ref_yesterday - количество заходов с ссылающегося сайта за вчера;
  • ref_bef_yesterday - количество заходов с ссылающегося сайта за позавчера;
  • ref_total - суммарное количество заходов с ссылающегося сайта;
  • ref_period - количество заходов с ссылающегося сайта за установленный период времени (filter[DATE1], filter[DATE2]).
оrder Порядок сортировки. Возможные значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • SITE_ID - ID сайта для которого необходимо получить статистику по ссылающимся сайтам;
  • DATE1 - начальная дата;
  • DATE2 - конечная дата.
is_filtered | Флаг отфильтрованности списка ссылающихся сайтов. Если значение равно "true", то список был отфильтрован.
limit | Максимальное число записей результирующего списка. Если задано число >0, то число записей будет ограничено, иначе ограничений не будет.

Смотрите также

  • Класс "CReferer"
  • Отчет "Сводная статистика"

Структура возвращаемой записи

Array
(
    [SITE_NAME] => ссылающийся сайт
    [TOTAL_REFERERS] => суммарное количество заходов
                        с данного ссылающегося сайта
    [TODAY_REFERERS] => количество заходов
                        с ссылающегося сайта за сегодня
    [YESTERDAY_REFERERS] => количество заходов
                            с ссылающегося сайта за вчера
    [B_YESTERDAY_REFERERS] => количество заходов
                              с ссылающегося сайта за позавчера
    [PERIOD_REFERERS] => количество заходов с ссылающегося сайта
                         за установленный период времени
                         (filter[DATE1], filter[DATE2])
)

Примеры использования

<?
// получим дополнительные данные за декабрь 2007 года
$arFilter = array(
    "DATE1" => "01.12.2007",
    "DATE2" => "31.12.2007"
    );

// получим список поисковых фраз и статистику по ним
$rs = CTraffic::GetRefererList(
    ($by="ref_today"),
    ($order="desc"),
    $arFilter,
    $is_filtered,
    false
    );

while ($ar = $rs->Fetch())
{
    echo "ссылающийся сайт: ".$ar["SITE_NAME"]."<br>";
    echo "всего заходов с данного ссылающегося сайта: ".
         $ar["TOTAL_REFERERS"]."<br>";
    echo "сегодня: ".$ar["TODAY_REFERERS"]."<br>";
    echo "вчера: ".$ar["YESTERDAY_REFERERS"]."<br>";
    echo "позавчера: ".$ar["B_YESTERDAY_REFERERS"]."<br>";
    echo "в течение декабря 2005 года: ".
         $ar["PERIOD_REFERERS"]."<br>";
}
?>


GetSumList

Веб-аналитика>Классы>CTraffic>GetSumList

CTraffic::GetSumList

Описание и параметры

CDBResult
CTraffic::GetSumList(
 string data_type,
 array filter = array(),
)

Возвращает количество хитов, хостов, сессий, посетителей, событий в разрезе по часам, дням недели и месяцам.

Параметры метода

Параметр Описание
data_type Тип данных. Возможные значения:
  • hour - данные в разрезе по часам;
  • weekday - данные в разрезе по дням недели;
  • month - данные в разрезе по месяцам.
filter Массив для фильтрации результирующего списка. В массиве допустимы следующие ключи:
  • SITE_ID - ID сайта для которого необходимо получить статистику по ссылающимся сайтам;
  • DATE1 - начальная дата;
  • DATE2 - конечная дата.

Смотрите также

  • Отчет "Посещаемость"

Структура возвращаемой записи

В зависимости от значения параметра data_type, структура возвращаемой записи различная.

  • при получении данных в разрезе по часам (data_type=hour):
    Array
(
    [HOUR_HOST_0] => число хостов, зафиксированных с 0:00 до 1:00 часа
    ...
    [HOUR_HOST_23] => число хостов, зафиксированных с 23:00 до 0:00

    [HOUR_SESSION_0] => число сессий, зафиксированных с 0:00 до 1:00 часа
    ...
    [HOUR_SESSION_23] => число сессий, зафиксированных с 23:00 до 0:00

    [HOUR_HIT_0] => число хитов, зафиксированных с 0:00 до 1:00 часа
    ...
    [HOUR_HIT_23] => число хитов, зафиксированных с 23:00 до 0:00

    [HOUR_EVENT_0] => число событий, зафиксированных с 0:00 до 1:00 часа
    ...
    [HOUR_EVENT_23] => число событий, зафиксированных с 23:00 до 0:00

    [HOUR_GUEST_0] => число посетителей, зафиксированных с 0:00 до 1:00 часа
    ...
    [HOUR_GUEST_23] => число посетителей, зафиксированных с 23:00 до 0:00

    [HOUR_NEW_GUEST_0] => число новых посетителей, зафиксированных с 0:00 до 1:00 часа
    ...
    [HOUR_NEW_GUEST_23] => число новых посетителей, зафиксированных с 23:00 до 0:00

    [HOUR_FAVORITE_0] => число посетителей, добавивших сайт в "Избранное", зафиксированных с 0:00 до 1:00 часа
    ...
    [HOUR_FAVORITE_23] => число посетителей, добавивших сайт в "Избранное", зафиксированных с 23:00 до 0:00
)
  • при получении данных в разрезе по дням недели (data_type=weekday):
    Array
(
    [WEEKDAY_HOST_0] => число хостов, зафиксированных в воскресенье
    [WEEKDAY_HOST_1] => число хостов, зафиксированных в понедельник
    ...
    [WEEKDAY_HOST_6] => число хостов, зафиксированных в субботу

    [WEEKDAY_SESSION_0] => число сессий, зафиксированных в воскресенье
    [WEEKDAY_SESSION_1] => число сессий, зафиксированных в понедельник
    ...
    [WEEKDAY_SESSION_6] => число сессий, зафиксированных в субботу

    [WEEKDAY_HIT_0] => число хитов, зафиксированных в воскресенье
    [WEEKDAY_HIT_1] => число хитов, зафиксированных в понедельник
    ...
    [WEEKDAY_HIT_6] => число хитов, зафиксированных в субботу

    [WEEKDAY_EVENT_0] => число событий, зафиксированных в воскресенье
    [WEEKDAY_EVENT_1] => число событий, зафиксированных в понедельник
    ...
    [WEEKDAY_EVENT_6] => число событий, зафиксированных в субботу

    [WEEKDAY_GUEST_0] => число посетителей, зафиксированных в воскресенье
    [WEEKDAY_GUEST_1] => число посетителей, зафиксированных в понедельник
    ...
    [WEEKDAY_GUEST_6] => число посетителей, зафиксированных в субботу

    [WEEKDAY_NEW_GUEST_0] => число новых посетителей, зафиксированных в воскресенье
    [WEEKDAY_NEW_GUEST_1] => число новых посетителей, зафиксированных в понедельник
    ...
    [WEEKDAY_NEW_GUEST_6] => число новых посетителей, зафиксированных в субботу

    [WEEKDAY_FAVORITE_0] => число посетителей, добавивших сайт в "Избранное", зафиксированных в воскресенье
    [WEEKDAY_FAVORITE_1] => число посетителей, добавивших сайт в "Избранное", зафиксированных в понедельник
    ...
    [WEEKDAY_FAVORITE_6] => число посетителей, добавивших сайт в "Избранное", зафиксированных в субботу
)
  • при получении данных в разрезе по месяцам (data_type=month):
    Array
(
    [MONTH_HOST_1] => число хостов, зафиксированных в январе
    ...
    [MONTH_HOST_12] => число хостов, зафиксированных в декабре

    [MONTH_SESSION_1] => число сессий, зафиксированных в январе
    ...
    [MONTH_SESSION_12] => число сессий, зафиксированных в декабре

    [MONTH_HIT_1] => число хитов, зафиксированных в январе
    ...
    [MONTH_HIT_12] => число хитов, зафиксированных в декабре

    [MONTH_EVENT_1] => число событий, зафиксированных в январе
    ...
    [MONTH_EVENT_12] => число событий, зафиксированных в декабре

    [MONTH_GUEST_1] => число посетителей, зафиксированных в январе
    ...
    [MONTH_GUEST_12] => число посетителей, зафиксированных в декабре

    [MONTH_NEW_GUEST_1] => число новых посетителей, зафиксированных в январе
    ...
    [MONTH_NEW_GUEST_12] => число новых посетителей, зафиксированных в декабре

    [MONTH_FAVORITE_1] => число посетителей, добавивших сайт в "Избранное", зафиксированных в январе
    ...
    [MONTH_FAVORITE_12] => число посетителей, добавивших сайт в "Избранное", зафиксированных в декабре
)

Примеры использования

<?
// получим данные по посещаемости в разрезе по дням недели
$rs = CTraffic::GetSumList("weekday");
$ar = $rs->Fetch();
for ($i=0; $i<=6; $i++)
{
    switch($i)
    {
        case 0: echo "воскресенье"; break;
        case 1: echo "понедельник"; break;
        case 2: echo "вторник"; break;
        case 3: echo "среда"; break;
        case 4: echo "четверг"; break;
        case 5: echo "пятница"; break;
        case 6: echo "суббота"; break;
    }
    echo "<br>";
    echo "Хостов: ".$ar["WEEKDAY_HOST_".$i]."<br>";
    echo "Сессий: ".$ar["WEEKDAY_SESSION_".$i]."<br>";
    echo "Хитов: ".$ar["WEEKDAY_HIT_".$i]."<br>";
    echo "Посетителей: ".$ar["WEEKDAY_GUEST_".$i]."<br>";
    echo "Новых посетителей: ".$ar["WEEKDAY_NEW_GUEST_".$i]."<br>";
    echo "<br><br>";
}
?>


Класс CUserOnline

CUserOnline - класс для получения данных о недавних посетителях сайта и их сессиях.

Методы класса

Метод | Описание | С версии
GetGuestCount | Возвращает количество посетителей, проявивших активность на сайте (совершивших хит) за определённый интервал времени. |
GetList | Возвращает список сессий посетителей, проявивших активность на сайте за определённый интервал времени. |

Смотрите также

  • Отчет "Кто на сайте"


GetGuestCount

Веб-аналитика>Классы>CUserOnline>GetGuestCount

CUserOnline::GetGuestCount

int
CUserOnline::GetGuestCount()

Возвращает количество посетителей, проявивших активность на сайте (совершивших хит) за определённый интервал времени. Данный интервал времени задается в настройках модуля "Статистика" в параметре "Интервал посетителей в online (сек.)".

Параметры метода

Нет параметров.

Смотрите также

  • CTraffic::GetCommonValues

Примеры использования

<?
echo "Сейчас на сайте посетителей: ".CUserOnline::GetGuestCount();
?>


GetList

Веб-аналитика>Классы>CUserOnline>GetList

CUserOnline::GetList

Описание и параметры

CDBResult
CUserOnline::GetList(function GetList(&$guest_count, &$session_count, $arOrder=Array(), $arFilter=Array()))

Возвращает список сессий посетителей, проявивших активность (совершивших хит) на сайте за определённый интервал времени.

Параметры метода

Параметр | Описание
guest_counter | Ссылка на переменную, которая после выполнения метода будет содержать количество посетителей в online.
session_counter | Ссылка на переменную, которая после выполнения метода будет содержать количество сессий посетителей в online.

Смотрите также

  • Отчет "Кто на сайте"

Структура возвращаемой записи

Array
(
    [ID] => ID сессии
    [HITS] => количество хитов сессии
    [LAST_USER_ID] => ID пользователя, под которым последний раз
                      был авторизован посетитель
    [USER_AUTH] => флаг "авторизован ли посетитель в данной сессии"
                   (Y - да; N - нет)
    [STOP_LIST_ID] => ID записи стоп-листа, под которую попал посетитель
                      (если это имело место быть)
    [GUEST_ID] => ID посетителя
    [NEW_GUEST] => флаг "новый посетитель" (Y - новый; N - вернувшийся)
    [FAVORITES] => флаг "добавлял ли посетитель сайт в "Избранное"
                   в данной сессии
    [COUNTRY_ID] => ID страны посетителя
    [COUNTRY_NAME] => название страны посетителя

    [ADV_ID] => ID рекламной кампании
    [ADV_BACK] => флаг прямого захода (N) или  возврата (Y)
                  по рекламной кампании
    [REFERER1] => идентификатор referer1 рекламной кампании
    [REFERER2] => идентификатор referer2 рекламной кампании
    [REFERER3] => дополнительный параметр рекламной кампании

    [FIRST_URL_FROM] => ссылающаяся страница,
                        с которой посетитель впервые пришел на сайт
    [URL_FROM] =>
    [FIRST_SITE_ID] =>
    [URL_LAST] => страница последнего хита сессии
    [URL_LAST_404] => флаг 404 ошибки
                      на последней странице сессии (Y - да; N - нет)
    [LAST_SITE_ID] => ID сайта на последнем хите сессии
    [IP_LAST] => IP адрес посетителя на последнем хите сессии
                 (в виде: XXX.XXX.XXX.XXX)
    [DATE_LAST] => время последнего хита

    [SESSION_TIME] => разница во времени между первым
                      и последним хитом сессии (сек.)
)

Примеры использования

<?
// получим список записей
$rs = CUserOnline::GetList($guest_counter, $session_counter);

echo "Количество посетителей в онлайн: ".$guest_counter;
echo "Количество сессий в онлайн: ".$session_counter;

// выведем все записи
while ($ar = $rs->Fetch())
{
    echo "<pre>"; print_r($ar); echo "</pre>";
}
?>


Список событий

Событие | Вызывается | Метод | С версии
OnCityLookup | при поиске города. Позволяет использовать альтернативные механизмы определения города посетителя. В качестве примера можно посмотреть /bitrix/modules/statistic/tools/geoip*.php. | CCity::GetHandler | 8.6.3


Веб-мессенджер

Описание

Как инструмент номер один, Веб-мессенджер дополняет привычные способы общения - телефон и электронную почту.

Интерактивный инструмент – Веб-мессенджер позволяет эффективно общаться и получать информацию прямо через браузер:

  • пользователи портала общаются посредством мгновенных персональных сообщений (как в интернет-мессенджерах);
  • список контактов формируется согласно структуре компании;
  • центр нотификации выводит информацию о новых событиях на портале;
  • индицируется присутствие сотрудника на портале (онлайн);
  • присутствующие на портале сотрудники ведут «живой» диалог;
  • уведомления о новых сообщениях появляются на любой странице портала;
  • не работающим в текущий момент на портале пользователям сообщения доставляются позже;
  • ведется архив сообщений диалогов пользователей;
  • просмотреть личную переписку сотрудник также может из профиля другого пользователя («Показать переписку»).

Использование Веб-мессенджера отменяет необходимость установки в компании XMPP серверов и специальных Jabber клиентов. Реализован мессенджер с использованием всех инноваций современных браузеров (используется HTML5, local storage и т.д.).

Примеры использования

Для добавления сообщения в чат, необходимо знать ID нужного чата и выполнить метод отправки сообщения в чат. Для получения ID нужно, нужно в нужном чате отправить сообщение /getChatId и посмотреть номер чата:

В нужном месте кода, вызвать следующие API:

if (CModule::IncludeModule('im'))
{
   $ar = Array(
      "TO_CHAT_ID" => 21441, // ID чата
      "FROM_USER_ID" => 1, // ID пользователя состоящего в чате
      "MESSAGE"     => "Сообщение от пользователя", // Произвольный текст
   );
   CIMChat::AddMessage($ar);
}

Результат:

Отправить системное сообщение:

if (CModule::IncludeModule('im'))
{
   $ar = Array(
      "TO_CHAT_ID" => 21441, // ID чата
      "FROM_USER_ID" => 0,
      "SYSTEM" => Y,
      "MESSAGE"  => "Системное сообщение", // Произвольный текст
   );
   CIMChat::AddMessage($ar);
}

Создание чата

<?php
if (\Bitrix\Main\Loader::includeModule('im'))
{
    $pic = $_SERVER['DOCUMENT_ROOT'] . '/test.jpg';
    $avatarId = \CFile::SaveFile(\CFile::MakeFileArray($pic), 'im');
    $chat = new \CIMChat;
    $chat->Add(array(
        'TITLE' => 'Тестовый чат',
        'DESCRIPTION' => 'Описание тестового чата',
        'COLOR' => 'RED',//цвет
        'TYPE' => IM_MESSAGE_OPEN,//тип чата
        'AUTHOR_ID' => '1',//владелец чата
        'AVATAR_ID' => $avatarId,//аватарка чата
    ));
}
//TYPE = IM_MESSAGE_CHAT – закрытый чат
//список доступных цветов: \Bitrix\Im\Color::getSafeColors()

Приглашение в чат

<?php
//приглашение в чат
if (\Bitrix\Main\Loader::includeModule('im'))  {
    $chat = new \CIMChat;
    $chat->AddUser($chatId, $userId, $hideHistory = null, $skipMessage = false);
//userId - может быть массивом пользователя;
//hideHistory - скрыть сообщения которые были до момента входа, true/false - по умолчанию берется то значение,
//которое выставлено в настройках модуля, для Б24 по умолчанию скрыть, для БУС показать.
//skipMessage - пропустить стандартное сообщение о включении участника, по умолчанию false. Например для того
// что бы опубликовать самому какое то сообщение.
}

//поиск чата по определенным параметрам
if (\Bitrix\Main\Loader::includeModule('im'))  {
    $chat = new \CIMChat;
    $res = \Bitrix\Im\chatTable::getList(array(
        'filter' => array(
            'TITLE' => '%красный%'
        )
    ));
    if ($row = $res->fetch())
    {
    }
}

Написать в чат

<?php
if (\Bitrix\Main\Loader::includeModule('im'))  {
    \CIMChat::AddMessage(array(
        'FROM_USER_ID' => 1,  //id автора
        'TO_CHAT_ID' => 19,  //id чата
        'MESSAGE' => 'Пишу в чат #19'
    )); }
if (\Bitrix\Main\Loader::includeModule('im'))  {
    \CIMChat::AddSystemMessage(array(
        'FROM_USER_ID' => 1,  //id автора
        'CHAT_ID' => 19,  //id чата
        'MESSAGE' => 'Шлю системное уведомление'
    ));
}

Написать в чат лично

<?php
if (\Bitrix\Main\Loader::includeModule('im'))
{
    \CIMMessage::Add(array(
        'FROM_USER_ID' => 1,
        'TO_USER_ID' => 21,
        'MESSAGE' => 'Пишу в чат тебе',
    ));
}


Список событий

Событие | Вызывается | Метод | С версии
OnBeforeMessagesAdd | перед добавлением сообщения | CIMMessage::Add | 11.0.1
OnAfterConfirmNotify | после подтверждения уведомления | CIMNotify::Confirm | 11.0.3
OnBeforeConfirmNotify | перед подтверждением уведомления | CIMNotify::Confirm | 11.0.3
OnAfterDeleteNotify | после удаления уведомления | CIMNotify::DeleteWithCheck | 11.0.3
OnAfterNotifyAdd | после добавления уведомления | CIMMessenger::Add | 11.5.6
OnAfterDeleteMessage | после удаления сообщения | CIMMessage::Delete | 11.5.6
OnAfterContactListGetList | после получения контакт листа | CIMContactList::GetList | 12.1.3
OnBeforeMessageNotifyAdd | перед добавлением уведомления или сообщения | CIMNotify:add, CIMMessage::Add CIMChat::AddMessage | 12.1.3
OnAfterMessagesUpdate | после редактирования сообщения | CIMMessenger::Update | 15.0.0
OnAfterMessagesDelete | после удаления сообщения | CIMMessenger::Delete | 15.0.0
OnAfterFileUpload | после загрузки файла | CIMDisk::UploadFile | 15.0.3
OnAfterChatRead | после прочтения чата | CIMChat::SetReadMessage | 16.5.0


OnAfterChatRead

функция-обработчик(
   array arFields
);
Событие вызывается после прочтения чата.

Параметры

Параметр | Описание
arFields | Массив параметров чата.


OnBeforeMessageNotifyAdd

Описание

Событие применяется для работы с сообщениями Веб-мессенджера. Для этого необходимо добавить обработчик события на модуль im.

Можно отменять отправку сообщения, например. Для этого нужно вернуть либо false, либо массив Array('result' => false, 'reason' => 'причина отмены') тогда в мессенджере этот текст будет указан в интерфейсе чата. В тексте доступен ограниченный html - a, b, i, u, br.

Примеры использования

AddEventHandler("im", "OnBeforeMessageNotifyAdd", "___OnBeforeMessageNotifyAdd");
function ___OnBeforeMessageNotifyAdd($arFields)
{
    global $USER;

    if(!$USER->IsAdmin() && $arFields['MESSAGE_TYPE'] == 'P')
    {
        $imMaxMessagePerDay = 10;

        $date = date('Ymd');
        $_SESSION['IM_ANTI_SPAM'][$date]++;
        if ($_SESSION['IM_ANTI_SPAM'][$date] > $imMaxMessagePerDay)
        {
            return Array(
                'reason' => 'Вы не можете отправлять более 10 сообщений в день',
                'result' => false,
            );
        }
    }
}

Результат:


Для разработчиков

С помощью модуля можно создавать свои веб-сервисы и клиенты сторонних веб-сервисов.

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("webservice")){
//здесь можно использовать функции и классы модуля
}
?>

Модуль включает в себя следующие Компоненты 2.0:

Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Check Authentication | webservice.checkauth | Возвращает данные по пользователю, если он правильно авторизован. Компонент может рассматриваться как пример реализации веб-сервиса, содержащего методы проверки авторизации пользователя и получения информации по авторизованному пользователю (компонент не описывается).
SOAP&WSDL сервер | webservice.server | Реализует конечную точку (EndPoint) для сконфигурированного веб-сервиса на основе SOAP/WSDL.
Веб-сервисы модуля статистики | webservice.statistic | Веб-сервис, отдающий статистические данные по сайту, например, для гаджета статистики для боковой панели OC Windows Vista.


Классы модуля Web Service

Классы

Следующие PHP классы используются для реализации веб-сервисов в компонентах.

Класс | Описание | С версии
CWebServiceDesc | Структура описывающая методы и типы веб-сервиса. | 7.0.0
IWebService | Интерфейс веб-сервиса для регистрации в CWebService. | 8.0.2
CWebService | Менеджер веб-сервисов. | 8.0.2

Реализованные классы

Следующие PHP классы реализуют SOAP протокол, WSDL, генерацию XML в модуле webservice.

Класс | Описание | С версии
CXMLCreator | Класс для генерации XML | 8.0.0
CSOAPFault | Класс для обработки ошибок SOAP сервера и клиента. | 8.0.2
CSOAPRequest | Класс формирует SOAP запрос/конверт. | 8.0.2
CSOAPServerResponser | Интерфейс для реализации пользовательского обработчика SOAP запросов. | 6.5.2
CSOAPServer | Класс SOAP сервер. | 6.5.2
CSOAPClient | Класс SOAP клиент. | 8.0.0
CWSDLCreator | Класс для автоматической генерации WSDL для веб-сервиса. Document/literal binding only. | 7.0.0
CSOAPCodec | Класс трансформирует данные в XML согласно описанию веб-сервиса. | 7.0.0
CSOAPResponse | Класс формирует/обрабатывает SOAP ответы. | 6.5.2
CWSSOAPResponser | Класс реализующий обработку запросов к веб-сервисам через SOAP. Наследует CSOAPServerResponser. | 6.5.2

Абстрактные классы

Класс | Описание | С версии
CSOAPHeader | Абстрактный класс для обработки SOAP пакета. | 8.0.2
CSOAPBody | Абстрактный класс для обработки SOAP пакета. | 8.0.2
CSOAPEnvelope | Абстрактный класс для обработки SOAP пакета. | 6.5.2


CSOAPClient

Методы класса

Метод | Описание | С версии
CSOAPClient | Конструктор класса. Настраивает SOAP клиент на конкретный сервер ($server), точку доступа soap сервера ($path='/'), порт web сервера ($port). | 8.0.0
send | Метод отсылает SOAP запрос сформированный CSOAPRequest. | 8.0.0
setTimeout | Метод устанавливает время ожидания ответа SOAP сервера. | 8.0.0
getRawRequest | Метод возвращает строку - запрос ушедший SOAP серверу. | 8.0.0
getRawResponse | Метод возвращает строку - ответ SOAP сервера. | 8.0.0
setLogin | Метод устанавливает логин для авторизации через HTTP Basic для SOAP запроса. | 8.0.0
setPassword | Метод устанавливает пароль для авторизации через HTTP Basic для SOAP запроса. | 8.0.0
login | Метод возвращает установленный логин. | 8.0.0
password | Метод возвращает установленный пароль. | 8.0.0

Примеры

Пример использования номер 1 (внутренний тест)

function TestComponent()
{
    global $APPLICATION;
    $client = new CSOAPClient( "bitrix.soap", $APPLICATION->GetCurPage() );
    $request = new CSOAPRequest( "wsTestStartOut1", "http://bitrix.soap/" );
    $request->addParameter("str1", "qwe");
    $request->addParameter("str2", "fjdfhgfdh");
    $request->addParameter("int3", "123");
    $response = $client->send( $request );
    echo "Call wsTestStartOut1";
    if ( $response->isFault() )
    {
        print( "SOAP fault: " . $response->faultCode(). " - " . $response->faultString() . "" );
    }
    else
        echo "[OK]: ".mydump($response->Value);
}

Пример использования номер 2 (внешний тест)

function TestComponent()
{
    $client = new CSOAPClient("ws.strikeiron.com", "/relauto/iplookup/DNS");
    $request = new CSOAPRequest( "DNSLookup", "http://tempuri.org/");
    $request->addSOAPHeader( "LicenseInfo xmlns=\"http://ws.strikeiron.com\"",
            array("UnregisteredUser" => array( "EmailAddress" => "qwerty@mail.ru" ))
        );
    $request->addParameter("server", "www.yandex.ru");
    $response = $client->send( $request );

    echo "SOAPRequest: ".htmlspecialchars($client->getRawRequest());
    echo "SOAPResponse: ".htmlspecialchars($client->getRawResponse());
}

Пример использования номер 3

CModule::IncludeModule('webservice');

$client = new CSOAPClient("192.168.1.1", '/path_to_webservice/');
$request = new CSOAPRequest("myMethod", "http://some-namespace/");

$client->setLogin('my_login');
$client->setPassword('my_password');

$request->addParameter("myMethodParam", "xxxxx");

$response = $client->send($request);

if ( $response->isFault() )
{
   print( "SOAP fault: " . $response->faultCode(). " - " . $response->faultString() . "" );
}
else
{
     echo "[OK]: ".print_r($response->Value, 1);
}


CSOAPFault

Описание

Члены класса

Параметр | Описание | С версии
$FaultCode | Параметр, содержащий код ошибки SOAP. | 8.0.2
$FaultString | Параметр, содержащий строку, описывающую суть ошибки SOAP в доступном пользователю виде. | 8.0.2

Конструктор класса CSOAPFault

CSOAPFault::CSOAPFault(
    string faultCode = "",
    string faultString = ""
)

Особенность использования

Обычно экземпляр этого класса передается в метод ShowResponse SOAP сервера, а тот передает CSOAPFault в SOAPResponse::payload, который различает тип ответа Value: ошибка ли это (экземпляр класса CSOAPFault), или же это обычный тип данных.

Таким образом, ошибки SOAP сервера, представленные классом CSOAPFault, компилируются в ответ отдельным способом. Все остальные типы проходят либо строгое кодирование согласно описанным типам веб-сервиса, либо легкое - с помощью CXMLCreator::encodeValueLight.

Пример использования

// Часть кода обработчика веб-сервисов SOAP сервера
$this->ShowResponse( $cserver, $functionName, $namespaceURI,
    new CSOAPFault(
        'Server Error',
        'Method not found'
    ) );


CSOAPRequest

Методы класса

Метод | Описание | С версии
CSOAPRequest | Конструктор класса. | 8.0.2
addSOAPHeader | Метод добавляет в SOAP запрос часть заголовка. | 8.0.2
addBodyAttribute | Метод добавляет атрибут к тегу body SOAP запроса. | 8.0.2
addParameter | Метод добавляет данные для передачи в SOAP запросе. Для веб-сервиса - параметры вызываемого метода. | 8.0.2
payload | Метод возвращает сформированный SOAP запрос в виде строки. | 8.0.2

Пример использования

// Формируем запрос к веб-сервису ws.strikeiron.com/relauto/iplookup/DNS
$request = new CSOAPRequest("DNSLookup", "http://tempuri.org/");
$request->addSOAPHeader( "LicenseInfo xmlns=\"http://ws.strikeiron.com\"", array(
    "UnregisteredUser" => array(
        "EmailAddress" => "qwerty@mail.ru"
    )
));
$request->addParameter("server", "www.yandex.ru");


addBodyAttribute

Веб-сервисы>Классы>CSOAPRequest>addBodyAttribute (доступен с 8.0.2)

CSOAPRequest::addBodyAttribute

void
CSOAPRequest::addBodyAttribute(
    string name,
    string value
)

Метод добавляет атрибут к тегу body SOAP запроса. Нестатический метод.

Параметры метода

Параметр | Описание
name | Название атрибута.
value | Значение атрибута.


addParameter

Веб-сервисы>Классы>CSOAPRequest>addParameter (доступен с 8.0.2)

CSOAPRequest::addParameter

Описание и параметры

void
CSOAPRequest::addParameter(
    string name,
        ЛюбойТипДанных value
)

Метод добавляет данные для передачи в SOAP запрос. Для веб-сервиса - параметры вызываемого метода. Нестатический метод.

Параметры метода

Параметр | Описание
name | Название параметра.
value | Обычно - ассоциативный массив описывающий содержание сообщения в заголовке запроса. См. CXMLCreator::encodeValueLight.

Пример использования

// Пример создания запроса для вызова веб-сервиса из файла webservice.wsdl.phpt
$request = new CSOAPRequest( "wsTestStart4", "http://bitrix.soap/" );
$request->addParameter("str1", "qwe");
$request->addParameter("str2", array(
    "1:ArrayOfsGenTestXEl" => array(
        "id" => "123",
        "name" => "qwe",
        "testa" => array(
                "1:ArrayOfsGenLiteEl" => array("id" => "56", "name" => "asd"),
                "2:ArrayOfsGenLiteEl" => array("id" => "13", "name" => "fjhg")
                )
    ),
    "2:ArrayOfsGenTestXEl" => array(
        "id" => "7653",
        "name" => "dfgsdf DASD",
        "testa" => array(
                "1:ArrayOfsGenLiteEl" => array("id" => "78", "name" => "ty"),
                "2:ArrayOfsGenLiteEl" => array("id" => "99", "name" => "3425rte")
            )
    )
));


addSOAPHeader

Веб-сервисы>Классы>CSOAPRequest>addSOAPHeader (доступен с 8.0.2)

CSOAPRequest::addSOAPHeader

Описание и параметры

void
CSOAPRequest::addSOAPHeader(
string name,
ЛюбойТипДанных value
)

Метод добавляет в SOAP запрос часть заголовка. Нестатический метод.

Параметры метода

Параметр | Описание
name | Название сообщения в заголовке soap запроса.
value | Обычно - ассоциативный массив описывающий содержание сообщения в заголовке запроса. См. CXMLCreator::encodeValueLight.

Пример использования

$request->addSOAPHeader(
    "LicenseInfo xmlns=\"http://ws.strikeiron.com\"",
    array(
        "UnregisteredUser" => array( "EmailAddress" => "qwerty@mail.ru" ))
    );


Конструктора CSOAPRequest

Веб-сервисы>Классы>CSOAPRequest>Конструктора CSOAPRequest (доступен с 8.0.2)

CSOAPRequest::Конструктора CSOAPRequest

Описание и параметры

CSOAPRequest::CSOAPRequest(
string name = "",
string namespace = "",
array  parameters = array()
);

Конструктор класса.

Параметры конструктора

Параметр | Описание
name | Название сообщения в запросе.
namespace | Пространство имён сообщения запроса.
parameters | Параметры запроса в формате array("Название Параметра" => "Значение"). Значение может отдаваться в виде аналогичном тому, что принимает метод addParameter в качестве Value.

Пример использования

// Вызов DNSLookup метода веб-сервиса
$request = new CSOAPRequest( "DNSLookup", "http://tempuri.org/");


CSOAPServer

Методы класса

Метод | Описание | С версии
GetRequestData | Метод возвращает принятый запрос SOAP пакета. | 6.5.2
GetResponseData | Метод возвращает ушедший в ответ SOAP пакет. GetResponseData можно вызвать только после ProcessRequest. | 6.5.2
boolean AddServerResponser( CSOAPServerResponser &respobject ) | Метод регистрирует обработчик SOAP запроса. Обработчики, наследующие, интерфейс CSOAPServerResponser, должны быть зарегистрированы заранее, до вызова метода ProcessRequest. | 6.5.2
ShowRawResponse | Метод формирует и отсылает SOAP Response пакет вместе с данными в виде CXMLCreator. | 6.5.2
ShowResponse | Метод формирует и отсылает SOAP Response пакет, после преобразования данных. | 6.5.2
ShowSOAPFault | Метод формирует и отсылает SOAP Response пакет с ошибкой. | 6.5.2
ProcessRequest | Метод запускает обработку SOAP запроса. К этому моменту обработчики CSOAPServerResponser должны быть зарегистрированы методом AddServerResponser. Возвращает true если обработка успешна, иначе false. | 6.5.2
stripHTTPHeader | Метод отрезает HTTP заголовок в том месте, где начинается XML-документ. | 6.5.2

Пример использования

В этом примере в $arParams["SOAPSERVER_RESPONSER"] содержаться объекты обработчики SOAP.

Обычно SOAP-обработчик создаётся в компоненте, сохраняется в массив в $arParams["SOAPSERVER_RESPONSER"] и далее, когда включается компонент webservice.server, выполняется следующий код.

// В компоненте обработчика

// Создаем экземпляр обработчика
$research =& new CMSSOAPResearch();

// Конфигурируем обработчик
$research->provider_id = '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}';
$research->service_id = '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}';
$research->add_tittle = "";
$research->query_path = "http://{$_SERVER[HTTP_HOST]}/ws/wscauth.php";
$research->registration_path = "http://{$_SERVER[HTTP_HOST]}/ws/wscauth.php";

// Сохраняем для передачи в webservice.server
$arParams["SOAPSERVER_RESPONSER"] = array( &$research );

.........

// В компоненте webservice.server
$server = new CSOAPServer();

for ($i = 0; $i<count($arParams["SOAPSERVER_RESPONSER"]); $i++)
{
    $server->AddServerResponser($arParams["SOAPSERVER_RESPONSER"][$i]);
}

$result = $server->ProcessRequest();


CSOAPServerResponser

Методы интерфейса

Метод | Описание | С версии
void OnBeforeRequest( CSOAPServer &cserver ) | Метод вызывается для всех обработчиков CSOAPServerResponser зарегистрированных в обрабатывающем SOAP сервере при наступлении события, когда получен запрос к серверу, но ещё не началось его раскодирование. | 6.5.2
void OnAfterResponse( CSOAPServer &cserver ) | Метод вызывается для всех обработчиков CSOAPServerResponser зарегистрированных в обрабатывающем SOAP сервере при наступлении события, когда завершилась обработка запроса и ответ уже отослан (ProcessRequestBody вернула true). | 6.5.2
boolean ProcessRequestBody( CSOAPServer &cserver, CDataXMLNode body ) | Метод обработчик запроса SOAP сервера. Если метод обработал запрос и ответил вызовом ShowResponse, то возвращается true. Иначе возвращается false и вызовы ProcessRequestBody обработчиков продолжаются по цепочке пока не будет найден обработчик запроса, либо пока список обработчиков не иссякнет. | 6.5.2

Параметры метода

Параметр | Описание
cserver | Ссылка на объект CSOAPServer, обрабатывающего soap запрос.
body | Часть XML запроса от элемента, следующего за тегом body в виде CDataXMLNode.

Пример использования

class CMSSOAPResearch extends CSOAPServerResponser
{
    var $provider_id;
    var $service_id;
    var $add_tittle;
    var $query_path;
    var $registration_path;

    function OnBeforeRequest(&$cserver)
    {
        AddMessage2Log(mydump($cserver->GetRequestData()));
    }

    function ProcessRequestBody(&$cserver, $body)
    {
        $functionName = $body->name();
        $namespaceURI = $body->namespaceURI();
        $requestNode = $body;

        if ($functionName == "Registration")
        {
            $root = new CXMLCreator("RegistrationResponse");
            $root->setAttribute("xmlns", "urn:Microsoft.Search");

            $regres = new CXMLCreator("RegistrationResult");
            $root->addChild($regres);

            $prup = new CXMLCreator("ProviderUpdate");
            $prup->setAttribute("xmlns", "urn:Microsoft.Search.Registration.Response");
            $prup->setAttribute("revision", "1");
            $prup->setAttribute("build", "1");
            $regres->addChild($prup);

            $stat = new CXMLCreator("Status");
            $stat->setData("SUCCESS");
            $prup->addChild($stat);

            $providers = array(

                "Provider" => array (
                    "Message" => "Тестовая служба.",
                    "Id" => "{$this->provider_id}",
                    "Name" => "Тестовая служба. {$this->add_tittle}",
                    "QueryPath" => $this->query_path,
                    "RegistrationPath" => $this->registration_path,
                    "AboutPath" => "http://www.bitrix.ru/",
                    "Type" => "SOAP",
                    "Revision" => "1",
                    "Services" => array(
                        "Service" => array(
                            "Id" => "{$this->service_id}",
                            "Name" => "Тестовая служба. {$this->add_tittle}",
                            "Description" => "Тестовая служба для тестирования soap сервера.",
                            "Copyright" => "(c) Bitrix.",
                            "Display" => "On",
                            "Category" => "ECOMMERCE_GENERAL",
                            "Parental" => "Unsupported",
                        )
                    )
                )

            );

            $providersEncoded = CXMLCreator::encodeValueLight("Providers", $providers);
            $prup->addChild($providersEncoded);

            $cserver->ShowRawResponse($root, true);

            AddMessage2Log($cserver->GetResponseData());

            return true;
        }

        return false;
    }
}


CWebService

Методы класса

Метод | Описание | С версии
SetComponentContext | Метод запоминает контекст конфигурации компонента ($arParams) для передачи его в контекст вызова метода веб-сервиса. | 8.0.2
GetComponentContext | Метод возвращает контекст конфигурации компонента ($arParams), который предоставляет веб-сервис. Может вызываться из методов веб-сервиса: CWebService::GetComponentContext. | 8.0.2
SOAPServerProcessRequest | Метод вызывает обработчик SOAP сервера для обработки входящего запроса по методу POST. Обработчик вызывается для экземпляра веб-сервиса указанного в параметрах метода. | 8.0.2
RegisterWebService | Метод регистрирует веб-сервис. | 8.0.2
GetSOAPServerRequest | Метод возвращает SOAP запрос (string), который принял SOAP Сервер. | 8.0.2
GetSOAPServerResponse | Метод возвращает ответ (string) SOAP Сервера. | 8.0.2
MethodRequireHTTPAuth | Метод проверяет, пройдена ли HTTP Basic авторизация. Используется для методов веб-сервисов, которые требует авторизацию. | 8.0.2
TestComponent | Метод вызывает IWebService::TestComponent запрашиваемого зарегистрированного веб-сервиса. | 8.0.2
GetWSDL | Метод возвращает автоматически сгенирированный WSDL код (если CWebServiceDesc->wsdlauto равно true). | 8.0.2
GetDefaultEndpoint | Метод возвращает точку доступа (например, http://site.ru/ws.php) для веб-сервиса по умолчанию. | 8.0.2
GetDefaultTargetNS | Метод возвращает пространство имён для веб-сервиса по умолчанию. | 8.0.2
GetWebServiceDeclaration | Метод возвращает экземпляр класса CWebServiceDesc через интерфейс IWebService веб-сервиса. | 8.0.2
GetInterface | Метод возвращает экземпляр класса веб-сервиса, реализующий IWebService. | 8.0.2


RegisterWebService

Веб-сервисы>Классы>CWebService>RegisterWebService (доступен с 8.0.2)

CWebService::RegisterWebService

Описание и параметры

boolean
CWebService::RegisterWebService(string className);

Метод регистрирует веб-сервис. Если операция проведена успешно, возвращается true, иначе false. Нестатический метод.

Если веб-сервис реализован через систему компонентов, то RegisterWebService вызывается автоматически в компоненте webservice.server. В этом случае className = $arParams["WEBSERVICE_NAME"].

Параметры метода

Параметр | Описание
className | Название класса веб-сервиса. реализующего интерфейс IWebService.

Пример использования

// В компоненте webservice.server
CWebService::RegisterWebService($arParams["WEBSERVICE_CLASS"]);

// В компоненте веб-сервиса
$arParams["WEBSERVICE_NAME"] = "bitrix.webservice.checkauth";
// Следующий параметр прямо передается в SOAPServerProcessRequest
$arParams["WEBSERVICE_CLASS"] = "CCheckAuthWS";
$arParams["WEBSERVICE_MODULE"] = "";
$APPLICATION->IncludeComponent(
    "bitrix:webservice.server",
    "",
    $arParams
    );


CWebServiceDesc

Веб-сервис

IWebService
Параметр | Тип | Описание
wsdlauto | boolean | Параметр указывает, нужно ли генерировать WSDL-код автоматически.
wstargetns | string | Пространство имён, например, http://bitrix.ru/
wsendpoint | string | Конечная точка (точка доступа) веб-сервиса - например, http://bitrix.ru/ws/testws.php
classes | array | Описатель методов веб-сервиса.
structTypes | array | Описатель сложных типов данных веб-сервиса (структуры).
classTypes | array | Описатель сложных типов данных, десериализуемых из XML в экземпляры классов.

Класс CWebServiceDesc (описатель веб-сервиса) должен быть полностью инициализирован. Этот класс возвращается методом IWebService::GetWebServiceDesc. После регистрации описателя веб-сервиса, в его экземпляре автоматически создаётся экземпляр SOAP сервера и экземпляр WSDL генератора.

Методы веб-сервисов всегда:

  • принадлежат классу, реализующему веб-сервис;
  • полностью описывают свои исходящие и входящие параметры;
  • строго соблюдают типы входящих\исходящих данных согласно их описанию.

Типы данных

Типы данных используемые методами веб-сервиса могут быть двух типов:

  • Простые типы - string, bool, boolean, int, integer, double, float, number;
  • Сложные типы - массивы, структуры (сериализуются в ассоциативные массивы), классы (сериализуются в экземпляры классов); Описываются с помощью structTypes, classTypes.

Типы данных описываются в трёх местах в описателе веб-сервиса CWebServiceDesc:

  • classes - массивы как параметры методов (см. описание классов);
  • structTypes - структуры;
  • classTypes - классы;

Описание веб-сервиса

Если автоматически генерируется WSDL, то генерируется Document/Literal binding. SOAP сервер поддерживает также исключительное Document/Literal binding. Для всех типов и параметров генерируется XSD схема.

Параметр Описание
classes Этот член класса обязательно должен быть инициализирован. Описывает методы веб-сервиса через его класс, входящие и исходящие параметры. Может оперировать массивами (как сложными типами данных) если указывается атрибут arrType и varType. При этом для массива автоматически создаётся свой тип данных в XSD схеме.

Ассоциативный массив:
$wsdesc->classes = array(
    "Имя класса содержащего метод веб-сервиса" => array(
        "Название метода веб-сервиса" => array(
            // означает что метод публичный
            "type"        => "public",
            "name"        => "Название метода веб-сервиса",
            // описание принимаемых методом параметров
            // "strict" => "no" - значит, что параметр не обязательный.
            //                    Его можно не передавать в soap запросе.
            "input"        => array(
                // "ТипДанных" - название сложного или простого типа данных
                "ИмяПараметра" =>array("varType" => "ТипДанных"[, "strict" => "no"]),
                // Так описываются параметры - массивы
                // varType - название массива (как типа данных, для xsd схемы)
                // arrType - тип элементов массива
                "ИмяПараметра" =>array("varType" => "ArrayOf"."ТипДанных",
                                        "arrType" => "ТипДанных"),
                // Пример передачи сложных типов данных.
                // Сложные типы должны быть описаны в structTypes, classTypes
                "ИмяПараметра" =>array("varType" => "sGenTest"),
                // Пример передачи массива сложного типа (структуры)
                "ИмяПараметра" =>array("varType" => "ArrayOfSGenTest",
                                        "arrType" => "sGenTest")
            ...
            // описание исходящих параметров
            "output"    => array(
                // Здесь может быть описан только один исходящий параметр
                "user" => array("varType" => "ТипДанных")
            ),
            // требуется ли для вызова метода пройти HTTP Basic авторизацию.
            "httpauth" => "Y или N"
        ), ...
    ), ...
);
structTypes Описывает структурные типы данных. В PHP они представлены ассоциативными массивами. В VisualStudio они представлены структурами (или классами).

SOAP сервер десериализует эти типы в ассоциативные массивы. Имена этих типов данных могут быть использованы в описателе параметров методов веб-сервиса в classes. Для этих типов данных автоматически создаётся ComplexType в xsd схеме.

Ассоциативный массив:
$wsdesc->structTypes["ИмяСтруктуры"] =
    array(
        "ИмяПоля" => array("varType" => "ТипДанных"),
        ...
    );
classTypes Описывает классы как типы данных. В PHP, VisualStudio они представленны классами.

SOAP сервер десериализует эти типы в экземпляры описанных классов. На момент десериализации класс должен быть определён (например, в компоненте, реализующем веб-сервис). Имена этих типов данных могут быть использованы в описателе параметров методов веб-сервиса в classes. Для этих типов данных автоматически создается ComplexType в xsd схеме.

Ассоциативный массив:
$wsdesc->classTypes["ИмяКласса"] =
    array(
        "ИмяПоля" => array("varType" => "ТипДанных"),
        ...
    );

Пример использования

В качестве хорошего примера использования CWebServiceDesc, вы можете исследовать вот этот файл: \bitrix\modules\webservice\classes\general\webservice.wsdl.php:

class CCheckAuthWS extends IWebService
{
    ...

    function GetWebServiceDesc()
    {
        $wsdesc = new CWebServiceDesc();
        $wsdesc->wsname = "bitrix.webservice.checkauth";
        $wsdesc->wsclassname = "CCheckAuthWS";
        $wsdesc->wsdlauto = true;
        $wsdesc->wsendpoint = CWebService::GetDefaultEndpoint();
        $wsdesc->wstargetns = CWebService::GetDefaultTargetNS();

        $wsdesc->classTypes = array();
        $wsdesc->structTypes["CUser"] =
        array(
            "ID" => array("varType" => "integer"),
            "NAME" => array("varType" => "string"),
            "TIMESTAMP_X" => array("varType" => "string"),
            "LOGIN" => array("varType" => "string"),
            "PASSWORD" => array("varType" => "string"),
            "CHECKWORD" => array("varType" => "string"),
            "ACTIVE" => array("varType" => "string"),
            "LAST_NAME" => array("varType" => "string"),
            "EMAIL" => array("varType" => "string")
        );

        $wsdesc->classes = array(
            "CCheckAuthWS" => array(
                "CheckAuthorization" => array(
                    "type"        => "public",
                    "name"        => "CheckAuthorization",
                    "input"        => array(
                        "user" =>array("varType" => "string"),
                        "password" =>array("varType" => "string")),
                    "output"    => array(
                        "user" => array("varType" => "CUser")
                        )
                ),
            "GetHTTPUserInfo" => array(
                    "type"        => "public",
                    "name"        => "GetHTTPUserInfo",
                    "input"        => array(),
                    "output"    => array(
                        "user" => array("varType" => "CUser")
                        ),
                    "httpauth" => "Y"
                )
            )
        );

        return $wsdesc;
    }

    ...
}


CXMLCreator

Описание и список методов

Класс представляет собой тег XML-документа, состоящий из атрибутов, дочерних элементов, текстового содержимого и CDATA контента.

Методы класса

Метод | Описание | С версии
CXMLCreator( string tag, boolean cdata ) | Конструктор класса. Принимает в качестве параметра название тега. | 8.0.0
static CXMLCreator createTagAttributed( string heavyTag ) | Метод создаёт тег CXMLCreator из названия тега heavyTag, записанного в особенном формате. | 8.0.0
static CXMLCreator encodeValueLight( string name, AnyType Value ) | Метод создаёт дерево XML документа с именем Name и строением Value. Name - название тега в формате heavyTag метода createTagAttributed. Value может быть любым типом данных, например, последовательностью вложенных ассоциативных массивов. Смотрите пример использования ниже. | 8.0.0
setCDATA | Метод устанавливает CDATA-контент тега. | 8.0.0
setAttribute | Метод устанавливает атрибут тега. | 8.0.0
setData | Метод устанавливает текстовое содержимое тега. | 8.0.0
setName | Метод устанавливает название тега. | 8.0.0
addChild | Метод добавляет элемент XML документа в список своих детей. | 8.0.0
getChildrenCount | Метод возвращает количество подчинённых элементов XML документа. | 8.0.0
getXML | Метод возвращает XML документ в виде строки. | 8.0.0
getXMLHeader | Метод возвращает заголовок XML документа. | 8.0.0

Пример

Пример применения в обработчике SOAP запросов SOAP сервера

class CMSSOAPResearch extends CSOAPServerResponser
{
    ...

    function ProcessRequestBody(&$cserver, $body)
    {
        $functionName = $body->name();
        $namespaceURI = $body->namespaceURI();
        $requestNode = $body;

        if ($functionName == "Registration")
        {
            $root = new CXMLCreator("RegistrationResponse");
            $root->setAttribute("xmlns", "urn:Microsoft.Search");

            $regres = new CXMLCreator("RegistrationResult");
            $root->addChild($regres);

            $prup = new CXMLCreator("ProviderUpdate");
            $prup->setAttribute("xmlns", "urn:Microsoft.Search.Registration.Response");
            $prup->setAttribute("revision", "1");
            $prup->setAttribute("build", "1");
            $regres->addChild($prup);

            $stat = new CXMLCreator("Status");
            $stat->setData("SUCCESS");
            $prup->addChild($stat);

            $providers = array(

                "Provider" => array (
                    "Message" => "Тестовая служба.",
                    "Id" => "{$this->provider_id}",
                    "Name" => "Тестовая служба. {$this->add_tittle}",
                    "QueryPath" => $this->query_path,
                    "RegistrationPath" => $this->registration_path,
                    "AboutPath" => "http://www.bitrix.ru/",
                    "Type" => "SOAP",
                    "Revision" => "1",
                    "Services" => array(
                        "Service" => array(
                            "Id" => "{$this->service_id}",
                            "Name" => "Тестовая служба. {$this->add_tittle}",
                            "Description" => "Тестовая служба для тестирования soap сервера.",
                            "Copyright" => "(c) Bitrix.",
                            "Display" => "On",
                            "Category" => "ECOMMERCE_GENERAL",
                            "Parental" => "Unsupported",
                        )
                    )
                )

            );

            $providersEncoded = CSOAPRequest::encodeValueLight("Providers", $providers);
            $prup->addChild($providersEncoded);

            ...

            return true;
        }

        return false;
    }
}


createTagAttributed

Веб-сервисы>Классы>CXMLCreator>createTagAttributed (доступен с 8.0.0)

CXMLCreator::createTagAttributed

Описание и параметры

static
CXMLCreator
CXMLCreator::createTagAttributed(string heavyTag);

Статический метод возвращает созданный тэг CXMLCreator из названия heavyTag, записанного в особенном формате. Если формат heavyTag неверен, возвращается true.

Параметры метода

Параметр | Описание
heavyTag | Строка названия тэга в формате: [Индекс:]НазваниеТэга [Атрибут="Значение атрибута" ...] Индекс - число, помогающее поместить в ассоциативном массиве сразу несколько тегов с одинаковым названием. Атрибут может быть записан в виде: симв:симв = "Значение"

Пример использования

CXMLCreator::createTagAttributed( "LicenseInfo xmlns=\"http://ws.strikeiron.com\"");

// Или
CXMLCreator::encodeValueLight( "LicenseInfo xmlns=\"http://ws.strikeiron.com\"",
array(
    "1:ArrayOfStringEl" => "Строка1",
    "2:ArrayOfStringEl" => "Строка2"
    )
);


IWebService

Методы интерфейса IWebService

Метод | Описание | С версии
GetWebServiceDesc | Возвращает класс, полностью описывающий веб-сервис (методы, типы данных, ...). | 8.0.2
TestComponent | Метод внутреннего авто-тестирования веб-сервиса. | 8.0.2

IWebService - интерфейс, через который регистрируется веб-сервис в CWebService. Класс, реализующий веб-сервис, должен наследовать этот интерфейс.


GetWebServiceDesc

CWebServiceDesc
IWebService::GetWebServiceDesc();

Метод возвращает экземпляр класса CWebServiceDesc - описателя веб-сервиса. [dw]Статический метод[/dw][di]С версии 21.0.0[/di].


TestComponent

void
IWebService::TestComponent();

Метод запускает внутреннее тестирование веб-сервиса с использованием SOAP клиента. Этот метод вызывается из публичной части веб-сервиса. Нестатический метод.

class CCheckAuthWS extends IWebService
{
    ...

    function TestComponent()
    {
        global $APPLICATION;
        $client = new CSOAPClient("bitrix.soap", $APPLICATION->GetCurPage());

        // HTTP Authorization required by GetHTTPUserInfo method
        $client->setLogin("admin");
        $client->setPassword("123456");
        $request = new CSOAPRequest("GetHTTPUserInfo", CWebService::GetDefaultTargetNS());

        //$request->addParameter("stub", 0);
        $response = $client->send( $request );
        if ($response->FaultString)
            echo $response->FaultString;
        else
            echo "Call GetHTTPUserInfo():
".mydump($response->Value)."
";

    }

    ...
}


Для разработчиков

Описание

Данный раздел содержит информацию для веб-разработчиков, использующих модуль Веб-формы для решения задач, выходящих за рамки возможностей стандартных компонентов модуля.

Модуль Веб-формы обеспечивает:

  • Наглядный интерфейс создания веб-форм, включающий в себя:
    • формирование списка вопросов и ответов на них;
    • формирование списка дополнительных полей;
    • формирование списка статусов результатов веб-формы;
    • распределение прав доступа на веб-форму и каждый статус в отдельности.
  • Вывод веб-формы для заполнения.
  • Сохранение значений ответов на вопросы веб-формы в виде результатов.
  • Выполнение ряда вспомогательных действий в момент сохранения результата:
    • проверка введенных данных на корректность;
    • отсылка данных результата посредством электронной почты;
    • создание события в модуле Статистика.
  • Вывод результатов в виде списка, а также возможность выполнения следующих действий:
    • редактирование и обновление результата;
    • смена статуса результата;
    • удаление результата;
    • фильтрация результатов по настраиваемому набору вопросов и полей.

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("form")){
//здесь можно использовать функции и классы модуля
}
?>

Компоненты 2.0

Модуль включает в себя следующие Компоненты 2.0:
Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Веб-форма (комплексный компонент) | form | Компонент, создавая физически только одну страницу, позволяет получить несколько страниц: заполнение веб-формы, со списком результатов, редактирование результата, просмотр результата и т.д.
Редактирование результата | form.result.edit | Служит для редактирования результатов заполнения веб-форм.
Список результатов | form.result.list | Предназначен для вывода списка результатов выбранной веб-формы.
Список своих результатов | form.result.list.my | Выводит список своих результатов по нескольким формам.
Заполнение веб-формы | form.result.new | Служит для вывода формы и добавления результата, т.е. для ее заполнения.
Просмотр результата | form.result.view | Служит для просмотра результата заполнения веб-формы.


Имена HTML полей веб-форм

Вопросы веб-формы

При выводе веб-формы все ответы на вопросы представляются в виде HTML полей, заполняя которые, пользователи отвечают на тот или иной вопрос. Ниже представлена таблица зависимости имен HTML-полей от типов ответов.

Тип ответа | Описание | Имя HTML поля | Значение ответа
text | Однострочное текстовое поле. | form_text_answer_id | Текст, введенный с клавиатуры.
textarea | Многострочное текстовое поле. | form_textarea_answer_id | Текст, введенный с клавиатуры.
password | Однострочное текстовое поле для ввода пароля. | form_password_answer_id | Текст, введенный с клавиатуры.
date | Однострочное текстовое поле для ввода даты. | form_date_answer_id | Текст, введенный с клавиатуры.
radio | Переключатель одиночного выбора. | form_radio_question_sid | ID выбранного ответа.
dropdown | Выпадающий список одиночного выбора. | form_dropdown_question_sid | ID выбранного ответа.
checkbox | Флаг множественного выбора. | form_checkbox_question_sid[] | Массив ID выбранных ответов.
multiselect | Список множественного выбора. | form_multiselect_question_sid[] | Массив ID выбранных ответов.
file | Поле для ввода произвольного файла. | form_file_answer_id | Массив, описывающий загруженный файл.
image | Поле для ввода изображения. | form_image_answer_id | Массив, описывающий загруженный файл.
hidden * | Скрытое поле. | form_hidden_answer_id | Данные из скрытого поля формы.
* - доступно только для упрощенного режима редактирования веб-форм
Принятые обозначения
  • answer_id - ID ответа;
  • question_sid - символьный идентификатор вопроса.

Поля веб-формы

Помимо ответов на вопросы веб-формы, необходимо выводить и редактировать значения полей веб-формы. Ниже представлена таблица зависимости имен HTML полей от типов поля веб-формы.

Тип поля | Описание | Имя HTML поля | Значение
text | Текст | form_textarea_ADDITIONAL_field_id | Текст, введенный с клавиатуры.
integer | Число | form_text_ADDITIONAL_field_id | Текст, введенный с клавиатуры.
date | Дата | form_date_ADDITIONAL_field_id | Текст, введенный с клавиатуры.
Принятые обозначения
  • field_id - ID поля веб-формы.

Смотрите также

  • CForm::GetTextField
  • CForm::GetTextAreaField
  • CForm::GetPasswordField
  • CForm::GetDateField
  • CForm::GetRadioField
  • CForm::GetCheckBoxField
  • CForm::GetDropDownField
  • CForm::GetMultiSelectField
  • CForm::GetFileField
  • CFormResult::GetDataByIDForHTML


Обработчики статусов

Введение

Каждый результат в обязательном порядке должен обладать тем или иным статусом. При создании результата новый статус назначается в соответствии с флагом Присваивать данный статус всем новым документам по умолчанию (данный флаг может быть установлен только у одного статуса). В процессе работы статус у результата может меняться.

Для того, чтобы перехватить и обработать подобные смены статусов, в модуле Веб-формы существует возможность указать файл-обработчик каждой такой смены. В коде такого обработчика можно использовать любую функцию системы и выполнять любое действие, например:

  • создавать почтовые события, предназначенные для отправки e-mail сообщений;
  • производить привязку пользователя, изменившего статус, к другой группе пользователей (например, для того, чтобы открыть доступ к определённым частям сайта);
  • другие действия.

Файлы-обработчики

Файлы-обработчики представляют собой PHP-скрипты, которые подключаются в момент смены статуса. Они могут располагаться в любом каталоге относительно корня сайта; например, в каталоге /bitrix/php_interface/include/form/handlers/.

Для того, чтобы задать файл-обработчик, необходимо перейти на страницу редактирования параметров того или иного статуса. На данной странице будут доступны следующие параметры:

  • Файл-обработчик смены данного статуса на какой либо другой (либо удаление результата) - данный параметр может содержать путь относительно корня к файлу-обработчику, который будет подключен при смене у какого-либо результата данного статуса на иной статус; также он будет подключен при удалении результата, находящегося в данном статусе;
  • Файл-обработчик смены какого либо статуса на данный (либо добавление нового результата) - данный параметр может содержать путь относительно корня к файлу-обработчику, который будет подключен при смене у результата произвольного статуса на данный; также он будет подключен при создании нового результата и установки у него данного статуса.

Доступные переменные

Для обработчика, указанного в параметре "Файл-обработчик смены данного статуса на какой либо другой (либо удаление результата)", будут доступны следующие переменные.

Переменная | Описание
$CURRENT_STATUS_ID | ID текущего статуса результата (до его смены).
$NEW_STATUS_ID | ID нового статуса, на который будет произведена смена.
$RESULT_ID | ID результата, над которым происходит действие по смене статуса.
$arResult | Массив, описывающий поля этого результата.
$ACTION Символьный код действия, производимого над результатом. Допустимы следующие значения:
  • UPDATE - результат был обновлен (модифицирован);
  • SET_STATUS - у результата напрямую сменили статус (например, из списка результатов);
  • DELETE - результат был удален.

Для обработчика, указанного в параметре "Файл-обработчик смены какого либо статуса на данный (либо добавление нового результата)", будут доступны следующие переменные.

Переменная | Описание
$CURRENT_STATUS_ID | ID текущего статуса.
$PREV_STATUS_ID | ID предыдущего статуса.
$RESULT_ID | ID результата, над которым происходит действие по смене статуса.
$arResult | Массив, описывающий поля этого результата.
$ACTION Символьный код действия, производимого над результатом. Допустимы следующие значения:
  • UPDATE - результат был обновлен (модифицирован);
  • SET_STATUS - у результата напрямую сменили статус (например, из списка результатов);
  • ADD - был добавлен новый результат.


Права модуля веб-форм

Права на модуль

Права на модуль "Веб-формы" задаются для групп пользователей и регулируют доступ к административной части модуля. Права могут быть следующих видов (в порядке возрастания уровня доступа):

  • [D] доступ закрыт - доступ к административной части модуля закрыт;
  • [R] доступ открыт - доступ к административной части модуля открыт;
  • [W] полный доступ - полный административный доступ на весь модуль и на все веб-формы модуля.
Каждый пользователь может обладать только одним из вышеперечисленных прав доступа, которое является для него максимальным.

Права на веб-форму

Права на каждую веб-форму позволяют разграничить доступ пользователей к той или иной веб-форме и ее результатам. Права могут быть следующих видов (в порядке возрастания уровня доступа):

  • 1 - доступ закрыт (форма и ее результаты полностью недоступны);
  • 10 - заполнение формы (посетитель может только заполнить и сохранить форму);
  • 15 - редактирование своего результата (посетитель получает возможность видеть список своих результатов, который он может фильтровать и сортировать; также посетитель может просмотреть, изменить и удалить свой результат);
  • 20 - просмотр всех результатов (посетитель получает возможность просмотра всех активных результатов);
  • 25 - редактирование всех результатов и просмотр настроек формы (посетитель получает возможность просмотра и редактирования всех результатов в зависимости от их статусов; также, если у него открыт доступ к административной части модуля, у него есть доступ на просмотр настроек формы);
  • 30 - полный доступ (включает в себя все вышеописанные права, а также право на изменение настроек формы).
Каждый пользователь может обладать только одним из вышеперечисленных прав доступа, которое является для него максимальным.

Права на результат (статус)

Права на результат определяются статусом, в котором находится тот или иной результат. Соответственно, данные права задаются в настройках того или иного статуса и могут быть следующих видов:

  • VIEW - право на просмотр результатов в данном статусе;
  • MOVE - право на перевод результатов в данный статус;
  • EDIT - право на редактирование результатов в данном статусе;
  • DELETE - право на удаление результатов в данном статусе.
Один пользователь может обладать одним и более из вышеперечисленных прав доступа.


Создание собственных валидаторов полей веб-форм

Структура валидатора

Валидатор представляет собой класс или набор функций следующей структуры:

Метод | Описание
Описание валидатора | Функция, передающая обработчику валидаторов описание валидатора, названия методов и пр.
Настройки валидатора | Функция, возвращающая массив настроек валидатора.
Обработка настроек | Набор функций, отвечающий за подготовку настроек к занесению в БД и обратное преобразование.
Функция валидации | Собственно, валидатор.

Поскольку работать с набором отдельных функций неудобно, рекомендуется объединить их в класс (пространство имен). Исходя из этой рекомендации будет идти дальнейшее описание, а также, реализован приводимый пример. В примере валидатор "Число в промежутке" реализован в виде класса CFormCustomValidatorNumberEx.

Описание валидатора

Описание валидатора представляет собой метод, возвращающий ассоциативный массив следующей структуры:

Параметр | Описание
NAME | Уникальный строковой идентифкатор валидатора.
DESCRIPTION | Название валидатора.
TYPES | Массив типов полей, к которым применим валидатор.
SETTINGS | Название метода, возвращающего массив настроек валидатора. Не обязателен. В случае реализации валидатора в виде класса, значение представляет собой массив ("имя_класса", "имя_метода").
CONVERT_TO_DB | Название метода, отвечающего за проверку параметров валидатора и преобразование массива настроек в строку для сохранения. Не обязателен, если валидатор не имеет настроек. В случае реализации валидатора в виде класса, значение представляет собой массив ("имя_класса", "имя_метода").
CONVERT_FROM_DB | Название метода, отвечающего за обратное преобразование строки параметров валидатора в массив. Не обязателен, если валидатор не имеет настроек. В случае реализации валидатора в виде класса, значение представляет собой массив ("имя_класса", "имя_метода").
HANDLER | Название основного метода, отвечающего собственно за валидацию значения поля. В случае реализации валидатора в виде класса, значение представляет собой массив ("имя_класса", "имя_метода").

Пример:

function GetDescription()
{
  return array(
    "NAME"            => "custom_number_ex",                                   // идентификатор
    "DESCRIPTION"     => "Число в промежутке",                                 // наименование
    "TYPES"           => array("text", "textarea"),                            // типы полей
    "SETTINGS"        => array("CFormCustomValidatorNumberEx", "GetSettings"), // метод, возвращающий массив настроек
    "CONVERT_TO_DB"   => array("CFormCustomValidatorNumberEx", "ToDB"),        // метод, конвертирующий массив настроек в строку
    "CONVERT_FROM_DB" => array("CFormCustomValidatorNumberEx", "FromDB"),      // метод, конвертирующий строку настроек в массив
    "HANDLER"         => array("CFormCustomValidatorNumberEx", "DoValidate")   // валидатор
  );
}

Параметры валидатора

Метод, заданный элементом SETTINGS, должен возвращать массив элементов вида:

"имя_параметра" => array(
    "TITLE"   => "название_параметра",
    "TYPE"    => "тип_параметра",
    "DEFAULT" => "значение_по_умолчанию",
    "VALUES"  => array(
        "значение1" => "наименование_значения1",
        "значение2" => "наименование_значения2",
        "значение3" => "наименование_значения3"
    )
)
Параметр | Описание
имя_параметра | Ключом массива является уникальное в рамках данного валидатора строковое наименование параметра.
TITLE | Наименование параметра
TYPE Тип поля для ввода значения параметра. Может принимать следющие значения:
  • TEXT - обычное текстовое поле;
  • CHECKBOX - галочка. Результатом будет значение {Y|N};
  • DROPDOWN - выпадающий список;
  • DATE - поле для ввода даты.
DEFAULT | Значение параметра по умолчанию.
VALUES | Массив элементов вида "значение" => "наименование значения" для параметров типа DROPDOWN

Пример:

function GetSettings()
{
  return array(
    "NUMBER_FROM" => array(
      "TITLE"   => "Нижний порог числа",
      "TYPE"    => "TEXT",
      "DEFAULT" => "0",
    ),

    "NUMBER_TO" => array(
      "TITLE"   => "Верхний порог числа",
      "TYPE"    => "TEXT",
      "DEFAULT" => "100",
    ),

    "NUMBER_FLOAT" => array(
      "TITLE"   => "Не только целое",
      "TYPE"    => "CHECKBOX",
      "DEFAULT" => "Y",
    ),
  );
}

Обработка параметров

Обработка параметров валидатора требует двух методов, задаваемых в описании параметрами CONVERT_TO_DB и CONVERT_FROM_DB. Первый из них получает на вход массив значений параметров и должен вернуть их строковое представление. Второй - совершить обратное преобразование. Оба метода могут также совершать произвольные манипуляции со значениями параметров.

Пример:

function ToDB($arParams)
{
  // проверка переданных параметров
  $arParams["NUMBER_FLOAT"] = $arParams["NUMBER_FLOAT"] == "Y" ? "Y" : "N";
  $arParams["NUMBER_FROM"]  = $arParams["NUMBER_FLOAT"] == "Y" ? floatval($arParams["NUMBER_FROM"]) : intval($arParams["NUMBER_FROM"]);
  $arParams["NUMBER_TO"]    = $arParams["NUMBER_FLOAT"] == "Y" ? floatval($arParams["NUMBER_TO"]) : intval($arParams["NUMBER_TO"]);

  // перестановка значений порогов, если требуется
  if ($arParams["NUMBER_FROM"] > $arParams["NUMBER_TO"])
  {
    $tmp                     = $arParams["NUMBER_FROM"];
    $arParams["NUMBER_FROM"] = $arParams["NUMBER_TO"];
    $arParams["NUMBER_TO"]   = $tmp;
  }

  // возвращаем сериализованную строку
  return serialize($arParams);
}

function FromDB($strParams)
{
  // никаких преобразований не требуется, просто вернем десериализованный массив
  return unserialize($strParams);
}

Валидатор

Основной метод получает на вход 4 параметра: массив параметров валидатора, массив параметров вопроса, массив ответов вопроса и массив значений ответов. Он должен вернуть true в случае успешной валидации значения и false в случае ошибки. Текст ошибки возвращается посредством CMain::ThrowException(). В тексте ошибки можно использовать шаблон #FIELD_NAME# для получения названия поля, в котором произошла ошибка.

Пример:

function DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
{
  global $APPLICATION;

  foreach ($arValues as $value)
  {
    // пустые значения пропускаем
    if (strlen($value) <= 0) continue;

    // приведем значение к числу
    $value = $arParams["NUMBER_FLOAT"] == "Y" ? floatval($value) : intval($value);

    // проверим нижний порог числа
    if (strlen($arParams["NUMBER_FROM"]) > 0 && $value < intval($arParams["NUMBER_FROM"]))
    {
      // вернем ошибку
      $APPLICATION->ThrowException("#FIELD_NAME#: слишком маленькое значение");
      return false;
    }

    // проверим верхний порог числа
    if (strlen($arParams["NUMBER_TO"]) > 0 && $value > intval($arParams["NUMBER_TO"]))
    {
      // вернем ошибку
      $APPLICATION->ThrowException("#FIELD_NAME#: слишком большое значение");
      return false;
    }
  }

  // все значения прошли валидацию, вернем true
  return true;
}

Обратите внимание: при обработке значений полей перечислимых типов (dropdown, multiselect, radio, checkbox) валидатор получит на вход массив ID выбранных ответов.

Интеграция валидатора

Класс валидатора должен подключаться в любом месте, в котором он будет доступен из административной панели и в публичной части (подробнее см. порядок выполнения страниц), например, в /bitrix/php_interface/init.php. Непосредственно, файл валидатора может находиться где угодно, например, в /bitrix/php_interface/include/form/validators/. Подключение валидатора производится установкой описательной функции валидатора в качестве обработчика события onFormValidatorBuildList.

Пример

Подытожив все вышесказанное, сформируем валидатор. Класс валидатора расположим в файле /bitrix/php_interface/include/form/validators/val_num_ex.php

<?
// Листинг файла /bitrix/php_interface/include/form/validators/val_num_ex.php

class CFormCustomValidatorNumberEx
{
  function GetDescription()
  {
    return array(
      "NAME"            => "custom_number_ex",                                   // идентификатор
      "DESCRIPTION"     => "Число в промежутке",                                 // наименование
      "TYPES"           => array("text", "textarea"),                            // типы полей
      "SETTINGS"        => array("CFormCustomValidatorNumberEx", "GetSettings"), // метод, возвращающий массив настроек
      "CONVERT_TO_DB"   => array("CFormCustomValidatorNumberEx", "ToDB"),        // метод, конвертирующий массив настроек в строку
      "CONVERT_FROM_DB" => array("CFormCustomValidatorNumberEx", "FromDB"),      // метод, конвертирующий строку настроек в массив
      "HANDLER"         => array("CFormCustomValidatorNumberEx", "DoValidate")   // валидатор
    );
  }

  function GetSettings()
  {
    return array(
      "NUMBER_FROM" => array(
        "TITLE"   => "Нижний порог числа",
        "TYPE"    => "TEXT",
        "DEFAULT" => "0",
      ),

      "NUMBER_TO" => array(
        "TITLE"   => "Верхний порог числа",
        "TYPE"    => "TEXT",
        "DEFAULT" => "100",
      ),

      "NUMBER_FLOAT" => array(
        "TITLE"   => "Не только целое",
        "TYPE"    => "CHECKBOX",
        "DEFAULT" => "Y",
      ),
    );
  }

  function ToDB($arParams)
  {
    // проверка переданных параметров
    $arParams["NUMBER_FLOAT"] = $arParams["NUMBER_FLOAT"] == "Y" ? "Y" : "N";
    $arParams["NUMBER_FROM"]  = $arParams["NUMBER_FLOAT"] == "Y" ? floatval($arParams["NUMBER_FROM"]) : intval($arParams["NUMBER_FROM"]);
    $arParams["NUMBER_TO"]    = $arParams["NUMBER_FLOAT"] == "Y" ? floatval($arParams["NUMBER_TO"]) : intval($arParams["NUMBER_TO"]);

    // перестановка значений порогов, если требуется
    if ($arParams["NUMBER_FROM"] > $arParams["NUMBER_TO"])
    {
      $tmp                     = $arParams["NUMBER_FROM"];
      $arParams["NUMBER_FROM"] = $arParams["NUMBER_TO"];
      $arParams["NUMBER_TO"]   = $tmp;
    }

    // возвращаем сериализованную строку
    return serialize($arParams);
  }

  function FromDB($strParams)
  {
    // никаких преобразований не требуется, просто вернем десериализованный массив
    return unserialize($strParams);
  }

  function DoValidate($arParams, $arQuestion, $arAnswers, $arValues)
  {
    global $APPLICATION;

    foreach ($arValues as $value)
    {
      // пустые значения пропускаем
      if (strlen($value) <= 0) continue;

      // приведем значение к числу
      $value = $arParams["NUMBER_FLOAT"] == "Y" ? floatval($value) : intval($value);

      // проверим нижний порог числа
      if (strlen($arParams["NUMBER_FROM"]) > 0 && $value < intval($arParams["NUMBER_FROM"]))
      {
        // вернем ошибку
        $APPLICATION->ThrowException("#FIELD_NAME#: слишком маленькое значение");
        return false;
      }

      // проверим верхний порог числа
      if (strlen($arParams["NUMBER_TO"]) > 0 && $value > intval($arParams["NUMBER_TO"]))
      {
        // вернем ошибку
        $APPLICATION->ThrowException("#FIELD_NAME#: слишком большое значение");
        return false;
      }
    }

    // все значения прошли валидацию, вернем true
    return true;
  }
}

// установим метод CFormCustomValidatorNumberEx в качестве обработчика события
AddEventHandler("form", "onFormValidatorBuildList", array("CFormCustomValidatorNumberEx", "GetDescription"));
?>

После этого остается только вставить в /bitrix/php_interface/init.php строку

include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/form/validators/val_num_ex.php");

Смотрите также

  • Класс CFormValidator
  • AddEventHandler
    •


Список терминов

Иерархическая схема сущностей модуля

Веб-форма
Синонимами (реализациями) данного термина можно считать такие сущности, как "анкета" и "опросный лист". Веб-форма представляет из себя совокупность:
  • списка вопросов;
  • списка ответов на вопросы;
  • списка дополнительных полей веб-формы;
  • списка возможных статусов для результатов веб-формы.

Веб-форма может быть выведена на экран, заполнена и сохранена в виде результата.

На веб-форму можно установить различные права доступа для групп пользователей:

  • 1 - доступ закрыт (форма и ее результаты полностью недоступны);
  • 10 - заполнение формы (посетитель может только заполнить и сохранить форму);
  • 15 - редактирование своего результата (посетитель получает возможность видеть список своих результатов, который он может фильтровать и сортировать; также посетитель может просмотреть, изменить и удалить свой результат);
  • 20 - просмотр всех результатов (посетитель получает возможность просмотра всех активных результатов);
  • 25 - редактирование всех результатов и просмотр настроек формы (посетитель получает возможность просмотра и редактирования всех результатов в зависимости от их статусов, а также, если у него открыт доступ к административной части модуля - доступ на просмотр настроек формы);
  • 30 - полный доступ (включает в себя все вышеописанные права, а также право на изменение настроек формы).
Один пользователь может обладать только одним из вышеприведенных прав доступа (которое является для него максимальным).

К веб-форме можно приписать ряд почтовых шаблонов, по которым будут создаваться почтовые события при заполнении и сохранении веб-формы.

Поле
При заполнения веб-формы выводятся только вопросы и ответы на них. Когда пользователь заполнит веб-форму и нажмет кнопку Сохранить, значения ответов будут сохранены в виде результата. Зачастую возникает необходимость в расчёте и сохранении какой либо величины на основе данных, полученных от пользователя, заполнившего веб-форму. Для хранения подобных рассчитанных величин предназначена данная сущность - поле веб-формы.

Вопрос
Представляет из себя совокупность:
  • непосредственно текста вопроса;
  • типа текста вопроса [text|html];
  • изображение вопроса;
  • списка ответов;
  • настроек, связанных с отображением вопроса в списке результатов;
  • настроек, связанных с отображением полей для фильтрации результатов по значениям ответов на данный вопрос.

Ответ
Каждый вопрос веб-формы подразумевает набор HTML-полей предназначенных для ввода ответа на данный вопрос. Каждое такое HTML-поле является ответом. Таким образом, ответ (в терминологии данного модуля) подразумевает совокупность таких понятий как:
  • параметр ANSWER_TEXT (выводится рядом с HTML полей в качестве подписи к этому полю);
  • параметр ANSWER_VALUE (используется для внутренних служебных целей, например, при расчёте значений полей веб-формы);
  • тип, который может принимать следующие значения:
    • text - однострочное текстовое поле;
    • textarea - многострочное текстовое поле;
    • radio - переключатель одиночного выбора (radio-кнопка);
    • checkbox - флаг множественного выбора (checkbox);
    • dropdown - элемент выпадающего списка одиночного выбора;
    • multiselect - элемент списка множественного выбора;
    • date - поле для ввода даты;
    • image - поле для загрузки изображения;
    • file - поле для загрузки произвольного файла;
    • password - поле для ввода пароля.
  • ширина;
  • высота;
  • дополнительные параметры.
Результат
После того, как пользователь заполнит веб-форму и нажмет Сохранить, все значения ответов будут сохранены в базу данных в виде результата. Если разработчик предусмотрит использование полей, то предварительно рассчитанные значения этих полей могут быть также записаны в результат. Каждый результат в обязательном порядке должен обладать тем или иным статусом, регулирующим права доступа к данному результату. Таким образом, результат - это совокупность:
  • значений ответов на вопросы веб-формы;
  • значений полей веб-формы;
  • значения статуса.
Статус
Основная задача статуса - разграничение прав доступа на результат для каждой из групп пользователей.

Права доступа для статуса могут быть следующих видов:

  • VIEW - право на просмотр результатов в данном статусе;
  • MOVE - право на перевод результатов в данный статус;
  • EDIT - право на редактирование результатов в данном статусе;
  • DELETE - право на удаление результатов в данном статусе.

Один пользователь может обладать одним и более из вышеперечисленных прав доступа.

Таким образом, каждый результат в обязательном порядке должен иметь тот или иной статус. При создании нового результата, его новый статус будет равен статусу, в настройках которого установлен флаг Присваивать данный статус всем новым документам по умолчанию.

Валидатор

Валидатор - это набор функций, предназначенных для проверки соответствия дополнительным условиям значений ответов на вопросы формы.

Для каждого валидатора задается список типов вопросов, к которым применим данный валидатор. К вопросам, содержащим ответы разных типов валидаторы не могут быть применены.

Существует возможность создавать собственные валидаторы с любой функциональностью для любых типов полей. Подробнее см. руководство по созданию валидаторов.


Классы

Класс | Описание | С версии
CForm | Класс для работы с веб-формами. | 3.1.1
CFormAnswer | Класс для работы с ответами. | 4.0.4
CFormField | Класс для работы с вопросами и полями. | 4.0.4
CFormOutput | Класс для работы с шаблонами форм. | 5.1.1
CFormResult | Класс для работы с результатами. | 3.3.10
CFormStatus | Класс для работы со статусами. | 4.0.4
CFormValidator | Класс для работы с валидаторами. | 6.0.0


Класс CForm

CForm - класс для работы с веб-формами.

Поля

Поле | Тип | Описание
ID | int | Идентификатор веб-формы.
SID | varchar(50) | Символьный идентификатор веб-формы.
TIMESTAMP_X | datetime | Время последнего изменения веб-формы.
NAME | varchar(255) | Заголовок веб-формы.
BUTTON | varchar(255) | Подпись на кнопки при заполнении веб-формы или редактировании результата.
C_SORT | int | Индекс сортировки.
IMAGE_ID | int | ID изображения веб-формы.
DESCRIPTION | varchar(2000) | Описание веб-формы.
DESCRIPTION_TYPE | varchar(4) | Тип описания веб-формы ("text" или "html").
MAIL_EVENT_TYPE | varchar(50) | Идентификатор типа почтового события.
FILTER_RESULT_TEMPLATE | varchar(2000) | Путь к скрипту, отображающему фильтр по результатам веб-форм в административной части модуля.
TABLE_RESULT_TEMPLATE | varchar(2000) | Путь к скрипту, отображающему таблицу результатов веб-форм в административной части модуля.
STAT_EVENT1 | varchar(255) | Идентификатор EVENT1 типа события для модуля "Статистика".
STAT_EVENT2 | varchar(255) | Идентификатор EVENT2 типа события для модуля "Статистика".
STAT_EVENT3 | varchar(255) | Дополнительный параметр события для модуля "Статистика".

Методы для работы с веб-формой

Метод | Описание | С версии
Set | Добавляет новую веб-форму, либо обновляет параметры существующей. | 4.0.4
SetMailTemplate | Создает тип почтового события и почтовые шаблоны для веб-формы. |
GetList | Возвращает список веб-форм. |
GetByID | Возвращает параметры веб-формы по ее цифровому идентификатору. |
GetBySID | Возвращает параметры веб-формы по ее символьному идентификатору. | 3.3.10
GetDataByID | Возвращает массивы, описывающие вопросы и поля веб-формы. |
GetResultAnswerArray | Возвращает массивы, описывающие вопросы и поля веб-формы, а также ответы и их значения. |
GetPermission | Возвращает право пользователя на веб-форму. |
Copy | Копирует веб-форму. | 4.0.4
Reset | Удаляет все результаты веб-формы. |
Delete | Удаляет веб-форму и все ее результаты. |
Check | Проверяет введенные значения на обязательность, правильность формата даты и правильность типа файла. |

Методы, возвращающие HTML код полей фильтра

Метод | Описание | С версии
GetTextFilter | Однострочное текстовое поле для фильтрации текстовых значений. |
GetDateFilter | Два поля для ввода интервала дат. |
GetDropDownFilter | Выпадающий список одиночного выбора. |
GetNumberFilter | Два поля для ввода числового интервала. |
GetExistFlagFilter | Флаг, используемый для фильтрации по факту существования ответа на вопрос. | 4.0.4

Методы, возвращающие HTML код полей для ввода ответов на вопросы веб-формы

Метод | Описание | С версии
GetTextField | Однострочное текстовое поле для ввода текста. |
GetTextAreaField | Многострочное текстовое поле для ввода текста. |
GetPasswordField | Однострочное текстовое поле для ввода пароля. | 3.3.0
GetDateField | Поле для ввода даты. |
GetRadioField | Переключатель одиночного выбора. |
GetCheckBoxField | Флаг множественного выбора. |
GetDropDownField | Выпадающий список одиночного выбора. |
GetMultiSelectField | Список множественного выбора. |
GetFileField | Поле для ввода файла. |

Методы получения текущего значения поля

Метод | Описание | С версии
GetTextValue | Возвращает текущее значение для однострочного текстового поля. |
GetTextAreaValue | Возвращает текущее значение для многострочного текстового поля. |
GetPasswordValue | Возвращает текущее значение для поля ввода пароля. | 3.3.0
GetDateValue | Возвращает текущее значение для поля ввода даты. |
GetRadioValue | Возвращает текущее значение для переключателя одиночного выбора. |
GetCheckBoxValue | Возвращает текущее значение для флага множественного выбора. |
GetDropDownValue | Возвращает текущее значение для выпадающего списка одиночного выбора. |
GetMultiSelectValue | Возвращает текущее значение для списка множественного выбора. |

Дополнительные методы

Метод | Описание | С версии
IsAdmin | Возвращает "true", если текущий пользователь имеет административные права на модуль Веб-формы, в противном случае - "false". | 4.0.4


Check

Веб-формы>Классы>CForm>Check (3.1.1)

CForm::Check

Описание и параметры

mixed
CForm::Check(
 int form_id,
 array values = false,
 int result_id = false,
 string check_rights = "Y",
 string return_array = "N"
)

Метод проверяет введенные значения на обязательность, правильность формата даты и правильность типа файла. При необходимости проверяются права текущего пользователя. В случае неудачи - возвращает текст ошибки. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
form_id | ID веб-формы.
values Массив значений введенных в веб-форме.
Параметр необязательный. По умолчанию - "false" (использовать стандартный массив $_REQUEST).

Пример:
Array
(
    [form_text_586] => Иванов Иван Иванович
    [form_date_587] => 10.03.1992
    [form_textarea_588] => г. Мурманск
    [form_radio_VS_MARRIED] => 589
    [form_checkbox_VS_INTEREST] => Array
        (
            [0] => 592
            [1] => 593
            [2] => 594
        )

    [form_dropdown_VS_AGE] => 597
    [form_multiselect_VS_EDUCATION] => Array
        (
            [0] => 603
            [1] => 604
        )

    [form_text_606] => 2345
    [form_image_607] => 1045
    [form_file_607] => 1049
)
result_id Если данный метод вызывается для проверки полей при редактировании результата, то в данном параметре необходимо указать его ID.
Параметр необязательный. По умолчанию - "false" (новый результат). 		3.3.10
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для успешной проверки прав, производимой данным методом, пользователь должен обладать как минимум правом [10] Заполнение формы на форму, указанную в параметре form_id.
Параметр необязательный. По умолчанию - "Y" (права необходимо проверить). 		4.0.0
return_array Если данный параметр не установлен или равен "N", то метод возвращает отформатированный список ошибок.
Если же установлен в "Y", то метод возвращает массив, в котором сообщения об ошибках, связанные с конкретными полями, идут с ключом, равным строковому идентификатору поля, а остальные - с числовым ключом. Например,
array(
        0 => "Неверно введено слово с картинки",
        "test_fld" => "Не указано значение обязательных полей: Первое поле"
        )
 6.0.2

Смотрите также

  • CFormResult::Add
  • CFormResult::Update

Примеры использования

<?
// проверим корректность введенных параметров и
// права пользователя
$error = CForm::Check($FORM_ID, $_REQUEST, $RESULT_ID);

// если метод не вернул текст ошибки, то
if (strlen($error)<=0)
{
    // обновляем результат
    CFormResult::Update($RESULT_ID, $_REQUEST);
}
?>


Copy

Веб-формы>Классы>CForm>Copy (4.0.4)

CForm::Copy

Описание и параметры

mixed
CForm::Copy(
 int form_id,
 string check_rights = "Y"
)

Копирует веб-форму с ее вопросами, полями и статусами. Возвращает ID новой веб-формы в случае положительного результата, в противном случае - "false". Метод нестатический.

Параметры метода

Параметр | Описание
form_id | ID формы.
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для копирования веб-формы необходимо право [W] Полный доступ" на модуль "Веб-формы".
Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).

Смотрите также

  • CFormField::Copy
  • CFormAnswer::Copy
  • CFormStatus::Copy

Примеры использования

<?
$FORM_ID = 4;
// скопируем веб-форму
if ($NEW_FORM_ID=CForm::Copy($FORM_ID))
{
    echo "Веб-форма #4 успешно скопирована в новую веб-форму #".$NEW_FORM_ID;
}
else
{
    // выведем текст ошибки
    global $strError;
    echo $strError;
}
?>


Delete

Веб-формы>Классы>CForm>Delete (3.1.1)

CForm::Delete

Описание и параметры

bool
CForm::Delete(
 int form_id,
 string check_rights = "Y"
)

Удаляет веб-форму со всеми ее результатами. Возвращает "true" в случае положительного результата, и "false" - в противном случае. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
form_id | ID веб-формы.
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для удаления веб-формы необходимо иметь право [W] Полный доступ на модуль "Веб-формы".
Параметр необязательный. По умолчанию - "Y" (права необходимо проверить). 		4.0.4

Смотрите также

  • CFormField::Delete
  • CFormAnswer::Delete
  • CFormStatus::Delete
  • CFormResult::Delete

Примеры использования

<?
$FORM_ID = 4;
// удалим веб-форму
if (CForm::Delete($FORM_ID))
{
    echo "Веб-форма #4 удалена.";
}
else
{
    // выведем текст ошибки
    global $strError;
    echo $strError;
}
?>


GetByID

Веб-формы>Классы>CForm>GetByID (3.1.1)

CForm::GetByID

Описание и параметры

CDBResult
CForm::GetByID(
 int form_id
 $GET_BY_SID="N"
)

Возвращает параметры веб-формы в виде объекта класса CDBResult. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
form_id | ID веб-формы. |
GET_BY_SID | Необязательный параметр. | 4.0.0

Смотрите также

  • Поля CForm
  • CForm::GetBySID
  • CForm::GetList

Примеры использования

<?
$FORM_ID = 2;
$rsForm = CForm::GetByID($FORM_ID);
$arForm = $rsForm->Fetch();
echo "<pre>"; print_r($arForm); echo "</pre>";
?>


GetBySID

Веб-формы>Классы>CForm>GetBySID (3.3.10)

CForm::GetBySID

Описание и параметры

CDBResult
CForm::GetBySID(
 string form_sid
)

Возвращает параметры веб-формы в виде объекта класса CDBResult. Метод нестатический.

Параметры метода

Параметр | Описание
form_sid | Символьный идентификатор веб-формы.

Смотрите также

  • Поля CForm
  • CForm::GetByID
  • CForm::GetList

Примеры использования

<?
$FORM_SID = "ANKETA";
$rsForm = CForm::GetBySID($FORM_SID);
$arForm = $rsForm->Fetch();
echo "<pre>"; print_r($arForm); echo "</pre";
?>


GetCheckBoxField

Веб-формы>Классы>CForm>GetCheckBoxField (3.1.1)

CForm::GetCheckBoxField

Описание и параметры

string
CForm::GetCheckBoxField(
 string question_sid,
 int answer_id,
 mixed value = "",
 string add_to_checkbox = "class=\"inputcheckbox\""
)

Возвращает HTML код флага множественного выбора (checkbox), предназначенного для выбора ответа типа "checkbox" на вопрос, символьный идентификатор которого передается в параметре question_sid. Метод нестатический.

Метод может использоваться как в форме создания нового результата, так и в форме редактирования существующего.

Примечание
Имя результирующего HTML поля будет сформировано по следующей маске:
form_checkbox_question_sid[]

Параметры метода

Параметр | Описание
question_sid | Символьный идентификатор вопроса.
answer_id | ID ответа.
value | Если в данном параметре будет передано значение, совпадающее с answer_id, то флаг множественного выбора будет отмечен (checked): <input type="checkbox" checked ...> Параметр необязательный. По умолчанию - "".
add_to_checkbox | Произвольный HTML, который будет добавлен в результирующий HTML тег флага множественного выбора: <input type="checkbox" add_to_checkbox ...> Необходимо учитывать, что если в данном параметре задать ключевое слово "checked", то данный переключатель будет выбран по умолчанию. Параметр необязательный. По умолчанию - "class=\"inputcheckbox\"".

Смотрите также

  • CForm::GetCheckBoxValue
  • Имена HTML полей

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
    // используем данные, пришедшие с формы
    $arrVALUES = $_REQUEST;
}
else
{
    // сформируем этот массив из данных по результату
    $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form action="" method="POST">
<table>
    <tr>
        <td>Какие области знаний вас интересуют ?</td>
        <td><?

            /**********************************************************
                выводим два checkbox'а (математика/физика)
                как варианты ответа на вопрос
                "Какие области знаний вас интересуют ?"
            **********************************************************/

            $QUESTION_SID = "INTEREST"; // символьный идентификатор вопроса

            /***********************
              checkbox "математика"
            ***********************/

            // массив описывающий один checkbox
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 591,            // ID checkbox'а
                "FIELD_PARAM"   => "checked class=\"inputcheckbox\""   // параметр ответа
                );

            // получим текущее значение
            $value = CForm::GetCheckBoxValue($QUESTION_SID, $arAnswer, $arrVALUES);

            // выведем checkbox
            echo CForm::GetCheckBoxField(
                $QUESTION_SID,
                $arAnswer["ID"],
                $value,
                $arAnswer["FIELD_PARAM"]
                );
            echo "математика<br>";

            /***********************
                checkbox "физика"
            ***********************/

            // массив описывающий один checkbox
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 593,       // ID checkbox'а
                "FIELD_PARAM"   => ""         // параметр ответа
                );

            // получим текущее значение
            $value = CForm::GetCheckBoxValue($QUESTION_SID, $arAnswer, $arrVALUES);

            // выведем checkbox
            echo CForm::GetCheckBoxField(
                $QUESTION_SID,
                $arAnswer["ID"],
                $value,
                $arAnswer["FIELD_PARAM"]
                );
            echo "физика";
            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetCheckBoxValue

Веб-формы>Классы>CForm>GetCheckBoxValue (3.1.1)

CForm::GetCheckBoxValue

Описание и параметры

int
CForm::GetCheckBoxValue(
 string question_sid,
 array answer,
 mixed form_values = false
)

Если массив, переданный в параметре form_values, инициализирован (например, в момент редактирования результата), то метод возвращает ID ответа (answer["ID"]), в случае если он был выбран среди группы ответов типа "checkbox" на вопрос, символьный идентификатор которого указан в параметре question_sid.

Если массив, переданный в параметре form_values, не инициализирован (например, в момент создания нового результата), то метод вернет ID ответа (answer["ID"]), если он был установлен как ответ по умолчанию (ответом по умолчанию считаются те, у которых присутствует строка "checked" в answer["FIELD_PARAM"]).

Метод нестатический.

Параметры метода

Параметр | Описание
question_sid | Символьный идентификатор вопроса.
answer Массив, описывающий параметры ответа, с обязательными ключами:
  • ID - ID ответа;
  • FIELD_PARAM - если значение этого ключа содержит слово "checked", то ID этого ответа будет возвращен данным методом по умолчанию (т.е. при создании нового результата).
form_values Ассоциированный массив значений, пришедших с веб-формы при создании нового или редактировании существующего результата (стандартный массив $_REQUEST). Данный массив может быть также получен с помощью метода CFormResult::GetDataByIDForHTML.

Параметр необязательный. По умолчанию - "false".

Смотрите также

  • CForm::GetCheckBoxField

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить", то
if (strlen($_REQUEST["save"])>0)
{
    // используем данные пришедшие с формы
    $arrVALUES = $_REQUEST;
}
else
{
    // сформируем этот массив из данных по результату
    $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form action="" method="POST">
<table>
    <tr>
        <td>Какие области знаний вас интересуют ?</td>
        <td><?

            /**********************************************************
                выводим два checkbox'а (математика/физика)
                как варианты ответа на вопрос
                "Какие области знаний вас интересуют ?"
            **********************************************************/

            $QUESTION_SID = "INTEREST"; // символьный идентификатор вопроса

            /***********************
              checkbox "математика"
            ***********************/

            // массив описывающий один checkbox
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 591,            // ID checkbox'а
                "FIELD_PARAM"   => "checked class=\"inputcheckbox\""   // параметр ответа
                );

            // получим текущее значение
            $value = CForm::GetCheckBoxValue($QUESTION_SID, $arAnswer, $arrVALUES);

            // выведем checkbox
            echo CForm::GetCheckBoxField(
                $QUESTION_SID,
                $arAnswer["ID"],
                $value,
                $arAnswer["FIELD_PARAM"]
                );
            echo "математика<br>";

            /***********************
                checkbox "физика"
            ***********************/

            // массив описывающий один checkbox
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 593,       // ID checkbox'а
                "FIELD_PARAM"   => ""         // параметр ответа
                );

            // получим текущее значение
            $value = CForm::GetCheckBoxValue($QUESTION_SID, $arAnswer, $arrVALUES);

            // выведем checkbox
            echo CForm::GetCheckBoxField(
                $QUESTION_SID,
                $arAnswer["ID"],
                $value,
                $arAnswer["FIELD_PARAM"]
                );
            echo "физика";
            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetDataByID

Веб-формы>Классы>CForm>GetDataByID (3.1.1)

CForm::GetDataByID

Описание и параметры

mixed
CForm::GetDataByID(
 int form_id,
 array &form,
 array &questions,
 array &answers,
 array &dropdown,
 array &multiselect,
 string get_fields = "Y"
)

Возвращает массивы, описывающие веб-форму, вопросы и поля для ответов. Сам метод возвращает ID веб-формы в случае положительного результата, в противном случае - "false". Метод нестатический.

Параметры метода

Параметр | Описание | С версии
form_id | ID веб-формы. С версии 3.3.10 переименован в web_form_id
form Массив, содержащий параметры формы. Ключи данного массива:
  • ID - ID веб-формы;
  • TIMESTAMP_X - дата изменения;
  • NAME - наименование;
  • SID - символьный идентификатор;
  • BUTTON - подпись к кнопке при редактировании результата или создании нового результата;
  • C_SORT - порядок сортировки;
  • IMAGE_ID - ID изображения;
  • DESCRIPTION - описание;
  • DESCRIPTION_TYPE - тип описания, допустимы следующие значения:
    • text - текст;
    • html - HTML код.
  • MAIL_EVENT_TYPE - идентификатор типа почтового события;
  • FILTER_RESULT_TEMPLATE - путь относительно корня к скрипту, отображающему фильтр по результатам веб-форм в административной части модуля;
  • TABLE_RESULT_TEMPLATE - путь относительно корня к скрипту, отображающему таблицу результатов веб-формы в административной части модуля;
  • STAT_EVENT1 - идентификатор event1 типа события для модуля "Статистика";
  • STAT_EVENT2 - идентификатор event2 типа события для модуля "Статистика";
  • STAT_EVENT3 - дополнительный параметр event3 события для модуля "Статистика";
  • QUESTIONS - количество вопросов формы;
  • C_FIELDS - количество полей формы;
  • STATUSES - количество статусов.
Пример:
Array
(
    [ID] => 4
    [TIMESTAMP_X] => 18.05.2005 12:17:05
    [NAME] => Анкета посетителя сайта
    [SID] => ANKETA
    [BUTTON] => Сохранить
    [C_SORT] => 300
    [IMAGE_ID] => 1053
    [DESCRIPTION] => Тестовая форма.
    [DESCRIPTION_TYPE] => text
    [MAIL_EVENT_TYPE] => FORM_FILLING_ANKETA
    [FILTER_RESULT_TEMPLATE] =>
    [TABLE_RESULT_TEMPLATE] =>
    [STAT_EVENT1] => form
    [STAT_EVENT2] => anketa
    [STAT_EVENT3] =>
    [C_FIELDS] => 1
    [QUESTIONS] => 6
    [STATUSES] => 4
)
questions Массив, содержащий вопросы и поля формы. Ключами данного массива являются идентификаторы вопросов/полей, а значениями - массивы, каждый из которых описывает один вопрос/поле.

Ключи массива, описывающего один вопрос/поле:
  • ID - ID вопроса/поля;
  • FORM_ID - ID формы;
  • TIMESTAMP_X - дата изменения вопроса/поля;
  • ACTIVE - флаг активности [Y|N];
  • TITLE - текст вопроса либо заголовок поля;
  • TITLE_TYPE - тип текста;
  • SID - символьный идентификатор вопроса/поля;
  • C_SORT - порядок сортировки;
  • ADDITIONAL - если Y - то данная запись является вопросом; если N - то полем формы;
  • REQUIRED - флаг обязательности ответа на вопрос [Y|N];
  • IN_FILTER - флаг, показывающий отражен ли вопрос/поле в фильтре формы результатов [Y|N];
  • IN_RESULTS_TABLE - флаг, показывающий отображается ли вопрос/поле в таблице результатов [Y|N];
  • IN_EXCEL_TABLE - флаг, показывающий отображается ли вопрос/поле в Excel-таблице результатов [Y|N];
  • FIELD_TYPE тип поля, возможны следующие значения:
    • text - текст;
    • integer - число;
    • date - дата.
  • IMAGE_ID - ID изображения в описании вопроса;
  • COMMENTS - служебный комментарий;
  • FILTER_TITLE - заголовок поля фильтра по данному вопросу/полю;
  • RESULTS_TABLE_TITLE - заголовок столбца таблицы результатов.
Пример:
Array
(
    [VS_NAME] => Array
        (
            [ID] => 140
            [FORM_ID] => 4
            [TIMESTAMP_X] => 28.08.2003 11:45:57
            [ACTIVE] => Y
            [TITLE] => Фамилия, имя, отчество
            [TITLE_TYPE] => html
            [SID] => VS_NAME
            [C_SORT] => 100
            [ADDITIONAL] => N
            [REQUIRED] => Y
            [IN_FILTER] => Y
            [IN_RESULTS_TABLE] => Y
            [IN_EXCEL_TABLE] => Y
            [FIELD_TYPE] =>
            [IMAGE_ID] =>
            [COMMENTS] =>
            [FILTER_TITLE] => ФИО
            [RESULTS_TABLE_TITLE] => ФИО
        )

    [VS_MARRIED] => Array
        (
            [ID] => 143
            [FORM_ID] => 4
            [TIMESTAMP_X] => 11.11.2004 18:13:21
            [ACTIVE] => Y
            [TITLE] => Вы женаты / замужем ?
            [TITLE_TYPE] => text
            [SID] => VS_MARRIED
            [C_SORT] => 400
            [ADDITIONAL] => N
            [REQUIRED] => Y
            [IN_FILTER] => Y
            [IN_RESULTS_TABLE] => Y
            [IN_EXCEL_TABLE] => Y
            [FIELD_TYPE] =>
            [IMAGE_ID] =>
            [COMMENTS] =>
            [FILTER_TITLE] => Семейный статус
            [RESULTS_TABLE_TITLE] => Семейный статус
        )
    ...
)
answers Массив, содержащие данные по полям для ответа на вопросы веб-формы. Ключами данного массива являются идентификаторы вопросов, а значениями - массивы, каждый из которых описывает набор полей для ответа на вопрос.

Структура массива, описывающего одно поле ответа:
  • ID - ID поля для ответа;
  • FIELD_ID - ID вопроса формы;
  • TIMESTAMP_X - дата изменения поля;
  • MESSAGE - текст [ANSWER_TEXT];
  • C_SORT - порядок сортировки;
  • ACTIVE - флаг активности [Y|N];
  • VALUE - значение [ANSWER_VALUE];
  • FIELD_TYPE - тип поля ответа, допустимы следующие значения:
    • text - однострочное текстовое поле;
    • textarea - многострочное текстовое поле;
    • radio - переключатель одиночного выбора;
    • checkbox - флаг множественного выбора;
    • dropdown - элемента выпадающего списка одиночного выбора;
    • multiselect - элемента списка множественного выбора;
    • date - поле для ввода дата в календарем;
    • image - поле для ввода изображения;
    • file - поле для ввода произвольного файла;
    • password - однострочное поле для ввода пароля.
  • FIELD_WIDTH - ширина поля ответа;
  • FIELD_HEIGHT - высота поля ответа;
  • FIELD_PARAM - параметры поля ответа.
Пример
Array
(
    [VS_NAME] => Array
        (
            [0] => Array
                (
                    [ID] => 586
                    [FIELD_ID] => 140
                    [TIMESTAMP_X] => 2003-08-28 11:45:57
                    [MESSAGE] =>
                    [C_SORT] => 100
                    [ACTIVE] => Y
                    [VALUE] =>
                    [FIELD_TYPE] => text
                    [FIELD_WIDTH] => 50
                    [FIELD_HEIGHT] => 0
                    [FIELD_PARAM] =>
                )

        )

    [VS_MARRIED] => Array
        (
            [0] => Array
                (
                    [ID] => 589
                    [FIELD_ID] => 143
                    [TIMESTAMP_X] => 2004-11-11 18:13:21
                    [MESSAGE] => да
                    [C_SORT] => 100
                    [ACTIVE] => Y
                    [VALUE] =>
                    [FIELD_TYPE] => radio
                    [FIELD_WIDTH] => 0
                    [FIELD_HEIGHT] => 0
                    [FIELD_PARAM] => SELECTED class="inputradio"
                )

            [1] => Array
                (
                    [ID] => 590
                    [FIELD_ID] => 143
                    [TIMESTAMP_X] => 2004-11-11 18:13:21
                    [MESSAGE] => нет
                    [C_SORT] => 200
                    [ACTIVE] => Y
                    [VALUE] =>
                    [FIELD_TYPE] => radio
                    [FIELD_WIDTH] => 0
                    [FIELD_HEIGHT] => 0
                    [FIELD_PARAM] =>
                )

        )
    ...
)
dropdown Массив, предназначенный для построения выпадающих списков одиночного выбора; содержит данные по всем полям ответа типа dropdown.

Пример:
Array
(
    [VS_AGE] => Array
        (
            [reference] => Array
                (
                    [0] => -
                    [1] => 10-19
                    [2] => 20-29
                    [3] => 30-39
                    [4] => 40-49
                    [5] => 50-59
                    [6] => 60 и старше
                )

            [reference_id] => Array
                (
                    [0] => 608
                    [1] => 596
                    [2] => 597
                    [3] => 598
                    [4] => 599
                    [5] => 600
                    [6] => 601
                )

            [param] => Array
                (
                    [0] => NOT_ANSWER
                    [1] =>
                    [2] => SELECTED
                    [3] =>
                    [4] =>
                    [5] =>
                    [6] =>
                )

        )
    ...
)
multiselect Массив, предназначенный для построения списков множественного выбора; содержит данные по всем полям для ответа типа multiselect.

Пример:
Array
(
    [VS_EDUCATION] => Array
        (
            [reference] => Array
                (
                    [0] => начальное
                    [1] => средне-специальное
                    [2] => высшее
                    [3] => ясли с отличием
                )

            [reference_id] => Array
                (
                    [0] => 602
                    [1] => 603
                    [2] => 604
                    [3] => 605
                )

            [param] => Array
                (
                    [0] =>
                    [1] =>
                    [2] => SELECTED
                    [3] =>
                )

        )
    ...
)
get_fields Если значение данного параметра равно "Y", то в массиве questions будут представлены только поля формы.
Если значение равно "" - вопросы и поля формы.
В остальных случаях - в массиве questions будут описаны только вопросы формы.

Параметр необязательный. По умолчанию - "N" (не добавлять в массив questions данные о полях веб-формы).
active | Необязательный параметр. | 5.1.1

Смотрите также

  • CForm::GetResultAnswerArray

Примеры использования

<?
if (CForm::GetDataByID($FORM_ID,
    $form,
    $questions,
    $answers,
    $dropdown,
    $multiselect))
{
    echo "<pre>";
        print_r($form);
        print_r($questions);
        print_r($answers);
        print_r($dropdown);
        print_r($multiselect);
    echo "</pre>";
}
?>


GetDateField

Веб-формы>Классы>CForm>GetDateField (3.1.1)

CForm::GetDateField

Описание и параметры

string
CForm::GetDateField(
 int answer_id,
 string html_form_name,
 string value = "",
 mixed size = "",
 string add_to_text = "class=\"inputtext\""
)

Возвращает HTML код однострочного текстового поля. Данное поле предназначено для ввода ответа типа "date". В результирующий HTML код будет добавлена иконка, ведущая на страницу с календарем.

Метод может использоваться как в форме создания нового результата, так и в форме редактирования существующего. Метод нестатический.

Примечание
Имя результирующего HTML поля для ввода даты будет сформировано по следующей маске:
form_date_answer_id

Параметры метода

Параметр | Описание | С версии
answer_id | ID ответа.
html_form_name Имя HTML формы для создания нового результата или редактирования существующего.
<form name="html_form_name" ...>
Параметр необязательный. По умолчанию - "form1".
value Значение результирующего текстового поля:
<input type="text" value="value" ...>

Параметр необязательный. По умолчанию - "".
size Ширина результирующего текстового поля для ввода даты:
<input type="text" size="size" ...>

Параметр необязательный. По умолчанию - "".
add_to_text Произвольный HTML который будет добавлен в результирующий HTML тег текстового поля для ввода даты:
<input type="text" add_to_text ...>

Параметр необязательный. По умолчанию - "class=\"inputtext\"".

Смотрите также

  • CForm::GetDateValue
  • Имена HTML полей

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
    // используем данные пришедшие с формы
    $arrVALUES = $_REQUEST;
}
else
{
    // сформируем этот массив из данных по результату
    $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form name="ANKETA" action="" method="POST">
<table>
    <tr>
        <td>Дата рождения:</td>
        <td><?

            // массив описывающий поле для ввода даты
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 587,   // ID поля для ответа на вопрос "Дата рождения?"
                "VALUE"         => "",    // параметр ANSWER_VALUE (значение по умолчанию)
                "FIELD_WIDTH"   => 10,    // ширина поля
                "FIELD_PARAM"   => ""     // параметры поля
                );

            // получим текущее значение
            $value = CForm::GetDateValue($arAnswer["ID"], $arAnswer, $arrVALUES);

            // выведем поле
            echo CForm::GetDateField(
                $arAnswer["ID"],
                "ANKETA",
                $value,
                $arAnswer["FIELD_WIDTH"],
                $arAnswer["FIELD_PARAM"]
                );
            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetDateFilter

Веб-формы>Классы>CForm>GetDateFilter (3.1.1)

CForm::GetDateFilter

Описание и параметры

string
CForm::GetDateFilter(
 int filter_sid,
 string html_form_name = "form1",
 string show_dropdown = "Y",
 string add_to_dropdown = "class=\"inputselect\"",
 string add_to_text = "class=\"inputtext\""
)

Возвращает HTML код поля фильтра, предназначенного для фильтрации результатов по датам, введенным в качестве ответа на вопрос веб-формы, либо значений полей веб-формы типа "дата". Возвращаемый HTML код включает в себя два поля, предназначенных для ввода интервала дат, а также некоторые вспомогательные элементы (календарь, выпадающий список дней). Метод нестатический.

Примечание
Имена результирующих HTML полей будут сформированы по следующим маскам:
find_filter_sid_1 - первое поля интервала дат (с)
find_filter_sid_2 - второе поле интервала дат (по)

Параметры метода

Параметр | Описание | С версии
filter_sid Идентификатор поля фильтра. Формируется по следующему шаблону:
FSID_QSID_USER_date,
где:
  • FSID - символьный идентификатор веб-формы;
  • QSID - символьный идентификатор вопроса/поля веб-формы.
Примеры:
  • ANKETA_USER_BIRTHDAY_USER_date
  • ANKETA_DATE_FIELD_USER_date
html_form_name Имя HTML формы, в которой выводится фильтр.
<form name="html_form_name" ...>

Параметр необязательный. По умолчанию - "form1".
show_dropdown Если значение "Y", то возвращаемый HTML код будет включать выпадающий список дней, предназначенный для облегчения выбора даты.

Параметр необязательный. По умолчанию - "Y" (вывести выпадающий список дней).
add_to_dropdown Если show_dropdown="Y", то в данном параметре можно указать произвольный HTML, который будет добавлен в тег выпадающего списка дней:
<select add_to_dropdown ...>

Параметр необязательный. По умолчанию - "class=\"inputselect\"".
add_to_text Произвольный HTML, который будет добавлен в теги однострочных текстовых полей, предназначенных для ввода даты:
<input type="text" add_to_text ...>

Параметр необязательный. По умолчанию - "class=\"inputtext\"".
field_select | Необязательный параметр. | 3.3.0
field_input | Необязательный параметр. Изменен с 4.0.4 | 3.3.0

Смотрите также

  • CalendarPeriod
  • CForm::GetTextFilter
  • CForm::GetDropDownFilter
  • CForm::GetNumberFilter
  • CForm::GetExistFlagFilter

Примеры использования

<form name="form1" action="" method="POST">
<table>
    <tr>
        <td>Дата рождения:</td>
        <td><?
            echo CForm::GetDateFilter(
                "ANKETA_USER_BIRTHDAY_USER_date",
                "form1",
                "Y",
                "class=\"inputselect\"",
                "class=\"inputtext\""
                );
            ?></td>
    </tr>
</table>
<input type="submit" value="Фильтр">
</form>


GetDateValue

Веб-формы>Классы>CForm>GetDateValue (3.1.1)

CForm::GetDateValue

Описание и параметры

string
CForm::GetDateValue(
 int answer_id,
 array answer,
 mixed form_values = false
)

Если массив, переданный в параметре form_values, инициализирован (например, в момент редактирования результата), то метод возвращает текущее значение ответа типа "date", ID которого передается в параметре answer_id.

Если массив, переданный в параметре form_values, не инициализирован (например, в момент создания нового результата), то метод вернет значение по умолчанию для данного ответа (т.е. то что задается в answer["VALUE"]).

Метод нестатический.

Параметры метода

Параметр | Описание
answer_id | ID ответа.
answer | Массив, описывающий параметры ответа, обязательным элементом которого является элемент с ключом VALUE и значением, в котором содержится значение по умолчанию для ответа. Как правило, таким значением по умолчанию становится параметр ANSWER_VALUE ответа.
form_values | Ассоциированный массив значений, пришедших с веб-формы при создании нового или редактировании существующего результата (стандартный массив $_REQUEST). Данный массив может быть также получен с помощью метода CFormResult::GetDataByIDForHTML. Параметр необязательный. По умолчанию - "false".

Смотрите также

  • CForm::GetDateField

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
    // используем данные пришедшие с формы
    $arrVALUES = $_REQUEST;
}
else
{
    // сформируем этот массив из данных по результату
    $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form name="ANKETA" action="" method="POST">
<table>
    <tr>
        <td>Дата рождения:</td>
        <td><?

            // массив описывающий поле для ввода даты
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 587,   // ID поля для ответа на вопрос "Дата рождения?"
                "VALUE"         => "",    // параметр ANSWER_VALUE (значение по умолчанию)
                "FIELD_WIDTH"   => 10,    // ширина поля
                "FIELD_PARAM"   => ""     // параметры поля
                );

            // получим текущее значение
            $value = CForm::GetDateValue($arAnswer["ID"], $arAnswer, $arrVALUES);

            // выведем поле
            echo CForm::GetDateField(
                $arAnswer["ID"],
                "ANKETA",
                $value,
                $arAnswer["FIELD_WIDTH"],
                $arAnswer["FIELD_PARAM"]
                );
            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetDropDownField

Веб-формы>Классы>CForm>GetDropDownField (3.1.1)

CForm::GetDropDownField

Описание и параметры

string
CForm::GetDropDownField(
 string question_sid,
 array list,
 mixed value = "",
 string add_to_dropdown = "class=\"inputselect\""
)

Возвращает HTML код выпадающего списка одиночного выбора, предназначенного для выбора ответа из группы ответов типа "dropdown" на вопрос, символьный идентификатор которого передается в параметре question_sid.

Метод может использоваться как в форме создания нового результата, так и в форме редактирования существующего. Метод нестатический.

Примечание
Имя результирующего HTML поля будет сформировано по следующей маске:
form_dropdown_question_sid

Параметры метода

Параметр | Описание | С версии
question_sid | Символьный идентификатор вопроса.
list Массив ответов типа "dropdown" на вопрос question_sid. Минимально требуемая структура данного массива:
Array
(
    [reference] => Array
        (
            [0] => заголовок ответа 1
            [1] => заголовок ответа 2
            [2] => заголовок ответа 3
            ...
        )

    [reference_id] => Array
        (
            [0] => ID ответа 1
            [1] => ID ответа 2
            [2] => ID ответа 3
            ...
        )
)
В данном массиве под заголовком элемента понимается параметр ANSWER_TEXT ответа.
value Если в данном параметре будет передано значение совпадающее с ID ответа, то данный ответ будет выбран в результирующем выпадающем списке:
<option value="значение элемента" selected>заголовок ответа</option>

Параметр необязательный. По умолчанию - "".
add_to_dropdown Произвольный HTML который будет добавлен в результирующий HTML тег:
<select add_to_dropdown ...>

Параметр необязательный. По умолчанию - "class=\"inputselect\"".

Смотрите также

  • CForm::GetDropDownValue
  • Имена HTML полей

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
    // используем данные пришедшие с формы
    $arrVALUES = $_REQUEST;
}
else
{
    // сформируем этот массив из данных по результату
    $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form action="" method="POST">
<table>
    <tr>
        <td>*Возраст:</td>
        <td><?

            // символьный идентификатор вопроса
            $QUESTION_SID = "AGE";

            // массив описывающий элементы выпадающего списка
            $arDropDown = array (

                "reference" => array (
                        "-",
                        "10-19",
                        "20-29",
                        "30-39",
                        "40-49",
                        "50-59",
                        "60 и старше"
                    ),

                "reference_id" => array (
                        608,
                        596,
                        597,
                        598,
                        599,
                        600,
                        601
                    ),

                "param" => array (
                        "not_answer class=\"inputselect\"", // не является ответом
                        "",
                        "checked", // значение по умолчанию
                        "",
                        "",
                        "",
                        ""
                    )
            );

            // получим текущее значение выпадающего списка
            $value = CForm::GetDropDownValue($QUESTION_SID, $arDropDown, $arrVALUES);

            // выведем выпадающий список
            echo CForm::GetDropDownField(
                $QUESTION_SID,           // символьный идентификатор вопроса
                $arDropDown,             // массив описывающий элементы списка
                $value,                  // значение выбранного элемента списка
                "class=\"inputselect\""  // стиль выпадающего списка
                );
            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetDropDownFilter

Веб-формы>Классы>CForm>GetDropDownFilter (3.1.1)

CForm::GetDropDownFilter

Описание и параметры

string
CForm::GetDropDownFilter(
 int field_id,
 string parameter_type,
 string filter_sid,
 string add_to_dropdown = "class=\"inputselect\""
)

Возвращает HTML код поля фильтра, представляющего из себя выпадающий список одиночного выбора. Данный выпадающий список может быть использован для фильтрации результатов по значению ответа на вопрос веб-формы. Значения этого выпадающего списка формируются из значений параметров ответов - ANSWER_TEXT или ANSWER_VALUE. Метод нестатический.

Примечание
Имя результирующего HTML поля будет сформировано по следующей маске:
find_filter_sid

Параметры метода

Параметр | Описание | С версии
field_id | ID вопроса/поля.
parameter_type Тип параметра ответа, допустимы следующие значения:
  • ANSWER_TEXT;
  • ANSWER_VALUE.
filter_sid Идентификатор поля фильтра. Формируется по следующему шаблону:
FSID_QSID_PTYPE_dropdown,
где:
  • FSID - символьный идентификатор веб-формы;
  • QSID - символьный идентификатор вопроса/поля веб-формы;
  • PTYPE - тип параметра ответа, задаваемый в parameter_type.
Примеры:
  • ANKETA_MARRIED_ANSWER_TEXT_dropdown;
  • ANKETA_CAR_ANSWER_VALUE_dropdown.
add_to_dropdown Произвольный HTML который будет добавлен в тег выпадающего списка:
<select add_to_dropdown ...>

Параметр необязательный. По умолчанию - "class=\"inputselect\"".

Смотрите также

  • CForm::GetTextFilter
  • CForm::GetDateFilter
  • CForm::GetNumberFilter
  • CForm::GetExistFlagFilter

Примеры использования

<form name="form1" action="" method="POST">
<table>
    <tr>
        <td>Образование:</td>
        <td><?
            $FIELD_ID = 15; // ID вопроса "Ваше образование?"
            echo CForm::GetDropDownFilter(
                $FIELD_ID,
                "ANSWER_TEXT",
                "ANKETA_EDUCATION_ANSWER_TEXT_dropdown",
                "class=\"inputselect\""
                );
            ?></td>
    </tr>
</table>
<input type="submit" value="Фильтр">
</form>


GetDropDownValue

Веб-формы>Классы>CForm>GetDropDownValue (3.1.1)

CForm::GetDropDownValue

Описание и параметры

int
CForm::GetDropDownValue(
 string question_sid,
 array answer_list,
 mixed form_values = false
)

Если массив, переданный в параметре form_values, инициализирован (например, в момент редактирования результата), то метод возвращает ID ответа, выбранного среди группы ответов типа "dropdown" на вопрос, символьный идентификатор которого указан в параметре question_sid.

Если массив, переданный в параметре form_values, не инициализирован (например, в момент создания нового результата), то метод вернет ID ответа выбранного по умолчанию. Поиск ответа по умолчанию осуществляется среди группы ответов, задаваемых в параметре answer_list, посредством поиска строки "checked" в answer_list["param"][i]; если такая строка будет найдена, то метод вернет ID данного ответа (хранимый в answer_list["reference_id"][i]).

Метод нестатический.

Параметры метода

Параметр | Описание
question_sid | Символьный идентификатор вопроса.
answer_list Массив ответов типа "dropdown" на вопрос question_sid. Минимально требуемая структура данного массива:
Array
(
    [reference_id] => Array
        (
            [0] => ID ответа 1
            [1] => ID ответа 2
            [2] => ID ответа 3
            ...
        )

    [param] => Array
        (
            [0] => параметр ответа 1
            [1] => параметр ответа 2
            [2] => параметр ответа 3
            ...
        )
)
form_values Ассоциированный массив значений, пришедших с веб-формы при создании нового или редактировании существующего результата (стандартный массив $_REQUEST). Данный массив может быть также получен с помощью функции CFormResult::GetDataByIDForHTML.

Параметр необязательный. По умолчанию - "false".

Смотрите также

  • CForm::GetDropDownField

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
    // используем данные пришедшие с формы
    $arrVALUES = $_REQUEST;
}
else
{
    // сформируем этот массив из данных по результату
    $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form action="" method="POST">
<table>
    <tr>
        <td>*Возраст:</td>
        <td><?

            // символьный идентификатор вопроса
            $QUESTION_SID = "AGE";

            // массив описывающий элементы выпадающего списка
            $arDropDown = array (

                "reference" => array (
                        "-",
                        "10-19",
                        "20-29",
                        "30-39",
                        "40-49",
                        "50-59",
                        "60 и старше"
                    ),

                "reference_id" => array (
                        608,
                        596,
                        597,
                        598,
                        599,
                        600,
                        601
                    ),

                "param" => array (
                        "not_answer class=\"inputselect\"", // не является ответом
                        "",
                        "checked", // значение по умолчанию
                        "",
                        "",
                        "",
                        ""
                    )
            );

            // получим текущее значение выпадающего списка
            $value = CForm::GetDropDownValue($QUESTION_SID, $arDropDown, $arrVALUES);

            // выведем выпадающий список
            echo CForm::GetDropDownField(
                $QUESTION_SID,           // символьный идентификатор вопроса
                $arDropDown,             // массив описывающий элементы списка
                $value,                  // значение выбранного элемента списка
                "class=\"inputselect\""  // стиль выпадающего списка
                );
            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetExistFlagFilter

Веб-формы>Классы>CForm>GetExistFlagFilter (4.0.4)

CForm::GetExistFlagFilter

Описание и параметры

string
CForm::GetExistFlagFilter(
 int filter_sid,
 string add_to_checkbox = "class=\"inputcheckbox\""
)

Возвращает HTML код поля фильтра, предназначенного для фильтрации результатов по факту существования значения ответа на вопрос веб-формы или факту существования значения поля веб-формы. Возвращаемый HTML код включает в себя флаг множественного выбора (checkbox). Метод нестатический.

Примечание
Имя результирующего HTML поля будет сформировано по следующей маске:
find_filter_sid

Параметры метода

Параметр Описание
filter_sid Идентификатор поля фильтра. Формируется по следующему шаблону:
FSID_QSID_PTYPE_exist,
где:
  • FSID - символьный идентификатор веб-формы;
  • QSID - символьный идентификатор вопроса/поля веб-формы;
  • PTYPE - тип параметра по которому будет фильтрация, возможны следующие значения:
    • ANSWER_TEXT - параметр ANSWER_TEXT вопроса веб-формы;
    • ANSWER_VALUE - параметр ANSWER_VALUE вопроса веб-формы;
    • USER - для вопроса веб-формы - вводимое с клавиатуры значение, для полей веб-формы - значение этого поля веб-формы.
Примеры:
  • ANKETA_USER_NAME_USER_text;
  • ANKETA_TEST_FIELD_USER_text.
add_to_checkbox Произвольный HTML который будет добавлен в тег флага выпадающего списка:
<input type="checkbox" add_to_checkbox ...>

Параметр необязательный. По умолчанию - "class=\"inputcheckbox\"".

Смотрите также

  • CForm::GetDateFilter
  • CForm::GetDropDownFilter
  • CForm::GetNumberFilter
  • CForm::GetTextFilter

Примеры использования

<form action="" method="POST">
<table>
    <tr>
        <td>Есть фотография?</td>
        <td><?
            echo CForm::GetExistFlagFilter(
                "ANKETA_PHOTO_USER_exist",
                "class=\"inputcheckbox\""
                );
            ?></td>
    </tr>
</table>
<input type="submit" value="Фильтр">
</form>


GetFileField

Веб-формы>Классы>CForm>GetFileField (3.1.1)

CForm::GetFileField

Описание и параметры

string
CForm::GetFileField(
 int answer_id,
 mixed width = "",
 string file_type = "IMAGE",
 int max_file_size = 0,
 mixed file_id = "",
 string add_to_file = "class=\"inputfile\"",
 string add_to_checkbox = "class=\"inputcheckbox\"",
)

Возвращает HTML код поля для загрузки файла. Данное поле предназначено для ввода ответа типа "image" или "file".

Метод может использоваться как в форме создания нового результата, так и в форме редактирования существующего. Метод нестатический.

Примечание
Имя результирующего HTML поля будет сформировано по следующей маске:
form_file_type_answer_id

Параметры метода

Параметр | Описание | С версии
answer_id | ID ответа.
width Ширина результирующего поля для ввода файла:
<input type="file" size="width" ...>

Параметр необязательный. По умолчанию - "".
file_type Тип файла, допустимы следующие значения:
  • IMAGE - изображение;
  • FILE - произвольный файл.
Параметр необязательный. По умолчанию - "IMAGE" (изображение).
max_file_size Максимальный размер загружаемого файла (в байтах).

Параметр необязательный. По умолчанию - 0 (без ограничений).
file_id ID загруженного (редактируемого) файла.

Параметр необязательный. По умолчанию - "".
add_to_file Произвольный HTML, который будет добавлен в HTML тег поля для загрузки файла:
<input type="file" add_to_file ...>

Параметр необязательный. По умолчанию - "class=\"inputfile\"". 		3.3.10
add_to_checkbox Произвольный HTML, который будет добавлен в HTML тег флага удаления редактируемого файла:
<input type="checkbox" add_to_checkbox ...>

Параметр необязательный. По умолчанию - "class=\"inputcheckbox\"". 		3.3.10
PARAM_TEXT | Необязательный параметр. Удален с версии 4.0.4 | 3.3.10

Смотрите также

  • Имена HTML полей

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата
?>
<form action="" method="POST">
<table>
    <tr>
        <td>Фотография:</td>
        <td><?

            /************************************************************
                                    Изображение
            ************************************************************/

            // массив описывающий поле ответа
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 607,   // ID поля для ответа на вопрос "Фотография"
                "FIELD_WIDTH"   => 10,    // ширина поля
                "FIELD_PARAM"   => ""     // параметры поля
                );

            // попробуем получить параметры загруженного файла
            if ($arFile = CFormResult::GetFileByAnswerID($RESULT_ID, $arAnswer["ID"])):
                // если файл был получен то
                if (intval($arFile["USER_FILE_ID"])>0):
                    // если это изображение то
                    if ($arFile["USER_FILE_IS_IMAGE"]=="Y") :
                        // выведем изображение
                        echo CFile::ShowImage(
                            $arFile["USER_FILE_ID"],
                            0,
                            0,
                            "border=0",
                            "",
                            true);
                    endif;
                    echo "<br><br>";
                endif;
            endif;

            // выведем поле для ввода файла
            echo CForm::GetFileField(
                $arAnswer["ID"],
                $arAnswer["FIELD_WIDTH"],
                "IMAGE",
                0,  // максимальный размер файла не ограничен
                $arFile["USER_FILE_ID"],
                $arAnswer["FIELD_PARAM"]);

            ?></td>
    </tr>
    <tr>
        <td>Резюме:</td>
        <td><?

            /************************************************************
                                Произвольный файл
            ************************************************************/

            // массив описывающий поле ответа
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 610,   // ID поля для ответа на вопрос "Резюме"
                "FIELD_WIDTH"   => 10,    // ширина поля
                "FIELD_PARAM"   => ""     // параметры поля
                );

            // попробуем получить параметры загруженного файла
            if ($arFile = CFormResult::GetFileByAnswerID($RESULT_ID, $arAnswer["ID"])):
                // если файл был получен то
                if (intval($arFile["USER_FILE_ID"])>0):

                    // выведем информацию о файле
                    ?>

                    <a title="Просмотр файла" target="_blank" class="tablebodylink" href="/bitrix/tools/form_show_file.php?rid=<?=$result_id?>&hash=<?echo $arFile["USER_FILE_HASH"]?>〈=<?=LANGUAGE_ID?>"><?=htmlspecialchars($arFile["USER_FILE_NAME"])?></a>
                    &nbsp;
                    (<?
                    $a = array("b", "Kb", "Mb", "Gb");
                    $pos = 0;
                    $size = $arFile["USER_FILE_SIZE"];
                    while($size>=1024) {$size /= 1024; $pos++;}
                    echo round($size,2)." ".$a[$pos];
                    ?>)
                    &nbsp;&nbsp;
                    [&nbsp;<a title="<?echo str_replace("#FILE_NAME#", $arFile["USER_FILE_NAME"], "Скачать")?>" class="tablebodylink" href="/bitrix/tools/form_show_file.php?rid=<?=$result_id?>&hash=<?echo $arFile["USER_FILE_HASH"]?>〈=<?=LANGUAGE_ID?>&action=download">Скачать</a>&nbsp;]
                    <br><br>

                    <?
                endif;
            endif;

            // выведем поле для ввода файла
            echo CForm::GetFileField(
                $arAnswer["ID"],
                $arAnswer["FIELD_WIDTH"],
                "FILE",
                0,  // максимальный размер файла не ограничен
                $arFile["USER_FILE_ID"],
                $arAnswer["FIELD_PARAM"]);

            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetList

Веб-формы>Классы>CForm>GetList (3.1.1)

CForm::GetList

Описание и параметры

CDBResult
CForm::GetList(
 string &by = "s_sort",
 string &order = "asc",
 array filter = array(),
 bool &is_filtered,
 int min_permission = 10
)

Возвращает список веб-форм в виде объекта класса CDBResult. Метод нестатический.

Параметры метода

Параметр | Описание
by Ссылка на переменную с полем для сортировки, может принимать значения:
  • s_id - ID веб-формы;
  • s_sort - индекс сортировки;
  • s_name - заголовок веб-формы;
  • s_sid - символьный идентификатор веб-формы.
оrder Ссылка на переменную с порядком сортировки, может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации. В массиве допустимы следующие ключи:
  • ID* - ID веб-формы (по умолчанию будет искаться точное совпадение);
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • SID* - символьный идентификатор веб-формы (по умолчанию будет искаться точное совпадение);
  • SID_EXACT_MATCH - если значение равно "N", то при фильтрации по SID будет искаться вхождение;
  • NAME* - заголовок веб-формы (по умолчанию будет искаться вхождение);
  • NAME_EXACT_MATCH - если значение равно "Y", то при фильтрации по NAME будет искаться точное совпадение;
  • DESCRIPTION* - описание веб-формы (по умолчанию будет искаться вхождение);
  • DESCRIPTION_EXACT_MATCH - если значение равно "Y", то при фильтрации по DESCRIPTION будет искаться точное совпадение;
  • SITE* - идентификатор сайта или массив идентификаторов сайтов, к которым приписана веб-форма (по умолчанию будет искаться точное совпадение);
  • SITE_EXACT_MATCH - если значение равно "N", то при фильтрации по SITE будет искаться вхождение.
* - допускается сложная логика
is_filtered | Ссылка на переменную, хранящую флаг отфильтрованности списка веб-форм. Если значение равно "true", то список был отфильтрован.
min_permission Минимальный уровень прав на веб-форму.

Параметр необязательный. По умолчанию - 2. С версии 4.0.4 - 10 (право на заполнение веб-формы и создание нового результата).

Смотрите также

  • Поля CForm
  • Права на веб-форму
  • CForm::GetByID
  • CForm::GetBySID

Примеры использования

<?
// сформируем массив фильтра
$arFilter = Array(
 "ID"                      => "1 | 2",          // ID=1 либо ID=2
 "ID_EXACT_MATCH"          => "Y",              // точное совпадение по ID
 "NAME"                    => "Анкета",         // в заголовке веб-формы есть слово "Анкета"
 "NAME_EXACT_MATCH"        => "N",              // не точное совпадение по NAME
 "SID"                     => "ANKETA",         // символьный идентификатор равен ANEKTA
 "SID_EXACT_MATCH"         => "Y",              // точное совпадение по SID
 "DESCRIPTION"             => "заполните",      // в описании есть слово "заполните"
 "DESCRIPTION_EXACT_MATCH" => "N",              // не точное совпадение по DESCRIPTION
 "SITE"                    => array("r1", "e2") // веб-форма приписана и к сайтам r1, e2
);

// получим список всех форм, для которых у текущего пользователя есть право на заполнение
$rsForms = CForm::GetList($by="s_id", $order="desc", $arFilter, $is_filtered);
while ($arForm = $rsForms->Fetch())
{
    echo "<pre>"; print_r($arForm); echo "</pre>";
}
?>


GetMultiSelectField

Веб-формы>Классы>CForm>GetMultiSelectField (3.1.1)

CForm::GetMultiSelectField

Описание и параметры

string
CForm::GetMultiSelectField(
 string question_sid,
 array list,
 array values = array(),
 mixed height = "",
 string add_to_multiselect = "class=\"inputselect\""
)

Возвращает HTML код списка множественного выбора, предназначенного для выбора ответов из группы ответов типа "multiselect" на вопрос, символьный идентификатор которого передается в параметре question_sid.

Метод может использоваться как в форме создания нового результата, так и в форме редактирования существующего. Метод нестатический.

Примечание
Имя результирующего HTML поля будет сформировано по следующей маске:
form_multiselect_question_sid[]

Параметры метода

Параметр | Описание | С версии
question_sid | Символьный идентификатор вопроса.
list Массив ответов типа "multiselect" на вопрос question_sid. Минимально требуемая структура данного массива:
Array
(
    [reference] => array
        (
            [0] => заголовок ответа 1
            [1] => заголовок ответа 2
            [2] => заголовок ответа 3
            ...
        )

    [reference_id] => array
        (
            [0] => ID ответа 1
            [1] => ID ответа 2
            [2] => ID ответа 3
            ...
        )
)
В данном массиве под заголовком ответа понимается параметр ANSWER_TEXT ответа.
values Если в данном параметре будет передан массив со значениями, совпадающими с ID ответов, данные ответы будут выбраны (выделены) в результирующем списке:
<option value="значение элемента" selected>заголовок элемента</option>

Параметр необязательный. По умолчанию - array() (пустой массив).
height Высота результирующего списка множественного выбора:
<select multiple size="height" ...>

Параметр необязательный. По умолчанию - "class=\"inputselect\"".
add_to_multiselect Произвольный HTML, который будет добавлен в результирующий HTML тег:
<select add_to_multiselect ...>

Параметр необязательный. По умолчанию - "class=\"inputselect\"".

Смотрите также

  • CForm::GetMultiSelectValue
  • Имена HTML полей

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
  // используем данные пришедшие с формы
  $arrVALUES = $_REQUEST;
}
else
{
  // сформируем этот массив из данных по результату
  $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form action="" method="POST">
<table>
  <tr>
    <td>Ваше образование:</td>
    <td><?

      // символьный идентификатор вопроса
      $QUESTION_SID = "EDUCATION";

      // массив описывающий элементы списка множественного выбора
      $arMultiSelect = array (

        "reference" => array (
            "начальное",
            "средне-специальное",
            "высшее",
          ),

        "reference_id" => array (
            602,
            603,
            604,
          ),

        "param" => array (
            "",
            "",
            "checked", // значение по умолчанию
          )
      );

      // получим текущее значение выпадающего списка
      $arValues = CForm::GetMultiSelectValue($QUESTION_SID, $arMultiSelect, $arrVALUES);

      // выведем список множественного выбора
      echo CForm::GetMultiSelectField(
        $QUESTION_SID,           // символьный идентификатор вопроса
        $arMultiSelect,          // массив описывающий элементы списка
        $arValues,               // значения выбранных элементов списка
        10,                      // высота списка
        "class=\"inputselect\""  // стиль списка
        );
      ?></td>
  </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetMultiSelectValue

Веб-формы>Классы>CForm>GetMultiSelectValue (3.1.1)

CForm::GetMultiSelectValue

Описание и параметры

array
CForm::GetMultiSelectValue(
 string question_sid,
 array answer_list,
 mixed form_values = false
)

Если массив, переданный в параметре form_values, инициализирован (например, в момент редактирования результата), то метод возвращает массив ID ответов, выбранных среди группы ответов типа "multiselect" на вопрос, символьный идентификатор которого указан в параметре question_sid.

Если массив, переданный в параметре form_values, не инициализирован (например, в момент создания нового результата), то метод вернет массив ID ответов, выбранных по умолчанию. Поиск ответа по умолчанию осуществляется среди группы ответов, задаваемых в параметре answer_list, посредством поиска строки "checked" в answer_list["param"][i]; если такая строка будет найдена, то метод добавит данный ID ответа (хранимый в answer_list["reference_id"][i]) в результирующий массив.

Метод нестатический.

Параметры метода

Параметр | Описание
question_sid | Символьный идентификатор вопроса.
answer_list Массив ответов типа "multiselect" на вопрос question_sid. Минимально требуемая структура данного массива:
Array
(
    [reference_id] => Array
        (
            [0] => ID ответа 1
            [1] => ID ответа 2
            [2] => ID ответа 3
            ...
        )

    [param] => Array
        (
            [0] => параметр ответа 1
            [1] => параметр ответа 2
            [2] => параметр ответа 3
            ...
        )
)
form_values Ассоциированный массив значений, пришедших с веб-формы при создании нового или редактировании существующего результата (стандартный массив $_REQUEST). Данный массив может быть также получен с помощью функции CFormResult::GetDataByIDForHTML.

Параметр необязательный. По умолчанию - "false".

Смотрите также

  • CForm::GetMultiSelectField

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
  // используем данные пришедшие с формы
  $arrVALUES = $_REQUEST;
}
else
{
  // сформируем этот массив из данных по результату
  $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form action="" method="POST">
<table>
  <tr>
    <td>Ваше образование:</td>
    <td><?

      // символьный идентификатор вопроса
      $QUESTION_SID = "EDUCATION";

      // массив описывающий элементы списка множественного выбора
      $arMultiSelect = array (

        "reference" => array (
            "начальное",
            "средне-специальное",
            "высшее",
          ),

        "reference_id" => array (
            602,
            603,
            604,
          ),

        "param" => array (
            "",
            "",
            "checked", // значение по умолчанию
          )
      );

      // получим текущее значение выпадающего списка
      $arValues = CForm::GetMultiSelectValue($QUESTION_SID, $arMultiSelect, $arrVALUES);

      // выведем список множественного выбора
      echo CForm::GetMultiSelectField(
        $QUESTION_SID,           // символьный идентификатор вопроса
        $arMultiSelect,          // массив описывающий элементы списка
        $arValues,               // значения выбранных элементов списка
        10,                      // высота списка
        "class=\"inputselect\""  // стиль списка
        );
      ?></td>
  </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetNumberFilter

Веб-формы>Классы>CForm>GetNumberFilter (3.1.1)

CForm::GetNumberFilter

Описание и параметры

string
CForm::GetNumberFilter(
 int filter_sid,
 int size = "10",
 string add_to_text = "class=\"inputtext\""
)

Возвращает HTML код поля фильтра, предназначенного для фильтрации результатов по цифровым значениям, введенным в качестве ответа на вопрос веб-формы, либо цифровым значениям полей веб-формы. Возвращаемый HTML код включает в себя два поля, предназначенных для ввода числового интервала. Метод нестатический.

Примечание
Имена результирующих HTML полей будут сформированы по следующим маскам:
find_filter_sid_1 - первое поля числового интервала (с)
find_filter_sid_2 - второе поле числового интервала (по)

Параметры метода

Параметр Описание С версии
filter_sid Идентификатор поля фильтра. Формируется по следующему шаблону:
FSID_QSID_PTYPE_integer,
где:
  • FSID - символьный идентификатор веб-формы,
  • QSID - символьный идентификатор вопроса/поля веб-формы;
  • PTYPE - тип параметра, по которому будет фильтрация, возможны следующие значения:
    • ANSWER_TEXT - параметр ANSWER_TEXT вопроса веб-формы;
    • ANSWER_VALUE - параметр ANSWER_VALUE вопроса веб-формы;
    • USER - для вопроса веб-формы - вводимое с клавиатуры значение, для полей веб-формы - значение этого поля веб-формы.
Примеры:
  • ANKETA_AGE_USER_integer;
  • ANKETA_CAR_POWER_ANSWER_VALUE_integer.
size Ширина однострочного текстового поля:
<input type="text" size="size" ...>

Параметр необязательный. По умолчанию - "10".
add_to_text Произвольный HTML, который будет добавлен в теги однострочных текстовых полей, в которых вводится дата:
<input type="text" add_to_text ...>

Параметр необязательный. По умолчанию - "class=\"inputtext\"".

Смотрите также

  • CalendarPeriod
  • CForm::GetTextFilter
  • CForm::GetDropDownFilter
  • CForm::GetDateFilter
  • CForm::GetExistFlagFilter

Примеры использования

<form name="form1" action="" method="POST">
<table>
    <tr>
        <td>Возраст:</td>
        <td><?
            echo CForm::GetNumberFilter(
                "ANKETA_AGE_USER_integer",
                "10",
                "class=\"inputtext\""
                );
            ?></td>
    </tr>
</table>
<input type="submit" value="Фильтр">
</form>


GetPasswordField

Веб-формы>Классы>CForm>GetPasswordField (3.3.0)

CForm::GetPasswordField

Описание и параметры

string
CForm::GetPasswordField(
 int answer_id,
 string value = "",
 mixed size = "",
 string add_to_text = "class=\"inputtext\""
)

Возвращает HTML код однострочного текстового поля. Данное поле предназначено для ввода ответа типа "password". Метод нестатический.

Метод может использоваться как в форме создания нового результата, так и в форме редактирования существующего.

Примечание
Имя результирующего HTML поля будет сформировано по следующей маске:
form_password_answer_id

Параметры метода

Параметр | Описание
answer_id | ID ответа.
value | Значение результирующего текстового поля: <input type="password" value="value" ...> Параметр необязательный. По умолчанию - "".
size | Ширина результирующего текстового поля: <input type="password" size="size" ...> Параметр необязательный. По умолчанию - "".
add_to_text | Произвольный HTML, который будет добавлен в результирующий HTML тег текстового поля: <input type="password" add_to_text ...> Параметр необязательный. По умолчанию - "class=\"inputtext\"".

Смотрите также

  • CForm::GetPasswordValue
  • Имена HTML полей

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
    // используем данные пришедшие с формы
    $arrVALUES = $_REQUEST;
}
else
{
    // сформируем этот массив из данных по результату
    $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form action="" method="POST">
<table>
    <tr>
        <td>Пароль:</td>
        <td><?

            // массив описывающий поле для ввода пароля
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 609,   // ID поля для ответа на вопрос "Пароль"
                "FIELD_WIDTH"   => 10,    // ширина поля
                "FIELD_PARAM"   => ""     // параметры поля
                );

            // получим текущее значение
            $value = CForm::GetPasswordValue($arAnswer["ID"], $arAnswer, $arrVALUES);

            // выведем поле
            echo CForm::GetPasswordField(
                $arAnswer["ID"],
                $value,
                $arAnswer["FIELD_WIDTH"],
                $arAnswer["FIELD_PARAM"]
                );
            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetPasswordValue

Веб-формы>Классы>CForm>GetPasswordValue (3.3.0)

CForm::GetPasswordValue

Описание и параметры

string
CForm::GetPasswordValue(
 int answer_id,
 array answer,
 mixed form_values = false
)

Если массив, переданный в параметре form_values, инициализирован (например, в момент редактирования результата), то метод возвращает текущее значение ответа типа "password", ID которого передается в параметре answer_id.

Если массив, переданный в параметре form_values, не инициализирован (например, в момент создания нового результата), то метод вернет значение по умолчанию для данного ответа (т.е. то что задается в answer["VALUE"]).

Метод нестатический.

Параметры метода

Параметр | Описание
answer_id | ID ответа.
answer | Массив, описывающий параметры ответа, обязательным элементом которого является элемент с ключом VALUE и значением, в котором содержится значение по умолчанию для ответа. Как правило, таким значением по умолчанию становится параметр ANSWER_VALUE ответа.
form_values | Ассоциированный массив значений, пришедших с веб-формы при создании нового или редактировании существующего результата (стандартный массив $_REQUEST). Данный массив может быть также получен с помощью метода CFormResult::GetDataByIDForHTML. Параметр необязательный. По умолчанию - "false".

Смотрите также

  • CForm::GetPasswordField

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
    // используем данные пришедшие с формы
    $arrVALUES = $_REQUEST;
}
else
{
    // сформируем этот массив из данных по результату
    $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form action="" method="POST">
<table>
    <tr>
        <td>Пароль:</td>
        <td><?

            // массив описывающий поле для ввода пароля
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 609,   // ID поля для ответа на вопрос "Пароль"
                "FIELD_WIDTH"   => 10,    // ширина поля
                "FIELD_PARAM"   => ""     // параметры поля
                );

            // получим текущее значение
            $value = CForm::GetPasswordValue($arAnswer["ID"], $arAnswer, $arrVALUES);

            // выведем поле
            echo CForm::GetPasswordField(
                $arAnswer["ID"],
                $value,
                $arAnswer["FIELD_WIDTH"],
                $arAnswer["FIELD_PARAM"]
                );
            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetPermission

Веб-формы>Классы>CForm>GetPermission (3.1.1)

CForm::GetPermission

Описание и параметры

int
CForm::GetPermission(
 int form_id,
 array groups = false,
 string from_db = ""
)

Возвращает право доступа к веб-форме:

  • 1 - доступ закрыт (форма и ее результаты полностью недоступны);
  • 10 - заполнение формы (посетитель может только заполнить и сохранить форму);
  • 15 - редактирование своего результата (посетитель получает возможность видеть список своих результатов, который он может фильтровать и сортировать; также посетитель может просмотреть, изменить и удалить свой результат);
  • 20 - просмотр всех результатов (посетитель получает возможность просмотра всех активных результатов);
  • 25 - редактирование всех результатов и просмотр настроек формы (посетитель получает возможность просмотра и редактирования всех результатов в зависимости от их статусов; также, если у него открыт доступ к административной части модуля, доступ на просмотр настроек формы);
  • 30 - полный доступ (включает в себя все вышеописанные права, а также право на изменение настроек формы).

Метод нестатический.

Параметры метода

Параметр | Описание
form_id | ID веб-формы.
groups | Массив ID групп пользователей, для которых нужно определить право доступа. Параметр необязательный. По умолчанию - "false" (группы текущего пользователя).
from_db | Если значение равно "Y", право доступа определяется без учета значения по умолчанию, устанавливаемого в настройках модуля Веб-формы. Параметр необязательный.

Смотрите также

  • Права на веб-форму
  • CFormStatus::GetPermissions
  • CFormStatus::GetPermissionList
  • CFormResult::GetPermissions

Примеры использования

<?
$FORM_ID = 4;
// получим права текущего пользователя
$permission = CForm::GetPermission($FORM_ID);
if ($permission==10) echo "У вас есть право на заполнение веб-формы";
?>


GetRadioField

Веб-формы>Классы>CForm>GetRadioField (3.1.1)

CForm::GetRadioField

Описание и параметры

string
CForm::GetRadioField(
 string question_sid,
 int answer_id,
 mixed value = "",
 string add_to_radio = "class=\"inputradio\""
)

Возвращает HTML код переключателя одиночного выбора (radio-кнопка), предназначенного для выбора ответа типа "radio" на вопрос, символьный идентификатор которого передается в параметре question_sid.

Метод может использоваться как в форме содания нового результата, так и в форме редактирования существующего. Метод нестатический.

Имя результирующего HTML поля будет сформировано по следующей маске: form_radio_question_sid

Параметры метода

Параметр | Описание
question_sid | Символьный идентификатор вопроса.
answer_id | ID ответа.
value | Если в данном параметре будет передано значение совпадающее с answer_id, то переключатель одиночного выбора будет выбран (checked): <input type="radio" checked ...> Параметр необязательный. По умолчанию - "".
add_to_radio | Произвольный HTML который будет добавлен в результирующий HTML тег переключателя одиночного выбора: <input type="radio" add_to_radio ...> Необходимо учитывать что если в данном параметре задать ключевое слово "checked", то данный переключатель будет выбран по умолчанию. Параметр необязательный. По умолчанию - "class=\"inputradio\"".

Смотрите также

  • CForm::GetRadioValue
  • Имена HTML полей

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
    // используем данные пришедшие с формы
    $arrVALUES = $_REQUEST;
}
else
{
    // сформируем этот массив из данных по результату
    $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form action="" method="POST">
<table>
    <tr>
        <td>Вы курите?</td>
        <td><?

            /**********************************************************
                выводим две radio-кнопки (да/нет)
                как варианты ответа на вопрос "Вы курите?"
            **********************************************************/

            $QUESTION_SID = "SMOKE"; // символьный идентификатор вопроса

            /***********************
                radio-кнопка "да"
            ***********************/

            // массив описывающий одну radio-кнопку
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 589,    // ID radio-кнопки
                "FIELD_PARAM"   => "checked class=\"inputradio\""   // параметр ответа
                );

            // получим текущее значение
            $value = CForm::GetRadioValue($QUESTION_SID, $arAnswer, $arrVALUES);

            // выведем radio-кнопку
            echo CForm::GetRadioField(
                $QUESTION_SID,
                $arAnswer["ID"],
                $value,
                $arAnswer["FIELD_PARAM"]
                );
            echo "да <br>";

            /***********************
                radio-кнопка "нет"
            ***********************/

            // массив описывающий одну radio-кнопку
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 590,    // ID radio-кнопки
                "FIELD_PARAM"   => ""      // параметр ответа
                );

            // получим текущее значение
            $value = CForm::GetRadioValue($QUESTION_SID, $arAnswer, $arrVALUES);

            // выведем radio-кнопку
            echo CForm::GetRadioField(
                $QUESTION_SID,
                $arAnswer["ID"],
                $value,
                $arAnswer["FIELD_PARAM"]
                );
            echo "нет";
            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetRadioValue

Веб-формы>Классы>CForm>GetRadioValue (3.1.1)

CForm::GetRadioValue

Описание и параметры

int
CForm::GetRadioValue(
 string question_sid,
 array answer,
 mixed form_values = false
)

Если массив, переданный в параметре form_values, инициализирован (например, в момент редактирования результата), то метод возвращает ID ответа, выбранного среди группы ответов типа "radio" на вопрос, символьный идентификатор которого указан в параметре question_sid.

Если массив, переданный в параметре form_values, не инициализирован (например, в момент создания нового результата), то метод вернет ID ответа (answer["ID"]), если он был установлен как ответ по умолчанию (ответами по умолчанию считаются те, у которых присутствует строка "checked" в answer["FIELD_PARAM"]).

Метод нестатический.

Параметры метода

Параметр | Описание
question_sid | Символьный идентификатор вопроса.
answer Массив описывающий параметры ответа, с обязательными ключами:
  • ID - ID ответа;
  • FIELD_PARAM - если значение этого ключа содержит слово "checked", то ID этого ответа будет возвращен данным методом по умолчанию (т.е. при создании нового результата).
form_values Ассоциированный массив значений, пришедших с веб-формы при создании нового или редактировании существующего результата (стандартный массив $_REQUEST). Данный массив может быть также получен с помощью метода CFormResult::GetDataByIDForHTML.

Параметр необязательный. По умолчанию - "false".

Смотрите также

  • CForm::GetRadioField

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
    // используем данные пришедшие с формы
    $arrVALUES = $_REQUEST;
}
else
{
    // сформируем этот массив из данных по результату
    $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form action="" method="POST">
<table>
    <tr>
        <td>Вы курите?</td>
        <td><?

            /**********************************************************
                выводим две radio-кнопки (да/нет)
                как варианты ответа на вопрос "Вы курите?"
            **********************************************************/

            $QUESTION_SID = "SMOKE"; // символьный идентификатор вопроса

            /***********************
                radio-кнопка "да"
            ***********************/

            // массив описывающий одну radio-кнопку
            $arAnswer = array(
                "ID"            => 589,    // ID radio-кнопки
                "FIELD_PARAM"   => "checked class=\"inputradio\""   // параметр ответа
                );

            // получим текущее значение
            $value = CForm::GetRadioValue($QUESTION_SID, $arAnswer, $arrVALUES);

            // выведем radio-кнопку
            echo CForm::GetRadioField(
                $QUESTION_SID,
                $arAnswer["ID"],
                $value,
                $arAnswer["FIELD_PARAM"]
                );
            echo "да <br>";

            /***********************
                radio-кнопка "нет"
            ***********************/

            // массив описывающий одну radio-кнопку
            $arAnswer = array(
                "ID"            => 590,    // ID radio-кнопки
                "FIELD_PARAM"   => ""      // параметр ответа
                );

            // получим текущее значение
            $value = CForm::GetRadioValue($QUESTION_SID, $arAnswer, $arrVALUES);

            // выведем radio-кнопку
            echo CForm::GetRadioField(
                $QUESTION_SID,
                $arAnswer["ID"],
                $value,
                $arAnswer["FIELD_PARAM"]
                );
            echo "нет";
            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetResultAnswerArray

Веб-формы>Классы>CForm>GetResultAnswerArray (3.1.1)

CForm::GetResultAnswerArray

Описание и параметры

CForm::GetResultAnswerArray(
 int form_id,
 array &columns,
 array &answers,
 array &answers2 = array(),
 array filter = array(),
)

Возвращает массивы, описывающие вопросы и поля веб-формы, а также ответы на вопросы. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
form_id | ID формы. | Удален с 3.3.10
columns Параметр примет значение ссылки на массив, описывающий те вопросы и поля формы, которые:
  1. активны;
  2. включены в таблицу результатов.
Ключами данного массива являются ID вопросов/полей, а значениями - массив, описывающий сам вопрос/поле, в свою очередь, имеющий следующие ключи:
  • ID - ID вопроса/поля;
  • FORM_ID - ID формы;
  • TIMESTAMP_X - дата изменения вопроса/поля;
  • ACTIVE - флаг активности [Y|N];
  • TITLE - текст вопроса, либо заголовок поля;
  • TITLE_TYPE - тип текста;
  • SID - символьный идентификатор вопроса/поля;
  • C_SORT - порядок сортировки;
  • ADDITIONAL - если Y - то данная запись является вопросом; если N - то полем формы;
  • REQUIRED - флаг обязательности ответа на вопрос [Y|N];
  • IN_FILTER - флаг показывающий отражен ли вопрос/поле в фильтре формы результатов [Y|N];
  • IN_RESULTS_TABLE - флаг показывающий отображается ли вопрос/поле в таблице результатов [Y|N];
  • IN_EXCEL_TABLE - флаг показывающий отображается ли вопрос/поле в Excel-таблице результатов [Y|N];
  • FIELD_TYPE тип поля, возможны следующие значения:
    • text - текст;
    • integer - число;
    • date - дата.
  • IMAGE_ID - ID изображения в описании вопроса;
  • COMMENTS - служебный комментарий;
  • FILTER_TITLE - заголовок поля фильтра по данному вопросу/полю;
  • RESULTS_TABLE_TITLE - заголовок столбца таблицы результатов.
Пример:
Array
(
    [140] => Array
        (
            [ID] => 140
            [FORM_ID] => 4
            [TIMESTAMP_X] => 19.05.2005 11:42:04
            [ACTIVE] => Y
            [TITLE] => Фамилия, имя, отчество
            [TITLE_TYPE] => html
            [SID] => VS_NAME
            [C_SORT] => 100
            [ADDITIONAL] => N
            [REQUIRED] => Y
            [IN_FILTER] => Y
            [IN_RESULTS_TABLE] => N
            [IN_EXCEL_TABLE] => N
            [FIELD_TYPE] =>
            [IMAGE_ID] =>
            [COMMENTS] =>
            [FILTER_TITLE] =>
            [RESULTS_TABLE_TITLE] =>
        )

    [144] => Array
        (
            [ID] => 144
            [FORM_ID] => 4
            [TIMESTAMP_X] => 11.11.2004 18:11:21
            [ACTIVE] => Y
            [TITLE] => Какие области знаний вас интересуют ?
            [TITLE_TYPE] => text
            [SID] => VS_INTEREST
            [C_SORT] => 500
            [ADDITIONAL] => N
            [REQUIRED] => N
            [IN_FILTER] => Y
            [IN_RESULTS_TABLE] => Y
            [IN_EXCEL_TABLE] => Y
            [FIELD_TYPE] =>
            [IMAGE_ID] =>
            [COMMENTS] =>
            [FILTER_TITLE] =>
            [RESULTS_TABLE_TITLE] =>
        )
    ...
)
answers Параметр примет значение ссылки на массив, содержащий ответы на вопросы формы, а также значения полей формы. Ключами данного массива являются:
  • RESULT_ID - ID результата;
  • FIELD_ID - ID вопроса/поля;
  • SID - символьный идентификатор вопроса/поля;
  • TITLE - текст вопроса или заголовок поля веб-формы;
  • TITLE_TYPE - тип текста вопроса, допустимы следующие значения:
    • text - текст;
    • html - HTML код.
  • FILTER_TITLE - подпись поля фильтра по данному вопросу/полю;
  • RESULTS_TABLE_TITLE - подпись столбца таблицы результатов;
  • ANSWER_ID - ID ответа;
  • ANSWER_TEXT - параметр ответа ANSWER_TEXT, записанный в таблицу результата;
  • MESSAGE - параметр ответа ANSWER_TEXT, хранящийся в таблице ответов (синоним ключа ANSWER_TEXT);
  • ANSWER_VALUE - параметр ответа ANSWER_VALUE, записанный в таблицу результата;
  • VALUE - параметр ответа ANSWER_VALUE, хранящийся в таблице ответов (синоним ключа ANSWER_VALUE);
  • USER_TEXT - текстовое значение, введенное пользователем;
  • USER_DATE - дата, введенная пользователем (данный ключ может содержать значение, только если FIELD_TYPE="date");
  • USER_FILE_ID - ID файла загруженного пользователем (данный ключ может содержать значение, только если FIELD_TYPE="image" или FIELD_TYPE="file");
  • USER_FILE_NAME - оригинальное имя загруженного файла (данный ключ может содержать значение, только если FIELD_TYPE="image" или FIELD_TYPE="file");
  • USER_FILE_IS_IMAGE - "Y" - если FIELD_TYPE="image", "N" - если FIELD_TYPE="file"
  • USER_FILE_HASH - уникальный хеш, используемый при показе файла (данный ключ может содержать значение, только если FIELD_TYPE="file");
  • USER_FILE_SUFFIX - суффикс к расширению загруженного файла (данный ключ может содержать значение, только если FIELD_TYPE="file");
  • USER_FILE_SIZE - размер файла в байтах (данный ключ может содержать значение, только если FIELD_TYPE="image" или FIELD_TYPE="file");
  • FIELD_TYPE - тип поля ответа, возможны следующие значения:
    • text - однострочное текстовое поле;
    • textarea - многострочное текстовое поле;
    • radio - переключатель одиночного выбора;
    • checkbox - флаг множественного выбора;
    • dropdown - элемента выпадающего списка одиночного выбора;
    • multiselect - элемента списка множественного выбора;
    • date - поле для ввода дата в календарем;
    • image - поле для ввода изображения;
    • file - поле для ввода произвольного файла;
    • password - однострочное поле для ввода пароля.
  • FIELD_WIDTH - ширина поля ответа;
  • FIELD_HEIGHT - высота поля ответа;
  • FIELD_PARAM - параметры поля ответа.
Пример:
Array
(
    [186] => Array
        (
            [140] => Array
                (
                    [586] => Array
                        (
                            [RESULT_ID] => 186
                            [FIELD_ID] => 140
                            [SID] => VS_NAME
                            [TITLE] => Фамилия, имя, отчество
                            [TITLE_TYPE] => html
                            [FILTER_TITLE] =>
                            [RESULTS_TABLE_TITLE] =>
                            [ANSWER_ID] => 586
                            [ANSWER_TEXT] =>
                            [MESSAGE] =>
                            [ANSWER_VALUE] =>
                            [VALUE] =>
                            [USER_TEXT] => Иванов Дмитрий Витальевич
                            [USER_DATE] =>
                            [USER_FILE_ID] =>
                            [USER_FILE_NAME] =>
                            [USER_FILE_IS_IMAGE] =>
                            [USER_FILE_HASH] =>
                            [USER_FILE_SUFFIX] =>
                            [USER_FILE_SIZE] =>
                            [FIELD_TYPE] => text
                            [FIELD_WIDTH] => 50
                            [FIELD_HEIGHT] => 0
                            [FIELD_PARAM] =>
                        )
                )

            [144] => Array
                (
                    [594] => Array
                        (
                            [RESULT_ID] => 186
                            [FIELD_ID] => 144
                            [SID] => VS_INTEREST
                            [TITLE] => Какие области знаний вас интересуют ?
                            [TITLE_TYPE] => text
                            [FILTER_TITLE] =>
                            [RESULTS_TABLE_TITLE] =>
                            [ANSWER_ID] => 594
                            [ANSWER_TEXT] => иностранные языки
                            [MESSAGE] => иностранные языки
                            [ANSWER_VALUE] => 4
                            [VALUE] => 4
                            [USER_TEXT] =>
                            [USER_DATE] =>
                            [USER_FILE_ID] =>
                            [USER_FILE_NAME] =>
                            [USER_FILE_IS_IMAGE] =>
                            [USER_FILE_HASH] =>
                            [USER_FILE_SUFFIX] =>
                            [USER_FILE_SIZE] =>
                            [FIELD_TYPE] => checkbox
                            [FIELD_WIDTH] => 0
                            [FIELD_HEIGHT] => 0
                            [FIELD_PARAM] =>
                        )

                    [595] => Array
                        (
                            [RESULT_ID] => 186
                            [FIELD_ID] => 144
                            [SID] => VS_INTEREST
                            [TITLE] => Какие области знаний вас интересуют ?
                            [TITLE_TYPE] => text
                            [FILTER_TITLE] =>
                            [RESULTS_TABLE_TITLE] =>
                            [ANSWER_ID] => 595
                            [ANSWER_TEXT] => програмирование
                            [MESSAGE] => програмирование
                            [ANSWER_VALUE] => 5
                            [VALUE] => 5
                            [USER_TEXT] =>
                            [USER_DATE] =>
                            [USER_FILE_ID] =>
                            [USER_FILE_NAME] =>
                            [USER_FILE_IS_IMAGE] =>
                            [USER_FILE_HASH] =>
                            [USER_FILE_SUFFIX] =>
                            [USER_FILE_SIZE] =>
                            [FIELD_TYPE] => checkbox
                            [FIELD_WIDTH] => 0
                            [FIELD_HEIGHT] => 0
                            [FIELD_PARAM] => SELECTED class=inputcheckbox
                        )
                )
            ...
        )
    ...
)
answers2 Параметр примет значение ссылки на массив, содержащий, по сути, те же данные, что и массив answers, но имеющий несколько другую структуру.

Пример:
Array
(
    [186] => Array
        (
            [VS_NAME] => Array
                (
                    [0] => Array
                        (
                            [RESULT_ID] => 186
                            [FIELD_ID] => 140
                            [SID] => VS_NAME
                            [TITLE] => Фамилия, имя, отчество
                            [TITLE_TYPE] => html
                            [FILTER_TITLE] =>
                            [RESULTS_TABLE_TITLE] =>
                            [ANSWER_ID] => 586
                            [ANSWER_TEXT] =>
                            [MESSAGE] =>
                            [ANSWER_VALUE] =>
                            [VALUE] =>
                            [USER_TEXT] => Иванов Дмитрий Витальевич
                            [USER_DATE] =>
                            [USER_FILE_ID] =>
                            [USER_FILE_NAME] =>
                            [USER_FILE_IS_IMAGE] =>
                            [USER_FILE_HASH] =>
                            [USER_FILE_SUFFIX] =>
                            [USER_FILE_SIZE] =>
                            [FIELD_TYPE] => text
                            [FIELD_WIDTH] => 50
                            [FIELD_HEIGHT] => 0
                            [FIELD_PARAM] =>
                        )

                )

           [VS_INTEREST] => Array
                (
                    [0] => Array
                        (
                            [RESULT_ID] => 186
                            [FIELD_ID] => 144
                            [SID] => VS_INTEREST
                            [TITLE] => Какие области знаний вас интересуют ?
                            [TITLE_TYPE] => text
                            [FILTER_TITLE] =>
                            [RESULTS_TABLE_TITLE] =>
                            [ANSWER_ID] => 594
                            [ANSWER_TEXT] => иностранные языки
                            [MESSAGE] => иностранные языки
                            [ANSWER_VALUE] => 4
                            [VALUE] => 4
                            [USER_TEXT] =>
                            [USER_DATE] =>
                            [USER_FILE_ID] =>
                            [USER_FILE_NAME] =>
                            [USER_FILE_IS_IMAGE] =>
                            [USER_FILE_HASH] =>
                            [USER_FILE_SUFFIX] =>
                            [USER_FILE_SIZE] =>
                            [FIELD_TYPE] => checkbox
                            [FIELD_WIDTH] => 0
                            [FIELD_HEIGHT] => 0
                            [FIELD_PARAM] =>
                        )

                    [1] => Array
                        (
                            [RESULT_ID] => 186
                            [FIELD_ID] => 144
                            [SID] => VS_INTEREST
                            [TITLE] => Какие области знаний вас интересуют ?
                            [TITLE_TYPE] => text
                            [FILTER_TITLE] =>
                            [RESULTS_TABLE_TITLE] =>
                            [ANSWER_ID] => 595
                            [ANSWER_TEXT] => програмирование
                            [MESSAGE] => програмирование
                            [ANSWER_VALUE] => 5
                            [VALUE] => 5
                            [USER_TEXT] =>
                            [USER_DATE] =>
                            [USER_FILE_ID] =>
                            [USER_FILE_NAME] =>
                            [USER_FILE_IS_IMAGE] =>
                            [USER_FILE_HASH] =>
                            [USER_FILE_SUFFIX] =>
                            [USER_FILE_SIZE] =>
                            [FIELD_TYPE] => checkbox
                            [FIELD_WIDTH] => 0
                            [FIELD_HEIGHT] => 0
                            [FIELD_PARAM] => SELECTED class=inputcheckbox
                        )
                )
            ...
        )
    ...
)
filter

 Массив для фильтрации выбираемых значений. Необязательный параметр. В массиве допустимы следующие ключи:
  • RESULT_ID* - ID результата (по умолчанию будет искаться точное совпадение);
  • RESULT_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по RESULT_ID будет искаться вхождение;
  • FIELD_ID* - ID вопроса/поля (по умолчанию будет искаться точное совпадение);
  • FIELD_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по FIELD_ID будет искаться вхождение;
  • FIELD_SID* - символьный код вопроса/поля (по умолчанию будет искаться вхождение);
  • FIELD_SID_EXACT_MATCH - если значение равно "Y", то при фильтрации по FIELD_SID будет искаться точное совпадение;
  • IN_RESULTS_TABLE - если значение равно "Y", то ответы на вопрос (либо значения поля веб-формы) будет отображены в таблице результатов;
  • IN_EXCEL_TABLE - если значение равно "Y", то ответы на вопрос (либо значения поля веб-формы) будет отображены в Excel таблице результатов.
* - допускается сложная логика.
arrAnswersVarname | 3.3.10. Удален с версии 4.0.4
web_form_id | ID формы. | 3.3.10
arrAnswersSID | 4.0.4

Смотрите также

  • CFormResult::GetDataByID
  • CFormField::GetList
  • CFormAnswer::GetList

Примеры использования

// получим данные по результату ID=145
CForm::GetResultAnswerArray($FORM_ID,
    $arrColumns,
    $arrAnswers,
    $arrAnswersVarname,
    array("RESULT_ID" => "145"));

echo "<pre>";
echo "arrColumns:";
print_r($arrColumns);
echo "arrAnswers:";
print_r($arrAnswers);
echo "arrAnswersVarname:";
print_r($arrAnswersVarname);
echo "</pre>";


GetTextAreaField

Веб-формы>Классы>CForm>GetTextAreaField (3.1.1)

CForm::GetTextAreaField

Описание и параметры

string
CForm::GetTextAreaField(
 int answer_id,
 int cols = "",
 int rows = "",
 string add_to_textarea = "class=\"inputtextarea\""
 string value = "",
)

Возвращает HTML код многострочного текстового поля. Данное поле предназначено для ввода ответа типа "textarea".

Метод может использоваться как в форме создания нового результата, так и в форме редактирования существующего. Метод нестатический.

Примечание
Имя результирующего HTML поля будет сформировано по следующей маске:
form_textarea_answer_id

Параметры метода

Параметр | Описание
answer_id | ID ответа.
cols | Ширина результирующего многострочного текстового поля: <textarea cols="cols" ...> Параметр необязательный. По умолчанию - "".
rows | Высота результирующего многострочного текстового поля: <textarea rows="rows" ...> Параметр необязательный. По умолчанию - "".
add_to_textarea | Произвольный HTML, который будет добавлен в результирующий тег многострочного текстового поля: <textarea add_to_textarea ...> Параметр необязательный. По умолчанию - "class=\"inputtextarea\"".
value | Значение результирующего многострочного текстового поля: <textarea ...>value</textarea> Параметр необязательный. По умолчанию - "".

Смотрите также

  • CForm::GetTextAreaValue
  • Имена HTML полей

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
    // используем данные пришедшие с формы
    $arrVALUES = $_REQUEST;
}
else
{
    // сформируем этот массив из данных по результату
    $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form action="" method="POST">
<table>
    <tr>
        <td>Адрес:</td>
        <td><?

            // массив описыващий многострочное текстовое поле
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 588,   // ID поля для ответа на вопрос "Ваш адрес?"
                "VALUE"         => "",    // параметр ANSWER_VALUE (значение по умолчанию)
                "FIELD_WIDTH"   => 10,    // ширина поля
                "FIELD_HEIGHT"  => 5,     // высота поля
                "FIELD_PARAM"   => ""     // параметры поля
                );

            // получим текущее значение
            $value = CForm::GetTextAreaValue($arAnswer["ID"], $arAnswer, $arrVALUES);

            // выведем поле
            echo CForm::GetTextAreaField(
                $arAnswer["ID"],
                $arAnswer["FIELD_WIDTH"],
                $arAnswer["FIELD_HEIGHT"],
                $arAnswer["FIELD_PARAM"],
                $value
                );
            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetTextAreaValue

Веб-формы>Классы>CForm>GetTextAreaValue (3.1.1)

CForm::GetTextAreaValue

Описание и параметры

string
CForm::GetTextAreaValue(
 int answer_id,
 array answer,
 mixed form_values = false
)

Если массив, переданный в параметре form_values, инициализирован (например, в момент редактирования результата), то метод возвращает текущее значение ответа типа "textarea", ID которого передается в параметре answer_id.

Если массив, переданный в параметре form_values, не инициализирован (например, в момент создания нового результата), то метод вернет значение по умолчанию для данного ответа (т.е. то что задается в answer["VALUE"]).

Метод нестатический.

Параметры метода

Параметр | Описание
answer_id | ID ответа.
answer | Массив, описывающий параметры ответа, обязательным элементом которого является элемент с ключом VALUE и значением, в котором содержится значение по умолчанию для ответа. Как правило, таким значением по умолчанию становится параметр ANSWER_VALUE ответа.
form_values | Ассоциированный массив значений, пришедших с веб-формы при создании нового или редактировании существующего результата (стандартный массив $_REQUEST). Данный массив может быть также получен с помощью метода CFormResult::GetDataByIDForHTML. Параметр необязательный. По умолчанию - "false".

Смотрите также

  • CForm::GetTextAreaField

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
    // используем данные пришедшие с формы
    $arrVALUES = $_REQUEST;
}
else
{
    // сформируем этот массив из данных по результату
    $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form action="" method="POST">
<table>
    <tr>
        <td>Адрес:</td>
        <td><?

            // массив описыващий многострочное текстовое поле
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 588,   // ID поля для ответа на вопрос "Ваш адрес?"
                "VALUE"         => "",    // параметр ANSWER_VALUE (значение по умолчанию)
                "FIELD_WIDTH"   => 10,    // ширина поля
                "FIELD_HEIGHT"  => 5,     // высота поля
                "FIELD_PARAM"   => ""     // параметры поля
                );

            // получим текущее значение
            $value = CForm::GetTextAreaValue($arAnswer["ID"], $arAnswer, $arrVALUES);

            // выведем поле
            echo CForm::GetTextAreaField(
                $arAnswer["ID"],
                $arAnswer["FIELD_WIDTH"],
                $arAnswer["FIELD_HEIGHT"],
                $arAnswer["FIELD_PARAM"],
                $value
                );
            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetTextField

Веб-формы>Классы>CForm>GetTextField (3.1.1)

CForm::GetTextField

Описание и параметры

string
CForm::GetTextField(
 int answer_id,
 string value = "",
 mixed size = "",
 string add_to_text = "class=\"inputtext\""
)

Возвращает HTML код однострочного текстового поля. Данное поле предназначено для ввода ответа типа "text".

Метод может использоваться как в форме создания нового результата, так и в форме редактирования существующего. Метод нестатический.

Примечание
Имя результирующего HTML поля будет сформировано по следующей маске:
form_text_answer_id

Параметры метода

Параметр | Описание
answer_id | ID ответа.
value | Значение результирующего текстового поля: <input type="text" value="value" ...> Параметр необязательный. По умолчанию - "".
size | Ширина результирующего текстового поля: <input type="text" size="size" ...> Параметр необязательный. По умолчанию - "".
add_to_text | Произвольный HTML, который будет добавлен в результирующий HTML тег текстового поля: <input type="text" add_to_text ...> Параметр необязательный. По умолчанию - "class=\"inputtext\"".

Смотрите также

  • CForm::GetTextValue
  • Имена HTML полей

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
    // используем данные пришедшие с формы
    $arrVALUES = $_REQUEST;
}
else
{
    // сформируем этот массив из данных по результату
    $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form action="" method="POST">
<table>
    <tr>
        <td>Фамилия:</td>
        <td><?

            // массив описывающий однострочное текстовое поле
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 586,   // ID поля для ответа на вопрос "Ваша фамилия?"
                "VALUE"         => "",    // параметр ANSWER_VALUE (значение по умолчанию)
                "FIELD_WIDTH"   => 10,    // ширина поля
                "FIELD_PARAM"   => ""     // параметры поля
                );

            // получим текущее значение
            $value = CForm::GetTextValue($arAnswer["ID"], $arAnswer, $arrVALUES);

            // выведем поле
            echo CForm::GetTextField(
                $arAnswer["ID"],
                $value,
                $arAnswer["FIELD_WIDTH"],
                $arAnswer["FIELD_PARAM"]
                );
            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


GetTextFilter

Веб-формы>Классы>CForm>GetTextFilter (3.1.1)

CForm::GetTextFilter

Описание и параметры

string
CForm::GetTextFilter(
 int filter_sid,
 int size = 45,
 string add_to_text = "class=\"inputtext\"",
 string add_to_checkbox = "class=\"inputcheckbox\""
)

Возвращает HTML код поля фильтра, предназначенного для фильтрации результатов по текстовым значениям ответов на вопросы веб-формы или текстовым значениям полей веб-формы. Возвращаемый HTML код включает в себя однострочное текстовое поле и флаг для установки точности фильтрации. Метод нестатический.

Примечание
Имена результирующих HTML полей будут сформированы по следующим маскам:
find_filter_sid - однострочное текстовое поля
find_filter_sid_exact_match - флаг для установки точности фильтрации

Параметры метода

Параметр Описание С версии
filter_sid Идентификатор поля фильтра. Формируется по следующему шаблону:
FSID_QSID_PTYPE_text,
где:
  • FSID - символьный идентификатор веб-формы;
  • QSID - символьный идентификатор вопроса/поля веб-формы;
  • PTYPE - тип параметра по которому будет фильтрация, возможны следующие значения:
    • ANSWER_TEXT - параметр ANSWER_TEXT вопроса веб-формы;
    • ANSWER_VALUE - параметр ANSWER_VALUE вопроса веб-формы;
    • USER - для вопроса веб-формы - вводимое с клавиатуры значение, для полей веб-формы - значение этого поля веб-формы.
Примеры:
  • ANKETA_USER_NAME_USER_text;
  • ANKETA_TEST_FIELD_USER_text.
size Ширина однострочного текстового поля:
<input type="text" size="size" ...>

Параметр необязательный. По умолчанию - "45".
add_to_text Произвольный HTML, который будет добавлен в тег однострочного текстового поля:
<input type="text" add_to_text ...>

Параметр необязательный. По умолчанию - "class='typeinput'". С версии 4.0.4 - "class=\"inputtext\"" 		3.2.5
add_to_checkbox Произвольный HTML, который будет добавлен в тег флага для установки точности фильтрации:
<input type="checkbox" add_to_checkbox ...>

Параметр необязательный. По умолчанию - "class=\"inputcheckbox\"". 		3.3.10

Смотрите также

  • CForm::GetDateFilter
  • CForm::GetDropDownFilter
  • CForm::GetNumberFilter
  • CForm::GetExistFlagFilter

Примеры использования

<form action="" method="POST">
<table>
    <tr>
        <td>Фамилия:</td>
        <td><?
            echo CForm::GetTextFilter(
                "ANKETA_USER_NAME_USER_text",
                45,
                "class=\"inputtext\"",
                "class=\"inputcheckbox\""
                );
            ?></td>
    </tr>
</table>
<input type="submit" value="Фильтр">
</form>


GetTextValue

Веб-формы>Классы>CForm>GetTextValue (3.1.1)

CForm::GetTextValue

Описание и параметры

string
CForm::GetTextValue(
 int answer_id,
 array answer,
 mixed form_values = false
)

Если массив, переданный в параметре form_values, инициализирован (например, в момент редактирования результата), то метод возвращает текущее значение ответа типа "text", ID которого передается в параметре answer_id.

Если массив, переданный в параметре form_values, не инициализирован (например, в момент создания нового результата), то метод вернет значение по умолчанию для данного ответа (т.е. то что задается в answer["VALUE"]).

Метод нестатический.

Параметры метода

Параметр | Описание
answer_id | ID ответа.
answer | Массив, описывающий параметры ответа, обязательным элементом которого является элемент с ключом VALUE и со значением в котором содержится значение по умолчанию для ответа. Как правило таким значением по умолчанию становится параметр ANSWER_VALUE ответа.
form_values | Ассоциированный массив значений, пришедших с веб-формы при создании нового или редактировании существующего результата (стандартный массив $_REQUEST). Данный массив может быть также получен с помощью метода CFormResult::GetDataByIDForHTML. Параметр необязательный. По умолчанию - "false".

Смотрите также

  • CForm::GetTextField

Примеры использования

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
    // используем данные пришедшие с формы
    $arrVALUES = $_REQUEST;
}
else
{
    // сформируем этот массив из данных по результату
    $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID);
}
?>
<form action="" method="POST">
<table>
    <tr>
        <td>Фамилия:</td>
        <td><?

            // массив описывающий однострочное текстовое поле
            // содержит минимально-необходимые поля
            $arAnswer = array(
                "ID"            => 586,   // ID поля для ответа на вопрос "Ваша фамилия?"
                "VALUE"         => "",    // параметр ANSWER_VALUE (значение по умолчанию)
                "FIELD_WIDTH"   => 10,    // ширина поля
                "FIELD_PARAM"   => ""     // параметры поля
                );

            // получим текущее значение
            $value = CForm::GetTextValue($arAnswer["ID"], $arAnswer, $arrVALUES);

            // выведем поле
            echo CForm::GetTextField(
                $arAnswer["ID"],
                $value,
                $arAnswer["FIELD_WIDTH"],
                $arAnswer["FIELD_PARAM"]
                );
            ?></td>
    </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


IsAdmin

Веб-формы>Классы>CForm>IsAdmin (4.0.4)

CForm::IsAdmin

bool
CForm::IsAdmin()

Возвращает "true", если текущий пользователь имеет административные права на модуль Веб-формы, в противном случае - "false". Метод нестатический.

Параметры метода

Без параметров.

Смотрите также

  • Права на модуль

Примеры использования

<?
if (CForm::IsAdmin())
{
    echo "У вас административные права на модуль Веб-форм.";
}
?>


Reset

Веб-формы>Классы>CForm>Reset (3.1.1)

CForm::Reset

Описание и параметры

bool
CForm::Reset(
 int form_id,
 string check_rights = "Y"
)

Удаляет все результаты веб-формы. Возвращает "true" в случае положительного результата, и "false" - в противном случае. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
form_id | ID веб-формы.
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для удаления всех результатов веб-формы необходимо иметь право [30] Полный доступ на форму, указанную в параметре form_id.

Параметр необязательный. По умолчанию - "Y" (права необходимо проверить). 		4.0.4

Смотрите также

  • CFormField::Reset
  • CFormResult::Reset

Примеры использования

<?
$FORM_ID = 4;
// удалим результаты веб-формы
if (CForm::Reset($FORM_ID))
{
    echo "Результаты веб-формы #4 удалены.";
}
else
{
    // выведем текст ошибки
    global $strError;
    echo $strError;
}
?>


Set

Веб-формы>Классы>CForm>Set (4.0.4)

CForm::Set

Описание и параметры

mixed
CForm::Set(
 array fields,
 mixed form_id = false,
 string check_rights = "Y"
)

Добавляет новую веб-форму или обновляет заданную. Возвращает ID обновленной или добавленной веб-формы в случае положительного результата, в противном случае - "false". Метод нестатический.

Примечание
При обновлении существующей веб-формы (или при добавлении новой веб-формы), автоматически обновляется тип почтового события (либо создаётся новый тип).

Параметры метода

Параметр Описание
fields Массив значений полей; в качестве ключей массива допустимы:
  • NAME* - заголовок веб-формы;
  • SID* - символьный идентификатор веб-формы;
  • C_SORT - индекс сортировки;
  • BUTTON - подпись к кнопке при создании или редактировании результата;
  • USE_RESTRICTIONS - использовать ограничения;
  • RESTRICT_USER - максимальное количество результатов от пользователя;
  • RESTRICT_TIME - минимальный промежуток времени между результатами;
  • DESCRIPTION - описание;
  • DESCRIPTION_TYPE - тип описания, допустимы следующие значения:
    • text - текст;
    • html - HTML код.
  • FILTER_RESULT_TEMPLATE - путь относительно корня к файлу, который будет использован для показа фильтра результатов в административной части модуля;
  • TABLE_RESULT_TEMPLATE - путь относительно корня к файлу, который будет использован для показа таблицы результатов в административной части модуля;
  • STAT_EVENT1 - идентификатор EVENT1 типа события для модуля "Статистика";
  • STAT_EVENT2 - идентификатор EVENT2 типа события для модуля "Статистика";
  • STAT_EVENT3 - дополнительный параметр события для модуля "Статистика";
  • arIMAGE - массив, описывающий изображение веб-формы, допустимы следующие ключи этого массива:
    • name - имя файла;
    • size - размер файла;
    • tmp_name - временный путь на сервере;
    • type - тип загружаемого файла;
    • del - если значение равно "Y", то изображение будет удалено;
    • MODULE_ID - идентификатор модуля "Веб-формы" ("form").
  • USE_CAPTCHA - использование капчи, доступны значения:
    • Y - выводить капчу в публичке,
    • N - не выводить капчу.
  • arSITE - массив идентификаторов сайтов, к которым будет привязана данная форма:
    array("ID_САЙТА_1", "ID_САЙТА_2", ...)
  • arMAIL_TEMPLATE - массив ID почтовых шаблонов, приписанных к данной форме:
    array("ID_ШАБЛОНА_1", "ID_ШАБЛОНА_2", ...)

    Примечание: Будут привязаны только шаблоны почтового события с идентификатором FILLING_FORM_[символьный идентификатор веб-формы]

  • arMENU - массив заголовков меню, отображаемого в административной части и ведущего на результаты данной формы:
    array("ID_ЯЗЫКА_1" => "МЕНЮ_1", "ID_ЯЗЫКА_2" => "МЕНЮ_2", ...)
  • arGROUP - массив, описывающий права групп пользователей на данную веб-форму:
    array("ID_ГРУППЫ_1" => "ПРАВО_1", "ID_ГРУППЫ_2" => "ПРАВО_2", ...)
* - обязательно к заполнению.
form_id ID обновляемой веб-формы.

Параметр необязательный. По умолчанию - "false" (добавление новой веб-формы).
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для обновления параметров веб-формы необходимо иметь право [30] Полный доступ на форму, указанную в параметре form_id. Для добавления новой веб-формы необходимо иметь право [W] Полный доступ на модуль Веб-формы.

Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).

Смотрите также

  • Поля CForm
  • Права на веб-форму
  • CFile::MakeFileArray

Примеры использования

<?
/*************************************************
             Добавление веб-формы
*************************************************/

// создадим массив описывающий изображение
// находящееся в файле на сервере
$arIMAGE = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/web_form.gif");
$arIMAGE["MODULE_ID"] = "form";

$arFields = array(
    "NAME"              => "Анкета посетителя",
    "SID"               => "VISITOR_FORM",
    "C_SORT"            => 300,
    "BUTTON"            => "Сохранить",
    "DESCRIPTION"       => "Заполните пож-та анкету",
    "DESCRIPTION_TYPE"  => "text",
    "STAT_EVENT1"       => "form",
    "STAT_EVENT2"       => "visitor_form",
    "arSITE"            => array("r1"),
    "arMENU"            => array("ru" => "Анкета посетителя", "en" => "Visitor Form"),
    "arGROUP"           => array("2" => "15", "3" => "20"),
    "arIMAGE"           => $arIMAGE
    );

// добавим новую веб-форму
$NEW_ID = CForm::Set($arFields);
if ($NEW_ID>0) echo "Добавлена веб-форма с ID=".$NEW_ID;
else // ошибка
{
    // выводим текст ошибки
    global $strError;
    echo $strError;
}
?>

<?
// пример обновления веб-формы параметры которой были визуально
// отредактированы в административной части

$w = CGroup::GetList($v1, $v2, Array("ADMIN"=>"N"), $v3);
$arGroups = array();
while ($wr=$w->Fetch()) $arGroups[] = array("ID"=>$wr["ID"], "NAME"=>$wr["NAME"]);

$z = CLanguage::GetList($v1, $v2, array("ACTIVE" => "Y"));
$arFormMenuLang = array();
while ($zr=$z->Fetch()) $arFormMenuLang[] = array("LID"=>$zr["LID"], "NAME"=>$zr["NAME"]);

$rs = CSite::GetList(($by="sort"), ($order="asc"));
while ($ar = $rs->Fetch())
{
    if ($ar["DEF"]=="Y") $def_site_id = $ar["ID"];
    $arrSites[$ar["ID"]] = $ar;
}

if ((strlen($save)>0 || strlen($apply)>0) && $REQUEST_METHOD=="POST")
{
    $arIMAGE_ID = $HTTP_POST_FILES["IMAGE_ID"];
    $arIMAGE_ID["MODULE_ID"] = "form";
    $arIMAGE_ID["del"] = ${"IMAGE_ID_del"};
    $arFields = array(
        "NAME"                      => $NAME,
        "SID"                       => $SID,
        "C_SORT"                    => $C_SORT,
        "BUTTON"                    => $BUTTON,
        "DESCRIPTION"               => $DESCRIPTION,
        "DESCRIPTION_TYPE"          => $DESCRIPTION_TYPE,
        "FILTER_RESULT_TEMPLATE"    => $FILTER_RESULT_TEMPLATE,
        "TABLE_RESULT_TEMPLATE"     => $TABLE_RESULT_TEMPLATE,
        "STAT_EVENT1"               => $STAT_EVENT1,
        "STAT_EVENT2"               => $STAT_EVENT2,
        "STAT_EVENT3"               => $STAT_EVENT3,
        "arIMAGE"                   => $arIMAGE_ID,
        "arSITE"                    => $arSITE,
        "arMAIL_TEMPLATE"           => $arMAIL_TEMPLATE
        );

    // меню
    $arMENU = array();
    reset($arFormMenuLang);
    while (list(,$arrL)=each($arFormMenuLang))
    {
        $var = "MENU_".$arrL["LID"];
        global $$var;
        $arMENU[$arrL["LID"]] = $$var;
    }
    $arFields["arMENU"] = $arMENU;

    // права доступа
    $arGROUP = array();
    reset($arGroups);
    while (list(,$arrG)=each($arGroups))
    {
        $var = "PERMISSION_".$arrG["ID"];
        global $$var;
        $arGROUP[$arrG["ID"]] = $$var;
    }
    $arFields["arGROUP"] = $arGROUP;

    if ($ID = CForm::Set($arFields, $ID))
    {
        if (strlen($strError)<=0)
        {
            if (strlen($save)>0) LocalRedirect("form_list.php?lang=".LANGUAGE_ID);
            else LocalRedirect("form_edit.php?ID=".$ID."〈=".LANGUAGE_ID);
        }
    }
    $DB->PrepareFields("b_form");
}
?>


SetMailTemplate

Веб-формы>Классы>CForm>SetMailTemplate (3.1.1)

CForm::SetMailTemplate

Описание и параметры

array
CForm::SetMailTemplate(
 int form_id,
 string add_template = "Y",
 string old_form_sid = ""
)

Создает или обновляет тип почтового события для веб-формы. При необходимости могут быть созданы почтовые шаблоны. Метод возвращает массив идентификаторов новых почтовых шаблонов, если они были созданы. Метод нестатический.

Примечание
При создании нового типа почтового события, символьный идентификатор этого типа задается в виде FORM_FILLING_символьный ID веб-формы.

Параметры метода

Параметр | Описание | С версии
form_id | ID веб-формы, для которой необходимо создать или обновить тип почтового события. | Удален с 3.3.10
add_template | Если значение равно "Y", то будут созданы почтовые шаблоны для обновленного или вновь созданного типа почтового события. Параметр необязательный. По умолчанию - "Y" (создать почтовые шаблоны). |
old_form_sid | Если в данном параметре будет задан символьный идентификатор веб-формы, то все почтовые шаблоны, принадлежащие этой веб-форме, будут приписаны к вновь созданному типу почтового события. Данный параметр используется, как правило, при редактировании веб-формы в момент смены символьного идентификатора. Параметр необязательный. По умолчанию - "" (не приписывать почтовые шаблоны к новому типу почтового события). | 4.0.4
old_varname | Необязательный параметр. | Удален с 4.0.4
web_form_id | ID веб-формы, для которой необходимо создать или обновить тип почтового события. | 3.3.10
bReturnFullInfo | Необязательный параметр. Значение по умолчанию - "false". | 6.5.4

Смотрите также

  • Почтовая система
  • CForm::Set

Примеры использования

<?
// добавляем для веб-формы новый типа почтового события
// при этом создаем почтовые шаблоны

$arTemplates = CForm::SetMailTemplate($FORM_ID);

// приписываем вновь созданные почтовые шаблоны данной веб-форме

CForm::Set(array("arMAIL_TEMPLATE" => $arTemplates), $FORM_ID);
?>


Класс CFormAnswer

CFormAnswer - класс для работы с ответами.

Поля

Поле | Тип | Описание
ID | int | Идентификатор ответа.
FIELD_ID | int | Идентификатор вопроса (синоним данного поля - QUESTION_ID).
TIMESTAMP_X | datetime | Время последнего изменения параметров ответа.
MESSAGE | varchar(2000) | Значение параметра ответа ANSWER_TEXT.
VALUE | varchar(255) | Значение параметра ответа ANSWER_VALUE.
FIELD_TYPE varchar(255) Тип поля ответа, допустимы следующие значения:
  • text - однострочное текстовое поле;
  • textarea - многострочное текстовое поле;
  • radio - переключатель одиночного выбора (radio-кнопка);
  • checkbox - флаг множественного выбора (checkbox);
  • dropdown - элемент выпадающего списка одиночного выбора;
  • multiselect - элемент списка множественного выбора;
  • date - поле для ввода даты;
  • image - поле для загрузки изображения;
  • file - поле для загрузки произвольного файла;
  • password - поле для ввода пароля.
FIELD_WIDTH | int | Ширина поля ответа.
FIELD_HEIGHT | int | Высота поля ответа.
FIELD_PARAM | varchar(2000) | Параметры поля ответа.
C_SORT | int | Индекс сортировки.
ACTIVE | char | Флаг активности (Y|N).

Методы

Метод | Описание
Set | Добавляет новый ответ, либо обновляет параметры существующего.
GetList | Возвращает список ответов по указанному вопросу.
GetByID | Возвращает параметры ответа.
Copy | Копирует ответ.
Delete | Удаляет ответ и все значения в результатах, связанные с данным ответом.


Copy

Веб-формы>Классы>CFormAnswer>Copy (4.0.4)

CFormAnswer::Copy

Описание и параметры

mixed
CFormAnswer::Copy(
 int answer_id,
 mixed question_id = false
)

Копирует ответ. Возвращает ID нового ответа в случае положительного результата, в противном случае - "false". Метод нестатический.

Параметры метода

Параметр | Описание
answer_id | ID ответа который необходимо скопировать.
question_id | ID вопроса, в который необходимо скопировать ответ. Необязательный параметр. По умолчанию - "false" (текущий вопрос).

Смотрите также

  • CForm::Copy
  • CFormField::Copy
  • CFormStatus::Copy

Примеры использования

<?
$answer_id = 589; // ID ответа "да" на вопрос "Вы женаты/замужем?"
// скопируем ответ
if ($NEW_ANSWER_ID = CFormAnswer::Copy($answer_id))
{
    echo "Ответ #589 успешно скопирован в новый ответ #".$NEW_ANSWER_ID;
}
else
{
    // выведем текст ошибки
    global $strError;
    echo $strError;
}
?>


Delete

Веб-формы>Классы>CFormAnswer>Delete (4.0.4)

CFormAnswer::Delete

Описание и параметры

bool
CFormAnswer::Delete(
 int answer_id,
 int question_id = false,
)

Удаляет ответ и все значения в результатах, связанные с ним. Возвращает "true" в случае положительного результата, и "false" - в противном случае. Метод нестатический.

Параметры метода

Параметр | Описание
answer_id | ID удаляемого ответа.
question_id | ID вопроса, к которому приписан удаляемый ответ. Указание данного параметра позволяет ускорить выполнение функции. Параметр необязательный. По умолчанию - "false".

Смотрите также

  • CForm::Delete
  • CFormField::Delete
  • CFormStatus::Delete
  • CFormResult::Delete

Примеры использования

<?
$answer_id = 589; // ID ответа
// удалим ответ
if (CFormAnswer::Delete($answer_id))
{
    echo "Ответ #589 удален.";
}
else
{
    // выведем текст ошибки
    global $strError;
    echo $strError;
}
?>


GetByID

Веб-формы>Классы>CFormAnswer>GetByID (4.0.4)

CFormAnswer::GetByID

CDBResult
CFormAnswer::GetByID(
 int answer_id
)

Возвращает параметры ответа в виде объекта класса CDBResult. Метод нестатический.

Параметры метода

Параметр | Описание
answer_id | ID ответа.

Смотрите также

  • Поля CFormAnswer
  • CFormAnswer::GetList

Примеры использования

<?
$answer_id = 589; // ID ответа
$rsAnswer = CFormAnswer::GetByID($answer_id);
$arAnswer = $rsAnswer->Fetch();
echo "<pre>"; print_r($arAnswer); echo "</pre";
?>


GetList

Веб-формы>Классы>CFormAnswer>GetList (4.0.4)

CFormAnswer::GetList

Описание и параметры

CDBResult CFormAnswer::GetList(
 int question_id,
 string &by = "s_sort",
 string &order = "asc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список ответов в виде объекта класса CDBResult. Метод нестатический.

Параметры метода

Параметр | Описание
question_id | ID вопроса.
by Ссылка на переменную с полем для сортировки результирующего списка. Может принимать значения:
  • s_id - ID ответа;
  • s_sort - индекс сортировки.
оrder Ссылка на переменную с порядком сортировки. Может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации. Необязательный параметр. В массиве допустимы следующие ключи:
  • ID* - ID ответа (по умолчанию будет искаться точное совпадение);
  • ID_EXACT_MATCH - если значение равно "N", при фильтрации по ID будет искаться вхождение;
  • ACTIVE - флаг активности, допустимые следующие значения:
    • Y - ответ активен;
    • N - ответ не активен.
  • MESSAGE* - параметр ANSWER_TEXT (по умолчанию будет искаться вхождение);
  • MESSAGE_EXACT_MATCH - если значение равно "Y", при фильтрации по MESSAGE будет искаться точное совпадение;
  • VALUE* - параметр ANSWER_VALUE (по умолчанию будет искаться вхождение);
  • VALUE_EXACT_MATCH - если значение равно "Y", то при фильтрации по VALUE будет искаться точное совпадение;
  • FIELD_TYPE* - тип поля ответа (по умолчанию будет искаться вхождение);
  • FIELD_TYPE_EXACT_MATCH - если значение равно "Y", при фильтрации по FIELD_TYPE будет искаться точное совпадение;
  • FIELD_PARAM* - параметр поля ответа (по умолчанию будет искаться вхождение);
  • FIELD_PARAM_EXACT_MATCH - если значение равно "Y", то при фильтрации по FIELD_PARAM будет искаться точное совпадение.
* - допускается сложная логика
is_filtered | Ссылка на переменную, хранящую флаг отфильтрованности результирующего списка. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • Поля CFormAnswer
  • CFormAnswer::GetByID

Примеры использования

<?
$QUESTION_ID = 143; // ID вопроса

// сформируем массив фильтра
$arFilter = Array(
    "ID"                      => "589 | 590", // ID ответа равен 589 или 590
    "ID_EXACT_MATCH"          => "Y",         // точное совпадение для ID
    "ACTIVE"                  => "Y",         // флаг активности
    "MESSAGE"                 => "да | нет",  // параметр ANSWER_TEXT равен "да" или "нет"
    "MESSAGE_EXACT_MATCH"     => "Y",         // точное совпадение для MESSAGE
    "FIELD_TYPE"              => "radio",     // тип поля ответа - radio-кнопка
    "FIELD_TYPE_EXACT_MATCH"  => "Y",         // точное совпадение для FIELD_TYPE
    "FIELD_PARAM"             => "checked",   // параметр включает в себя строку "checked"
    "FIELD_PARAM_EXACT_MATCH" => "N"          // вхождение для FIELD_PARAM
);

// получим список всех ответов вопроса #143
$rsAnswers = CFormAnswer::GetList(
    $QUESTION_ID,
    $by="s_id",
    $order="desc",
    $arFilter,
    $is_filtered
    );
while ($arAnswer = $rsAnswers->Fetch())
{
    echo "<pre>"; print_r($arAnswer); echo "</pre>";
}
?>


Set

Веб-формы>Классы>CFormAnswer>Set (4.0.4)

CFormAnswer::Set

Описание и параметры

mixed
CFormAnswer::Set(
 array fields,
 mixed answer_id = false,
 mixed current_question_id = false
)

Добавляет новый ответ или обновляет существующий. Возвращает ID обновленного или добавленного ответа в случае положительного результата, в противном случае - "false". Метод нестатический.

Параметры метода

Параметр Описание
fields Массив значений, в качестве ключей массива допустимы:
  • QUESTION_ID* - ID вопроса
  • MESSAGE* - значение параметра ответа ANSWER_TEXT;
  • VALUE - значение параметра ответа ANSWER_VALUE;
  • C_SORT - порядок сортировки;
  • ACTIVE - флаг активности, допустимы следующие значения:
    • Y - ответ активен;
    • N - ответ не активен (по умолчанию).
  • FIELD_TYPE - тип поля ответа, допустимы следующие значения:
    • text - однострочное текстовое поле;
    • textarea - многострочное текстовое поле;
    • radio - переключатель одиночного выбора (radio-кнопка);
    • checkbox - флаг множественного выбора (checkbox);
    • dropdown - элемент выпадающего списка одиночного выбора;
    • multiselect - элемент списка множественного выбора;
    • date - поле для ввода даты;
    • image - поле для загрузки изображения;
    • file - поле для загрузки произвольного файла;
    • password - поле для ввода пароля.
  • FIELD_WIDTH - ширина поля ответа;
  • FIELD_HEIGHT - высота поля ответа;
  • FIELD_PARAM - параметр поля ответа.
* - обязательные поля.
answer_id ID обновляемого ответа.
Параметр необязательный. По умолчанию - "false" (добавление нового ответа).
current_question_id ID вопроса, к которому приписан обновляемый ответ. Указание данного параметра позволяет ускорить выполнение метода.
Параметр необязательный. По умолчанию - "false".

Смотрите также

  • Поля CFormAnswer

Примеры использования

<?
$QUESTION_ID = 140; // ID вопроса "Фамилия, имя, отчество"

$arFields = array(
    "QUESTION_ID"   => $QUESTION_ID,
    "MESSAGE"       => " ",
    "C_SORT"        => 100,
    "ACTIVE"        => "Y",
    "FIELD_TYPE"    => "text",
    "FIELD_WIDTH"   => "40"
    );

$NEW_ID = CFormAnswer::Set($arFields);
if ($NEW_ID>0) echo "Успешно добавлен ID=".$NEW_ID;
else // ошибка
{
    // выводим текст ошибки
    global $strError;
    echo $strError;
}
?>

<?
$QUESTION_ID = 143; // ID вопроса "Вы женаты/замужем?"

$arFields = array(
    "QUESTION_ID"      => $QUESTION_ID,
    "MESSAGE"       => "да",
    "C_SORT"        => 100,
    "ACTIVE"        => "Y",
    "FIELD_TYPE"    => "radio",
    "FIELD_PARAM"   => "checked"
    );
CFormAnswer::Set($arFields);

$arFields = array(
    "QUESTION_ID"      => $QUESTION_ID,
    "MESSAGE"       => "нет",
    "C_SORT"        => 200,
    "ACTIVE"        => "Y",
    "FIELD_TYPE"    => "radio"
    );
CFormAnswer::Set($arFields);
?>


Класс CFormField

CFormField - класс для работы с вопросами и полями.

Поля

Поле | Тип | Описание
ID | int | Идентификатор вопроса / поля.
SID | varchar(50) | Символьный идентификатор вопроса / поля.
FORM_ID | int | ID веб-формы, к которой приписан данный вопрос / поле.
TIMESTAMP_X | datetime | Время последнего изменения параметров вопроса / поля.
ACTIVE | char | Флаг активности (Y|N).
ADDITIONAL | char | Если в данном флаге хранится значение "Y", то данная запись является полем, иначе это вопрос веб-формы.
FIELD_TYPE varchar(50) Тип поля, допустимы следующие значения:
  • text - текст;
  • integer - число;
  • date - дата.
TITLE | varchar(2000) | Текст вопроса или заголовок поля.
TITLE_TYPE | varchar(4) | Тип текста вопроса ("text" или "html").
IMAGE_ID | int | Изображение вопроса.
C_SORT | int | Индекс сортировки.
REQUIRED | char | Флаг обязательности ответа на вопрос при создании нового или редактировании существующего результата (Y|N).
IN_FILTER | char | Означает, что данный вопрос / поле входят в фильтр по результатам.
FILTER_TITLE | varchar(2000) | Подпись к полю фильтра.
IN_RESULTS_TABLE | char | Если в данном флаге хранится значение "Y", значение данного вопроса / поля будет отображено в HTML таблице результатов.
IN_EXCEL_TABLE | char | Если в данном флаге хранится значение "Y", значение данного вопроса / поля будет отображено в Excel таблице результатов.
RESULTS_TABLE_TITLE | varchar(2000) | Заголовок столбца в таблице результатов.
COMMENTS | varchar(2000) | Служебный комментарий к вопросу / полю.

Методы

Метод | Описание | С версии
Set | Добавляет новый вопрос / поле, либо обновляет параметры существующего. |
GetList | Возвращает список вопросов / полей. |
GetByID | Возвращает параметры вопроса / поля по цифровому идентификатору. |
GetBySID | Возвращает параметры вопроса / поля по символьному идентификатору. |
Copy | Копирует вопрос / поле. |
Reset | Удаляет все значения ответов на вопрос / поле из результатов. |
Delete | Удаляет вопрос / поле, а также все значения ответов на него из результатов. |


Copy

Веб-формы>Классы>CFormField>Copy (4.0.4)

CFormField::Copy

Описание и параметры

mixed
CFormField::Copy(
 int field_id,
 string check_rights = "Y",
 mixed form_id = false
)

Копирует вопрос или поле веб-формы. Возвращает ID нового вопроса/поля в случае положительного результата, в противном случае - "false". Метод нестатический.

Параметры метода

Параметр | Описание
field_id | ID вопроса/поля, который необходимо скопировать.
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для копирования вопроса/поля необходимо обладать нижеследующими правами:
  1. [25] просмотр параметров веб-формы на веб-форму, из которой идет копирование;
  2. [30] полный доступ на веб-форму, в которую копируется
Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).
form_id ID веб-формы, в которую необходимо скопировать вопрос/поле.

Необязательный параметр. По умолчанию - "false" (текущая веб-форма).

Смотрите также

  • CForm::Copy
  • CFormAnswer::Copy
  • CFormStatus::Copy

Примеры использования

<?
$FIELD_ID = 140; // ID вопроса
// скопируем вопрос
if ($NEW_FIELD_ID=CFormField::Copy($FIELD_ID))
{
    echo "Вопрос #140 успешно скопирован в новый вопрос #".$NEW_FIELD_ID;
}
else
{
    // выведем текст ошибки
    global $strError;
    echo $strError;
}
?>


Delete

Веб-формы>Классы>CFormField>Delete (4.0.4)

CFormField::Delete

Описание и параметры

bool
CFormField::Delete(
 int field_id,
 string check_rights = "Y"
)

Удаляет вопрос/поле и все ответы на него из результатов. Возвращает "true" в случае положительного результата, и "false" - в противном случае. Метод нестатический.

Параметры метода

Параметр | Описание
field_id | ID вопроса/поля.
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для успешного выполнения данной операции необходимо иметь право [30] Полный доступ на веб-форму, к которой принадлежит field_id.

Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).

Смотрите также

  • CForm::Delete
  • CFormAnswer::Delete
  • CFormStatus::Delete
  • CFormResult::Delete

Примеры использования

<?
$FIELD_ID = 140;
// удалим вопрос #140
if (CFormField::Delete($FIELD_ID))
{
    echo "Вопрос #140 удален.";
}
else
{
    // выведем текст ошибки
    global $strError;
    echo $strError;
}
?>


GetByID

Веб-формы>Классы>CFormField>GetByID (4.0.4)

CFormField::GetByID

Описание и параметры

CDBResult
CFormField::GetByID(
 int field_id
)

Возвращает параметры вопроса/поля в виде объекта класса CDBResult. Метод нестатический.

Параметры метода

Параметр | Описание
field_id | ID вопроса/поля.

Смотрите также

  • Поля CFormField
  • CFormField::GetBySID
  • CFormField::GetList

Примеры использования

<?
$FIELD_ID = 140; // ID вопроса или поля веб-формы
$rsField = CFormField::GetByID($FIELD_ID);
$arField = $rsField->Fetch();
echo "<pre>"; print_r($arField); echo "</pre";
?>


GetBySID

Веб-формы>Классы>CFormField>GetBySID (4.0.4)

CFormField::GetBySID

Описание и параметры

CDBResult
CFormField::GetBySID(
 int field_sid
)

Возвращает параметры вопроса/поля в виде объекта класса CDBResult. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
field_sid | Символьный идентификатор вопроса/поля. |
form_id | Необязательный параметр. Значение по умолчанию - "false". | 5.1.1

Смотрите также

  • Поля CFormField
  • CFormField::GetByID
  • CFormField::GetList

Примеры использования

<?
$FIELD_SID = "VS_INTEREST"; // символьный идентификатор вопроса или поля веб-формы
$rsField = CFormField::GetBySID($FIELD_SID);
$arField = $rsField->Fetch();
echo "<pre>"; print_r($arField); echo "</pre";
?>


GetList

Веб-формы>Классы>CFormField>GetList (4.0.4)

CFormField::GetList

Описание и параметры

CDBResult
CFormField::GetList(
 int form_id,
 string get_only_fields,
 string &by = "s_sort",
 string &order = "asc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список вопросов/полей веб-формы в виде объекта класса CDBResult. Метод нестатический.

Параметры метода

Параметр | Описание
form_id | ID веб-формы.
get_only_fields Может принимать следующие значения:
  • Y - возвращаемый список должен содержать только поля веб-формы;
  • N - возвращаемый список должен содержать только вопросы веб-формы;
  • ALL - возвращаемый список должен содержать и вопросы и поля веб-формы.
by Ссылка на переменную с полем для сортировки результирующего списка, может принимать значения:
  • s_id - ID;
  • s_active - флаг активности;
  • s_sid - символьный идентификатор;
  • s_sort - индекс сортировки;
  • s_title - текст вопроса или заголовок поля веб-формы;
  • s_comments - служебный комментарий;
  • s_required - флаг обязательности ответа на вопрос веб-формы;
  • s_in_results_table - флаг включения в HTML таблицу результатов;
  • s_in_excel_table - флаг включения в Excel таблицу результатов;
  • s_field_type - тип поля веб-формы.
оrder Ссылка на переменную с порядком сортировки, может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации. Необязательный параметр. В массиве допустимы следующие ключи:
  • ID* - ID вопроса/поля (по умолчанию будет искаться точное совпадение);
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • SID* - символьный идентификатор вопроса/поля (по умолчанию будет искаться точное совпадение);
  • SID_EXACT_MATCH - если значение равно "N", то при фильтрации по SID будет искаться вхождение;
  • TITLE* - текст вопрос или заголовок поля веб-формы (по умолчанию будет искаться вхождение);
  • TITLE_EXACT_MATCH - если значение равно "Y", то при фильтрации по TITLE будет искаться точное совпадение;
  • COMMENTS* - служебный комментарий (по умолчанию будет искаться вхождение);
  • COMMENTS_EXACT_MATCH - если значение равно "Y", то при фильтрации по COMMENTS будет искаться точное совпадение;
  • ACTIVE - флаг активности [Y|N]
  • IN_RESULTS_TABLE - флаг включения в HTML таблицу результатов [Y|N];
  • IN_EXCEL_TABLE - флаг включения в Excel таблицу результатов [Y|N];
  • IN_FILTER - флаг включения в HTML таблицу результатов [Y|N];
  • REQUIRED - флаг обязательности ответа на вопрос веб-формы [Y|N].
* - допускается сложная логика
is_filtered | Ссылка на переменную, хранящую флаг отфильтрованности результирующего списка. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • Поля CFormField
  • CFormField::GetByID
  • CFormField::GetBySID

Примеры использования

<?
$FORM_ID = 4; // ID веб-формы

// сформируем массив фильтра
$arFilter = Array(
  "ID"                    => "140 | 141",     // вопрос с ID=140 или с ID=141
  "ID_EXACT_MATCH"        => "Y",             // точное совпадение при фильтрации по ID
  "SID"                   => "VS_BIRTHDAY",   // символьный идентификатор
  "SID_EXACT_MATCH"       => "Y",             // точное совпадение с симв. идентификатором
  "TITLE"                 => "День рождения", // текст вопроса
  "TITLE_EXACT_MATCH"     => "N",             // вхождение при фильтрации по тексту вопроса
  "ACTIVE"                => "Y",             // флаг активности
  "IN_RESULTS_TABLE"      => "Y",             // флаг вхождение в HTML таблицу результатов
  "IN_EXCEL_TABLE"        => "N",             // флаг вхождения в Excel таблицу результатов
  "IN_FILTER"             => "Y",             // флаг вхождения в фильтр
  "REQUIRED"              => "Y",             // флаг обязательности ответа на вопрос
);

// получим список всех вопросов веб-формы #4
$rsQuestions = CFormField::GetList(
    $FORM_ID,
    "N",
    $by="s_id",
    $order="desc",
    $arFilter,
    $is_filtered
    );
while ($arQuestion = $rsQuestions->Fetch())
{
    echo "<pre>"; print_r($arQuestion); echo "</pre>";
}
?>


Reset

Веб-формы>Классы>CFormField>Reset (4.0.4)

CFormField::Reset

Описание и параметры

bool
CFormField::Reset(
 int field_id,
 string check_rights = "Y"
)

Удаляет все значения ответов из результатов по заданному вопросу/полю. Возвращает "true" в случае положительного результата, и "false" - в противном случае. Метод нестатический.

Параметры метода

Параметр | Описание
field_id | ID вопроса/поля.
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для успешного выполнения данной операции необходимо иметь право [30] Полный доступ на веб-форму, к которой принадлежит field_id.

Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).

Смотрите также

  • CForm::Reset
  • CFormResult::Reset

Примеры использования

<?
$FIELD_ID = 4;
// удалим все ответы из результатов на вопрос с ID=140
if (CFormField::Reset($FIELD_ID))
{
    echo "Операция успешна.";
}
else
{
    // выведем текст ошибки
    global $strError;
    echo $strError;
}
?>


Set

Веб-формы>Классы>CFormField>Set (4.0.4)

CFormField::Set

Описание и параметры

mixed
CFormField::Set(
 array fields,
 mixed field_id = false,
 string check_rights = "Y"
)

Добавляет новый вопрос/поле или обновляет существующий. Возвращает ID обновленного или добавленного вопроса/поля в случае положительного результата, в противном случае - "false". Метод нестатический.

Параметры метода

Параметр | Описание | С версии
fields Массив значений, в качестве ключей массива допустимы:
  • SID* - символьный идентификатор вопроса/поля;
  • FORM_ID* - ID веб-формы;
  • ACTIVE - флаг активности; допустимы следующие значения:
    • Y - вопрос/поле активен;
    • N - вопрос/поле не активен (по умолчанию).
  • ADDITIONAL - допустимы следующие значения:
    • Y - данная запись является полем веб-формы;
    • N - данная запись является вопросом веб-формы (по умолчанию).
  • FIELD_TYPE* - тип поля, допустимые следующие значения:
    • text - текст;
    • integer - число;
    • date - дата.
  • TITLE - текст вопроса либо заголовок поля.
  • TITLE_TYPE* - тип вопроса; допустимы следующие значения:
    • text - текст;
    • html - HTML код.
  • C_SORT - порядок сортировки;
  • REQUIRED* - флаг обязательности ответа на вопрос:
    • Y - ответ на данный вопрос обязателен;
    • N - ответ на данный вопрос обязателен (по умолчанию).
  • FILTER_TITLE - подпись к полю фильтра;
  • IN_RESULTS_TABLE - флаг вхождения в HTML таблицу результатов:
    • Y - ответ на данный вопрос либо значения поля веб-формы отражены в HTML таблице результатов;
    • N - ответ на данный вопрос либо значения поля веб-формы отражены в HTML таблице результатов (по умолчанию).
  • IN_EXCEL_TABLE - флаг вхождения в Excel таблицу результатов:
    • Y - ответ на данный вопрос либо значения поля веб-формы отражены в Excel таблице результатов
    • N - ответ на данный вопрос либо значения поля веб-формы отражены в Excel таблице результатов (по умолчанию).
  • RESULTS_TABLE_TITLE - заголовок столбца в таблицах результатов;
  • COMMENTS - служебный комментарий;
  • arIMAGE** - массив, описывающий изображение вопроса, допустимы следующие ключи этого массива:
    • name - имя файла;
    • size - размер файла;
    • tmp_name - временный путь на сервере;
    • type - тип загружаемого файла;
    • del - если значение равно "Y", то изображение будет удалено;
    • MODULE_ID - идентификатор модуля "Веб-формы" - form
  • arANSWER** - массив, описывающий ответы на вопрос, со следующей структурой:
    Array
(
    [0] => Array
        (
            [ID] => ID
            [DELETE] => флаг необходимости удаления [Y|N]
            [MESSAGE] => параметр ANSWER_TEXT
            [VALUE] => параметр ANSWER_VALUE
            [C_SORT] => порядок сортировки
            [ACTIVE] => флаг активности [Y|N]
            [FIELD_TYPE] => тип, допустимы следующие значения:

                text - однострочное текстовое поле
                textarea - многострочное текстовое поле
                radio* - переключатель одиночного выбора (radio-кнопка)
                checkbox* - флаг множественного выбора (checkbox)
                dropdown* - элемент выпадающего списка одиночного выбора
                multiselect* - элемент списка множественного выбора
                date - поле для ввода даты
                image - поле для загрузки изображения
                file - поле для загрузки произвольного файла
                password - поле для ввода пароля

            [FIELD_WIDTH] => ширина поля ввода
            [FIELD_HEIGHT] => высота поля ввода
            [FIELD_PARAM] => дополнительные параметры;
                допустимо использование любого HTML кода;
                для типов помеченных символом * допустимо использование
                следующих зарезервированных строк:

                checked - ответ будет выбран (отмечен)
                          по умолчанию (синоним - selected)
                not_answer - выбор данного ответа не означает,
                          что был дан ответ на вопрос
                          (как правило это первый элемент выпадающего списка и
                          важно при REQUIRED="Y")
        )
    [1] => массив описывающий следующий ответ
    ...
)
  • arFILTER_USER** - массив полей фильтра для фильтрации по значению ответа, введенному с клавиатуры пользователем при заполнении веб-формы; в данном массиве допустимы следующие значения:
    • text - текстовое поле фильтра;
    • integer - поля фильтра для числового интервала;
    • date - поля фильтра для интервала дат;
    • exist - поле для фильтрации по факту существования введенного ответа.
  • arFILTER_ANSWER_TEXT** - массив полей фильтра для фильтрации по параметру ответа ANSWER_TEXT; в данном массиве допустимы следующие значения:
    • text - текстовое поле фильтра;
    • integer - поля фильтра для числового интервала;
    • dropdown - выпадающий список одиночного выбора;
    • exist - поле для фильтрации по факту существования.
  • arFILTER_ANSWER_VALUE** - массив полей фильтра для фильтрации по параметру ответа ANSWER_VALUE; в данном массиве допустимы следующие значения:
    • text - текстовое поле фильтра;
    • integer - поля фильтра для числового интервала;
    • dropdown - выпадающий список одиночного выбора;
    • exist - поле для фильтрации по факту существования.
  • arFILTER_FIELD* - массив полей фильтра для фильтрации по значению поля веб-формы:
    • text - текстовое поле фильтра;
    • integer - поля фильтра для числового интервала;
    • date - поля фильтра для интервала дат.

* - обязательно к заполнению;
* - заполняется только для полей веб-формы;
** - заполняется только для вопросов веб-формы.
field_id ID обновляемого вопроса/поля.
Параметр необязательный. По умолчанию - "false" (добавление нового вопроса/поля).
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для добавления нового вопроса/поля или обновления их параметров необходимо иметь право [30] Полный доступ на веб-форму указанную в fields["FORM_ID"].

Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).
update_filter | Необязательный параметр. Значение по умолчанию - "Y". | 8.0.3

Смотрите также

  • Поля CFormField
  • Права на веб-форму
  • CFile::MakeFileArray

Примеры использования

<?
/*************************************************
         Добавление вопроса веб-формы
*************************************************/

// создадим массив описывающий изображение
// находящееся в файле на сервере
$arIMAGE = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/question.gif");
$arIMAGE["MODULE_ID"] = "form";

// формируем массив ответов
$arANSWER = array();

$arANSWER[] = array(
    "MESSAGE"     => "да",                           // параметр ANSWER_TEXT
    "C_SORT"      => 100,                            // порядок фортировки
    "ACTIVE"      => "Y",                            // флаг активности
    "FIELD_TYPE"  => "radio",                        // тип ответа
    "FIELD_PARAM" => "checked class=\"inputradio\""  // параметры ответа
    );

$arANSWER[] = array(
    "MESSAGE"     => "нет",
    "C_SORT"      => 200,
    "ACTIVE"      => "Y",
    "FIELD_TYPE"  => "radio"
    );

// формируем массив полей
$arFields = array(
    "FORM_ID"              => 4,                     // ID веб-формы
    "ACTIVE"               => "Y",                     // флаг активности
    "TITLE"                => "Вы женаты/замужем ?", // текст вопроса
    "TITLE_TYPE"           => "text",                // тип текста вопроса
    "SID"                  => "VS_MARRIED",          // символьный идентификатор вопроса
    "C_SORT"               => 400,                   // порядок сортировки
    "ADDITIONAL"           => "N",                   // мы добавляем вопрос веб-формы
    "REQUIRED"             => "Y",                   // ответ на данный вопрос обязателен
    "IN_RESULTS_TABLE"     => "Y",                   // добавить в HTML таблицу результатов
    "IN_EXCEL_TABLE"       => "Y",                   // добавить в Excel таблицу результатов
    "FILTER_TITLE"         => "Женат/замужем",       // подпись к полю фильтра
    "RESULTS_TABLE_TITLE"  => "Женат/замужем",       // заголовок столбца фильтра
    "arIMAGE"              => $arIMAGE,              // изображение вопроса
    "arFILTER_ANSWER_TEXT" => array("dropdown"),     // тип фильтра по ANSWER_TEXT
    "arANSWER"             => $arANSWER,             // набор ответов
);

// добавим новый вопрос
$NEW_ID = CFormField::Set($arFields);
if ($NEW_ID>0) echo "Добавлен вопрос с ID=".$NEW_ID;
else // ошибка
{
    // выводим текст ошибки
    global $strError;
    echo $strError;
}
?>
<?
/*************************************************
          Добавление поля веб-формы
*************************************************/

$arFields = array(
    "FORM_ID"             => 4
    "ACTIVE"              => "Y",
    "TITLE"               => "Рассчитанная стоимость",
    "SID"                 => "VS_PRICE",
    "C_SORT"              => 1000,
    "ADDITIONAL"          => "Y",
    "IN_RESULTS_TABLE"    => "Y",
    "IN_EXCEL_TABLE"      => "Y",
    "FIELD_TYPE"          => "text",
    "FILTER_TITLE"        => "Стоимость",
    "RESULTS_TABLE_TITLE" => "Стоимость",
    "arFILTER_FIELD"      => array("text")
    );

// добавим новое поле
$NEW_ID = CFormField::Set($arFields);
if ($NEW_ID>0) echo "Добавлено поле с ID=".$NEW_ID;
else // ошибка
{
    // выводим текст ошибки
    global $strError;
    echo $strError;
}
?>


Класс CFormOutput

Описание и методы

CFormOutput - класс для работы с шаблонами форм

Использование класса

Класс используется для для управления визульным отображением формы. При выводе шаблона формы, ему передается переменная $FORM - инициализированный экземпляр класса. Шаблон формируется в виде HTML-кода со вставками вызовов методов класса (пример см. ниже). Возможно визуальное редактирование шаблона, а также, создание формы на основе шаблона.

Основные методы класса

Основные методы класса.

Метод | Описание | С версии
ShowApplyButton | Вывод кнопки "Применить". |
ShowCaptcha | Вывод отформатированных полей ввода CAPTCHA. |
ShowCaptchaField | Вывод поля для ввода текста CAPTCHA. |
ShowCaptchaImage | Вывод изображения CAPTCHA. |
ShowErrorMsg | Вывод ошибок модуля формы. Вызывается автоматически. |
ShowFormDescription | Вывод описания формы. |
ShowFormErrors | Вывод отформатированного списка ошибок валидатора формы. |
ShowFormErrorsText | Вывод неотформатированного списка ошибок валидатора формы. |
ShowFormFooter | Вывод завершающей части HTML-кода формы. Вставляется в конец шаблона автоматически. |
ShowFormHeader | Вывод заголовка HTML-кода формы. Вставляется в начало шаблона автоматически. |
ShowFormImage | Вывод картинки формы. |
ShowFormNote | Вывод отформатированных заметок формы. |
ShowFormNoteText | Вывод неотформатированных заметок формы. |
ShowFormTitle | Вывод текстового заголовка формы. |
ShowInput | Вывод поля формы. |
ShowInputCaption | Вывод подписи поля формы. |
ShowInputCaptionImage | Вывод картинки поля формы. |
ShowRequired | Вывод метки "обязательное поле". |
ShowResetButton | Вывод кнопки "Сбросить". |
ShowSubmitButton | Вывод кнопки отправки формы. |
SetInputDefaultValue | Устанавливает значение по умолчанию для поля веб-формы. | 5.9.2

Методы для проверки условий. Все условные методы недоступны в режиме визуального редактора. Их можно использовать только в режиме редактирования PHP-кода.

Метод | Описание | С версии
isFormDescription | Имеет ли форма описание. |
isFormErrors | Есть ли ошибки валидатора. |
isFormImage | Имеет ли форма картинку. |
isFormNote | Имеет ли форма заметки. |
isFormTitle | Имеет ли форма текстовый заголовок. |
isInputCaptionImage | Имеет ли поле формы картинку. |
isUseCaptcha | Используется ли в форме CAPTCHA. |

Примеры

Пример шаблона формы

$FORM - экземпляр класса CFormOutput - создаётся и инициализируется автоматически вне шаблона. Вызов методов CFormOutput::ShowFormHeader() и CFormOutput::ShowFormFooter() также добавляется к шаблону автоматически.

<!-- Выведем описание формы -->
<table width="100%" cellpadding="2" cellspacing="0" border="0">
    <tr>
        <td align="center"><?=$FORM->ShowFormDescription()?></td>
    </tr>
</table>

<!-- Если есть ошибки валидатора - выведем их -->
<?if($FORM->isFormErrors()):?>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
    <tr>
        <td><?=$FORM->ShowFormErrors()?></td>
    </tr>
</table>
<?endif?>

<!-- Выведем поля формы -->
<table width="100%" cellpadding="2" cellspacing="0" border="0">
    <tr>
        <td width="40%" valign="top" align="right"><?=$FORM->ShowInputCaption('test_q')?>: </td>
        <td width="60%" valign="top"><?=$FORM->ShowInput('test_q')?></td>
    </tr>
    <tr>
        <td valign="top" align="right"><?=$FORM->ShowInputCaption('test_q_text')?>: </td>
        <td valign="top"><?=$FORM->ShowInput('test_q_text')?></td>
    </tr>
    <tr>
        <td valign="top" align="right"><?=$FORM->ShowInputCaption('test_q_textarea')?>: </td>
        <td valign="top"><?=$FORM->ShowInput('test_q_textarea')?></td>
    </tr>
</table>

<!-- Если используется CAPTCHA - выведем картинку и поле для ввода -->
<?if($FORM->isUseCaptcha()):?>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
    <tr>
        <td colspan="2" height="8"></td>
    </tr>
    <tr>
        <td width="40%" valign="top" align="right" class="text">Защита от автоматической регистрации: </td>
        <td width="60%" valign="top"><?=$FORM->ShowCaptchaImage()?></td>
    </tr>
    <tr>
        <td valign="top" align="right" class="text">Введите слово с картинки<?=$FORM->ShowRequired()?>: </td>
        <td valign="top"><?=$FORM->ShowCaptchaField()?></td>
    </tr>
</table>
<?endif?>

<!-- Выведем кнопки формы -->
<table width="100%" cellpadding="2" cellspacing="0" border="0">
    <tr>
        <td width="40%">&nbsp;</td>
        <td width="60%">
            <?=$FORM->ShowSubmitButton()?>&nbsp;
            <?=$FORM->ShowApplyButton()?>&nbsp;
            <?=$FORM->ShowResetButton()?>
        </td>
    </tr>
</table>

Если не предполагается использование страниц редактирования результата формы или просмотра списка результатов, то имеет смысл вставить в шаблон ответ веб-формы в обход основного шаблона:

<!-- Если есть ответ формы - выведем его в обход шаблона -->
<?if($FORM->isFormNote()):?>
<?=$FORM->ShowFormNote()?>
<?else:?>
<!-- здесь остальной шаблон веб-формы -->
<?endif?>


isFormDescription

Веб-формы>Классы>CFormOutput>isFormDescription (5.1.1)

CFormOutput::isFormDescription

bool
CFormOutput::isFormDescription(
);

Проверка условия "есть ли у формы текстовое описание". Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

true, если у формы есть текстовое описание. false в противном случае.

Использование

<?if($FORM->isFormDescription()):?>Описание: <?=$FORM->ShowFormDescription()?><?endif?>

Смотрите также

Класс CFormOutput
CFormOutput::ShowFormDescription


isFormErrors

Веб-формы>Классы>CFormOutput>isFormErrors (5.1.1)

CFormOutput::isFormErrors

bool
CFormOutput::isFormErrors(
);

Проверка условия "есть ли ошибки валидатора формы". Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

true, если в процессе обработки результата формы обнаружены ошибки. false в противном случае.

Использование

<?if($FORM->isFormErrors()):?>Ошибки: <?=$FORM->ShowFormErrors()?><?endif?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowFormErrors
  • CFormOutput::ShowFormErrorsText
    •


isFormImage

Веб-формы>Классы>CFormOutput>isFormImage (5.1.1)

CFormOutput::isFormImage

bool
CFormOutput::isFormImage(
);

Проверка условия "прикреплена ли к форме картинка". Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

true, если к форме прикреплена картинка. false в противном случае.

Использование

<?if($FORM->isFormImage()):?>
<?=$FORM->ShowFormImage()?>
<?else:?>
<?=CFile::ShowImage("/myimages/form_default.jpg")?>
<?endif?>

Смотрите также

  • Класс CFormOutput
  • CFile::ShowImage
  • CFormOutput::ShowFormImage
    •


isFormNote

Веб-формы>Классы>CFormOutput>isFormNote (5.1.1)

CFormOutput::isFormNote

bool
CFormOutput::isFormNote(
);

Проверка условия "есть ли текстовые заметки". Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

true, если у есть текстовые заметки. false в противном случае.

Примеры использования

<?if($FORM->isFormNote()):?>Ответ: <?=$FORM->ShowFormNote()?><?endif?>

\\ способ проверить, отправлена ли форма, а затем вывести сообщение об успешной отправке
<? if($FORM->isFormNote()) //т.е. если сообщение есть, значит нужно его показать, т.е. форма отправлена
{
echo $FORM->ShowFormNote();?> //выводим сообщение "Ваша заявка успешно отправлена"
 }
else //в противном случает выводим саму форму для заполнения
{

шаблон формы
;}
?>

Смотрите также

Класс CFormOutput
CFormOutput::ShowFormNote


isFormTitle

Веб-формы>Классы>CFormOutput>isFormTitle (5.1.1)

CFormOutput::isFormTitle

bool
CFormOutput::isFormTitle(
);

Проверка условия "есть ли у формы текстовый заголовок (название)". Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

true, если у формы есть текстовый заголово (название). false в противном случае.

Использование

<?if($FORM->isFormTitle()):?>Описание: <?=$FORM->ShowFormTitle()?><?endif?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowFormTitle
    •


isInputCaptionImage

Веб-формы>Классы>CFormOutput>isInputCaptionImage (5.1.1)

CFormOutput::isInputCaptionImage

bool
CFormOutput::isInputCaptionImage(
    string FIELD_SID
);

Проверка условия "прикреплена ли к вопросу с данным идентификатором картинка". Метод нестатический.

Параметры метода

Параметр | Описание
FIELD_SID | Строковой идентификатор поля вопроса. Обязательный параметр.

Возвращаемое значение

true, если к вопросу прикреплена картинка. false в противном случае.

Использование

<?=$FORM->ShowInputCaption('MYFIELD_5')?>:
<?=$FORM->ShowInput('MYFIELD_5')?><br />
<?if($FORM->isInputCaptionImage('MYFIELD_5')):?>
    <?=$FORM->ShowInputCaptionImage('MYFIELD_5')?>
<?else:?>
    <?=CFile::ShowImage("/myimages/form_field_default.jpg")?>
<?endif?>:

Смотрите также

  • Класс CFormOutput
  • CFile::ShowImage
  • CFormOutput::ShowInput
  • CFormOutput::ShowInputCaption
  • CFormOutput::ShowInputCaptionImage
    •


isUseCaptcha

Веб-формы>Классы>CFormOutput>isUseCaptcha (5.1.1)

CFormOutput::isUseCaptcha

bool
CFormOutput::isUseCaptcha(
);

Проверка условия "форма использует CAPTCHA". Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

true, если форма использует CAPTCHA. false в противном случае.

Использование

<?if($FORM->isUseCaptcha()):?>
<tr>
    <td colspan="2" height="8"></td>
</tr>
<tr>
    <td valign="top" align="right" class="text">Защита от автоматической регистрации:</td>
    <td valign="top"><?=$FORM->ShowCaptchaImage()?></td>
</tr>
<tr>
    <td valign="top" align="right" class="text">Введите слово с картинки<?=$FORM->ShowRequired()?>:</td>
    <td valign="top"><?=$FORM->ShowCaptchaField()?></td>
</tr>
<?endif?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowCaptcha
  • CFormOutput::ShowCaptchaField
  • CFormOutput::ShowCaptchaImage
    •


SetInputDefaultValue

Веб-формы>Классы>CFormOutput>SetInputDefaultValue (5.9.2)

CFormOutput::SetInputDefaultValue

Описание и параметры

void
CFormOutput::SetInputDefaultValue(
 string $FIELD_SID,
 mixed $value [,
 mixed $ANSWER_ID = false]
);

Устанавливает значение по умолчанию для поля веб-формы. Данный метод используется только с визуальным шаблоном веб-формы. Метод нестатический.

Параметры метода

Параметр | Описание
FIELD_SID | Строковой идентификатор вопроса.
value | Значение ответа (или идентификатор ответа для вопросов с вариантами (radio, checkbox, multiselect, dropdown)). Для типов вопросов, подразумевающих возможность множественного выбора (checkbox, multiselect) можно передавать массив идентфикаторов.
ANSWER_ID | Необязательный параметр. Массив идентификаторов ответа или идентификатор ответа (используется для множественных полей).

Пример использования

// использование в компоненте form.result.new

$FORM = new CFormOutput();
$FORM->InitializeTemplate($arParams, $arResult);

/* .............. */

$FORM->setInputDefaultValue('MY_TEXT_FIELD', $USER->GetFullName()); // для простых строк

$FORM->setInputDefaultValue('MY_CHECKBOX_FIELD', "Y", array(1114, 1115)); // для checkbox или multiselect.
// или $FORM->setInputDefaultValue('MY_CHECKBOX_FIELD', array(1114, 1115));

$FORM->setInputDefaultValue('MY_RADIO_FIELD', "Y", 1103); // для radio
// или $FORM->setInputDefaultValue('MY_RADIO_FIELD', 1103);

// 1103-1115 - идентификаторы ответов.

/* .............. */
$strReturn = $FORM->IncludeFormCustomTemplate()


ShowApplyButton

Веб-формы>Классы>CFormOutput>ShowApplyButton (5.1.1)

CFormOutput::ShowApplyButton

string
CFormOutput::ShowApplyButton([
    string CAPTION = "",
    string CSSClass = ""
]
);

Возвращает HTML-код кнопки "Применить" формы создания/редактирования записи. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
CAPTION | Текст, расположенный на кнопке. Необязательный параметр. Параметр необязательный, и если он пуст или не указан, то будет использовано значение по умолчанию. | 5.1.2
CSSClass | CSS-класс кнопки. Необязательный параметр. | 5.1.2

Возвращаемое значение

Возвращается HTML-код кнопки "Применить"

Использование

<?=$FORM->ShowApplyButton("Применить", "form-button-apply")?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowResetButton
  • CFormOutput::ShowSubmitButton
    •


ShowCaptcha

Веб-формы>Классы>CFormOutput>ShowCaptcha (5.1.1)

CFormOutput::ShowCaptcha

string
CFormOutput::ShowCaptcha(
);

Возвращает комбинацию изображения CAPTCHA и поля для ввода. Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

Возвращается HTML-код обоих элементов

Использование

<?=$FORM->ShowCaptcha()?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowCaptchaField
  • CFormOutput::ShowCaptchaImage
  • CFormOutput::isUseCaptcha
    •


ShowCaptchaField

Веб-формы>Классы>CFormOutput>ShowCaptchaField (5.1.1)

CFormOutput::ShowCaptchaField

string
CFormOutput::ShowCaptchaField(
);

Возвращает код поля для ввода CAPTCHA. Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

Возвращается HTML-код поля для ввода CAPTCHA

Использование

<?=$FORM->ShowCaptchaField()?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowCaptcha
  • CFormOutput::ShowCaptchaImage
  • CFormOutput::isUseCaptcha
    •


ShowCaptchaImage

Веб-формы>Классы>CFormOutput>ShowCaptchaImage (5.1.1)

CFormOutput::ShowCaptchaImage

string
CFormOutput::ShowCaptchaImage(
);

Возвращает HTML-код для вставки изображения CAPTCHA. Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

Возвращается HTML-код для вставки изображения CAPTCHA

Использование

<?=$FORM->ShowCaptchaImage()?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowCaptcha
  • CFormOutput::ShowCaptchaField
  • CFormOutput::isUseCaptcha
    •


ShowErrorMsg

Веб-формы>Классы>CFormOutput>ShowErrorMsg (5.1.1)

CFormOutput::ShowErrorMsg

string
CFormOutput::ShowErrorMsg(
);

Возвращает код ошибки инициализации формы. Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

Метод возвращает одну из следующих строк, либо пустую строку, если ошибок нет

Строка | Описание
FORM_NOT_FOUND | Формы с переданным WEB_FORM_ID не существует
FORM_ACCESS_DENIED | Не хватает прав доступа к форме

Проверка наличия ошибки и вывод соответствующего ей языкового сообщения производится автоматически при инициализации формы

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowFormErrors
  • CFormOutput::ShowFormErrorsText
    •


ShowFormDescription

Веб-формы>Классы>CFormOutput>ShowFormDescription (5.1.1)

CFormOutput::ShowFormDescription

string
CFormOutput::ShowFormDescription([
    string CSSClass = ""
]
);

Вывод описательного текста формы. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
CSSClass | CSS-класс который нужно применить к выводимому тексту. Необязательный параметр. Если для описания формы выставлено значение "HTML", то параметр игнорируется. | 5.1.2

Возвращаемое значение

Возвращает описательный текст формы

Использование

<?=$FORM->ShowFormDescription("form-description-text")?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowFormTitle
  • CFormOutput::ShowFormImage
  • CFormOutput::isFormDescription
    •


ShowFormErrors

Веб-формы>Классы>CFormOutput>ShowFormErrors (5.1.1)

CFormOutput::ShowFormErrors

string
CFormOutput::ShowFormErrors(
);

Вывод отформатированных ошибок валидатора формы. Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

Возвращает отфоматированный список ошибок валидатора формы. Если ошибок нет, возвращается пустая строка.

Использование

<?=$FORM->ShowFormErrors()?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowFormErrorsText
  • CFormOutput::isFormErrors
    •


ShowFormErrorsText

Веб-формы>Классы>CFormOutput>ShowFormErrorsText (5.1.1)

CFormOutput::ShowFormErrorsText

string
CFormOutput::ShowFormErrorsText(
);

Вывод неотформатированных ошибок валидатора формы. Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

Возвращает неотфоматированный список ошибок валидатора формы. Если ошибок нет, возвращается пустая строка.

Использование

<font color="#FF0000"><?=$FORM->ShowFormErrorsText()?></font>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowFormErrors
  • CFormOutput::isFormErrors
    •


ShowFormFooter

Веб-формы>Классы>CFormOutput>ShowFormFooter (5.1.1)

CFormOutput::ShowFormFooter

string
CFormOutput::ShowFormFooter(
);

Завершение вывода формы. Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

Возвращает завершающий HTML-код формы. В том числе, тэг </form>.

Использование

При создании шаблона формы редактором, добавляется в конец шаблона автоматически.

<?=$FORM->ShowFormFooter()?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowFormHeader
    •


ShowFormHeader

Веб-формы>Классы>CFormOutput>ShowFormHeader (5.1.1)

CFormOutput::ShowFormHeader

string
CFormOutput::ShowFormHeader(
);

Вывод HTML-заголовка формы. Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

Возвращает HTML-код заголовка формы. В том числе, тэг <form>, скрытые поля.

Использование

При создании шаблона формы редактором, добавляется в начало шаблона автоматически.

<?=$FORM->ShowFormHeader()?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowFormFooter
    •


ShowFormImage

Веб-формы>Классы>CFormOutput>ShowFormImage (5.1.1)

CFormOutput::ShowFormImage

Описание и параметры

string
CFormOutput::ShowFormImage(
[
    string $sAlign = "",
    int $iMaxW = 0
    int $iMaxH = 0
    string $bPopup = "N",
    string $strPopupTitle = "",
    string $sHSpace = "",
    string $sVSpace = "",
    string $sBorder = ""
]
);

Вывод изображения, прикрепленного к описанию формы. Метод нестатический.

Параметры метода

Параметры метода идентичны параметрам CFile::ShowImage

Параметр | Описание | С версии
sParams | Необязательный параметр. Значение по умолчанию - "border=\"0\"". | Удален с 5.1.2
strImageUrl | Необязательный параметр. | Удален с 5.1.2
sAlign | Расположение изображения относительно текста. Может принимать одно из четырех значений - LEFT, CENTER, RIGHT (регистр не имеет значения) или пустое. Необязательный параметр. | 5.1.2
iMaxW | Максимальная ширина изображения. Если ширина картинки больше iMaxW, то она будет пропорционально смаштабирована. Необязательный. По умолчанию - "0" - без ограничений. |
iMaxH | Максимальная высота изображения. Если высота картинки больше iMaxH, то она будет пропорционально смаштабирована. Необязательный. По умолчанию - "0" - без ограничений. |
bPopup | Открывать ли при клике на изображении дополнительное popup окно с увеличенным изображением. Необязательный. Должен приниметь одно из двух значений - "Y" или "N" (с учётом регистра). По умолчанию - "N" (до версии 5.1.2 - "false"). |
strPopupTitle | Текст всплывающей подсказки на изображении (только если bPopup = "Y") Необязательный. По умолчанию выводится фраза "Нажмите чтобы увеличить" на языке страницы (до версии 5.1.2 значение по умолчанию - "false"). |
sHSpace | Устанавливает вертикальный отступ картинки от окружающего текста в пикселях. Необязательный. По умолчанию - "0" - без отступа. | 5.1.2
sVSpace | Устанавливает горизонтальный отступ картинки от окружающего текста в пикселях. Необязательный. По умолчанию - "0" - без отступа. | 5.1.2
sBorder | Устанавливает толщину рамки вокруг изображения. Необязательный. По умолчанию равен "0" - без рамки: | 5.1.2

Возвращаемое значение

Возвращает HTML-код для вставки изображения в формы

Использование

<?=$FORM->ShowFormImage("CENTER", 250, 250, "Y", GetMessage("FORM_ENLARGE"), 0, 0)?>

Смотрите также

  • Класс CFormOutput
  • CFile::ShowImage
  • CFormOutput::ShowFormDescription
  • CFormOutput::ShowFormTitle
  • CFormOutput::isFormImage
    •


ShowFormNote

Веб-формы>Классы>CFormOutput>ShowFormNote (5.1.1)

CFormOutput::ShowFormNote

string
CFormOutput::ShowFormNote(
);

Вывод отформатированных информационных сообщений формы. Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

Возвращает отфоматированные информационные сообщения формы (напр. "Ваша заявка принята"). Если сообщений нет, возвращается пустая строка.

Использование

<?=$FORM->ShowFormNote()?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowFormNoteText
  • CFormOutput::isFormNote
    •


ShowFormNoteText

Веб-формы>Классы>CFormOutput>ShowFormNoteText (5.1.1)

CFormOutput::ShowFormNoteText

string
CFormOutput::ShowFormNoteText(
);

Вывод неотформатированных информационных сообщений формы. Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

Возвращает неотфоматированные информационные сообщения формы (напр. "Ваша заявка принята"). Если сообщений нет, возвращается пустая строка.

Использование

<?=$FORM->ShowFormNoteText()?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowFormNoteText
  • CFormOutput::isFormNote
    •


ShowFormTitle

Веб-формы>Классы>CFormOutput>ShowFormTitle (5.1.1)

CFormOutput::ShowFormTitle

string
CFormOutput::ShowFormTitle([
    string CSSClass = ""
]
);

Вывод текстового заголовка формы. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
CSSClass | CSS-класс который нужно применить к выводимому тексту. Необязательный параметр. | 5.1.2

Возвращаемое значение

Возвращает текстовый заголовок (название) формы

Использование

<?=$FORM->ShowFormTitle("form-title")?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowFormDescription
  • CFormOutput::ShowFormImage
  • CFormOutput::isFormTitle
    •


ShowInput

Веб-формы>Классы>CFormOutput>ShowInput (5.1.1)

CFormOutput::ShowInput

string
CFormOutput::ShowInput(
    string $FIELD_SID[,
    string $CSSClass = ""]
);

Вставка полей ответа на вопрос в шаблон. Параметры поля ввода задаются в настройках вопроса. Метод нестатический.

Параметры метода

Параметр | Описание
FIELD_SID | Строковой идентификатор поля вопроса. Обязательный параметр.
CSSClass | CSS-класс для подписи к полю ввода. Необязательный параметр.

Возвращаемое значение

Возвращается HTML-код для вставки полей формы

Использование

<?=$FORM->ShowInput('MYFIELD_5')?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowInputCaption
  • CFormOutput::ShowInputCaptionImage
    •


ShowInputCaption

Веб-формы>Классы>CFormOutput>ShowInputCaption (5.1.1)

CFormOutput::ShowInputCaption

string
CFormOutput::ShowInputCaption(
    string $FIELD_SID[,
    string $CSSClass = ""]
);

Вставка в шаблон подписи поля ответа на вопрос. Метод нестатический.

Параметры метода

Параметр | Описание
FIELD_SID | Строковой идентификатор поля вопроса. Обязательный параметр.
CSSClass | CSS-класс подписи. Необязательный параметр. Если для выставлено значение "Текст вопроса - HTML", то параметр игнорируется. До версии 5.1.2 значение по умолчанию - "tablebodytext".

Возвращаемое значение

Возвращается обработанная подпись поля формы.

Использование

<?=$FORM->ShowInputCaption('MYFIELD_5')?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowInput
  • CFormOutput::ShowInputCaptionImage
    •


ShowInputCaptionImage

Веб-формы>Классы>CFormOutput>ShowInputCaptionImage (5.1.1)

CFormOutput::ShowInputCaptionImage

Описание и параметры

string
CFormOutput::ShowInputCaptionImage(
    string $FIELD_SID[,
    string $sAlign = "",
    int $iMaxW = 0
    int $iMaxH = 0
    string $bPopup = "N",
    string $strPopupTitle = "",
    string $sHSpace = "",
    string $sVSpace = "",
    string $sBorder = ""
]

);

Вывод изображения, прикрепленного к вопросу формы. Если изображение есть, возвращается HTML-код вставки. В противном случае - пустая строка. Метод нестатический.

Параметры метода

Параметры метода идентичны параметрам CFile::ShowImage

Параметр | Описание | С версии
FIELD_SID | Строковой идентификатор поля вопроса. Обязательный параметр. |
sAlign | Расположение изображения относительно текста. Может принимать одно из четырех значений - LEFT, CENTER, RIGHT (регистр не имеет значения) или пустое. Необязательный параметр. | 5.1.2
iMaxW | Максимальная ширина изображения. Если ширина картинки больше iMaxW, то она будет пропорционально смаштабирована. Необязательный. До версии 5.1.2 значение по умолчанию - "0" - без ограничений. |
iMaxH | Максимальная высота изображения. Если высота картинки больше iMaxH, то она будет пропорционально смаштабирована. Необязательный. До версии 5.1.2 значение по умолчанию - "0" - без ограничений. |
bPopup | Открывать ли при клике на изображении дополнительное popup окно с увеличенным изображением. Необязательный. Должен приниметь одно из двух значений - "Y" или "N" (с учётом регистра). По умолчанию - "N" (до версии 5.1.2 - "false"). |
strPopupTitle | Текст всплывающей подсказки на изображении (только если bPopup = "Y") Необязательный. По умолчанию выводится фраза "Нажмите чтобы увеличить" на языке страницы (до версии 5.1.2 - "false"). |
sHSpace | Устанавливает вертикальный отступ картинки от окружающего текста в пикселях. Необязательный. По умолчанию - "0" - без отступа. | 5.1.2
sVSpace | Устанавливает горизонтальный отступ картинки от окружающего текста в пикселях. Необязательный. По умолчанию - "0" - без отступа. | 5.1.2
sBorder | Устанавливает толщину рамки вокруг изображения. Необязательный. По умолчанию равен "0" - без рамки: | 5.1.2

Возвращаемое значение

Возвращает HTML-код для вставки изображения в форму

Использование

<?=$FORM->ShowInputCaptionImage('MYFIELD_5', 'LEFT', 50, 50, "N", "", 5, 5)?>

Смотрите также

  • Класс CFormOutput
  • CFile::ShowImage
  • CFormOutput::ShowInput
  • CFormOutput::ShowInputCaption
  • CFormOutput::isInputCaptionImage
    •


ShowRequired

Веб-формы>Классы>CFormOutput>ShowRequired (5.1.1)

CFormOutput::ShowRequired

string
CFormOutput::ShowRequired(
);

Вывод пометки "обязательное поле" - *. При выводе подписи к полю посредством CFormOutput::ShowInputCaption пометка вставляется автоматически. Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

Возвращается HTML-код пометки

Использование

Первый обязательный вопрос <?=$FORM->ShowRequired()?>:<?=$FORM->ShowInput('REQ_FIELD_1')?><br />
<?=$FORM->ShowInputCaption('REQ_FIELD_2'):<?=$FORM->ShowInput('REQ_FIELD_2')?><br />

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowInput
  • CFormOutput::ShowInputCaption
    •


ShowResetButton

Веб-формы>Классы>CFormOutput>ShowResetButton (5.1.1)

CFormOutput::ShowResetButton

string
CFormOutput::ShowResetButton([
    string CAPTION = "",
    string CSSClass = ""
]
);

Возвращает HTML-код кнопки "Сбросить" формы создания/редактирования записи. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
CAPTION | Текст, расположенный на кнопке. Если параметр пуст или не указан, то будет использовано значение по умолчанию. Необязательный параметр. | 5.1.2
CSSClass | CSS-класс кнопки. Необязательный параметр. | 5.1.2

Возвращаемое значение

Возвращается HTML-код кнопки "сбросить".

Использование

<?=$FORM->ShowResetButton("Отменить изменения", "form-button-reset")?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowApplyButton
  • CFormOutput::ShowSubmitButton
    •


ShowSubmitButton

Веб-формы>Классы>CFormOutput>ShowSubmitButton (5.1.1)

CFormOutput::ShowSubmitButton

string
CFormOutput::ShowSubmitButton([
    string CAPTION = "",
    string CSSClass = ""
]
);

Возвращает HTML-код кнопки отправки формы создания/редактирования записи. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
CAPTION | Текст, расположенный на кнопке. Если параметр пуст или не указан, то будет использовано значение параметра "Подпись на кнопке" вкладки "Свойства" страницы редактирования параметров веб-формы, либо значение по умолчанию. Необязательный параметр. | 5.1.2
CSSClass | CSS-класс кнопки. Необязательный параметр. | 5.1.2

Возвращаемое значение

Возвращается HTML-код кнопки отправки формы

Использование

<?=$FORM->ShowSubmitButton("Отправить заявку", "form-button-submit")?>

Смотрите также

  • Класс CFormOutput
  • CFormOutput::ShowApplyButton
  • CFormOutput::ShowResetButton
    •


Класс CFormResult

CFormResult - класс для работы с результатами.

Поля

Поле | Тип | Описание
ID | int | Идентификатор результата.
FORM_ID | int | Идентификатор веб-формы.
TIMESTAMP_X | datetime | Время последнего изменения.
DATE_CREATE | datetime | Время создания.
STATUS_ID | int | Идентификатор текущего статуса.
USER_ID | int | ID пользователя, создавшего результата (автор результата).
USER_AUTH | char | Флаг авторизованности автора результата в момент создания результата [Y|N].
STAT_GUEST_ID | int | Идентификатор посетителя, создавшего результат (инициализируется модулем "Статистика" в момент создания результата).
STAT_SESSION_ID | int | Идентификатор сессии, в которой был создан результат (инициализируется модулем "Статистика" в момент создания результата).

Методы

Метод | Описание | С версии
Add | Создает новый результат. |
Update | Обновляет результат. |
SetField | Для указанного результата обновляет значения ответа на вопрос или обновляет значение поля веб-формы. |
GetList | Возвращает список результатов. |
GetByID | Возвращает поля результата. |
GetDataByID | Возвращает ряд массивов, содержащих данные по значениям ответов на вопросы веб-формы, а также значения полей веб-формы для указанного результата. |
GetDataByIDForHTML | Возвращает массив значений ответов на вопросы веб-формы, а также значения полей веб-формы для указанного результата. Ключи данного массива в точности соответствуют правилам формирования имен HTML полей для веб-формы. | 4.0.4
Reset | Удаляет значения ответов и значения полей веб-формы для указанного результата. | 4.0.4
Delete | Удаляет указанный результат. | 4.0.4
Mail | Создает почтовое событие. | 4.0.4
SetEvent | Создает событие в модуле "Статистика". | 4.0.4
SetStatus | Устанавливает указанный статус для указанного результата. | 4.0.4
GetCount | Возвращает количество результатов указанной веб-формы. | 4.0.4
GetPermissions | Возвращает массив прав на результат в зависимости от его статуса. |


Add

Веб-формы>Классы>CFormResult>Add (3.3.10)

CFormResult::Add

Описание и параметры

mixed
CFormResult::Add(
 int form_id,
 array values = false,
 string check_rights = "Y",
 int user_id = false
)

Создает новый результат веб-формы. В случае успеха - возвращает ID нового результата, в противном случае - "false". Метод нестатический.

Данный метод не создает почтовое событие, связанное с формой. Для этого нужно использовать CFormResult::Mail.

Примечание: в случае неактивных вопросов данные из формы в них не сохраняются и сообщения об ошибках не выводятся.

Параметры метода

Параметр | Описание
form_id | ID веб-формы.
values Массив со значениями ответов. Массив имеет следующую структуру:
array(
    "имя HTML поля ответа 1" => "значение ответа 1",
    "имя HTML поля ответа 2" => "значение ответа 2",
    ...
    "имя HTML поля ответа N" => "значение ответа N"
)
Правила формирования "имен HTML полей ответов" и "значений ответов" описаны в разделе "Имена HTML полей веб-форм".
Пример:
Array
(
    [form_text_586] => Иванов Иван Иванович
    [form_date_587] => 10.03.1992
    [form_textarea_588] => г. Мурманск
    [form_radio_VS_MARRIED] => 589
    [form_checkbox_VS_INTEREST] => Array
        (
            [0] => 592
            [1] => 593
            [2] => 594
        )

    [form_dropdown_VS_AGE] => 597
    [form_multiselect_VS_EDUCATION] => Array
        (
            [0] => 603
            [1] => 604
        )

    [form_text_606] => 2345
    [form_image_607] => 1045
)
Параметр необязательный. По умолчанию - "false" (будет взят стандартный массив $_REQUEST).
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для создания нового результата необходимо иметь право [10] Заполнение веб-формы на веб-форму form_id.

Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).
user_id ID пользователя, который будет записан как создатель данного результата.

Параметр необязательный. По умолчанию - "false" (будет взят ID текущего пользователя).

Смотрите также

  • CFormResult::Update
  • CFormResult::SetField;
  • CFormResult::GetDataByIDForHTML

Примеры использования

<?
// ID веб-формы
$FORM_ID = 4;

// массив описывающий загруженную на сервер фотографию
$arImage = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/photo.gif");

// массив значений ответов
$arValues = array (
    "form_text_586"                 => "Иванов Иван",    // "Фамилия, имя, отчество"
    "form_date_587"                 => "01.06.1904",     // "Дата рождения"
    "form_textarea_588"             => "г. Москва",      // "Адрес"
    "form_radio_VS_MARRIED"         => 590,              // "Женаты/замужем?"
    "form_checkbox_VS_INTEREST"     => array(612, 613),  // "Увлечения"
    "form_dropdown_VS_AGE"          => 601,              // "Возраст"
    "form_multiselect_VS_EDUCATION" => array(602, 603),  // "Образование"
    "form_text_606"                 => 300,              // "Доход"
    "form_image_607"                => $arImage          // "Фотография"
);

// создадим новый результат
if ($RESULT_ID = CFormResult::Add($FORM_ID, $arValues))
{
    echo "Результат #".$RESULT_ID." успешно создан";
}
else
{
    global $strError;
    echo $strError;
}
?>


Delete

Веб-формы>Классы>CFormResult>Delete (4.0.4)

CFormResult::Delete

Описание и параметры

bool
CFormResult::Delete(
 int result_id,
 string check_rights = "Y"
)

Удаляет указанный результат. В случае успеха метод возвращает "true", иначе - "false". Метод нестатический.

Параметры метода

Параметр | Описание
result_id | ID результата.
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - права не нужно проверять.
Для успешного удаления результата необходимо обладать следующими правами:
  1. На веб-форму, к которой принадлежит редактируемый результат:

    [20] Работа со всеми результатами в соответствии с их статусами

    или, в случае, если вы являетесь создателем удаляемого результата, достаточно права

    [15] Работа со своим результатом в соответствии с его статусом.
  2. На статус в котором находится редактируемый результат необходимо иметь право:

    [DELETE] удаление.
Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).

Смотрите также

  • CForm::Delete
  • CFormField::Delete;
  • CFormAnswer::Delete
  • CFormStatus::Delete

Примеры использования

<?
$RESULT_ID = 189; // ID результата

// удалим результат с проверкой прав текущего пользователя
if (CFormResult::Delete($RESULT_ID))
{
    echo "Результат # ".$RESULT_ID." успешно удален.";
}
else // ошибка
{
    global $strError;
    echo $strError;
}
?>


GetByID

Веб-формы>Классы>CFormResult>GetByID (3.3.10)

CFormResult::GetByID

Описание и параметры

CDBResult
CFormResult::GetByID(
 int result_id
)

Возвращает поля результата, а также некоторые поля веб-формы и поля статуса в виде объекта класса CDBResult. Метод нестатический.

Структура массива в объекте, возвращаемого данным методом:

Array
(
    [ID] => ID результата
    [TIMESTAMP_X] => время изменения результата
    [DATE_CREATE] => дата создания результата
    [FORM_ID] => ID веб-формы
    [USER_ID] => ID пользователя создавшего результат (автор)
    [USER_AUTH] => флаг авторизованности автора при создании результата [Y|N]
    [STAT_GUEST_ID] => ID посетителя создавшего результат
    [STAT_SESSION_ID] => ID сессии в которой был создан результат
    [STATUS_ID] => ID статуса в котором находится результат
    [STATUS_TITLE] => заголовок статуса в котором находится результат
    [STATUS_DESCRIPTION] => описание статуса в котором находится результат
    [STATUS_CSS] => имя CSS класса в котором находится результат
    [SID] => символьный идентификатор веб-формы
    [NAME] => заголовок веб-формы
    [IMAGE_ID] => ID изображения веб-формы
    [DESCRIPTION] => описание веб-формы
    [DESCRIPTION_TYPE] => тип описания веб-формы [text|html]
)

Параметры метода

Параметр | Описание | С версии
result_id | ID результата. | Удален с версии 4.0.4
id | ID результата. | 4.0.4

Смотрите также

  • Поля CFormResult;
  • CFormResult::GetList
  • CFormResult::GetDataByID;
  • CForm::GetResultAnswerArray

Примеры использования

<?
$rsResult = CFormResult::GetByID(189);
$arResult = $rsResult->Fetch();
echo "<pre>"; print_r($arResult); echo "</pre>";
?>


GetCount

Веб-формы>Классы>CFormResult>GetCount (4.0.4)

CFormResult::GetCount

int
CFormResult::GetCount(
 int form_id
)

Возвращает количество результатов указанной веб-формы. Метод нестатический.

Параметры метода

Параметр | Описание
form_id | ID веб-формы.

Примеры использования

<?
$FORM_ID = 4; // ID веб-формы
echo "Количество результатов веб-формы #".$FORM_ID.": ".CFormResult::GetCount($FORM_ID);
?>


GetDataByID

Веб-формы>Классы>CFormResult>GetDataByID (3.3.10)

CFormResult::GetDataByID

Описание и параметры

array
CFormResult::GetDataByID(
 int result_id,
 array field,
 array &result,
 array &answer
)

Возвращает массив, описывающий значения ответов на вопросы или значения полей веб-формы для указанного результата. Помимо этого, метод возвращает массив, содержащий поля результата. Метод нестатический.

Формат массива, возвращаемого методом:

Array
(
  [символьный идентификатор вопроса 1] => массив описывающий ответы на вопрос 1
    Array
      (
        [0] => массив описывающий ответ 1
          Array
          (
            [RESULT_ID]           => ID результата
            [FIELD_ID]            => ID вопроса
            [SID]                 => символьный идентификатор вопроса
            [TITLE]               => текст вопроса
            [TITLE_TYPE]          => тип текста вопроса [text|html]
            [FILTER_TITLE]        => заголовок поля фильтра
            [RESULTS_TABLE_TITLE] => заголовок столбца таблицы результатов
            [ANSWER_ID]           => ID ответа
            [ANSWER_TEXT]         => параметр ответа ANSWER_TEXT
            [ANSWER_VALUE]        => параметр ответа ANSWER_VALUE
            [USER_TEXT]           => текст введенный с клавиатуры
            [USER_DATE]           => введенная дата (если FIELD_TYPE=date)
            [USER_FILE_ID]        => ID файла (если FIELD_TYPE=[file|image])
            [USER_FILE_NAME]      => имя файла
            [USER_FILE_IS_IMAGE]  => "Y" - FIELD_TYPE=image; "N" - FIELD_TYPE=file
            [USER_FILE_HASH]      => хэш файла (если FIELD_TYPE=file)
            [USER_FILE_SUFFIX]    => суффикс к расширению файла (если FIELD_TYPE=file)
            [USER_FILE_SIZE]      => размер файла (если FIELD_TYPE=[file|image])
            [FIELD_TYPE]          => тип ответа
            [FIELD_WIDTH]         => ширина поля ответа
            [FIELD_HEIGHT]        => высота поля ответа
            [FIELD_PARAM]         => параметр поля ответа
          )
        [1] => массив описывающий ответ 2
        [2] => массив описывающий ответ 3
        ...
        [N-1] => массив описывающий ответ N
      )
  [символьный идентификатор вопроса 2] => массив описывающий ответы на вопрос 2
  [символьный идентификатор вопроса 3] => массив описывающий ответы на вопрос 3
  ...
  [символьный идентификатор вопроса N] => массив описывающий ответы на вопрос N
)

Параметры метода

Параметр | Описание
result_id | ID результата.
field | Массив символьных идентификаторов вопросов или полей веб-формы, значения которых необходимо получить.
result Ссылка на массив полей результата, а также некоторых полей веб-формы и полей статуса. Структура данного массива:
Array
(
    [ID] => ID результата
    [TIMESTAMP_X] => время изменения результата
    [DATE_CREATE] => дата создания результата
    [FORM_ID] => ID веб-формы
    [USER_ID] => ID пользователя создавшего результат (автор)
    [USER_AUTH] => флаг авторизованности автора при создании результата [Y|N]
    [STAT_GUEST_ID] => ID посетителя создавшего результат
    [STAT_SESSION_ID] => ID сессии в которой был создан результат
    [STATUS_ID] => ID статуса в котором находится результат
    [STATUS_TITLE] => заголовок статуса в котором находится результат
    [STATUS_DESCRIPTION] => описание статуса в котором находится результат
    [STATUS_CSS] => имя CSS класса в котором находится результат
    [SID] => символьный идентификатор веб-формы
    [NAME] => заголовок веб-формы
    [IMAGE_ID] => ID изображения веб-формы
    [DESCRIPTION] => описание веб-формы
    [DESCRIPTION_TYPE] => тип описания веб-формы [text|html]
)
answer Ссылка на массив, описывающий значения ответов на вопросы или значения полей веб-формы для указанного результата result_id. Структура данного массива:
Array
(
  [символьный идентификатор вопроса 1] => массив описывающий ответы на вопрос 1
    Array
    (
      [ID ответа 1] => массив описывающий ответ 1
        Array
        (
          [RESULT_ID]           => ID результата
          [FIELD_ID]            => ID вопроса
          [SID]                 => символьный идентификатор вопроса
          [TITLE]               => текст вопроса
          [TITLE_TYPE]          => тип текста вопроса [text|html]
          [FILTER_TITLE]        => заголовок поля фильтра
          [RESULTS_TABLE_TITLE] => заголовок столбца таблицы результатов
          [ANSWER_ID]           => ID ответа
          [ANSWER_TEXT]         => параметр ответа ANSWER_TEXT
          [ANSWER_VALUE]        => параметр ответа ANSWER_VALUE
          [USER_TEXT]           => текст введенный с клавиатуры
          [USER_DATE]           => введенная дата (если FIELD_TYPE=date)
          [USER_FILE_ID]        => ID файла (FIELD_TYPE=[file|image])
          [USER_FILE_NAME]      => имя файла
          [USER_FILE_IS_IMAGE]  => "Y" - FIELD_TYPE=image; "N" - FIELD_TYPE=file
          [USER_FILE_HASH]      => хэш файла (если FIELD_TYPE=file)
          [USER_FILE_SUFFIX]    => суффикс к расширению файла (FIELD_TYPE=file)
          [USER_FILE_SIZE]      => размер файла (если FIELD_TYPE=[file|image])
          [FIELD_TYPE]          => тип ответа
          [FIELD_WIDTH]         => ширина поля ответа
          [FIELD_HEIGHT]        => высота поля ответа
          [FIELD_PARAM]         => параметр поля ответа
        )
      [ID ответа 2] => массив описывающий ответ 2
      [ID ответа 3] => массив описывающий ответ 3
      ...
      [ID ответа N] => массив описывающий ответ N
    )
  [символьный идентификатор вопроса 2] => массив описывающий ответы на вопрос 2
  [символьный идентификатор вопроса 3] => массив описывающий ответы на вопрос 3
  ...
  [символьный идентификатор вопроса N] => массив описывающий ответы на вопрос N
)

Смотрите также

  • Поля CFormResult
  • Поля CForm
  • CForm::GetResultAnswerArray

Примеры использования

<?
$RESULT_ID = 189; // ID результата

$arAnswer = CFormResult::GetDataByID(
    $RESULT_ID,
    array("VS_INTEREST"),  // вопрос "Какие области знаний вас интересуют?"
    $arResult,
    $arAnswer2);

// выведем поля результата
echo "<pre>"; print_r($arResult); echo "</pre>";

// выведем значения ответов
echo "<pre>"; print_r($arAnswer); echo "</pre>";

// выведем значения ответов в несколько ином формате
echo "<pre>"; print_r($arAnswer2); echo "</pre>";
?>

<?
$RESULT_ID = 189; // ID результата

// получим данные по всем вопросам
$arAnswer = CFormResult::GetDataByID(
    $RESULT_ID,
    array(),
    $arResult,
    $arAnswer2);

// выведем поля результата
echo "<pre>"; print_r($arResult); echo "</pre>";

// выведем значения ответов
echo "<pre>"; print_r($arAnswer); echo "</pre>";

// выведем значения ответов в несколько ином формате
echo "<pre>"; print_r($arAnswer2); echo "</pre>";
?>


GetDataByIDForHTML

Веб-формы>Классы>CFormResult>GetDataByIDForHTML (4.0.4)

CFormResult::GetDataByIDForHTML

Описание и параметры

array
CFormResult::GetDataByIDForHTML(
 int result_id,
 string get_fields = "N"
)

Возвращает массив значений ответов на вопросы веб-формы, а также значения полей веб-формы для указанного результата. Метод нестатический.

Ключи возвращаемого массива в точности соответствуют правилам формирования имен HTML полей для веб-формы.

Пример массива, возвращаемого методом:

Array
(
    [form_text_586] => Иванов Иван Иванович
    [form_date_587] => 10.03.1992
    [form_textarea_588] => г. Мурманск
    [form_radio_VS_MARRIED] => 589
    [form_checkbox_VS_INTEREST] => Array
        (
            [0] => 592
            [1] => 593
            [2] => 594
        )

    [form_dropdown_VS_AGE] => 597
    [form_multiselect_VS_EDUCATION] => Array
        (
            [0] => 603
            [1] => 604
        )

    [form_text_606] => 2345
    [form_image_607] => 1045
)

Параметры метода

Параметр | Описание
result_id | ID результата.
get_fields | Если значение данного параметра равно "Y", то в в массиве, возвращаемом данным методом, будут также значения полей веб-формы; в противном случае, в возвращаемом массиве будут только значения ответов на вопросов веб-формы. Параметр необязательный. По умолчанию - "N".

Смотрите также

  • Имена HTML полей
  • CFormResult::Add
  • CFormResult::Update
  • CForm::Check

Примеры использования

<?
$RESULT_ID = 189; // ID результата

// получим данные результата
$arValues = CFormResult::GetDataByIDForHTML($RESULT_ID, "Y");

// выведем ответ на вопрос "Фамилия, имя, отчество"
echo $arValues["form_text_586"]; // "Иванов Василий"

// выведем фотографию загруженную в качестве ответа на вопрос "Фотография"
CFile::ShowImage($arValues["form_image_607"], 200, 200, "border=0", "", true);

// выведем значение поля веб-формы "Рассчитанная стоимость"
echo $arValues["form_textarea_ADDITIONAL_149"]; // 134 руб.
?>


GetList

Веб-формы>Классы>CFormResult>GetList (3.3.10)

CFormResult::GetList

Описание и параметры

CDBResult
CFormResult::GetList(
 int form_id,
 string &by = "s_timestamp",
 string &order = "desc",
 array filter = array(),
 bool &is_filtered,
 string check_rights = "Y",
 mixed limit = false
)

Возвращает список результатов веб-формы в виде объекта класса CDBResult. Метод нестатический.

Примечание
Возвращаемый список содержит только поля результата. Значения ответов и полей можно получить с помощью метода CForm::GetResultAnswerArray или CFormResult::GetDataByID.

Параметры метода

Параметр | Описание
form_id | ID веб-формы.
by Ссылка на переменную с полем для сортировки; может принимать значения:
  • s_id - ID результата;
  • s_date_create - дата создания;
  • s_timestamp - дата изменения (значение по умолчанию);
  • s_user_id - ID пользователя, создавшего результат;
  • s_guest_id - ID посетителя, создавшего результат;
  • s_session_id - ID сессии, в которой был создан результат;
  • s_status - ID статуса.
order Ссылка на переменную с порядком сортировки. Допустимы следующие значения:
  • desc - по убыванию (значение по умолчанию);
  • asc - по возрастанию.
filter Массив содержащий параметры фильтра. Необязательный параметр. В массиве допустимы следующие ключи:
  • ID* - ID результата (по умолчанию будет искаться точное совпадение);
  • ID_EXACT_MATCH - если значение равно "N", то при фильтрации по ID будет искаться вхождение;
  • STATUS_ID* - ID статуса (по умолчанию будет искаться точное совпадение);
  • STATUS_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по STATUS_ID будет искаться вхождение;
  • TIMESTAMP_1 - левое значение интервала ("с") по дате изменения (задается в формате даты текущего сайта);
  • TIMESTAMP_2 - правое значение интервала ("по") по дате изменения (задается в формате даты текущего сайта);
  • DATE_CREATE_1 - левое значение интервала ("с") по дате создания (задается в формате даты текущего сайта);
  • DATE_CREATE_2 - правое значение интервала ("по") по дате создания (задается в формате даты текущего сайта);
  • TIME_CREATE_1 - левое значение интервала ("с") по дате создания в полном формате (дата и время);
  • TIME_CREATE_2 - правое значение интервала ("по") по дате создания в полном формате (дата и время);
  • REGISTERED - флаг зарегистрированности автора результата; допустимы следующие значения:
    • Y - автор был зарегистрирован как пользователь;
    • N - автор не был зарегистрирован как пользователь.
  • USER_AUTH - флаг авторизованности автора результата; допустимы следующие значения:
    • Y - автор был авторизован;
    • N - автор не был авторизован.
  • USER_ID* - ID пользователя, создавшего результат (автор результата) (по умолчанию будет искаться точное совпадение);
  • USER_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по USER_ID будет искаться вхождение;
  • GUEST_ID* - ID посетителя создавшего результат (автор результата) (по умолчанию будет искаться точное совпадение);
  • GUEST_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по GUEST_ID будет искаться вхождение;
  • SESSION_ID* - ID сессии в которой был создан результат (по умолчанию будет искаться точное совпадение);
  • SESSION_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по SESSION_ID будет искаться вхождение;
  • FIELDS - массив, содержащий параметры фильтра для фильтрации результатов по значениям ответов и полей веб-формы. Каждый элемент данного массива представляет из себя массив, описывающий параметры фильтра по вопросу или полю веб-формы; ключами подобного массива могут быть:
    • SID - символьный идентификатор вопроса или поля веб-формы; синоним - CODE;
    • PARAMETER_NAME - тип данных по которым фильтруем, допустимы следующие значения:
      • USER - фильтруем по ответам введенных авторами с клавиатуры (по умолчанию);
      • ANSWER_TEXT - фильтруем по параметру ANSWER_TEXT;
      • ANSWER_VALUE - фильтруем по параметру ANSWER_VALUE.
    • VALUE - значение, по которому фильтруем (допускается сложная логика [image]);
    • FILTER_TYPE - тип фильтра, определяет, как интерпретировать данные по которым фильтруем:
      • integer - означает, что данные, по которым будет осуществляться фильтрация, считать числами (используется только с PARAMETER_NAME=[USER|ANSWER_TEXT|ANSWER_VALUE]);
      • text - означает, что данные, по которым будет осуществляться фильтрация, должны обрабатываться как текстовые поля (используется только с PARAMETER_NAME=[USER|ANSWER_TEXT|ANSWER_VALUE]);
      • date - означает, что данные по которым будет осуществляться фильтрация, должны обрабатываться как даты (используется только с PARAMETER_NAME=USER);
      • answer_id - означает, что фильтрация будет производиться только по прямому совпадению с ID ответа (при этом PARAMETER_NAME не имеет значения).
    • PART - если тип фильтра FILTER_TYPE=[integer|date], то данное поле должносодержать одно из трех значений:
      • 0 - прямое совпадение со значением;
      • 1 - левое значение интервала ("с");
      • 2 - правое значение интервала ("по")
    • EXACT_MATCH - если FILTER_TYPE="text", то в данном поле можно задать следующие значения:
      • Y - прямое совпадение;
      • N - будет искаться вхождение (по умолчанию).
is_filtered | Ссылка на переменную хранящую флаг отфильтрованности результирующего списка. Если значение равно "true", то список был отфильтрован.
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - права не нужно проверять.
Для того чтобы результат попал в результирующий список, необходимо обладать следующими правами:
  1. На веб-форму form_id:

    [20] Работа со всеми результатами в соответствии с их статусами

    или

    [15] Работа со своим результатом в соответствии с его статусом - в этом случае результирующий список будет состоять только из тех результатов создателем которых является текущий пользователь.
  2. На статус, в котором находится результат, необходимо иметь право:

    [VIEW] просмотр

    или

    [EDIT] редактирование

    или

    [DELETE] удаление
Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).
limit Максимальное количество результатов, которые войдут в результирующий список. По умолчанию ограничивает выборку 5000 строками.

Параметр необязательный.

Смотрите также

  • Поля CFormResult
  • CFormResult::GetDataByID
  • CForm::GetResultAnswerArray

Примеры использования

<?
// ID веб-формы
$FORM_ID = 4;

// фильтр по полям результата
$arFilter = array(
    "ID"                   => "12",              // ID результата
    "ID_EXACT_MATCH"       => "N",               // вхождение
    "STATUS_ID"            => "9 | 10",          // статус
    "TIMESTAMP_1"          => "10.10.2003",      // изменен "с"
    "TIMESTAMP_2"          => "15.10.2003",      // изменен "до"
    "DATE_CREATE_1"        => "10.10.2003",      // создан "с"
    "DATE_CREATE_2"        => "12.10.2003",      // создан "до"
    "REGISTERED"           => "Y",               // был зарегистрирован
    "USER_AUTH"            => "N",               // не был авторизован
    "USER_ID"              => "45 | 35",         // пользователь-автор
    "USER_ID_EXACT_MATCH"  => "Y",               // точное совпадение
    "GUEST_ID"             => "4456 | 7768",     // посетитель-автор
    "SESSION_ID"           => "456456 | 778768", // сессия
    );

// фильтр по вопросам
$arFields = array();

$arFields[] = array(
    "CODE"              => "GAME_ID",       // код поля по которому фильтруем
    "FILTER_TYPE"       => "integer",       // фильтруем по числовому полю
    "PARAMETER_NAME"    => "USER",          // по значению введенному с клавиатуры
    "VALUE"             => $arGame["ID"],   // значение по которому фильтруем
    "PART"              => 0                // прямое совпадение со значением (не интервал)
    );

$arFields[] = array(
    "CODE"              => "GAME_NAME",     // код поля по которому фильтруем
    "FILTER_TYPE"       => "text",          // фильтруем по числовому полю
    "PARAMETER_NAME"    => "USER",          // фильтруем по введенному значению
    "VALUE"             => "Tetris",        // значение по которому фильтруем
    "EXACT_MATCH"       => "Y"              // ищем точное совпадение
    );

$arFields[] = array(
    "CODE"              => "GENRE_ID",      // код поля по которому фильтруем
    "FILTER_TYPE"       => "integer",       // фильтруем по числовому полю
    "PARAMETER_NAME"    => "ANSWER_VALUE",  // фильтруем по параметру ANSWER_VALUE
    "VALUE"             => "3",             // значение по которому фильтруем
    "PART"              => 1                // с
    );

$arFields[] = array(
    "CODE"              => "GENRE_ID",      // код поля по которому фильтруем
    "FILTER_TYPE"       => "integer",       // фильтруем по числовому полю
    "PARAMETER_NAME"    => "ANSWER_VALUE",  // фильтруем по параметру ANSWER_VALUE
    "VALUE"             => "6",             // значение по которому фильтруем
    "PART"              => 2                // по
    );

$arFilter["FIELDS"] = $arFields;

// выберем первые 10 результатов
$rsResults = CFormResult::GetList($FORM_ID,
    ($by="s_timestamp"),
    ($order="desc"),
    $arFilter,
    $is_filtered,
    "Y",
    10);
while ($arResult = $rsResults->Fetch())
{
    echo "<pre>"; print_r($arResult); echo "</pre>";
}


GetPermissions

Веб-формы>Классы>CFormResult>GetPermissions (3.3.10)

CFormResult::GetPermissions

Описание и параметры

array
CFormResult::GetPermissions(
 int result_id,
 int &current_status_id
)

Возвращает массив символьных обозначений прав, которыми обладает текущий пользователь для указанного результата. Помимо этого, метод возвращает ID статуса в котором находится указанный результат. Метод нестатический.

В результирующем массиве могут быть следующие символьные обозначения прав:

  • VIEW - право на просмотр результата;
  • EDIT - право на редактирование результата;
  • DELETE - право на удаление результата.

Примечание
Права на результат, по сути, являются правами на статус, в котором находится данный результат.

Параметры метода

Параметр | Описание
result_id | ID результата.
current_status_id | Ссылка на переменную, в которую будет сохранен ID статуса, указанного результата result_id.

Смотрите также

  • Права на результат
  • CFormStatus::GetPermissions
  • CFormStatus::GetPermissionList
  • CForm::GetPermission

Примеры использования

<?
$RESULT_ID = 189; // ID результата

// получим массив прав
$arPerm = CFormResult::GetPermissions($RESULT_ID, $current_status_id);

echo "Результат #".$RESULT_ID." находится в статусе ".$current_status_id;

if (in_array("VIEW", $arPerm))
    echo "У вас есть право на просмотр результата #".$RESULT_ID;

if (in_array("EDIT", $arPerm))
    echo "У вас есть право на редактирование результата #".$RESULT_ID;

if (in_array("DELETE", $arPerm))
    echo "У вас есть право на удаление результата #".$RESULT_ID;
?>


Mail

Веб-формы>Классы>CFormResult>Mail (4.0.4)

CFormResult::Mail

bool
CFormResult::Mail(
 int result_id,
 mixed template_id = false
)

Создает почтовое событие для отсылки данных результата по e-mail. Возвращает "true" в случае успеха, в противном случае - "false". Метод нестатический.

Параметры метода

Параметр | Описание
result_id | ID результата.
template_id | ID почтового шаблона. Параметр необязательный. По умолчанию - "false" (будут использованы почтовые шаблоны из настроек соответствующей веб-формы).

Примеры использования

<?
$RESULT_ID = 189; // ID результата

// создадим почтовое событие для отсылки по EMail данных результата
if (CFormResult::Mail($RESULT_ID))
{
    echo "Почтовое событие успешно создано.";
}
else // ошибка
{
    global $strError;
    echo $strError;
}
?>


Reset

Веб-формы>Классы>CFormResult>Reset (4.0.4)

CFormResult::Reset

Описание и параметры

bool
CFormResult::Reset(
 int result_id,
 bool del_files = true,
 string del_fields = "N",
 array exception = array()
)

Удаляет все значения ответов на вопросы веб-формы, а также значения полей веб-формы для указанного результата. Сам результат при этом остается. Если в процессе работы метода ошибок не возникло, то метод возвращает "true". Метод нестатический.

Параметры метода

Параметр | Описание
result_id | ID результата.
del_files | Флаг необходимости удаления файлов, загруженных в качестве значения ответа на вопрос. Параметр необязательный. По умолчанию - "true" (файлы необходимо удалить).
del_fields | Флаг необходимости удаления значений полей веб-формы. Параметр необязательный. По умолчанию - "N" (значения полей необходимо удалить).
exception | Массив ID вопросов и полей веб-формы, для которых не нужно удалять значения. Параметр необязательный. По умолчанию - пустой массив.

Смотрите также

  • CForm::Reset;
  • CFormField::Reset

Примеры использования

<?
$RESULT_ID = 189; // ID результата

// удалим все значения ответов на вопросы и полей веб-формы
// вместе с файлами
// исключение составят вопросы с ID = 140 и ID = 141
CFormResult::Reset($RESULT_ID, true, "Y", array(140, 141));
?>


SetEvent

Веб-формы>Классы>CFormResult>SetEvent (4.0.4)

CFormResult::SetEvent

Описание и параметры

bool
CFormResult::SetEvent(
 int result_id,
 string event1 = false,
 string event2 = false,
 string event3 = false,
 mixed money = "",
 mixed currency = "",
 mixed goto = "",
 mixed chargeback = "N"
)

Создает событие в модуле "Статистика". Возвращает "true" в случае успеха, в противном случае - "false". Метод нестатический.

Параметры метода

Параметр | Описание
result_id | ID результата.
event1 | Идентификатор типа события - event1. Параметр необязательный. По умолчанию - "false" (будет равен "form").
event2 | Идентификатор типа события - event2. Параметр необязательный. По умолчанию - "false" (будет равен символьному идентификатору соответствующей веб-формы).
event3 | Дополнительный параметр события - event3. Параметр необязательный. По умолчанию - "false" (будет равен ссылке, ведущей на административную страницу просмотра результата result_id).
money | Денежная сумма события. Параметр необязательный. По умолчанию - "".
currency | Трехсимвольный идентификатор валюты денежной суммы money. Параметр необязательный. По умолчанию - "".
chargeback | Если в данный параметр передано значение "Y", при создании события в модуле "Статистика" денежная сумма money будет зафиксирована с отрицательным знаком. Параметр необязательный. По умолчанию - "N".
goto | Параметр необязательный. По умолчанию - "".

Примеры использования

<?
$RESULT_ID = 189; // ID результата

// создадим событие в модуле "Статистика"
if (CFormResult::SetEvent($RESULT_ID))
{
    echo "Событие успешно создано.";
}
else // ошибка
{
    global $strError;
    echo $strError;
}
?>


SetField

Веб-формы>Классы>CFormResult>SetField (3.3.10)

CFormResult::SetField

Описание и параметры

CFormResult::SetField(
 int result_id,
 string field_sid,
 mixed value = false
)

Для указанного результата обновляет значения ответа на вопрос или обновляет значение поля. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
result_id | ID результата.
field_varname | Удален с 4.0.4
field_sid | Символьный идентификатор вопроса или поля. | 4.0.4
value Значение, которое необходимо сохранить. В зависимости от типа обновляемого поля, данный параметр имеет различный формат.
  • При обновлении значения поля, в данном параметре достаточно указать новое значение обновляемого поля.
  • При обновлении значений ответов на вопрос, формат данного параметра следующий:
    array (
        ID ответа 1 => значение ответа 1,
        ID ответа 2 => значение ответа 2,
    ...
)
    Если ответ принадлежит к одним из следующих типов:
    • radio - переключатель одиночного выбора (radio-кнопка);
    • checkbox - флаг множественного выбора (checkbox);
    • dropdown - элемент выпадающего списка одиночного выбора;
    • multiselect - элемент списка множественного выбора,
    то в качестве "значения ответа" достаточно указать "" (пустое значение).

    Если ответ имеет один из следующих типов:
    • text - однострочное текстовое поле;
    • textarea - многострочное текстовое поле;
    • date - поле для ввода даты;
    • password - поле для ввода пароля,
    то в качестве "значения ответа" необходимо указать значение, которое могло бы быть введено с клавиатуры при ответе на данный вопрос.

    Если ответ имеет один из следующих типов:
    • image - поле для загрузки изображения;
    • file - поле для загрузки произвольного файла.
    то в качестве "значения ответа" необходимо указать массив, описывающий файл и имеющий следующий ключи:
    • name - имя файла;
    • size - размер файла;
    • tmp_name - временный путь на сервере;
    • type - тип загружаемого файла.
    Такой массив можно получить с помощью функции CFile::MakeFileArray.
Параметр value необязательный. С версии 4.0.4 значение по умолчанию - "false" (значение поля или значение ответа на вопрос будут просто удалены).

Смотрите также

  • CFormResult::Update
  • CFile::MakeFileArray

Примеры использования

$RESULT_ID = 186;

/**************************************************************
            Обновление значений ответов на вопросы
**************************************************************/

// обновим ответ на вопрос "Фамилия, имя, отчество"
$arVALUE = array();
$FIELD_SID = "VS_NAME"; // символьный идентификатор вопроса
$ANSWER_ID = 586; // ID поля ответа
$arVALUE[$ANSWER_ID] = "Иванов Иван";
CFormResult::SetField($RESULT_ID, $FIELD_SID, $arVALUE);

// обновим ответ на вопрос "Дата рождения"
$arVALUE = array();
$FIELD_SID = "VS_BIRTHDAY"; // символьный идентификатор вопроса
$ANSWER_ID = 587; // ID поля ответа
$arVALUE[$ANSWER_ID] = "18.06.1975";
CFormResult::SetField($RESULT_ID, $FIELD_SID, $arVALUE);

// обновим ответ на вопрос "Какие области знаний вас интересуют?"
$arVALUE = array();
$FIELD_SID = "VS_INTEREST"; // символьный идентификатор вопроса
$arVALUE[612] = ""; // ID поля ответа "математика"
$arVALUE[613] = ""; // ID поля ответа "физика"
$arVALUE[614] = ""; // ID поля ответа "история"
CFormResult::SetField($RESULT_ID, $FIELD_SID, $arVALUE);

// обновим ответ на вопрос "Фотография"
$arVALUE = array();
$FIELD_SID = "VS_PHOTO"; // символьный идентификатор вопроса
$ANSWER_ID = 607; // ID поля ответа
$path = $_SERVER["DOCUMENT_ROOT"]."/images/news.gif"; // путь к файлу
$arVALUE[$ANSWER_ID] = CFile::MakeFileArray($path);
CFormResult::SetField($RESULT_ID, $FIELD_SID, $arVALUE);

// обновим ответ на вопрос "Резюме"
$arVALUE = array();
$FIELD_SID = "VS_RESUME"; // символьный идентификатор вопроса
$ANSWER_ID = 610; // ID поля ответа
$path = $_SERVER["DOCUMENT_ROOT"]."/docs/alawarauthorarea.doc"; // путь к файлу
$arVALUE[$ANSWER_ID] = CFile::MakeFileArray($path);
CFormResult::SetField($RESULT_ID, $FIELD_SID, $arVALUE);

/**************************************************************
                Обновление значений полей
**************************************************************/

// обновим значение поля "Рассчитанная стоимость"
$FIELD_SID = "VS_PRICE"; // символьный идентификатор вопроса
$VALUE = "155";
CFormResult::SetField($RESULT_ID, $FIELD_SID, $VALUE);
?>


SetStatus

Веб-формы>Классы>CFormResult>SetStatus (4.0.4)

CFormResult::SetStatus

Описание и параметры

bool
CFormResult::SetStatus(
 int result_id,
 int status_id,
 string check_rights = "Y"
)

Устанавливает новый статус для результата. Возвращает "true" в случае успеха, в противном случае - "false". Метод нестатический.

Параметры метода

Параметр | Описание
result_id | ID результата.
status_id | ID нового статуса.
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - права не нужно проверять.
Для успешной установки нового статуса для указанного результата необходимо обладать следующими правами:
  1. На веб-форму к которой принадлежит редактируемый результат:

    [20] Работа со всеми результатами в соответствии с их статусами

    или, в случае, если вы являетесь создателем удаляемого результата, достаточно права:

    [15] Работа со своим результатом в соответствии с его статусом
  2. На статус, в котором находится редактируемый результат, необходимо иметь право:

    [EDIT] редактирование
  3. На новый статус status_id необходимо иметь право:

    [MOVE] перевод результатов в данный статус
Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).

Примеры использования

<?
$RESULT_ID = 189; // ID результата
$STATUS_ID = 1; // ID статуса "Опубликовано"

// установим новый статус для результата
// с проверкой прав текущего пользователя
if (CFormResult::SetStatus($RESULT_ID, $STATUS_ID))
{
    echo "Статус #".$STATUS_ID." для результата #".$RESULT_ID." успешно установлен.";
}
else // ошибка
{
    global $strError;
    echo $strError;
}
?>


Update

Веб-формы>Классы>CFormResult>Update (3.3.10)

CFormResult::Update

Описание и параметры

bool
CFormResult::Update(
 int result_id,
 array values = false,
 string update_fields = "N",
 string check_rights = "Y"
)

Обновляет все значения ответов и полей результата веб-формы. В случае успеха возвращает "true", в противном случае - "false". Метод нестатический.

Параметры метода

Параметр | Описание
result_id | ID результата.
values Массив со значениями ответов и полей веб-формы. Массив имеет следующую структуру:
array(
    "имя HTML поля 1" => "значение 1",
    "имя HTML поля 2" => "значение 2",
    ...
    "имя HTML поля N" => "значение N"
)
Правила формирования "имен HTML полей" и "значений" можно посмотреть здесь.
Пример:
Array
(
    [form_text_586] => Иванов Иван Иванович
    [form_date_587] => 10.03.1992
    [form_textarea_588] => г. Мурманск
    [form_radio_VS_MARRIED] => 589
    [form_checkbox_VS_INTEREST] => Array
        (
            [0] => 592
            [1] => 593
            [2] => 594
        )

    [form_dropdown_VS_AGE] => 597
    [form_multiselect_VS_EDUCATION] => Array
        (
            [0] => 603
            [1] => 604
        )

    [form_text_606] => 2345
    [form_image_607] => 1045
    [form_textarea_ADDITIONAL_149] => 155
)
Параметр необязательный. По умолчанию - "false" (будет взят стандартный массив $_REQUEST).
update_fiels Флаг необходимости обновления полей веб-формы. Возможны следующие значения:
  • Y - необходимо обновить;
  • N - не нужно обновлять.
Параметр необязательный. По умолчанию - "N" (не нужно обновлять).
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - права не нужно проверять.
Для успешного обновления результата необходимо обладать следующими правами:
  1. На веб-форму, к которой принадлежит редактируемый результат:

    [20] Работа со всеми результатами в соответствии с их статусами

    или, в случае, если вы являетесь создателем редактируемого результата, достаточно права:

    [15] Работа со своим результатом в соответствии с его статусом
  2. На статус, в котором находится редактируемый результат, необходимо иметь право:

    [EDIT] редактирование
Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).

Смотрите также

  • CFormResult::SetField
  • CFormResult::GetDataByIDForHTML
  • CFormResult::Add

Примеры использования

<?
// ID результата
$RESULT_ID = 186;

// массив описывающий загруженную на сервер фотографию
$arImage = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/photo.gif");

// массив значений ответов и полей веб-формы
$arValues = array (
    "form_text_586"                 => "Иванов Иван",    // "Фамилия, имя, отчество"
    "form_date_587"                 => "01.06.1904",     // "Дата рождения"
    "form_textarea_588"             => "г. Москва",      // "Адрес"
    "form_radio_VS_MARRIED"         => 590,              // "Женаты/замужем?"
    "form_checkbox_VS_INTEREST"     => array(612, 613),  // "Увлечения"
    "form_dropdown_VS_AGE"          => 601,              // "Возраст"
    "form_multiselect_VS_EDUCATION" => array(602, 603),  // "Образование"
    "form_text_606"                 => 300,              // "Доход"
    "form_image_607"                => $arImage,         // "Фотография"
    "form_textarea_ADDITIONAL_149"  => "155 рублей"      // "Рассчитанная сумма"
)

//обновим результат
if (CFormResult::Update($RESULT_ID, $arValues, "Y"))
{
    echo "Результат #".$RESULT_ID." успешно обновлен.";
}
else
{
    global $strError;
    echo $strError;
}
?>


Класс CFormStatus

CFormStatus - класс для работы со статусами.

Поля

Поле | Тип | Описание
ID | int | Идентификатор статуса.
FORM_ID | int | Идентификатор веб-формы.
TIMESTAMP_X | datetime | Время последнего изменения параметров статуса.
ACTIVE | char | Флаг активности статуса [Y|N].
C_SORT | int | Индекс сортировки статуса.
TITLE | varchar(255) | Заголовок статуса.
DESCRIPTION | varchar(2000) | Описание статуса.
DEFAULT_VALUE | char | Флаг установки у результата данного статуса по умолчанию [Y|N].
CSS | varchar(255) | Имя CSS класса для вывода заголовка статуса.
HANDLER_OUT | varchar(255) | Путь относительно корня к обработчику, вызываемому при смене у результата данного статуса на другой.
HANDLER_IN | varchar(255) | Путь относительно корня к обработчику, вызываемому при смене у результата какого-либо статуса на данный.

Методы

Метод | Описание | С версии
Set | Добавляет новый статус либо обновляет параметры существующего. |
GetList | Возвращает список статусов указанной веб-формы. |
GetByID | Возвращает параметры статуса. |
Copy | Копирует статус. |
Delete | Удаляет статус. |
GetPermissions | Возвращает массив прав текущего пользователя для указанного статуса. |
GetPermissionList | Возвращает массивы групп пользователей с определёнными правами для указанного статуса. |
GetDropdown | Возвращает список статусов в формате для вывода выпадающего списка одиночного выбора. |


Copy

Веб-формы>Классы>CFormStatus>Copy (4.0.4)

CFormStatus::Copy

Описание и параметры

mixed
CFormStatus::Copy(
 int status_id,
 string check_rights = "Y",
 mixed form_id = false
)

Копирует статус. Возвращает ID нового статуса в случае положительного результата, в противном случае - "false". Метод нестатический.

Параметры метода

Параметр | Описание
status_id | ID статуса который необходимо скопировать.
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для копирования статуса необходимо обладать нижеследующими правами:
  1. [25] просмотр параметров веб-формы на ту веб-форму, из которой идет копирование;
  2. [30] полный доступ на ту веб-форму, в которую копируется.
Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).
form_id ID веб-формы в который необходимо скопировать статус.
Необязательный параметр. По умолчанию - "false" (текущая веб-форма).

Смотрите также

  • CForm::Copy
  • CFormField::Copy
  • CFormAnswer::Copy

Примеры использования

<?
$status_id = 1; // ID статуса
// скопируем статус
if ($NEW_STATUS_ID = CFormStatus::Copy($status_id))
{
    echo "Статус #1 успешно скопирован в новый статус #".$NEW_STATUS_ID;
}
else
{
    // выведем текст ошибки
    global $strError;
    echo $strError;
}
?>


Delete

Веб-формы>Классы>CFormStatus>Delete (4.0.4)

CFormStatus::Delete

Описание и параметры

bool
CFormStatus::Delete(
 int status_id,
 string check_rights = "Y"
)

Удаляет статус. Возвращает "true" в случае положительного результата, и "false" - в противном случае. Метод нестатический.

Примечание
Статусы, в которых находится хотя бы один результат, невозможно удалить.

Параметры метода

Параметр | Описание
status_id | ID удаляемого статуса.
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для успешного выполнения удаления необходимо иметь право [30] Полный доступ на веб-форму, к которой принадлежит status_id.
Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).

Смотрите также

  • CForm::Delete
  • CFormField::Delete
  • CFormAnswer::Delete
  • CFormResult::Delete

Примеры использования

<?
$status_id = 1; // ID статуса
// удалим статус
if (CFormStatus::Delete($status_id))
{
    echo "Статус #1 успешно удален.";
}
else
{
    // выведем текст ошибки
    global $strError;
    echo $strError;
}
?>


GetByID

Веб-формы>Классы>CFormStatus>GetByID (4.0.4)

CFormStatus::GetByID

CDBResult
CFormStatus::GetByID(
 int status_id
)

Возвращает параметры статуса в виде объекта класса CDBResult. Метод нестатический.

Параметры метода

Параметр | Описание
status_id | ID статуса.

Смотрите также

  • Поля CFormStatus
  • CFormStatus::GetList

Примеры использования

<?
$status_id = 1; // ID статуса
$rsStatus = CFormStatus::GetByID($status_id);
$arStatus = $rsStatus->Fetch();
echo "<pre>"; print_r($arStatus); echo "</pre";
?>


GetDropDown

Веб-формы>Классы>CFormStatus>GetDropDown (4.0.4)

CFormStatus::GetDropDown

Описание и параметры

CDBResult
CFormStatus::GetDropDown(
 int form_id,
 array permission = array("MOVE"),
 int owner_user_id = 0
)

Возвращает список статусов в виде объекта класса CDBResult в формате, пригодном для вывода выпадающего списка одиночного выбора.

Результирующий список будет состоять из статусов указанной веб-формы form_id. Статус будет включен в результирующий список только в том случае, если текущий пользователь обладает хотя бы одним из прав, указанных в параметре permission.

Метод нестатический.

Параметры метода

Параметр | Описание
form_id | ID веб-формы.
permission Массив прав, одним из которых должен обладать текущий пользователь. В данном массиве возможны следующие значения:
  • VIEW - право на просмотр;
  • MOVE - право на перевод;
  • EDIT - право на редактирование;
  • DELETE - право на удаление.
Параметр необязательный. По умолчанию - array("MOVE") (право на перевод результатов в соответствующий статус).
owner_user_id Если данный метод используется для построения выпадающего списка доступных статусов конкретного результата, то в данном параметре необходимо указать ID пользователя, создавшего данный результат (владелец результата, поле результата - USER_ID).

Параметр необязательный. По умолчанию - 0.

Смотрите также

  • Права на результат

Примеры использования

<?
$FORM_ID = 4; // ID веб-формы

// получим список всех доступных статусов
// для которых есть право просмотра у текущего пользователя
$rsStatuses = CFormStatus::GetDropdown($FORM_ID, array("VIEW"));

// выведем выпадающий список
echo SelectBox("STATUS_ID", $rsStatuses, "(выберете статус)", htmlspecialchars($STATUS_ID));
?>


GetList

Веб-формы>Классы>CFormStatus>GetList (4.0.4)

CFormStatus::GetList

Описание и параметры

CDBResult
CFormStatus::GetList(
 int form_id,
 string &by = "s_sort",
 string &order = "asc",
 array filter = array(),
 bool &is_filtered
)

Возвращает список статусов в виде объекта класса CDBResult. Метод нестатический.

Параметры метода

Параметр | Описание
form_id | ID веб-формы.
by Ссылка на переменную с полем для сортировки результирующего списка, может принимать значения:
  • s_id - ID статуса;
  • s_sort - индекс сортировки;
  • s_timestamp - время последнего изменения статуса;
  • s_active - флаг активности;
  • s_default - флаг установки по умолчанию;
  • s_title - заголовок;
  • s_description - описание;
  • s_results - количество результатов находящихся в данном статусе.
оrder Ссылка на переменную с порядком сортировки, может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию.
filter Массив для фильтрации. Необязательный параметр. В массиве допустимы следующие ключи:
  • ID* - ID статуса (по умолчанию будет искаться точное совпадение);
  • ID_EXACT_MATCH - если значение равно "N", при фильтрации по ID будет искаться вхождение;
  • ACTIVE - флаг активности, допустимые следующие значения:
    • Y - статус активен;
    • N - статус не активен.
  • TITLE* - заголовок статуса (по умолчанию будет искаться вхождение);
  • TITLE_EXACT_MATCH - если значение равно "Y", то при фильтрации по TITLE будет искаться точное совпадение;
  • DESCRIPTION* - описание статуса (по умолчанию будет искаться вхождение);
  • DESCRIPTION_EXACT_MATCH - если значение равно "Y", то при фильтрации по DESCRIPTION будет искаться точное совпадение.
* - допускается сложная логика
is_filtered | Ссылка на переменную хранящую флаг отфильтрованности результирующего списка. Если значение равно "true", то список был отфильтрован.

Смотрите также

  • Поля CFormStatus
  • CFormStatus::GetByID

Примеры использования

<?
$FORM_ID = 4; // ID веб-формы

// сформируем массив фильтра
$arFilter = Array(
    "ID"                       => "1 | 4",       // ID статуса равен 1 или 4
    "ID_EXACT_MATCH"           => "Y",           // точное совпадение для ID
    "ACTIVE"                   => "Y",           // флаг активности
    "TITLE"                    => "опубликован", // заголовок
    "TITLE_EXACT_MATCH"        => "N",           // точное совпадение для TITLE
    "DESCRIPTION"              => "конечный",    // описание
    "DESCRIPTION_EXACT_MATCH"  => "N",           // точное совпадение для DESCRIPTION
);

// получим список всех статусов формы, соответствующих фильтру
$rsStatuses = CFormStatus::GetList(
    $FORM_ID,
    $by="s_id",
    $order="desc",
    $arFilter,
    $is_filtered
    );
while ($arStatus = $rsStatuses->Fetch())
{
    echo "<pre>"; print_r($arStatus); echo "</pre>";
}
?>


GetPermissionList

Веб-формы>Классы>CFormStatus>GetPermissionList (4.0.4)

CFormStatus::GetPermissionList

Описание и параметры

CFormStatus::GetPermissionList(
 int status_id,
 array &can_view,
 array &can_move,
 array &can_edit,
 array &can_delete
)

Возвращает массивы групп пользователей, имеющих определённые права на указанный статус. Метод нестатический.

Параметры метода

Параметр | Описание
status_id | ID статуса.
can_view | Ссылка на массив для хранения ID групп пользователей, обладающих правом на просмотр результата, находящемся в статусе status_id.
can_move | Ссылка на массив для хранения ID групп пользователей, обладающих правом перевода результатов в статус status_id.
can_edit | Ссылка на массив для хранения ID групп пользователей, обладающих правом редактирования результатов, находящихся в статусе status_id.
can_edit | Ссылка на массив для хранения ID групп пользователей, обладающих правом удаления результатов, находящихся в статусе status_id.

Смотрите также

  • Права на результат
  • CForm::GetPermission
  • CFormResult::GetPermissions

Примеры использования

<?
$STATUS_ID = 1;

// получим массив групп обладающих определёнными правами на статус #1
CFormStatus::GetPermissionList($STATUS_ID, $arVIEW, $arMOVE, $arEDIT, $arDELETE);

// выведем массив групп обладающих правом
// просмотра результатов находящихся в статусе #1
echo "<pre>"; print_r($arVIEW); echo "</pre>";

// выведем массив групп обладающих правом
// перевода результатов в статус #1
echo "<pre>"; print_r($arMOVE); echo "</pre>";

// выведем массив групп обладающих правом
// редактирования результатов находящихся в статусе #1
echo "<pre>"; print_r($arEDIT); echo "</pre>";

// выведем массив групп обладающих правом
// удаления результатов находящихся в статусе #1
echo "<pre>"; print_r($arDELETE); echo "</pre>";

?>


GetPermissions

Веб-формы>Классы>CFormStatus>GetPermissions (4.0.4)

CFormStatus::GetPermissions

Описание и параметры

array
CFormStatus::GetPermissions(
 int status_id
)

Возвращает массив прав текущего пользователя на указанный статус. В качестве значений данного массива допустимы:

  • VIEW - право на просмотр результатов в данном статусе;
  • MOVE - право на перевод результатов в данный статус;
  • EDIT - право на редактирование результатов в данном статусе;
  • DELETE - право на удаление результатов в данном статусе.

Метод нестатический.

Параметры метода

Параметр | Описание
status_id | ID статуса.

Смотрите также

  • Права на результат
  • CForm::GetPermission
  • CFormResult::GetPermissions

Примеры использования

<?
$STATUS_ID = 1;

// получим права текущего пользователя для указанного статуса
$arPerm = CFormStatus::GetPermissions($STATUS_ID);

if (in_array("VIEW", $arPerm))
    echo "У вас есть право на просмотр результатов в данном статусе";

if (in_array("EDIT", $arPerm))
    echo "У вас есть право на редактирование результатов в данном статусе";

if (in_array("MOVE", $arPerm))
    echo "У вас есть право на установку данного статуса результатам";

if (in_array("DELETE", $arPerm))
    echo "У вас есть право на удаление результатов в данном статусе";
?>


Set

Веб-формы>Классы>CFormStatus>Set (4.0.4)

CFormStatus::Set

Описание и параметры

mixed
CFormStatus::Set(
 array fields,
 mixed status_id = false,
 string check_rights = "Y"
)

Добавляет новый статус или обновляет существующий. Возвращает ID обновленного или добавленного статуса в случае положительного результата, в противном случае - "false". Метод нестатический.

Параметры метода

Параметр Описание
fields Массив значений, в качестве ключей массива допустимы:
  • FORM_ID* - ID веб-формы;
  • TITLE* - заголовок статуса;
  • C_SORT - порядок сортировки;
  • ACTIVE - флаг активности; допустимы следующие значения:
    • Y - ответ активен;
    • N - ответ не активен (по умолчанию).
  • DESCRIPTION - описание статуса;
  • CSS - имя CSS класса для вывода заголовка статуса;
  • HANDLER_OUT - путь относительно корня к обработчику, вызываемому при смене у результата данного статуса на какой либо другой;
  • HANDLER_IN - путь относительно корня к обработчику, вызываемому при смене у результата какого либо статуса на данный;
  • DEFAULT_VALUE - флаг установки статуса по умолчанию, допустимы следующие значения:
    • Y - статус будет устанавливаться;
    • N - статус не будет устанавливаться (по умолчанию).
  • arPERMISSION_VIEW* - массив ID групп пользователей, имеющих право "Просмотр результатов в данном статусе";
  • arPERMISSION_MOVE* - массив ID групп пользователей, имеющих право "Перевод результатов в данный статус";
  • arPERMISSION_EDIT* - массив ID групп пользователей, имеющих право "Редактирование результатов в данном статусе";
  • arPERMISSION_DELETE* - массив ID групп пользователей, имеющих право "Удаление результатов в данном статусе".

* - обязательно к заполнению.
* - в данных массивах может быть элемент со значением "0", означающий создателя результата.
status_id ID обновляемого статуса.
Параметр необязательный. По умолчанию - "false" (добавление нового статуса).
check_rights Флаг необходимости проверки прав текущего пользователя. Возможны следующие значения:
  • Y - права необходимо проверить;
  • N - право не нужно проверять.
Для обновления статуса, либо создания нового статуса необходимо иметь право [30] Полный доступ на форму указанную в fields["FORM_ID"].

Параметр необязательный. По умолчанию - "Y" (права необходимо проверить).

Смотрите также

  • Поля CFormStatus

Примеры использования

<?
$FORM_ID = 4; // ID веб-формы

$arFields = array(
    "FORM_ID"             => $FORM_ID,               // ID веб-формы
    "C_SORT"              => 100,                    // порядок сортировки
    "ACTIVE"              => "Y",                    // статус активен
    "TITLE"               => "Опубликовано",         // заголовок статуса
    "DESCRIPTION"         => "Окончательный статус", // описание статуса
    "CSS"                 => "statusgreen",          // CSS класс
    "HANDLER_OUT"         => "",                     // обработчик
    "HANDLER_IN"          => "",                     // обработчик
    "DEFAULT_VALUE"       => "N",                    // не по умолчанию
    "arPERMISSION_VIEW"   => array(2),               // право просмотра для всех
    "arPERMISSION_MOVE"   => array(),                // право перевода только админам
    "arPERMISSION_EDIT"   => array(),                // право редактирование для админам
    "arPERMISSION_DELETE" => array(),                // право удаления только админам
);

$NEW_ID = CFormStatus::Set($arFields);
if ($NEW_ID>0) echo "Успешно добавлен ID=".$NEW_ID;
else // ошибка
{
    // выводим текст ошибки
    global $strError;
    echo $strError;
}
?>


Класс CFormValidator

CFormValidator - класс для работы с валидаторами.

Методы

Метод | Описание | С версии
Clear | Очищает список валидаторов, назначенных на вопрос. |
Execute | Применяет валидатор к значению. |
GetAllList | Возвращает полный список зарегистрированных валидаторов с возможностью фильтрации. |
GetList | Возвращает список валидаторов, назначенных вопросу. |
GetListForm | Возвращает список валидаторов, назначенных полям формы. |
GetSettings | Возвращает массив параметров валидатора. |
GetSettingsArray | Возвращает массив настроек валидатора, примененного к конкретному вопросу. |
GetSettingsString | Возвращает строку настроек валидатора для сохранения в БД. |
Set | Привязывает валидатор с заданными настроками к вопросу. |
SetBatch | Привязывает набор валидаторов с заданными настроками к вопросу. |


Clear

Веб-формы>Классы>CFormValidator>Clear (6.0.0)

CFormValidator::Clear

CFormValidator::Clear(
 int FIELD_ID,
)

Удаляет все валидаторы, назначенные данному вопросу/полю. Метод нестатический.

Параметры метода

Параметр | Описание
FIELD_ID | ID поля.


Execute

Веб-формы>Классы>CFormValidator>Execute (6.0.0)

CFormValidator::Execute

bool
CFormValidator::Execute(
 array arValidator,
 array arQuestion,
 array arAnswers,
 array arValues,
)

Выполняет валидатор для заданных значений ответов в применении к вопросу. Метод нестатический.

Параметры метода

Параметр | Описание
arValidator Описательный массив валидатора, один из элементов массива, возвращаемого методом CFormValidator::GetList. Должен содержать следующие параметры:
  • NAME - идентификатор валидатора
  • PARAMS - массив значений настроек валидатора
arQuestion | Описание вопроса. Во входящих в поставку валидаторах не используется, но может быть использован в собственных валидаторах.
arAnswers | Массив описаний ответов вопроса. Во входящих в поставку валидаторах не используется, но может быть использован в собственных валидаторах.
arValues | Массив ответов на вопрос в формате array('значение1', 'значение2', .... 'значение n').


GetAllList

Веб-формы>Классы>CFormValidator>GetAllList (6.0.0)

CFormValidator::GetAllList

Описание и параметры

CDBResult
CFormValidator::GetAllList(
 mixed arFilter = array(),
)

Возвращает список зарегистрированных валидаторов в виде объекта класса CDBResult. Метод нестатический.

Параметры метода

Параметр Описание
arFilter Массив для фильтрации. Необязательный параметр. В массиве допустимы следующие ключи:
  • TYPE - список типов полей;

Пример использования

if (CModule::IncludeModule("form"))
{
  $arFilter = array("TYPE" => array("text", "textarea"));

  $sType = "<b>".implode("</b>, <b>", $arFilter["TYPE"])."</b>";

  $rsValidators = CFormValidator::GetAllList($arFilter);
  if ($rsValidators->SelectedRowsCount() > 0)
  {
    echo "Найденные валидаторы для полей типа ".$sType.":<ul>";
    while ($arValidator = $rsValidators->GetNext())
    {
      echo "<li>[".$arValidator["NAME"]."] ".$arValidator["DESCRIPTION"]."</li>";
    }
    echo "</ul>";
  }
  else
  {
    echo "Валидаторов, применимых к полям типа ".$sType." не обнаружено.";
  }
}
else
{
  ShowError('Модуль веб-форм не установлен');
}


GetList

Веб-формы>Классы>CFormValidator>GetList (6.0.0)

CFormValidator::GetList

CDBResult
CFormValidator::GetList(
 int FIELD_ID,
 mixed arFilter = array(),
 string &by = "s_sort",
 string &order = "asc",
)

Возвращает список заданных для поля валидаторов в виде объекта класса CDBResult. Метод нестатический.

Параметры метода

Параметр | Описание
FIELD_ID | ID вопроса.
arFilter Массив для фильтрации. Необязательный параметр. В массиве допустимы следующие ключи:
  • ACTIVE - флаг активности валидатора;
  • NAME - идентификатор валидатора;
by Ссылка на переменную с полем для сортировки результирующего списка. Может принимать значения:
  • VALIDATOR_SID - ID валидатора;
  • C_SORT - индекс сортировки.
оrder Ссылка на переменную с порядком сортировки. Может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию.


GetListForm

Веб-формы>Классы>CFormValidator>GetListForm (6.0.0)

CFormValidator::GetListForm

CDBResult
CFormValidator::GetListForm(
 int FORM_ID,
 mixed arFilter = array(),
 string &by = "s_sort",
 string &order = "asc",
)

Возвращает список валидаторов, заданных для полей формы, в виде объекта класса CDBResult. Метод нестатический.

Параметры метода

Параметр | Описание
FORM_ID | ID веб-формы.
arFilter Массив для фильтрации. Необязательный параметр. В массиве допустимы следующие ключи:
  • FIELD_ID - ID вопроса;
  • ACTIVE - флаг активности валидатора;
  • NAME - идентификатор валидатора;
by Ссылка на переменную с полем для сортировки результирующего списка. Может принимать значения:
  • VALIDATOR_SID - ID валидатора;
  • C_SORT - индекс сортировки.
оrder Ссылка на переменную с порядком сортировки. Может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию.


GetSettings

Веб-формы>Классы>CFormValidator>GetSettings (6.0.0)

CFormValidator::GetSettings

array
CFormValidator::GetSettings(
 array arValidator,
)

Возвращает список настроек валидатора. Аналогично прямому вызову метода возврата настроек валидатора. Метод нестатический.

Параметры метода

Параметр | Описание
arValidator | Описательный массив валидатора (например, полученный из результата метода CFormValidators::GetAllList).


GetSettingsArray

Веб-формы>Классы>CFormValidator>GetSettingsArray (6.0.0)

CFormValidator::GetSettingsArray

array
CFormValidator::GetSettingsArray(
 array arValidator,
 string strParams
)

Возвращает список настроек валидатора со значениями после обратного преобразования строки, занесенной в базу. Аналогичен прямому вызову метода обратного преобразования (CONVERT_FROM_DB) валидатора. При вызове методов CFormValidator::GetList и CFormValidator::GetListForm вызывается автоматически. Метод нестатический.

Параметры метода

Параметр | Описание
arValidator | Описательный массив валидатора (например, полученный из результата метода CFormValidators::GetList).
strParams | Строка со значениями настроек, хранящаяся в БД.


GetSettingsString

Веб-формы>Классы>CFormValidator>GetSettingsString (6.0.0)

CFormValidator::GetSettingsString

string
CFormValidator::GetSettingsString(
 array arValidator,
 array arParams
)

Возвращает список настроек валидатора со значениями, преобразованный для занесения в базу. Аналогичен прямому вызову метода преобразования настроек (CONVERT_TO_DB) валидатора. При вызове методов CFormValidator::Set и CFormValidator::SetBatch вызывается автоматически. Метод нестатический.

Параметры метода

Параметр | Описание
arValidator | Описательный массив валидатора (например, полученный из результата метода CFormValidators::GetList).
arParams | Массив значений настроек валидатора.


Set

Веб-формы>Классы>CFormValidator>Set (6.0.0)

CFormValidator::Set

bool
CFormValidator::Set(
 int WEB_FORM_ID,
 int FIELD_ID,
 string VALIDATOR_SID,
 array arParams = array(),
)

Прикрепляет валидатор с заданными настройками к полю формы. Возвращает true в случае успеха операции и false в случае ошибки (валидатора с таким ID не существует, ошибка в валидаторе и т.д.). Метод нестатический.

Параметры метода

Параметр | Описание
WEB_FORM_ID | ID веб-формы.
FIELD_ID | ID вопроса.
VALIDATOR_SID | Идентификатор валидатора.
arParams | Массив значений параметров валидатора. Необязательный параметр.
c_sort | Необязательный параметр. Значение по умолчанию - 100.


SetBatch

Веб-формы>Классы>CFormValidator>SetBatch (6.0.0)

CFormValidator::SetBatch

CFormValidator::SetBatch(
 int WEB_FORM_ID,
 int FIELD_ID,
 array arValidators = array(),
)

Прикрепляет группу валидаторов с заданными настройками к полю формы. Аналогична вызову CFormValidator::Set для каждого валидатора группы. Метод нестатический.

Параметры метода

Параметр | Описание
WEB_FORM_ID | ID веб-формы.
FIELD_ID | ID вопроса.
arValidators Массив валидаторов. Каждый элемент массива должен представлять собой ассоциативный массив с ключами:
  • NAME - идентификатор валидатора;
  • PARAMS - массив параметрова валидатора.


События веб-форм

Все события вызываются перед соответствующим вызовом файлов-обработчиков статуса результата. Возврат обработчиком каких-либо значений не предполагается. Те обработчики, для которых это указано (onBefore*), могут возвращать какие-либо сообщения посредством генерации системного исключения (CMain::ThrowException()). В случае появления такого исключения все последующие операции с результатом прерываются (включая обработчики статусов веб-формы). При этом все равно вызываются все обработчики текущего события. Данные, передаваемые по ссылкам, допускают непосредственное изменение значений.

Событие | Вызывается | Метод | С версии
OnAfterFormCrmAdd | после добавления сервера CRM, с которым можно связать форму. | CFormCrm::Add | 11.5.0
OnAfterFormCrmDelete | после удаления сервера CRM, с которым может быть связана форма. | CFormCrm::Delete | 11.5.0
OnAfterFormCrmUpdate | после обновления сервера CRM, с которым может быть связана форма. | CFormCrm::Update | 11.5.0
OnBeforeFormCrmAdd | перед добавлением сервера CRM, с которым может быть связана форма. | CFormCrm::Add | 11.5.0
OnBeforeFormCrmDelete | перед удалением сервера CRM, с которым может быть связана форма. | CFormCrm::Delete | 11.5.0
OnBeforeFormCrmUpdate | перед обновлением сервера CRM, с которым может быть связана форма. | CFormCrm::Update | 11.5.0
onBeforeResultAdd | перед добавлением нового результата веб-формы. | CFormResult::Add | 6.5.2
onAfterResultAdd | после добавления нового результата веб-формы. | CFormResult::Add | 6.5.2
onBeforeResultUpdate | перед сохранением изменений существующего результата. | CFormResult::Update | 6.5.2
onAfterResultUpdate | после сохранения изменений результата веб-формы. | CFormResult::Update | 6.5.2
onBeforeResultDelete | перед удалением результата веб-формы. | CFormResult::Delete | 6.5.2
onBeforeResultStatusChange | перед изменением статуса результата веб-формы. | CFormResult::SetStatus | 6.5.2
onAfterResultStatusChange | после изменения статуса результата веб-формы. | CFormResult::SetStatus | 6.5.2
onFormValidatorBuildList | при сборе списка кастомных валидаторов полей формы. | CFormValidator::GetAllList | 6.0.0


onAfterResultAdd

Описание и параметры

функция-обработчик(
 int WEB_FORM_ID,
 int RESULT_ID
);
Обработчики события вызываются после добавления нового результата веб-формы. Может быть использовано для совершения каких-либо дополнительных операций с результатом веб-формы, например, для рассылки дополнительных уведомлений посредством электронной почты. Для изменения полей результата веб-формы стоит использовать CFormResult::SetField(). Возврат обработчиком каких-либо значений не предполагается.

Параметры

Параметр | Описание
WEB_FORM_ID | ID веб-формы.
RESULT_ID | ID результата.

Смотрите также

  • Событие "onBeforeResultAdd"
  • Событие "onAfterResultUpdate"

Пример функции-обработчика

//обработчик должен быть зарегистрирован в файле /bitrix/php_interface/init.php

function my_onAfterResultAddUpdate($WEB_FORM_ID, $RESULT_ID)
{
  // действие обработчика распространяется только на форму с ID=6
  if ($WEB_FORM_ID == 6)
  {
    // запишем в дополнительное поле 'user_ip' IP-адрес пользователя
    CFormResult::SetField($RESULT_ID, 'user_ip', $_SERVER["REMOTE_ADDR"]);
  }
}

// зарегистрируем функцию как обработчик двух событий
AddEventHandler('form', 'onAfterResultAdd', 'my_onAfterResultAddUpdate');
AddEventHandler('form', 'onAfterResultUpdate', 'my_onAfterResultAddUpdate');


onAfterResultStatusChange

Описание и параметры

функция-обработчик(
 int WEB_FORM_ID,
 int RESULT_ID,
 int NEW_STATUS_ID,
 string(1) CHECK_RIGHTS
);
Обработчики события вызываются после изменения статуса результата веб-формы. Может быть использовано, например, для каких-либо дополнительных уведомлений посредством электронной почты, а также, как замена обработчика статуса веб-формы. Возврат обработчиком каких-либо значений не предполагается. Для изменения полей результата веб-формы стоит использовать CFormResult::SetField().

Параметры

Параметр | Описание
WEB_FORM_ID | ID веб-формы.
RESULT_ID | ID результата.
NEW_STATUS_ID | ID статуса.
CHECK_RIGHTS | Флаг "Проверять права" (Y|N).

Смотрите также

  • Событие "onBeforeResultStatusChange"

Пример функции-обработчика

function my_onAfterResultStatusChange($WEB_FORM_ID, $RESULT_ID, $NEW_STATUS_ID, $CHECK_RIGHTS)
{
  global $USER;

  // действие обработчика распространяется только на форму с ID=6
  if ($WEB_FORM_ID == 6)
  {
    // 1 - статус "в проверке" (по умолчанию), 2 - статус "принято"
    // запишем в скрытое поле 'status_user' идентификатор пользователя,
    // совершившего изменение статуса.
    if ($NEW_STATUS_ID == 2)
      CFormResult::SetField($RESULT_ID, 'status_user', $USER->ID);
  }
}

// зарегистрируем функцию как обработчик события
AddEventHandler('form', 'onAfterResultStatusChange', 'my_onAfterResultStatusChange');


onAfterResultUpdate

Описание и параметры

функция-обработчик(
 int WEB_FORM_ID,
 int RESULT_ID,
 string(1) CHECK_RIGHTS
);
Обработчики события вызываются после сохранения изменений результата веб-формы. Может быть использовано для совершения каких-либо дополнительных операций с результатом веб-формы, например, для рассылки дополнительных уведомлений посредством электронной почты. Возврат обработчиком каких-либо значений не предполагается. Для изменения полей результата веб-формы стоит использовать CFormResult::SetField().

Параметры

Параметр | Описание
WEB_FORM_ID | ID веб-формы.
RESULT_ID | ID результата.
CHECK_RIGHTS | Флаг "Проверять права" (Y|N).

Смотрите также

  • Событие "onBeforeResultUpdate"
  • Событие "onAfterResultAdd"

Пример функции-обработчика

function my_onAfterResultAddUpdate($WEB_FORM_ID, $RESULT_ID)
{
  // действие обработчика распространяется только на форму с ID=6
  if ($WEB_FORM_ID == 6)
  {
    // запишем в дополнительное поле 'user_ip' IP-адрес пользователя
    CFormResult::SetField($RESULT_ID, 'user_ip', $_SERVER["REMOTE_ADDR"]);
  }
}

// зарегистрируем функцию как обработчик двух событий
AddEventHandler('form', 'onAfterResultAdd', 'my_onAfterResultAddUpdate');
AddEventHandler('form', 'onAfterResultUpdate', 'my_onAfterResultAddUpdate');


onBeforeResultAdd

Описание и параметры

функция-обработчик(
 int WEB_FORM_ID,
 array &arFields,
 array &arrVALUES
);
Обработчики события вызываются перед добавлением нового результата веб-формы. Может быть использовано для каких-либо дополнительных проверок или изменения значения полей результата веб-формы. Возврат обработчиком каких-либо значений не предполагается. Ошибки нужно возвращать посредством $APPLICATION->ThrowException().

Параметры

Параметр | Описание
WEB_FORM_ID | ID веб-формы.
arFields | Массив полей результата для записи в БД.
arrVALUES | Массив значений ответов результата веб-формы.

Смотрите также

  • Событие "onAfterResultAdd"
  • Событие "onBeforeResultUpdate"

Пример функции-обработчика

function my_onBeforeResultAdd($WEB_FORM_ID, &$arFields, &$arrVALUES)
{
  global $APPLICATION;

  // действие обработчика распространяется только на форму с ID=6
  if ($WEB_FORM_ID == 6)
  {
    // в текстовый вопрос с ID=135 должен содержать целое число, большее 5ти.
    $arrVALUES['form_text_135'] = intval($arrVALUES['form_text_135']);
    if ($arrVALUES['form_text_135'] < 5)
    {
      // если значение не подходит - отправим ошибку.
      $APPLICATION->ThrowException('Значение должно быть больше или равно 5!');
    }
  }
}
AddEventHandler('form', 'onBeforeResultAdd', 'my_onBeforeResultAdd');


onBeforeResultDelete

функция-обработчик(
 int WEB_FORM_ID,
 int RESULT_ID,
 string(1) CHECK_RIGHTS
);
Обработчики события вызываются перед удалением результата веб-формы. Может быть использовано, например, для рассылки дополнительных уведомлений посредством электронной почты или для запрета удаления результата. Возврат обработчиком каких-либо значений не предполагается. Ошибки можно возвращать посредством $APPLICATION->ThrowException().

Параметры

Параметр | Описание
WEB_FORM_ID | ID веб-формы.
RESULT_ID | ID результата.
CHECK_RIGHTS | Флаг "Проверять права" (Y|N).

Пример функции-обработчика:

function my_onBeforeResultDelete($WEB_FORM_ID, $RESULT_ID, $CHECK_RIGHTS)
{
  global $APPLICATION;

  // действие обработчика распространяется только на форму с ID=6
  if ($WEB_FORM_ID == 6 && $RESULT_ID == 1)
  {
      $APPLICATION->ThrowException('Этот результат нельзя удалить!');
  }
}

// зарегистрируем функцию как обработчик события
AddEventHandler('form', 'onBeforeResultDelete', 'my_onBeforeResultDelete');


onBeforeResultStatusChange

Описание и параметры

функция-обработчик(
 int WEB_FORM_ID,
 int RESULT_ID,
 int &NEW_STATUS_ID,
 string(1) CHECK_RIGHTS
);
Обработчики события вызываются перед изменением статуса результата веб-формы. Может быть использовано для каких-либо дополнительных проверок или даже для изменения нового статуса, а также, как замена обработчика статуса веб-формы. Возврат обработчиком каких-либо значений не предполагается. Ошибки можно возвращать посредством $APPLICATION->ThrowException().

Параметры

Параметр | Описание
WEB_FORM_ID | ID веб-формы.
RESULT_ID | ID результата.
NEW_STATUS_ID | ID статуса.
CHECK_RIGHTS | Флаг "Проверять права" (Y|N).

Смотрите также

  • Событие "onAfterResultStatusChange"

Пример функции-обработчика

function my_onBeforeResultStatusChange($WEB_FORM_ID, $RESULT_ID, $NEW_STATUS_ID, $CHECK_RIGHTS)
{
  global $USER;

  // действие обработчика распространяется только на форму с ID=6
  if ($WEB_FORM_ID == 6)
  {
    // 1 - статус "в проверке" (по умолчанию), 2 - статус "принято"
    // результатам, присланным пользователем с правами администратора
    // автоматически присвоим статус "принято".
    if ($USER->IsAdmin() && $NEW_STATUS_ID == 1)
      $NEW_STATUS_ID = 2;
  }
}

// зарегистрируем функцию как обработчик события
AddEventHandler('form', 'onBeforeResultStatusChange', 'my_onBeforeResultStatusChange');


onBeforeResultUpdate

Описание и параметры

функция-обработчик(
 int WEB_FORM_ID,
 int RESULT_ID,
 array &arFields,
 array &arrVALUES,
 string(1) CHECK_RIGHTS
);
Обработчики события вызываются перед сохранением изменений существующего результата веб-формы. Может быть использовано для каких-либо дополнительных проверок или изменения значения полей результата веб-формы. Возврат обработчиком каких-либо значений не предполагается. Ошибки можно возвращать посредством $APPLICATION->ThrowException().

Параметры

Параметр | Описание
WEB_FORM_ID | ID веб-формы.
RESULT_ID | ID результата.
arFields | Массив полей результата для записи в БД.
arrVALUES | Массив значений ответов результата веб-формы.
CHECK_RIGHTS | Флаг "Проверять права" (Y|N).

Смотрите также

  • Событие "onAfterResultUpdate"

Пример функции-обработчика

function my_onBeforeResultUpdate($WEB_FORM_ID, $RESULT_ID, $arFields, $arrVALUES)
{
  global $APPLICATION;

  // действие обработчика распространяется только на форму с ID=6
  if ($WEB_FORM_ID == 6)
  {
    // в текстовый вопрос с ID=135 должен содержать целое число, большее 5ти.
    $arrVALUES['form_text_135'] = intval($arrVALUES['form_text_135']);
    if ($arrVALUES['form_text_135'] < 5)
    {
      // если значение не подходит - отправим ошибку.
      $APPLICATION->ThrowException('Значение должно быть больше или равно 5!');
    }
  }
}
AddEventHandler('form', 'onBeforeResultUpdate', 'my_onBeforeResultUpdate');


Для разработчиков

Информация, представленная в данном разделе, содержит сведения, необходимые для установки и настройки модуля Документооборот.

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("workflow")){
//здесь можно использовать функции и классы модуля
}
?>


Для разработчиков

Модуль предназначен для управления задачами.

О работе с модулем смотрите в курсе Администратор сервиса Битрикс24 [image].

Перед использованием модуля Задачи необходимо проверить, установлен ли он, и подключить его при помощи конструкции:

<? if (CModule::IncludeModule("tasks")) {  //здесь можно использовать функции модуля } ?>


Задачи в ядре D7

Список классов модуля Задачи в ядре D7

Класс | Описание | С версии
CTaskCheckListItem | Класс для работы с чек-листами. | 18.0.6
CTaskCommentItem | Класс для работы с комментариями к задачам. | 18.0.6
Task | Содержит классы orm для сущностей, которые являются вспомогательными для сущности Задача. | 15.6.0
TaskTable | Класс orm для сущности Задача. | 15.6.0
Template | Cодержит классы orm для сущности Шаблон задачи. | 14.5.11
TemplateTable | Класс orm для сущности Шаблон задачи. | 14.5.11
Internals | Пространства имён содержит классы для работы с таблицами модуля Задачи. |
Integration | Пространство имён содержит классы для интеграции с различными модулями системы. |
Rest | Пространство имён для работы с методами Rest. |


Структура таблиц

Допустимые поля

Название | Описание | Чтение | Запись* | Сортировка | Фильтрация
TITLE | Название задачи. | + | + | + | +
DESCRIPTION | Описание задачи. | + | + | + | +
DEADLINE | Крайний срок. | + | + | + | +
START_DATE_PLAN | Плановая дата начала. | + | + | + | +
END_DATE_PLAN | Плановая дата завершения. | + | + | + | +
PRIORITY | Приоритет. Поле может принимать значения: [0] - низкий приоритет, [1] - средний, [2] - высокий. | + | + | + | +
ACCOMPLICES | Соисполнители (идентификаторы пользователей). | + | + | + | +
AUDITORS | Наблюдатели (идентификаторы пользователей). | + | + | + | +
TAGS | Теги (при добавлении - просто массив тегов в виде текста). CTasks::GetList() не возвращает поля тегов. CTaskItem::getInstance()->getTags() возвращает массив имен тегов. | + | + | + | +
ALLOW_CHANGE_DEADLINE | Флаг "Разрешить ответственному менять крайний срок". | + | + | + | +
TASK_CONTROL | Флаг "Принять работу после завершения задачи". | + | + | + | +
PARENT_ID | Идентификатор родительской задачи. | + | + | + | +
DEPENDS_ON | Идентификатор предыдущей задачи. | + | + | + | +
GROUP_ID | Идентификатор рабочей группы. | + | + | + | +
RESPONSIBLE_ID | Идентификатор ответственного. | + | + | + | +
TIME_ESTIMATE | Плановые трудозатраты. | + | + | + | +
ID | Идентификатор задачи. Уникален в рамках базы данных. | + |  | + | +
CREATED_BY | Идентификатор постановщика. | + | + | + | +
DESCRIPTION_IN_BBCODE | Флаг указывающий, что описание задачи хранится в BB-кодах. | + |  | + | +
DECLINE_REASON | Причина отклонения задачи. | + | + | + | +
REAL_STATUS | Истинный статус задачи, который записывается через STATUS (см. константы CTasks::STATE_xxx). Только для чтения. | + |  | + | +
STATUS | Мета-статус задачи. При записи можно использовать константы CTasks::STATE_xxx, однако, при чтении, помимо CTasks::STATE_xxx, в результатах можно увидеть CTasks::METASTATE_xxx. То есть на самом деле статус задачи может быть CTasks::STATE_NEW, а при чтении вернется нам CTasks::METASTATE_EXPIRED (для просроченной задачи). В случае если мы хотим узнать истинный статус задачи, следует читать поле REAL_STATUS. | + | + | + | +
RESPONSIBLE_NAME | Имя ответственного. | + |  | + | +
RESPONSIBLE_LAST_NAME | Фамилия ответственного. | + |  | + | +
RESPONSIBLE_SECOND_NAME | Отчество ответственного. | + |  | + | +
DATE_START | Дата начала выполнения задачи. | + |  | + | +
DURATION_FACT | Затраченное время на задачу (в минутах). | + |  | + | +
DURATION_PLAN | Планируемая длительность в часах или днях. | + | + | + | +
DURATION_TYPE | Тип единицы измерения в планируемой длительности: days или hours. | + | + | + | +
CREATED_BY_NAME | Имя постановщика. | + |  | + | +
CREATED_BY_LAST_NAME | Фамилия постановщика. | + |  | + | +
CREATED_BY_SECOND_NAME | Отчество постановщика. | + |  | + | +
CREATED_DATE | Дата создания задачи. | + |  | + | +
CHANGED_BY | Пользователь, изменивший задачу в последний раз (идентификатор пользователя). | + |  | + | +
CHANGED_DATE | Дата последнего изменения задачи. | + |  | + | +
STATUS_CHANGED_BY | Пользователь, изменивший статус задачи (идентификатор пользователя). | + |  | + | +
STATUS_CHANGED_DATE | Дата смены статуса. | + |  | + | +
CLOSED_BY | Кем была завершена задача. | + |  | + | +
CLOSED_DATE | Дата завершения задачи. | + |  | + | +
GUID | Глобально-уникальный идентификатор. С приемлемым уровнем уверенности, данный идентификатор непреднамеренно никогда не будет использован для чего-то ещё даже в других базах данных. | + |  | + | +
MARK | Оценка по задаче (возможные значения P (положительная) и N (отрицательная)). | + | + | + | +
VIEWED_DATE | Дата последнего просмотра задачи в публичном интерфейсе текущим пользователем (от имени которого делается запрос на получение данных задачи). | + |  | + | +
TIME_SPENT_IN_LOGS | Затраченное время на задачу (в секундах). | + |  | + |
FAVORITE | Присутствие и избранном для текущего пользователя. | + |  |  | +
ALLOW_TIME_TRACKING | Флаг включения учета затраченного времени по задаче. | + | + | + | +
ADD_IN_REPORT | Флаг включения задачи в отчет по эффективности. | + | + | + | +
FORUM_ID | Идентификатор форума, в котором хранятся комментарии к задаче. | + | + | + | +
FORUM_TOPIC_ID | Идентификатор темы форума, в котором хранятся комментарии к задаче. | + | + | + | +
COMMENTS_COUNT | Число комментариев к задаче. | + |  | + | +
SITE_ID | Идентификатор сайта. По умолчанию в это поле записывается идентификатор сайта, на котором создается задача. | + | + | + | +
SUBORDINATE | Флаг, который показывает, является ли кто-то из участников задачи подчиненным текущего пользователя. | + |  | + | +
FORKED_BY_TEMPLATE_ID | Идентификатор шаблона, на основе которого была создана задача. Для некоторых старых задач может быть не установлен. | + |  | + | +
MATCH_WORK_TIME | Флаг, который показывает, что даты исполнения и крайний срок должны всегда устанавливаться в рабочее время. | + | + | + | +

Примечание: Запись и изменение полей производится согласно бизнес-логике и имеющимся правам пользователя. Т.е. зависит от роли пользователя, настроек прав на группу, иерархии, некоторых флагов в задаче (например, ALLOW_CHANGE_DEADLINE), статуса задачи.


Список констант

Константы CTasks

Статусы

Константа | Описание | Числовые значения
CTasks::METASTATE_VIRGIN_NEW | Новая задача (не просмотрена). | -2
CTasks::METASTATE_EXPIRED | Задача просрочена. | -1
CTasks::METASTATE_EXPIRED_SOON | Задача почти просрочена. | -3
CTasks::STATE_NEW | Новая задача. (Не используется) | 1
CTasks::STATE_PENDING | Задача принята ответственным. (Не используется) | 2
CTasks::STATE_IN_PROGRESS | Задача выполняется. | 3
CTasks::STATE_SUPPOSEDLY_COMPLETED | Условно завершена (ждет контроля постановщиком). | 4
CTasks::STATE_COMPLETED | Задача завершена. | 5
CTasks::STATE_DEFERRED | Задача отложена. | 6
CTasks::STATE_DECLINED | Задача отклонена ответственным. (Не используется) | 7

Приоритеты

Константа | Описание
CTasks::PRIORITY_LOW | Низкий приоритет.
CTasks::PRIORITY_AVERAGE | Нормальный приоритет.
CTasks::PRIORITY_HIGH | Высокий приоритет.

Константы CTaskItem

Действия над задачей (для проверки прав)

Константа | Описание
CTaskItem::ACTION_ACCEPT | Принятие задачи (смена статуса в CTasks::STATE_PENDING).
CTaskItem::ACTION_DECLINE | Отклонение задачи (смена статуса в CTasks::STATE_DECLINED).
CTaskItem::ACTION_COMPLETE | Завершение задачи (смена статуса в CTasks::STATE_COMPLETED, либо в CTasks::STATE_SUPPOSEDLY_COMPLETED — если постановщиком затребован контроль задачи и завершает задачу не постановщик).
CTaskItem::ACTION_APPROVE | Одобрение задачи, требующей контроля (перевод из статуса CTasks::STATE_SUPPOSEDLY_COMPLETED в CTasks::STATE_COMPLETED).
CTaskItem::ACTION_DISAPPROVE | Возврат в работу задачи, требующей контроля (перевод из статуса CTasks::STATE_SUPPOSEDLY_COMPLETED в CTasks::STATE_NEW или CTasks::STATE_PENDING, если ответственный является подчиненным постановщика).
CTaskItem::ACTION_START | Перевод задачи в статус "выполняется" (CTasks::STATE_IN_PROGRESS).
CTaskItem::ACTION_DELEGATE | Делегирование задачи подчиненному.
CTaskItem::ACTION_REMOVE | Удаление задачи.
CTaskItem::ACTION_EDIT | Редактирование задачи.
CTaskItem::ACTION_DEFER | Откладывание задачи на потом (перевод в статус CTasks::STATE_DEFERRED).
CTaskItem::ACTION_RENEW | Возврат задачи в статус "Новая" (CTasks::STATE_NEW) или "Принята" (CTasks::STATE_PENDING, если ответственный является подчиненным постановщика).
CTaskItem::ACTION_CREATE | Создание задачи.
CTaskItem::ACTION_CHANGE_DEADLINE | Смена крайнего срока у задачи.

Роли пользователя в задаче (для проверки прав)

Константа | Описание
CTaskItem::ROLE_NOT_A_MEMBER | Не является участником задачи.
CTaskItem::ROLE_DIRECTOR | Постановщик.
CTaskItem::ROLE_RESPONSIBLE | Ответственный.
CTaskItem::ROLE_ACCOMPLICE | Соисполнитель.
CTaskItem::ROLE_AUDITOR | Наблюдатель.

Формат описания (при получении описания задачи)

Константа | Описание
CTaskItem::DESCR_FORMAT_RAW | Формат "как есть" - может быть HTML и BBCode, в зависимости от задачи.
CTaskItem::DESCR_FORMAT_HTML | Формат HTML. Если описание задачи в формате BBCode, то оно будет автоматически преобразовано в HTML. Если оно уже в формате HTML, то будет применен санитайзер в соответствии с настройками в модуле задач.
CTaskItem::DESCR_FORMAT_PLAIN_TEXT | Формат "только текст". Все HTML/BB теги будут вырезаны.

Константы CTaskFilterCtrl

Идентификаторы предустановленных наборов фильтров

Константа | Описание
CTaskFilterCtrl::ROOT_PRESET | Псевдонабор, не содержит условия. Является родительским элементов для всех остальных наборов.
CTaskFilterCtrl::STD_PRESET_ACTIVE_MY_TASKS | "Мои задачи".
CTaskFilterCtrl::STD_PRESET_ACTIVE_I_AM_DOER | "Поставленные мне".
CTaskFilterCtrl::STD_PRESET_ACTIVE_I_AM_ORIGINATOR | "Созданные мной".
CTaskFilterCtrl::STD_PRESET_ACTIVE_I_AM_AUDITOR | "Наблюдаемые".
CTaskFilterCtrl::STD_PRESET_DEFERRED_MY_TASKS | "Отложенные".
CTaskFilterCtrl::STD_PRESET_COMPLETED_MY_TASKS | "Завершенные".
CTaskFilterCtrl::STD_PRESET_ACTIVE_I_AM_RESPONSIBLE | "Я ответственный".
CTaskFilterCtrl::STD_PRESET_ACTIVE_I_AM_ACCOMPLICE | "Я соисполнитель".
CTaskFilterCtrl::STD_PRESET_ALL_MY_TASKS | "Все".
CTaskFilterCtrl::STD_PRESET_ALIAS_TO_DEFAULT | Это синоним для CTaskFilterCtrl::STD_PRESET_ACTIVE_MY_TASKS.


Список классов

Класс | Описание | С версии
CTasks | Класс для получения списка задач и ряда других действий. | 10.0.2 по 12.0.9
CTaskCheckListItem | Класс для работы с чеклистами. | 17.6.11
CTaskElapsedItem | Класс для работы с учетом затраченного на задачи времени. Следует использовать вместо устаревшего CTaskElapsedTime. | 12.5.4
CTaskElapsedTime | Класс для работы с учетом затраченного на задачи времени. | 10.0.5
CTaskFiles | Класс для работы с файлами задач. | 10.0.5
CTaskFilterCtrl | Класс для работы с предустановленными и пользовательскими фильтрами для задач. | 12.0.1
CTaskItem | Класс для создания/редактирования/удаления и проведения некоторых других действий с задачами (строго рекомендуется к использованию вместо CTasks). | 12.5.0
CTaskLog | Класс для работы с историей изменений в задаче. | 10.0.5
CTaskReminders | Класс управления напоминаниями. | 10.0.6
CTaskTags | Класс для работы с тегами. | 10.0.5


Класс CTasks

CTasks - Класс для получения списка задач и ряда других действий.

Внимание! Большая часть методов класса CTasks устарела (по версию модуля 12.0.9), поэтому вместо него строго рекомендуется использовать класс CTaskItem и его методы.

Методы класса

Метод | Описание | С версии
Add | Метод добавляет новую задачу. |
AddAccomplices | Метод добавляет соисполнителей к задаче. |
AddAuditors | Метод добавляет наблюдателей к задаче. |
AddFiles | Метод добавляет файлы к задаче. |
AddPrevious | Метод добавляет предыдущие задачи. |
AddTags | Метод добавляет теги к задаче. |
Delete | Метод удаляет задачу с идентификатором ID. |
GetByID | Возвращает поля задачи по ее идентификатору. |
GetChildrenCount | Возвращает количество подзадач для указанной задачи. |
GetList | Возвращает список задач. |
GetUpdatesCount | Возвращает количество изменений в задачах. | 10.0.5
Update | Метод изменяет параметры задачи. |
getAvailableOrderFields | Возвращает массив доступных для сортировки полей. |


Add

Задачи>Классы>CTasks>Add (10.0.2 - 12.0.9)

CTasks::Add

Описание и параметры

int
CTasks::Add(
 array arFields,
 array arParams = array()
);

Метод добавляет новую задачу.

Параметры метода

Параметр | Описание | С версии
arFields Массив Array("поле"=>"значение", ...). Содержит значения всех полей задачи. Поля:
  • TITLE - название задачи (можно искать по шаблону [%_] ;) ;
  • DESCRIPTION - описание задачи;
  • DEADLINE - крайний срок;
  • START_DATE_PLAN - плановая дата начала;
  • END_DATE_PLAN - плановая дата завершения;
  • PRIORITY - приоритет. Поле может принимать значения: [0] - низкий приоритет, [1] - средний, [2] - высокий;
  • ACCOMPLICES - массив идентификаторов соисполнителей;
  • AUDITORS - массив идентификаторов наблюдателей;
  • TAGS - теги;
  • ALLOW_CHANGE_DEADLINE - флаг "Разрешить ответственному менять крайний срок";
  • TASK_CONTROL - флаг "Принять работу после завершения задачи";
  • PARENT_ID - идентификатор родительской задачи;
  • DEPENDS_ON - идентификатор предыдущей задачи;
  • GROUP_ID - идентификатор рабочей группы;
  • RESPONSIBLE_ID - идентификатор ответственного;
  • TIME_ESTIMATE - плановые трудозатраты;
  • CREATED_BY - идентификатор постановщика;
  • DECLINE_REASON - причина отклонения задачи;
  • STATUS - мета-статус задачи;
  • DURATION_PLAN - планируемая длительность в часах или днях;
  • DURATION_TYPE - тип единицы измерения в планируемой длительности: days или hours;
  • MARK - оценка по задаче (возможные значения P (положительная) и N (отрицательная));
  • ALLOW_TIME_TRACKING - флаг включения учета затраченного времени по задаче;
  • ADD_IN_REPORT - флаг включения задачи в отчет по эффективности;
  • FORUM_ID - идентификатор форума, в котором хранятся комментарии к задаче;
  • FORUM_TOPIC_ID - идентификатор темы форума, в котором хранятся комментарии к задаче;
  • SITE_ID - идентификатор сайта. По умолчанию в это поле записывается идентификатор сайта, на котором создается задача;
  • MATCH_WORK_TIME - флаг, который показывает, что даты исполнения и крайний срок должны всегда устанавливаться в рабочее время;
arParams | Массив дополнительных параметров. Необязательный. | 11.5.4

Возвращаемое значение

Метод возвращает идентификатор добавленной задачи, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{
    $arFields = Array(
        "TITLE" => "Task title",
        "DESCRIPTION" => "Task description",
        "RESPONSIBLE_ID" => 2,
        "GROUP_ID" => 3
    );

    $obTask = new CTasks;
    $ID = $obTask->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}?>

//Создание задачи с высоким приоритетом

{
$arFields = Array("TITLE" => "High priority task",
        "DESCRIPTION" => "Task description",
        "RESPONSIBLE_ID" => 3,
        "CREATED_BY" => 1,
        "PRIORITY" => 2 // 2 соответствует высокому приоритету
         );

    $obTask = new CTasks;
    $obTask->Add($arFields);
}


AddAccomplices

Задачи>Классы>CTasks>AddAccomplices (10.0.2 - 12.0.9)

CTasks::AddAccomplices

Описание и параметры

void
CTasks::AddAccomplices(
 ID,
 array arAccomplices
);

Метод добавляет соисполнителей к задаче.

Параметры метода

Параметр | Описание
ID | Идентификатор задачи, к которой добавляются соисполнители
arAccomplices | Массив идентификаторов исполнителей

Возвращаемое значение

Метод не имеет возвращаемого значения.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $ID = 1;
    $arAccomplices = array(102, 34, 5);

    CTasks::AddAccomplices($ID, $arAccomplices);
}
?>


AddAuditors

Задачи>Классы>CTasks>AddAuditors (10.0.2 - 12.0.9)

CTasks::AddAuditors

Описание и параметры

void
CTasks::AddAuditors(
 ID,
 array arAuditors
);

Метод добавляет наблюдателей к задаче.

Параметры метода

Параметр | Описание
ID | Идентификатор задачи, к которой добавляются наблюдатели
arAuditors | Массив идентификаторов наблюдателей

Возвращаемое значение

Метод не имеет возвращаемого значения.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $ID = 1;
    $arAuditors = array(102, 34, 5);

    CTasks::AddAuditors($ID, $arAuditors);
}
?>


AddFiles

Задачи>Классы>CTasks>AddFiles (10.0.2 - 12.0.9)

CTasks::AddFiles

Описание и параметры

void
CTasks::AddFiles(
 ID,
 array arFiles,
 array arParams = array()
);

Метод добавляет файлы к задаче.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор задачи, к которой добавляются файлы
arFiles | Массив идентификаторов файлов
arParams Массив дополнительных параметров:
  • USER_ID - ID пользователя, от имени которого будет загружаться файл;
  • CHECK_RIGHTS_ON_FILES - проверять права на файл (Y/N).
Необязательный. 		12.5.0

Возвращаемое значение

Метод не имеет возвращаемого значения.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $ID = 1;
    $arFiles = array(102, 34, 5);

    CTasks::AddFiles($ID, $arFiles);
}
?>


AddPrevious

Задачи>Классы>CTasks>AddPrevious (10.0.2 - 12.0.9)

CTasks::AddPrevious

Описание и параметры

void
CTasks::AddPrevious(
 ID,
 array arPrevious
);

Метод добавляет предыдущие задачи.

Параметры метода

Параметр | Описание
ID | Идентификатор задачи, к которой добавляются предыдущие задачи
arPrevious | Массив идентификаторов задач

Возвращаемое значение

Метод не имеет возвращаемого значения.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $ID = 1;
    $arPrevious = array(102, 34, 5);

    CTasks::AddPrevious($ID, $arPrevious);
}
?>


AddTags

Задачи>Классы>CTasks>AddTags (10.0.2 - 12.0.9)

CTasks::AddTags

Описание и параметры

void
CTasks::AddTags(
 ID,
 USER_ID,
 array arTags
);

Метод добавляет теги к задаче.

Параметры метода

Параметр | Описание
ID | Идентификатор задачи, к которой добавляются теги
USER_ID | Идентификатор пользователя, добавившего теги
arTags | Массив идентификаторов задач

Возвращаемое значение

Метод не имеет возвращаемого значения.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $ID = 1;
    $USER_ID = 1;
    $arTags = array("javascript", "php", "css");

    CTasks::AddTags($ID, $USER_ID, $arTags);
}
?>


Delete

Задачи>Классы>CTasks>Delete (10.0.2 - 12.0.9)

CTasks::Delete

Описание и параметры

bool
CTasks::Delete(
  ID,
  array arParams = array()
);

Метод удаляет задачу с идентификатором ID.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор удаляемой задачи |
arParams | Массив дополнительных параметров. Необязательный. | 11.5.6

Возвращаемое значение

Метод возвращает true в случае успешного удаления задачи, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $ID = 1;

    if($USER->IsAdmin())
    {
       CTasks::Delete($ID);
    }

}
?>


getAvailableOrderFields

Задачи>Классы>CTasks>getAvailableOrderFields

CTasks::getAvailableOrderFields

CTasks::getAvailableOrderFields()

Публичный статический метод. Возвращает массив доступных для сортировки полей [image].

Без параметров.


GetByID

Задачи>Классы>CTasks>GetByID (10.0.2 - 12.0.9)

CTasks::GetByID

Описание и параметры

CDBResult
CTasks::GetByID(
  int ID,
  bool bCheckPermissions = true,
  array arParams = array()
);

Возвращает поля задачи по ее идентификатору.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор задачи. |
bCheckPermissions | Флаг проверки прав доступа к задаче. Необязательный параметр. По умолчанию равен true. | 10.0.2
arParams | Массив дополнительных параметров. Необязательный. | 11.5.6

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult

Примеры использования

<?

if (CModule::IncludeModule("tasks"))
{
    $rsTask = CTasks::GetByID(332);
    if ($arTask = $rsTask->GetNext())
    {
        echo $arTask["TITLE"];
    }
}
?>


GetChildrenCount

Задачи>Классы>CTasks>GetChildrenCount (10.0.2 - 12.0.9)

CTasks::GetChildrenCount

Описание и параметры

CDBResult
CTasks::е(
 array arFilter,
 array arParentIDs
);

Возвращает количество подзадач по фильтру arFilter для задач arParentIDs.

Параметры метода

Параметр | Описание
arFilter | Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]).
arParentIDs | Массив идентификаторов задач, для которых выбирается количество подзадач.

Возвращаемое значение

Возвращается объект CDBResult [image].

Примеры использования

<?

$arFilter = array(
    "RESPONSIBLE_ID" => 2
);

$arTasksIDs = array(193, 14, 99, 235, 3);

$rsChildrenCount = CTasks::GetChildrenCount($arFilter, $arTasksIDs);
if ($rsChildrenCount)
{
    while($arChildrenCount = $rsChildrenCount->Fetch())
    {
        echo "Children count for task #".$arChildrenCount["PARENT_ID"].": ".$arChildrenCount["CNT"];
    }
}
?>


GetList

Задачи>Классы>CTasks>GetList (10.0.2 - 12.0.9)

CTasks::GetList

Описание и параметры

CDBResult
CTasks::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arSelect = array(),
 array arParams = array()
);

Возвращает список задач по фильтру arFilter, отсортированный в порядке arOrder.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание | С версии
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • TITLE - название задачи;
  • DATE_START - дата старта;
  • DEADLINE - крайний срок;
  • STATUS - статус;
  • PRIORITY - приоритет;
  • MARK - оценка;
  • CREATED_BY - постановщик;
  • RESPONSIBLE_ID - ответственный;
  • GROUP_ID - рабочая группа.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию фильтруется по убыванию идентификатора задачи.

Примечание. Допускается сортировка по пользовательским полям.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор задачи;
  • PARENT_ID - идентификатор родительской задачи;
  • GROUP_ID - идентификатор рабочей группы;
  • CREATED_BY - постановщик;
  • STATUS_CHANGED_BY - пользователь, последним изменивший статус задачи;
  • PRIORITY - приоритет;
  • FORUM_TOPIC_ID - идентификатор темы форума;
  • RESPONSIBLE_ID - ответственный;
  • TITLE - название задачи (можно искать по шаблону [%_]) ;
  • TAG - тэг;
  • REAL_STATUS - статус задачи. Константы отражающие статусы задач:
    • CTasks::STATE_NEW = 1;
    • CTasks::STATE_PENDING = 2;
    • CTasks::STATE_IN_PROGRESS = 3;
    • CTasks::STATE_SUPPOSEDLY_COMPLETED = 4;
    • CTasks::STATE_COMPLETED = 5;
    • CTasks::STATE_DEFERRED = 6;
    • CTasks::STATE_DECLINED = 7;
  • STATUS - статус для сортировки. Аналогичен REAL_STATUS, но имеет дополнительно два мета статуса:
    • -2 - не просмотренная задача;
    • -1 - просроченная задача.
  • MARK - оценка;
  • XML_ID - внешний код;
  • SITE_ID - идентификатор сайта;
  • ADD_IN_REPORT - задача в отчете (Y|N);
  • DATE_START - дата начала выполнения;
  • DEADLINE - крайний срок;
  • CREATED_DATE - дата создания;
  • CLOSED_DATE - дата завершения;
  • CHANGED_DATE - дата последнего изменения;
  • ACCOMPLICE - идентификатор соисполнителя;
  • AUDITOR - идентификатор аудитора;
  • DEPENDS_ON - идентификатор предыдущей задачи;
  • ONLY_ROOT_TASKS - только корневые задачи (Y|N);
  • SUBORDINATE_TASKS - задачи текущего пользователя и его подчиненных (Y|N);
  • OVERDUED - были просрочены (Y|N);
  • DEPARTMENT_ID - идентификатор отдела.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
arSelect | Массив возвращаемых полей задачи.
arParams | Массив дополнительных параметров. Необязательный. | 12.5.0

Возвращаемое значение

Возвращается объект CDBResult [image].

Примеры использования

<?

// Выбираем все задачи пользователя с ID = 2
if (CModule::IncludeModule("tasks"))
{
    $res = CTasks::GetList(
        Array("TITLE" => "ASC"),
        Array("RESPONSIBLE_ID" => "2")
    );

    while ($arTask = $res->GetNext())
    {
        echo "Task name: ".$arTask["TITLE"]."<br>";
    }
}

?>

<?
// Выбираем задачи, для которых пользователь является ответственным или соисполнителем

$arFilter = array(
            '::LOGIC' => 'AND',
           'CHECK_PERMISSIONS' => 'Y',
           'ONLY_ROOT_TASKS' => 'Y',
           'SAME_GROUP_PARENT' => 'Y',
           '::SUBFILTER-1' => array(
              '::LOGIC' => 'OR',
              '::SUBFILTER-1' => array(
                 'ACCOMPLICE' => array($USER->GetID()),
                 'REAL_STATUS' => array(CTasks::STATE_NEW, CTasks::STATE_PENDING, CTasks::STATE_IN_PROGRESS),
              ),
              '::SUBFILTER-2' => array(
                 'RESPONSIBLE_ID' => $USER->GetID(),
                 'REAL_STATUS' => array(CTasks::STATE_NEW, CTasks::STATE_PENDING, CTasks::STATE_IN_PROGRESS),
              ),
           ),
        );
?>


GetUpdatesCount

Задачи>Классы>CTasks>GetUpdatesCount (С версии 10.0.5 - 12.0.9)

CTasks::GetUpdatesCount

Описание и параметры

array
CTasks::GetUpdatesCount(
 array arViewed
);

Возвращает количество изменений в задачах.

Параметры метода

Параметр | Описание
arViewed | Массив вида array("идентификатор задачи"=>"дата, после которой считаются обновления" [, ...]).

Возвращаемое значение

Массив вида array("идентификатор задачи"=>"количество обновлений" [, ...]).

Примеры использования

<?
$arViewed = array(
    193 => "26.01.2012 15:53:08",
    14 => "17.01.2012 17:24:58",
    99 => "13.01.2012 15:57:47",
    235 => "18.01.2012 14:34:35",
    3 => "28.12.2011 17:43:22"
);

$arUpdatesCount = CTasks::GetUpdatesCount($arViewed);
if ($arUpdatesCount)
{
    foreach($arUpdatesCount as $key=>$value)
    {
        echo "Updates count for task #".$key.": ".$value;
    }
}
?>


Update

Задачи>Классы>CTasks>Update (10.0.2 - 12.0.9)

CTasks::Update

Описание и параметры

bool
CTasks::Update(
  ID,
 array arFields
);

Метод изменяет параметры задачи с идентификатором ID.

Параметры метода

Параметр | Описание
ID | Идентификатор изменяемой задачи
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей задачи. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки метод вернет false. При возникновении ошибки в исключениях будет содержаться текст ошибки.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{
    $arFields = Array(
        "TITLE" => "New task title",
        "DESCRIPTION" => "New description"
    );

    $ID = 1;

    $obTask = new CTasks;
    $success = $obTask->Update($ID, $arFields);

    if($success)
    {
        echo "Ok!";

    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}?>


Класс CTaskCheckListItem

CTaskCheckListItem - Класс для работы с чеклистами.

Методы класса

Метод | Описание | С версии
add | Метод отвечает за создание пункта чеклиста. |
complete | Метод выполняет пункт чеклиста. |
deleteByTaskId | Метод удаляет все пункты чеклиста по taskId. |
[link=7971671]getByTaskId[/link] | Метод позволяет получить все пункты чеклиста по taskId. |
getTaskIdByItemId | Метод позволяет получить taskId по ID пункта чеклиста. |
isActionAllowed | Метод проверяет доступ к действиям над пунктами чеклиста. |
isComplete | Метод проверяет, выполнен ли пункт чеклиста. |
moveAfterItem | Метод перемещает пункт 5 под пункт 2 чеклиста. |
renew | Метод помечает пункт чеклиста как невыполненный. |
setSortIndex | Метод изменяет индекс сортировки. |

Смотрите также:

  • Блог разработчика.


add

Задачи>Классы>CTaskCheckListItem>add (17.6.11)

CTaskCheckListItem::add

Описание и параметры

\CTaskCheckListItem::add(CTaskItemInterface $oTaskItem, array $arFields)

Статический метод, отвечает за создание пункта чеклиста.

Первым параметром передается объект конкретной задачи, чтобы прикрепить к ней пункт чеклиста. Вторым параметром передается массив значений этого пункта чеклиста.

Параметры функции

Параметр Описание
arFields

TITLE (обязательный) - текст чеклиста. Можно передавать любую строку, кроме пустой строки или строки, содержащей только пробелы.

Примечание: Если TITLE будет равен === (трем знакам "равно"), то вместо пункта чеклиста будет разделительная линия.

SORT_INDEX - индекс сортировки. целое число. Чем больше, тем ниже в списке.

IS_COMPLETE - флаг о том, что пункт чеклиста уже выполнен.

Возвращаемое значение

После успешного создания пункта чеклиста вернется объект \CTaskCheckListItem

Примеры использования

$task = CTaskItem::getInstance($taskId, $userId);
\CTaskCheckListItem::add($task, ['TITLE'=>'First item', 'SORT_INDEX'=>10, 'IS_COMPLETE'=>'N']);
\CTaskCheckListItem::add($task, ['TITLE'=>'Second item', 'SORT_INDEX'=>20, 'IS_COMPLETE'=>'N']);
\CTaskCheckListItem::add($task, ['TITLE'=>'Third item. Completed', 'SORT_INDEX'=>30, 'IS_COMPLETE'=>'Y']);


complete

Задачи>Классы>CTaskCheckListItem>complete (17.6.11)

CTaskCheckListItem::complete

$task = \CTaskItem::getInstance($taskId, $userId);
$item = new \CTaskCheckListItem($task, $itemId);
echo $item->complete();

Нестатический метод, выполняет пункт чеклиста.


deleteByTaskId

Задачи>Классы>CTaskCheckListItem>deleteByTaskId (17.6.11)

CTaskCheckListItem::deleteByTaskId

\CTaskCheckListItem::deleteByTaskId($taskId);

Статический метод, удаляет все пункты чеклиста по taskId.

Параметры функции

Параметр | Описание
taskId | ID задачи.


getTaskIdByItemId

Задачи>Классы>CTaskCheckListItem>getTaskIdByItemId (17.6.11)

CTaskCheckListItem::getTaskIdByItemId

$taskId = \CTaskCheckListItem::getTaskIdByItemId($itemId);

Статический метод, позволяет получить taskId по ID пункта чеклиста.

Параметры функции

Параметр | Описание
itemId | ID пункта чеклиста.


isActionAllowed

Задачи>Классы>CTaskCheckListItem>isActionAllowed (17.6.11)

CTaskCheckListItem::isActionAllowed

\CTaskCheckListItem::isActionAllowed($actionId)

Метод проверяет доступ к действиям над пунктами чеклиста.

Параметры функции

Параметр Описание
$actionId Идентификатор действия:
  • \CTaskCheckListItem::ACTION_ADD = 0x01; // добавление
  • \CTaskCheckListItem::ACTION_MODIFY = 0x02; // изменение
  • \CTaskCheckListItem::ACTION_REMOVE = 0x03; // удаление
  • \CTaskCheckListItem::ACTION_TOGGLE = 0x04; // выполнение
  • \CTaskCheckListItem::ACTION_REORDER = 0x05; // сортировка

Примеры использования

$task = \CTaskItem::getInstance($taskId, $userId);
echo $task->isActionAllowed(\CTaskItem::ACTION_CHECKLIST_ADD_ITEMS); // для добавления пункта чеклиста, разрешение стоит спрашивать у задачи, а не у чеклиста!
$item = new \CTaskCheckListItem($task, $itemId);
// удаление
$item->isActionAllowed(\CTaskCheckListItem::ACTION_REMOVE);
// сортировка
$item->isActionAllowed(\CTaskCheckListItem::ACTION_REORDER);
// изменение
$item->isActionAllowed(\CTaskCheckListItem::ACTION_MODIFY);
// выполнение
$item->isActionAllowed(\CTaskCheckListItem::ACTION_TOGGLE);


isComplete

Задачи>Классы>CTaskCheckListItem>isComplete (17.6.11)

CTaskCheckListItem::isComplete

$task = \CTaskItem::getInstance($taskId, $userId);
$item = new \CTaskCheckListItem($task, $itemId);
echo $item->iSComplete() ? 'Выполнен' : 'Не выполнен';

Нестатический метод, проверяет, выполнен ли пункт чеклиста.


moveAfterItem

Задачи>Классы>CTaskCheckListItem>moveAfterItem (17.6.11)

CTaskCheckListItem::moveAfterItem

$task = \CTaskItem::getInstance($taskId, $userId);
$item5 = new \CTaskCheckListItem($task, $itemId5);
$item2 = new \CTaskCheckListItem($task, $itemId2);
$item5->moveAfterItem($item2->getId());

Нестатический метод, перемещает пункт 5 под пункт 2 чеклиста.

Параметры функции

Параметр | Описание
itemId | ID пункта чеклиста.


renew

Задачи>Классы>CTaskCheckListItem>renew (17.6.11)

CTaskCheckListItem::renew

$task = \CTaskItem::getInstance($taskId, $userId);
$item = new \CTaskCheckListItem($task, $itemId);
echo $item->renew();

Нестатический метод, помечает пункт чеклиста как невыполненный.

Примечание: В отличии от метода toggle, этот метод не переключает "выполненный"/"невыполненный", а принудительно выставляет “невыполненный”.


setSortIndex

Задачи>Классы>CTaskCheckListItem>setSortIndex (17.6.11)

CTaskCheckListItem::setSortIndex

$task = \CTaskItem::getInstance($taskId, $userId);
$item = new \CTaskCheckListItem($task, $itemId);
$newIndex = 19;
$item->setSortIndex($newIndex);

Нестатический метод, изменяет индекс сортировки.


Класс CTaskElapsedItem

CTaskElapsedItem - Класс для работы с учетом затраченного на задачи времени. Следует использовать вместо устаревшего CTaskElapsedTime.

Методы класса

Метод | Описание | С версии
add | Метод добавляет затраченное время к задаче. |
delete | Метод удаляет запись о затраченном времени. |
isActionAllowed | Метод проверяет разрешено ли действие. |
update | Метод изменяет параметры записи о затраченном времени. |


add

Задачи>Классы>CTaskElapsedItem>add (12.5.4)

CTaskElapsedItem::add

object
CTaskElapsedItem::add(
 object CTaskItemInterface, oTaskItem,
 array arFields = array()
);

Метод добавляет затраченное время к задаче.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание | С версии
oTaskItem | Объект класса CTaskItem |
arFields | Массив, содержащий записи о времени и комментарии (MINUTES и COMMENT_TEXT). | До 14.0.10
arFields | Массив, содержащий записи о времени и комментарии (SECONDS, COMMENT_TEXT и CREATED_DATE). Допустимо использовать MINUTES вместо SECONDS, но нельзя их использовать одновременно. | с 14.0.10

Возвращаемое значение

Метод возвращает объект класса CTaskElapsedItem.


delete

Задачи>Классы>CTaskElapsedItem>delete (12.5.4)

CTaskElapsedItem::delete

void
public function delete();

Метод удаляет запись о затраченном времени.

Примеры использования

$taskId = ...;
$itemId = ...;
$oTask = CTaskItem::getInstance($taskId, $USER->getId());
$oElapsedItem = new CTaskElapsedItem($oTask, $itemId);
$oElapsedItem->delete();


isActionAllowed

Задачи>Классы>CTaskElapsedItem>isActionAllowed (12.5.4)

CTaskElapsedItem::isActionAllowed

Описание и параметры

bool
public function isActionAllowed(
  int $actionId
);

Метод проверяет, разрешено ли действие?

Параметры метода

Параметр Описание С версии
$actionId Идентификатор действия:
  • CTaskElapsedItem::ACTION_ELAPSED_TIME_ADD;
  • CTaskElapsedItem::ACTION_ELAPSED_TIME_MODIFY;
  • CTaskElapsedItem::ACTION_ELAPSED_TIME_REMOVE.

Возвращаемое значение

Данный метод возвращает true если действие разрешено, иначе — false.

Примеры использования

$taskId = ...;
$itemId = ...;
$oTask = CTaskItem::getInstance($taskId, $USER->getId());
$oElapsedItem = new CTaskElapsedItem($oTask, $itemId);
$oElapsedItem->isActionAllowed($actionId);


update

Задачи>Классы>CTaskElapsedItem>update (12.5.4)

CTaskElapsedItem::update

Описание и параметры

void
public function update(
 array arFields,
);

Метод изменяет параметры указанной записи о затраченном времени.

Параметры метода

Параметр | Описание | С версии
arFields | Массив, содержащий записи о времени и комментарии (MINUTES и COMMENT_TEXT). | До 14.0.10
arFields | Массив, содержащий записи о времени и комментарии (SECONDS, COMMENT_TEXT и CREATED_DATE). Допустимо использовать MINUTES вместо SECONDS, но нельзя их использовать одновременно. | с 14.0.10

Возвращаемое значение

При возникновении ошибки в исключениях будет содержаться текст ошибки.

Примеры использования

$taskId = ...;
$itemId = ...;
$oTask = CTaskItem::getInstance($taskId, $USER->getId());
$oElapsedItem = new CTaskElapsedItem($oTask, $itemId);
$oElapsedItem->delete(); // $oElapsedItem->update($arFields); / $oElapsedItem->isActionAllowed($actionId);


Класс CTaskElapsedTime

CTaskElapsedTime - Класс для работы с учетом затраченного на задачи времени.

Внимание! класс устарел и вместо рекомендуется использовать класс класс CTaskElapsedItem.

Методы класса

Метод | Описание | С версии
Add | Метод добавляет затраченное время к задаче. |
Delete | Метод удаляет запись о затраченном времени. |
GetByID | Возвращает поля записи о затраченном времени по ее идентификатору. |
GetList | Возвращает список записей о затраченном времени. |
Update | Метод изменяет параметры записи о затраченном времени. |


Add

Задачи>Классы>CTaskElapsedTime>Add (10.0.5)

CTaskElapsedTime::Add

Описание и параметры

int
CTaskElapsedTime::Add(
 array arFields,
 array arParams = array()
);

Метод добавляет затраченное время к задаче.

Параметры метода

Параметр | Описание | С версии
arFields | Массив Array("поле"=>"значение", ...). |
arParams | Массив дополнительных параметров. Необязательный. | 12.5.3

Возвращаемое значение

Метод возвращает идентификатор добавленной записи, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{
   $arFields = array(
        "USER_ID" => 2,
        "TASK_ID" => 16,
        "MINUTES" => 90,
        "COMMENT_TEXT" => "Добавил полтора часа."
    );
    $obElapsed = new CTaskElapsedTime();
    $obElapsed->Add($arFields);
}?>


Delete

Задачи>Классы>CTaskElapsedTime>Delete (10.0.5)

CTaskElapsedTime::Delete

Описание и параметры

bool
CTaskElapsedTime::Delete(
 ID,
 array arParams = array()
);

Метод удаляет запись о затраченном времени с идентификатором ID.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор удаляемой записи. |
arParams | Массив дополнительных параметров. Необязательный. | 12.5.3

Возвращаемое значение

Метод возвращает true в случае успешного удаления записи, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $ID = 1;

    if($USER->IsAdmin())
    {
       CTaskElapsedTime::Delete($ID);
    }

}
?>


GetByID

Задачи>Классы>CTaskElapsedTime>GetByID (10.0.5)

CTaskElapsedTime::GetByID

Описание и параметры

CDBResult
CTaskElapsedTime::GetByID(
  ID
);

Возвращает поля записи о затраченном времени по ее идентификатору.

Параметры метода

Параметр | Описание
ID | Идентификатор записи.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult

Примеры использования

<?

if (CModule::IncludeModule("tasks"))
{
    $rsElapsedTime = CTaskElapsedTime::GetByID(18);
    if ($arElapsedTime = $rsElapsedTime->GetNext())
    {
        echo $arElapsedTime["MINUTES"];
    }
}
?>


GetList

Задачи>Классы>CTaskElapsedTime>GetList (10.0.5)

CTaskElapsedTime::GetList

Описание и параметры

CDBResult
CTaskElapsedTime::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arParams = array()
);

Возвращает список записей о затраченном времени по фильтру arFilter, отсортированный в порядке arOrder. Метод статический.

Параметры метода

Параметр | Описание | С версии
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • ID - идентификатор задачи;
  • USER - идентификатор пользователя.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию фильтруется по дате добавления.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • CREATED_DATE - дата добавления;
  • ID - идентификатор записи;
  • USER_ID - идентификатор пользователя;
  • TASK_ID - идентификатор задачи.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
arParams | Массив дополнительных параметров. Необязательный. | 12.5.4

Возвращаемое значение

Возвращается объект CDBResult.

Примеры использования

<?

// Посчитаем затраченное время для задачи с ID = 2
if (CModule::IncludeModule("tasks"))
{
    $res = CTaskElapsedTime::GetList(
        Array(),
        Array("TASK_ID" => "2")
    );

    $elapsedTime = 0;
    while ($arElapsed = $res->Fetch())
    {
        $elapsedTime += $arElapsed["MINUTES"];
    }
    echo "Затраченное время: ".floor($elapsedTime / 60)."ч. ".($elapsedTime % 60)."м.";
}

?>


Update

Задачи>Классы>CTaskElapsedTime>Update (10.0.5)

CTaskElapsedTime::Update

Описание и параметры

bool
CTasks::Update(
 ID,
 array arFields,
 array arParams = array()
);

Метод изменяет параметры записи о затраченном времени с идентификатором ID.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор изменяемой записи. |
arFields | Массив Array("поле"=>"значение", ...). Обязательные поля должны быть заполнены. |
arParams | Массив дополнительных параметров. Необязательный. | 12.5.3

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки метод вернет false. При возникновении ошибки в исключениях будет содержаться текст ошибки.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{
    $ID = 22;
    $arFields = array(
        "MINUTES" => 120,
        "COMMENT_TEXT" => "Добавил 2 часа."
    );
    $obElapsed = new CTaskElapsedTime();
    $obElapsed->Update($ID, $arFields);

}?>


Класс CTaskFiles

CTaskFiles - Класс для работы с файлами задач.

Класс устарел с версии 16.7.0. Вместо него используйте класс Bitrix\Tasks\Integration\Disk.

Методы класса

Метод | Описание | С версии
Add | Метод добавляет связь "задача -> файл". |
Delete | Метод удаляет связь "задача -> файл". |
GetList | Возвращает список связей "задача -> файл". |
AddMultiple | Метод присоединяет несколько файлов к задаче. |
CheckFilesAccessibilityByUser | Метод проверяет доступность файла на чтение (в рамках модуля задач) указанному пользователю. | 12.5.0
IsFileAccessibleByUser | Метод проверяет доступность файла на чтение (в рамках модуля задач) указанному пользователю. | 12.5.0


Add

Задачи>Классы>CTaskFiles>Add (10.0.5, устарел с версии 16.7.0)

CTaskFiles::Add

Описание и параметры

bool
CTaskFiles::Add(
 array arFields,
 array arParams = array()
);

Метод добавляет связь "задача -> файл".

Параметры метода

Параметр | Описание | С версии
arFields Массив Array("поле"=>"значение", ...). Содержит поля:
  • TASK_ID - идентификатор задачи;
  • FILE_ID - идентификатор файла.
arParams | Массив дополнительных параметров. Необязательный. | 12.5.0

Возвращаемое значение

Метод возвращает true, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{
    $arFields = Array(
        "TASK_ID" => 4,
        "FILE_ID" => 15
    );

    $obTaskFiles = new CTaskFiles;
    $ID = $obTaskFiles->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}?>


Delete

Задачи>Классы>CTaskFiles>Delete (10.0.5, устарел с версии 16.7.0)

CTaskFiles::Delete

Описание и параметры

bool
CTaskFiles::Delete(
  TASK_ID,
  FILE_ID
);

Метод удаляет связь "задача -> файл".

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание
TASK_ID | Идентификатор задачи.
FILE_ID | Идентификатор файла.

Возвращаемое значение

Метод возвращает true в случае успешного удаления связи, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $TASK_ID = 4;
    $FILE_ID = 15;

    if($USER->IsAdmin())
    {
       CTaskFiles::Delete($TASK_ID, $FILE_ID);
    }

}
?>


GetList

Задачи>Классы>CTaskFiles>GetList (10.0.5, устарел с версии 16.7.0)

CTaskFiles::GetList

Описание и параметры

CDBResult
CTaskFiles::GetList(
 array arOrder = array(),
 array arFilter = array()
);

Возвращает список связей "задача -> файл" по фильтру arFilter, отсортированный в порядке arOrder.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • TASK - идентификатор задачи;
  • FILE - идентификатор файла.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию фильтруется по убыванию идентификатора задачи.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • TASK_ID - идентификатор задачи;
  • FILE_ID - идентификатор файла.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

Примеры использования

<?

// Выбираем все файлы для задачи с ID = 2
if (CModule::IncludeModule("tasks"))
{
    $res = CTaskFiles::GetList(
        Array("FILES_ID" => "ASC"),
        Array("TASK_ID" => "2")
    );

    while ($arFile = $res->GetNext())
    {
        echo $arFile["FILE_ID"]."<br>";
    }
}

?>


AddMultiple

Задачи>Классы>CTaskFiles>AddMultiple (10.0.5, устарел с версии 16.7.0)

CTaskFiles::AddMultiple

Описание и параметры

boolean
CTaskFiles::AddMultiple(
    $taskId,
    array $arFilesIds,
    array $arParams = array()
);

Метод присоединяет несколько файлов к задаче.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание
$taskId | Идентификатор задачи.
$arFilesIds | Массив идентификаторов прикрепляемых файлов.
$arParams Массив параметров (не обязательный аргумент).

Допустимые параметры:
  • CHECK_RIGHTS_ON_FILES — принимает Y/N/true/false. По умолчанию true (Y);
  • USER_ID — идентификатор пользователя, от имени которого совершается действие (имперсонализация). По умолчанию — текущий авторизованный пользователь.

Возвращаемое значение

Возвращает true, если все файлы были успешно присоединены к задаче. В противном случае - false.

Примеры использования

<?php
CModule::IncludeModule('tasks');
$taskId = 235;
$arFilesIds = array(34, 35, 36);
$userId = 45;	// Совершим операцию от имени какого-то другого пользователя
if (!CTaskFiles::AddMultiple($taskId, $arFilesIds, array('USER_ID' => $userId)) )
    AddMessage2Log('Error during file attaching to task ' . $taskId);
?>


CheckFilesAccessibilityByUser

Задачи>Классы>CTaskFiles>CheckFilesAccessibilityByUser (С версии 12.5.0, устарел с версии 16.7.0)

CTaskFiles::CheckFilesAccessibilityByUser

Описание и параметры

array
CTaskFiles::checkFilesAccessibilityByUser(
    array $arFilesIds,
    $userId
);

Метод проверяет доступность файла на чтение (в рамках модуля задач) указанному пользователю.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание
$arFilesIds | Массив идентификаторов проверяемых файлов.
$userId | Идентификатор пользователя, для которого проверяется доступность файла.

Возвращаемое значение

Метод аналогичен CTaskFiles::isFileAccessibleByUser(), с той разницей, что работает с массивом идентификаторов файлов, и возвращает ассоциативный массив, описывающий какие файлы доступны пользователю. Ключами массива являются строки вида 'f'.$fileId (см. пример), значения массива являются true (если файл доступен) или false (если файл недоступен).

Примеры использования

<?php
CModule::IncludeModule('tasks');
$arCheckFiles = array(113, 456, 777);
$userId = (int) $GLOBALS['USER']->getId();
$rc = CTaskFiles::checkFilesAccessibilityByUser($arCheckFiles, $userId);
var_dump ($rc);

Выведет примерно следующее:
array(3) {
    ["f113"]=> bool(true)
    ["f456"]=> bool(true)
    ["f777"]=> bool(false)
}
?>


IsFileAccessibleByUser

Задачи>Классы>CTaskFiles>IsFileAccessibleByUser (С версии 12.5.0, устарел с версии 16.7.0)

CTaskFiles::IsFileAccessibleByUser

Описание и параметры

boolean
CTaskFiles::isFileAccessibleByUser(
    $fileId,
    $userId
);

Метод проверяет доступность файла на чтение (в рамках модуля задач) указанному пользователю.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание
$fileId | Идентификатор проверяемого файла.
$userId | Идентификатор пользователя, для которого проверяется доступность файла.

Возвращаемое значение

Возвращает true, если файл с идентификатором $fileId доступен пользователю с идентификатором $userId на чтение в рамках модуля задач. Файл доступен пользователю, если файл прикреплен хотя бы к одной из задач, доступных пользователю, либо хотя бы к одному из шаблонов задач, доступных пользователю. Также, файл доступен, если он был зарегистрирован с помощью CTaskFiles::saveFileTemporary() как временный для последующего прикрепления к задаче.
Если пользователь с $userId является администратором, то будет возвращено true независимо от того, имеется ли данный файл в задачах/шаблонах или среди временно загруженных файлов.

Примеры использования

<?php
CModule::IncludeModule('tasks');
$fileId  = 456;
$userId = (int) $GLOBALS['USER']->getId();
if (CTaskFiles::isFileAccessibleByUser($fileId, $userId))
    echo 'Files is accessible';
else
    echo 'Access denied';
?>


Класс CTaskFilterCtrl

CTaskFilterCtrl - класс для работы с предустановленными и пользовательскими фильтрами для задач.

Мультитон. Работа должна вестись с экземпляром класса, получаемым с помощью CTaskFilterCtrl::getInstance().

Методы класса

Метод | Описание | С версии
GetFilterPresetConditionById | Метод возвращает условие фильтра с заданным идентификатором. |
GetInstance | Метод возвращает экземпляр класса CTaskFilterCtrl. |
GetSelectedFilterPresetCondition | Метод возвращает условие текущего выбранного фильтра в виде массива. |
GetSelectedFilterPresetId | Метод возвращает идентификатор текущего выбранного фильтра. |
GetSelectedFilterPresetName | Метод возвращает название текущего выбранного фильтра. |
ListFilterPresets | Метод возвращает список имеющихся у пользователя предустановленных и пользовательских фильтров. |
SwitchFilterPreset | Метод возвращает список имеющихся у пользователя предустановленных и пользовательских фильтров. |
СreatePreset | Метод возвращает идентификатор созданного пресета. |
ReplacePreset | Метод возвращает идентификатор заменяемого пресета. |
RemovePreset | Метод удаляет пресет. | 12.5.0


GetFilterPresetConditionById

Задачи>Классы>CTaskFilterCtrl>GetFilterPresetConditionById (12.0.1)

CTaskFilterCtrl::GetFilterPresetConditionById

Описание и параметры

string
public function getFilterPresetConditionById(
    $presetId
);

Метод возвращает условие фильтра с заданным идентификатором.

Параметры метода

Параметр | Описание
$presetId | Идентификатор фильтра, по которому запрашивается условие.

Возвращаемое значение

Возвращает условие фильтра с заданным идентификатором в виде массива, который можно передать в качестве параметра $arFilter в метод CTasks::GetList().

Примеры использования

<?php
CModule::IncludeModule('tasks');
$userId = (int) $GLOBALS['USER']->getId();
$bGroupMode = false;
$oFilter = CTaskFilterCtrl::getInstance($userId, $bGroupMode);

$selectedFilter = $oFilter->getSelectedFilterPresetId();
$arFilter = $oFilter->getFilterPresetConditionById($selectedFilter);

// Покажем условия фильтра
var_dump($arFilter);

// Это условие можно использовать в CTasks::GetList();
$rsTasks = CTasks::GetList(array(), $arFilter);
?>

Выведет:
array(1) {
  ["::SUBFILTER-ROOT"]=>
  array(3) {
    ["::LOGIC"]=>
    string(3) "AND"
    ["MEMBER"]=>
    int(1)
    ["STATUS"]=>
    array(6) {
      [0]=>
      int(-2)
      [1]=>
      int(-1)
      [2]=>
      int(1)
      [3]=>
      int(2)
      [4]=>
      int(3)
      [5]=>
      int(7)
    }
  }
}


GetInstance

Задачи>Классы>CTaskFilterCtrl>GetInstance (12.0.1)

CTaskFilterCtrl::GetInstance

Описание и параметры

object
CTaskFilterCtrl::getInstance(
    $userId,
    $bGroupMode = false
);

Метод возвращает экземпляр класса CTaskFilterCtrl.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание | С версии
$userId | Идентификатор пользователя, от имени которого ведется работа (для возможности имперсонализации). |
$bGroupMode | Флаг "режима группы". При включенном режиме (true) возвращается другой набор предустановленных фильтров. По умолчанию — false. | 12.5.0

Возвращаемое значение

Возвращает объект класса CTaskFilterCtrl. При повторном вызове метода с параметрами, которые уже были переданы ранее, будет возвращен один и тот же объект.

Примеры использования

<?php
CModule::IncludeModule('tasks');
$userId = (int) $GLOBALS['USER']->getId();
$bGroupMode = false;
$oFilter1 = CTaskFilterCtrl::getInstance($userId, $bGroupMode);
$bGroupMode = true;
$oFilter2 = CTaskFilterCtrl::getInstance($userId, $bGroupMode);
$oFilter3 = CTaskFilterCtrl::getInstance($userId, $bGroupMode);

var_dump ($oFilter1 === $oFilter2);	// выведет false
// выведет true, т.к. в обеих переменных ссылка на один и тот же объект
var_dump ($oFilter2 === $oFilter3);
?>


GetSelectedFilterPresetCondition

Задачи>Классы>CTaskFilterCtrl>GetSelectedFilterPresetCondition (12.0.1)

CTaskFilterCtrl::GetSelectedFilterPresetCondition

array
public function getSelectedFilterPresetCondition();

Метод возвращает условие текущего выбранного фильтра.

Возвращаемое значение

Возвращает условие текущего выбранного фильтра в виде массива, который можно передать в качестве параметра $arFilter в метод CTasks::GetList();

Примеры использования

<?php
CModule::IncludeModule('tasks');
$userId = (int) $GLOBALS['USER']->getId();
$bGroupMode = false;
$oFilter = CTaskFilterCtrl::getInstance($userId, $bGroupMode);

$arFilter = $oFilter->getSelectedFilterPresetCondition();

// Покажем условия фильтра
var_dump($arFilter);

// Это условие можно использовать в CTasks::GetList();
$rsTasks = CTasks::GetList(array(), $arFilter);
?>


GetSelectedFilterPresetId

Задачи>Классы>CTaskFilterCtrl>GetSelectedFilterPresetId (12.0.1)

CTaskFilterCtrl::GetSelectedFilterPresetId

int
public function getSelectedFilterPresetId();

Метод возвращает идентификатор текущего выбранного фильтра.

Возвращаемое значение

Возвращает идентификатор текущего выбранного фильтра.

Примеры использования

<?php
CModule::IncludeModule('tasks');
$userId = (int) $GLOBALS['USER']->getId();
$bGroupMode = false;
$oFilter = CTaskFilterCtrl::getInstance($userId, $bGroupMode);

$selectedFilter = $oFilter->getSelectedFilterPresetId();
$arFilter = $oFilter->getFilterPresetConditionById($selectedFilter);

// Покажем условия фильтра
var_dump($arFilter);

// Это условие можно использовать в CTasks::GetList();
$rsTasks = CTasks::GetList(array(), $arFilter);
?>

Выведет:
array(1) {
  ["::SUBFILTER-ROOT"]=>
  array(3) {
    ["::LOGIC"]=>
    string(3) "AND"
    ["MEMBER"]=>
    int(1)
    ["STATUS"]=>
    array(6) {
      [0]=>
      int(-2)
      [1]=>
      int(-1)
      [2]=>
      int(1)
      [3]=>
      int(2)
      [4]=>
      int(3)
      [5]=>
      int(7)
    }
  }
}


GetSelectedFilterPresetName

Задачи>Классы>CTaskFilterCtrl>GetSelectedFilterPresetName (12.0.1)

CTaskFilterCtrl::GetSelectedFilterPresetName

string
public function getSelectedFilterPresetName();

Метод возвращает название текущего выбранного фильтра.

Возвращаемое значение

Возвращает название текущего выбранного фильтра.

Примеры использования

<?php
CModule::IncludeModule('tasks');
$userId = (int) $GLOBALS['USER']->getId();
$bGroupMode = false;
$oFilter = CTaskFilterCtrl::getInstance($userId, $bGroupMode);

echo $oFilter->getSelectedFilterPresetName(); // Выведет, к примеру, «Созданные мной»
?>


ListFilterPresets

Задачи>Классы>CTaskFilterCtrl>ListFilterPresets (12.0.1)

CTaskFilterCtrl::ListFilterPresets

Описание и параметры

array
public function listFilterPresets(
    $bTreeMode = false
);

Метод возвращает список имеющихся у пользователя предустановленных и пользовательских фильтров.

Параметры метода

Параметр | Описание
$bTreeMode | Задает формат возвращаемого списка фильтров. Если true — результат будет в виде дерева, при false — просто список фильтров.

Возвращаемое значение

Возвращает массив, описывающий список фильтров. Каждый элемент фильтра описан отдельным массивом с ключами:

  • Name - имя фильтра;
  • Parent - идентификатор родительского фильтра, NULL — для корневого родительского фильтра;
  • Condition - сериализованное (с помощью функции serialize()) значение условий фильтра.
  • #Children (при режиме $bTreeMode = true) - ключ присутствует в фильтрах, имеющих дочерние фильтры. Содержит массив фильтров.
Пример возвращаемого массива см. ниже.

Примеры использования

<?php
CModule::IncludeModule('tasks');
$userId = (int) $GLOBALS['USER']->getId();
$bGroupMode = false;
$oFilter = CTaskFilterCtrl::getInstance($userId, $bGroupMode);

$arPresets1 = $oFilter->listFilterPresets();
var_dump($arPresets1);
$arPresets2 = $oFilter->listFilterPresets(true);	// в формате дерева
var_dump($arPresets2);
?>

Вывод для $arPresets1:
array(10) {
  [0]=>
  array(3) {
    ["Name"]=>
    string(1) "/"
    ["Parent"]=>
    NULL
    ["Condition"]=>
    NULL
  }
  [-1]=>
  array(3) {
    ["Name"]=>
    string(10) "Мои задачи"
    ["Parent"]=>
    int(0)
    ["Condition"]=>
    string(116) "a:3:{s:7:"::LOGIC";s:3:"AND";s:6:"MEMBER";i:1;s:6:"STATUS";a:6:{i:0;i:-2;i:1;i:-1;i:2;i:1;i:3;i:2;i:4;i:3;i:5;i:7;}}"
  }
  [-2]=>
  array(3) {
    ["Name"]=>
    string(16) "Поставленные мне"
    ["Parent"]=>
    int(-1)
    ["Condition"]=>
    string(114) "a:3:{s:7:"::LOGIC";s:3:"AND";s:4:"DOER";i:1;s:6:"STATUS";a:6:{i:0;i:-2;i:1;i:-1;i:2;i:1;i:3;i:2;i:4;i:3;i:5;i:7;}}"
  }, ...

Вывод для $arPresets2:
array(4) {
  [-1]=>
  array(4) {
    ["Name"]=>
    string(10) "Мои задачи"
    ["Parent"]=>
    int(0)
    ["Condition"]=>
    string(116) "a:3:{s:7:"::LOGIC";s:3:"AND";s:6:"MEMBER";i:1;s:6:"STATUS";a:6:{i:0;i:-2;i:1;i:-1;i:2;i:1;i:3;i:2;i:4;i:3;i:5;i:7;}}"
    ["#Children"]=>
    array(3) {
      [-2]=>
      array(4) {
        ["Name"]=>
        string(16) "Поставленные мне"
        ["Parent"]=>
        int(-1)
        ["Condition"]=>
        string(114) "a:3:{s:7:"::LOGIC";s:3:"AND";s:4:"DOER";i:1;s:6:"STATUS";a:6:{i:0;i:-2;i:1;i:-1;i:2;i:1;i:3;i:2;i:4;i:3;i:5;i:7;}}"
        ["#Children"]=>
        array(2) {
          [-7]=>
          array(3) {
            ["Name"]=>
            string(15) "Я ответственный"
            ["Parent"]=>
            int(-2)
            ["Condition"]=>
            string(125) "a:3:{s:7:"::LOGIC";s:3:"AND";s:14:"RESPONSIBLE_ID";i:1;s:6:"STATUS";a:6:{i:0;i:-2;i:1;i:-1;i:2;i:1;i:3;i:2;i:4;i:3;i:5;i:7;}}"
          }
          [-8]=>
          array(3) {
            ["Name"]=>
            string(15) "Я соисполнитель"
            ["Parent"]=>
            int(-2)
            ["Condition"]=>
            string(121) "a:3:{s:7:"::LOGIC";s:3:"AND";s:10:"ACCOMPLICE";i:1;s:6:"STATUS";a:6:{i:0;i:-2;i:1;i:-1;i:2;i:1;i:3;i:2;i:4;i:3;i:5;i:7;}}"
          }
        }
      }, ...


SwitchFilterPreset

Задачи>Классы>CTaskFilterCtrl>SwitchFilterPreset (12.0.1)

CTaskFilterCtrl::SwitchFilterPreset

void
public function switchFilterPreset(
    $presetId
);

Метод возвращает список имеющихся у пользователя предустановленных и пользовательских фильтров.

Параметры метода

Параметр | Описание
$presetId | Идентификатор фильтра, который следует сделать текущим.

Возвращаемое значение

Нет.

Примеры использования

<?php
CModule::IncludeModule('tasks');
$userId = (int) $GLOBALS['USER']->getId();
$bGroupMode = false;
$oFilter = CTaskFilterCtrl::getInstance($userId, $bGroupMode);
// Делаем текущим фильтр «Все мои задачи»
$oFilter->switchFilterPreset(CTaskFilterCtrl::STD_PRESET_ALL_MY_TASKS);
$selectedFilter = $oFilter->getSelectedFilterPresetId();
echo $selectedFilter;	// Выведет число «-9», которое является значением константы  CTaskFilterCtrl::STD_PRESET_ALL_MY_TASKS
?>


СreatePreset

Задачи>Классы>CTaskFilterCtrl>СreatePreset (12.0.1)

CTaskFilterCtrl::СreatePreset

int
public function createPreset(
    $arPresetData
);

Метод возвращает идентификатор созданного пресета.

Параметры метода

Параметр Описание
$arPresetData Массив, описывающий пресет. Должен содержать следующие ключи:
  • Name — имя пресета (до 100 символов),
  • Parent — идентификатор родительского пресета (должен быть равен CTaskFilterCtrl::ROOT_PRESET),
  • Condition — массив, описывающий условие фильтра (соответствует тому, что можно передавать в качества параметра $arFilter в метод CTasks::GetList()).


ReplacePreset

Задачи>Классы>CTaskFilterCtrl>ReplacePreset (12.0.1)

CTaskFilterCtrl::ReplacePreset

int
public function replacePreset(
    $presetId,
    $arPresetData
);

Метод возвращает идентификатор заменяемого пресета.

Параметры метода

Параметр | Описание
$presetId | Идентификатор заменяемого пресета.
$arPresetData Массив, описывающий пресет. Должен содержать следующие ключи:
  • Name — имя пресета (до 100 символов),
  • Parent — идентификатор родительского пресета (должен быть равен CTaskFilterCtrl::ROOT_PRESET),
  • Condition — массив, описывающий условие фильтра (соответствует тому, что можно передавать в качества параметра $arFilter в метод CTasks::GetList()).


RemovePreset

Задачи>Классы>CTaskFilterCtrl>RemovePreset (С версии 12.5.0)

CTaskFilterCtrl::RemovePreset

void
public function removePreset(
    $presetId
);

Данный метод ничего не возвращает.

Параметры метода

Параметр | Описание | С версии
$presetId | Идентификатор удаляемого пресета. |


Класс CTaskItem

Описание

CTaskItem — высокоуровневое API для работы с отдельными задачами (включает в себя бизнес-логику).

Следует использовать вместо вызовов CTasks::Update(), CTasks::Delete() и т.д.;

  • позволяет вести работу с задачей от имени заданного (не обязательно текущего авторизованного) пользователя;
  • обладает внутренним механизмом прозрачного кэширования (не нужно следить за актуализацией кэша при работе с задачей через этот класс — при условии инстанцирования через getInstance());
  • применяется блочная «ленивая» подгрузка данных, что благоприятно сказывается на производительности;

Для работы с классом нужно его инстанцировать для конкретной задачи в контексте прав определенного пользователя.

Не является мультитоном, однако рекомендуется инстанцировать экземпляр класс с помощью статического метода getInstance(), т. к. в таком случае будет автоматически поддерживаться актуальность кэша.

Например,

<?
$taskId = 7;
$userId = $USER->getId();
$oTask = CTaskItem::getInstance($taskId, $userId);
?>

Параметры метода

Параметр | Описание
$taskId | идентификатор задачи.
$userId | идентификатор пользователя, от имени которого ведется работа (для возможности имперсонализации).

Возвращаемое значение

Объект класса CTaskItem. При повторном вызове метода с параметрами, которые уже были переданы ранее, будет возвращен один и тот же объект.

array
public function getManifest();

Возвращает массив с описанием класса.

Внимание! Формат массива может произвольно меняться в будущем, он не предназначен для автоматической обработки, однако может быть очень удобен в процессе разработки, т. к. содержит, к примеру, список методов доступных в REST, принимаемые ими значения и т.д.

Список методов

Метод | Описание | С версии
add | Метод возвращает экземпляр класса CTaskItem. | 12.5.3
getData | Метод возвращает массив, содержащий данные о задаче. | 12.5.4
getDescription | Метод возвращает описание задачи. |
getFiles | Метод возвращает массив, содержащий идентификаторы файлов, прикрепленных к задаче. | 12.5.4
getTags | Метод возвращает массив, содержащий теги заданного пользователя в задаче. | 12.5.4
getDependsOn | Метод возвращает массив, содержащий идентификаторы задач, от которых зависит задача. | 12.5.4
getAllowedActions | Метод возвращает массив, описывающий допустимые действия над задачей. | 12.5.8
isActionAllowed | Метод проверяет разрешено ли действие. |
delete | Метод удаляет задачу. | 12.5.3
delegate | Метод делегируюет задачу пользователю. |
startExecution | Метод переводит задачу в статус «выполняется». |
defer | Метод переводит задачу в статус «отложена». |
renew | Метод переводит задачу в статус «не выполняется». |
complete | Метод переводит задачу в статус «завершена» или «условно завершена (ждет контроля исполнителя)». |
approve | Метод переводит задачу, ожидающую контроля, в статус «завершена». |
disapprove | Метод переводит задачу, ожидающую контроля, в статус «не выполняется». |
update | Метод изменяет параметры задачи. | 12.5.3
addByTemplate | Метод добавляет задачу по шаблону. | 14.5.11
addChildTaskByTemplate | Метод добавляет подзадачи из шаблона. | 14.5.11
duplicate | Метод копирует задачу или задачи. | 14.5.11
duplicateChildTasks | Метод копирует подзадачи выбранной задачи. | 14.5.11
addToFavorite | Данный метод добавляет задачу в Избранное. | 15.6.0
deleteFromFavorite | Данный метод удаляет задачу из Избранного. | 15.6.0
toggleFavorite | Данный метод меняет для указанной задачи состояние избранности. | 15.6.0


add

Задачи>Классы>CTaskItem>add (С версии 12.5.3)

CTaskItem::add

Описание и параметры

CTaskItem
public static function add(
    $arNewTaskData,
    $userId
);

Данный метод возвращает экземпляр класса CTaskItem.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание
$arNewTaskData | Массив полей данных по задаче (TITLE, DESCRIPTION и т.д.), список полей - аналогично методу CTasks::Add().
$userId | Идентификатор пользователя, от имени которого будут проверяться права и правила бизнес-логики.

Примеры

$task = new \Bitrix\Tasks\Item\Task(); // создание экземпляра новой сущности (например, новой задачи, которой еще нет в базе данных)
$task = new \Bitrix\Tasks\Item\Task(0, 1); // создание экземпляра новой сущности из под пользователя 1

Затем

$task->title = 'hello';
$task->responsibleId = 4;

Либо

$task['TITLE'] = 'hello';
$task['RESPONSIBLE_ID'] = 4;

Затем

$result = $task->save();
if($result->isSuccess())
{
    print('EEEEEhaaaa!!!');
}
else
{
   print('NoEEEEEhaaaa!!!:');
   print_r($result->dump());
}


getData

Задачи>Классы>CTaskItem>getData (С версии 12.5.4)

CTaskItem::getData

array
public function getData(
    $isReturnEscapedData = true
);

Данный метод возвращает массив, содержащий данные о задаче (TITLE, DESCRIPTION и т.д.).

Параметры метода

Параметр | Описание
$isReturnEscapedData | Если true (по умолчанию), то возвращаются экранированные данные, оригинальные («сырые») значения будут в ключах с тильдой (~TITLE, ~DESCRIPTION и т.д.).

Примеры

Создание инстанса сущности.

$task = new \Bitrix\Tasks\Item\Task(100); // получение сущности с выбранным id
$task = new \Bitrix\Tasks\Item\Task(100, 1); // получение сущности с выбранным id и пользователем 1
$task->getData(); получить всю информацию о задаче.
$task->getData(array('~')); получить только основные данные. в эту выборку попадут так же закешированные данные. например в одном случае мы запрашивали основные данные, во втором случае у этой же задаче запросили доп поле. то если в третий раз вызвать ~ то доп поле так же будет в выборке.
$task->getData(array('#')); получить все поля, которые есть в базе
$task->getData(array('UF_#')); получить все пользовательские поля

Первый параметр не обязательно может быть массивом. можно и строкой:

$task->getData('FIELD_NAME');

Также можно обращаться к $task как к массиву:

$task['TITLE'] - это само выполнит все необходимые запросы


getDescription

Задачи>Классы>CTaskItem>getDescription (12.5.0)

CTaskItem::getDescription

string
public function getDescription(
    $format = CTaskItem::DESCR_FORMAT_HTML
);

Данный метод возвращает описание задачи.

Параметры метода

Параметр Описание
$format Допустимые значения:
  • CTaskItem::DESCR_FORMAT_HTML — описание будет возвращено в формате HTML, предварительно будет обработано санитайзером (если это включено в настройках модуля задач);
  • CTaskItem::DESCR_FORMAT_PLAIN_TEXT — описание будет возвращено в виде «плоского» текста (без HTML-тегов);
  • CTaskItem::DESCR_FORMAT_RAW — описание будет возвращено в том формате, в котором хранится в БД (HTML, либо BB-code), обработка санитайзером производиться не будет.


addByTemplate

Задачи>Классы>CTaskItem>addByTemplate (С версии 14.5.11)

CTaskItem::addByTemplate

Описание и параметры

CTaskItem[]
CTaskItem::addByTemplate(
         $templateId,
         $executiveUserId,
         $overrideTaskData = array(),
         $parameters = array()
)

Метод добавляет задачу по шаблону.

Возвращаемое значение

Данный метод возвращает массив созданных экземпляров класса CTaskItem.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание
$templateId | ID шаблона.
$executiveUserId | ID исполнителя задачи.
$overrideTaskData | Массив переопределяемых в задаче полей.
$parameters | Массив параметров шаблона.

Пример использования

CModule::IncludeMOdule('tasks');
$res = CTaskItem::addByTemplate(50, 1, false);
foreach($res as $taskInst)
{
    $data = $taskInst->getData(false);
    print($data['ID'].' -> '.$data['TITLE'].PHP_EOL);
}


addChildTaskByTemplate

Задачи>Классы>CTaskItem>addChildTaskByTemplate (С версии 14.5.11)

CTaskItem::addChildTaskByTemplate

Описание и параметры

CTaskItem[]
CTaskItem::addChildTasksByTemplate(
          $templateId,
          $parameters = array()
)

Метод добавляет подзадачи из шаблона.

Возвращаемое значение

Данный метод возвращает массив созданных экземпляров класса CTaskItem.

Параметры метода

Параметр | Описание
$templateId | ID шаблона.
$parameters | Массив параметров подзадачи.

Пример использования

CModule::IncludeModule('tasks');

$taskId = 1373;
$executiveUserId = $GLOBALS['USER']->GetId();
$templateId = 6;

// creating task instance to attach new subtasks to
$taskInstance = CTaskItem::getInstance($taskId, $executiveUserId);

$createdSubtasks = $taskInstance->addChildTasksByTemplate($templateId, array(
   // transfer some parameters
   'BEFORE_ADD_CALLBACK' => function(&$fields){
       print('will be created:'.PHP_EOL);
       print_r($fields);
    },
));

print_r($createdSubtasks);


checkCanRead

Задачи>Классы>CTaskItem>checkCanRead

CTaskItem::checkCanRead

CTaskItem::checkCanRead(
)

Метод проверяет доступ пользователя к задачам.

Параметры

Без параметров

Пример

$task = new CTaskItem(10, 3);
if (!$task->checkCanRead())
{
     print('Нет доступа к задаче c идентификатором 10 для пользователя с идентификатором 3');
}


duplicate

Задачи>Классы>CTaskItem>duplicate (С версии 14.5.11)

CTaskItem::duplicate

Описание и параметры

CTaskItem[]
CTaskItem::duplicate(
          $overrideTaskData = array(),
          $parameters = array()
)

Метод копирует задачу или задачи.

Возвращаемое значение

Данный метод возвращает массив скопированных экземпляров класса CTaskItem.

Параметры метода

Параметр | Описание
$overrideTaskData | Массив переопределяемых в копии задачи полей.
$parameters | Массив параметров задачи.

Пример использования

CModule::IncludeMOdule('tasks');
$task = new CTaskItem(1005, 1);
$res = $task->duplicate();
foreach($res as $taskInst)
{
    $data = $taskInst->getData(false);
    print($data['ID'].' -> '.$data['TITLE'].PHP_EOL);
}


duplicateChildTasks

Задачи>Классы>CTaskItem>duplicateChildTasks (С версии 14.5.11)

CTaskItem::duplicateChildTasks

Описание и параметры

CTaskItem[]
CTaskItem::duplicateChildTasks(
           $cloneTaskInstance
)

Данный метод копирует подзадачи выбранной задачи.

Возвращаемое значение

Данный метод возвращает массив скопированных экземпляров класса CTaskItem.

Параметры метода

Параметр | Описание
$cloneTaskInstance | Задача, подзадачи которой будут скопированы.

Пример использования

CModule::IncludeMOdule('tasks');

$donorTaskId = 1373;
$acceptorTaskId = 1379;
$executiveUserId = $GLOBALS['USER']->GetId();

// creating task instance
$donorTaskInstance = CTaskItem::getInstance($donorTaskId, $executiveUserId);
$acceptorTaskInstance = CTaskItem::getInstance($acceptorTaskId, $executiveUserId);

$subTasks = $donorTaskInstance-> duplicateChildTasks($acceptorTaskInstance);

print_r($subTasks);


getFiles

Задачи>Классы>CTaskItem>getFiles (С версии 12.5.4)

CTaskItem::getFiles

array
public function getFiles();

Данный метод возвращает массив, содержащий идентификаторы файлов, прикрепленных к задаче.


update

Задачи>Классы>CTaskItem>update (с версии 12.5.3)

CTaskItem::update

Описание и параметры

bool
CTaskItem::Update(
 array arFields
);

Нестатический метод изменяет параметры задачи с идентификатором ID.

Параметры метода

Параметр | Описание | С версии
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей задачи. Обязательные поля должны быть заполнены. | 16.0.0

Возвращаемое значение

При возникновении ошибки в исключениях будет содержаться текст ошибки.

Примеры использования

// смена ответственного в задаче

CModule::IncludeModule('tasks');

global $USER;

$userId = $USER->GetID();
$taskId = 85;

$oTaskItem = new CTaskItem($taskId, $userId);

try
{
   $rs = $oTaskItem->Update(array("RESPONSIBLE_ID" => 480));
}
catch(Exception $e)
{
   print('Error');
}

// прикрепление файла к задаче

CModule::IncludeModule('tasks');

$storage = Bitrix\Disk\Driver::getInstance()->getStorageByUserId($USER_ID);
$folder = $storage->getFolderForUploadedFiles();
$arFile = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/upload/wlog.txt");
$file = $folder->uploadFile($arFile, array(
   'NAME' => $arFile["name"],
   'CREATED_BY' => $USER_ID
), array(), true);
$FILE_ID = $file->getId();

$oTaskItem = new CTaskItem($taskId, $userId);
$rs = $oTaskItem->Update(array("UF_TASK_WEBDAV_FILES" => Array("n$FILE_ID")));


getTags

Задачи>Классы>CTaskItem>getTags (С версии 12.5.4)

CTaskItem::getTags

array
public function getTags();

Данный метод возвращает массив, содержащий теги заданного пользователя в задаче.


getDependsOn

Задачи>Классы>CTaskItem>getDependsOn (С версии 12.5.4)

CTaskItem::getDependsOn

array
public function getDependsOn();

Данный метод возвращает массив, содержащий идентификаторы задач, от которых зависит задача.


getAllowedActions

Задачи>Классы>CTaskItem>getAllowedActions (С версии 12.5.8)

CTaskItem::getAllowedActions

array
public function getAllowedActions(
    $bReturnAsStrings = false
);

Данный метод возвращает массив, описывающий допустимые действия над задачей.

Параметры метода

Параметр | Описание
$bReturnAsStrings | Если false (по умолчанию), то возвращается массив идентификаторов допустимых действий (константы CTaskItem::ACTION_*), иначе ассоциативный массив, ключами которого являются названия действий (совпадают с названиями констант), а значениями — true (действие разрешено) или false (действие запрещено).

Пример возвращаемого значения при $bReturnAsStrings === false:

array(7) {
  [0]=>
  int(9)
  [1]=>
  int(8)
  [2]=>
  int(3)
  [3]=>
  int(6)
  [4]=>
  int(7)
  [5]=>
  int(10)
  [7]=>
  int(13)
}

Пример возвращаемого значения при $bReturnAsStrings === true:

array(12) {
  ["ACTION_ACCEPT"]=>
  bool(false)
  ["ACTION_DECLINE"]=>
  bool(false)
  ["ACTION_COMPLETE"]=>
  bool(true)
  ["ACTION_APPROVE"]=>
  bool(false)
  ["ACTION_DISAPPROVE"]=>
  bool(false)
  ["ACTION_START"]=>
  bool(true)
  ["ACTION_DELEGATE"]=>
  bool(true)
  ["ACTION_REMOVE"]=>
  bool(true)
  ["ACTION_EDIT"]=>
  bool(true)
  ["ACTION_DEFER"]=>
  bool(true)
  ["ACTION_RENEW"]=>
  bool(false)
  ["ACTION_CREATE"]=>
  bool(false)
}


isActionAllowed

Задачи>Классы>CTaskItem>isActionAllowed (12.5.0)

CTaskItem::isActionAllowed

bool
public function isActionAllowed(
    $actionId
);

Данный метод возвращает true если действие разрешено, иначе — false.

Параметры метода

Параметр | Описание
$actionId | Идентификатор действия (константы CTaskItem::ACTION_*).


delete

Задачи>Классы>CTaskItem>delete (С версии 12.5.3)

CTaskItem::delete

void
public function delete();

Данный метод удаляет задачу.


delegate

Задачи>Классы>CTaskItem>delegate (12.5.0)

CTaskItem::delegate

void
public function delegate($userId);

Данный метод делегируюет задачу пользователю с ID == $userId.


startExecution

Задачи>Классы>CTaskItem>startExecution (12.5.0)

CTaskItem::startExecution

void
public function startExecution();

Данный метод переводит задачу в статус «выполняется» (CTasks::STATE_IN_PROGRESS).


defer

Задачи>Классы>CTaskItem>defer (12.5.0)

CTaskItem::defer

void
public function defer();

Данный метод переводит задачу в статус «отложена» (CTasks::STATE_DEFERRED).


renew

Задачи>Классы>CTaskItem>renew (12.5.0)

CTaskItem::renew

void
public function renew();

Данный метод переводит задачу в статус «не выполняется» (CTasks::STATE_PENDING).


complete

Задачи>Классы>CTaskItem>complete (12.5.0)

CTaskItem::complete

void
public function complete();

Данный метод переводит задачу в статус «завершена» (CTasks::STATE_COMPLETED) или «условно завершена (ждет контроля исполнителя)» (CTasks::STATE_SUPPOSEDLY_COMPLETED).


approve

Задачи>Классы>CTaskItem>approve (12.5.0)

CTaskItem::approve

void
public function approve();

Данный метод переводит задачу, ожидающую контроля (CTasks::STATE_SUPPOSEDLY_COMPLETED), в статус «завершена» (CTasks::STATE_COMPLETED).


disapprove

Задачи>Классы>CTaskItem>disapprove (12.5.0)

CTaskItem::disapprove

void
public function disapprove();

Данный метод переводит задачу, ожидающую контроля (CTasks::STATE_SUPPOSEDLY_COMPLETED), в статус «не выполняется» (CTasks::STATE_PENDING).


addToFavorite

Задачи>Классы>CTaskItem>addToFavorite (15.6.0)

CTaskItem::addToFavorite

public function addToFavorite($parameters = array('AFFECT_CHILDREN' => true))

Данный метод добавляет задачу в Избранное

Параметры

Параметр | Описание
PARAMETERS | Массив, содержащий ключ AFFECT_CHILDREN. Если значение ключа true, то в Избранное также будут добавлены и подзадачи данной задачи. Если false, то они включены не будут.

Возвращаемое значение

Метод возвращает true в случае успешного добавления, в противном случае возвращает false.

Пример использования

   // добавление в избранное
   $task = new CTaskItem(10, $GLOBALS['USER']->GetId());
   $task->addToFavorite();


deleteFromFavorite

Задачи>Классы>CTaskItem>deleteFromFavorite (15.6.0)

CTaskItem::deleteFromFavorite

public function deleteFromFavorite($parameters = array('AFFECT_CHILDREN' => true))

Данный метод удаляет задачу из Избранного.

Параметры

Параметр | Описание
PARAMETERS | Массив, содержащий ключ AFFECT_CHILDREN. Если значение ключа true, то в Избранное также будут добавлены и подзадачи данной задачи. Если false, то они включены не будут.

Возвращаемое значение

Метод возвращает true в случае удаления добавления, в противном случае возвращает false.

Пример использования

   // удаление из избранного
   $task = new CTaskItem(10, $GLOBALS['USER']->GetId());
   $task->deleteFromFavorite();


toggleFavorite

Задачи>Классы>CTaskItem>toggleFavorite (15.6.0)

CTaskItem::toggleFavorite

public function toggleFavorite()

Данный метод меняет для указанной задачи состояние избранности.

Возвращаемое значение

Возвращает true, если задача изначально не была в избранном. В противном случае возвращает false.

Пример использования

    // переключение состояния избранности
   $task = new CTaskItem(10, $GLOBALS['USER']->GetId());
   $task->toggleFavorite();


Класс CTaskLog

CTaskLog - Класс для работы с историей изменений в задаче.

Методы класса

Метод | Описание | С версии
Add | Метод добавляет новую запись в лог. |
GetChanges | Метод возвращает массив изменений на основе массива со старыми значениями и массива с измененными значениями. |
GetList | Возвращает список записей из истории изменений задач. |


Add

Задачи>Классы>CTaskLog>Add (10.0.4)

CTaskLog::Add

Описание и параметры

int
CTaskLog::Add(
 array arFields
);

Метод добавляет новую запись в лог.

Параметры метода

Параметр | Описание
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей записи лога.

Возвращаемое значение

Метод возвращает идентификатор добавленной записи, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{
    $arLogFields = array(
        "TASK_ID" => 76,
        "USER_ID" => 2,
        "CREATED_DATE" => "2011.06-20.17:26:37", // формат даты должен передаваться в формате даты на сайте.
        "FIELD" => "TITLE",
        "FROM_VALUE" => "Task title",
        "TO_VALUE" => "New task title",
    );
    $log = new CTaskLog();
    $log->Add($arLogFields);
}
?>


GetChanges

Задачи>Классы>CTaskLog>GetChanges (10.0.4)

CTaskLog::GetChanges

Описание и параметры

array
CTaskLog::GetChanges(
 array arOldValues,
 array arNewValues
);

Метод возвращает массив изменений на основе массива со старыми значениями и массива с измененными значениями.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание
arOldValues | Массив старых значений полей задачи.
arNewValues | Массив измененных значений полей задачи.

Возвращаемое значение

Массив изменений.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{
    $rsTask = CTasks::GetByID(2);
    if ($arTask = $rsTask->Fetch())
    {
        $arFields = array(
            "TITLE" => "New task title",
            "RESPONSIBLE_ID" => 45
        );
        $arChanges = CTaskLog::GetChanges($arTask, $arFields);
    }
}
?>


GetList

Задачи>Классы>CTaskLog>GetList (10.0.4)

CTaskLog::GetList

Описание и параметры

CDBResult
CTaskLog::GetList(
 array arOrder = array(),
 array arFilter = array()
);

Возвращает список записей из истории изменений задач по фильтру arFilter, отсортированный в порядке arOrder.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • USER - идентификатор пользователя;
  • FIELD - измененное поле.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию фильтруется по возрастанию даты добавления.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • TASK_ID - идентификатор задачи;
  • USER_ID - идентификатор пользователя;
  • CREATED_DATE - дата добавления;
  • FIELD - измененное поле.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

Примеры использования

<?

// Выбираем все записи лога для задачи с ID = 2
if (CModule::IncludeModule("tasks"))
{
    $res = CTaskLog::GetList(
        Array(),
        Array("TASK_ID" => "2")
    );

    while ($arLog = $res->GetNext())
    {
        echo "Дата изменения: ".$arLog["CREATED_DATE"]." Поле: ".$arLog["FIELD"]."<br>";
    }
}

?>


Класс CTaskReminders

CTaskReminders - Класс управления напоминаниями.

Методы класса

Метод | Описание | С версии
Add | Метод добавляет напоминание о задаче. |
Delete | Удаляет напоминания о задачах. |
DeleteByDate | Метод удаляет напоминания с требуемой датой. |
DeleteByTaskID | Метод удаляет напоминания о задаче с требуемым идентификатором |
DeleteByUserID | Метод удаляет напоминания пользователя с требуемым идентификатором |
GetList | Возвращает список напоминаний о задачах. |


Add

Задачи>Классы>CTaskReminders>Add (10.0.6)

CTaskReminders::Add

Описание и параметры

bool
CTaskReminders::Add(
 array arFields
);

Метод добавляет напоминание о задаче.

Параметры метода

Параметр | Описание
arFields | Массив Array("поле"=>"значение", ...).

Возвращаемое значение

Метод возвращает true, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{
    $arFields = Array(
        "TASK_ID" => 4,
        "USER_ID" => 15,
        "REMIND_DATE" => "2011-10-21",
        "TYPE" => CTaskReminders::REMINDER_TYPE_DEADLINE,
        "TRANSPORT" => CTaskReminders::REMINDER_TRANSPORT_EMAIL
    );

    $obTaskReminders = new CTaskReminders;
    $ID = $obTaskReminders->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}?>


Delete

Задачи>Классы>CTaskReminders>Delete (10.0.6)

CTaskReminders::Delete

Описание и параметры

CDBResult
CTaskReminders::Delete(
 array arFilter = array()
);

Удаляет напоминания о задачах по фильтру arFilter.

Параметры метода

Параметр Описание
arFilter

Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:

  • TASK_ID - идентификатор задачи;
  • USER_ID - идентификатор пользователя;
  • REMIND_DATE - дата напоминания.

Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Возвращаемое значение

Возвращается объект CDBResult.

Примеры использования

<?

// Удаляем все напоминания для задачи с ID = 28
if (CModule::IncludeModule("tasks") && $USER->IsAdmin())
{
    $res = CTaskReminders::Delete(
        Array("TASK_ID" => "28")
    );
}

?>


DeleteByDate

Задачи>Классы>CTaskReminders>DeleteByDate (10.0.6)

CTaskReminders::DeleteByDate

Описание и параметры

bool
CTaskReminders::DeleteByDate(
 REMIND_DATE
);

Метод удаляет напоминания с датой REMIND_DATE.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание
REMIND_DATE | Дата напоминания.

Возвращаемое значение

Метод возвращает true в случае успешного удаления связи, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $REMIND_DATE = "2011-11-01";

    if($USER->IsAdmin())
    {
       CTaskReminders::DeleteByDate($REMIND_DATE);
    }

}
?>


DeleteByTaskID

Задачи>Классы>CTaskReminders>DeleteByTaskID (10.0.6)

CTaskReminders::DeleteByTaskID

Описание и параметры

bool
CTaskReminders::DeleteByTaskID(
 TASK_ID
);

Метод удаляет напоминания о задаче с идентификатором TASK_ID.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание
TASK_ID | Идентификатор задачи.

Возвращаемое значение

Метод возвращает true в случае успешного удаления связи, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $TASK_ID = 15;

    if($USER->IsAdmin())
    {
       CTaskReminders::DeleteByTaskID($TASK_ID);
    }

}
?>


DeleteByUserID

Задачи>Классы>CTaskReminders>DeleteByUserID (10.0.6)

CTaskReminders::DeleteByUserID

Описание и параметры

bool
CTaskReminders::DeleteByUserID(
 USER_ID
);

Метод удаляет напоминания пользователя с идентификатором USER_ID.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание
USER_ID | Идентификатор пользователя.

Возвращаемое значение

Метод возвращает true в случае успешного удаления связи, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $USER_ID = 4;

    if($USER->IsAdmin())
    {
       CTaskReminders::DeleteByUserID($USER_ID);
    }

}
?>


GetList

Задачи>Классы>CTaskReminders>GetList (10.0.6)

CTaskReminders::GetList

Описание и параметры

CDBResult
CTaskReminders::GetList(
 array arOrder = array(),
 array arFilter = array()
);

Возвращает список напоминаний о задачах по фильтру arFilter, отсортированный в порядке arOrder.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • TASK - идентификатор задачи;
  • USER - идентификатор пользователя;
  • DATE - дата напоминания.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию фильтруется по убыванию идентификатора задачи.
arFilter

Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:

  • TASK_ID - идентификатор задачи;
  • USER_ID - идентификатор пользователя;
  • REMIND_DATE - дата напоминания.

Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

Примеры использования

<?

// Выбираем все напоминания о задаче с ID = 2 для текущего пользователя
if (CModule::IncludeModule("tasks"))
{
    $res = CTaskReminders::GetList(
        Array("DATE" => "ASC"),
        Array("TASK_ID" => "2", "USER_ID" => $USER->GetID())
    );

    while ($arReminder = $res->GetNext())
    {
        echo $arReminder["REMIND_DATE"]."<br>";
    }
}

?>


Класс CTaskTags

CTaskTags - Класс для работы с тегами.

Методы класса

Метод | Описание | С версии
Add | Метод добавляет теги к задаче. |
Delete | Удаляет теги задач. |
DeleteByName | Метод удаляет теги с требуемым названием. |
DeleteByTaskID | Метод удаляет теги задачи с требуемым идентификатором. |
DeleteByUserID | Метод удаляет теги пользователя с требуемым идентификатором. |
GetList | Возвращает список тегов задач. |


Add

Задачи>Классы>CTaskTags>Add (10.0.5)

CTaskTags::Add

Описание и параметры

bool
CTaskTags::Add(
 array arFields
);

Метод добавляет теги к задаче.

Параметры метода

Параметр | Описание
arFields | Массив Array("поле"=>"значение", ...). Содержит поля TASK_ID - идентификатор задачи, USER_ID - идентификатор пользователя и NAME - тег.

Возвращаемое значение

Метод возвращает true, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{
    $arFields = Array(
        "TASK_ID" => 4,
        "USER_ID" => 15,
        "NAME" => "задача 2.0",
    );

    $obTaskTags = new CTaskTags;
    $ID = $obTaskTags->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}?>


Delete

Задачи>Классы>CTaskTags>Delete (10.0.5)

CTaskTags::Delete

Описание и параметры

CDBResult
CTaskTags::Delete(
 array arFilter = array()
);

Удаляет теги задач по фильтру arFilter.

Параметры метода

Параметр Описание
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • TASK_ID - идентификатор задачи;
  • USER_ID - идентификатор пользователя.
  • NAME - тег.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Возвращаемое значение

Возвращается объект CDBResult.

Примеры использования

<?

// Удаляем все теги для задачи с ID = 28
if (CModule::IncludeModule("tasks") && $USER->IsAdmin())
{
    $res = CTaskTags::Delete(
        Array("TASK_ID" => "28")
    );
}

?>


DeleteByName

Задачи>Классы>CTaskTags>DeleteByName (10.0.5)

CTaskTags::DeleteByName

Описание и параметры

bool
CTaskTags::DeleteByName(
 NAME
);

Метод удаляет теги с именем NAME.

Параметры метода

Параметр | Описание
NAME | Имя тега.

Возвращаемое значение

Метод возвращает true в случае успешного удаления связи, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $NAME = "задача 2.0";

    if($USER->IsAdmin())
    {
       CTaskTags::DeleteByName($NAME);
    }

}
?>


DeleteByTaskID

Задачи>Классы>CTaskTags>DeleteByTaskID (10.0.5)

CTaskTags::DeleteByTaskID

Описание и параметры

bool
CTaskTags::DeleteByTaskID(
 TASK_ID
);

Метод удаляет теги задачи с идентификатором TASK_ID.

Параметры метода

Параметр | Описание
TASK_ID | Идентификатор задачи.

Возвращаемое значение

Метод возвращает true в случае успешного удаления связи, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $TASK_ID = 15;

    if($USER->IsAdmin())
    {
       CTaskTags::DeleteByTaskID($TASK_ID);
    }

}
?>


DeleteByUserID

Задачи>Классы>CTaskTags>DeleteByUserID (10.0.5)

CTaskTags::DeleteByUserID

Описание и параметры

bool
CTaskTags::DeleteByUserID(
 USER_ID
);

Метод удаляет теги пользователя с идентификатором USER_ID.

Параметры метода

Параметр | Описание
USER_ID | Идентификатор пользователя.

Возвращаемое значение

Метод возвращает true в случае успешного удаления связи, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $USER_ID = 4;

    if($USER->IsAdmin())
    {
       CTaskTags::DeleteByUserID($USER_ID);
    }

}
?>


GetList

Задачи>Классы>CTaskTags>GetList (10.0.5)

CTaskTags::GetList

Описание и параметры

CDBResult
CTaskTags::GetList(
 array arOrder = array(),
 array arFilter = array()
);

Возвращает список тегов задач по фильтру arFilter.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • TASK_ID - идентификатор задачи;
  • USER_ID - идентификатор пользователя.
  • NAME - тег.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;

Необязательный. По умолчанию фильтруется по убыванию идентификатора задачи..
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • TASK_ID - идентификатор задачи;
  • USER_ID - идентификатор пользователя.
  • NAME - тег.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

Примеры использования

<?

// Выбираем все теги для задачи с ID = 28
if (CModule::IncludeModule("tasks"))
{
    $res = CTaskTags::GetList(
       array(),
       Array("TASK_ID" => "28")
    );

    while ($arTag = $res->GetNext())
    {
        echo $arTag["NAME"]."<br>";
    }
}

?>


Устаревшее

ВНИМАНИЕ! В данном разделе содержится информация об устаревших методах. Их использование в работе крайне не рекомендуется.


Класс CTaskDependence

CTaskDependence - Класс для управления зависимостями между задачами.

Методы класса

Метод | Описание | С версии
Add | Метод добавляет к задаче предыдущую. |
Delete | Метод удаляет связь "задача" -> "предыдущая задача". |
GetList | Возвращает список связей "задача" -> "предыдущая задача". |


Add

...->Задачи>Классы>Устаревшее>CTaskDependence>Add (10.0.5)

CTaskDependence::Add

Описание и параметры

bool
CTaskDependence::Add(
 array arFields
);

Метод добавляет к задаче предыдущую.

Параметры метода

Параметр Описание
arFields Массив Array("поле"=>"значение", ...). Содержит поля:
  • TASK_ID - идентификатор задачи;
  • DEPENDS_ON_ID - идентификатор предыдущей задачи.

Возвращаемое значение

Метод возвращает true, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{
    $arFields = Array(
        "TASK_ID" => 4,
        "DEPENDS_ON_ID" => 15
    );

    $obTaskDependence = new CTaskDependence;
    $ID = $obTaskDependence->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}?>


Delete

...->Задачи>Классы>Устаревшее>CTaskDependence>Delete (10.0.5)

CTaskDependence::Delete

Описание и параметры

bool
CTaskDependence::Delete(
  TASK_ID,
  DEPENDS_ON_ID
);

Метод удаляет связь "задача" -> "предыдущая задача".

Параметры метода

Параметр | Описание
TASK_ID | Идентификатор задачи.
DEPENDS_ON_ID | Идентификатор предыдущей задачи

Возвращаемое значение

Метод возвращает true в случае успешного удаления связи, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $TASK_ID = 4;
    $DEPENDS_ON_ID = 15;

    if($USER->IsAdmin())
    {
       CTaskDependence::Delete($TASK_ID, $DEPENDS_ON_ID);
    }

}
?>


GetList

...->Задачи>Классы>Устаревшее>CTaskDependence>GetList (10.0.5)

CTaskDependence::GetList

Описание и параметры

CDBResult
CTaskDependence::GetList(
 array arOrder = array(),
 array arFilter = array()
);

Возвращает список связей "задача" -> "предыдущая задача" по фильтру arFilter, отсортированный в порядке arOrder.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • TASK - идентификатор задачи;
  • DEPENDS_ON_ID - идентификатор предыдущей задачи.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию фильтруется по убыванию идентификатора задачи.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • TASK_ID - идентификатор задачи;
  • DEPENDS_ON_ID - идентификатор предыдущей задачи.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

Примеры использования

<?

// Выбираем все предыдущие задачи для задачи с ID = 2
if (CModule::IncludeModule("tasks"))
{
    $res = CTaskDependence::GetList(
        Array("DEPENDS_ON_ID" => "ASC"),
        Array("TASK_ID" => "2")
    );

    while ($arDependence = $res->GetNext())
    {
        echo $arDependence["DEPENDS_ON_ID"]."<br>";
    }
}

?>


Класс CTaskMembers

CTaskMembers - Класс для работы с соисполнителями / наблюдателями задач.

Методы класса

Метод | Описание | С версии
Add | Метод добавляет связь "задача -> пользователь". |
DeleteByTaskID | Метод удаляет связь задачи со всеми пользователями. |
DeleteByUserID | Метод удаляет связь пользователя с идентификатором со всеми задачами. |
GetList | Возвращает список связей "задача -> пользователь". |


Add

...->Задачи>Классы>Устаревшее>CTaskMembers>Add (10.0.5)

CTaskMembers::Add

Описание и параметры

bool
CTaskMembers::Add(
 array arFields
);

Метод добавляет связь "задача -> пользователь".

Параметры метода

Параметр Описание
arFields Массив Array("поле"=>"значение", ...). Содержит поля:
  • TASK_ID - идентификатор задачи;
  • USER_ID - идентификатор пользователя;
  • TYPE - тип (A - соисполнитель, U - наблюдатель).

Возвращаемое значение

Метод возвращает true, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{
    $arFields = Array(
        "TASK_ID" => 4,
        "USER_ID" => 15,
        "TYPE" => "U",
    );

    $obTaskMembers = new CTaskMembers;
    $ID = $obTaskMembers->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}?>


DeleteByTaskID

...->Задачи>Классы>Устаревшее>CTaskMembers>DeleteByTaskID (10.0.5)

CTaskMembers::DeleteByTaskID

Описание и параметры

bool
CTaskMembers::DeleteByTaskID(

     TASK_ID,
    TYPE = null
);

Метод удаляет связь задачи с идентификатором TASK_ID со всеми пользователями.

Параметры метода

Параметр | Описание
TASK_ID | Идентификатор задачи.
TYPE | Тип пользователя (A - соисполнитель, U - наблюдатель). Необязательный. По умолчанию будут удалены связи с пользователями всех типов.

Возвращаемое значение

Метод возвращает true в случае успешного удаления связи, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $TASK_ID = 15;

    if($USER->IsAdmin())
    {
       CTaskMembers::DeleteByTaskID($TASK_ID, "U");
    }

}
?>


DeleteByUserID

...->Задачи>Классы>Устаревшее>CTaskMembers>DeleteByUserID (10.0.5)

CTaskMembers::DeleteByUserID

Описание и параметры

bool
CTaskMembers::DeleteByUserID(
    USER_ID
 );

Метод удаляет связь пользователя с идентификатором USER_ID со всеми задачами.

Параметры метода

Параметр | Описание
USER_ID | Идентификатор пользователя.

Возвращаемое значение

Метод возвращает true в случае успешного удаления связи, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $USER_ID = 4;

    if($USER->IsAdmin())
    {
       CTaskMembers::DeleteByUserID($USER_ID);
    }

}
?>


GetList

...->Задачи>Классы>Устаревшее>CTaskMembers>GetList (10.0.5)

CTaskMembers::GetList

Описание и параметры

CDBResult
CTaskMembers::GetList(
 array arFilter = array()
);

Возвращает список связей "задача -> пользователь" по фильтру arFilter.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр Описание
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • TASK_ID - идентификатор задачи;
  • USER_ID - идентификатор пользователя.
  • TYPE - тип связи.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

Примеры использования

<?

// Выбираем всех наблюдателей и соисполнителей для задачи с ID = 28
if (CModule::IncludeModule("tasks"))
{
    $res = CTaskMembers::GetList(
        Array("TASK_ID" => "28")
    );

    while ($arMember = $res->GetNext())
    {
        echo $arMember["USER_ID"]."<br>";
    }
}

?>


Класс CTaskTemplates

CTaskTemplates - Класс для работы с шаблонами задач (создание, редактирование, удаление, получения списка).

Методы класса

Метод | Описание | С версии
Add | Метод добавляет новый шаблон. |
Delete | Метод удаляет шаблон с требуемым идентификатором. |
GetByID | Возвращает поля шаблона по его идентификатору. |
GetList | Возвращает список шаблонов. |
Update | Метод изменяет параметры шаблона с требуемым идентификатором. |


Add

...->Задачи>Классы>Устаревшее>CTaskTemplates>Add (10.0.4)

CTaskTemplates::Add

Описание и параметры

int
CTaskTemplates::Add(
 array arFields,
 array arParams = array()
);

Метод добавляет новый шаблон.

Параметры метода

Параметр | Описание | С версии
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей шаблона. |
arParams | Массив дополнительных параметров. Необязательный. | 12.5.0

Возвращаемое значение

Метод возвращает идентификатор добавленного шаблона, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{
    $arFields = Array(
        "TITLE" => "Task title",
        "DESCRIPTION" => "Task description",
        "RESPONSIBLE_ID" => 2,
        "GROUP_ID" => 3
    );

    $obTemplate = new CTaskTemplates;
    $ID = $obTemplate->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}?>


Delete

...->Задачи>Классы>Устаревшее>CTaskTemplates>Delete (10.0.4)

CTaskTemplates::Delete

Описание и параметры

bool
CTaskTemplates::Delete(
  ID
);

Метод удаляет шаблон с идентификатором ID.

Параметры метода

Параметр | Описание
ID | Идентификатор удаляемого шаблона

Возвращаемое значение

Метод возвращает true в случае успешного удаления шаблона, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{

    $ID = 1;

    if($USER->IsAdmin())
    {
       CTaskTemplates::Delete($ID);
    }

}
?>


GetByID

...->Задачи>Классы>Устаревшее>CTaskTemplates>GetByID (10.0.4)

CTaskTemplates::GetByID

Описание и параметры

CDBResult
CTasks::GetByID(
 ID,
 array arParams = array()
);

Возвращает поля шаблона по его идентификатору.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор шаблона. |
arParams | Массив дополнительных параметров. Необязательный. | 12.5.8

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult

Примеры использования

<?

if (CModule::IncludeModule("tasks"))
{
    $rsTemplate = CTaskTemplates::GetByID(104);
    if ($arTemplate = $rsTemplate->GetNext())
    {
        echo $arTemplate["TITLE"];
    }
}
?>


GetList

...->Задачи>Классы>Устаревшее>CTaskTemplates>GetList (10.0.4)

CTaskTemplates::GetList

Описание и параметры

CDBResult
CTaskTemplates::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arNavParams = array(),
 array arParams = array(),
 array arSelect = array()
);

Возвращает список шаблонов по фильтру arFilter, отсортированный в порядке arOrder.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр | Описание | С версии
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • TITLE - название задачи;
  • CREATED_BY - постановщик;
  • RESPONSIBLE_ID - ответственный;
  • GROUP_ID - рабочая группа.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию фильтруется по убыванию идентификатора шаблона.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор шаблона;
  • TASK_ID - идентификатор задачи;
  • CREATED_BY - постановщик;
  • PRIORITY - приоритет;
  • RESPONSIBLE - ответственный;
  • TITLE - название задачи (можно искать по шаблону [%_]) ;
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
arNavParams | Массив параметров постраничной навигации. Необязательный. | 12.5.4
arParams | Массив дополнительных параметров. Принимает ключ USER_ID с указанием ID пользователя, от имени которого будут проверяться права при выборке шаблонов задач. Необязательный. | 12.5.8
arSelect | Массив выбираемых полей. Если указан пустой массив (по умолчанию) - то будут выбраны все поля. Необязательный. | 14.0.0

Возвращаемое значение

Возвращается объект CDBResult.

Примеры использования

<?

// Выбираем все шаблоны пользователя с ID = 2
if (CModule::IncludeModule("tasks"))
{
    $res = CTaskTemplates::GetList(
        Array("TITLE" => "ASC"),
        Array("RESPONSIBLE" => "2")
    );

    while ($arTemplate = $res->GetNext())
    {
        echo "Template name: ".$arTemplate["TITLE"]."<br>";
    }
}

?>


Update

...->Задачи>Классы>Устаревшее>CTaskTemplates>Update (10.0.4)

CTaskTemplates::Update

Описание и параметры

bool
CTaskTemplates::Update(
 ID,
 array arFields,
 array arParams = array()
);

Метод изменяет параметры шаблона с идентификатором ID.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор изменяемого шаблона. |
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей шаблона. Обязательные поля должны быть заполнены. |
arParams | Массив дополнительных параметров. Необязательный. | 12.5.0

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки метод вернет false. При возникновении ошибки в исключениях будет содержаться текст ошибки.

Примеры использования

<?
if (CModule::IncludeModule("tasks"))
{
    $arFields = Array(
        "TITLE" => "New task title",
        "DESCRIPTION" => "New description"
    );

    $ID = 1;

    $obTemplate = new CTaskTemplates;
    $success = $obTemplate->Update($ID, $arFields);

    if($success)
    {
        echo "Ok!";

    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}?>


Список событий

Событие | Вызывается | Метод | С версии
OnBeforeTaskAdd | Перед добавлением задачи. | CTasks::Add | 10.0.5
OnBeforeTaskDelete | Перед удалением задачи. | CTasks::Delete | 10.0.5
OnBeforeTaskUpdate | Перед обновлением задачи. | CTasks::Update | 10.0.5
OnTaskAdd | После добавления задачи. | CTasks::Add | 10.0.5
OnTaskDelete | После удаления задачи. | CTasks::Delete | 10.0.5
OnTaskUpdate | После обновления задачи. | CTasks::Update | 10.0.5
OnBeforeTaskNotificationSend | Перед отправкой уведомлений в IM. | CTaskNotifications::SendMessage | 12.5.0
OnBeforeTaskElapsedTimeAdd | Перед добавлением записи о затраченном времени в лог действий над задачей. | CTaskElapsedTime::Add | 14.0.16
OnBeforeTaskElapsedTimeUpdate | Перед изменением записи о затраченном времени в логе действий над задачей. | CTaskElapsedTime::Update | 14.0.16
OnBeforeTaskElapsedTimeDelete | Перед удалением записи о затраченном времени из лога действий над задачей. | CTaskElapsedTime::Delete | 14.0.16
OnTaskElapsedTimeAdd | После добавления в лог действий над задачей записи о затраченном времени. | CTaskElapsedTime::Add | 12.5.0
OnTaskElapsedTimeUpdate | После изменения в логе действий над задачей записи о затраченном времени. | CTaskElapsedTime::Update | 12.5.0
OnTaskElapsedTimeDelete | После удаления из лога действий над задачей записи о затраченном времени. | CTaskElapsedTime::Delete | 12.5.0
OnBaseAllowedActionsMapInit | При инициализации карты дозволенных действий над задачей. | CTaskItem::getBaseAllowedActions | 12.5.3
OnTaskReminderAdd | При добавлении напоминания к задаче. | CTaskReminders::Add | 14.5.10


Для разработчиков

Описание

Информация представленная в данном разделе содержит сведения о классах и функциях модуля Интернет-Магазин, необходимых для организации продажи товаров и услуг через Интернет, создания интернет-магазинов и эффективного управления электронными каналами продаж товаров и услуг.

Перед использованием модуля необходимо проверить, установлен ли он и подключить его при помощи конструкции:

<?
if (CModule::IncludeModule("sale"))
{
   //здесь можно использовать функции модуля
}
?>

Некоторые термины модуля

Базовая валюта для данного сайта - валюта, в которой осуществляются операции по продаже товаров на данном сайте. Устанавливается на странице глобальных настроек модуля Интернет-Магазин. Понятие базовой валюты в модуле Интернет-Магазин отличается от понятия базовой валюты в модуле Валюты.

Компоненты 2.0

Модуль включает в себя следующие Компоненты 2.0:
Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Аффилиаты
Отчет аффилиата | sale.affiliate.account | Отображает движение денег на счете аффилиата.
Технические инструкции аффилиата | sale.affiliate.instructions | Служит для для вывода технических инструкций для аффилиата.
Аффилиатские планы | sale.affiliate.plans | Выводит список всех аффилиатских планов, определённых в системе.
Регистрация аффилиата | sale.affiliate.register | Служит для создания страницы регистрации аффилиата.
Отчет по программе аффилиата | sale.affiliate.report | Отображает список проданных товаров от авторизованного аффилиата за установленный период времени.
Корзина
Корзина | sale.basket.basket | Отображает список товаров, отправленных пользователем в корзину.
Ссылка на корзину | sale.basket.basket.line | В зависимости от настроек отображает ссылки на корзину пользователя и на его персональный раздел либо только на корзину.
Малая корзина для почты | sale.basket.basket.small.mail | Отображает для почты список товаров, находящихся в корзине пользователя.
Персональный раздел
Вывод полей заказа | sale.business.value.mail | Выводит список полей заказа по коду заказа.
Персональный раздел пользователя | sale.personal.section | Организует персональный раздел пользователя.
Добавление средств на счет текущего пользователя | sale.account.pay | Позволяет добавить средства на внутренний счет текущего пользователя.
Счета текущего пользователя | sale.personal.account | Отображает состояние внутреннего счета текущего пользователя в доступной валюте.
Пластиковые карты пользователя (комплексный компонент) | sale.personal.cc | Используется для управления пластиковыми картами текущего пользователя.
Редактирование пластиковых карт | sale.personal.cc.detail | Служит для редактирования пластиковых карт пользователя.
Список пластиковых карт текущего пользователя | sale.personal.cc.list | Выводит список пластиковых карт текущего пользователя.
Заказы пользователя (комплексный компонент) | sale.personal.order | Отображает список заказов текущего пользователя с ссылками для перехода к просмотру детальной информации, отмене заказа, к оформлению повторного заказа. Можно управлять адресами переходов по этим страницам с помощью настроек ЧПУ.
Отмена заказа | sale.personal.order.cancel | Позволяет отменить заказ.
Подробная информация о заказе | sale.personal.order.detail | Выводит подробную информацию по заказу.
Подробная информация о заказе для почты | sale.personal.order.detail.mail | Выводит подробную информацию по заказу для почты.
Список заказов | sale.personal.order.list | Выводит фильтр и список заказов пользователя.
Профили пользователя (комплексный компонент) | sale.personal.profile | Служит для управления профилями текущего пользователя.
Редактирование профиля | sale.personal.profile.detail | Позволяет редактировать профиль пользователя.
Список профилей текущего пользователя | sale.personal.profile.list | Выводит список профилей текущего пользователя.
Подписки пользователя (комплексный компонент) | sale.personal.subscribe | Используется для управления подписками текущего пользователя.
Отмена подписки | sale.personal.subscribe.cancel | Позволяет отменить подписку.
Список подписок текущего пользователя | sale.personal.subscribe.list | Выводит список подписок текущего пользователя.
Процедура оформления заказа
Калькулятор доставки (AJAX) | sale.ajax.delivery.calculator | Выводит динамический калькулятор доставки.
Одношаговое оформление заказа | sale.order.ajax | Служит для оформления заказа на одной странице с использованием технологии AJAX.
Подключение платежной системы | sale.order.payment | Осуществляет подключение платежной системы.
Смена способа оплаты | sale.order.payment.change | Осуществляет смену платежной системы для оплаты заказа.
Подключение обработчика результата платежной системы | sale.order.payment.receive | Осуществляет подключение скрипта для получения результата от платежной системы.
Привязка к местоположению: выпадающие списки | sale.location.selector.steps | Выводит форму, в которой выбор местоположения осуществляется с помощью последовательного выбора вариантов из выпадающего списка.
Привязка к местоположению: строка поиска | sale.location.selector.search | Выводит форму, в которой выбор местоположения осуществляется с помощью ввода запроса в строку поиска.
Экспорт заказов
Экспорт заказов в "1С:Предприятие" | sale.export.1c | Служит для экспорта заказов в "1С:Предприятие" в формате CommerceML v2.
Информация о товарах
Выбор товара для получения подарка | sale.gift.main.products | Служит для отображения блока товаров, которые нужно купить для получения предложенного подарка.
Подарки к товарам в корзине | sale.gift.basket | Служит для отображения товаров, которые будут предложены в качестве подарков к текущей корзине покупателя.
Подарки к товарам конкретного раздела | sale.products.gift.section | Служит отображения подарков к товарам заданного раздела.
Подарки к выбранному товару | sale.products.gift | Служит для отображения подарков к конкретному товару.
Генерация купона на товар для почты | sale.discount.coupon.mail | Генерирует купон для правила корзины с соответствии с заданными параметрами
Персональные рекомендации для почты | sale.discount.coupon.mail | Выводит список рекомендованных товаров для почты
Самые продаваемые товары | sale.bestsellers | Выводит список самых продаваемых товаров
Сопутствующие заказу товары для почты | sale.bigdata.followup.mail | Выводит товары, сопутствующие ранее заказанным товарам
С этим товаром покупают | sale.recommended.products | Выводит товары, которые были куплены вместе с просматриваемым товаром, с учетом минимального количества покупок


Интернет-магазин в ядре D7

Список классов

Список классов модуля Интернет-магазин в ядре D7:

Класс, пространство имен | Описание
Archive | Класс для работы с архивацией заказов.
Basket | Класс для работы с корзиной. Наследник класса \Bitrix\Sale\BasketItemCollection.
BasketBase | Класс для работы с корзиной.
BasketItemCollection | Класс коллекции товарных позиций.
BusinessValue | Класс для работы с бизнес-смыслами.
Configuration | Класс для работы с настройками резервирования товаров, складского учета и настройками смены статусов интернет-магазина.
Delivery | Пространство имен, содержащее классы для работы со службами доставок.
Discount | Пространство имен, содержащее подпространства, классы и методы для расчета всех скидок (каталога и магазина) и округления цен для корзины или заказа.
DiscountCouponsManager | Класс для работы с купонами при расчетах.
Fuser | Класс для получения идентификатора покупателя.
Internals | Подпространство, содержащее классы для работы с таблицами модуля Интернет-магазин.
Location | Подпространство имен, содержащее классы для работы с местоположениями.
Notify | Класс для работы с уведомлениями.
Order | Класс для работы с заказами.
OrderBase | Базовый класс для работы с заказами.
OrderDiscountManager | Класс для работы с правилами корзины при расчетах.
Payment | Класс оплаты.
PaymentCollection | Класс коллекции оплат.
PropertyValueCollectionBase | Базовый класс коллекции свойств заказа.
ProviderBase | Базовый класс для работы с провайдерами магазина.
Result | Класс для работы с результатами.
SalesZone | Класс для задания зоны обслуживания магазином.
Services | Базовая общая часть служб доставок и платежных систем.
Shipment | Класс отгрузок.
ShipmentCollection | Класс коллекции отгрузок.
ShipmentItem | Класс элемента отгрузки.
ShipmentItemStore | Класс штрих-кодов элементов отгрузки.
StatusBase | Базовый класс статусов.
Tax | Класс налогов.
TradingPlatform | Класс для работы с торговыми платформами.

События

Список событий модуля Интернет-магазин в ядре D7:

  • События компонента оформления заказа
  • События на изменение значения поля
  • События на завершение пересчета
  • События на сохранение заказа
  • События после сохранения сущности
  • Сохранение заказа: особые события
  • События сохранения корзины
  • События обновления корзины
  • События отгрузки
  • События платежных систем
  • События при непосредственном удалении сущностей из базы
  • События работы с кассами и чеками
  • События служб доставок

Приёмы работы с методами интернет-магазина

Примеры работы с методами следующих сущностей модуля Интернет-магазин в ядре D7:

  • Заказы
  • Свойства заказа
  • Значения свойств заказа
  • Корзина
  • Свойства корзины
  • Оплаты
  • Отгрузки
  • Состав отгрузки

Дополнительно

  • Работа через реестр [image].


Интеграция с платежными системами (до версии 16.0.2)

Описание

Примечание: о работе с платежными системами в версиях старше 16.0.2 читайте в уроках курса Разработчик Bitrix Framework:
  • Кастомизация платежных систем
  • Кастомизация шаблона платежной системы

Под платежными системами в этой статье понимаются любые способы оплаты заказа: как платежные системы, принимающие платежи on-line, так и банковские переводы, и т.п.

Разные платежные системы предлагают различные интерфейсы для интеграции (взаимодействия). Зачастую эти интерфейсы отличаются кардинально: например, интеграция с системой PayFlow Pro требует выполнения запросов к платежной системе при помощи устанавливаемого на сервер SDK, а интеграция со сбербанком требует распечатки квитанции сбербанка. Поэтому интеграция с платежными системами осуществляется посредством php-скриптов, называемых обработчиками платежных систем.

Обработчики платежных систем (далее просто обработчики) задаются индивидуально для каждого типа плательщика каждой платежной системы в форме управления платежными системами (См. Пользовательскую документацию, раздел "Создание и редактирование платежной системы"). При оформлении заказа вызывается один из трех обработчиков выбранной покупателем платежной системы для выбранного типа плательщика. Обработчики платежных систем определяются по именам файлов:

  • payment.php - если обработчик вызывается в после фактического сохранения всех параметров заказа в базу данных. Применяется в стандартном компоненте процедуры заказа;
  • pre_payment.php - если требуется вызвать обработчик в внутри процедуры заказа (для тех обработчиков, которые могут сразу произвести оплату заказа и вернуть результат). Применяется в двушаговом компоненте процедуры заказа;
  • action.php - применяется для снятия с карты заданной суммы денег (только для обработчиков, которые могут сразу произвести оплату заказа и вернуть результат). Например, при продлении подписки.

Алгоритм работы (содержимое) обработчика полностью определяется интерфейсами, которые предоставляет соответствующая платежная система.

Типичные обработчики

Типичным обработчиком для платежной системы, которая не осуществляет on-line платежи, является вывод на экран счета (или квитанции), готового к печати на принтере. Примерами таких обработчиков являются счет или квитанция перевода через сбербанк.

Такой обработчик обычно представляет собой файл, который выводит необходимое для данного документа форматирование и вставляет в соответствующих местах параметры заказа.

Пример такого обработчика можно посмотреть в шаблонах платежных систем сбербанка (/bitrix/modules/sale/payment/sberbank.php), банковского перевода (/bitrix/modules/sale/payment/bill.php).

Типичным обработчиком для платежной системы, которая осуществляет платежи on-line, является вывод на экран HTML-формы, которая отправляет данные платежной системе. Примерами таких платежных систем являются Assist, AuthorizeNet, Payflow, WorldPay.

Вид, набор полей и прочие параметры HTML-формы полностью зависят от платежной системы. Конкретное описание формы, которая требуется данной платежной системе, следует искать в документации по этой платежной системе.

Пример такого обработчика можно посмотреть в шаблонах платежных систем Assist (/bitrix/modules/sale/payment/assist.php), AuthorizeNet (/bitrix/modules/sale/payment/authorizenet.php), Paypal (/bitrix/modules/sale/payment/paypal.php) и т.д.

Параметры, которые необходимы платежным системам, можно получать из параметров заказа, которые доступны в обработчике в массиве $arOrder, а так же из значений свойств заказа, которые можно получить следующим образом:

// В результате выполнения следующего кода мы получим ассоциативный массив,
// в котором символьным кодам свойств заказа (или ID свойств, если символьные коды не установлены)
// будут поставлены значения свойств, которые были введены при оформлении этого заказа
// $ORDER_ID - код заказа - предустановленная переменная для обработчика
$arCurOrderProps = array();
$db_res = CSaleOrderPropsValue::GetList(($b=""), ($o=""), array("ORDER_ID"=>$ORDER_ID));
while ($ar_res = $db_res->Fetch())
   $arCurOrderProps[(strlen($ar_res["CODE"])>0) ? $ar_res["CODE"] : $ar_res["ID"]] = $ar_res["VALUE"];

// Теперь можно сформировать форму, которая нужна данной платежной системе,
// определив соответствие между свойствами заказа в базе и параметрами,
// необходимыми платежной системе
if (isset($arCurOrderProps["ADDRESS"])):
   ?><input type="hidden" name="address" value="<?= htmlspecialchars($arCurOrderProps["ADDRESS"]) ?>"><?
endif;
if (isset($arCurOrderProps["ZIP"])):
   ?><input type="hidden" name="postcode" value="<?= htmlspecialchars($arCurOrderProps["ZIP"]) ?>"><?
endif;
// Мы записали значение, которое покупатель ввел для свойства с кодом ADDRESS, в то поле, в котором
// платежная система принимает адрес покупателя. Мы записали значение, которое покупатель ввел для
// свойства с кодом ZIP, в то поле, в котором платежная система принимает почтовый индекс.

Как правило платежные системы с on-line платежами предоставляют один из двух (иногда оба) типов интерфейса для интеграции: 1. форма с параметрами заказа отправляется на сайт платежной системы, где покупатель заполняет дополнительные формы (например, вводит номер пластиковой карты) и производит фактическую оплату, 2. все параметры заполняются на сайте и формируется запрос к платежной системе, в ответе на который она сообщает результат оплаты.

Первый тип интерфейса является наиболее простым для интеграции. В обработчике достаточно создать HTML-форму, которая будет отправлять данные на сайт платежной системы, и добавить в форму необходимые платежной системе поля. Конкретные параметры необходимо смотреть в системе помощи по конкретной платежной системе. Пример такого обработчика можно посмотреть в шаблоне платежной системы Assist (/bitrix/modules/sale/payment/assist.php).

Второй тип является более сложным для интеграции, но зато он является более гибким в плане возможностей. Пример такого обработчика можно посмотреть в шаблоне платежной системы AuthorizeNet (/bitrix/modules/sale/payment/authorizenet.php). Общая структура кода обработчика в этом случае может быть примерно такой:

// Если готовы запросить платежную систему
if ($_REQUEST["pay_this_order"]=="Y")
{
   // Соберем в $strPostQueryString строку параметров запроса
   $strPostQueryString = "x_login=".urlencode("login");

   $arCurOrderProps = array();
   $db_res = CSaleOrderPropsValue::GetList(($b=""), ($o=""), array("ORDER_ID"=>$ORDER_ID));
   while ($ar_res = $db_res->Fetch())
      $arCurOrderProps[(strlen($ar_res["CODE"])>0) ? $ar_res["CODE"] : $ar_res["ID"]] = $ar_res["VALUE"];

   if (isset($arCurOrderProps["ADDRESS"]))
      $strPostQueryString .= "&x_address=".urlencode($arCurOrderProps["ADDRESS"]);

    * * *

   if (isset($arCurOrderProps["ZIP"]))
      $strPostQueryString .= "&x_ship_to_zip=".urlencode($arCurOrderProps["ZIP"]);

   // Запросим платежную систему
   $strResult = QueryGetData("some_url.net", 443, "/some_path/file.dll", $strPostQueryString, $errno, $errstr, "POST", "ssl://");

   // В $strResult вернулся ответ платежной системы. Его вид зависит от платежной системы.
   // Можно обработать его и сохранить в соответствующих полях заказа.

    * * *

}
else
{
   ?>
   <form action="" method="post">
      Credit card number: <input type="text" name="ccard_num" size="30"><br>
      * * * <br>
      CVV2: <input type="text" name="ccard_code" size="5"><br>
      <input type="hidden" name="CurrentStep" value="<?= $CurrentStep ?>">
      <input type="hidden" name="ORDER_ID" value="<?= $ORDER_ID ?>">
      <input type="hidden" name="pay_this_order" value="Y">
      <input type="submit" value="Proceed">
   </form>
   <?
}

В последнем случае (интерфейс типа 2) модуль Интернет-магазина сразу получает результат работы платежной системы, пригодный для дальнейшей обработки заказа.

В случае интерфейса типа 1 может оказаться удобным автоматически забирать результаты работы платежной системы (оплачен ли реально заказ). Конечно это возможно только в том случае, если платежная система предоставляет соответствующий интерфейс. Узнать подробности об этом интерфейсе следует в документации по соответствующей платежной системе или в службе техподдержки этой системы. Если платежная система предоставляет интерфейс для получения статуса оплаты заказа, то можно реализовать скрипт автоматического получения этих статусов. Указанный скрипт вызывается из формы управления заказами (административной части сайта) (Смотри Пользовательскую документацию, раздел "Заказы")для каждого из заказов, оплаченных с помощью данной платежной системы. Создать новый скрипт автоматического запроса статуса оплаты можно следующим образом:

  1. Необходимо создать в публичной части сайта (например, в папке /bitrix/php_interface/include/payment/) файл запроса статуса. За основу можно взять один из предустановленных скриптов из папки /bitrix/modules/sale/payment/ (например, assist_res.php).
  2. Необходимо изменить скрипт таким образом, чтобы он соответствовал интерфейсу платежной системы.
  3. Необходимо в форме редактирования параметров соответствующей платежной системы (в административной части сайта) (См. Пользовательскую документацию, раздел "Создание и редактирование платежной системы") указать, для каких обработчиков платежных систем действует этот скрипт автоматического получения статуса заказа.

Часто платежная система не предоставляет интерфейса для получения статуса оплаты заказа, но отправляет письма с указанием результата оплаты. В этом случае можно автоматически устанавливать статус оплаты в заказе с помощью модуля Почты (mail). Для этого необходимо создать соответствующий обработчик почты и настроить его работу с модулем. Подробности есть в системе помощи по модулю Почты (mail).

В случае реализации собственного компонента оформления заказа структура и алгоритм работы обработчика платежной системы могут быть совершенно произвольными. Однако, есть одна особенность. В отличие от "обычных" языковых файлов в скриптах системы, языковой файл для .description.php подключается с помощью include(). А так как .description.php подключается с использованием LocalGetPSActionParams(), то необходимо объявление global $MESS;


Создание собственных автоматизированных обработчиков служб доставки

Важно! Приведенная ниже информация устарела, начиная с версии 15.5.0 модуля Интернет-магазин. Документация по созданию собственных служб доставки через новое API представлена в курсе Разработчик Bitrix Framework [image].

Создание обработчиков устаревшим способом, работоспособность не гарантируется. Описание оставлено только в ознакомительных целях, чтобы проще можно было перевести службы доставки на новый АПИ.

В этом разделе

  • Структура обработчика
  • Описание обработчика
  • Параметры обработчика
  • Обработка параметров
  • Проверка совместимости
  • Обработчик
    •
  • Интеграция обработчика
  • Пример
  • Post factum
    •

    Структура обработчика

    Автоматизированные обработчики служб доставки позволяют программным образом реализовать произвольную логику расчёта стоимости доставки на основе параметров заказа и собственных настроек. Алгоритмы расчёта могут быть произвольными - фиксированная стоимость, запросы к удаленным web-сервисам, расчёт на основе собственных таблиц данных и т.д.

    Обработчик представляет собой класс или набор функций следующей структуры:

    Метод | Описание
Описание обработчика | Функция, возвращающая описание обработчика, названия методов, список профилей обработчика и пр.
Настройки обработчика | Функция, возвращающая массив настроек обработчика
Обработка настроек | Набор функций, отвечающий за подготовку настроек к занесению в БД и обратное преобразование.
Проверка совместимости | Метод, осуществляющий проверку совместимости профилей данного обработчика с заказом.
Функция расчёта | Метод, осуществляющий расчёт стоимости доставки на основе настроек обработчика и параметров заказа.

    Поскольку работать с набором отдельных функций неудобно, рекомендуется объединить их в класс (пространство имен). Исходя из этой рекомендации будет идти дальнейшее описание, а также, реализован приводимый пример. В примере обработчик "Курьерская доставки" реализован в виде класса CDeliveryMySimple.

    Описание обработчика

    Описание обработчика представляет собой метод, возвращающий ассоциативный массив следующей структуры:

    Параметр | Описание
SID | Уникальный строковой идентификатор обработчика.
NAME | Название обработчика.
DESCRIPTION | Текстовое описание обработчика
DESCRIPTION_INNER | Внутреннее описание обработчика, отображаемое при конфигурации обработчика в Панели Управления.
BASE_CURRENCY | Идентификатор базовой валюты обработчика
HANDLER | Путь к файлу обработчика. Нужен для корректного автоматического копирования обработчика (ещё не реализовано). В подавляющем большинстве случаев достаточно значения __FILE__
GETCONFIG | Название метода, возвращающего массив настроек валидатора. В случае реализации обработчика в виде класса, значение представляет собой массив ("имя_класса", "имя_метода").
DBSETSETINGS | Название метода, отвечающего за проверку настроек обработчика и преобразование массива настроек в строку для сохранения. В случае реализации обработчика в виде класса, значение представляет собой массив ("имя_класса", "имя_метода"). В случае отсутствия этого метода массив настроек будет сохранен в базу в сериализованном виде.
DBGETSETTINGS | Название метода, отвечающего за обратное преобразование строки настроек обработчика в массив. В случае реализации обработчика в виде класса, значение представляет собой массив ("имя_класса", "имя_метода").
COMPABILITY | Название метода, отвечающего за дополнительную проверку совместимости профилей обработки с параметрами заказа. Если метод отсутствует, дополнительная проверка не будет проводиться. В случае реализации обработчика в виде класса, значение представляет собой массив ("имя_класса", "имя_метода").
CALCULATOR | Название метода, осуществляющего расчёт стоимости доставки. В случае реализации обработчика в виде класса, значение представляет собой массив ("имя_класса", "имя_метода").
PROFILES | Массив профилей обработки. Должен содержать хотя бы один профиль. Формат описания см. ниже.

    Описание профилей представляет собой массив следующего формата:

"строковой_идентификато_профиля" => array(
  "TITLE" => "название_профиля",
  "DESCRIPTION" => "описание_профиля",
  // веса указываются в граммах
  "RESTRICTIONS_WEIGHT" => array(минимальный_вес, максимальный_вес),
  // суммы указываются в базовой валюте обработчика
  "RESTRICTIONS_SUM" => array(минимальная_сумма_заказа, максимальная_сумма_заказа)
);

    Если массив RESTRICTIONS_WEIGHT или RESTRICTIONS_SUM содержит один элемент, то он считается минимальным значением. Если никаких ограничений не требуется, нужно указать array(0).

    Пример:

function Init()
{
  return array(
    /* Basic description */
    "SID" => "simple",
    "NAME" => "Доставка курьером",
    "DESCRIPTION" => "",
    "DESCRIPTION_INNER" =>
"Простой обработчик курьерской доставки. Для функционирования необходимо "
."наличие хотя бы одной группы местоположений. При настройке обработчика указывается "
."фиксированная стоимость доставки для каждой группы местоположений. Для того, чтобы "
."группа не участвовала в обработке, оставьте пустым поле стоимости для этой группы."
."<br />"
."<a href=\"/bitrix/admin/sale_location_group_admin.php?lang=ru\" target=\"_blank\">"
."Редактировать группы местоположений"
."</a>.",
    "BASE_CURRENCY" => COption::GetOptionString("sale", "default_currency", "RUB"),

    "HANDLER" => __FILE__,

    /* Handler methods */
    "DBGETSETTINGS" => array("CDeliveryMySimple", "GetSettings"),
    "DBSETSETTINGS" => array("CDeliveryMySimple", "SetSettings"),
    "GETCONFIG" => array("CDeliveryMySimple", "GetConfig"),

    "COMPABILITY" => array("CDeliveryMySimple", "Compability"),
    "CALCULATOR" => array("CDeliveryMySimple", "Calculate"),

    /* List of delivery profiles */
    "PROFILES" => array(
      "simple" => array(
        "TITLE" => "доставка",
        "DESCRIPTION" => "Срок доставки до 3 дней",

        "RESTRICTIONS_WEIGHT" => array(0),
        "RESTRICTIONS_SUM" => array(0),
      ),
    )
  );
}
    Параметры валидатора

    Метод, заданный элементом GETCONFIG, должен возвращать массив элементов вида:

    array(
  "CONFIG_GROUPS" => array(
    "идентификатор_группы1" => "название_группы1",
    "идентификатор_группы2" => "название_группы2",
    /* ...................... */
  ),
  "CONFIG" => array(
    "идентфикатор_параметра1" => array(
      "TITLE" = > "название_параметра1",
      "TYPE" => "тип_параметра1",
      "DEFAULT" => "значение_по_умолчанию_параметра1",
      "GROUP" => "идентфикатор_группы_параметра1",
      "VALUES" => array(
        "значение1_параметра1" => "наименование_значения1_параметра1",
        "значение2_параметра1" => "наименование_значения2_параметра1",
        /* ....................... */
      )
    ),

    /* ........................ */
  )
)

    Группы параметров, описываемые в элементе массива с ключом "CONFIG_GROUPS" отображаются в виде отдельных вкладок в форме редактирования параметров обработчика, содержащих параметры, приписанные к этой группе. Элемент массива с ключом "CONFIG" задает список параметров. Тип параметра может принимать одно из следующих значений:

    • STRING - поле для ввода текста
    • PASSWORD - поле для ввода пароля
    • CHECKBOX - элемент типа "флажок" со значением 'Y'
    • RADIO - набор вариантов в виде радио-кнопок
    • DROPDOWN - набор вариантов в виде выпадающего списка
    • MULTISELECT - набор вариантов в виде списка со множественным выбором
    • RADIO - набор вариантов в виде радио-кнопок

    Для типов параметра подразумевающий выбор из нескольких вариантов значений (DROPDOWN, MULTISELECT и RADIO) список значений задается элементом описательного массива с ключом "VALUES". Для остальных типов параметров этот элемент игнорируется.

    Пример:

function GetConfig()
{
  $arConfig = array(
    "CONFIG_GROUPS" => array(
      "all" => "Стоимость доставки",
    ),

    "CONFIG" => array(),
  );

  // параметрами обработчика в данном случае являются значения стоимости доставки в различные группы местоположений.
  // для этого сформируем список параметров на основе списка групп
  $dbLocationGroups = CSaleLocationGroup::GetList();
  while ($arLocationGroup = $dbLocationGroups->Fetch())
  {
    $arConfig["CONFIG"]["price_".$arLocationGroup["ID"]] = array(
      "TYPE" => "STRING",
      "DEFAULT" => "",
      "TITLE" =>
        "Стоимость доставки в группу "\" "
        .$arLocationGroup["NAME"]."\" "
        .(".COption::GetOptionString("sale", "default_currency", "RUB").')',
      "GROUP" => "all",
    );
  }

  return $arConfig;
}
    Обработка параметров

    Обработка параметров обработчика требует двух методов, задаваемых в описании параметрами DBSETSETTINGS и DBGETSETTINGS. Первый из них получает на вход массив значений параметров вида "идентфикатор_параметра" => "значение_параметра" и должен вернуть их строковое представление. Второй - совершить обратное преобразование. Оба метода могут также совершать произвольные манипуляции со значениями параметров.

    Пример:

function SetSettings($arSettings)
{
  // Проверим список значений стоимости. Пустые значения удалим из списка.
  foreach ($arSettings as $key => $value)
  {
    if (strlen($value) > 0)
      $arSettings[$key] = doubleval($value);
    else
      unset($arSettings[$key]);
  }

  // вернем значения в виде сериализованного массива.
  // в случае более простого списка настроек можно применить более простые методы сериализации.
  return serialize($arSettings);
}

function GetSettings($strSettings)
{
  // вернем десериализованный массив настроек
  return unserialize($strSettings);
}
    Проверка совместимости

    Проверка совместимости профилей обработчика с заказом осуществляется методом, задаваемым в описании параметром "COMPABILITY". Этот метод принимает на вход 2 параметра - описательный массив заказа и массив настроек обработчика. В качестве ответа метода ожидается массив, содержащий идентификаторы подходящих для данного заказа профилей доставки. Проверка, задаваемая значениями "RESTRICTIONS_WEIGHT" и "RESTRICTIONS_SUM" в настройках профиля, производится вне обработчика и здесь не требуется. Формат принимаемых на вход данных следующий:

    Первый параметр - информация о заказе - представляет собой массив со следующими ключами:

    Ключ | Описание
WEIGHT | Суммарный вес заказа.
PRICE | Суммарная стоимость заказа.
LOCATION_FROM | ID местоположения магазина, настраиваемого в настройках модуля "Интернет-магазин".
LOCATION_TO | ID местоположения, указываемого клиентом при оформлении заказа.

    Второй параметр представляет собой значение массива, заданного элементом с ключом "CONFIG" в списке настроек обработчика, к каждому элементу которого добавлено значение параметра с ключом "VALUE".

    В рассматриваемом нами примере единственная условие совместимости - это наличие в настройках обработчика значения стоимости доставки хотя бы для одной из групп местоположений, в которые входит местоположение, передаваемое в заказе.

    Пример:

// введем служебный метод, определяющий группу местоположения и возвращающий стоимость для этой группы.
function __GetLocationPrice($LOCATION_ID, $arConfig)
{
  // получим список групп для переданного местоположения
  $dbLocationGroups = CSaleLocationGroup::GetLocationList(array("LOCATION_ID" => $LOCATION_ID));

  while ($arLocationGroup = $dbLocationGroups->Fetch())
  {
    if (
      array_key_exists('price_'.$arLocationGroup["LOCATION_GROUP_ID"], $arConfig)
      &&
      strlen($arConfig['price_'.$arLocationGroup["LOCATION_GROUP_ID"]]["VALUE"] > 0)
    )
    {
      // если есть непустая запись в массиве настроек для данной группы, вернем ее значение
      return $arConfig['price_'.$arLocationGroup["LOCATION_GROUP_ID"]]["VALUE"];
    }
  }

  // если не найдено подходящих записей, вернем false
  return false;
}

// метод проверки совместимости в данном случае практически аналогичен рассчету стоимости
function Compability($arOrder, $arConfig)
{
  // проверим наличие стоимости доставки
  $price = CDeliveryMySimple::__GetLocationPrice($arOrder["LOCATION_TO"], $arConfig);

  if ($price === false)
    return array(); // если стоимость не найдено, вернем пустой массив - не подходит ни один профиль
  else
    return array('simple'); // в противном случае вернем массив, содержащий идентфиикатор единственного профиля доставки
}
    Обработчик

    Основной метод расчёта стоимости доставки получает на вход следующие параметры:

    • идентификатор профиля доставки;
    • массив настроек обработчика доставки;
    • описательный массив заказа;
    • текущий шаг расчёта;
    • временные данные, переданные с прошлого шага расчёта.

    На выход обработчик должен дать стоимость доставки в валюте, задаваемой в параметрах, либо массив следующей структуры:

    Ключ | Описание
    RESULT Идентификатор ответа. Возможные значения:
    • "OK" - стоимость доставки успешно рассчитана;
    • "ERROR" - в процессе расчёта произошла ошибка;
    • "NEXT_STEP" - необходимо перейти на следующий шаг для продолжения расчёта.
    VALUE | Значение стоимости доставки в валюте, задаваемой в параметрах. (RESULT = 'OK')
    TRANSIT | Длительность доставки в днях (RESULT = 'OK'). Если отсутствует, то длительность не выводится.
    periodFrom | Строки доставки автоматизированных служб доставок. От указанного количества дней. Необходим для передачи сроков доставки в Яндекс.маркет. Используется при разработке собственных служб доставок.
    periodTo | Строки доставки автоматизированных служб доставок. До указанного количества дней. Необходим для передачи сроков доставки в Яндекс.маркет. Используется при разработке собственных служб доставок.
    TEXT | Текст ошибки или текст, сопровождающий переход на следующий шаг (RESULT = {'ERROR'|'NEXT_STEP'}).
    TEMP | Строка, содержащая промежуточные данные, передаваемые следующему шагу (RESULT = 'NEXT_STEP').

    В описываемом нами примере многошаговый процесс не подразумевается, потому, расчёт осуществляется просто.

    Пример:

function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = false)
{
  // служебный метод рассчета определён выше, нам достаточно переадресовать на выход возвращаемое им значение.
  return array(
    "RESULT" => "OK",
    "VALUE" => CDeliveryMySimple::__GetLocationPrice($arOrder["LOCATION_TO"], $arConfig)
  );
}

    Интеграция обработчика

    Путь к автоматически подключаемым файлам обработчиков устанавливается в настройках модуля "Интернет-магазин". Путь по умолчанию - /bitrix/php_interface/include/sale_delivery/ Такие файлы должны иметь префикс delivery_, в противном случае, они будут проигнорированы. Если система обнаружит файл, имеющее то же название, что и системный, то он будет подключаться вместо системного. Подключение автоматизированной доставки в файле производится установкой описательного метода в качестве обработчика события onSaleDeliveryHandlersBuildList.

    Пример

    Подытожив все вышесказанное, сформируем обработчик простой доставки. Класс обработчика расположим в файле /bitrix/php_interface/include/sale_delivery/delivery_mysimple.php

<?
// Листинг файла /bitrix/php_interface/include/sale_delivery/delivery_mysimple.php

CModule::IncludeModule("sale");

class CDeliveryMySimple
{
  function Init()
  {
    return array(
      /* Основное описание */
      "SID" => "simple",
      "NAME" => "Доставка курьером",
      "DESCRIPTION" => "",
      "DESCRIPTION_INNER" =>
"Простой обработчик курьерской доставки. Для функционирования необходимо "
."наличие хотя бы одной группы местоположений. При настройке обработчика указывается "
."фиксированная стоимость доставки для каждой группы местоположений. Для того, чтобы "
."группа не участвовала в обработке, оставьте пустым поле стоимости для этой группы."
."<br />"
."<a href=\"/bitrix/admin/sale_location_group_admin.php?lang=ru\" target=\"_blank\">"
."Редактировать группы местоположений"
."</a>.",
      "BASE_CURRENCY" => COption::GetOptionString("sale", "default_currency", "RUB"),

      "HANDLER" => __FILE__,

      /* Методы обработчика */
      "DBGETSETTINGS" => array("CDeliveryMySimple", "GetSettings"),
      "DBSETSETTINGS" => array("CDeliveryMySimple", "SetSettings"),
      "GETCONFIG" => array("CDeliveryMySimple", "GetConfig"),

      "COMPABILITY" => array("CDeliveryMySimple", "Compability"),
      "CALCULATOR" => array("CDeliveryMySimple", "Calculate"),

      /* Список профилей доставки */
      "PROFILES" => array(
        "simple" => array(
          "TITLE" => "доставка",
          "DESCRIPTION" => "Срок доставки до 3 дней",

          "RESTRICTIONS_WEIGHT" => array(0), // без ограничений
          "RESTRICTIONS_SUM" => array(0), // без ограничений
        ),
      )
    );
  }

  // настройки обработчика
  function GetConfig()
  {
    $arConfig = array(
      "CONFIG_GROUPS" => array(
        "all" => "Стоимость доставки",
      ),

      "CONFIG" => array(),
    );

    // настройками обработчика в данном случае являются значения стоимости доставки в различные группы местоположений.
    // для этого сформируем список настроек на основе списка групп

    $dbLocationGroups = CSaleLocationGroup::GetList();
    while ($arLocationGroup = $dbLocationGroups->Fetch())
    {
      $arConfig["CONFIG"]["price_".$arLocationGroup["ID"]] = array(
        "TYPE" => "STRING",
        "DEFAULT" => "",
        "TITLE" =>
          "Стоимость доставки в группу \""
          .$arLocationGroup["NAME"]."\" "
          ."(".COption::GetOptionString("sale", "default_currency", "RUB").')',
        "GROUP" => "all",
      );
    }

    return $arConfig;
  }

  // подготовка настроек для занесения в базу данных
  function SetSettings($arSettings)
  {
    // Проверим список значений стоимости. Пустые значения удалим из списка.
    foreach ($arSettings as $key => $value)
    {
      if (strlen($value) > 0)
        $arSettings[$key] = doubleval($value);
      else
        unset($arSettings[$key]);
    }

    // вернем значения в виде сериализованного массива.
    // в случае более простого списка настроек можно применить более простые методы сериализации.
    return serialize($arSettings);
  }

  // подготовка настроек, полученных из базы данных
  function GetSettings($strSettings)
  {
    // вернем десериализованный массив настроек
    return unserialize($strSettings);
  }

  // введем служебный метод, определяющий группу местоположения и возвращающий стоимость для этой группы.
  function __GetLocationPrice($LOCATION_ID, $arConfig)
  {
    // получим список групп для переданного местоположения
    $dbLocationGroups = CSaleLocationGroup::GetLocationList(array("LOCATION_ID" => $LOCATION_ID));

    while ($arLocationGroup = $dbLocationGroups->Fetch())
    {
      if (
        array_key_exists('price_'.$arLocationGroup["LOCATION_GROUP_ID"], $arConfig)
        &&
        strlen($arConfig['price_'.$arLocationGroup["LOCATION_GROUP_ID"]]["VALUE"] > 0)
      )
      {
      // если есть непустая запись в массиве настроек для данной группы, вернем ее значение
        return $arConfig['price_'.$arLocationGroup["LOCATION_GROUP_ID"]]["VALUE"];
      }
    }

    // если не найдено подходящих записей, вернем false
    return false;
  }

  // метод проверки совместимости в данном случае практически аналогичен рассчету стоимости
  function Compability($arOrder, $arConfig)
  {
    // проверим наличие стоимости доставки
    $price = CDeliveryMySimple::__GetLocationPrice($arOrder["LOCATION_TO"], $arConfig);

    if ($price === false)
      return array(); // если стоимость не найдено, вернем пустой массив - не подходит ни один профиль
    else
      return array('simple'); // в противном случае вернем массив, содержащий идентфиикатор единственного профиля доставки
  }

  // собственно, рассчет стоимости
  function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = false)
  {
    // служебный метод рассчета определён выше, нам достаточно переадресовать на выход возвращаемое им значение.
    return array(
      "RESULT" => "OK",
      "VALUE" => CDeliveryMySimple::__GetLocationPrice($arOrder["LOCATION_TO"], $arConfig)
    );
  }
}

// установим метод CDeliveryMySimple::Init в качестве обработчика события
AddEventHandler("sale", "onSaleDeliveryHandlersBuildList", array('CDeliveryMySimple', 'Init'));
?>

    Post factum

    Несколько советов в завершение:

    • Если Ваш обработчик использует какие-либо ресурсоемкие вычисления, обращения к базе данных, запросы к удаленным серверам и т.д., то категорически рекомендуется использовать тот или иной вариант кеширования результата, реализованный таким образом, чтобы запоминались результаты хотя бы для заказа с данными параметрами. Это необходимо из-за того, что в процессе оформления и обработки заказа запрос к обработчику на расчёт стоимости заказа может происходить несколько раз. В поставляемых обработчиках используется механизм управляемого кеширования, настроенный с учётом специфики алгоритма вычисления стоимости конкретной службой доставки.
    • Для кастомизации системного обработчика достаточно скопировать его файл (вместе с сопутствующими файлами, лежащими обычно в каталоге с тем же названием) в каталог /bitrix/php_interface/include/sale_deivery/ с сохранением имени. В этом случае он будет подключаться вместо системного.

    См. также

  • AddEventHandler
    •


Общее описание файлов XML

Данные для обмена хранятся в следующих файлах:

  • import.xml - в файле хранится информация о разделах, товарах, группах [ds]маркировки[/ds][di] В РФ в соответствии с Федеральным законом от 31 декабря 2017 г. № 487-ФЗ товары подлежат обязательной маркировке, согласно утвержденному перечню.

    Подробнее [image]...[/di] товаров, размерах, типах цен, складах, свойствах товаров и единицах измерения;
  • offers.xml - в файле хранится информация о предложениях товаров и их свойствах;
  • prices.xml - в файле хранится информация о ценах предложений;
  • rests.xml - в файле хранится информация о остатках предложений;
  • documents.xml - в файле хранится информация о документах;
  • contragents.xml - в файле хранится информация о контрагентах;
  • references.xml - в файле хранится информация о пользовательских справочниках.

В конце названия каждого файла (перед точкой расширения) рекомендуется указывать случайное значение для того, чтобы одни и те же файлы были уникальными. Это повышает безопасность при передаче данных.

При использовании пакетного обмена данных (когда информация выгружается порциями) информация, на которую ссылается тот или иной объект данных, должна быть уже загружена на сайт. Например, в момент загрузки товаров на сайте уже должна быть информация о группах, свойствах, единицах измерений, а при загрузке предложений - должна быть информация о товарах.

Примечание: папку хранения картинок рекомендуется называть import_files.


Файл import.xml

Описание

В файле import.xml хранится информация о товарах, группах, типах цен, складах, свойствах товаров и единицах измерения.

Элемент XML | Элемент Владелец XML | Описание
<КоммерческаяИнформация> | Нет | Главный элемент XML, которому подчинены все остальные. Хранит атрибуты с информацией о пространстве имен, версии схемы («ВерсияСхемы»), атрибуты даты формирования («ДатаФормирования») и служебной информации.
<Классификатор> | <КоммерческаяИнформация> | Элемент содержит информацию о группах, свойствах, типах цен, складах, единицах измерения. У него может быть один атрибут «СодержитТолькоИзменения», который в новой схеме обмена не используется, т.к. он бесполезен при пакетном обмене.
<Ид> | <Классификатор> | Элемент содержит информацию, о том, к какому инфоблоку относится информация этого классификатора.
<Наименование> | <Классификатор> | Элемент содержит информацию о наименовании инфоблока, к которому относится классификатор.
<Группы> | <Классификатор> | Элемент содержит информацию о группах (разделах) товаров.
<Группа> | <Группы> | Элемент содержит описание группы элемента.
<Ид> | <Группа> | Уникальный идентификатор группы (раздела).
<НомерВерсии> | <Группа> | Номер версии элемента группы (раздела).
<ПометкаУдаления> | <Группа> | Признак того, что элемент должен быть деактивирован.
<Наименование> | <Группа> | Наименование группы (раздела).
<Группы> | <Группа> | Подчиненный элемент, который хранит информацию о подчиненных группах. Структура элемента такая же, как <Группы> у <Классификатор>.
<Свойства> | <Классификатор> | Элемент содержит информацию о свойствах товаров.
<Свойство> | <Свойства> | Элемент содержит описание свойства элемента.
<Ид> | <Свойство> | Уникальный идентификатор свойства.
<НомерВерсии> | <Свойство> | Номер версии свойства.
<ПометкаУдаления> | <Свойство> | Признак того, что элемент должен быть деактивирован.
<Наименование> | <Свойство> | Наименование свойства.
<Внешний> | <Свойство> | Признак того, что свойство должно хранится в справочнике (highload-блоке). Если свойство хранит картинку, то признак должен принимать значение true.
<ТипЗначений> | <Свойство> | Тип значения свойства. Тип значения может быть: Строка, Число, Справочник.
<ВариантыЗначений> | <Свойство> | Элемент содержит информацию о вариантах значений, если тип свойства Справочник.
<Справочник> | <ВариантыЗначений> | Элемент содержит описание варианта значений свойства.
<ИдЗначения> | <Справочник> | Идентификатор варианта значения свойства.
<Значение> | <Справочник> | Значение варианта значения свойства.
<Картинка> | <Справочник> | Адрес картинки, если значение свойства хранит картинку.
<КодГруппыТоваров> <Предложение> Элемент содержит информацию о коде группы товаров, подлежащих обязательной [ds]маркировке.[/ds][di] В РФ в соответствии с Федеральным законом от 31 декабря 2017 г. № 487-ФЗ товары подлежат обязательной маркировке, согласно утвержденному перечню.

Подробнее [image]...[/di]
<Ширина> | <Предложение> | Элемент содержит информацию о ширине товара.
<Длина> | <Предложение> | Элемент содержит информацию о длине товара.
<Высота> | <Предложение> | Элемент содержит информацию о высоте товара.
<ТипыЦен> | <Классификатор> | Элемент содержит информацию о типах цен товаров.
<ТипЦены> | <ТипыЦен> | Элемент содержит описание типа цены элемента.
<Ид> | <ТипЦены> | Уникальный идентификатор типа цены.
<НомерВерсии> | <ТипЦены> | Номер версии типа цены.
<ПометкаУдаления> | <ТипЦены> | Признак того, что элемент должен быть деактивирован.
<Наименование> | <ТипЦены> | Наименование типа цены. Наименование типа цены должно быть уникально, иначе новое не добавится.
<Валюта> | <ТипЦены> | Валюта типа цены.
<Налог> | <ТипЦены> | Описание налогов для типа цены.
<Наименование> | <Налог> | Наименование налога.
<УчтеноВСумме> | <Налог> | Признак того, включен ли налог в стоимость товара.
<Склады> | <Классификатор> | Элемент содержит информацию о складах товаров.
<Склад> | <Склады> | Элемент содержит описание склада элемента.
<Ид> | <Склад> | Уникальный идентификатор склада.
<НомерВерсии> | <Склад> | Номер версии склада.
<ПометкаУдаления> | <Склад> | Признак того, что элемент должен быть деактивирован.
<Наименование> | <Склад> | Наименование склада.
<Каталог> | <КоммерческаяИнформация> | Элемент содержит информацию о товарах. У него может быть один атрибут «СодержитТолькоИзменения», который в новой схеме обмена не используется, т.к. он бесполезен при пакетном обмене.
<ИдКлассификатора> | <Каталог> | Идентификатор каталога.
<Ид> | <Каталог> | Идентификатор каталога.
<Наименование> | <Каталог> | Наименование каталога.
<Товары> | <Каталог> | Элемент содержит информацию о товарах.
<Товар> | <Товары> | Элемент содержит описание товара.
<Ид> | <Товар> | Уникальный идентификатор товара.
<НомерВерсии> | <Товар> | Номер версии товара.
<ПометкаУдаления> | <Товар> | Признак того, что элемент должен быть деактивирован.
<Артикул> | <Товар> | Артикул товара.
<Наименование> | <Товар> | Наименование товара.
<Описание> | <Товар> | Описание товара, попадающее в подробное описание товара.
<Картинка> | <Товар> | Элемент содержит информацию о картинках товара. Первый элемент является основной картинкой.
<БазоваяЕдиница> | <Товар> | Единица измерения товара.
<Группы> | <Товар> | Элемент содержит информацию о группах (разделах), в которых товар находится.
<Ид> | <Группы> | Идентификатор группы (раздела) товара.
<Изготовитель> | <Товар> | Элемент содержит информацию о изготовителе товара.
<Вес> | <Товар> | Вес товара.
<Ид> | <Изготовитель> | Идентификатор изготовителя.
<Наименование> | <Изготовитель> | Наименование производителя.
<ОфициальноеНаименование> | <Изготовитель> | Официальное наименование производителя.
<ЗначенияСвойств> | <Товар> | Элемент содержит информацию о свойствах товаров.
<ЗначенияСвойства> | <ЗначенияСвойств> | Элемент содержит описание свойства товара.
<Ид> | <ЗначенияСвойства> | Идентификатор свойства.
<Значение> | <ЗначенияСвойства> | Значение свойства.
<СтавкиНалогов> | <Товар> | Элемент содержит информацию о налогах товаров.
<СтавкаНалога> | <СтавкиНалогов> | Элемент содержит описание налога товара.
<Наименование> | <СтавкаНалога> | Наименование налога.
<Ставка> | <СтавкаНалога> | Ставка налога.
<ЗначенияРеквизитов> <Товар> Элемент содержит информацию о дополнительных данных товара. Есть предопределенные значения:
  • Файл - содержит информацию о местонахождении приложенного файла;
  • ОписаниеФайла - описание файла или картинки. Формат: <адрес картинки>#<описание>;
  • Вес - вес товара;
  • ОписаниеВФорматеHTML - содержит описание товара в формате HTML;
  • Полное наименование - информация о анонсе товара.
<ЗначениеРеквизита> | <ЗначенияРеквизитов> | Элемент содержит описание дополнительной информации товара.
<Наименование> | <ЗначениеРеквизита> | Наименование реквизита.
<Значение> | <ЗначениеРеквизита> | Значение реквизита.

Пример файла

<?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация xmlns="urn:1C.ru:commerceml_2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ВерсияСхемы="2.09" ДатаФормирования="2015-06-26T18:28:09">
    <Каталог СодержитТолькоИзменения="true">
        <Ид>3e376578-5aae-466f-8301-6842d2796cf9</Ид>
        <ИдКлассификатора>3e376578-5aae-466f-8301-6842d2796cf9</ИдКлассификатора>
        <Наименование>upp kaz</Наименование>
        <Товары>
            <Товар>
                <Ид>3532350a-e424-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHI=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Клей</Наименование>
                <БазоваяЕдиница>166</БазоваяЕдиница>
                <Группы>
                    <Ид>13dab563-e271-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Материал</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Клей</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000110</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>35323514-e424-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHM=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>HDF плита</Наименование>
                <БазоваяЕдиница>055</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Полуфабрикат</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>HDF плита высокой степени прочности (High Density Fibroboard)</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000112</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>35323527-e424-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHU=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Опилки</Наименование>
                <БазоваяЕдиница>166</БазоваяЕдиница>
                <Группы>
                    <Ид>35323524-e424-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Возвратный отход</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Опилки</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000117</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>7c7836f4-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHY=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>А5677.61099 Боковая панель в сборе</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>А5677.61099 Боковая панель в сборе</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000116</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>7c7836fd-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHc=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>BN22 Ламинат Орех 22 мм</Наименование>
                <БазоваяЕдиница>055</БазоваяЕдиница>
                <Группы>
                    <Ид>13dab563-e271-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>BN22 Ламинат Орех 22 мм</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000118</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>7c783705-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHg=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>А5678.678 Задняя панель в сборе</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>А5678.678 Задняя панель в сборе</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000119</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>7c78370a-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHk=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>А666.2398 Боковая стенка в сборе</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Полуфабрикат</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>А666.2398 Боковая стенка в сборе</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000120</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>7c78370f-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHo=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>А666.2779 Крышка шкафа</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Полуфабрикат</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>А666.2779 Крышка шкафа</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000121</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>7c783714-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHs=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>А666.2999 Днище шкафа</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Полуфабрикат</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>А666.2999 Днище шкафа</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000122</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>7c783719-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHw=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Б5677.61055 Заготовка двери</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Полуфабрикат</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Б5677.61055 Заготовка двери</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000123</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>7c78371e-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAH0=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Б5678.678 Задняя панель </Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Б5678.678 Задняя панель </Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000124</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>7c783723-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAH4=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Б666.2398 Боковая стенка престиж</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Полуфабрикат</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Б666.2398 Боковая стенка престиж</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000125</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>7c783728-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAH8=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Б666.2779 Крышка прихожей Престиж</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Полуфабрикат</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Б666.2779 Крышка прихожей Престиж</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000126</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>7c78372d-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAIA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Б666.2999 Днище прихожей Престиж</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Полуфабрикат</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Б666.2999 Днище прихожей Престиж</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000127</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>7c783732-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAIE=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Козырек кухни в сборе</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Козырек кухни в сборе</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000128</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>d92c3dd6-e81d-11db-95da-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAJc=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул>L2345N</Артикул>
                <Наименование>Микроволновая печь LG</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>d92c3dd5-e81d-11db-95da-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Микроволновая печь LG</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000150</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>d92c3ddb-e81d-11db-95da-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAJg=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул>S9855NM</Артикул>
                <Наименование>Микроволновая печь Samsung</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>d92c3dd5-e81d-11db-95da-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Микроволновая печь Samsung</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000151</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>d92c3de1-e81d-11db-95da-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAJk=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул>Т-126843</Артикул>
                <Наименование>СВЧ печь "Малютка"</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>d92c3dd5-e81d-11db-95da-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>СВЧ печь "Малютка"</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000152</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>027b59ab-f498-11db-95da-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAJ0=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Рукавицы рабочие</Наименование>
                <БазоваяЕдиница>715</БазоваяЕдиница>
                <Группы>
                    <Ид>027b59aa-f498-11db-95da-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Материал</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Рукавицы рабочие</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000156</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>027b59b2-f498-11db-95da-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAJ4=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Халат  рабочий</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>027b59aa-f498-11db-95da-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Материал</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Халат  рабочий</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000157</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>911</Ид>
                <НомерВерсии>AAAAAwAAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Ботинки женские демисезонные (5, 35, Бежевый)</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение/>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000174</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>9719465b-417c-11dc-a5a2-0011118870aa</Ид>
                <НомерВерсии>AAAAAQAAAKA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Двигатель станка для узорного плетения SMO-12</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>9719465a-417c-11dc-a5a2-0011118870aa</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Материал</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Двигатель станка для узорного плетения SMO-12</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000163</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>9719465d-417c-11dc-a5a2-0011118870aa</Ид>
                <НомерВерсии>AAAAAQAAAKE=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Прокладка резиновая</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>9719465a-417c-11dc-a5a2-0011118870aa</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Материал</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Прокладка резиновая</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000164</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>0c1d5759-e36e-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAFo=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Сиденье, спинка</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>13dab563-e271-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Материал</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Сиденье, спинка</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000096</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>0c1d575b-e36e-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAFs=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Сосна пиловочник</Наименование>
                <БазоваяЕдиница>113</БазоваяЕдиница>
                <Группы>
                    <Ид>13dab563-e271-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Материал</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Сосна пиловочник</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000097</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>1f7b8f4b-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAFw=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул>СБ1548</Артикул>
                <Наименование>Стеллаж большой</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a44-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Картинка>import_files/1f/1f7b8f4b-e371-11db-95d9-505054503030_1f7b8f53-e371-11db-95d9-505054503030.jpeg</Картинка>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Стеллаж большой</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000076</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>1f7b8f54-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAF0=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул>СМ1548</Артикул>
                <Наименование>Стеллаж малый</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a44-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Картинка>import_files/1f/1f7b8f54-e371-11db-95d9-505054503030_1f7b8f59-e371-11db-95d9-505054503030.jpeg</Картинка>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Стеллаж малый</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000078</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>1f7b8f5a-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAF4=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул>СС1548</Артикул>
                <Наименование>Стеллаж средний</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a44-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Картинка>import_files/1f/1f7b8f5a-e371-11db-95d9-505054503030_1f7b8f5f-e371-11db-95d9-505054503030.jpeg</Картинка>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Стеллаж средний</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000080</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>1f7b8f60-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAF8=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул>СК0014</Артикул>
                <Наименование>Стол компьютерный СК-14</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a44-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Картинка>import_files/1f/1f7b8f60-e371-11db-95d9-505054503030_1f7b8f68-e371-11db-95d9-505054503030.jpeg</Картинка>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Продукция</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Стол компьютерный СК-14</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000081</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>1f7b8f69-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул>СК0017</Артикул>
                <Наименование>Стол компьютерный СК-17</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a44-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Картинка>import_files/1f/1f7b8f69-e371-11db-95d9-505054503030_1f7b8f70-e371-11db-95d9-505054503030.jpeg</Картинка>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Продукция</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Стол компьютерный СК-17</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000083</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>1f7b8f71-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGE=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул>СК0024</Артикул>
                <Наименование>Стол компьютерный СК-24</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a44-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Картинка>import_files/1f/1f7b8f71-e371-11db-95d9-505054503030_1f7b8f79-e371-11db-95d9-505054503030.jpeg</Картинка>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Продукция</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Стол компьютерный СК-24</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000085</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>1f7b8f7a-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGI=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул>СК2555</Артикул>
                <Наименование>Стол кухонный БС-55</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a44-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Картинка>import_files/1f/1f7b8f7a-e371-11db-95d9-505054503030_1f7b8f7e-e371-11db-95d9-505054503030.jpeg</Картинка>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Продукция</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Стол кухонный БС-55</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000087</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>1f7b8f7f-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGM=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул>СК2564</Артикул>
                <Наименование>Стол кухонный МС-34</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a44-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Картинка>import_files/1f/1f7b8f7f-e371-11db-95d9-505054503030_1f7b8f81-e371-11db-95d9-505054503030.jpeg</Картинка>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Продукция</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Стол кухонный МС-34</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000088</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>04bd497d-e378-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGQ=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Столешница</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>13dab563-e271-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Материал</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Столешница</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000099</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>04bd4982-e378-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGU=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Углок крепления</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>13dab563-e271-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Материал</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Углок крепления</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000100</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>04bd4984-e378-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGY=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Черенок деревянный</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>13dab563-e271-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Черенок деревянный</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000101</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>04bd4986-e378-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGc=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Шкант 30х8</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>13dab563-e271-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Материал</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Шкант 30х8</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000102</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>503c629c-e3f6-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGk=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Комбинированный станок LX-310</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>503c629b-e3f6-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Картинка>import_files/50/503c629c-e3f6-11db-95d9-505054503030_503c62a2-e3f6-11db-95d9-505054503030.jpeg</Картинка>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Оборудование</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Комбинированный станок LX-310</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000104</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>503c629e-e3f6-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGo=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Станок для узорного плетения SMO-12</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>503c629b-e3f6-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Оборудование</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Станок для узорного плетения SMO-12</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000105</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>503c62b0-e3f6-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGs=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Угловой центр для производства окон и дверей Colombo Angelo AM33</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>503c629b-e3f6-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Картинка>import_files/50/503c62b0-e3f6-11db-95d9-505054503030_503c62b3-e3f6-11db-95d9-505054503030.jpeg</Картинка>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Оборудование</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Угловой центр для производства окон и дверей Colombo Angelo AM33</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000106</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>503c62c6-e3f6-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAG0=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Система PFS для раскроя плит постформинг </Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>503c629b-e3f6-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Картинка>import_files/50/503c62c6-e3f6-11db-95d9-505054503030_503c62ca-e3f6-11db-95d9-505054503030.jpeg</Картинка>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Оборудование</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Система PFS для раскроя плит постформинг </Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000113</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>503c62c8-e3f6-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAG4=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Принтер для печати ярлыков SATO XL400</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>503c629b-e3f6-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Картинка>import_files/50/503c62c8-e3f6-11db-95d9-505054503030_503c62cb-e3f6-11db-95d9-505054503030.jpeg</Картинка>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Оборудование</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Принтер для печати ярлыков SATO XL400</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000114</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>d1b2d75c-e41c-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAG8=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Каркас для кресла</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Полуфабрикат</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Каркас для кресла</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000108</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>d1b2d764-e41c-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Полозья кресла-качалки</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Полуфабрикат</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Полозья кресла-качалки</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000109</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>d1b2d76b-e41c-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHE=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Прутья ивы (для табуретки)</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>6d025a31-e27f-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Полуфабрикат</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Прутья ивы (для табуретки)</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000111</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>503c62b6-e3f6-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGw=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Монтаж оборудования</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>bc82b4d9-e36b-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Услуга</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Услуга</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Монтаж оборудования</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000107</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>5b88f790-e8ee-11db-95da-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAJo=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Покраска </Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>bc82b4d9-e36b-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Услуга</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Услуга</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Покраска </Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000153</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>efcf6c78-e97d-11db-95da-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAJs=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Аренда помещения</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>bc82b4d9-e36b-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>0</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Услуга</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Услуга</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Аренда помещения</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000154</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>ORDER_DELIVERY</Ид>
                <НомерВерсии>AAAABQAAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Доставка заказа</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Услуга</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Услуга</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение/>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000175</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
            <Товар>
                <Ид>97194663-417c-11dc-a5a2-0011118870aa</Ид>
                <НомерВерсии>AAAAAQAAAKI=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Штрихкод/>
                <Артикул/>
                <Наименование>Ремонт оборудования</Наименование>
                <БазоваяЕдиница>796</БазоваяЕдиница>
                <Группы>
                    <Ид>bc82b4d9-e36b-11db-95d9-505054503030</Ид>
                </Группы>
                <Описание/>
                <Страна/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab530-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab55a-e271-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571e-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d571f-e36e-11db-95d9-505054503030</Ид>
                        <Значение/>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>12</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Услуга</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Услуга</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Полное наименование</Наименование>
                        <Значение>Ремонт оборудования</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>Код</Наименование>
                        <Значение>00000000165</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Вес>0</Вес>
            </Товар>
        </Товары>
        <Описание>upp kaz</Описание>
    </Каталог>
</КоммерческаяИнформация>


Файл offers.xml

Описание

В файле offers.xml хранится информация о предложениях товаров и их свойствах.

Элемент XML | Элемент Владелец XML | Описание
<КоммерческаяИнформация> | Нет | Главный элемент XML, которому подчинены все остальные. Хранит атрибуты с информацией о пространстве имен, версии схемы («ВерсияСхемы»), даты формирования («ДатаФормирования»), а также служебную информацию.
<Классификатор> | <КоммерческаяИнформация> | Элемент содержит информацию о группах, свойствах, типах цен, складах, единицах измерения. У него может быть один атрибут «СодержитТолькоИзменения», который в новой схеме обмена не используется, т.к. он бесполезен при пакетном обмене.
<Ид> | <Классификатор> | Элемент содержит информацию, о том, к какому инфоблоку относится информация этого классификатора.
<Наименование> | <Классификатор> | Элемент содержит информацию о наименовании инфоблока, к которому относится классификатор.
<Свойства> | <Классификатор> | Элемент содержит информацию о свойствах товаров.
<Свойство> | <Свойства> | Элемент содержит описание свойства элемента.
<Ид> | <Свойство> | Уникальный идентификатор свойства.
<НомерВерсии> | <Свойство> | Номер версии свойства.
<ПометкаУдаления> | <Свойство> | Признак того, что элемент должен быть деактивирован.
<Наименование> | <Свойство> | Наименование свойства.
<Внешний> | <Свойство> | Признак того, что свойство должно хранится в highload-инфоблоке (справочнике). Если свойство хранит картинку, то признак должен принимать значение true.
<ТипЗначений> | <Свойство> | Тип значения свойства. Тип значения может быть: Строка, Число, Время, Справочник.
<ВариантыЗначений> | <Свойство> | Элемент содержит информацию о вариантах значений, если тип свойства Справочник.
<Справочник> | <ВариантыЗначений> | Элемент содержит описание варианта значений свойства.
<ИдЗначения> | <Справочник> | Идентификатор варианта значения свойства.
<Значение> | <Справочник> | Значение варианта значения свойства.
<Картинка> | <Справочник> | Адрес картинки, если значение свойства хранит картинку.
<ПакетПредложений> | <КоммерческаяИнформация> | Элемент содержит всю информацию о предложениях (предложения, цены, остатки). У него может быть один атрибут «СодержитТолькоИзменения», который в новой схеме обмена не используется, т.к. он бесполезен при пакетном обмене.
<Ид> | <ПакетПредложений> | Идентификатор пакета предложений. Для того, чтобы он привязался к инфоблоку товара с таким же идентификатором, у него в конце должен стоять символ #.
<Наименование> | <ПакетПредложений> | Наименование.
<ИдКаталога> | <ПакетПредложений> | Идентификатор каталога, к которому относится пакет предложений.
<ИдКлассификатора> | <ПакетПредложений> | Идентификатор классификатора, который относится к пакету предложений.
<Предложения> | <ПакетПредложений> | Элемент содержит информацию о предложениях товаров.
<Предложение> | <Предложения> | Элемент содержит описание предложения элемента.
<Ид> | <Предложение> | Идентификатор предложения. Если предложение сложное (состоит из 2 элементов), то идентификатор имеет формат: <ид_товара>#<ид_элемента>.
<НомерВерсии> | <Предложение> | Номер версии предложения.
<ПометкаУдаления> | <Предложение> | Признак того, что элемент должен быть деактивирован.
<Наименование> | <Предложение> | Наименование предложения.
<Штрихкод> | <Предложение> | Штрих-код предложения.
<ХарактеристикиТовара> | <Предложение> | Элемент содержит информацию о строковых свойствах предложений.
<ХарактеристикаТовара> | <ХарактеристикиТовара> | Элемент множественного строкового свойства предложений
<Наименование> | <ХарактеристикаТовара> | Наименование свойства.
<Значение> | <ХарактеристикаТовара> | Значение.
<ЗначенияСвойств> | <Предложение> | Элемент содержит информацию о свойствах предложений.
<ЗначенияСвойства> | <ЗначенияСвойств> | Элемент свойства предложения.
<Ид> | <ЗначенияСвойства> | Идентификатор предложения.
<Значение> | <ЗначенияСвойства> | Значение предложения.
<Комплектующие> | <Предложение> | Элемент содержит информацию о комплектующих предложениях.
<Комплектующее> | <Комплектующие> | Элемент, содержащий информацию о комплектующем предложении.
<Ид> | <Комплектующее> | Идентификатор комплектующего.
<Наименование> | <Комплектующее> | Наименование комплектующего.
<Количество> | <Комплектующее> | Количество товара.
<ЗначенияРеквизитов> | <Предложение> | Элемент содержит информацию о дополнительных данных в предложениях. Есть предопределенное значение: Планируемая дата поступления - содержит информацию о том, когда будет ближайшее поступление товара.
<ЗначениеРеквизита> | <ЗначенияРеквизитов> | Элемент содержит описание дополнительной информации товара.
<Наименование> | <ЗначениеРеквизита> | Наименование реквизита.
<Значение> | <ЗначениеРеквизита> | Значение реквизита.

Пример файла

<?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация xmlns="urn:1C.ru:commerceml_2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ВерсияСхемы="2.09" ДатаФормирования="2015-06-26T18:28:09">
    <ПакетПредложений СодержитТолькоИзменения="true">
        <Ид>3e376578-5aae-466f-8301-6842d2796cf9#</Ид>
        <Наименование>Пакет предложений (upp kaz)</Наименование>
        <ИдКаталога>3e376578-5aae-466f-8301-6842d2796cf9</ИдКаталога>
        <ИдКлассификатора>3e376578-5aae-466f-8301-6842d2796cf9</ИдКлассификатора>
        <Предложения>
            <Предложение>
                <Ид>7c78371e-e432-11db-95d9-505054503030#7c783721-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>oQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б5678.678 Задняя панель  (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78371e-e432-11db-95d9-505054503030#7c783720-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>oAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б5678.678 Задняя панель  (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783719-e432-11db-95d9-505054503030#bc41019c-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>EQEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б5677.61055 Заготовка двери (Зеленый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>32b0314f-e283-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783719-e432-11db-95d9-505054503030#bc410192-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>CgEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б5677.61055 Заготовка двери (Черный)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab548-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783719-e432-11db-95d9-505054503030#bc41018d-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>BQEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б5677.61055 Заготовка двери (Темное дерево)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54f-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783719-e432-11db-95d9-505054503030#7c78371d-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>nwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б5677.61055 Заготовка двери (Орех)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab549-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783719-e432-11db-95d9-505054503030#7c78371c-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>ngAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б5677.61055 Заготовка двери (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783719-e432-11db-95d9-505054503030#7c78371b-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>nQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б5677.61055 Заготовка двери (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783714-e432-11db-95d9-505054503030#bc410190-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>CAEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2999 Днище шкафа (Черный)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab548-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783714-e432-11db-95d9-505054503030#bc41018b-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>AwEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2999 Днище шкафа (Темное дерево)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54f-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783714-e432-11db-95d9-505054503030#7c783718-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>nAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2999 Днище шкафа (Орех)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab549-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783714-e432-11db-95d9-505054503030#7c783717-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>mwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2999 Днище шкафа (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783714-e432-11db-95d9-505054503030#7c783716-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>mgAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2999 Днище шкафа (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78370f-e432-11db-95d9-505054503030#bc41018f-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>BwEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2779 Крышка шкафа (Черный)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab548-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78370f-e432-11db-95d9-505054503030#bc41018a-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>AgEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2779 Крышка шкафа (Темное дерево)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54f-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78370f-e432-11db-95d9-505054503030#7c783713-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>mQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2779 Крышка шкафа (Орех)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab549-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78370f-e432-11db-95d9-505054503030#7c783712-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>mAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2779 Крышка шкафа (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78370f-e432-11db-95d9-505054503030#7c783711-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>lwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2779 Крышка шкафа (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78370a-e432-11db-95d9-505054503030#bc410191-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>CQEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2398 Боковая стенка в сборе (Черный)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab548-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78370a-e432-11db-95d9-505054503030#bc41018c-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>BAEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2398 Боковая стенка в сборе (Темное дерево)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54f-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78370a-e432-11db-95d9-505054503030#7c78370e-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>lgAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2398 Боковая стенка в сборе (Орех)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab549-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78370a-e432-11db-95d9-505054503030#7c78370d-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>lQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2398 Боковая стенка в сборе (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78370a-e432-11db-95d9-505054503030#7c78370c-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>lAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А666.2398 Боковая стенка в сборе (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783705-e432-11db-95d9-505054503030#7c783709-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>kwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А5678.678 Задняя панель в сборе (Орех)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab549-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783705-e432-11db-95d9-505054503030#7c783708-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>kgAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А5678.678 Задняя панель в сборе (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783705-e432-11db-95d9-505054503030#7c783707-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>kQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А5678.678 Задняя панель в сборе (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c7836fd-e432-11db-95d9-505054503030#7c783701-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>kAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>BN22 Ламинат Орех 22 мм (Орех)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab549-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c7836fd-e432-11db-95d9-505054503030#7c783700-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>jwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>BN22 Ламинат Орех 22 мм (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c7836fd-e432-11db-95d9-505054503030#7c7836ff-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>jgAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>BN22 Ламинат Орех 22 мм (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c7836f4-e432-11db-95d9-505054503030#7c7836fc-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>jQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А5677.61099 Боковая панель в сборе (Голубой)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>0c1d5726-e36e-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>9719465d-417c-11dc-a5a2-0011118870aa</Ид>
                <НомерВерсии>AAAAAQAAAKE=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Прокладка резиновая</Наименование>
            </Предложение>
            <Предложение>
                <Ид>9719465b-417c-11dc-a5a2-0011118870aa</Ид>
                <НомерВерсии>AAAAAQAAAKA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Двигатель станка для узорного плетения SMO-12</Наименование>
            </Предложение>
            <Предложение>
                <Ид>911#119</Ид>
                <НомерВерсии>AAAAAAIAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Ботинки женские демисезонные (5, 35, Бежевый) (Ботинки женские демисезонные (5, 35, Бежевый))</Наименование>
            </Предложение>
            <Предложение>
                <Ид>027b59b2-f498-11db-95da-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAJ4=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Халат  рабочий</Наименование>
            </Предложение>
            <Предложение>
                <Ид>027b59ab-f498-11db-95da-505054503030#027b59b1-f498-11db-95da-505054503030</Ид>
                <НомерВерсии>IgEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Рукавицы рабочие (Х/б)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>027b59ad-f498-11db-95da-505054503030</Ид>
                        <Значение>027b59ae-f498-11db-95da-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>027b59ab-f498-11db-95da-505054503030#027b59b0-f498-11db-95da-505054503030</Ид>
                <НомерВерсии>IQEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Рукавицы рабочие (Драп)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>027b59ad-f498-11db-95da-505054503030</Ид>
                        <Значение>027b59af-f498-11db-95da-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>d92c3de1-e81d-11db-95da-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAJk=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>СВЧ печь "Малютка"</Наименование>
            </Предложение>
            <Предложение>
                <Ид>d92c3ddb-e81d-11db-95da-505054503030#d92c3de0-e81d-11db-95da-505054503030</Ид>
                <НомерВерсии>HwEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Микроволновая печь Samsung (40*49*41, Голубой)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab53c-e271-11db-95d9-505054503030</Ид>
                        <Значение>d92c3ddd-e81d-11db-95da-505054503030</Значение>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>0c1d5726-e36e-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>d92c3ddb-e81d-11db-95da-505054503030#d92c3ddf-e81d-11db-95da-505054503030</Ид>
                <НомерВерсии>HgEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Микроволновая печь Samsung (40*49*41, Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab53c-e271-11db-95d9-505054503030</Ид>
                        <Значение>d92c3ddd-e81d-11db-95da-505054503030</Значение>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>d92c3ddb-e81d-11db-95da-505054503030#d92c3dde-e81d-11db-95da-505054503030</Ид>
                <НомерВерсии>HQEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Микроволновая печь Samsung (40*49*41, Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab53c-e271-11db-95d9-505054503030</Ид>
                        <Значение>d92c3ddd-e81d-11db-95da-505054503030</Значение>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>d92c3dd6-e81d-11db-95da-505054503030#d92c3dd9-e81d-11db-95da-505054503030</Ид>
                <НомерВерсии>HAEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Микроволновая печь LG (35*48*42, Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab53c-e271-11db-95d9-505054503030</Ид>
                        <Значение>d92c3dda-e81d-11db-95da-505054503030</Значение>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>d92c3dd6-e81d-11db-95da-505054503030#d92c3dd8-e81d-11db-95da-505054503030</Ид>
                <НомерВерсии>GwEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Микроволновая печь LG (35*48*42, Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab53c-e271-11db-95d9-505054503030</Ид>
                        <Значение>d92c3dda-e81d-11db-95da-505054503030</Значение>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78372d-e432-11db-95d9-505054503030#bc410198-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>DQEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2999 Днище прихожей Престиж (Зеленый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>32b0314f-e283-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78372d-e432-11db-95d9-505054503030#bc410197-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>DAEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2999 Днище прихожей Престиж (Темное дерево)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54f-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78372d-e432-11db-95d9-505054503030#7c783731-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>qwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2999 Днище прихожей Престиж (Орех)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab549-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78372d-e432-11db-95d9-505054503030#7c783730-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>qgAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2999 Днище прихожей Престиж (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78372d-e432-11db-95d9-505054503030#7c78372f-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>qQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2999 Днище прихожей Престиж (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783728-e432-11db-95d9-505054503030#03174acd-e67e-11db-95da-505054503030</Ид>
                <НомерВерсии>FAEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2779 Крышка прихожей Престиж (Темное дерево)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54f-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783728-e432-11db-95d9-505054503030#bc410199-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>DgEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2779 Крышка прихожей Престиж (Зеленый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>32b0314f-e283-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783728-e432-11db-95d9-505054503030#7c78372c-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>qAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2779 Крышка прихожей Престиж (Орех)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab549-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783728-e432-11db-95d9-505054503030#7c78372b-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>pwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2779 Крышка прихожей Престиж (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783728-e432-11db-95d9-505054503030#7c78372a-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>pgAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2779 Крышка прихожей Престиж (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783723-e432-11db-95d9-505054503030#bc41019b-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>EAEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2398 Боковая стенка престиж (Зеленый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>32b0314f-e283-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783723-e432-11db-95d9-505054503030#bc41019a-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>DwEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2398 Боковая стенка престиж (Темное дерево)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54f-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783723-e432-11db-95d9-505054503030#7c783727-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>pQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2398 Боковая стенка престиж (Орех)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab549-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783723-e432-11db-95d9-505054503030#7c783726-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>pAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2398 Боковая стенка престиж (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c783723-e432-11db-95d9-505054503030#7c783725-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>owAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б666.2398 Боковая стенка престиж (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78371e-e432-11db-95d9-505054503030#bc41018e-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>BgEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б5678.678 Задняя панель  (Черный)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab548-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78371e-e432-11db-95d9-505054503030#bc410189-e508-11db-95d9-505054503030</Ид>
                <НомерВерсии>AQEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б5678.678 Задняя панель  (Темное дерево)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54f-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c78371e-e432-11db-95d9-505054503030#7c783722-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>ogAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Б5678.678 Задняя панель  (Орех)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab549-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f71-e371-11db-95d9-505054503030#1f7b8f78-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>dQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-24 (Черный)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab548-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f71-e371-11db-95d9-505054503030#1f7b8f77-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>dAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-24 (Темно синий)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab561-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f71-e371-11db-95d9-505054503030#1f7b8f76-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>cwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-24 (Орех)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab549-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f71-e371-11db-95d9-505054503030#1f7b8f75-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>cgAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-24 (Красный)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54b-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f71-e371-11db-95d9-505054503030#1f7b8f74-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>cQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-24 (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f71-e371-11db-95d9-505054503030#1f7b8f73-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>cAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-24 (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f69-e371-11db-95d9-505054503030#5d2c9373-e4bb-11db-95d9-505054503030</Ид>
                <НомерВерсии>ygAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-17 (Красный)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54b-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f69-e371-11db-95d9-505054503030#1f7b8f6f-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>bwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-17 (Черный)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab548-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f69-e371-11db-95d9-505054503030#1f7b8f6e-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>bgAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-17 (Темно синий)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab561-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f69-e371-11db-95d9-505054503030#1f7b8f6d-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>bQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-17 (Орех)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab549-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f69-e371-11db-95d9-505054503030#1f7b8f6c-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>bAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-17 (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f69-e371-11db-95d9-505054503030#1f7b8f6b-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>awAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-17 (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f60-e371-11db-95d9-505054503030#5d2c9375-e4bb-11db-95d9-505054503030</Ид>
                <НомерВерсии>zAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-14 (Орех)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab549-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f60-e371-11db-95d9-505054503030#5d2c9374-e4bb-11db-95d9-505054503030</Ид>
                <НомерВерсии>ywAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-14 (Красный)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54b-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f60-e371-11db-95d9-505054503030#1f7b8f67-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>agAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-14 (Черный)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab548-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f60-e371-11db-95d9-505054503030#1f7b8f66-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>aQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-14 (Темно синий)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab561-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f60-e371-11db-95d9-505054503030#1f7b8f65-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>aAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-14 (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f60-e371-11db-95d9-505054503030#1f7b8f64-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>ZwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол компьютерный СК-14 (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f5a-e371-11db-95d9-505054503030#1f7b8f5e-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>ZgAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стеллаж средний (Черный)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab548-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f5a-e371-11db-95d9-505054503030#1f7b8f5d-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>ZQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стеллаж средний (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f5a-e371-11db-95d9-505054503030#1f7b8f5c-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>ZAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стеллаж средний (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f54-e371-11db-95d9-505054503030#1f7b8f58-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>YwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стеллаж малый (Черный)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab548-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f54-e371-11db-95d9-505054503030#1f7b8f57-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>YgAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стеллаж малый (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f54-e371-11db-95d9-505054503030#1f7b8f56-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>YQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стеллаж малый (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f4b-e371-11db-95d9-505054503030#1f7b8f52-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>YAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стеллаж большой (Черный)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab548-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f4b-e371-11db-95d9-505054503030#1f7b8f51-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>XwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стеллаж большой (Искусственная кожа, Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                    <ЗначенияСвойства>
                        <Ид>0c1d5728-e36e-11db-95d9-505054503030</Ид>
                        <Значение>0c1d5729-e36e-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f4b-e371-11db-95d9-505054503030#1f7b8f50-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>XgAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стеллаж большой (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f4b-e371-11db-95d9-505054503030#1f7b8f4f-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>XQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стеллаж большой (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>0c1d575b-e36e-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAFs=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Сосна пиловочник</Наименование>
            </Предложение>
            <Предложение>
                <Ид>0c1d5759-e36e-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAFo=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Сиденье, спинка</Наименование>
            </Предложение>
            <Предложение>
                <Ид>7c7836f4-e432-11db-95d9-505054503030#7c7836fa-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>jAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А5677.61099 Боковая панель в сборе (Орех)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab549-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c7836f4-e432-11db-95d9-505054503030#7c7836f9-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>iwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А5677.61099 Боковая панель в сборе (Белый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab547-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c7836f4-e432-11db-95d9-505054503030#7c7836f8-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>igAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А5677.61099 Боковая панель в сборе (Золото)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54c-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c7836f4-e432-11db-95d9-505054503030#7c7836f7-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>iQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А5677.61099 Боковая панель в сборе (Зеленый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>32b0314f-e283-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>7c7836f4-e432-11db-95d9-505054503030#7c7836f6-e432-11db-95d9-505054503030</Ид>
                <НомерВерсии>iAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>А5677.61099 Боковая панель в сборе (Бежевый)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54d-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>35323527-e424-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHU=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Опилки</Наименование>
            </Предложение>
            <Предложение>
                <Ид>35323514-e424-11db-95d9-505054503030#54ab51db-e73f-11db-95da-505054503030</Ид>
                <НомерВерсии>GQEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>HDF плита (Ольха)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>815ce89b-e35d-11db-95d9-505054503030</Ид>
                        <Значение>bc410183-e508-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>35323514-e424-11db-95d9-505054503030#54ab51da-e73f-11db-95da-505054503030</Ид>
                <НомерВерсии>GAEAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>HDF плита (Вишня)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>815ce89b-e35d-11db-95d9-505054503030</Ид>
                        <Значение>bc410181-e508-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>35323514-e424-11db-95d9-505054503030#3532351a-e424-11db-95d9-505054503030</Ид>
                <НомерВерсии>ggAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>HDF плита (Сосна)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>815ce89b-e35d-11db-95d9-505054503030</Ид>
                        <Значение>815ce89c-e35d-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>35323514-e424-11db-95d9-505054503030#35323519-e424-11db-95d9-505054503030</Ид>
                <НомерВерсии>gQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>HDF плита (Лиственница)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>815ce89b-e35d-11db-95d9-505054503030</Ид>
                        <Значение>815ce8a0-e35d-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>35323514-e424-11db-95d9-505054503030#35323518-e424-11db-95d9-505054503030</Ид>
                <НомерВерсии>gAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>HDF плита (Ель)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>815ce89b-e35d-11db-95d9-505054503030</Ид>
                        <Значение>35323508-e424-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>35323514-e424-11db-95d9-505054503030#35323517-e424-11db-95d9-505054503030</Ид>
                <НомерВерсии>fwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>HDF плита (Дуб)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>815ce89b-e35d-11db-95d9-505054503030</Ид>
                        <Значение>815ce89e-e35d-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>35323514-e424-11db-95d9-505054503030#35323516-e424-11db-95d9-505054503030</Ид>
                <НомерВерсии>fgAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>HDF плита (Береза)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>815ce89b-e35d-11db-95d9-505054503030</Ид>
                        <Значение>815ce8a2-e35d-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>3532350a-e424-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHI=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Клей</Наименование>
            </Предложение>
            <Предложение>
                <Ид>d1b2d76b-e41c-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHE=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Прутья ивы (для табуретки)</Наименование>
            </Предложение>
            <Предложение>
                <Ид>d1b2d764-e41c-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAHA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Полозья кресла-качалки</Наименование>
            </Предложение>
            <Предложение>
                <Ид>d1b2d75c-e41c-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAG8=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Каркас для кресла</Наименование>
            </Предложение>
            <Предложение>
                <Ид>503c62c8-e3f6-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAG4=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Принтер для печати ярлыков SATO XL400</Наименование>
            </Предложение>
            <Предложение>
                <Ид>503c62c6-e3f6-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAG0=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Система PFS для раскроя плит постформинг </Наименование>
            </Предложение>
            <Предложение>
                <Ид>503c62b0-e3f6-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGs=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Угловой центр для производства окон и дверей Colombo Angelo AM33</Наименование>
            </Предложение>
            <Предложение>
                <Ид>503c629e-e3f6-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGo=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Станок для узорного плетения SMO-12</Наименование>
            </Предложение>
            <Предложение>
                <Ид>503c629c-e3f6-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGk=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Комбинированный станок LX-310</Наименование>
            </Предложение>
            <Предложение>
                <Ид>04bd4986-e378-11db-95d9-505054503030#04bd498a-e378-11db-95d9-505054503030</Ид>
                <НомерВерсии>eQAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Шкант 30х8 (Темное дерево)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54f-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>04bd4986-e378-11db-95d9-505054503030#04bd4989-e378-11db-95d9-505054503030</Ид>
                <НомерВерсии>eAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Шкант 30х8 (Серебро)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54a-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f7a-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGI=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол кухонный БС-55</Наименование>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f7f-e371-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGM=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Стол кухонный МС-34</Наименование>
            </Предложение>
            <Предложение>
                <Ид>04bd4986-e378-11db-95d9-505054503030#04bd4988-e378-11db-95d9-505054503030</Ид>
                <НомерВерсии>dwAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Шкант 30х8 (Золото)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>13dab546-e271-11db-95d9-505054503030</Ид>
                        <Значение>13dab54c-e271-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>04bd4984-e378-11db-95d9-505054503030#d3ecfa34-f96b-11db-779e-000423d3a104</Ид>
                <НомерВерсии>AAAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Черенок деревянный (Влажность15%)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>6d025a1c-e27f-11db-95d9-505054503030</Ид>
                        <Значение>6d025a1d-e27f-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>04bd4982-e378-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGU=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Углок крепления</Наименование>
            </Предложение>
            <Предложение>
                <Ид>04bd497d-e378-11db-95d9-505054503030#04bd4981-e378-11db-95d9-505054503030</Ид>
                <НомерВерсии>dgAAAAEAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Столешница (Шахматное покрытие)</Наименование>
                <ХарактеристикиТовара/>
                <ЗначенияСвойств>
                    <ЗначенияСвойства>
                        <Ид>04bd497f-e378-11db-95d9-505054503030</Ид>
                        <Значение>04bd4980-e378-11db-95d9-505054503030</Значение>
                    </ЗначенияСвойства>
                </ЗначенияСвойств>
            </Предложение>
            <Предложение>
                <Ид>97194663-417c-11dc-a5a2-0011118870aa</Ид>
                <НомерВерсии>AAAAAQAAAKI=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Ремонт оборудования</Наименование>
            </Предложение>
            <Предложение>
                <Ид>ORDER_DELIVERY</Ид>
                <НомерВерсии>AAAABQAAAAA=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Доставка заказа</Наименование>
            </Предложение>
            <Предложение>
                <Ид>efcf6c78-e97d-11db-95da-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAJs=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Аренда помещения</Наименование>
            </Предложение>
            <Предложение>
                <Ид>5b88f790-e8ee-11db-95da-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAJo=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Покраска </Наименование>
            </Предложение>
            <Предложение>
                <Ид>503c62b6-e3f6-11db-95d9-505054503030</Ид>
                <НомерВерсии>AAAAAQAAAGw=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Монтаж оборудования</Наименование>
            </Предложение>
        </Предложения>
    </ПакетПредложений>
</КоммерческаяИнформация>


Файл prices.xml

Описание

В файле prices.xml хранится информация о ценах предложений.

Элемент XML | Элемент Владелец XML | Описание
<КоммерческаяИнформация> | Нет | Главный элемент XML, которому подчинены все остальные. Хранит атрибуты с информацией о пространстве имен, версии схемы («ВерсияСхемы»), даты формирования («ДатаФормирования»), а также служебную информацию.
<ПакетПредложений> | <КоммерческаяИнформация> | Элемент содержит всю информацию о предложениях (предложения, цены, остатки). У него может быть один атрибут «СодержитТолькоИзменения», который в новой схеме обмена не используется, т.к. он бесполезен при пакетном обмене.
<Ид> | <ПакетПредложений> | Идентификатор пакета предложений. Для того, чтобы он привязался к инфоблоку товара с таким же идентификатором, у него в конце должен стоять символ #.
<Наименование> | <ПакетПредложений> | Наименование.
<ИдКаталога> | <ПакетПредложений> | Идентификатор каталога, к которому относится пакет предложений.
<ИдКлассификатора> | <ПакетПредложений> | Идентификатор классификатора, который относится к пакету предложений.
<Предложения> | <ПакетПредложений> | Элемент содержит информацию о предложениях товаров.
<Предложение> | <Предложения> | Элемент содержит описание предложения элемента.
<Ид> | <Предложение> | Идентификатор предложения. Если предложение сложное (состоит из 2 элементов), то идентификатор имеет формат: <ид_товара>#<ид_элемента>
<Цены> | <Предложение> | Элемент содержит информацию о ценах предложения товара.
<Цена> | <Цены> | Элемент содержит описание цены предложения товара.
<Представление> | <Цена> | Представление цены (не используется).
<ИдТипаЦены> | <Цена> | Идентификатор типа цены.
<ЦенаЗаЕдиницу> | <Цена> | Цена за единицу товара (базовую).
<Валюта> | <Цена> | Валюта цены.

Пример файла

<?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация xmlns="urn:1C.ru:commerceml_2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ВерсияСхемы="2.09" ДатаФормирования="2015-06-26T18:28:09">
    <ПакетПредложений СодержитТолькоИзменения="true">
        <Ид>3e376578-5aae-466f-8301-6842d2796cf9#</Ид>
        <Наименование>Пакет предложений (upp kaz)</Наименование>
        <ИдКаталога>3e376578-5aae-466f-8301-6842d2796cf9</ИдКаталога>
        <ИдКлассификатора>3e376578-5aae-466f-8301-6842d2796cf9</ИдКлассификатора>
        <Предложения>
            <Предложение>
                <Ид>1f7b8f60-e371-11db-95d9-505054503030#1f7b8f64-e371-11db-95d9-505054503030</Ид>
                <Цены>
                    <Цена>
                        <Представление>15 450 руб за шт</Представление>
                        <ИдТипаЦены>054efecb-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>15450</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>15 000 руб за шт</Представление>
                        <ИдТипаЦены>55e494d2-e2a0-11db-95d9-505054503030</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>15000</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>19 313 руб за шт</Представление>
                        <ИдТипаЦены>054efecc-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>19313</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>21 100 руб за шт</Представление>
                        <ИдТипаЦены>55e494d5-e2a0-11db-95d9-505054503030</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>21100</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                </Цены>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f69-e371-11db-95d9-505054503030#1f7b8f6d-e371-11db-95d9-505054503030</Ид>
                <Цены>
                    <Цена>
                        <Представление>16 995 руб за шт</Представление>
                        <ИдТипаЦены>054efecb-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>16995</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>16 500 руб за шт</Представление>
                        <ИдТипаЦены>55e494d2-e2a0-11db-95d9-505054503030</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>16500</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>21 244 руб за шт</Представление>
                        <ИдТипаЦены>054efecc-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>21244</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>21 100 руб за шт</Представление>
                        <ИдТипаЦены>55e494d5-e2a0-11db-95d9-505054503030</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>21100</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                </Цены>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f71-e371-11db-95d9-505054503030#1f7b8f75-e371-11db-95d9-505054503030</Ид>
                <Цены>
                    <Цена>
                        <Представление>17 304 руб за шт</Представление>
                        <ИдТипаЦены>054efecb-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>17304</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>16 800 руб за шт</Представление>
                        <ИдТипаЦены>55e494d2-e2a0-11db-95d9-505054503030</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>16800</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>21 630 руб за шт</Представление>
                        <ИдТипаЦены>054efecc-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>21630</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>21 100 руб за шт</Представление>
                        <ИдТипаЦены>55e494d5-e2a0-11db-95d9-505054503030</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>21100</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                </Цены>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f7a-e371-11db-95d9-505054503030</Ид>
                <Цены>
                    <Цена>
                        <Представление>18 000 руб за шт</Представление>
                        <ИдТипаЦены>55e494d2-e2a0-11db-95d9-505054503030</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>18000</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>22 000 руб за шт</Представление>
                        <ИдТипаЦены>054efecc-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>22000</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>21 100 руб за шт</Представление>
                        <ИдТипаЦены>55e494d5-e2a0-11db-95d9-505054503030</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>21100</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>19 500 руб за шт</Представление>
                        <ИдТипаЦены>054efecb-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>19500</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>35 000 руб за шт</Представление>
                        <ИдТипаЦены>35323506-e424-11db-95d9-505054503030</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>35000</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                </Цены>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f7f-e371-11db-95d9-505054503030</Ид>
                <Цены>
                    <Цена>
                        <Представление>32 300 руб за шт</Представление>
                        <ИдТипаЦены>35323506-e424-11db-95d9-505054503030</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>32300</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                </Цены>
            </Предложение>
            <Предложение>
                <Ид>d92c3dd6-e81d-11db-95da-505054503030#d92c3dd8-e81d-11db-95da-505054503030</Ид>
                <Цены>
                    <Цена>
                        <Представление>22 165 руб за шт</Представление>
                        <ИдТипаЦены>054efecc-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>22165</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                </Цены>
            </Предложение>
            <Предложение>
                <Ид>d92c3dd6-e81d-11db-95da-505054503030#d92c3dd9-e81d-11db-95da-505054503030</Ид>
                <Цены>
                    <Цена>
                        <Представление>22 165 руб за шт</Представление>
                        <ИдТипаЦены>054efecc-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>22165</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                </Цены>
            </Предложение>
            <Предложение>
                <Ид>d92c3ddb-e81d-11db-95da-505054503030#d92c3dde-e81d-11db-95da-505054503030</Ид>
                <Цены>
                    <Цена>
                        <Представление>23 704 руб за шт</Представление>
                        <ИдТипаЦены>054efecc-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>23704</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                </Цены>
            </Предложение>
            <Предложение>
                <Ид>d92c3ddb-e81d-11db-95da-505054503030#d92c3ddf-e81d-11db-95da-505054503030</Ид>
                <Цены>
                    <Цена>
                        <Представление>23 704 руб за шт</Представление>
                        <ИдТипаЦены>054efecc-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>23704</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                </Цены>
            </Предложение>
            <Предложение>
                <Ид>d92c3ddb-e81d-11db-95da-505054503030#d92c3de0-e81d-11db-95da-505054503030</Ид>
                <Цены>
                    <Цена>
                        <Представление>23 704 руб за шт</Представление>
                        <ИдТипаЦены>054efecc-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>23704</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                </Цены>
            </Предложение>
            <Предложение>
                <Ид>d92c3de1-e81d-11db-95da-505054503030</Ид>
                <Цены>
                    <Цена>
                        <Представление>15 392 руб за шт</Представление>
                        <ИдТипаЦены>054efecc-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>15392</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                </Цены>
            </Предложение>
            <Предложение>
                <Ид>027b59b2-f498-11db-95da-505054503030</Ид>
                <Цены>
                    <Цена>
                        <Представление>5 100 руб за шт</Представление>
                        <ИдТипаЦены>55e494d5-e2a0-11db-95d9-505054503030</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>5100</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>1 700 руб за шт</Представление>
                        <ИдТипаЦены>054efecc-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>1700</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                    <Цена>
                        <Представление>1 550 руб за шт</Представление>
                        <ИдТипаЦены>054efecb-e140-11db-80b9-00c09f6bedaa</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>1550</ЦенаЗаЕдиницу>
                        <Валюта>руб</Валюта>
                    </Цена>
                </Цены>
            </Предложение>
        </Предложения>
    </ПакетПредложений>
</КоммерческаяИнформация>


Файл rests.xml

Описание

В файле rests.xml хранится информация об остатках предложений.

Элемент XML | Элемент Владелец XML | Описание
<КоммерческаяИнформация> | Нет | Главный элемент XML, которому подчинены все остальные. Хранит атрибуты с информацией о пространстве имен, версии схемы («ВерсияСхемы»), даты формирования («ДатаФормирования»), а также служебную информацию.
<ПакетПредложений> | <КоммерческаяИнформация> | Элемент содержит всю информацию о предложениях (предложения, цены, остатки). У него может быть один атрибут «СодержитТолькоИзменения», который в новой схеме обмена не используется, т.к. он бесполезен при пакетном обмене.
<Ид> | <ПакетПредложений> | Идентификатор пакета предложений. Для того, чтобы он привязался к инфоблоку товара с таким же идентификатором, у него в конце должен стоять символ #.
<Наименование> | <ПакетПредложений> | Наименование.
<ИдКаталога> | <ПакетПредложений> | Идентификатор каталога, к которому относится пакет предложений.
<ИдКлассификатора> | <ПакетПредложений> | Идентификатор классификатора, который относится к пакету предложений.
<Предложения> | <ПакетПредложений> | Элемент содержит информацию о предложениях товаров.
<Предложение> | <Предложения> | Элемент содержит описание предложения элемента.
<Ид> | <Предложение> | Идентификатор предложения. Если предложение сложное (состоит из 2 элементов), то идентификатор имеет формат: <ид_товара>#<ид_элемента>
<Остатки> | <Предложение> | Элемент содержит информацию об остатках предложения товара.
<Остаток> | <Остатки> | Элемент содержит описание остатка товаров.
<Количество> | <Остаток> | Остаток предложения по всем выгружаемым складам.
<Склад> | <Остаток> | Элемент содержит описание о складе и остатке предложения на нем.
<Ид> | <Склад> | Идентификатор склада.
<Количество> | <Склад> | Остаток предложения в разрезе склада.

Пример файла

<?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация xmlns="urn:1C.ru:commerceml_2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ВерсияСхемы="2.09" ДатаФормирования="2015-06-26T18:28:09">
    <ПакетПредложений СодержитТолькоИзменения="true">
        <Ид>3e376578-5aae-466f-8301-6842d2796cf9#</Ид>
        <Наименование>Пакет предложений (upp kaz)</Наименование>
        <ИдКаталога>3e376578-5aae-466f-8301-6842d2796cf9</ИдКаталога>
        <ИдКлассификатора>3e376578-5aae-466f-8301-6842d2796cf9</ИдКлассификатора>
        <Предложения>
            <Предложение>
                <Ид>0c1d5759-e36e-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>0c1d575b-e36e-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>200</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f4b-e371-11db-95d9-505054503030#1f7b8f4f-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f4b-e371-11db-95d9-505054503030#1f7b8f50-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f4b-e371-11db-95d9-505054503030#1f7b8f51-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f4b-e371-11db-95d9-505054503030#1f7b8f52-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f54-e371-11db-95d9-505054503030#1f7b8f56-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f54-e371-11db-95d9-505054503030#1f7b8f57-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f54-e371-11db-95d9-505054503030#1f7b8f58-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f5a-e371-11db-95d9-505054503030#1f7b8f5c-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f5a-e371-11db-95d9-505054503030#1f7b8f5d-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f5a-e371-11db-95d9-505054503030#1f7b8f5e-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f60-e371-11db-95d9-505054503030#1f7b8f64-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f60-e371-11db-95d9-505054503030#1f7b8f65-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f60-e371-11db-95d9-505054503030#1f7b8f66-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f60-e371-11db-95d9-505054503030#1f7b8f67-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f60-e371-11db-95d9-505054503030#5d2c9374-e4bb-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f60-e371-11db-95d9-505054503030#5d2c9375-e4bb-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f69-e371-11db-95d9-505054503030#1f7b8f6b-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f69-e371-11db-95d9-505054503030#1f7b8f6c-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f69-e371-11db-95d9-505054503030#1f7b8f6d-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f69-e371-11db-95d9-505054503030#1f7b8f6e-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f69-e371-11db-95d9-505054503030#1f7b8f6f-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f69-e371-11db-95d9-505054503030#5d2c9373-e4bb-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f71-e371-11db-95d9-505054503030#1f7b8f73-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f71-e371-11db-95d9-505054503030#1f7b8f74-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f71-e371-11db-95d9-505054503030#1f7b8f75-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f71-e371-11db-95d9-505054503030#1f7b8f76-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f71-e371-11db-95d9-505054503030#1f7b8f77-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f71-e371-11db-95d9-505054503030#1f7b8f78-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f7a-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>1f7b8f7f-e371-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>04bd497d-e378-11db-95d9-505054503030#04bd4981-e378-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>04bd4982-e378-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>04bd4984-e378-11db-95d9-505054503030#d3ecfa34-f96b-11db-779e-000423d3a104</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>04bd4986-e378-11db-95d9-505054503030#04bd4988-e378-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>04bd4986-e378-11db-95d9-505054503030#04bd4989-e378-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>04bd4986-e378-11db-95d9-505054503030#04bd498a-e378-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>503c629c-e3f6-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>503c629e-e3f6-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>503c62b0-e3f6-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>503c62b6-e3f6-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>503c62c6-e3f6-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>1</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>503c62c8-e3f6-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>1</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>d1b2d75c-e41c-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>d1b2d764-e41c-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>d1b2d76b-e41c-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>3532350a-e424-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>-0.853</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>35323514-e424-11db-95d9-505054503030#35323516-e424-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>2000</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>35323514-e424-11db-95d9-505054503030#35323517-e424-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>35323514-e424-11db-95d9-505054503030#35323518-e424-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>35323514-e424-11db-95d9-505054503030#35323519-e424-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>1210</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>35323514-e424-11db-95d9-505054503030#3532351a-e424-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>35323514-e424-11db-95d9-505054503030#54ab51da-e73f-11db-95da-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>35323514-e424-11db-95d9-505054503030#54ab51db-e73f-11db-95da-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>35323527-e424-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>429.153</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>3.904</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c7836f4-e432-11db-95d9-505054503030#7c7836f6-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c7836f4-e432-11db-95d9-505054503030#7c7836f7-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c7836f4-e432-11db-95d9-505054503030#7c7836f8-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c7836f4-e432-11db-95d9-505054503030#7c7836f9-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c7836f4-e432-11db-95d9-505054503030#7c7836fa-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c7836f4-e432-11db-95d9-505054503030#7c7836fc-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c7836fd-e432-11db-95d9-505054503030#7c7836ff-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c7836fd-e432-11db-95d9-505054503030#7c783700-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c7836fd-e432-11db-95d9-505054503030#7c783701-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783705-e432-11db-95d9-505054503030#7c783707-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783705-e432-11db-95d9-505054503030#7c783708-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783705-e432-11db-95d9-505054503030#7c783709-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78370a-e432-11db-95d9-505054503030#7c78370c-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78370a-e432-11db-95d9-505054503030#7c78370d-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78370a-e432-11db-95d9-505054503030#7c78370e-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78370a-e432-11db-95d9-505054503030#bc41018c-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78370a-e432-11db-95d9-505054503030#bc410191-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78370f-e432-11db-95d9-505054503030#7c783711-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78370f-e432-11db-95d9-505054503030#7c783712-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78370f-e432-11db-95d9-505054503030#7c783713-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78370f-e432-11db-95d9-505054503030#bc41018a-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78370f-e432-11db-95d9-505054503030#bc41018f-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783714-e432-11db-95d9-505054503030#7c783716-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783714-e432-11db-95d9-505054503030#7c783717-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783714-e432-11db-95d9-505054503030#7c783718-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783714-e432-11db-95d9-505054503030#bc41018b-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783714-e432-11db-95d9-505054503030#bc410190-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783719-e432-11db-95d9-505054503030#7c78371b-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783719-e432-11db-95d9-505054503030#7c78371c-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783719-e432-11db-95d9-505054503030#7c78371d-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783719-e432-11db-95d9-505054503030#bc41018d-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783719-e432-11db-95d9-505054503030#bc410192-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783719-e432-11db-95d9-505054503030#bc41019c-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78371e-e432-11db-95d9-505054503030#7c783720-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78371e-e432-11db-95d9-505054503030#7c783721-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78371e-e432-11db-95d9-505054503030#7c783722-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78371e-e432-11db-95d9-505054503030#bc410189-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78371e-e432-11db-95d9-505054503030#bc41018e-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783723-e432-11db-95d9-505054503030#7c783725-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783723-e432-11db-95d9-505054503030#7c783726-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783723-e432-11db-95d9-505054503030#7c783727-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783723-e432-11db-95d9-505054503030#bc41019a-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783723-e432-11db-95d9-505054503030#bc41019b-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783728-e432-11db-95d9-505054503030#7c78372a-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783728-e432-11db-95d9-505054503030#7c78372b-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783728-e432-11db-95d9-505054503030#7c78372c-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783728-e432-11db-95d9-505054503030#bc410199-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c783728-e432-11db-95d9-505054503030#03174acd-e67e-11db-95da-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78372d-e432-11db-95d9-505054503030#7c78372f-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78372d-e432-11db-95d9-505054503030#7c783730-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78372d-e432-11db-95d9-505054503030#7c783731-e432-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78372d-e432-11db-95d9-505054503030#bc410197-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>7c78372d-e432-11db-95d9-505054503030#bc410198-e508-11db-95d9-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>d92c3dd6-e81d-11db-95da-505054503030#d92c3dd8-e81d-11db-95da-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>1</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>d92c3dd6-e81d-11db-95da-505054503030#d92c3dd9-e81d-11db-95da-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>1</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>2</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>d92c3ddb-e81d-11db-95da-505054503030#d92c3dde-e81d-11db-95da-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>1</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>2</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>d92c3ddb-e81d-11db-95da-505054503030#d92c3ddf-e81d-11db-95da-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>1</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>1</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>d92c3ddb-e81d-11db-95da-505054503030#d92c3de0-e81d-11db-95da-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>1</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>1</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>d92c3de1-e81d-11db-95da-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>2</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>2</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>5b88f790-e8ee-11db-95da-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>efcf6c78-e97d-11db-95da-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>027b59ab-f498-11db-95da-505054503030#027b59b0-f498-11db-95da-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>96</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>027b59ab-f498-11db-95da-505054503030#027b59b1-f498-11db-95da-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>96</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>027b59b2-f498-11db-95da-505054503030</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>47</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>911#119</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>ORDER_DELIVERY</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>9719465b-417c-11dc-a5a2-0011118870aa</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>1</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>9719465d-417c-11dc-a5a2-0011118870aa</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
            <Предложение>
                <Ид>97194663-417c-11dc-a5a2-0011118870aa</Ид>
                <Остатки>
                    <Остаток>
                        <Склад>
                            <Ид>054efec9-e140-11db-80b9-00c09f6bedaa</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feaa-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feab-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feac-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5fead-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                    <Остаток>
                        <Склад>
                            <Ид>41b5feae-e25d-11db-95d9-505054503030</Ид>
                            <Количество>0</Количество>
                        </Склад>
                    </Остаток>
                </Остатки>
            </Предложение>
        </Предложения>
    </ПакетПредложений>
</КоммерческаяИнформация>


Файл documents.xml

Описание

В файле documents.xml хранится информация о документах.

Элемент XML | Элемент Владелец XML | Описание
<КоммерческаяИнформация> | Нет | Главный элемент XML, которому подчинены все остальные. Хранит атрибуты с информацией о пространстве имен, версии схемы («ВерсияСхемы»), дате формирования («ДатаФормирования»), а также служебную информацию.
<Контейнер> | <КоммерческаяИнформация> | В каждом контейнере, согласно CommerceML (version=3.1), хранятся все документы конкретного заказа. Например, есть заказ 1, по нему 2 оплаты и одна отгрузка и есть заказ 2, по которому только одна оплата. Тогда в XML у нас получается 2 контейнера: в одном 4 документа (заказ, 2 оплаты и отгрузка), в втором только 2 (оплата и отгрузка).
<Документ> | <Контейнер> | Элемент содержит информацию о документе. Каждый элемент содержит информацию о документе.
<Ид> | <Документ> | Идентификатор документа.
<Номер> | <Документ> | Номер документа сайта.
<Номер1С> | <Документ> | Номер документа учетной системы.
<Дата> | <Документ> | Дата документа с сайта.
<Дата1С> | <Документ> | Дата документа учетной системы.
<ПометкаУдаления> | <Документ> | Признак того, что документ удален.
<ХозОперация> <Документ> Признак, определяющий тип документа. Может быть:
  • Заказ товара (заказ)*
  • Счет на оплату
  • Отпуск товара(отгрузка)*
  • Счет-фактура
  • Возврат товара
  • Передача товара на комиссию
  • Возврат комиссионного товара
  • Отчет о продажах комиссионного товара
  • Выплата наличных денег
  • Возврат наличных денег
  • Выплата безналичных денег
  • Возврат безналичных денег
  • Передача прав
  • Прочие
* - только данные операции используются в "1С-Битрикс: Управление сайтом".
<Основание> | <Документ> | Идентификатор документа основания.
<Роль> | <Документ> | Роль. Для документов равно «Продавец».
<Валюта> | <Документ> | Валюта документа.
<Курс> | <Документ> | Курс валюты.
<Сумма> | <Документ> | Сумма документа.
<Контрагенты> | <Документ> | Элемент содержит информацию о покупателях заказа.
<Контрагент> | <Контрагенты> | Элемент содержит информацию о покупателе. Структура элемента такая же, как <Контрагенты> в файле контрагентов contragents.xml.
<Время> | <Документ> | Время создания документа.
<Комментарий> | <Документ> | Комментарий к документу.
<Налоги> | <Документ> | Элемент содержит информацию о налогах, используемых в документе.
<Налог> | <Налоги> | Элемент содержит информацию о налоге, используемом в документе.
<Наименование> | <Налог> | Наименование налога.
<УчтеноВСумме> | <Налог> | Признак того, учтен ли налог в сумме документа.
<Сумма> | <Налог> | Сумма налога.
<Товары> | <Документ> | Элемент содержит информацию о товарах документа.
<Скидки> | <Скидки> | Элемент содержит информацию о скидках.
<Скидка> | <Скидка> | Элемент содержит информацию о скидке.
<Наименование> | <Скидка> | Наименование скидки.
<Сумма> | <Скидка> | Сумма скидки.
<УчтеноВСумме> | <Скидка> | Учтена скидка в сумме или нет.
<Товар> | <Товары> | Элемент содержит информацию о заказываемой позиции.
<Ид> | <Товар> | Идентификатор предложения. Если это услуга доставки, тогда идентификатор будет равен «ORDER_DELIVERY», а наименование - «Доставка заказа».
<Наименование> | <Товар> | Наименование товара.
<БазоваяЕдиница> | <Товар> | Наименование базовой единицы товара. У элемента есть атрибуты: «Код», «НаименованиеПолное», «МеждународноеСокращение».
<СтавкиНалогов> | <Товар> | Элемент содержит информацию о налогах товара.
<СтавкаНалога> | <СтавкиНалогов> | Ставка налога.
<Наименование> | <СтавкаНалога> | Наименование налога.
<Ставка> | <СтавкаНалога> | Ставка налога товара.
<ЗначенияРеквизитов> | <Товар> | Элемент содержит дополнительную информацию о товаре.
<ЗначениеРеквизита> | <ЗначенияРеквизитов> | Элемент содержит описание дополнительной информации товара.
<Наименование> | <ЗначениеРеквизита> | Наименование дополнительной информации товара.
<Значение> | <ЗначениеРеквизита> | Значение дополнительной информации товара.
<ЦенаЗаЕдиницу> | <Товар> | Цена за предложение в базовых единицах.
<Количество> | <Товар> | Количество заказываемого предложения.
<Сумма> | <Товар> | Сумма строки предложения.
<Единица> | <Товар> | Наименование единицы измерения.
<Код> | <Единица> | Код единицы измерения.
<НаименованиеПолное> | <Единица> | Полное наименование единицы измерения.
<Коэффициент> | <Товар> | Коэффициент единицы измерения.
<Налоги> | <Товар> | Элемент содержит информацию о налогах, используемыех в заказываемой позиции предложения.
<Налог> | <Налоги> | Элемент содержит информацию о налоге позиции предложения.
<Наименование> | <Налог> | Наименование налога.
<УчтеноВСумме> | <Налог> | Признак того, учтен ли налог в позицию предложения.
<Сумма> | <Налог> | Сумма налога.
<Ставка> | <Налог> | Ставка налога.
<Скидки> | <Скидки> | Элемент содержит информацию о скидках.
<Скидка> | <Скидка> | Элемент содержит информацию о скидке.
<Наименование> | <Скидка> | Наименование скидки.
<Сумма> | <Скидка> | Сумма скидки.
<УчтеноВСумме> | <Скидка> | Учтена скидка в сумме или нет.
<ЗначенияРеквизитов> | <Документ> | Элемент содержит дополнительную информацию о документе.
<ЗначениеРеквизита> | <ЗначенияРеквизитов> | Элемент содержит описание дополнительной информации документа.
<Наименование> <ЗначениеРеквизита> Наименование дополнительной информации товара. Есть важные предопределенные наименования дополнительной информации заказа:
  • Метод оплаты ИД содержит идентификатор используемой платежной системы.
  • Статуса заказа ИД содержит идентификатор установленного статуса в документе.
  • Сайт содержит наименование сайта.
  • Адрес доставки содержит адрес доставки товара.
  • Доп. реквизит с наименованием Отменен отвечает за то, что был ли документ на сайте отменен.
  • Если документ в учетную систему отгружен, тогда нужно выгружать:
    • «Номер отгрузки по 1С»;
    • «Дата отгрузки по 1С».
    Тогда на сайте установится признак, что документ отгружен.
  • Если документ в учетной системе оплачен, тогда нужно выгружать:
    • «Номер оплаты по 1С»;
    • «Дата оплаты по 1С».
    Тогда на сайте установится признак, что документ оплачен.
<Значение> | <ЗначениеРеквизита> | Значение дополнительной информации документа.

Пример файла

<?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация xmlns="urn:1C.ru:commerceml_2" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ВерсияСхемы="2.09" ДатаФормирования="2015-06-29T18:27:13" Ид="1">
   <Контейнер>
    <Документ>
        <Ид>142</Ид>
        <НомерВерсии>AAAAEAAAAAA=</НомерВерсии>
        <ПометкаУдаления>false</ПометкаУдаления>
        <Номер>142</Номер>
        <Номер1С>ТДЦУ-000001</Номер1С>
        <Дата>2015-06-29</Дата>
        <Дата1С>2015-06-29</Дата1С>
        <Время>15:39:10</Время>
        <ХозОперация>Заказ товара</ХозОперация>
        <Контрагенты>
            <Контрагент>
                <Ид>4a65ecb6-8b1b-11df-be16-e0cb4ed5f70f</Ид>
                <НомерВерсии>AAAAAQAAAG4=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Kikinda (Сербия)</Наименование>
                <ОфициальноеНаименование>Kikinda (Сербия)</ОфициальноеНаименование>
                <Роль>Покупатель</Роль>
                <ИНН/>
                <КПП/>
                <КодПоОКПО/>
                <РасчетныеСчета>
                    <РасчетныйСчет>
                        <НомерСчета>89000</НомерСчета>
                        <Банк>
                            <Наименование>ИНГ БАНК (ЕВРАЗИЯ) АО</Наименование>
                            <СчетКорреспондентский>30101810500000000222</СчетКорреспондентский>
                            <БИК>044525222</БИК>
                        </Банк>
                        <БанкКорреспондент/>
                    </РасчетныйСчет>
                    <РасчетныйСчет>
                        <НомерСчета>5678999</НомерСчета>
                        <Банк>
                            <Наименование>"МИЛЛЕНИУМ БАНК" (ЗАО)</Наименование>
                            <СчетКорреспондентский>30101810500000000555</СчетКорреспондентский>
                            <БИК>044579555</БИК>
                        </Банк>
                        <БанкКорреспондент/>
                    </РасчетныйСчет>
                </РасчетныеСчета>
                <Представители>
                    <Представитель>
                        <Отношение>Контактное лицо</Отношение>
                        <Ид>5018186c-ddb3-11df-aeb7-0015e9b8c48d</Ид>
                        <Наименование>Смирнов Олег Иванович</Наименование>
                    </Представитель>
                </Представители>
                <Адрес>
                    <Представление>Адрес</Представление>
                </Адрес>
            </Контрагент>
        </Контрагенты>
        <Склады>
            <Склад>
                <Ид>6f87e83f-722c-11df-b336-0011955cba6b</Ид>
                <Наименование>Центральный склад</Наименование>
            </Склад>
        </Склады>
        <Валюта>RUB</Валюта>
        <Курс>1.0000</Курс>
        <Сумма>8186.84</Сумма>
        <Роль>Продавец</Роль>
        <Комментарий>[Номер документа на сайте: 142]</Комментарий>
        <Налоги>
            <Налог>
                <Наименование>НДС</Наименование>
                <УчтеноВСумме>false</УчтеноВСумме>
                <Сумма>1248.84</Сумма>
            </Налог>
        </Налоги>
        <ЗначенияРеквизитов>
            <ЗначениеРеквизита>
                <Наименование>Проведен</Наименование>
                <Значение>true</Значение>
            </ЗначениеРеквизита>
            <ЗначениеРеквизита>
                <Наименование>Номер оплаты по 1С</Наименование>
                <Значение>ТДЦУ-000001</Значение>
            </ЗначениеРеквизита>
            <ЗначениеРеквизита>
                <Наименование>Дата оплаты по 1С</Наименование>
                <Значение>2015-06-29T15:39:10</Значение>
            </ЗначениеРеквизита>
            <ЗначениеРеквизита>
                <Наименование>Номер отгрузки по 1С</Наименование>
                <Значение>ТДЦУ-000003</Значение>
            </ЗначениеРеквизита>
            <ЗначениеРеквизита>
                <Наименование>Дата отгрузки по 1С</Наименование>
                <Значение>2015-06-29T17:32:27</Значение>
            </ЗначениеРеквизита>
            <ЗначениеРеквизита>
                <Наименование>Статуса заказа ИД</Наименование>
                <Значение>P</Значение>
            </ЗначениеРеквизита>
        </ЗначенияРеквизитов>
        <Товары>
            <Товар>
                <Ид>cbcf493f-55bc-11d9-848a-00112f43529a</Ид>
                <Наименование>Вентилятор BINATONE ALPINE 160вт, напольный ,</Наименование>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>18</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Электротовары</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Единица>
                    <Ид>796</Ид>
                    <НаименованиеКраткое>шт</НаименованиеКраткое>
                    <Код>796</Код>
                    <НаименованиеПолное>Штука</НаименованиеПолное>
                </Единица>
                <Коэффициент>1</Коэффициент>
                <Количество>1</Количество>
                <Цена>3338</Цена>
                <Сумма>3338</Сумма>
                <Налоги>
                    <Налог>
                        <Наименование>НДС</Наименование>
                        <УчтеноВСумме>false</УчтеноВСумме>
                        <Сумма>600.84</Сумма>
                        <Ставка>18</Ставка>
                    </Налог>
                </Налоги>
            </Товар>
            <Товар>
                <Ид>bd72d913-55bc-11d9-848a-00112f43529a#b02e2814-720f-11df-b436-0015e92f2802</Ид>
                <Наименование>Ботинки женские демисезонные (35, 5, натуральная кожа, Бежевый)</Наименование>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>18</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Обувь</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Единица>
                    <Ид>715</Ид>
                    <НаименованиеКраткое>пар</НаименованиеКраткое>
                    <Код>715</Код>
                    <НаименованиеПолное>Пара (2 шт.)</НаименованиеПолное>
                </Единица>
                <Коэффициент>1</Коэффициент>
                <Количество>1</Количество>
                <Цена>3600</Цена>
                <Сумма>3600</Сумма>
                <Налоги>
                    <Налог>
                        <Наименование>НДС</Наименование>
                        <УчтеноВСумме>false</УчтеноВСумме>
                        <Сумма>648</Сумма>
                        <Ставка>18</Ставка>
                    </Налог>
                </Налоги>
            </Товар>
        </Товары>
    </Документ>
    <Документ>
        <Ид>235</Ид>
        <НомерВерсии>AAAAMAAAAAA=</НомерВерсии>
        <ПометкаУдаления>false</ПометкаУдаления>
        <Номер>235</Номер>
        <Номер1С>ТДЦУ-000002</Номер1С>
        <Дата>2015-06-29</Дата>
        <Дата1С>2015-06-29</Дата1С>
        <Время>16:36:25</Время>
        <ХозОперация>Отпуск товара</ХозОперация>
        <Основание>142</Основание>
        <Контрагенты>
            <Контрагент>
                <Ид>4a65ecb6-8b1b-11df-be16-e0cb4ed5f70f</Ид>
                <НомерВерсии>AAAAAQAAAG4=</НомерВерсии>
                <ПометкаУдаления>false</ПометкаУдаления>
                <Наименование>Kikinda (Сербия)</Наименование>
                <ОфициальноеНаименование>Kikinda (Сербия)</ОфициальноеНаименование>
                <Роль>Покупатель</Роль>
                <ИНН/>
                <КПП/>
                <КодПоОКПО/>
                <РасчетныеСчета>
                    <РасчетныйСчет>
                        <НомерСчета>89000</НомерСчета>
                        <Банк>
                            <Наименование>ИНГ БАНК (ЕВРАЗИЯ) АО</Наименование>
                            <СчетКорреспондентский>30101810500000000222</СчетКорреспондентский>
                            <БИК>044525222</БИК>
                        </Банк>
                        <БанкКорреспондент/>
                    </РасчетныйСчет>
                    <РасчетныйСчет>
                        <НомерСчета>5678999</НомерСчета>
                        <Банк>
                            <Наименование>"МИЛЛЕНИУМ БАНК" (ЗАО)</Наименование>
                            <СчетКорреспондентский>30101810500000000555</СчетКорреспондентский>
                            <БИК>044579555</БИК>
                        </Банк>
                        <БанкКорреспондент/>
                    </РасчетныйСчет>
                </РасчетныеСчета>
                <Представители>
                    <Представитель>
                        <Отношение>Контактное лицо</Отношение>
                        <Ид>5018186c-ddb3-11df-aeb7-0015e9b8c48d</Ид>
                        <Наименование>Смирнов Олег Иванович</Наименование>
                    </Представитель>
                </Представители>
                <Адрес>
                    <Представление>Адрес</Представление>
                </Адрес>
            </Контрагент>
        </Контрагенты>
        <Склады>
            <Склад>
                <Ид>6f87e83f-722c-11df-b336-0011955cba6b</Ид>
                <Наименование>Центральный склад</Наименование>
            </Склад>
        </Склады>
        <Валюта>RUB</Валюта>
        <Курс>1.0000</Курс>
        <Сумма>4100</Сумма>
        <Роль>Продавец</Роль>
        <Комментарий>[Номер документа на сайте: 235] </Комментарий>
        <Налоги>
            <Налог>
                <Наименование>НДС</Наименование>
                <УчтеноВСумме>true</УчтеноВСумме>
                <Сумма>625.42</Сумма>
            </Налог>
        </Налоги>
        <ЗначенияРеквизитов>
            <ЗначениеРеквизита>
                <Наименование>Проведен</Наименование>
                <Значение>true</Значение>
            </ЗначениеРеквизита>
            <ЗначениеРеквизита>
                <Наименование>Номер оплаты по 1С</Наименование>
                <Значение>ТДЦУ-000002</Значение>
            </ЗначениеРеквизита>
            <ЗначениеРеквизита>
                <Наименование>Дата оплаты по 1С</Наименование>
                <Значение>2015-06-29T16:36:25</Значение>
            </ЗначениеРеквизита>
            <ЗначениеРеквизита>
                <Наименование>Статуса заказа ИД</Наименование>
                <Значение>P</Значение>
            </ЗначениеРеквизита>
        </ЗначенияРеквизитов>
        <Товары>
            <Товар>
                <Ид>bd72d913-55bc-11d9-848a-00112f43529a#b02e2814-720f-11df-b436-0015e92f2802</Ид>
                <Наименование>Ботинки женские демисезонные (35, 5, натуральная кожа, Бежевый)</Наименование>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>18</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Обувь</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Товар</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Единица>
                    <Ид>715</Ид>
                    <НаименованиеКраткое>пар</НаименованиеКраткое>
                    <Код>715</Код>
                    <НаименованиеПолное>Пара (2 шт.)</НаименованиеПолное>
                </Единица>
                <Коэффициент>1</Коэффициент>
                <Количество>1</Количество>
                <Цена>3600</Цена>
                <Сумма>3600</Сумма>
                <Налоги>
                    <Налог>
                        <Наименование>НДС</Наименование>
                        <УчтеноВСумме>true</УчтеноВСумме>
                        <Сумма>549.15</Сумма>
                        <Ставка>18</Ставка>
                    </Налог>
                </Налоги>
            </Товар>
            <Товар>
                <Ид>ORDER_DELIVERY</Ид>
                <Наименование>Доставка заказа</Наименование>
                <СтавкиНалогов>
                    <СтавкаНалога>
                        <Наименование>НДС</Наименование>
                        <Ставка>18</Ставка>
                    </СтавкаНалога>
                </СтавкиНалогов>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>ВидНоменклатуры</Наименование>
                        <Значение>Услуга</Значение>
                    </ЗначениеРеквизита>
                    <ЗначениеРеквизита>
                        <Наименование>ТипНоменклатуры</Наименование>
                        <Значение>Услуга</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
                <Единица>
                    <Ид>796</Ид>
                    <НаименованиеКраткое>шт</НаименованиеКраткое>
                    <Код>796</Код>
                    <НаименованиеПолное>Штука</НаименованиеПолное>
                </Единица>
                <Коэффициент>1</Коэффициент>
                <Количество>1</Количество>
                <Цена>500</Цена>
                <Сумма>500</Сумма>
                <Налоги>
                    <Налог>
                        <Наименование>НДС</Наименование>
                        <УчтеноВСумме>true</УчтеноВСумме>
                        <Сумма>76.27</Сумма>
                        <Ставка>18</Ставка>
                    </Налог>
                </Налоги>
            </Товар>
        </Товары>
    </Документ>
   </Контейнер>
</КоммерческаяИнформация>


Файл contragents.xml

Описание

В файле contragents.xml хранится информация о контрагентах.

Элемент XML | Элемент Владелец XML | Описание
<КоммерческаяИнформация> | Нет | Главный элемент XML, которому подчинены все остальные. Хранит атрибуты с информацией о пространстве имен, версии схемы («ВерсияСхемы»), даты формирования («ДатаФормирования»), а также служебную информацию.
<Контрагенты> | <КоммерческаяИнформация> | Элемент содержит информацию о контрагентах. У него может быть один атрибут «СодержитТолькоИзменения», который в новой схеме обмена не используется, т.к. он бесполезен при пакетном обмене.
<Контрагент> | <Контрагенты> | Элемент содержит описание контрагента.
<Ид> | <Контрагент> | Идентификатор контрагента.
<НомерВерсии> | <Контрагент> | Номер версии элемента.
<ПометкаУдаления> | <Контрагент> | Признак того, что элемент деактивирован.
<Наименование> | <Контрагент> | Наименование контрагента.
<ОфициальноеНаименование> | <Контрагент> | Полное наименование контрагента. Используется, если контрагент юридическое лицо.
<ПолноеНаименование> | <Контрагент> | Полное наименование контрагента. Используется, если контрагент физическое лицо.
<Роль> | <Контрагент> | Роль контрагента. Если он является покупателем, то значение равно Покупатель.
<ИНН> | <Контрагент> | ИНН контрагента.
<КПП> | <Контрагент> | КПП контрагента.
<КодПоОКПО> | <Контрагент> | Код по ОКПО контрагента.
<РасчетныеСчета> | <Контрагент> | Элемент содержит информацию о расчетных счетах контрагента.
<РасчетныйСчет> | <РасчетныеСчета> | Элемент содержит описание счета контрагента.
<НомерСчета> | <РасчетныйСчет> | Номер счета.
<Банк> | <РасчетныйСчет> | Банк, в котором открыт расчетный счет.
<Наименование> | <Банк> | Наименование банка.
<СчетКорреспондентский> | <Банк> | Корреспондентский счет банка.
<БИК> | <Банк> | БИК банка.
<БанкКорреспондент> | <РасчетныйСчет> | Банк, в случае непрямых расчетов.
<Наименование> | <БанкКорреспондент> | Наименование банка.
<СчетКорреспондентский> | <БанкКорреспондент> | Корреспондентский счет банка.
<БИК> | <БанкКорреспондент> | БИК банка.
<Представители> | <Контрагент> | Элемент содержит информацию о контактных лицах контрагента.
<Представитель> | <Представители> | Элемент содержит описание контактного лица.
<Отношение> | <Представитель> | Для контактного лица значение равно Контактное лицо.
<Ид> | <Представитель> | Идентификатор контактного лица.
<Наименование> | <Представитель> | Наименование контактного лица.
<АдресРегистрации> | <Контрагент> | Элемент содержит адрес регистрации контрагента. Используется для физических лиц.
<Представление> | <АдресРегистрации> | Представление адреса.
<Комментарий> | <АдресРегистрации> | Комментарий к адресу.
<АдресноеПоле> | <АдресРегистрации> | Элемент содержит информацию об адресе, разбитую по типам данных.
<Тип> | <АдресноеПоле> | Тип данных о контактной информации. Он может быть: Почтовый индекс, Населенный пункт, Регион, Страна, Район, Город, Улица, Дом, Корпус, Квартира.
<Значение> | <АдресноеПоле> | Значение типа данных адреса.
<Адрес> | <Контрагент> | Элемент содержит адрес регистрации контрагента. Используется для юридических лиц.
<Представление> | <АдресРегистрации> | Представление адреса.
<Комментарий> | <АдресРегистрации> | Комментарий к адресу.
<АдресноеПоле> | <АдресРегистрации> | Элемент содержит информацию об адресе, разбитую по типам данных.
<Тип> | <АдресноеПоле> | Тип данных о контактной информации. Он может быть: Почтовый индекс, Населенный пункт, Регион, Страна, Район, Город, Улица, Дом, Корпус, Квартира.
<Значение> | <АдресноеПоле> | Значение типа данных адреса.
<Контакты> | <Контрагент> | Элемент содержит информацию о контактах контрагента.
<Контакт> | <Контакты> | В элементе содержится описание контакта.
<Тип> | <Контакт> | Тип контактной информации. Типов много, но используется только два: Электронная почта и Телефон рабочий.
<Значение> | <Контакт> | Значение контакта.
<Комментарий> | <Контакт> | Комментарий к контакту.

Пример файла

<?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация xmlns="urn:1C.ru:commerceml_2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ВерсияСхемы="2.09" ДатаФормирования="2015-06-26T18:28:11">
    <Контрагенты СодержитТолькоИзменения="true">
        <Контрагент>
            <Ид>d9510b52-e154-11db-80b9-00c09f6bedaa</Ид>
            <НомерВерсии>AAAAAQAAAAA=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>Удаленный отдел "Уют"</Наименование>
            <ОфициальноеНаименование>Удаленный отдел "Уют"</ОфициальноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН/>
            <КПП/>
            <КодПоОКПО/>
        </Контрагент>
        <Контрагент>
            <Ид>4141d5ec-e2a6-11db-95d9-505054503030</Ид>
            <НомерВерсии>AAAAAQAAAAc=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>Алтай ТОО</Наименование>
            <ОфициальноеНаименование>ТОО "Алтай"</ОфициальноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>181310839110</ИНН>
            <КПП/>
            <КодПоОКПО/>
        </Контрагент>
        <Контрагент>
            <Ид>021e0e3f-e329-11db-95d9-505054503030</Ид>
            <НомерВерсии>AAAAAQAAAAk=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>ТД Уют</Наименование>
            <ОфициальноеНаименование>ТОО "ТД Уют"</ОфициальноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>181620360057</ИНН>
            <КПП/>
            <КодПоОКПО/>
            <РасчетныеСчета>
                <РасчетныйСчет>
                    <НомерСчета>798321</НомерСчета>
                    <Банк>
                        <СчетКорреспондентский>21847800</СчетКорреспондентский>
                        <Наименование>Филиал ОАО Банк ТуранАлем</Наименование>
                        <Адрес>
                            <Представление>Алматы, ул. Пролетарская 159</Представление>
                        </Адрес>
                        <БИК>190701310</БИК>
                    </Банк>
                    <БанкКорреспондент/>
                </РасчетныйСчет>
            </РасчетныеСчета>
            <АдресРегистрации>
                <Представление>005897, Города Республиканского значения: Алматы, Тохтарова, дом № 18</Представление>
                <АдресноеПоле>
                    <Тип>Почтовый индекс</Тип>
                    <Значение>005897</Значение>
                </АдресноеПоле>
                <АдресноеПоле>
                    <Тип>Страна</Тип>
                    <Значение>005897</Значение>
                </АдресноеПоле>
                <АдресноеПоле>
                    <Тип>Регион</Тип>
                    <Значение>Города Республиканского значения: Алматы </Значение>
                </АдресноеПоле>
                <АдресноеПоле>
                    <Тип>Улица</Тип>
                    <Значение>Тохтарова</Значение>
                </АдресноеПоле>
                <АдресноеПоле>
                    <Тип>Дом</Тип>
                    <Значение>18</Значение>
                </АдресноеПоле>
            </АдресРегистрации>
            <Контакты>
                <Контакт>
                    <Тип>Электронная почта</Тип>
                    <Значение>Uyt@komp.kz</Значение>
                </Контакт>
                <Контакт>
                    <Тип>Телефон рабочий</Тип>
                    <Значение>+7 (3272) 25-39-39</Значение>
                </Контакт>
            </Контакты>
            <Представители>
                <Представитель>
                    <Отношение>Контактное лицо</Отношение>
                    <Ид>640a2bf0-e8ac-11db-95da-505054503030</Ид>
                    <Наименование>Коновалов Александр Зиновьевич</Наименование>
                </Представитель>
            </Представители>
        </Контрагент>
        <Контрагент>
            <Ид>c5b29133-e35a-11db-95d9-505054503030</Ид>
            <НомерВерсии>AAAAAQAAAAw=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>Банк ТуранАлем ОАО</Наименование>
            <ОфициальноеНаименование>ОАО "Банк ТуранАлем"</ОфициальноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>600520144856</ИНН>
            <КПП/>
            <КодПоОКПО/>
        </Контрагент>
        <Контрагент>
            <Ид>7f37e17b-e36a-11db-95d9-505054503030</Ид>
            <НомерВерсии>AAAAAQAAAA4=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>Станколайн</Наименование>
            <ОфициальноеНаименование>ТОО "Станколайн"</ОфициальноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>181745369587</ИНН>
            <КПП/>
            <КодПоОКПО/>
            <РасчетныеСчета>
                <РасчетныйСчет>
                    <НомерСчета>000524182</НомерСчета>
                    <Банк>
                        <СчетКорреспондентский>21847800</СчетКорреспондентский>
                        <Наименование>Филиал ОАО Банк ТуранАлем</Наименование>
                        <Адрес>
                            <Представление>Алматы, ул. Пролетарская 159</Представление>
                        </Адрес>
                        <БИК>190701310</БИК>
                    </Банк>
                    <БанкКорреспондент/>
                </РасчетныйСчет>
            </РасчетныеСчета>
        </Контрагент>
        <Контрагент>
            <Ид>bc82b4d6-e36b-11db-95d9-505054503030</Ид>
            <НомерВерсии>AAAAAQAAABA=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>Соколов Иван Владимирович</Наименование>
            <ПолноеНаименование>Соколов Иван Владимирович</ПолноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>181620031582</ИНН>
            <КПП/>
            <КодПоОКПО/>
        </Контрагент>
        <Контрагент>
            <Ид>ff0f60da-e3e1-11db-95d9-505054503030</Ид>
            <НомерВерсии>AAAAAQAAABE=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>ИнкомВосток ТОО</Наименование>
            <ОфициальноеНаименование>ТОО "ИнкомВосток"</ОфициальноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>181712262420</ИНН>
            <КПП/>
            <КодПоОКПО/>
            <РасчетныеСчета>
                <РасчетныйСчет>
                    <НомерСчета>131182</НомерСчета>
                    <Банк>
                        <СчетКорреспондентский>001254653</СчетКорреспондентский>
                        <Наименование>Народный банк Казахстана</Наименование>
                        <БИК>190701326  </БИК>
                    </Банк>
                    <БанкКорреспондент/>
                </РасчетныйСчет>
            </РасчетныеСчета>
            <АдресРегистрации>
                <Представление>Астана г., Оразбекова, дом № 198, корпус 2</Представление>
                <АдресноеПоле>
                    <Тип>Город</Тип>
                    <Значение>Астана г.</Значение>
                </АдресноеПоле>
                <АдресноеПоле>
                    <Тип>Улица</Тип>
                    <Значение>Оразбекова</Значение>
                </АдресноеПоле>
                <АдресноеПоле>
                    <Тип>Дом</Тип>
                    <Значение>198</Значение>
                </АдресноеПоле>
                <АдресноеПоле>
                    <Тип>Корпус</Тип>
                    <Значение>2</Значение>
                </АдресноеПоле>
            </АдресРегистрации>
            <Контакты>
                <Контакт>
                    <Тип>Электронная почта</Тип>
                    <Значение>inkom@sa.kz</Значение>
                </Контакт>
                <Контакт>
                    <Тип>Телефон рабочий</Тип>
                    <Значение>+7 (3172) 26-26-26</Значение>
                </Контакт>
            </Контакты>
            <Представители>
                <Представитель>
                    <Отношение>Контактное лицо</Отношение>
                    <Ид>5d2c9344-e4bb-11db-95d9-505054503030</Ид>
                    <Наименование>Артеменко Владимир Александрович</Наименование>
                </Представитель>
                <Представитель>
                    <Отношение>Контактное лицо</Отношение>
                    <Ид>f51a2fa8-e4b7-11db-95d9-505054503030</Ид>
                    <Наименование>Бакинова Надежда Станиславовна</Наименование>
                </Представитель>
                <Представитель>
                    <Отношение>Контактное лицо</Отношение>
                    <Ид>5d2c9347-e4bb-11db-95d9-505054503030</Ид>
                    <Наименование>Косарева Александра Васильевна</Наименование>
                </Представитель>
                <Представитель>
                    <Отношение>Контактное лицо</Отношение>
                    <Ид>ff0f60e0-e3e1-11db-95d9-505054503030</Ид>
                    <Наименование>Солодянкин Виктор Борисович</Наименование>
                </Представитель>
            </Представители>
        </Контрагент>
        <Контрагент>
            <Ид>ff0f60e4-e3e1-11db-95d9-505054503030</Ид>
            <НомерВерсии>AAAAAQAAABI=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>ИнфоБизнес ТОО</Наименование>
            <ОфициальноеНаименование>ТОО "Инфо-Бизнес"</ОфициальноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>181710702660</ИНН>
            <КПП/>
            <КодПоОКПО/>
        </Контрагент>
        <Контрагент>
            <Ид>001dd855-e3fc-11db-95d9-505054503030</Ид>
            <НомерВерсии>AAAAAQAAABQ=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>Валерьева Екатерина Александровна</Наименование>
            <ПолноеНаименование>Валерьева Екатерина Александровна</ПолноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН> 18162036005</ИНН>
            <КПП/>
            <КодПоОКПО/>
        </Контрагент>
        <Контрагент>
            <Ид>362b0d19-e4f8-11db-95d9-505054503030</Ид>
            <НомерВерсии>AAAAAQAAABY=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>ЛИК</Наименование>
            <ОфициальноеНаименование>ТОО "ЛИК"</ОфициальноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>181712697649</ИНН>
            <КПП/>
            <КодПоОКПО/>
            <РасчетныеСчета>
                <РасчетныйСчет>
                    <НомерСчета>000524182</НомерСчета>
                    <Банк>
                        <СчетКорреспондентский>21847800</СчетКорреспондентский>
                        <Наименование>Филиал ОАО Банк ТуранАлем</Наименование>
                        <Адрес>
                            <Представление>Алматы, ул. Пролетарская 159</Представление>
                        </Адрес>
                        <БИК>190701310</БИК>
                    </Банк>
                    <БанкКорреспондент/>
                </РасчетныйСчет>
            </РасчетныеСчета>
            <Контакты>
                <Контакт>
                    <Тип>Электронная почта</Тип>
                    <Значение>lik@mail.kz</Значение>
                </Контакт>
            </Контакты>
            <Представители>
                <Представитель>
                    <Отношение>Контактное лицо</Отношение>
                    <Ид>362b0d1c-e4f8-11db-95d9-505054503030</Ид>
                    <Наименование>Алуфьев Ринат Эдуардович</Наименование>
                </Представитель>
            </Представители>
        </Контрагент>
        <Контрагент>
            <Ид>f77a3671-e652-11db-95d9-505054503030</Ид>
            <НомерВерсии>AAAAAQAAABg=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>СпецТранспорт ТОО</Наименование>
            <ОфициальноеНаименование>Товарищество с ограниченной ответственностью "СпецТранспорт"</ОфициальноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>181712454301</ИНН>
            <КПП/>
            <КодПоОКПО/>
        </Контрагент>
        <Контрагент>
            <Ид>e3f2cbe8-e65c-11db-95d9-505054503030</Ид>
            <НомерВерсии>AAAAAQAAABk=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>Павлодарский мебельный комбинат</Наименование>
            <ОфициальноеНаименование>ТОО "Павлодарский мебельный комбинат"</ОфициальноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>181715121418</ИНН>
            <КПП/>
            <КодПоОКПО/>
            <Адрес>
                <Представление>Павлодарская область, Павлодар г.</Представление>
                <АдресноеПоле>
                    <Тип>Регион</Тип>
                    <Значение>Павлодарская область </Значение>
                </АдресноеПоле>
                <АдресноеПоле>
                    <Тип>Город</Тип>
                    <Значение>Павлодар г.</Значение>
                </АдресноеПоле>
            </Адрес>
        </Контрагент>
        <Контрагент>
            <Ид>a08ec62a-e71b-11db-95da-505054503030</Ид>
            <НомерВерсии>AAAAAQAAABo=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>Омаров Бек Болатович</Наименование>
            <ПолноеНаименование>Омаров Бек Болатович</ПолноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>602560047789</ИНН>
            <КПП/>
            <КодПоОКПО/>
        </Контрагент>
        <Контрагент>
            <Ид>1b43962d-e73b-11db-95da-505054503030</Ид>
            <НомерВерсии>AAAAAQAAABs=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>Туристическая фирма Час Пик</Наименование>
            <ОфициальноеНаименование>ТОО"Час Пик"</ОфициальноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>181843034513</ИНН>
            <КПП/>
            <КодПоОКПО/>
            <РасчетныеСчета>
                <РасчетныйСчет>
                    <НомерСчета>987654</НомерСчета>
                    <Банк>
                        <СчетКорреспондентский>600098777</СчетКорреспондентский>
                        <Наименование>ЦЕНТРАЛЬНЫЙ ФИЛИАЛ ОАО БАНК ТУРАНАЛЕМ</Наименование>
                        <Адрес>
                            <Представление>480002 г.Алматы</Представление>
                        </Адрес>
                        <БИК>190501305</БИК>
                    </Банк>
                    <БанкКорреспондент/>
                </РасчетныйСчет>
            </РасчетныеСчета>
        </Контрагент>
        <Контрагент>
            <Ид>1b439642-e73b-11db-95da-505054503030</Ид>
            <НомерВерсии>AAAAAQAAABw=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>Продуктовый рай</Наименование>
            <ОфициальноеНаименование>ТОО "Продуктовый рай"</ОфициальноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>181743034562</ИНН>
            <КПП/>
            <КодПоОКПО/>
            <РасчетныеСчета>
                <РасчетныйСчет>
                    <НомерСчета>0005123</НомерСчета>
                    <Банк>
                        <СчетКорреспондентский>001254653</СчетКорреспондентский>
                        <Наименование>Народный банк Казахстана</Наименование>
                        <БИК>190701326</БИК>
                    </Банк>
                    <БанкКорреспондент/>
                </РасчетныйСчет>
            </РасчетныеСчета>
        </Контрагент>
        <Контрагент>
            <Ид>592eb560-e7d6-11db-95da-505054503030</Ид>
            <НомерВерсии>AAAAAQAAAB4=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>Смак ТОО</Наименование>
            <ОфициальноеНаименование>ТОО "Смак"</ОфициальноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>181817630340</ИНН>
            <КПП/>
            <КодПоОКПО/>
            <РасчетныеСчета>
                <РасчетныйСчет>
                    <НомерСчета>291182</НомерСчета>
                    <Банк>
                        <СчетКорреспондентский>21847800</СчетКорреспондентский>
                        <Наименование>Филиал ОАО Банк ТуранАлем</Наименование>
                        <Адрес>
                            <Представление>Алматы, ул. Пролетарская 159</Представление>
                        </Адрес>
                        <БИК>190701310</БИК>
                    </Банк>
                    <БанкКорреспондент/>
                </РасчетныйСчет>
            </РасчетныеСчета>
        </Контрагент>
        <Контрагент>
            <Ид>592eb572-e7d6-11db-95da-505054503030</Ид>
            <НомерВерсии>AAAAAQAAAB8=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>Колосьева Елена Игоревна</Наименование>
            <ПолноеНаименование>Колосьева Елена Игоревна</ПолноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>181620031621</ИНН>
            <КПП/>
            <КодПоОКПО/>
        </Контрагент>
        <Контрагент>
            <Ид>62094b15-e809-11db-95da-505054503030</Ид>
            <НомерВерсии>AAAAAQAAACA=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>Магазин Седьмой континент</Наименование>
            <ОфициальноеНаименование>ТОО "Седьмой континент"</ОфициальноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН>600019181716</ИНН>
            <КПП/>
            <КодПоОКПО/>
            <РасчетныеСчета>
                <РасчетныйСчет>
                    <НомерСчета/>
                    <Банк>
                        <СчетКорреспондентский>190501956</СчетКорреспондентский>
                        <Наименование>АО АТФ Банк</Наименование>
                        <БИК>190701321</БИК>
                    </Банк>
                    <БанкКорреспондент/>
                </РасчетныйСчет>
            </РасчетныеСчета>
        </Контрагент>
        <Контрагент>
            <Ид>1#admin#  </Ид>
            <НомерВерсии>AAAAFwAAAAA=</НомерВерсии>
            <ПометкаУдаления>false</ПометкаУдаления>
            <Наименование>Иванов Иван Иваныч</Наименование>
            <ПолноеНаименование>Иванов Иван Иваныч</ПолноеНаименование>
            <Роль>Покупатель</Роль>
            <ИНН/>
            <КПП/>
            <КодПоОКПО/>
        </Контрагент>
    </Контрагенты>
</КоммерческаяИнформация>


Файл references.xml

Описание

В файле references.xml хранится информация о пользовательских справочниках.

Элемент XML | Элемент Владелец XML | Описание
<КоммерческаяИнформация> | Нет | Главный элемент XML, которому подчинены все остальные. Хранит атрибуты с информацией о пространстве имен, версии схемы («ВерсияСхемы»), даты формирования («ДатаФормирования»), а также служебную информацию.
<ПользовательскиеСправочники> | <КоммерческаяИнформация> | Элемент содержит информацию о пользовательских справочниках. У него может быть один атрибут «СодержитТолькоИзменения», который в новой схеме обмена не используется, т.к. он бесполезен при пакетном обмене.
<Справочник> | <ПользовательскиеСправочники> | Элемент содержит описание пользовательского справочника.
<Ид> | <Справочник> | Идентификатор справочника.
<Наименование> | <Справочник> | Наименование справочника.
<Реквизиты> | <Справочник> | Элемент содержит информацию о реквизитах справочника.
<Реквизит> | <Реквизиты> | Элемент содержит описание реквизита.
<Ид> | <Реквизит> | Идентификатор реквизита.
<Наименование> | <Реквизит> | Наименование реквизита.
<ТипЗначений> | <Реквизит> | Тип значения реквизита.
<ЭлементыСправочника> | <Справочник> | Элемент содержит информацию об элементах справочника.
<ЭлементСправочника> | <ЭлементыСправочника> | Элемент с информацией об элемента справочника.
<Ид> | <ЭлементыСправочника> | Идентификатор элемента справочника.
<НомерВерсии> | <ЭлементыСправочника> | Номер версии элемента справочника.
<ЗначенияРеквизитов> | <ЭлементыСправочника> | Элемент содержит информацию о реквизитах элемента справочника.
<ЗначениеРеквизита> | <ЗначенияРеквизитов> | Элемент содержит описание реквизита элемента справочника.
<Наименование> | <ЗначениеРеквизита> | Наименование реквизита.
<Значение> | <ЗначениеРеквизита> | Значение реквизита.

Пример файла

<?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация xmlns="urn:1C.ru:commerceml_2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ВерсияСхемы="2.09" ДатаФормирования="2015-06-30T14:03:38" Ид="1">
    <ПользовательскиеСправочники СодержитТолькоИзменения="true">
        <Справочник>
            <Ид>УпаковкиНоменклатуры</Ид>
            <Наименование>Упаковки</Наименование>
            <Реквизиты>
                <Реквизит>
                    <Ид>Код</Ид>
                    <Наименование>Код</Наименование>
                    <ТипЗначений>Строка</ТипЗначений>
                </Реквизит>
                <Реквизит>
                    <Ид>Наименование</Ид>
                    <Наименование>Наименование</Наименование>
                    <ТипЗначений>Строка</ТипЗначений>
                </Реквизит>
                <Реквизит>
                    <Ид>ПометкаУдаления</Ид>
                    <Наименование>ПометкаУдаления</Наименование>
                    <ТипЗначений>Булево</ТипЗначений>
                </Реквизит>
            </Реквизиты>
            <ЭлементыСправочника>
                <ЭлементСправочника>
                    <Ид>f065888e-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAB0=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>e0101167-fae1-11e4-8d1e-080027e73639</Ид>
                    <НомерВерсии>AAAAAQAAAE4=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (2 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658897-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAACY=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>80d231c8-4b16-11e0-af10-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAQAAAA0=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>9fbabc28-2f66-11e0-aef6-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAQAAAAQ=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbcb4-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAEw=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>кор (10 упак)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f06588a4-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAADE=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbca6-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAEA=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>упак (8 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbcb0-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAEg=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>кор (20 упак)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbcab-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAEU=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>упак (20 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbca5-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAD8=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>упак (8 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbcaa-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAEQ=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>упак (20 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0e40f81-7390-11df-b338-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAABE=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>пак (1 пак)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658892-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAACE=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f06588a1-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAC8=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbca9-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAEM=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>упак (8 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f065888f-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAB4=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658891-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAACA=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f06588a3-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAADA=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658887-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAABc=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f065889a-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAACk=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f065888b-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAABs=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>dff7f702-7a0b-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAADY=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>7eddcdde-43d9-11e0-af0a-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAQAAAAo=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>ad595ed1-082a-11e0-aeda-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAQAAAAA=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>ящ (10 упак)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658893-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAACI=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbcb5-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAE0=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>кор (12 упак)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>9fbabc26-2f66-11e0-aef6-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAQAAAAI=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>be0e8f34-fae5-11e4-8d1e-080027e73639</Ид>
                    <НомерВерсии>AAAAAQAAAFE=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>дюжина (12 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f065889c-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAACs=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>fa1a68f2-431b-11e0-af07-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAQAAAAc=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658888-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAABg=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbca4-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAD4=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>упак (20 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbcb3-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAEs=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>кор (20 упак)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f065889e-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAC0=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbcae-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAEY=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>кор (10 упак)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>be0e8f32-fae5-11e4-8d1e-080027e73639</Ид>
                    <НомерВерсии>AAAAAQAAAE8=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>пал (4 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbcb2-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAEo=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>кор (24 упак)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0e40f84-7390-11df-b338-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAABM=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>пач (1 пач)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbca3-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAD0=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>упак (20 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>dff7f705-7a0b-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAADg=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658895-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAACQ=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>dff7f706-7a0b-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAADk=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658898-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAACc=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0e40f82-7390-11df-b338-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAABI=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>упак (10 пак)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658885-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAABU=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f065888c-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAABw=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f06588a6-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAADM=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>7eddcdd7-43d9-11e0-af0a-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAQAAAAg=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbca7-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAEE=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>упак (8 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>be0e8f33-fae5-11e4-8d1e-080027e73639</Ид>
                    <НомерВерсии>AAAAAQAAAFA=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f065888a-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAABo=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>dff7f704-7a0b-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAADc=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>набор (1 компл)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658886-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAABY=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f065889b-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAACo=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>b2c7cfc8-6ca9-11e0-af30-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAQAAAA4=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f06588a0-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAC4=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>9fbabc29-2f66-11e0-aef6-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAQAAAAU=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658889-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAABk=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>b9c33de1-1fec-11e0-aee7-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAQAAAAE=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>кор (12 упак)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f065889d-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAACw=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658899-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAACg=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>fa1a68ef-431b-11e0-af07-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAQAAAAY=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>7eddcdd9-43d9-11e0-af0a-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAQAAAAk=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>9fbabc27-2f66-11e0-aef6-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAgAAAAA=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbcaf-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAEc=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>кор (1 упак)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0e40f7b-7390-11df-b338-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAA8=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>упак (10 пар)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>80d231c6-4b16-11e0-af10-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAQAAAAw=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0e40f7d-7390-11df-b338-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAABA=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>пал (40 пар)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbca8-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAEI=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>упак (8 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>dff7f708-7a0b-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAADs=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>пара (1 пара)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbca2-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAADw=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>упак (20 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>94afbcb1-7ad2-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAEk=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>кор (10 упак)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658896-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAACU=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>dff7f707-7a0b-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAADo=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>dff7f701-7a0b-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAADU=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>7eddcde0-43d9-11e0-af0a-0015e9b8c48d</Ид>
                    <НомерВерсии>AAAAAQAAAAs=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658894-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAACM=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f06588a5-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAADI=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0658890-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAAB8=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f06588a7-7924-11df-b33a-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAADQ=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>шт (1 шт)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
                <ЭлементСправочника>
                    <Ид>f0e40f85-7390-11df-b338-0011955cba6b</Ид>
                    <НомерВерсии>AAAAAQAAABQ=</НомерВерсии>
                    <ЗначенияРеквизитов>
                        <ЗначениеРеквизита>
                            <Наименование>Код</Наименование>
                            <Значение/>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>Наименование</Наименование>
                            <Значение>упак (10 пач)</Значение>
                        </ЗначениеРеквизита>
                        <ЗначениеРеквизита>
                            <Наименование>ПометкаУдаления</Наименование>
                            <Значение>false</Значение>
                        </ЗначениеРеквизита>
                    </ЗначенияРеквизитов>
                </ЭлементСправочника>
            </ЭлементыСправочника>
        </Справочник>
    </ПользовательскиеСправочники>
</КоммерческаяИнформация>


Взаимодействие учетной системы с сайтом

В данном разделе описываются следующие алгоритмы по взаимодействию учетной системы с сайтом:

  • Алгоритм выгрузки данных на сайт
  • Алгоритм загрузки документов с сайта
  • Алгоритм работы режима реального времени


Алгоритм выгрузки данных на сайт

Схема

Процесс выгрузки данных из учетной системы на сайт можно представить в виде следующей схемы:

Авторизация на сайте

На этапе Авторизация на сайте учетная система получает ресурс из указанного адреса. Адрес генерируется по следующему формату: <Адрес_скрипта> + "?type=" + <Тип_соединения> + "&mode=checkauth", где:

  • <Тип_соединения> может принимать значения catalog или sale в зависимости от того, что нужно выгружать (sale используется для выгрузки документов);
  • <Адрес_скрипта> - адрес, указанный в настройке обмена.

При успешной авторизации сайт возвращает временный файл с данными:

  • во 2-ой строке содержится имя куки файла;
  • в 3-ей строке содержится значение куки файла;
  • в 4-ой строке содержится ключ сессии обмена (CSRF);
  • в 5-ой строке содержится дата и время сервера сайта (CSRF).

Инициализация на сайте

На этапе Инициализация на сайте учетная система получает ресурс из указанного адреса, а также сообщает о версии CommerceML. Адрес генерируется по следующему формату: <Адрес_скрипта> + "?type=" + <Тип_соединения> + "&mode=init" + "&" + <Ключ_сессии> + "&version=" + <Версия_CommerceML>, где:

  • <Тип_соединения> может принимать значения catalog или sale в зависимости от того, что нужно выгружать;
  • <Адрес_скрипта> - адрес, указанный в настройке обмена;
  • <Ключ_сессии> - ключ сессии, полученный на этапе Авторизация на сайте;
  • <Версия_CommerceML> - версия структуры XML-файлов обмена. Текущая версия - 3.1. Если не указать версию, то будут возвращены файлы версии 2.1.

Заголовок запроса формируется по следующему алгоритму: "Cookie: " + КукиИмя + "=" + КукиЗначение, где вся информация о куки берется с этапа Авторизация на сайте.

При успешной инициализации возвращает временный файл с данными:

  • в 1-ой строке содержится признак, разрешен ли Zip (zip=yes);
  • во 2-ой строке содержится информация об ограничении файлов по размеру (file_limit=);
  • в 3-ейй строке содержится ключ сессии обмена (sessid=);
  • в 4-ой строке содержится версия CommerceML (version=).

Выгрузка файлов на сайт

На этапе Выгрузка файлов на сайт учетная система отсылает сформированные и разбитые файлы XML в заданный адрес. Адрес генерируется по следующему формату: <Адрес_скрипта> + "?type=" + <Тип_cоединения> + "&mode=file&filename=" + <имя_файла> +" &" + <Ключ_сессии>, где:

  • <Тип_соединения> может принимать значения catalog или sale в зависимости от того, что нужно выгружать;
  • <Адрес_скрипта> - адрес, указанный в настройке обмена;
  • <Ключ_сессии> - ключ сессии, полученный на этапе Авторизация на сайте.

Заголовок запроса формируется по следующему алгоритму: "Cookie: " + КукиИмя + "=" + КукиЗначение, где вся информация о куки берется с этапа Авторизация на сайте.

Сайт может вернуть ответ:

  • success - файл доставлен;
  • failure - файл не доставлен;
  • если ничего не пришло, то файл также не доставлен.

Ожидание окончания обработки данных на сайте

На этапе Ожидание окончания обработки данных на сайте учетная система проверяет обработал ли сайт данные. Мониторится каждый выгруженный файл из учетной системы до тех пор, пока не будет получен ответ об успешном завершении обработки файла, неудачном завершении или ответ не будет получен вовсе. Адрес генерируется по следующему формату: <Адрес_скрипта> + "?type=" + <Тип_cоединения> + "&mode=import&filename="+ <имя_файла> +" &" + <Ключ_сессии>, где:

  • <Тип_соединения> может принимать значения catalog или sale в зависимости от того, что нужно выгружать;
  • <Адрес_скрипта> - адрес, указанный в настройке обмена;
  • <Ключ_сессии> - ключ сессии, полученный на этапе Авторизация на сайте.

Сайт может вернуть ответ, в котором в первой строке может содержаться:

  • progress - файл обрабатывается (на следующей строке ответа указано на каком этапе);
  • success - файл успешно обработан;
  • failure - файл не обработан;
  • если ничего не пришло, то файл также не обработан.

Примечание

Важно! Если происходит полная выгрузка, то после успешной выгрузки информации о товарах, происходит деактивация незагруженных товаров и всей информации по ним. Деактивируются все элементы, дата модификации которых меньше даты выгрузки. Дата выгрузки берется из первой авторизации на сайте (первого пакета информации о товарах): <Адрес_скрипта> + ?type=catalog&mode=deactivate +" ×tamp="" + <Дата_и_время_сервера_в_формате_timestamp> +" &" + <Ключ_сессии>, где:

  • <Адрес_скрипта> - адрес, указанный в настройке обмена;
  • <Ключ_сессии> - ключ сессии, полученный на этапе Авторизация на сайте;
  • <Дата_и_время_сервера> - дата и время сервера, когда была произведена первая авторизация. Все данные о товарах, дата модификации которых меньше этого параметра, будут деактивированы.


Алгоритм загрузки документов с сайта

Схема

Алгоритм загрузки документов с сайта в учетную систему можно представить в виде следующей схемы:

Авторизация на сайте

На этапе Авторизация на сайте учетная система получает ресурс из указанного адреса. Адрес генерируется по следующему формату: <Адрес_скрипта> + "?type=sale&mode=checkauth", где: <Адрес_скрипта> - адрес, указанный в настройке обмена.

При успешной авторизации сайт возвращает временный файл с данными:

  • во 2-ой строке содержится имя куки файла;
  • в 3-ей строке содержится значение куки файла;
  • в 4-ой строке содержится ключ сессии обмена (CSRF).

Инициализация на сайте

На этапе Инициализация на сайте учетная система получает ресурс из указанного адреса, а также сообщает о версии CommerceML. Адрес генерируется по следующему формату: Адрес_скрипта> + "?type=sale&mode=init" + "&" + <Ключ_сессии> + "&version=" + <Версия_CommerceML>, где:

  • <Адрес_скрипта> - адрес, указанный в настройке обмена;
  • <Ключ_сессии> - ключ сессии, полученный на этапе Авторизация на сайте;
  • <Версия_CommerceML> - версия структуры XML-файлов обмена.

Заголовок запроса формируется по следующему алгоритму: "Cookie: " + КукиИмя + "=" + КукиЗначение, где вся информация о куки берется с этапа Авторизация на сайте.

При успешной инициализации сайт возвращает временный файл с данными:

  • в 1-ой строке содержится признак, разрешен ли Zip (zip=yes);
  • во 2-ой строке содержится информация об ограничении файлов по размеру (file_limit=);
  • в 3-ейй строке содержится ключ сессии обмена(CSRF)(sessid=);
  • в 4-ой строке содержится версия CommerceML(version=, актуальная на последний момент версия 3.1).

Получение файла с сайта

На этапе Получение файла с сайта учетная система получает файл XML из указанного адреса. Адрес генерируется по следующему формату: <Адрес_скрипта> + "?type=sale &mode=query"+ "&" + <Ключ_сессии>, где:

  • <Адрес_скрипта> - адрес, указанный в настройке обмена;
  • <Ключ_сессии> - ключ сессии, полученный на этапе Авторизация на сайте.

Сайт возвращает XML-файл, причем, если на 2-ой строке первые два символа - PK, то файл запакован.


Алгоритм работы режима реального времени

Режим реального времени реализован таким образом, что в учетной системе постоянно висит один сеанс, который ждет статус ответа от сервера. На сайте создали или отредактировали документ - учетная система получает успешный статус ответа от сервера ( код 200), что является сигналом к началу обмена. Каждые 40 сек. соединение с сайтом обрывается и происходит его пересоединение.

Краткая схема работы режима реального времени:

При авторизации на сайте к адресу сайта добавляется параметр "?type=listen". Т.е. адрес сайта получается: <АдресСайта> + "?type=listen". Параметр необходим, чтобы сайт знал, что это соединение для режима реального времени.

Сайт может вернуть 2 кода состояния:

  • Если это код 200, значит надо выполнить обмен с сайтом.
  • Если 302, то нужно сделать переадресацию и снова посмотреть код состояния. Адрес переадресации берется из заголовка Location.


Классы модуля магазина

Следующие PHP классы используются в модуле интернет-магазина.

Классы

Класс | Описание | С версии
CSaleAuxiliary | Класс для облегчения предоставления платного доступа к ресурсам. | 4.0.10
CSaleBasket | Класс для работы с корзиной покупателей. | 3.2.2
CSaleDelivery | Класс для работы со службами (методами) доставки. | 3.2.2
CSaleDeliveryHandler | Класс для работы с автоматизированными службами доставки. | 6.5.0
CSaleDiscount | Класс для работы со скидками на сумму заказа. | 3.3.1
CSaleLocation | Класс для работы с местоположениями. | 3.2.2
CSaleLocationGroup | Класс для работы с группами местоположений. | 3.2.2
CSaleOrder | Класс для работы с заказами. | 3.3.0
CSaleOrderProps | Класс для работы с набираемыми свойствами заказов. | 3.3.0
CSaleOrderPropsGroup | Класс для работы с группами свойств заказов. | 3.3.0
CSaleOrderPropsValue | Класс для работы со значениями свойств заказов. | 3.3.0
CSaleOrderPropsVariant | Класс для работы с вариантами значений свойств заказов. | 3.3.0
CSaleOrderTax | Класс для работы с суммами налогов, которые начисляются для каждого заказа. | 3.3.2
CSaleOrderUserProps | Класс для работы с профилями покупателей. | 3.3.0
CSaleOrderUserPropsValue | Класс для работы со значениями свойств заказов, сохраняемыми в профилях покупателей. | 3.3.0
CSalePaySystem | Класс для работы с платежными системами. | 3.3.6
CSalePaySystemAction | Класс для работы с обработчиками платежных систем. | 3.3.6
CSalePersonType | Класс для работы с типами плательщиков. | 3.3.0
CSaleRecurring | Класс для работы с возобновляемыми подписками. | 4.0.6
CSaleStatus | Класс для работы со статусами заказов. | 3.3.0
CSaleTax | Класс для работы с налогами. | 3.3.1
CSaleTaxRate | Класс для работы со ставками налогов. | 3.3.1
CSaleUser | Класс для работы с пользователями. | 3.2.2
CSaleUserAccount | Класс для работы с внутренними счетами клиентов. | 4.0.6
CSaleUserCards | Класс для работы с платежными картами. | 4.0.6
CSaleUserTransact | Класс для работы с платежными транзакциями. | 4.0.6


CSaleAuxiliary

Методы класса

Метод | Описание | С версии
DeleteByTime | Метод удаляет всю информацию о временном доступе, которая старше указанного времени. | 4.0.10
DeleteByUserID | Метод удаляет всю информацию о временном доступе пользователя с кодом userID. | 4.0.10
GetByID | Метод выбирает параметры информации о временном доступе с кодом ID. | 4.0.10
GetByParams | Метод выбирает параметры информации о временном доступе к ресурсу с идентификатором itemMD5 для пользователя с кодом userID. | 4.0.10
GetList | Метод возвращает результат выборки записей информации о временном доступе в соответствии со своими параметрами. | 4.0.10
Update | Метод изменяет параметры записи с кодом ID информации о временном доступе к ресурсу в соответствии с данными из массива arFields. | 4.0.10
Add | Метод добавляет новую запись с информацией о временном доступе к ресурсу в соответствии с данными из массива arFields. | 4.0.10
CheckAccess | Метод проверяет, может ли посетитель с кодом userID получить доступ к ресурсу с идентифицирующей строкой itemMD5. | 4.0.10
Delete | Метод удаляет информацию о временном доступе с кодом ID. | 4.0.10


Add

Интернет-магазин>Классы>CSaleAuxiliary>Add (доступен с 4.0.10)

CSaleAuxiliary::Add

int
CSaleAuxiliary::Add(
 array arFields
);

Метод добавляет новую запись с информацией о временном доступе к ресурсу в соответствии с данными из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров новой информации о временном доступе к ресурсу, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • USER_ID - код пользователя;
  • ITEM - ресурс, доступ к которому разрешен;
  • ITEM_MD5 - идентификатор ресурса (строка, однозначно идентифицирующая ресурс);
  • DATE_INSERT - дата вставки записи.

Возвращаемые значения

Метод возвращает код вставленной записи или false в случае ошибки.


CheckAccess

Интернет-магазин>Классы>CSaleAuxiliary>CheckAccess (доступен с 4.0.10)

CSaleAuxiliary::CheckAccess

Описание и параметры

bool
CSaleAuxiliary::CheckAccess(
 int userID,
 string itemMD5,
 int periodLength,
 string periodType
);

Метод проверяет, может ли посетитель с кодом userID получить доступ к ресурсу с идентифицирующей строкой itemMD5. Период, в течение которого пользователь имеет доступ к ресурсу, задается длиной periodLength и типом periodType. Нестатический метод.

Параметры вызова

Параметр | Описание
userID | Код пользователя.
itemMD5 | Строка, однозначно идентифицирующая ресурс (идентификатор ресурса).
periodLength | Длина периода, в течение которого пользователь имеет доступ к ресурсу.
periodType | Тип длины периода, в течение которого пользователь имеет доступ к ресурсу. Допустимые значения: I - минута, H - час, D - сутки, W - неделя, M - месяц, Q - квартал, S - полугодие, Y - год.

Возвращаемые значения

true, если пользователь может получить доступ к данному ресурсу, и false - в противном случае.

Пример использования

<?
if (CSaleAuxiliary::CheckAccess($USER->GetID(), "pict.jpg", 2, "D"))
{
    echo '<a href="'.pict.jpg.'">Файл доступен для скачивания</a>';
}
else
{
    echo "Файл не доступен для скачивания";
}
?>


Delete

Интернет-магазин>Классы>CSaleAuxiliary>Delete (доступен с 4.0.10)

CSaleAuxiliary::Delete

bool
CSaleAuxiliary::Delete(
 int ID
);

Метод удаляет информацию о временном доступе с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код записи.

Возвращаемые значения

true в случае успешного удаления и false в противном случае.


DeleteByTime

Интернет-магазин>Классы>CSaleAuxiliary>DeleteByTime (доступен с 4.0.10)

CSaleAuxiliary::DeleteByTime

Описание и параметры

bool
CSaleAuxiliary::DeleteByTime(
 int periodLength,
 sring periodType
);

Метод удаляет всю информацию о временном доступе, которая старше указанного времени. Нестатический метод.

Параметры вызова

Параметр | Описание
periodLength | Длина периода времени, в течение которого пользователь имеет доступ к ресурсу.
periodType Тип длины периода времени, в течение которого пользователь имеет доступ к ресурсу. Допустимые значения:
  • I - минута;
  • H - час;
  • D - сутки;
  • W - неделя;
  • M - месяц;
  • Q - квартал;
  • S - полугодие;
  • Y - год.

Возвращаемые значения

true в случае успешного удаления и false в противном случае.

Пример использования

<?
// Удалим все записи старше 2 дней
CSaleAuxiliary::DeleteByTime(2, "D");
?>


DeleteByUserID

Интернет-магазин>Классы>CSaleAuxiliary>DeleteByUserID (доступен с 4.0.10)

CSaleAuxiliary::DeleteByUserID

bool
CSaleAuxiliary::DeleteByUserID(
 int userID
);

Метод удаляет всю информацию о временном доступе пользователя с кодом userID. Нестатический метод.

Параметры вызова

Параметр | Описание
userID | Код пользователя.

Возвращаемые значения

true в случае успешного удаления и false в противном случае.


GetByID

Интернет-магазин>Классы>CSaleAuxiliary>GetByID (доступен с 4.0.10)

CSaleAuxiliary::GetByID

array
CSaleAuxiliary::GetByID(
 int ID
);

Метод выбирает параметры информации о временном доступе с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код записи.

Возвращаемые значения

Метод возвращает ассоциативный массив параметров информации о временном доступе с ключами:

  • ID - код записи;
  • USER_ID - код пользователя;
  • ITEM - ресурс, доступ к которому разрешен;
  • ITEM_MD5 - идентификатор ресурса (строка, однозначно идентифицирующая ресурс);
  • TIMESTAMP_X - дата изменения;
  • DATE_INSERT - дата вставки записи.


GetByParams

Интернет-магазин>Классы>CSaleAuxiliary>GetByParams (доступен с 4.0.10)

CSaleAuxiliary::GetByParams

array
CSaleAuxiliary::GetByParams(
 int userID,
 string itemMD5
);

Метод выбирает параметры информации о временном доступе к ресурсу с идентификатором itemMD5 для пользователя с кодом userID. Нестатический метод.

Параметры вызова

Параметр | Описание
userID | Код пользователя.
itemMD5 | Идентификатор ресурса (строка, однозначно идентифицирующая ресурс).

Возвращаемые значения

Метод возвращает ассоциативный массив параметров информации о временном доступе с ключами:

  • ID - код записи
  • USER_ID - код пользователя
  • ITEM - ресурс, доступ к которому разрешен
  • ITEM_MD5 - идентификатор ресурса (строка, однозначно идентифицирующая ресурс)
  • TIMESTAMP_X - дата изменения
  • DATE_INSERT - дата вставки записи


GetList

Интернет-магазин>Классы>CSaleAuxiliary>GetList (доступен с 4.0.10)

CSaleAuxiliary::GetList

Описание и параметры

CDBResult
CSaleAuxiliary::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей информации о временном доступе в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле информации о временном доступе, а в качестве "направление_сортировкиN" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи информации о временном доступе. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляN" может стоять любое поле информации о временном доступе.

Пример фильтра:
array("USER_ID" => 150)
Этот фильтр означает "выбрать все записи, в которых значение в поле USER_ID (код пользователя) равно 150".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи информации о временном доступе. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле информации о временном доступе. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров информации о временном доступе с ключами:

  • ID - код записи;
  • USER_ID - код пользователя;
  • ITEM - ресурс, доступ к которому разрешен;
  • ITEM_MD5 - идентификатор ресурса (строка, однозначно идентифицирующая ресурс);
  • TIMESTAMP_X - дата изменения;
  • DATE_INSERT - дата вставки записи.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.


Update

Интернет-магазин>Классы>CSaleAuxiliary>Update (доступен с 4.0.10)

CSaleAuxiliary::Update

int
CSaleAuxiliary::Update(
 int ID,
 array arFields
);

Метод изменяет параметры записи с кодом ID информации о временном доступе к ресурсу в соответствии с данными из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код записи.
arFields Ассоциативный массив параметров новой информации о временном доступе к ресурсу, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • USER_ID - код пользователя;
  • ITEM - ресурс, доступ к которому разрешен;
  • ITEM_MD5 - идентификатор ресурса (строка, однозначно идентифицирующая ресурс);
  • DATE_INSERT - дата вставки записи.

Возвращаемые значения

Метод возвращает код измененной записи или false в случае ошибки.


CSaleBasket

Методы класса

Метод | Описание | С версии
Init | Метод инициализирует внутренний код владельца корзины. | 3.2.2
Update | Метод обновляет параметры товара с кодом ID на основании массива arFields. | 3.2.2
GetByID | Метод возвращает параметры записи корзины с кодом ID | 3.2.2
GetList | Метод возвращает результат выборки записей из корзины в соответствии со своими параметрами. | 3.2.2
GetPropsList | Метод возвращает результат выборки записей из свойств корзины в соответствии со своими параметрами. | 3.2.2
UpdatePrice | Метод актуализирует параметры записи с кодом ID корзины на основании провайдера PRODUCT_PROVIDER_CLASS (с версии 12.5) или функции обратного вызова для поддержки актуальности корзины CALLBACK_FUNC (до версии 12.5). | 3.2.2
OrderBasket | Метод привязывает к заказу с кодом OrderID товары из корзины, которые доступны к покупке и не являются отложенными. | 3.2.2
Add | Метод добавляет товар в корзину, если его ещё нет, и обновляет параметры товара с увеличением количества, если он уже находится в корзине. | 3.2.2
GetBasketUserID | Метод возвращает внутренний код владельца корзины. | 4.0.6
Delete | Метод удаляет запись корзины с кодом ID. | 3.2.2
DeleteAll | Метод удаляет из корзины все записи с внутренним кодом владельца fUserID. | 3.2.2


Add

Интернет-магазин>Классы>CSaleBasket>Add (доступен с 3.2.2)

CSaleBasket::Add

Описание и параметры

int
   CSaleBasket::Add(
 array arFields
   );

Метод добавляет товар в корзину, если его ещё нет, и обновляет параметры товара с увеличением количества, если он уже находится в корзине. В массиве arFields перечисляются все параметры товара, которые нужны для работы модуля Интернет-магазина (т.е. этот модуль не зависит от других модулей и работает полностью самостоятельно). Нестатический метод.

Интернет-магазин не зависит от других модулей, поэтому товары в корзину модуля продаж могут добавляться из любого места (например, из торгового каталога или со статической страницы). Для некоторых модулей существуют функции - оболочки, облегчающие добавление товара в корзину (например, для модуля catalog существуют функции Add2Basket и Add2BasketByProductID).

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров элемента корзины, содержащий следующие ключи:
  • PRODUCT_ID - уникальный в рамках модуля код товара (обязательное поле);
  • PRODUCT_PRICE_ID - ID (идентификатор) конкретного ценового предложения товара, пришедшего в корзину. Может быть использован в классе CPrice модуля Catalog для получения детальной информации о цене.
  • PRICE - стоимость единицы товара (обязательное поле);
  • CUSTOM_PRICE Указывает на то могут ли, например, скидки изменять стоимость позиции или нет. Обычно этот флаг выставляется в административном отделе, когда в форме редактирования вручную правится цена. Значение Y/N (N - по умолчанию).
  • CURRENCY - валюта стоимости единицы товара (обязательное поле), если валюта отличается от базовой валюты для данного сайта, то стоимость будет автоматически сконвертирована по текущему курсу;
  • WEIGHT - вес единицы товара;
  • QUANTITY - количество единиц товара;
  • LID - сайт, на котором сделана покупка (обязательное поле);
  • DELAY - флаг "товар отложен" (Y/N);
  • CAN_BUY - флаг "товар можно купить" (Y/N) - может устанавливаться автоматически про наличии функции обратного вызова для поддержки актуальности корзины;
  • NAME - название товара (обязательное поле);
  • PRODUCT_XML_ID - внешний код товара (необходим при обмене заказами с 1С);
  • CATALOG_XML_ID - внешний код каталога (необходим при обмене заказами с 1С);
  • ORDER_ID - идентификатор заказа. Ключ будет пустым, если товар еще не добавлен в заказ;
  • CALLBACK_FUNC* - название функции обратного вызова для поддержки актуальности корзины (описание ниже);
  • MODULE - модуль, добавляющий товар в корзину;
  • NOTES - особые заметки, например, тип цены;
  • ORDER_CALLBACK_FUNC* - название функции обратного вызова для оформления заказа (описание ниже);
  • DETAIL_PAGE_URL - ссылка на страницу детального просмотра товара;
  • CANCEL_CALLBACK_FUNC* - название функции обратного вызова для отмены заказа (описание ниже);
  • PAY_CALLBACK_FUNC* - название функции обратного вызова, которая вызывается при установке флага "Доставка разрешена" заказа;
  • FUSER_ID - идентификатор пользователя интернет-магазина, необязательный параметр, по умолчанию CSaleBasket::GetBasketUserID() (текущий пользователь);
  • DISCOUNT_PRICE - величина скидки;
  • DISCOUNT_NAME - название скидки;
  • DISCOUNT_VALUE - размер скидки (в процентах);
  • DISCOUNT_COUPON - купон скидки;
  • PROPS - массив свойств товара, который сохраняется в корзине. Каждый элемент этого массива является массивом следующего формата:
    array("NAME" => "Название свойства",
      "CODE" => "Код свойства",
      "VALUE" => "Значение свойства",
      "SORT" => "Индекс сортировки")
  • PRODUCT_PROVIDER_CLASS** - содержит имя класса, реализующего интерфейс IBXSaleProductProvider. Торговый каталог записывает в это поле имя класса CCatalogProductProvider. Если поле пусто, то возникает попытка использовать старые поля:CALLBACK_FUNC, ORDER_CALLBACK_FUNC, CANCEL_CALLBACK_FUNC и PAY_CALLBACK_FUNC.
  • IGNORE_CALLBACK_FUNC Y\N. По умолчанию N. Если выставить параметру Y то CALLBACK_FUNC и PRODUCT_PROVIDER_CLASS вызываться не будут.

* - поля считаются устаревшими, начиная с версии 12.5. Вместо них используется PRODUCT_PROVIDER_CLASS.
** - поле доступно, начиная с версии 12.5.

Возвращаемые значения

Метод возвращает код элемента корзины, в который попал данный товар.

Смотрите также

  • Взаимодействие торгового каталога и магазина

Примеры использования

<?
if (CModule::IncludeModule("sale"))
{
  $arFields = array(
    "PRODUCT_ID" => 51,
    "PRODUCT_PRICE_ID" => 0,
    "PRICE" => 138.54,
    "CURRENCY" => "RUB",
    "WEIGHT" => 530,
    "QUANTITY" => 1,
    "LID" => LANG,
    "DELAY" => "N",
    "CAN_BUY" => "Y",
    "NAME" => "Чемодан кожаный",
    "CALLBACK_FUNC" => "MyBasketCallback",
    "MODULE" => "my_module",
    "NOTES" => "",
    "ORDER_CALLBACK_FUNC" => "MyBasketOrderCallback",
    "DETAIL_PAGE_URL" => "/".LANG."/detail.php?ID=51"
  );

  $arProps = array();

  $arProps[] = array(
    "NAME" => "Цвет",
    "CODE" => "color",
    "VALUE" => "черный"
  );

  $arProps[] = array(
    "NAME" => "Размер",
    "VALUE" => "1.5 x 2.5"
  );

  $arFields["PROPS"] = $arProps;

  CSaleBasket::Add($arFields);
}
?>
//пример на проверку создания покупателя

$userId=XXX;//id пользователя
//получаем FUSER_ID, если покупатель для данного пользователя существует
$FUSER_ID=CSaleUser::GetList(array('USER_ID' => $userId));
//если покупателя нет - создаем его
if(!$FUSER_ID['ID'])
       $FUSER_ID['ID']=CSaleUser::_Add(array("USER_ID" => $userId)); //обратите внимание на нижнее подчеркивание перед Add
//если не получается создать покупателя - то тут уж ничего не поделаешь
if(!$FUSER_ID['ID']){
 echo "Error while creating SaleUser";
 die();
}
$FUSER_ID=$FUSER_ID['ID'];
//теперь переменную $FUSER_ID можно использовать для добавления товаров в корзину пользователя с $userId.


Delete

Интернет-магазин>Классы>CSaleBasket>Delete (доступен с 3.2.2)

CSaleBasket::Delete

bool
CSaleBasket::Delete(
 int ID
);

Метод удаляет запись корзины с кодом ID. Нестатический метод.

Примеры использования

Пример 1:

<?
if (CSaleBasket::Delete(22))
    echo "Запись успешно удалена";
?>

Пример 2:

Метод может использоваться и для удаления записей корзин, которые уже превращены в заказы. То есть, мы можем удалить запись из состава заказа. Но следует помнить, что после использования метода необходимо обновлять итоговую сумму заказа, например, так:

 $contents = array();
 $dbBasketItems = CSaleBasket::GetList(
            array(
               "NAME" => "ASC",
               "ID" => "ASC"
            ),
            array(
              "LID" => SITE_ID,
              "ORDER_ID" => $order_id,
            )
         );
  while ($arItems = $dbBasketItems->Fetch()){
            $contents[] = $arItems;
         }
  $sum = 0;
  foreach($contents as $basket_item){
            if($basket_item['DISCOUNT_PRICE']>0){
               $sum += $basket_item['DISCOUNT_PRICE']*$basket_item['QUANTITY'];
            }else{
               $sum += $basket_item['PRICE']*$basket_item['QUANTITY'];
            }
         }
   $arFields = array(
            "PRICE" => $sum,
         );
   CSaleOrder::Update($order_id, $arFields);


DeleteAll

Интернет-магазин>Классы>CSaleBasket>DeleteAll (доступен с 3.2.2)

CSaleBasket::DeleteAll

Описание и параметры

bool
CSaleBasket::DeleteAll(
 int fUserID[,
 bool bIncOrdered = false]
);

Метод удаляет из корзины все записи с внутренним кодом владельца fUserID. (В том числе отложенные товары, а также товары по подписке.) Нестатический метод.

Параметры вызова

Параметр | Описание
fUserID | Внутренний код владельца.
bIncOrdered | Если флаг равен false (по-умолчанию), то удаляются только записи из корзины. Если флаг равен true, то удаляются и те записи, которые относятся к уже сделанным заказам.

Примеры использования

<?
if (CSaleBasket::DeleteAll(3, False))
    echo "Корзина пользователя с внутренним кодом 3 успешно удалена";
?>
//пример вызова с автоопределением fUserID
<?
CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID());
?>

Очистить корзину текущего пользователя не затрагивая отложенные и ожидаемые товары:

$res = CSaleBasket::GetList(array(), array(
                              'FUSER_ID' => CSaleBasket::GetBasketUserID(),
                              'LID' => SITE_ID,
                              'ORDER_ID' => 'null',
                              'DELAY' => 'N',
                              'CAN_BUY' => 'Y'));
while ($row = $res->fetch()) {
   CSaleBasket::Delete($row['ID']);
}


GetBasketUserID

Интернет-магазин>Классы>CSaleBasket>GetBasketUserID (доступен с 4.0.6)

CSaleBasket::GetBasketUserID

Описание и параметры

int
CSaleBasket::GetBasketUserID(
 bool bSkipFUserInit = False
);

Метод возвращает внутренний код владельца корзины. Статический метод.

Параметры

Параметр | Описание | С версии
bSkipFUserInit | По умолчанию принимает значение False. | 5.1.0

Пример использования

<?
// Выберем записи корзины текущего пользователя

$dbBasketItems = CSaleBasket::GetList(
        array(
                "NAME" => "ASC",
                "ID" => "ASC"
                ),
        array(
                "FUSER_ID" => CSaleBasket::GetBasketUserID(),
                "LID" => SITE_ID,
                "ORDER_ID" => "NULL"
                ),
        false,
        false,
        array()
        );
?>
//Если нужно получить код какого-то другого пользователя (не текущего), можно сделать так:

if ($arFUser = CSaleUser::GetList(array('USER_ID' => $GLOBALS['USER_ID'])))
         echo($arFUser);

//В частности, получив такой код, можно вывести для себя корзину чужого пользователя.


GetByID

Интернет-магазин>Классы>CSaleBasket>GetByID (доступен с 3.2.2)

CSaleBasket::GetByID

Описание и параметры

array
CSaleBasket::GetByID(
  int ID
);

Метод возвращает параметры записи корзины с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код записи.

Возвращаемые значения

Возвращается ассоциативный массив параметров с ключами:

Ключ | Описание
ID | Код записи.
PRODUCT_ID | Уникальный в рамках модуля код товара.
PRODUCT_PRICE_ID | Дополнительный код товара.
PRICE | Стоимость единицы товара.
CURRENCY | Валюта стоимости единицы товара.
WEIGHT | Вес единицы товара.
QUANTITY | Количество единиц товара.
LID | Сайт, на котором сделана покупка.
DELAY | Флаг "товар отложен" (Y/N)
CAN_BUY | Флаг "товар можно купить" (Y/N)
NAME | Название товара.
CALLBACK_FUNC* | Название функции обратного вызова для поддержки актуальности корзины.
MODULE | Модуль, добавляющий товар в корзину.
NOTES | Особые заметки, например, тип цены.
ORDER_CALLBACK_FUNC* | Название функции обратного вызова для оформления заказа.
DETAIL_PAGE_URL | Ссылка на страницу детального просмотра товара.
FUSER_ID | Внутренний код владельца корзины (не совпадает с кодом пользователя)
ORDER_ID | Код заказа, в который вошла эта запись (товар). Для товаров, которые помещены в корзину, но ещё не заказаны, это поле равно NULL.
DATE_INSERT | Дата добавления товара в корзину.
DATE_UPDATE | Дата последнего изменения записи.
DISCOUNT_PRICE | Скидка на товар. Значение устанавливается только после оформления заказа.
CANCEL_CALLBACK_FUNC* | Название функции обратного вызова для отмены заказа.
PAY_CALLBACK_FUNC* | Название функции обратного вызова, которая вызывается при установке флага заказа "Доставка разрешена".
PRODUCT_PROVIDER_CLASS** | Имя класса, реализующего интерфейс IBXSaleProductProvider. Торговый каталог записывает в это поле имя класса CCatalogProductProvider.

* - ключи считаются устаревшими, начиная с версии 12.5.
** - ключ доступен, начиная с версии 12.5.

Обратите внимание, что этот метод возвращает данные, которые были актуальны на момент последнего выполнения для этой записи функции обратного вызова для поддержки актуальности корзины (либо на момент добавления записи, если функция обратного вызова не выполнялась или не установлена).

Пример использования

<?
// Выведем актуальную корзину для текущего пользователя

$arBasketItems = array();

$dbBasketItems = CSaleBasket::GetList(
    array(
            "NAME" => "ASC",
            "ID" => "ASC"
        ),
    array(
            "FUSER_ID" => CSaleBasket::GetBasketUserID(),
            "LID" => SITE_ID,
            "ORDER_ID" => "NULL"
        ),
    false,
    false,
    array("ID",
          "CALLBACK_FUNC",
          "MODULE",
          "PRODUCT_ID",
          "QUANTITY",
          "DELAY",
          "CAN_BUY",
          "PRICE",
          "WEIGHT")
    );

while ($arItems = $dbBasketItems->Fetch())
{
    if (strlen($arItems["CALLBACK_FUNC"]) > 0)
    {
        CSaleBasket::UpdatePrice($arItems["ID"],
                                 $arItems["CALLBACK_FUNC"],
                                 $arItems["MODULE"],
                                 $arItems["PRODUCT_ID"],
                                 $arItems["QUANTITY"]);
        $arItems = CSaleBasket::GetByID($arItems["ID"]);
    }

    $arBasketItems[] = $arItems;
}

// Печатаем массив, содержащий актуальную на текущий момент корзину
echo "<pre>";
print_r($arBasketItems);
echo "</pre>";
?>


GetList

Интернет-магазин>Классы>CSaleBasket>GetList (доступен с 3.2.2)

CSaleBasket::GetList

Описание и параметры

CDBResult
CSaleBasket::GetList(
  array arOrder = array(),
  array arFilter = array(),
  array arGroupBy = false,
  array arNavStartParams = false,
  array arSelectFields = array()
);

Метод возвращает результат выборки записей из корзины в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле корзины, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи корзины. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр массиве значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле корзины.

Пример фильтра:
array("+>=ORDER_ID" => 20)
Этот фильтр означает "выбрать все записи, в которых значение в поле ORDER_ID больше или равно 20 либо не установлено (т.е. null или ноль)".
Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.

В фильтре также можно использовать параметр USER_ID (не путать с FUSER_ID), передавая в него реальный идентификатор пользователя. Например вот так:
'!USER_ID' => false
arGroupBy Массив полей, по которым группируются записи корзины. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле корзины. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа
    любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Ключ | Описание
ID | Код записи.
PRODUCT_ID | Уникальный в рамках модуля код товара.
PRODUCT_PRICE_ID | Дополнительный код товара.
PRICE | Стоимость единицы товара.
CURRENCY | Валюта стоимости единицы товара.
WEIGHT | Вес единицы товара.
QUANTITY | Количество единиц товара.
LID | Сайт, на котором сделана покупка.
DELAY | Флаг "товар отложен" (Y/N)
CAN_BUY | Флаг "товар можно купить" (Y/N)
NAME | Название товара.
CALLBACK_FUNC* | Название функции обратного вызова для поддержки актуальности корзины.
MODULE | Модуль, добавляющий товар в корзину.
NOTES | Особые заметки, например, тип цены.
ORDER_CALLBACK_FUNC* | Название функции обратного вызова для оформления заказа.
ORDER_ALLOW_DELIVERY | Доставка заказа корзины разрешена. (Для корзин, уже привязанных к заказу.)
ORDER_PAYED | Заказ корзины оплачен. (Для корзин, уже привязанных к заказу.)
ORDER_PRICE | Стоимость заказа корзины. (Для корзин, уже привязанных к заказу.)
ORDER_CANCELED | Флаг отмены заказа.
DETAIL_PAGE_URL | Ссылка на страницу детального просмотра товара.
FUSER_ID | Внутренний код владельца корзины (не совпадает с кодом пользователя). Может меняться. Такая особенность связана со спецификой сохранения корзин для неавторизованных покупателей.
USER_ID | Реальный идентификатор пользователя. (не путать с FUSER_ID)
ORDER_ID | Код заказа, в который вошла эта запись (товар). Для товаров, которые помещены в корзину, но ещё не заказаны, это поле равно NULL.
DATE_INSERT | Дата добавления товара в корзину.
DATE_UPDATE | Дата последнего изменения записи.
CANCEL_CALLBACK_FUNC* | Название функции обратного вызова для отмены заказа.
PAY_CALLBACK_FUNC* | Название функции обратного вызова, которая вызывается при установке флага заказа "Доставка разрешена".
PRODUCT_PROVIDER_CLASS** | Имя класса, реализующего интерфейс IBXSaleProductProvider. Торговый каталог записывает в это поле имя класса CCatalogProductProvider.
DISCOUNT_PRICE | Скидка на товар. Значение устанавливается только после оформления заказа.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

* - ключи считаются устаревшими, начиная с версии 12.5.
** - ключ доступен, начиная с версии 12.5.

Обратите внимание, что в корзине могут быть не только товары из инфоблока (вполне может какой-то иной модуль добавлять в корзину товары со своим PRODUCT_ID), поэтому надо смотреть еще поле MODULE (для товаров из инфоблоков оно равно catalog).

Пример использования

Пример до версии 12.5

<?
// Выведем актуальную корзину для текущего пользователя

$arBasketItems = array();

$dbBasketItems = CSaleBasket::GetList(
        array(
                "NAME" => "ASC",
                "ID" => "ASC"
            ),
        array(
                "FUSER_ID" => CSaleBasket::GetBasketUserID(),
                "LID" => SITE_ID,
                "ORDER_ID" => "NULL"
            ),
        false,
        false,
        array("ID", "CALLBACK_FUNC", "MODULE",
              "PRODUCT_ID", "QUANTITY", "DELAY",
              "CAN_BUY", "PRICE", "WEIGHT")
    );
while ($arItems = $dbBasketItems->Fetch())
{
    if (strlen($arItems["CALLBACK_FUNC"]) > 0)
    {
        CSaleBasket::UpdatePrice($arItems["ID"],
                                 $arItems["CALLBACK_FUNC"],
                                 $arItems["MODULE"],
                                 $arItems["PRODUCT_ID"],
                                 $arItems["QUANTITY"]);
        $arItems = CSaleBasket::GetByID($arItems["ID"]);
    }

    $arBasketItems[] = $arItems;
}

// Печатаем массив, содержащий актуальную на текущий момент корзину
echo "<pre>";
print_r($arBasketItems);
echo "</pre>";
?>

Пример с версии 12.5

<?
$arID = array();

$arBasketItems = array();

$dbBasketItems = CSaleBasket::GetList(
     array(
                "NAME" => "ASC",
                "ID" => "ASC"
             ),
     array(
                "FUSER_ID" => CSaleBasket::GetBasketUserID(),
                "LID" => SITE_ID,
                "ORDER_ID" => "NULL"
             ),
     false,
     false,
     array("ID", "CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "QUANTITY", "PRODUCT_PROVIDER_CLASS")
             );
while ($arItems = $dbBasketItems->Fetch())
{
     if ('' != $arItems['PRODUCT_PROVIDER_CLASS'] || '' != $arItems["CALLBACK_FUNC"])
     {
          CSaleBasket::UpdatePrice($arItems["ID"],
                                 $arItems["CALLBACK_FUNC"],
                                 $arItems["MODULE"],
                                 $arItems["PRODUCT_ID"],
                                 $arItems["QUANTITY"],
                                 "N",
                                 $arItems["PRODUCT_PROVIDER_CLASS"]
                                 );
          $arID[] = $arItems["ID"];
     }
}
if (!empty($arID))
     {
     $dbBasketItems = CSaleBasket::GetList(
     array(
          "NAME" => "ASC",
          "ID" => "ASC"
          ),
     array(
          "ID" => $arID,
        "ORDER_ID" => "NULL"
          ),
        false,
        false,
        array("ID", "CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "QUANTITY", "DELAY", "CAN_BUY", "PRICE", "WEIGHT", "PRODUCT_PROVIDER_CLASS", "NAME")
                );
while ($arItems = $dbBasketItems->Fetch())
{
    $arBasketItems[] = $arItems;
}
}
// Печатаем массив, содержащий актуальную на текущий момент корзину
echo "<pre>";
print_r($arBasketItems);
echo "</pre>";
?>

//количество товаров в корзине (без цикла)
$cntBasketItems = CSaleBasket::GetList(
   array(),
   array(
      "FUSER_ID" => CSaleBasket::GetBasketUserID(),
      "LID" => SITE_ID,
      "ORDER_ID" => "NULL"
   ),
   array()
);

Чтобы выбрать корзину у не авторизованного пользователя под другим пользователем, необходимо обязательно отдать массив необходимых полей arSelectFields. Например при формировании документа, когда документ формируется из под пользователя сервера.

$dbBasketItems = CSaleBasket::GetList(
           array(
                   "NAME" => "ASC",
                   "ID" => "ASC"
                   ),
           array(
                   "FUSER_ID" => CSaleBasket::GetBasketUserID(),
                   "LID" => SITE_ID,
                   "ORDER_ID" => "NULL",
                   ),
           false,
           false,
           array(
             "ID", "NAME", "CALLBACK_FUNC", "MODULE", "PRODUCT_ID", "QUANTITY", "DELAY", "CAN_BUY",
             "PRICE", "WEIGHT", "DETAIL_PAGE_URL", "NOTES", "CURRENCY", "VAT_RATE", "CATALOG_XML_ID",
             "PRODUCT_XML_ID", "SUBSCRIBE", "DISCOUNT_PRICE", "PRODUCT_PROVIDER_CLASS", "TYPE", "SET_PARENT_ID"
           )
           );

while ($arItems = $dbBasketItems->Fetch())
{

}


GetPropsList

Интернет-магазин>Классы>CSaleBasket>GetPropsList (доступен с 3.2.2)

CSaleBasket::GetPropsList

Описание и параметры

CDBResult
CSaleBasket::GetPropsList(
  array arOrder = array(),
  array arFilter = array(),
  array arGroupBy = false,
  array arNavStartParams = false,
  array arSelectFields = array()
);

Метод возвращает результат выборки записей из свойств корзины в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле корзины, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи корзины. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание,
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра,
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • >= - значение поля меньше или равно передаваемой в фильтр величины;
  • >= - значение поля строго меньше передаваемой в фильтр величины;
  • @ - модификатор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи.
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле корзины.

Пример фильтра:
array("!~VALUE" => "JOHN*")
Этот фильтр означает "выбрать все записи, в которых значение в поле VALUE не начинается с символов JOHN".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи корзины. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле корзины. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа
    любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Ключ | Описание
ID | Код записи.
BASKET_ID | Код элемента корзины, к которому привязано данное свойство.
NAME | Название свойства.
VALUE | Значение свойства.
CODE | Символьный код свойства.
SORT | Индекс сортировки свойства.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Выведем все свойства элемента корзины с кодом $basketID
$db_res = CSaleBasket::GetPropsList(
        array(
                "SORT" => "ASC",
                "NAME" => "ASC"
            ),
        array("BASKET_ID" => $basketID)
    );
while ($ar_res = $db_res->Fetch())
{
   echo $ar_res["NAME"]."=".$ar_res["VALUE"]."<br>";
}
?>


Init

Интернет-магазин>Классы>CSaleBasket>Init (доступен с 3.2.2)

CSaleBasket::Init

Важно! Данный метод устарел и не рекомендуется к применению. Для того чтобы получить внутренний код владельца корзины, следует пользоваться методом CSaleBasket::GetBasketUserID.

CSaleBasket::Init();

Метод инициализирует внутренний код владельца корзины. После инициализации внутренний код доступен в сессионной переменной $_SESSION["SALE_USER_ID"].
Внутренний код необходимо обязательно инициализировать перед использованием. Функции-оболочки (например, GetBasketList()) автоматически вызывают инициализацию внутреннего кода владельца корзины.
Повторные вызовы метода инициализации внутреннего кода владельца корзины игнорируются системой. Нестатический метод.

Пример использования

<?
// Выберем содержимое корзины текущего пользователя на текущем сайте
// (полный функционал, включающий актуализацию корзины, выполняется функцией GetBasketList())
CSaleBasket::Init();
$db_res = CSaleBasket::GetList(($b=""), ($o=""), array("FUSER_ID"=>$_SESSION["SALE_USER_ID"], "LID"=>SITE_ID, "ORDER_ID"=>"NULL"));
?>


OrderBasket

Интернет-магазин>Классы>CSaleBasket>OrderBasket (доступен с 3.2.2, устарел с 14.0.5)

CSaleBasket::OrderBasket

Описание и параметры

CSaleBasket::OrderBasket(
 int orderID,
 int fuserID = 0,
 string strLang = SITE_ID,
 array arDiscounts = False
);

Метод привязывает к заказу с кодом OrderID товары из корзины, которые доступны к покупке и не являются отложенными. Этот метод выполняется при оформлении заказа на товары корзины. Нестатический метод.

С версии продукта 15.0.0 рекомендуется вместо этого метода использовать методы ядра D7. Пример [image].

Параметры вызова

Параметр | Описание | С версии
orderID | Код заказа, к которому привязываются товары из корзины. |
fuserID | Внутренний код владельца корзины. Если не установлен (равен нулю) или текущий пользователь не имеет прав на запись на модуль Интернет-магазина, то берется внутренний код для текущего пользователя. |
strLang | Сайт, корзина которого отправляется в заказ. Если не установлен, то берется текущий сайт. |
arDiscounts | Массив скидок на товары. | c 3.3.2 по 8.0

Пример использования

<?
// Привяжем записи корзины текущего пользователя на текущем сайте к заказу с кодом $ORDER_ID
// Здесь создаем заказ
// * * *
// Теперь в $ORDER_ID записан код заказа

CSaleBasket::OrderBasket($ORDER_ID, $_SESSION["SALE_USER_ID"], SITE_ID);
?>


Update

Интернет-магазин>Классы>CSaleBasket>Update (доступен с 3.2.2)

CSaleBasket::Update

Описание и параметры

int
CSaleBasket::Update(
 int ID,
 array arFields
);

Метод обновляет параметры товара с кодом ID на основании массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код элемента корзины.
arFields Ассоциативный массив новых параметров элемента корзины, содержащий следующие ключи:
  • PRODUCT_ID - уникальный в рамках модуля код товара;
  • PRODUCT_PRICE_ID - дополнительный код товара;
  • PRICE - стоимость единицы товара ;
  • CUSTOM_PRICE Указывает на то могут ли, например, скидки изменять стоимость позиции или нет. Обычно этот флаг выставляется в административном отделе, когда в форме редактирования вручную правится цена. Значение Y/N (N - по умолчанию).
  • CURRENCY - валюта стоимости единицы товара;
  • WEIGHT - вес единицы товара;
  • QUANTITY - количество единиц товара, если значение элемента массива с этим ключем равно нулю, то товар удаляется из корзины;
  • LID - сайт, на котором сделана покупка;
  • DELAY - флаг "товар отложен" (Y/N);
  • CAN_BUY - флаг "товар можно купить" (Y/N) - может устанавливаться автоматически про наличии функции обратного вызова для поддержки актуальности корзины;
  • NAME - название товара (обязательное поле);
  • CALLBACK_FUNC* - название функции обратного вызова для поддержки актуальности корзины (подробности в описании метода CSaleBasket::Add);
  • MODULE - модуль, добавляющий файл в корзину;
  • ORDER_ID - идентификатор заказа. Ключ позволяет добавить товар к уже оформленному заказу (добавить к заказу можно только тот товар, который не был привязан к заказу). Важный момент: при этом общая сумма заказа не пересчитается, нужно дополнительно обновить сам заказ (общую стоимость) через CSaleOrder::Update.
  • NOTES - особые заметки, например, тип цены;
  • ORDER_CALLBACK_FUNC* - название функции обратного вызова для оформления заказа (подробности в описании метода CSaleBasket::Add);
  • DETAIL_PAGE_URL - ссылка на страницу детального просмотра товара;
  • PROPS - массив свойств товара, который сохраняется в корзине. Каждый элемент этого массива является массивом следующего формата:
    array("NAME" => "Название свойства", "CODE" => "Код свойства", "VALUE" => "Значение свойства", "SORT" => "Индекс сортировки")

    Параметр PROPS должен содержать массив из всех предыдущих значений, иначе они будут затерты. Но если надо, наоборот, очистить свойства у элемента корзины, передаем пустой массив array();

    Максимальная длина значения свойства товара 255 символов.

  • PRODUCT_PROVIDER_CLASS** - содержит имя класса, реализующего интерфейс IBXSaleProductProvider. Торговый каталог записывает в это поле имя класса CCatalogProductProvider. Если поле пусто, то возникает попытка использовать старые поля:CALLBACK_FUNC, ORDER_CALLBACK_FUNC.
  • IGNORE_CALLBACK_FUNC - Y\N. По умолчанию N. Если выставить параметру Y то CALLBACK_FUNC и PRODUCT_PROVIDER_CLASS вызываться не будут.

* - поля считаются устаревшими, начиная с версии 12.5. Вместо них используется PRODUCT_PROVIDER_CLASS.
** - поле доступно, начиная с версии 12.5.

Возвращаемые значения

Метод возвращает true или false.

Пример использования

<?
// Изменим количество товара в записи $ID корзины на 2 штуки и отложим товар
$arFields = array(
   "QUANTITY" => 2,
   "DELAY" => "Y"
);
CSaleBasket::Update($ID, $arFields);
?>


UpdatePrice

Интернет-магазин>Классы>CSaleBasket>UpdatePrice (доступен с 3.2.2)

CSaleBasket::UpdatePrice

Описание и параметры

CSaleBasket::UpdatePrice(
  int ID,
  string CALLBACK_FUNC = "",
  string MODULE = "",
  int PRODUCT_ID = 0,
  int QUANTITY = 0,
  string RENEWAL = "N",
  string PRODUCT_PROVIDER_CLASS = ""
);

Метод актуализирует параметры записи с кодом ID корзины на основании провайдера PRODUCT_PROVIDER_CLASS (с версии 12.5) или функции обратного вызова для поддержки актуальности корзины CALLBACK_FUNC (до версии 12.5). Нестатический метод.

Параметры вызова

Параметр | Описание | С версии
ID | Код записи в корзине. |
CALLBACK_FUNC | Название функции обратного вызова для поддержки актуальности корзины. Параметр считается устаревшим, начиная с версии 12.5. На смену ему пришел PRODUCT_PROVIDER_CLASS. |
MODULE | Модуль, добавивший товар в корзину. |
PRODUCT_ID | Код товара. |
QUANTITY | Количество товара в корзине. |
RENEWAL | Флаг "Продление подписки" (значения - Y/N). | 4.0.6
PRODUCT_PROVIDER_CLASS | Имя класса, реализующего интерфейс IBXSaleProductProvider. Торговый каталог записывает в это поле имя класса CCatalogProductProvider. Параметр доступен, начиная с версии 12.5. Если он не задан, то возникает попытка использовать устаревший механизм через CALLBACK_FUNC. | 12.5.0

Пример использования

<?
// GetBasketList() - стандартная функция модуля Интернет-Магазина

function GetBasketList()
{
   CSaleBasket::Init();
   $arRes = array();
   $db_res = CSaleBasket::GetList(($by="NAME"), ($order="ASC"), array("FUSER_ID"=>$_SESSION["SALE_USER_ID"], "LID"=>SITE_ID, "ORDER_ID"=>"NULL"));

   while ($res = $db_res->GetNext())
   {
      if (strlen($res["CALLBACK_FUNC"])>0)
      {
         CSaleBasket::UpdatePrice($res["ID"], $res["CALLBACK_FUNC"], $res["MODULE"], $res["PRODUCT_ID"], $res["QUANTITY"]);
         $res = CSaleBasket::GetByID($res["ID"]);
      }
      $arRes[] = $res;
   }
   return $arRes;
}

$arBasket = GetBasketList();

echo "<pre>";
print_r($arBasket);
echo "</pre>";
?>


Класс CSaleDelivery

Примечание: данный класс устарел с версии 15.5.0. Вместо него рекомендуется использовать класс \Bitrix\Sale\Delivery\Services\Base [image].

Методы класса

Метод | Описание | С версии
GetByID | Метод возвращает параметры службы доставки с кодом ID. | 3.2.2
GetLocationList | Метод возвращает набор местоположений по фильтру arFilter. | 3.2.2
Update | Метод изменяет параметры доставки с кодом ID на новые значения из массива arFields. | 3.2.2
Delete | Метод удаляет доставку с кодом ID. | 3.2.2
GetList | Метод возвращает результат выборки записей из служб доставки в соответствии со своими параметрами. | 3.3.0
Add | Метод добавляет новый способ (службу) доставки с параметрами из массива arFields. | 3.3.0


Add

Интернет-магазин>Классы>CSaleDelivery>Add (доступен с 3.3.0, устарел с 15.5.0)

CSaleDelivery::Add

Описание и параметры

int
  CSaleDelivery::Add(
 array arFields
);

Метод добавляет новый способ (службу) доставки с параметрами из массива arFields. Метод статический.

Примечание: данный метод устарел с версии 15.5.0. Вместо него рекомендуется использовать методы класса \Bitrix\Sale\Delivery\Services\Base [image].

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров доставки, ключами в котором являются названия параметров доставки, а значениями - значения параметров.

Допустимые ключи:
  • NAME - название доставки (обязательное, задается на языке сайта, к которому привязана эта доставка);
  • LID - код сайта, к которому привязана эта доставка;
  • PERIOD_FROM - минимальный срок доставки;
  • PERIOD_TO - максимальный срок доставки;
  • PERIOD_TYPE - единица измерения срока: D - дни, H - часы, M - месяцы;
  • WEIGHT_FROM - минимальный вес заказа, для которого возможна эта доставка (единица измерения должна быть едина на сайте);
  • WEIGHT_TO - максимальный вес заказа, для которого возможна эта доставка (единица измерения должна быть едина на сайте);
  • ORDER_PRICE_FROM - минимальная стоимость заказа, для которой возможна эта доставка;
  • ORDER_PRICE_TO - максимальная стоимость заказа, для которой возможна эта доставка;
  • ORDER_CURRENCY - валюта ограничений по стоимости;
  • ACTIVE - флаг (Y/N) активности доставки;
  • PRICE - стоимость доставки;
  • CURRENCY - валюта стоимости доставки;
  • SORT - индекс сортировки;
  • DESCRIPTION - описание доставки;
  • LOCATIONS - массив массивов вида:
    array("LOCATION_ID" => "код местоположения или
                            группы местоположений",
          "LOCATION_TYPE"=>"L - для местоположения,
                            G - для группы")
    содержащий местоположения и группы местоположений, для которых работает эта доставка
  • LOGOTIP - логотип.

Возвращаемые значения

Возвращает код добавленной записи или false в случае ошибки.

Пример использования

<?
$arFields = array(
   "NAME" => "Доставка курьером",
   "LID" => "ru",
   "PERIOD_FROM" => 1,
   "PERIOD_TO" => 3,
   "PERIOD_TYPE" => "D",
   "WEIGHT_FROM" => 0,
   "WEIGHT_TO" => 2500,
   "ORDER_PRICE_FROM" => 0,
   "ORDER_PRICE_TO" => 10000,
   "ORDER_CURRENCY" => "RUB",
   "ACTIVE" => "Y",
   "PRICE" => 58,
   "CURRENCY" => "RUB",
   "SORT" => 100,
   "DESCRIPTION" => "Заказ будет доставлен Вам в течение 3 - 10 рабочих дней после передачи его в курьерскую службу.",
   "LOCATIONS" => array(
      array("LOCATION_ID"=>1, "LOCATION_TYPE"=>"L"),
      array("LOCATION_ID"=>3, "LOCATION_TYPE"=>"G")
      )
);

$ID = CSaleDelivery::Add($arFields);
if ($ID<=0)
   echo "Ошибка добавления доставки";
?>


Delete

Интернет-магазин>Классы>CSaleDelivery>Delete (доступен с 3.2.2, устарел с 15.5.0)

CSaleDelivery::Delete

bool
CSaleDelivery::Delete(
  int ID
);

Метод удаляет доставку с кодом ID. Метод статический.

Примечание: данный метод устарел с версии 15.5.0. Вместо него рекомендуется использовать методы класса \Bitrix\Sale\Delivery\Services\Base [image].

Параметры вызова

Параметр | Описание
ID | Код доставки.

Возвращаемые значения

Возвращает true в случае успешного удаления и false - в противном случае.

Пример использования

<?
CSaleDelivery::Delete(8);
?>


GetByID

Интернет-магазин>Классы>CSaleDelivery>GetByID (доступен с 3.2.2, устарел с 15.5.0)

CSaleDelivery::GetByID

Описание и параметры

array
CSaleDelivery::GetByID(
  int ID
);

Метод возвращает параметры службы доставки с кодом ID. Метод статический.

Примечание: данный метод устарел с версии 15.5.0. Вместо него используйте метод \Bitrix\Sale\Delivery\Services\Manager::getById [image].

При работе со службами доставки рекомендуется использовать методы классов \Bitrix\Sale\Delivery\Services\Base [image] и \Bitrix\Sale\Delivery\Services\Manager [image].

Параметры вызова

Параметр | Описание
ID | Код службы доставки.

Возвращаемые значения

Возвращается ассоциативный массив параметров доставки с ключами:

Ключ | Описание
ID | Код службы доставки.
NAME | Название доставки.
LID | Код сайта, к которому привязана эта доставка.
PERIOD_FROM | Минимальный срок доставки.
PERIOD_TO | Максимальный срок доставки.
PERIOD_TYPE | Единица измерения срока: D - дни, H - часы, M - месяцы.
WEIGHT_FROM | Минимальный вес заказа, для которого возможна эта доставка (единица измерения едина на сайте).
WEIGHT_TO | Максимальный вес заказа, для которого возможна эта доставка (единица измерения едина на сайте).
ORDER_PRICE_FROM | Минимальная стоимость заказа, для которой возможна эта доставка.
ORDER_PRICE_TO | Максимальная стоимость заказа, для которой возможна эта доставка.
ORDER_CURRENCY | Валюта ограничений по стоимости.
ACTIVE | Флаг (Y/N) активности доставки.
PRICE | Стоимость доставки.
CURRENCY | Валюта стоимости доставки.
SORT | Индекс сортировки.
DESCRIPTION | Описание доставки.

Пример использования

<?
// $DELIVERY_ID - код службы доставки

$arDeliv = CSaleDelivery::GetByID($DELIVERY_ID);
if ($arDeliv)
{
   echo "Доставка \"".$arDeliv["NAME"]."\" стоит ".CurrencyFormat($arDeliv["PRICE"], $arDeliv["CURRENCY"]);
}
?>


GetList

Интернет-магазин>Классы>CSaleDelivery>GetList (доступен с 3.3.0, устарел с 15.5.0)

CSaleDelivery::GetList

Описание и параметры

CDBResult
   CSaleDelivery::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из служб доставки в соответствии со своими параметрами. Метод статический.

Метод устарел, вместо него следует использовать метод Bitrix\Sale\Delivery\Services\Manager::getActiveList( ) [image].

Параметры вызова

Параметр Описание С версии
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле корзины, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи службы доставки. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле корзины.

Пример фильтра:
array("+<=WEIGHT_FROM" => 1000)
Этот фильтр означает "выбрать все записи, в которых значение в поле WEIGHT_FROM (вес от) меньше либо равно 1000 или значение не установлено (null или ноль)".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи служб доставки. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле служб доставки. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет. 		4.0.6
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет. 		4.0.6
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса. 		4.0.6

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров доставки с ключами:

Ключ | Описание
ID | Код службы доставки.
NAME | Название доставки.
LID | Код сайта, к которому привязана эта доставка.
PERIOD_FROM | Минимальный срок доставки.
PERIOD_TO | Максимальный срок доставки.
PERIOD_TYPE | Единица измерения срока: D - дни, H - часы, M - месяцы.
WEIGHT_FROM | Минимальный вес заказа, для которого возможна эта доставка (единица измерения едина на сайте).
WEIGHT_TO | Максимальный вес заказа, для которого возможна эта доставка (единица измерения едина на сайте).
ORDER_PRICE_FROM | Минимальная стоимость заказа, для которой возможна эта доставка.
ORDER_PRICE_TO | Максимальная стоимость заказа, для которой возможна эта доставка.
ORDER_CURRENCY | Валюта ограничений по стоимости.
ACTIVE | Флаг (Y/N) активности доставки.
PRICE | Стоимость доставки.
CURRENCY | Валюта стоимости доставки.
SORT | Индекс сортировки.
DESCRIPTION | Описание доставки.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Выберем отсортированные по индексу сортировки, а потом (при равных индексах) по имени
// активные службы доставки, доступные для текущего сайта, заказа с весом $ORDER_WEIGHT и
// стоимостью $ORDER_PRICE (в базовой валюте текущего сайта), доставки в
// местоположение $DELIVERY_LOCATION
$db_dtype = CSaleDelivery::GetList(
    array(
            "SORT" => "ASC",
            "NAME" => "ASC"
        ),
    array(
            "LID" => SITE_ID,
            "+<=WEIGHT_FROM" => $ORDER_WEIGHT,
            "+>=WEIGHT_TO" => $ORDER_WEIGHT,
            "+<=ORDER_PRICE_FROM" => $ORDER_PRICE,
            "+>=ORDER_PRICE_TO" => $ORDER_PRICE,
            "ACTIVE" => "Y",
            "LOCATION" => $DELIVERY_LOCATION
        ),
    false,
    false,
    array()
);
if ($ar_dtype = $db_dtype->Fetch())
{
   echo "Вам доступны следующие способы доставки:<br>";
   do
   {
      echo $ar_dtype["NAME"]." - стоимость ".CurrencyFormat($ar_dtype["PRICE"], $ar_dtype["CURRENCY"])."<br>";
   }
   while ($ar_dtype = $db_dtype->Fetch());
}
else
{
   echo "Доступных способов доставки не найдено<br>";
}
?>


GetLocationList

Интернет-магазин>Классы>CSaleDelivery>GetLocationList (доступен с 3.2.2, устарел с 15.5.0)

CSaleDelivery::GetLocationList

CDBResult
CSaleDelivery::GetLocationList(
  array arFilter = Array()
);

Метод возвращает набор местоположений по фильтру arFilter. Нестатический метод.

Примечание: данный метод устарел с версии 15.5.0. Вместо него рекомендуется использовать методы класса \Bitrix\Sale\Delivery\Services\Base [image].

Параметры вызова

Параметр Описание
arFilter Фильтр представляет собой ассоциативный массив, в котором ключами являются названия параметров, а значениями - условия.

Допустимые ключи:
  • DELIVERY_ID - код доставки;
  • LOCATION_ID - код местоположения или группы местоположений;
  • LOCATION_TYPE - тип (L - местоположение, G - группа местоположений).

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Ключ | Описание
DELIVERY_ID | Код службы доставки.
LOCATION_ID | Код местоположения или группы местоположений.
LOCATION_TYPE | Тип (L - местоположение, G - группа местоположений)


Update

Интернет-магазин>Классы>CSaleDelivery>Update (доступен с 3.2.2, устарел с 15.5.0)

CSaleDelivery::Update

Описание и параметры

int
  CSaleDelivery::Update(
 int ID,
   array arFields
  );

Метод изменяет параметры доставки с кодом ID на новые значения из массива arFields. Метод статический.

Примечание: данный метод устарел с версии 15.5.0. Вместо него рекомендуется использовать методы класса \Bitrix\Sale\Delivery\Services\Base [image].

Параметры вызова

Параметр | Описание
ID | Код доставки.
arFields Ассоциативный массив новых параметров доставки, ключами в котором являются названия параметров доставки, а значениями - значения параметров.
Допустимые ключи:
  • NAME - название доставки (обязательное, задается на языке сайта, к которому привязана эта доставка);
  • LID - код сайта, к которому привязана эта доставка;
  • PERIOD_FROM - минимальный срок доставки;
  • PERIOD_TO - максимальный срок доставки;
  • PERIOD_TYPE - единица измерения срока: D - дни, H - часы, M - месяцы;
  • WEIGHT_FROM - минимальный вес заказа, для которого возможна эта доставка (единица измерения должна быть едина на сайте);
  • WEIGHT_TO - максимальный вес заказа, для которого возможна эта доставка (единица измерения должна быть едина на сайте);
  • ORDER_PRICE_FROM - минимальная стоимость заказа, для которой возможна эта доставка;
  • ORDER_PRICE_TO - максимальная стоимость заказа, для которой возможна эта доставка;
  • ORDER_CURRENCY - валюта ограничений по стоимости;
  • ACTIVE - флаг (Y/N) активности доставки;
  • PRICE - стоимость доставки;
  • CURRENCY - валюта стоимости доставки;
  • SORT - индекс сортировки;
  • DESCRIPTION - описание доставки;
  • LOCATIONS - массив массивов вида:
    array("LOCATION_ID" => "код местоположения или
                            группы местоположений",
          "LOCATION_TYPE"=>"L - для местоположения,
                            G - для группы")
    содержащий местоположения и группы местоположений, для которых работает эта доставка

Возвращаемые значения

Возвращает код изменяемой записи или false в случае ошибки.

Пример использования

<?
$arFields = array(
   "NAME" => "Доставка курьером",
   "LID" => "ru",
   "PERIOD_FROM" => 1,
   "PERIOD_TO" => 3,
   "PERIOD_TYPE" => "D",
   "WEIGHT_FROM" => 0,
   "WEIGHT_TO" => 2500,
   "ORDER_PRICE_FROM" => 0,
   "ORDER_PRICE_TO" => 10000,
   "ORDER_CURRENCY" => "RUB",
   "ACTIVE" => "Y",
   "PRICE" => 58,
   "CURRENCY" => "RUB",
   "SORT" => 100,
   "DESCRIPTION" => "Заказ будет доставлен Вам в течение 3 - 10 рабочих дней после передачи его в курьерскую службу.",
   "LOCATIONS" => array(
      array("LOCATION_ID"=>1, "LOCATION_TYPE"=>"L"),
      array("LOCATION_ID"=>3, "LOCATION_TYPE"=>"G")
      )
);

if (!CSaleDelivery::Update($ID, $arFields))
   echo "Ошибка изменения доставки";
?>


Класс CSaleDeliveryHandler

Примечание: данный класс устарел и не рекомендуется к использованию. Вместо него следует использовать методы класса \Bitrix\Sale\Delivery\Services\Base [image].

Методы класса

Метод | Описание | С версии
GetList | Метод возвращает список обработчиков автоматизированных служб доставки, для которых установлены настройки в БД. | 6.5.0
GetAdminList | Метод возвращает список всех имеющихся обработчиков автоматизированных служб доставки. | 6.5.0
GetBySID | Метод служит для получения информации о конкретном обработчике по его строковому идентификатору. | 6.5.0
GetHandlerCompability | Метод возвращает список профилей обработчика, подходящих конкретному заказу. | 6.5.0
Calculate | Вызов одного шага расчёта стоимости доставки. | 6.5.0
CalculateFull | Вызов полного цикла расчёта стоимости доставки. | 6.5.0


Calculate

Интернет-магазин>Классы>CSaleDeliveryHandler>Calculate (доступен с 6.5.0, устарел с 15.5.0)

CSaleDeliveryHandler::Calculate

Описание и параметры

array
CSaleDeliveryHandler::Calculate(
 int STEP,
 string SID,
 string profile,
 array arOrder,
 string currency,
 mixed TMP = false,
 mixed SITE_ID = false
);

Вызов одного шага расчёта стоимости доставки. Метод статический.

Примечание: метод устарел и не рекомендуется к использованию. Вместо него следует использовать методы класса \Bitrix\Sale\Delivery\Services\Base [image].

Параметры вызова

Параметр | Описание
STEP | Текущий шаг расчёта.
SID | Строковый идентификатор обработчика.
profile | Идентификатор профиля обработчика.
arOrder Массив заказа:
  • WEIGHT - суммарный вес заказа в граммах;
  • PRICE - суммарная стоимость заказа в базовой валюте магазина;
  • LOCATION_FROM - ID местоположения магазина, настраиваемого в настройках модуля "Интернет-магазин";
  • LOCATION_TO - ID местоположения, указываемого клиентом при оформлении заказа;
  • ITEMS - массив позиций корзины, причем каждая позиция обладает набором свойств. Одно из них - DIMENSIONS - массив, содержащий длину, высоту и ширину. Служба доставки может проверить подходят ли все товары для доставки данной службой (размеры / вес / цена) или сколько коробок необходимо для того, чтобы отправить весь заказ.
currency | Идентификатор валюты.
TMP | Временные данные с предыдущего шага.
SITE_ID | Идентификатор сайта. По умолчанию используется текущий.

Возвращаемые значения

Возвращается ассоциативный массив следующей структуры:

Ключ | Описание
RESULT Идентификатор ответа. Возможные значения:
  • "OK" - стоимость доставки успешно рассчитана;
  • "ERROR" - в процессе расчёта произошла ошибка;
  • "NEXT_STEP" - необходимо перейти на следующий шаг для продолжения расчёта.
VALUE | Значение стоимости доставки в валюте, задаваемой в параметрах метода - currency. (RESULT = 'OK')
TRANSIT | Длительность доставки в днях (RESULT = 'OK'). Если обработчик доставки не возвращает длительность, то этот параметр отсутствует.
TEXT | Текст ошибки или текст, сопровождающий переход на следующий шаг (RESULT = {'ERROR'|'NEXT_STEP'}).
TEMP | Строка, содержащая промежуточные данные, которые нужно передать следующему шагу (RESULT = 'NEXT_STEP').


CalculateFull

Интернет-магазин>Классы>CSaleDeliveryHandler>CalculateFull (доступен с 6.5.0, устарел с 15.5.0)

CSaleDeliveryHandler::CalculateFull

Описание и параметры

array CSaleDeliveryHandler::CalculateFull(
    string SID,
    string profile,
    array arOrder,
    string currency,
    mixed SITE_ID = false
);

Вызов полного цикла расчёта. В случае, если обработчик службы доставки осуществляет расчёт за один шаг, метод аналогичен CSaleDeliveryHandler::Calculate(). В противном случае метод автоматически выполнит переход на следующий шаг расчёта. Метод статический.

Примечание: метод устарел и не рекомендуется к использованию. Вместо него следует использовать методы класса \Bitrix\Sale\Delivery\Services\Base [image].

Параметры вызова

Параметр | Описание
SID | Строковый идентификатор обработчика.
profile | Идентификатор профиля обработчика.
arOrder Массив заказа:
  • WEIGHT - суммарный вес заказа в граммах;
  • PRICE - суммарная стоимость заказа в базовой валюте магазина;
  • LOCATION_FROM - ID местоположения магазина, настраиваемого в настройках модуля "Интернет-магазин";
  • LOCATION_TO - ID местоположения, указываемого клиентом при оформлении заказа;
  • ITEMS - массив позиций корзины, причем каждая позиция обладает набором свойств. Одно из них - DIMENSIONS - массив, содержащий длину, высоту и ширину. Служба доставки может проверить подходят ли все товары для доставки данной службой (размеры / вес / цена) или сколько коробок необходимо для того, чтобы отправить весь заказ.
currency | Идентификатор валюты.
SITE_ID | Идентификатор сайта. По умолчанию используется текущий.

Возвращаемые значения

Возвращается ассоциативный массив следующей структуры:

Ключ | Описание
RESULT Идентификатор ответа. Возможные значения:
  • "OK" - стоимость доставки успешно рассчитана;
  • "ERROR" - в процессе расчёта произошла ошибка.
VALUE | Значение стоимости доставки в валюте, задаваемой в параметрах метода - currency. (RESULT = 'OK').
TRANSIT | Длительность доставки в днях (RESULT = 'OK'). Если обработчик доставки не возвращает длительность, то этот параметр отсутствует.
TEXT | Текст ошибки (RESULT = 'ERROR').

Пример использования

$arOrder = array(
  "WEIGHT" => "10", // вес заказа в граммах
  "PRICE" => "100", // стоимость заказа в базовой валюте магазина
  "LOCATION_FROM" => COption::GetOptionInt('sale', 'location'), // местоположение магазина
  "LOCATION_TO" => 55892, // местоположение доставки
);

$currency = CSaleLang::GetLangCurrency(SITE_ID);

$dbHandler = CSaleDeliveryHandler::GetBySID('simple');
if ($arHandler = $dbHandler->Fetch())
{
  $arProfiles = CSaleDeliveryHandler::GetHandlerCompability($arOrder, $arHandler);
  if (is_array($arProfiles) && count($arProfiles) > 0)
  {
    $arProfiles = array_keys($arProfiles);
    $arReturn = CSaleDeliveryHandler::CalculateFull(
      'simple', // идентификатор службы доставки
      $arProfiles[0], // идентификатор профиля доставки
      $arOrder, // заказ
      $currency // валюта, в которой требуется вернуть стоимость
    );

    if ($arReturn["RESULT"] == "OK")
    {
      ShowNote('Стоимость доставки успешно рассчитана!');
      echo 'Стоимость доставки: '.CurrencyFormat($arReturn["VALUE"], $currency).'<br />';
      if (is_set($arReturn['TRANSIT']) && $arReturn['TRANSIT'] > 0)
      {
        echo 'Длительность доставки: '.$arReturn['TRANSIT'].' дней.<br />';
      }
    }
    else
    {
      ShowError('Не удалось рассчитать стоимость доставки! '.$arResult['ERROR']);
    }
  }
  else
  {
    ShowError('Невозможно доставить заказ!');
  }
}
else
{
  ShowError('Обработчик не найден!');
}


GetAdminList

Интернет-магазин>Классы>CSaleDeliveryHandler>GetAdminList (доступен с 6.5.0, устарел с 15.5.0)

CSaleDeliveryHandler::GetAdminList

Описание и параметры

CDBResult
CSaleDeliveryHandler::GetAdminList(
array arSort = array("SORT" => "ASC")
);

Метод возвращает список всех имеющихся обработчиков. Список обработчиков строится на основе события onSaleDeliveryHandlersBuildList. Метод статический.

Примечание: метод устарел и не рекомендуется к использованию. Вместо него следует использовать методы класса \Bitrix\Sale\Delivery\Services\Base [image].

Параметры вызова

Параметр Описание
arSort Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array("параметр_сортировки" => "направление_сортировки" [, ...])

В качестве параметра сортировки может выступать одно из следующих значений:

  • SORT - параметр "сортировка";
  • NAME - наименования службы доставки;
  • SID - строковой идентификатор службы доставки;
  • HANDLER - путь к обработчику службы доставки;
  • ACTIVE - флаг активности службы доставки.

В качестве "направление_сортировки" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Значение по умолчанию - массив array("SORT" => "ASC") - означает, что результат будет отсортирован по возрастанию.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий записи со структурой, аналогичной CSaleDeliveryHandlers::GetList() с единственным изменением:

Ключ | Описание
INSTALLED | Флаг, показывающий, есть ли в БД конфигурация для данного обработчика (Y|N).

Пример использования

CModule::IncludeModule('sale');

$dbResult = CSaleDeliveryHandler::GetAdminList(
  array(
    'SORT' => 'ASC',
    'NAME' => 'ASC'
  )
);
echo '<ul>';
while ($arResult = $dbResult->GetNext())
{
  echo '<li>('.$arResult['SID'].') <b>'.$arResult['NAME'].'</b><br />';
  echo '<small>'.$arResult['DESCRIPTION'].'</small></li>';
}
echo '</ul>';


GetBySID

Интернет-магазин>Классы>CSaleDeliveryHandler>GetBySID (доступен с 6.5.0, устарел с 15.5.0)

CSaleDeliveryHandler::GetBySID

Описание и параметры

CDBResult
CSaleDeliveryHandler::GetBySID(
string SID,
mixed SITE_ID = false
);

Данный метод служит для получения информации по конкретному обработчику по его строковому идентификатору. Метод статический.

Примечание: метод устарел и не рекомендуется к использованию. Вместо него следует использовать методы класса \Bitrix\Sale\Delivery\Services\Base [image].

Параметры вызова

Параметр | Описание
SID | Строковый идентификатор обработчика.
SITE_ID | Идентификатор сайта. По умолчанию используется текущий.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий запись со структурой, аналогичной CSaleDeliveryHandler::GetList().

Пример использования

CModule::IncludeModule('sale');

$dbResult = CSaleDeliveryHandler::GetBySID('cpcr');

if ($arResult = $dbResult->GetNext())
{
  echo '('.$arResult['SID'].') <b>'.$arResult['NAME'].'</b><br />';
  echo '<small>'.$arResult['DESCRIPTION'].'</small><ul>';
  foreach ($arResult['PROFILES'] as $profile_id => $arProfile)
  {
    echo '<li>('.$profile_id.') '.$arProfile['TITLE'].'</li>';
  }
  echo '</ul>';
}
else
{
  echo 'Обработчик не найден';
}


GetHandlerCompability

Интернет-магазин>Классы>CSaleDeliveryHandler>GetHandlerCompability (доступен с 6.5.0, устарел с 15.5.0)

CSaleDeliveryHandler::GetHandlerCompability

Описание и параметры

array|bool
CSaleDeliveryHandler::GetHandlerCompability(
array arOrder,
 array arHandler,
 mixed SITE_ID = SITE_ID
);

Метод возвращает список профилей обработчика, подходящих данному заказу. Осуществляется проверка по весу и стоимости, а также вызывается метод COMPABILITY обработчика. Метод статический.

Примечание: метод устарел и не рекомендуется к использованию. Вместо него следует использовать методы класса \Bitrix\Sale\Delivery\Services\Base [image].

Параметры вызова

Параметр | Описание
arOrder Массив заказа. Представляет собой ассоциативный массив с ключами:
  • WEIGHT - суммарный вес заказа в граммах;
  • PRICE - суммарная стоимость заказа в базовой валюте магазина;
  • LOCATION_FROM - ID местоположения магазина, настраиваемого в настройках модуля "Интернет-магазин";
  • LOCATION_TO - ID местоположения, указываемого клиентом при оформлении заказа.
arHandler | Описательный массив обработчика, возвращаемый методами CSaleDeliveryHandler::GetBySID(), CSaleDeliveryHandler::GetList(), CSaleDeliveryHandler::GetAdminList(),
SITE_ID | Идентификатор сайта. По умолчанию используется текущий.

Возвращаемые значения

Метод возвращает массив профилей доставки, подходящих для данного заказа, либо false в случае, если ни один из профилей не подходит. Массив возвращается в том формате, в котором он указан в элементе "PROFILES" описательного массива обработчика, т.е.

Array
(
  "строковый_идентификатор_профиля" => Array
    (
      "TITLE" => "название_профиля",
      "DESCRIPTION" => "описание_профиля",
      "RESTRICTIONS_WEIGHT" => Array
        (
          /* ограничения обработчика по весу */
        ),

      "RESTRICTIONS_SUM" => Array
        (
          /* ограничения обработчика по стоимости */
        ),

      "ACTIVE" => "флаг_активности_профиля",
    ),
/* ................... */
)


GetList

Интернет-магазин>Классы>CSaleDeliveryHandler>GetList (доступен с 6.5.0)

CSaleDeliveryHandler::GetList

Описание и параметры

CDBResult
CSaleDeliveryHandler::GetList(
array arSort = array("SORT" => "ASC"),
 array arFilter = array()
);

Метод возвращает список обработчиков автоматизированных служб доставки, для которых установлены настройки в БД. Метод статический.

Примечание: метод устарел и не рекомендуется к использованию. Вместо него следует использовать методы класса \Bitrix\Sale\Delivery\Services\Base [image].

Параметры вызова

Параметр Описание
arSort Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array("параметр_сортировки" => "направление_сортировки" [, ...])

В качестве параметра сортировки может выступать одно из следующих значений:

  • SORT - параметр "сортировка";
  • NAME - наименования службы доставки;
  • SID - строковой идентификатор службы доставки;
  • HANDLER - путь к обработчику службы доставки;
  • ACTIVE - флаг активности службы доставки.

В качестве "направление_сортировки" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Значение по умолчанию - массив array("SORT" => "ASC") - означает, что результат будет отсортирован по возрастанию.
arFilter Массив, в соответствии с которым фильтруются записи службы доставки.
Массив имеет вид:
array("фильтруемое_поле"=>"значения_фильтра" [, ...])
"фильтруемое_поле" может принимать значения:
  • ACTIVE - фильтр по активности (Y|N); передача значения
                "ACTIVE"=>"ALL" выводит все элементы без учета их
        состояния;
по умолчанию выводятся только активные элементы;
  • SITE_ID - по сайту; ; передача значения "SITE_ID"=>"ALL" выводит настройки для всех сайтов;
    по умолчанию получаются настройки службы доставки только для текущего сайта;
  • SID - по строковому идентификатору обработчика;
  • HANDLER - фильтр по части пути к файлу обработчика.
  • COMPABILITY - проверка совместимости обработчика с параметрами заказа;
    значение должно быть массивом данных по заказу следующей структуры:
    • WEIGHT - суммарный вес заказа;
    • PRICE - суммарная стоимость заказа;
    • LOCATION_FROM - ID местоположения магазина (устанавливается в настройках модуля);
    • LOCATION_TO - ID местоположения, указанному при оформлении заказа.
Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий записи следующей структуры:

Ключ | Описание
SID | Строковой идентификатор обработчика доставки.
NAME | Наименование службы доставки.
DESCRIPTION | Описание службы доставки.
DESCRIPTION_INNER | "Внутреннее" описание функционала обработчика службы доставки.
LID | Идентификатор сайта, для которого установлены настройки.
ACTIVE | Флаг активности службы доставки.
SORT | Значение параметра сортировки для данной службы доставки.
BASE_CURRENCY | Идентификатор валюты, в которой работает обработчик службы доставки.
TAX_RATE | Значение наценки, автоматически добавляемой к стоимости доставки (%).
HANDLER | Путь к файлу обработчика доставки.
DBSETSETTINGS | callback к методу обработчика, обеспечивающему сохранение массива настроек в БД.
DBGETSETTINGS | callback к методу обработчика, обеспечивающему получение массива настроек из БД.
GETCONFIG | callback к методу обработчика, возвращающему список настроек обработчика.
COMPATIBILITY | callback к методу обработчика, осуществляющему проверку применимости обработчика к заказу.
CALCULATE | callback к методу обработчика, осуществляющему расчёт стоимости доставки.
PROFILES Массив профилей обработки доставки. Представляет собой ассоциативный массив вида:
Array
(
    "строковый_идентификатор_профиля" => Array
        (
            "TITLE" => "название_профиля",
            "DESCRIPTION" => "описание_профиля",
            "RESTRICTIONS_WEIGHT" => Array
                (
                    /* ограничения обработчика по весу */
                ),

            "RESTRICTIONS_SUM" => Array
                (
                    /* ограничения обработчика по стоимости */
                ),

            "ACTIVE" => "флаг_активности_профиля",
        ),
/* ................... */
)
CONFIG | Массив настроек обработчика доставки со значениями. Подробнее см. Руководство по созданию автоматизированных обработчиков доставки.
PROFILE_USE_DEFAULT | Значение флага "используются параметры профилей по умолчанию" (Y|N).

Пример использования

CModule::IncludeModule('sale');

$dbResult = CSaleDeliveryHandler::GetList(
  array(
    'SORT' => 'ASC',
    'NAME' => 'ASC'
  ),
  array(
    'ACTIVE' => 'Y'
  )
);
echo '<ul>';
while ($arResult = $dbResult->GetNext())
{
  echo '<li>('.$arResult['SID'].') <b>'.$arResult['NAME'].'</b><br />';
  echo '<small>'.$arResult['DESCRIPTION'].'</small></li>';
}
echo '</ul>';


Класс CSaleDiscount

Методы класса

Метод | Описание | С версии
GetList | Метод возвращает результат выборки записей из скидок на заказ в соответствии со своими параметрами. | 3.3.1
GetByID | Метод возвращает параметры скидки с кодом ID. | 3.3.1
Update | Метод обновляет параметры скидки с кодом ID на параметры из массива arFields. | 3.3.1
Delete | Метод удаляет скидку с кодом ID. | 3.3.1
Add | Метод добавляет новую скидку на сумму заказа с параметрами из массива arFields. | 4.0.6

Метод CSaleDiscount::DoProcessOrder использовался для расчета правил корзины до выхода нового ядра магазина. С версии 15.5 считается устаревшим и строго не рекомендованным к использованию. Вместо него используйте класс \Bitrix\Sale\Discount [image].


Add

Интернет-магазин>Классы>CSaleDiscount>Add (доступен с 4.0.6)

CSaleDiscount::Add

int
CSaleDiscount::Add(
  array arFields
);

Метод добавляет новую скидку на сумму заказа с параметрами из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров скидки, ключами в котором являются названия параметров скидки, а значениями - значения параметров.

Допустимые ключи:
  • LID - идентификатор сайта;
  • NAME - название;
  • ACTIVE_FROM - дата и время начала действия в формате сайта (если не указано, то действует с момента создания);
  • ACTIVE_TO - дата и время окончания действия в формате сайта (если не указано, то ограничения по времени не имеет);
  • ACTIVE - флаг активности;
  • PRIORITY - приоритет применимости (чем выше, тем раньше применится);
  • SORT - сортировка в рамках одного значения приоритета (чем меньше, тем раньше применится в рамках одного приоритета);
  • LAST_DISCOUNT - флаг "Прекратить применение скидок". Если правило применилось и флаг стоит, все последующие скидки не будут использованы (независимо от того, совпадают их условия или нет);
  • LAST_LEVEL_DISCOUNT - флаг "Прекратить уровень". Аналогичен предыдущему, но отменяет только последующие правила с таким же приоритетом;
  • XML_ID - внешний код;
  • CONDITIONS - массив, описывающий дополнительные условия правила;
  • ACTIONS - массив, описывающий действия правила;
  • USER_GROUPS - массив групп пользователей, на которых распространяется правило (не может быть пустым);
  • CURRENCY - с версии 14.0 принудительно содержит валюту сайта;
  • PRICE_FROM - общая стоимость заказа, начиная с которой предоставляется эта скидка. Устаревшее поле с 14.0, значение жестко переопределяются при добавлении;
  • PRICE_TO - общая стоимость заказа, до достижения которой предоставляется эта скидка. Устаревшее поле с 14.0, значение жестко переопределяются при добавлении;
  • DISCOUNT_VALUE - величина скидки. Устаревшее поле с 14.0, значение жестко переопределяются при добавлении;
  • DISCOUNT_TYPE - тип величины скидки (P - величина задана в процентах, V - величина задана в абсолютной сумме). Устаревшее поле с 14.0, значение жестко переопределяются при добавлении;

    • Блок купонов:
  • COUPON_ADD - создать купоны одного типа при добавлении правила или нет (Y/N);
  • COUPON_COUNT - число создаваемых купонов;
  • COUPON - массив, описывающий купон:
    • TYPE - тип купона (Y - купон на одну позицию заказа, O - купон на один заказ, N - многоразовый купон);
    • ACTIVE_FROM - дата и время начала активности купона в формате сайта либо null;
    • ACTIVE_TO - дата и время окончания активности купона в формате сайта либо null;
    • MAX_USE - максимальное число использования купона (для многоразовых) либо 0.

Возвращаемые значения

Возвращается код добавленной скидки или false в случае ошибки.


Delete

Интернет-магазин>Классы>CSaleDiscount>Delete (доступен с 3.3.1)

CSaleDiscount::Delete

bool
CSaleDiscount::Delete(
  int ID
);

Метод удаляет скидку с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код скидки.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


GetByID

Интернет-магазин>Классы>CSaleDiscount>GetByID (доступен с 3.3.1)

CSaleDiscount::GetByID

array
CSaleDiscount::GetByID(
  int ID
);

Метод возвращает параметры скидки с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код скидки.

Возвращаемые значения

Ассоциативный массив параметров скидки с ключами. Описание ключей смотрите здесь


GetList

Интернет-магазин>Классы>CSaleDiscount>GetList (доступен с 3.3.1, с устарел с 14.11.0)

CSaleDiscount::GetList

Описание и параметры

CDBResult
CSaleDiscount::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из скидок на заказ в соответствии со своими параметрами. Нестатический метод.

Метод устарел, вместо него рекомендуется использовать \Bitrix\Sale\Internals\DiscountTable::getList.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле корзины, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи скидки. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле корзины.

Пример фильтра:
array("!CURRENCY" => "USD")
Этот фильтр означает "выбрать все записи, в которых значение в поле CURRENCY (валюта) не равно USD".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи скидок. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле служб доставки. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Ключ | Описание
ID | Код скидки.
LID | Код сайта, к которому привязана эта скидка.
PRICE_FROM | Общая стоимость заказа, начиная с которой предоставляется эта скидка.
PRICE_TO | Общая стоимость заказа, до достижения которой предоставляется эта скидка.
CURRENCY | Валюта денежных полей в записи.
DISCOUNT_VALUE | Величина скидки.
DISCOUNT_TYPE | Тип величины скидки (P - величина задана в процентах, V - величина задана в абсолютной сумме).
ACTIVE | Флаг (Y/N) активности скидки.
SORT | Индекс сортировки (если по сумме заказа доступно несколько скидок, то берется первая по сортировке).
USER_GROUPS | Перечень групп пользователей, на которые должна действовать скидка.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Выберем величину активной скидки для текущего сайта и стоимости
// заказа $ORDER_PRICE (в базовой валюте этого сайта)
$db_res = CSaleDiscount::GetList(
        array("SORT" => "ASC"),
        array(
              "LID" => SITE_ID,
              "ACTIVE" => "Y",
              ">=PRICE_TO" => $ORDER_PRICE,
              "<=PRICE_FROM" => $ORDER_PRICE
            ),
        false,
        false,
        array()
    );
if ($ar_res = $db_res->Fetch())
{
   echo "Наша скидка - ";
   if ($ar_res["DISCOUNT_TYPE"] == "P")
   {
      echo $ar_res["DISCOUNT_VALUE"]."%";
   }
   else
   {
      echo CurrencyFormat($ar_res["DISCOUNT_VALUE"], $ar_res["CURRENCY"]);
   }
}
?>


Update

Интернет-магазин>Классы>CSaleDiscount>Update (доступен с 3.3.1)

CSaleDiscount::Update

int
CSaleDiscount::Update(
  int ID,
  array arFields
);

Метод обновляет параметры скидки с кодом ID на параметры из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код скидки.
arFields Ассоциативный массив новых параметров скидки, ключами в котором являются названия параметров, а значениями - новые значения. Допустимо указание не всех ключей, а только тех, значения которых необходимо изменить.
Допустимые ключи:
  • LID - код сайта, к которому привязана эта скидка;
  • PRICE_FROM - общая стоимость заказа, начиная с которой предоставляется эта скидка;
  • PRICE_TO - общая стоимость заказа, до достижения которой предоставляется эта скидка;
  • CURRENCY - валюта денежных полей в записи;
  • DISCOUNT_VALUE - величина скидки;
  • DISCOUNT_TYPE - тип величины скидки (P - величина задана в процентах, V - величина задана в абсолютной сумме);
  • ACTIVE - флаг (Y/N) активности скидки;
  • SORT - индекс сортировки (если по сумме заказа доступно несколько скидок, то берется первая по сортировке)

Возвращаемые значения

Возвращается код измененной скидки или false в случае ошибки.


Класс CSaleLocation

Методы класса

Метод | Описание | С версии | Устарел с версии
GetCountryByID | Метод возвращает языконезависимые параметры страны с кодом ID. | 3.2.2 | 14.10
GetCountryLangByID | Метод возвращает языкозависимые параметры страны по ее коду ID и языку strLang. | 3.2.2 | 14.10
GetCityByID | Метод возвращает языконезависимые параметры города с кодом ID. | 3.2.2 | 14.10
GetCityLangByID | Метод возвращает языкозависимые параметры города по его коду ID и языку strLang. | 3.2.2 | 14.10
UpdateCountry | Метод изменяет параметры страны с кодом ID на новые параметры из массива arFields. | 3.2.2 | 14.10
DeleteCountry | Метод удаляет страну с кодом ID. Связаные с этой страной местоположения не изменяются. | 3.2.2 | 14.10
UpdateCity | Метод изменяет параметры города с кодом ID на значения из массива arFields. | 3.2.2 | 14.10
DeleteCity | Метод удаляет город с кодом ID. Местоположение, с которым связан этот город, не изменяется. | 3.2.2 | 14.10
UpdateLocation | Метод обновляет параметры местоположения с кодом ID в соответствии с параметрами из массива arFields. | 3.2.2 | 14.10
Add | Метод добавляет новое местоположение включая страну и город местоположения, если нужно. | 3.2.2 | 14.10
Update | Метод обновляет параметры местоположения с кодом ID в соответствии с параметрами из массива arFields. Обновляются также страна и город этого местоположения. | 3.2.2 | 14.10
Delete | Метод удаляет местоположение с кодом ID. Метод также удаляет город этого местоположения, страну этого местоположения (если она не входит больше ни в одно другое местоположение), а так же связи этого местоположения с группами местоположений и службами доставки. | 3.2.2 | 14.10
GetList | Метод возвращает набор местоположений, удовлетворяющих фильтру arFilter. | 3.3.0 | 14.10
GetByID | Метод возвращает параметры местоположения с кодом ID, включая параметры страны и города. | 3.3.0 | 14.10
GetCountryList | Метод возвращает набор стран по фильтру arFilter, отсортированный по массиву arOrder. | 3.3.0 | 14.10
AddCountry | Метод добавляет новую страну с параметрами из массива arFields. | 3.3.0 | 14.10
AddCity | Метод добавляет новый город с параметрами из массива arFields. | 3.3.0 | 14.10
AddLocation | Метод добавляет новое местоположение на основании параметров массива arFields. | 3.3.0 | 14.10
DeleteAll | Метод удаляет все местоположения из базы. | 3.3.5 | 14.10
GetByZIP($zipCode) | Метод возвращает местоположение по почтовому индексу. | 3.3.5 | 14.10
GetLocationZIP($location) | Метод возвращает почтовый индекс по местоположению. | 3.3.5 | 14.10


Add

Интернет-магазин>Классы>CSaleLocation>Add (доступен с 3.2.2, устарел с 14.10.0)

CSaleLocation::Add

Описание и параметры

int
CSaleLocation::Add(
 array arFields
);

Метод добавляет новое местоположение включая страну и город местоположения, если нужно. Нестатический метод.

Внимание! Начиная с версии 14.10.0 метод не обновляется и обратная совместимость не поддерживается. Рекомендуется использовать методы нового ядра D7. Примеры работы с новым ядром можно увидеть здесь [image].

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров местоположения с ключами:
  • SORT - индекс сортировки;
  • COUNTRY_ID - код страны (если такая страна уже есть, иначе код должен быть нулем, и должен быть заполнен ключ COUNTRY);
  • COUNTRY - массив с параметрами страны (если страна уже есть и установлен ключ COUNTRY_ID, то этот ключ заполнять не нужно);
  • WITHOUT_CITY - флаг (Y/N), означающий, что это местоположение без города (только страна) (если значением с этим ключом является N, то необходимо заполнить ключ CITY);
  • CITY - массив с параметрами города (если установлен флаг WITHOUT_CITY в значение Y, то этот ключ заполнять не нужно);
  • REGION_NAME - название региона;
  • REGION_ID - ID региона;
Массив с параметрами страны должен содержать ключи:
  • NAME - название страны (не зависящее от языка);
  • SHORT_NAME - сокращенное название страны - абревиатура (не зависящее от языка);
  • <код языка> - ключом является код языка, а значением ассоциативный массив вида:
    array("LID" => "код языка",
      "NAME" => "название страны на этом языке",
      "SHORT_NAME" => "сокращенное название страны
                       (аббревиатура) на этом языке")
    Эта пара ключ-значение должна присутствовать для каждого языка системы.
Массив с параметрами города должен содержать ключи:
  • NAME - название города (не зависящее от языка);
  • SHORT_NAME - сокращенное название города - абревиатура (не зависящее от языка);
  • <код языка> - ключем является код языка, а значением ассоциативный массив вида:
    array("LID" => "код языка",
      "NAME" => "название города на этом языке",
      "SHORT_NAME" => "сокращенное название города
                       (аббревиатура) на этом языке")
    Эта пара ключ-значение должна присутствовать для каждого языка системы.

Возвращаемые значения

Возвращается код добавленного местоположения или false у случае ошибки.

Пример использования

<?
$arFields = array(
   "SORT" => 100,
   "COUNTRY_ID" => 0,
   "WITHOUT_CITY" => "N"
);

$arCountry = array(
   "NAME" => "Russian Federation",
   "SHORT_NAME" => "Russia",
   "ru" => array(
      "LID" => "ru",
      "NAME" => "Российская федерация",
      "SHORT_NAME" => "Россия"
      ),
   "en" => array(
      "LID" => "en",
      "NAME" => "Russian Federation",
      "SHORT_NAME" => "Russia"
      )
);

$arFields["COUNTRY"] = $arCountry;

$arCity = array(
   "NAME" => "Kaliningrad",
   "SHORT_NAME" => "Kaliningrad",
   "ru" => array(
      "LID" => "ru",
      "NAME" => "Калининград",
      "SHORT_NAME" => "Калининград"
      ),
   "en" => array(
      "LID" => "en",
      "NAME" => "Kaliningrad",
      "SHORT_NAME" => "Kaliningrad"
      )
);

$arFields["CITY"] = $arCity;

$ID = CSaleLocation::Add($arFields);
if (IntVal($ID)<=0)
   echo "Ошибка добавления местоположения";
?>


AddCity

Интернет-магазин>Классы>CSaleLocation>AddCity (доступен с 3.3.0, устарел с 14.10.0)

CSaleLocation::AddCity

Описание и параметры

int
CSaleLocation::AddCity(
 array arFields
);

Метод добавляет новый город с параметрами из массива arFields. Нестатический метод.

Внимание! Начиная с версии 14.10.0 метод не обновляется и обратная совместимость не поддерживается. Рекомендуется использовать методы нового ядра D7. Примеры работы с новым ядром можно увидеть здесь [image].

Параметры вызова

Параметр Описание
arFields Ассоциативный массив с параметрами города должен содержать ключи:
  • NAME - название города (не зависящее от языка);
  • SHORT_NAME - сокращенное название города - аббревиатура (не зависящее от языка);
  • <код языка> - ключем является код языка, а значением ассоциативный массив вида
    array("LID" => "код языка",
      "NAME" => "название города на этом языке",
      "SHORT_NAME" => "сокращенное название города
                       (аббревиатура) на этом языке")
    Эта пара ключ-значение должна присутствовать для каждого языка системы.

Возвращаемые значения

Возвращается код добавленного города или false в случае ошибки.

Пример использования

<?
$arCity = array(
   "NAME" => "Kaliningrad",
   "SHORT_NAME" => "Kaliningrad",
   "ru" => array(
      "LID" => "ru",
      "NAME" => "Калининград",
      "SHORT_NAME" => "Калининград"
      ),
   "en" => array(
      "LID" => "en",
      "NAME" => "Kaliningrad",
      "SHORT_NAME" => "Kaliningrad"
      )
);

$ID = CSaleLocation::AddCity($arCity);
if (IntVal($ID)<=0)
   echo "Ошибка добавления города";
?>


AddCountry

Интернет-магазин>Классы>CSaleLocation>AddCountry (доступен с 3.3.0, устарел с 14.10.0)

CSaleLocation::AddCountry

Описание и параметры

int
CSaleLocation::AddCountry(
 array arFields
);

Метод добавляет новую страну с параметрами из массива arFields. Нестатический метод.

Внимание! Начиная с версии 14.10.0 метод не обновляется и обратная совместимость не поддерживается. Рекомендуется использовать методы нового ядра D7. Примеры работы с новым ядром можно увидеть здесь [image].

Параметры вызова

Параметр Описание
arFields Массив с параметрами страны должен содержать ключи:
  • NAME - название страны (не зависящее от языка);
  • SHORT_NAME - сокращенное название страны - аббревиатура (не зависящее от языка);
  • <код языка> - ключем является код языка, а значением ассоциативный массив вида
    array("LID" => "код языка",
      "NAME" => "название страны на этом языке",
      "SHORT_NAME" => "сокращенное название страны
                       (аббревиатура) на этом языке")
    Эта пара ключ-значение должна присутствовать для каждого языка системы.

Возвращаемые значения

Возвращается код добавленного местоположения или false у случае ошибки.

Пример использования

<?
$arCountry = array(
   "NAME" => "Russian Federation",
   "SHORT_NAME" => "Russia",
   "ru" => array(
      "LID" => "ru",
      "NAME" => "Российская федерация",
      "SHORT_NAME" => "Россия"
      ),
   "en" => array(
      "LID" => "en",
      "NAME" => "Russian Federation",
      "SHORT_NAME" => "Russia"
      )
);

$ID = CSaleLocation::AddCountry($arCountry);
if (IntVal($ID)<=0)
   echo "Ошибка добавления страны";
?>


AddLocation

Интернет-магазин>Классы>CSaleLocation>AddLocation (доступен с 3.3.0, устарел с 14.10.0)

CSaleLocation::AddLocation

Описание и параметры

int
CSaleLocation::AddLocation(
  array arFields
);

Метод добавляет новое местоположение на основании параметров массива arFields. Нестатический метод.

Внимание! Начиная с версии 14.10.0 метод не обновляется и обратная совместимость не поддерживается. Рекомендуется использовать методы нового ядра D7. Примеры работы с новым ядром можно увидеть здесь [image].

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров местоположения с ключами:
  • SORT - индекс сортировки;
  • COUNTRY_ID - код страны;
  • REGION_ID - код региона;
  • CITY_ID - код города.

Возвращаемые значения

Возвращается код добавленного местоположения или false у случае ошибки.

Пример использования

<?
// Добавим местоположение из страны с кодом 2 и города с кодом 10
$ID = CSaleLocation::AddLocation(
      array(
         "COUNTRY_ID" => 2,
         "CITY_ID" => 10
         )
      );
?>


Delete

Интернет-магазин>Классы>CSaleLocation>Delete (доступен с 3.2.2, устарел с 14.10)

CSaleLocation::Delete

bool
CSaleLocation::Delete(
  int ID
);

Метод удаляет местоположение с кодом ID. Метод также удаляет город этого местоположения, страну этого местоположения (если она не входит больше ни в одно другое местоположение), а также связи этого местоположения с группами местоположений и службами доставки. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код местоположения.

Возвращаемые значения

Метод возвращает true в случае успешного удаления местоположения и false - в противном случае.

Пример использования

<?
if (!CSaleLocation::Delete(12))
   echo "Ошибка удаления местоположения";
?>


DeleteAll

Интернет-магазин>Классы>CSaleLocation>DeleteAll (доступен с 3.3.5, устарел с 14.10)

CSaleLocation::DeleteAll

CSaleLocation::DeleteAll();

Метод удаляет все местоположения из базы. Нестатический метод.


DeleteCity

Интернет-магазин>Классы>CSaleLocation>DeleteCity (доступен с 3.2.2, устарел с 14.10)

CSaleLocation::DeleteCity

bool
CSaleLocation::DeleteCity(
  int ID
);

Метод удаляет город с кодом ID. Местоположение, с которым связан этот город, не изменяется. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код города.

Возвращаемые значения

Метод возвращает true в случае успешного удаления местоположения и false - в противном случае.

Пример использования

<?
if (!CSaleLocation::DeleteCity(12))
   echo "Ошибка удаления города";
?>


DeleteCountry

Интернет-магазин>Классы>CSaleLocation>DeleteCountry (доступен с 3.2.2, устарел с 14.10)

CSaleLocation::DeleteCountry

bool
CSaleLocation::DeleteCountry(
  int ID
);

Метод удаляет страну с кодом ID. Связанные с этой страной местоположения не изменяются. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код страны.

Возвращаемые значения

Метод возвращает true в случае успешного удаления местоположения и false - в противном случае.

Пример использования

<?
if (!CSaleLocation::DeleteCountry(12))
   echo "Ошибка удаления страны";
?>


GetByID

Интернет-магазин>Классы>CSaleLocation>GetByID (доступен с 3.2.2, устарел с 14.10)

CSaleLocation::GetByID

Описание и параметры

array
CSaleLocation::GetByID(
  int ID,
  string strLang = LANGUAGE_ID
);

Метод возвращает параметры местоположения с кодом ID, включая параметры страны и города. Параметры, зависящие от языка, возвращаются для языка strLang. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код местоположения.
strLang | Язык параметров, зависящих от языка. По умолчанию равен текущему языку.

Возвращаемые значения

Возвращает ассоциативный массив с ключами:

Ключ | Описание | С версии
ID | Код местоположения. |
COUNTRY_ID | Код страны. |
CITY_ID | Код города. |
SORT | Индекс сортировки. |
COUNTRY_NAME_ORIG | Языконезависимое название страны. |
COUNTRY_SHORT_NAME | Языконезависимое сокращенное название страны. |
COUNTRY_NAME_LANG | Языкозависимое название страны. |
CITY_NAME_ORIG | Языконезависимое название города. |
CITY_SHORT_NAME | Языконезависимое сокращенное название города. |
CITY_NAME_LANG | Языкозависимое название города. |
REGION_ID | Код региона. |
REGION_NAME_ORIG | Языконезависимое название региона. | 12.5
REGION_SHORT_NAME | Языконезависимое сокращенное название региона. | 12.5
REGION_NAME_LANG | Языкозависимое название региона. | 12.5
COUNTRY_NAME | Языкозависимое название страны, если оно есть. Иначе - языконезависимое название страны. |
CITY_NAME | Языкозависимое название города, если оно есть. Иначе - языконезависимое название города. |
REGION_NAME | Языкозависимое название региона, если оно есть. Иначе - языконезависимое название региона. | 12.5

Пример использования

<?
$arLocs = CSaleLocation::GetByID(22, LANGUAGE_ID);
echo $arLocs["COUNTRY_NAME"]." - ".$arLocs["CITY_NAME"];
?>


GetCityByID

Интернет-магазин>Классы>CSaleLocation>GetCityByID (доступен с 3.2.2, устарел с 14.10)

CSaleLocation::GetCityByID

array
CSaleLocation::GetCityByID(
  int ID
);

Метод возвращает языконезависимые параметры города с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код города.

Возвращаемые значения

Возвращается ассоциативный массив с ключами:

Ключ | Описание
ID | Код города.
NAME | Языконезависимое название города.
SHORT_NAME | Языконезависимое короткое название города.
REGION_ID | Код региона.


GetCityLangByID

Интернет-магазин>Классы>CSaleLocation>GetCityLangByID (доступен с 3.2.2, устарел с 14.10)

CSaleLocation::GetCityLangByID

array
CSaleLocation::GetCityLangByID(
  int ID,
  string strLang = LANGUAGE_ID
);

Метод возвращает языкозависимые параметры города по его коду ID и языку strLang. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код города.
strLang | Язык. По умолчанию равен текущему языку.

Возвращаемые значения

Возвращается ассоциативный массив с ключами:

Ключ | Описание
ID | Код записи.
CITY_ID | Код города.
LID | Язык.
NAME | Языкозависимое название города.
SHORT_NAME | Языкозависимое короткое название города.


GetCountryByID

Интернет-магазин>Классы>CSaleLocation>GetCountryByID (доступен с 3.2.2, устарел с 14.10)

CSaleLocation::GetCountryByID

array
CSaleLocation::GetCountryByID(
  int ID
);

Метод возвращает языконезависимые параметры страны с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код страны.

Возвращаемые значения

Возвращается ассоциативный массив с ключами:

Ключ | Описание
ID | Код страны.
NAME | Языконезависимое название страны.
SHORT_NAME | Языконезависимое короткое название страны.


GetCountryLangByID

Интернет-магазин>Классы>CSaleLocation>GetCountryLangByID (доступен с 3.2.2, устарел с 14.10)

CSaleLocation::GetCountryLangByID

array
CSaleLocation::GetCountryLangByID(
  int ID,
  string strLang = LANGUAGE_ID
);

Метод возвращает языкозависимые параметры страны по ее коду ID и языку strLang. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код страны.
strLang | Язык. По умолчанию берется текущий язык.

Возвращаемые значения

Возвращается ассоциативный массив с ключами:

Ключ | Описание
ID | Код записи.
COUNTRY_ID | Код страны.
LID | Язык.
NAME | Языкозависимое название страны.
SHORT_NAME | Языкозависимое короткое название страны.


GetCountryList

Интернет-магазин>Классы>CSaleLocation>GetCountryList (доступен с 3.3.0, устарел с 14.10)

CSaleLocation::GetCountryList

Описание и параметры

CDBResult
CSaleLocation::GetCountryList(
 array arOrder = Array("NAME_LANG"=>"ASC"),
 array arFilter = Array(),
 string strLang = LANGUAGE_ID
);

Метод возвращает набор стран по фильтру arFilter, отсортированный по массиву arOrder. Языкозависимые параметры берутся для языка strLang. Нестатический метод.

Параметры вызова

Параметр | Описание
arOrder Ассоциативный массив для сортировки записей. Сортировка осуществляется последовательно по каждой паре ключ-значение. Ключами являются названия параметров, а значениями - направления сортировки.

Допустимые ключи:
  • NAME_LANG - языкозависимое название страны;
  • ID - код страны;
  • NAME - языконезависимое название страны;
  • SHORT_NAME - языконезависимое сокращенное название страны.
Допустимые значения:
  • ASC - по возрастанию;
  • DESC - по убыванию.
arFilter Ассоциативный массив для фильтрации записей - выбираются только те записи, которые удовлетворяют фильтру. Ключами являются названия параметров, а значениями - условия на значения.

Допустимые ключи:
  • ID - код страны;
  • NAME - языконезависимое название страны.
strLang | Язык, на котором выбираются языкозависимые параметры. По умолчанию равен текущему языку.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Ключ | Описание
ID | Код страны.
NAME_ORIG | Языконезависимое название страны.
SHORT_NAME | Языконезависимое короткое название страны.
NAME | Языкозависимое название страны.
NAME_LANG | Языкозависимое название страны, если оно есть. Иначе языконезависимое название страны.


GetList

Интернет-магазин>Классы>CSaleLocation>GetList (доступен с 3.3.0, устарел с 14.10)

CSaleLocation::GetList

Описание и параметры

CDBResult
CSaleLocation::GetList(
 array arOrder = array("SORT"=>"ASC", "COUNTRY_NAME_LANG"=>"ASC", "CITY_NAME_LANG"=>"ASC"),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает набор местоположений, удовлетворяющих фильтру arFilter. Возвращаются так же параметры стран и городов местоположений. Набор отсортирован в соответствии с массивом arOrder. Языкозависимые параметры выбираются для языка strLang. Нестатический метод.

Параметры вызова

Параметр Описание С версии
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле местоположения, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).
arFilter Массив, в соответствии с которым фильтруются записи местоположений. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле местоположения.

Пример фильтра:
array("COUNTRY_ID" => 15)
Этот фильтр означает "выбрать все записи, в которых значение в поле COUNTRY_ID (код страны) равно 15".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи местоположений. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле местоположений. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет. 		4.0.6
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет. 		4.0.6
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса. 		4.0.6

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Ключ | Описание
ID | Код местоположения.
COUNTRY_ID | Код страны.
REGION_ID | Код региона.
CITY_ID | Код города.
SORT | Индекс сортировки.
COUNTRY_NAME_ORIG | Языконезависимое название страны.
COUNTRY_SHORT_NAME | Языконезависимое короткое название страны.
REGION_NAME_ORIG | Языконезависимое название региона.
CITY_NAME_ORIG | Языконезависимое название города.
REGION_SHORT_NAME | Языконезависимое короткое название региона.
CITY_SHORT_NAME | Языконезависимое короткое название города.
COUNTRY_LID | Код языка для наименования страны.
COUNTRY_NAME | Языкозависимое название страны, если оно установлено. Иначе - языконезависимое название страны.
REGION_LID | Код языка для наименования региона.
CITY_LID | Код языка для наименования города.
REGION_NAME | Языкозависимое название региона, если оно установлено. Иначе - языконезависимое название региона.
CITY_NAME | Языкозависимое название города, если оно установлено. Иначе - языконезависимое название города.
LOC_DEFAULT | Флаг "Выводить по умолчанию".

Пример использования

<?// Выведем выпадающий список местоположений?>

<select name="LOCATION">
   <?
   $db_vars = CSaleLocation::GetList(
        array(
                "SORT" => "ASC",
                "COUNTRY_NAME_LANG" => "ASC",
                "CITY_NAME_LANG" => "ASC"
            ),
        array("LID" => LANGUAGE_ID),
        false,
        false,
        array()
    );
   while ($vars = $db_vars->Fetch()):
      ?>
      <option value="<?= $vars["ID"]?>"><?= htmlspecialchars($vars["COUNTRY_NAME"]." - ".$vars["CITY_NAME"])?></option>
      <?
   endwhile;
   ?>
</select>
?>


Update

Интернет-магазин>Классы>CSaleLocation>Update (доступен с 3.2.2, устарел с 14.10)

CSaleLocation::Update

Описание и параметры

int
CSaleLocation::Update(
  int ID,
  array arFields
);

Метод обновляет параметры местоположения с кодом ID в соответствии с параметрами из массива arFields. Обновляются так же страна и город этого местоположения. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код местоположения.
arFields Ассоциативный массив параметров местоположения с ключами:
  • SORT - индекс сортировки;
  • COUNTRY_ID - код страны (если такая страна уже есть, иначе код должен быть нулем, и должен быть заполнен ключ COUNTRY);
  • COUNTRY - массив с параметрами страны (должен быть заполнен, если не установлен ключ COUNTRY_ID или если ключ CHANGE_COUNTRY установлен в значение Y);
  • CHANGE_COUNTRY - флаг (Y/N), изменять ли параметры страны (долны быть установлены ключи COUNTRY_ID и COUNTRY);
  • WITHOUT_CITY - флаг (Y/N), означающий, что это местоположение без города (только страна) (если значением с этим ключем является N, то необходимо заполнить ключ CITY);
  • CITY_ID - код города (если такой город уже есть, иначе код должен быть нулем, и должен быть заполнен ключ CITY);
  • CITY - массив с параметрами города (если установлен флаг WITHOUT_CITY в значение Y, то этот ключ заполнять не нужно);
Массив с параметрами страны должен содержать ключи:
  • NAME - название страны (не зависящее от языка);
  • SHORT_NAME - сокращенное название страны - абревиатура (не зависящее от языка);
  • <код языка> - ключем является код языка, а значением ассоциативный массив вида
    array("LID" => "код языка",
      "NAME" => "название страны на этом языке",
      "SHORT_NAME" => "сокращенное название страны
                       (аббревиатура) на этом языке")
    Эта пара ключ-значение должна присутствовать для каждого языка системы.
Массив с параметрами города должен содержать ключи:
  • NAME - название города (не зависящее от языка);
  • SHORT_NAME - сокращенное название города - абревиатура (не зависящее от языка);
  • <код языка> - ключем является код языка, а значением ассоциативный массив вида
    array("LID" => "код языка",
      "NAME" => "название города на этом языке",
      "SHORT_NAME" => "сокращенное название города
                       (аббревиатура) на этом языке")
    Эта пара ключ-значение должна присутствовать для каждого языка системы.

Возвращаемые значения

Возвращается код измененного местоположения или false у случае ошибки.

Пример использования

<?
$arFields = array(
   "SORT" => 100,
   "COUNTRY_ID" => 8,
   "WITHOUT_CITY" => "N"
);

$arCity = array(
   "NAME" => "Kaliningrad",
   "SHORT_NAME" => "Kaliningrad",
   "ru" => array(
      "LID" => "ru",
      "NAME" => "Калининград",
      "SHORT_NAME" => "Калининград"
      ),
   "en" => array(
      "LID" => "en",
      "NAME" => "Kaliningrad",
      "SHORT_NAME" => "Kaliningrad"
      )
);

$arFields["CITY"] = $arCity;

if (!CSaleLocation::Update(6, $arFields))
   echo "Ошибка изменения местоположения";
?>


UpdateCity

Интернет-магазин>Классы>CSaleLocation>UpdateCity (доступен с 3.2.2, устарел с 14.10)

CSaleLocation::UpdateCity

int
CSaleLocation::UpdateCity(
  int ID,
  array arFields
);

Метод изменяет параметры города с кодом ID на значения из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код города.
arFields Массив с параметрами города должен содержать ключи:
  • NAME - название города (не зависящее от языка);
  • SHORT_NAME - сокращенное название города - абревиатура (не зависящее от языка);
  • <код языка> - ключем является код языка, а значением ассоциативный массив вида
    array("LID" => "код языка",
      "NAME" => "название города на этом языке",
      "SHORT_NAME" => "сокращенное название города
                       (аббревиатура) на этом языке")
    Эта пара ключ-значение должна присутствовать для каждого языка системы.

Возвращаемые значения

Возвращается код измененного города или false у случае ошибки.


UpdateCountry

Интернет-магазин>Классы>CSaleLocation>UpdateCountry (доступен с 3.2.2, устарел с 14.10)

CSaleLocation::UpdateCountry

int
CSaleLocation::UpdateCountry(
  int ID,
  array arFields
);

Метод изменяет параметры страны с кодом ID на новые параметры из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код страны.
arFields Массив с параметрами страны должен содержать ключи:
  • NAME - название страны (не зависящее от языка);
  • SHORT_NAME - сокращенное название страны - абревиатура (не зависящее от языка);
  • <код языка> - ключем является код языка, а значением ассоциативный массив вида
    array("LID" => "код языка",
      "NAME" => "название страны на этом языке",
      "SHORT_NAME" => "сокращенное название страны
                       (аббревиатура) на этом языке")
    Эта пара ключ-значение должна присутствовать для каждого языка системы.

Возвращаемые значения

Возвращается код измененной страны или false у случае ошибки.


UpdateLocation

Интернет-магазин>Классы>CSaleLocation>UpdateLocation (доступен с 3.2.2, устарел с 14.10)

CSaleLocation::UpdateLocation

int
CSaleLocation::UpdateLocation(
  int ID,
  array arFields
);

Метод обновляет параметры местоположения с кодом ID в соответствии с параметрами из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код местоположения.
arFields Ассоциативный массив параметров местоположения с ключами:
  • SORT - индекс сортировки;
  • COUNTRY_ID - код страны;
  • REGION_ID - код региона;
  • CITY_ID - код города (если такой город уже есть, иначе код должен быть нулем, и должен быть заполнен ключ CITY).

Возвращаемые значения

Возвращается код измененного местоположения или false в случае ошибки.


Класс CSaleLocationGroup

Методы класса

Класс устарел. Рекомендуется использование класса \Bitrix\Sale\Location\GroupTable.

Метод | Описание | С версии
GetLocationList | Метод возвращает набор местоположений, связанных с группами местоположений, удовлетворяющих фильтру arFilter. | 3.2.2
GetGroupLangByID | Метод возвращает языкозависимые параметры группы местоположений с кодом ID для языка с кодом strLang. | 3.2.2
Update | Метод обновляет параметры группы местоположений с кодом ID на значения из массива arFields. | 3.2.2
Delete | Метод удаляет группу местоположений с кодом ID. Местоположения, входящие в эту группу, не изменяются. | 3.2.2
GetList | Метод возвращает набор групп местоположений, удовлетворяющих фильтру arFilter. Группы отсортированы в соответствии с массивом arOrder. | 3.3.0
GetByID | Метод возвращает параметры группы местоположений с кодом ID. Языкозависимые параметры возвращаются для языка с кодом strLang. | 3.3.0
Add | Метод добавляет новую группу местоположений с параметрами из массива arFields. | 3.3.0


Add

Интернет-магазин>Классы>CSaleLocationGroup>Add (доступен с 3.3.0, устарел с 15.0.0)

CSaleLocationGroup::Add

Описание и параметры

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Location\GroupTable.

int
CSaleLocationGroup::Add(
  array arFields
);

Метод добавляет новую группу местоположений с параметрами из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Массив значений параметров группы местоположений, ключами в котором являются имена параметров.

Допустимые ключи:
  • SORT - индекс сортировки;
  • LOCATION_ID - массив кодов местоположений, которые входят в эту группу;
  • LANG - массив языкозависимых параметров группы, каждый элемент которого имеет вид
    array("LID"=>"язык параметров",
      "NAME"=>"Название группы")

Возвращаемые значения

Возвращается код добавленной группы или false в случае ошибки.

Пример использования

<?
$arFields = array(
   "SORT" => 150,
   "LOCATION_ID" => array(12, 34, 35, 36, 37),
   "LANG" => array(
      array("LID" => "ru", "NAME" => "Группа 1"),
      array("LID" => "en", "NAME" => "Group 1")
   )
);

$ID = CSaleLocationGroup::Add($arFields);
if (IntVal($ID)<=0)
   echo "Ошибка добавления группы";
?>


Delete

Интернет-магазин>Классы>CSaleLocationGroup>Delete (доступен с 3.2.2, устарел с 15.0.0)

CSaleLocationGroup::Delete

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Location\GroupTable.

bool
CSaleLocationGroup::Delete(
  int ID
);

Метод удаляет группу местоположений с кодом ID. Местоположения, входящие в эту группу, не изменяются. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код группы местоположений.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.

Пример использования

<?
if (!CSaleLocationGroup::Delete(2))
   echo "Ошибка удаления группы местоположений";
?>


GetByID

Интернет-магазин>Классы>CSaleLocationGroup>GetByID (доступен с 3.3.0, устарел с 15.0.0)

CSaleLocationGroup::GetByID

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Location\GroupTable.

array
CSaleLocationGroup::GetByID(
  int ID,
  string strLang = LANGUAGE_ID
);

Метод возвращает параметры группы местоположений с кодом ID. Языкозависимые параметры возвращаются для языка с кодом strLang. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код группы местоположений.
strLang | Код языка для языкозависимых параметров. По умолчанию равен текущему языку.

Возвращаемые значения

Возвращается ассоциативный массив с ключами:

Ключ | Описание
ID | Код группы местоположений.
SORT | Индекс сортировки.
NAME | Название группы.
LID | Язык названия.


GetGroupLangByID

Интернет-магазин>Классы>CSaleLocationGroup>GetGroupLangByID (доступен с 3.2.2, устарел с 15.0.0)

CSaleLocationGroup::GetGroupLangByID

Описание и параметры

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Location\GroupTable.

array
CSaleLocationGroup::GetGroupLangByID(
  int ID,
  string strLang = LANGUAGE_ID
);

Метод возвращает языкозависимые параметры группы местоположений с кодом ID для языка с кодом strLang. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код группы местоположений.
strLang | Код языка.

Возвращаемые значения

Возвращается ассоциативный массив с ключами:

Ключ | Описание
ID | Код записи.
LOCATION_GROUP_ID | Код группы местоположений.
NAME | Название группы.
LID | Язык названия.

Пример использования

<?
$arGroupLang = CSaleLocationGroup::GetGroupLangByID(2, "en");
echo $arGroupLang["NAME"];
?>


GetList

Интернет-магазин>Классы>CSaleLocationGroup>GetList (доступен с 3.3.0, устарел с 15.0.0)

CSaleLocationGroup::GetList

Описание и параметры

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Location\GroupTable.

CDBResult
CSaleLocationGroup::GetList(
  array arOrder = Array("NAME"=>"ASC"),
  array arFilter = Array(),
  string strLang = LANGUAGE_ID
);

Метод возвращает набор групп местоположений, удовлетворяющих фильтру arFilter. Группы отсортированы в соответствии с массивом arOrder. Нестатический метод.

Параметры вызова

Параметр | Описание
arOrder Ассоциативный массив для указания сортировки результирующего набора групп. Каждая пара ключ-значение массива применяется последовательно. Ключами являются названия полей для сортировки, а значениями - направления сортировки.

Допустимые ключи:
  • ID - код группы местоположений;
  • NAME - название группы;
  • SORT - индекс сортировки.
Допустимые значения:
  • ASC - по возрастанию;
  • DESC - по убыванию.
arFilter Фильтр представляет собой ассоциативный массив, в котором ключами являются названия параметров группы, а значениями - условия на значения

Допустимые ключи:
  • ID - код группы местоположения.
strLang | Код языка для языкозависимых параметров. По умолчанию равен текущему языку.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы с ключами:

Ключ | Описание
ID | Код группы местоположений.
SORT | Индекс сортировки.
NAME | Название группы.
LID | Язык названия.

Пример использования

<select name="LOCATION2" size="5" multiple>
   <?
   $db_vars = CSaleLocationGroup::GetList(Array("NAME"=>"ASC"), array(), LANGUAGE_ID);
   while ($vars = $db_vars->Fetch()):
      ?>
      <option value="<?= $vars["ID"]?>"><?= htmlspecialchars($vars["NAME"])?></option>
      <?
   endwhile;
   ?>
</select>


GetLocationList

Интернет-магазин>Классы>CSaleLocationGroup>GetLocationList (доступен с 3.2.2, устарел с 15.0.0)

CSaleLocationGroup::GetLocationList

Описание и параметры

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Location\GroupTable.

CDBResult
CSaleLocationGroup::GetLocationList(
  array arFilter = Array()
);

Метод возвращает набор местоположений, связанных с группами местоположений, удовлетворяющих фильтру arFilter. Нестатический метод.

Параметры вызова

Параметр Описание
arFilter Фильтр представляет собой ассоциативный массив, в котором ключами являются названия параметров записи, а значениями - условия на значения

Допустимые ключи:
  • LOCATION_ID - код местоположения;
  • LOCATION_GROUP_ID - код группы местоположений.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы с ключами:

Ключ | Описание
LOCATION_ID | Код местоположения.
LOCATION_GROUP_ID | Код группы местоположений.

Пример использования

<?
// Выберем все местоположения группы 2
$db_res = CSaleLocationGroup::GetLocationList(array("LOCATION_GROUP_ID"=>2));
while ($ar_res = $db_res->Fetch())
{
   echo $ar_res["LOCATION_ID"].", ";
}
?>


Update

Интернет-магазин>Классы>CSaleLocationGroup>Update (доступен с 3.2.2, устарел с 15.0.0)

CSaleLocationGroup::Update

Описание и параметры

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Location\GroupTable.

int
CSaleLocationGroup::Update(
  int ID,
  array arFields
);

Метод обновляет параметры местоположения с кодом ID в соответствии с параметрами из массива arFields. Обновляются также страна и город этого местоположения. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код местоположения.
arFields Ассоциативный массив параметров местоположения с ключами:
  • SORT - индекс сортировки;
  • COUNTRY_ID - код страны (если такая страна уже есть, иначе код должен быть нулем, и должен быть заполнен ключ COUNTRY);
  • COUNTRY - массив с параметрами страны (должен быть заполнен, если не установлен ключ COUNTRY_ID или если ключ CHANGE_COUNTRY установлен в значение Y);
  • CHANGE_COUNTRY - флаг (Y/N), изменять ли параметры страны (долны быть установлены ключи COUNTRY_ID и COUNTRY);
  • WITHOUT_CITY - флаг (Y/N), означающий, что это местоположение без города (только страна) (если значением с этим ключем является N, то необходимо заполнить ключ CITY);
  • CITY_ID - код города (если такой город уже есть, иначе код должен быть нулем, и должен быть заполнен ключ CITY);
  • CITY - массив с параметрами города (если установлен флаг WITHOUT_CITY в значение Y, то этот ключ заполнять не нужно);
  • LOCATION_ID - массив кодов местоположений, которые привязаны к данной группе местоположений.
Массив с параметрами страны должен содержать ключи:
  • NAME - название страны (не зависящее от языка);
  • SHORT_NAME - сокращенное название страны - абревиатура (не зависящее от языка);
  • <код языка> - ключем является код языка, а значением ассоциативный массив вида

array("LID" => "код языка",
      "NAME" => "название страны на этом языке",
      "SHORT_NAME" => "сокращенное название страны
                       (аббревиатура) на этом языке")
    Эта пара ключ-значение должна присутствовать для каждого языка системы.
Массив с параметрами города должен содержать ключи:
  • NAME - название города (не зависящее от языка);
  • SHORT_NAME - сокращенное название города - аббревиатура (не зависящее от языка);
  • <код языка> - ключем является код языка, а значением ассоциативный массив вида

array("LID" => "код языка",
      "NAME" => "название города на этом языке",
      "SHORT_NAME" => "сокращенное название города
                       (аббревиатура) на этом языке")
    Эта пара ключ-значение должна присутствовать для каждого языка системы.

Возвращаемые значения

Возвращается код измененного местоположения или false у случае ошибки.

Примеры использования

<?
$arFields = array(
   "SORT" => 100,
   "COUNTRY_ID" => 8,
   "WITHOUT_CITY" => "N"
);

$arCity = array(
   "NAME" => "Kaliningrad",
   "SHORT_NAME" => "Kaliningrad",
   "ru" => array(
      "LID" => "ru",
      "NAME" => "Калининград",
      "SHORT_NAME" => "Калининград"
      ),
   "en" => array(
      "LID" => "en",
      "NAME" => "Kaliningrad",
      "SHORT_NAME" => "Kaliningrad"
      )
);

$arFields["CITY"] = $arCity;

if (!CSaleLocation::Update(6, $arFields))
   echo "Ошибка изменения местоположения";
?>

 function CreateCityRussia($arFields, $regionName, &$strError) {
   // Ищем группу местоположений, к которой необходимо привязать местоположение
   $locGroupID = 0;
   $resLocationGroup = CSaleLocationGroup::GetList(array("ID"=>"ASC"), array());
   while($arLocationGroup = $resLocationGroup->Fetch()) {
     if(mb_strtolower($arLocationGroup["NAME"], "Windows-1251") == mb_strtolower($regionName, "Windows-1251")) $locGroupID = $arLocationGroup["ID"];
   }

   // Если группа найдена, определяем список привязанных к ней местоположений и добавляем к списку новое
   if($locGroupID) {
     // Создаем новый город в стране Россия и новое местоположение
     $arCoutry = CSaleLocation::GetList(array(), array("LID" => LANGUAGE_ID, "CITY_NAME" => false, "COUNTRY_NAME" => "Россия"))->Fetch();
     $cityId = CSaleLocation::AddCity($arFields);
     $ID = CSaleLocation::AddLocation(array("COUNTRY_ID" => $arCoutry['COUNTRY_ID'], "CITY_ID" => $cityId));

     // Формируем новый список местоположений группы
     $resLocGroup = CSaleLocationGroup::GetLocationList(array("LOCATION_GROUP_ID" => $locGroupID));
     $locList = array();
     while($arLocGroup = $resLocGroup->Fetch()) {
       $locList[] = $arLocGroup["LOCATION_ID"];
     }
     $locList[] = $ID;

     // Записываем новый список местоположений группы
     $arFields = CSaleLocationGroup::GetByID($locGroupID);
     $arFields["LOCATION_ID"] = $locList;
     if (!CSaleLocationGroup::Update($locGroupID, $arFields))
        $strError = "Ошибка добавления местоположения к группе местоположений";
     return $ID;
   } else {
     // В противном случае записываем сообщение об ошибке
     $strError = "Ошибка создания местоположения: Не найдена группа местоположений $regionName";
     return false;
   }
    }


CSaleOrder

Методы класса

Класс устарел. Рекомендуется использовать класс \Bitrix\Sale\Order [image].

Метод | Описание | С версии
GetList | Метод возвращает результат выборки записей из заказов в соответствии со своими параметрами. | 3.3.0
GetByID | Метод возвращает параметры заказа с кодом ID. | 3.3.0
PayOrder | Метод меняет значение флага "заказ оплачен" (поле PAYED) на значение параметра Val для заказа с кодом ID. | 3.3.0
DeliverOrder | Метод меняет значение флага "доставка разрешена" (поле ALLOW_DELIVERY) на значение параметра Val для заказа с кодом ID. | 3.3.0
DoSaveOrder | Метод выполняет сохранение данных заказа. | 11.5.0
CancelOrder | Метод меняет значение флага "заказ отменён" (поле CANCELED) на значение параметра Val для заказа с кодом ID. | 3.3.0
StatusOrder | Метод меняет значение статуса заказа (поле STATUS_ID) на значение параметра Val для заказа с кодом ID. | 3.3.0
CommentsOrder | Метод устанавливает новое значение Val комментария (поле COMMENTS) к заказу с кодом ID | 3.3.0
Delete | Метод удаляет заказ с кодом ID. | 3.3.0
Add | Метод добавляет новый заказ с параметрами из массива arFields. | 3.3.0
Update | Метод изменяет параметры заказа с кодом ID на новые параметры из массива arFields. | 3.3.0


Add

Интернет-магазин>Классы>CSaleOrder>Add (доступен с 3.3.0, устарел с 15.0.0)

CSaleOrder::Add

Описание и параметры

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Order [image].

int
CSaleOrder::Add(
  array arFields
);

Метод добавляет новый заказ с параметрами из массива arFields. Перед добавлением заказа вызываются обработчики события OnBeforeOrderAdd модуля магазина, а после добавления - обработчики события OnOrderAdd модуля магазина. Статический метод.

С версии продукта 15.0.0 рекомендуется вместо этого метода использовать методы ядра D7. Пример [image].

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров заказа, ключами в котором являются названия параметров заказа, а значениями - новые значения.
Допустимые ключи:
  • LID - код сайта, на котором сделан заказ;
  • PERSON_TYPE_ID - тип плательщика, к которому принадлежит посетитель, сделавший заказ (заказчик);
  • PAYED - флаг (Y/N) оплачен ли заказ;
  • DATE_PAYED - дата оплаты заказа;
  • EMP_PAYED_ID - код пользователя (сотрудника магазина), который установил флаг оплаченности;
  • CANCELED - флаг (Y/N) отменён ли заказ;
  • DATE_CANCELED - дата отмены заказа;
  • EMP_CANCELED_ID - код пользователя, который установил флаг отмены заказа;
  • REASON_CANCELED - текстовое описание причины отмены заказа;
  • STATUS_ID - код статуса заказа;
  • EMP_STATUS_ID - код пользователя (сотрудника магазина), который установил текущий статус заказа;
  • PRICE_DELIVERY - стоимость доставки заказа;
  • ALLOW_DELIVERY - флаг (Y/N) разрешена ли доставка (отгрузка) заказа;
  • DATE_ALLOW_DELIVERY - дата, когда была разрешена доставка заказа;
  • EMP_ALLOW_DELIVERY_ID - код пользователя (сотрудника магазина), который разрешил доставку заказа;
  • PRICE - общая стоимость заказа;
  • CURRENCY - валюта стоимости заказа;
  • DISCOUNT_VALUE - общая величина скидки;

    Параметр не поддерживается с версии 12.5.0. Вместо него необходимо использовать правила корзины [image].

  • USER_ID - код пользователя заказчика;
  • PAY_SYSTEM_ID - платежная система, которой (будет) оплачен заказ;
  • DELIVERY_ID - способ (служба) доставки заказа;
  • USER_DESCRIPTION - описание заказа заказчиком;
  • ADDITIONAL_INFO - дополнительная информация по заказу;
  • COMMENTS - произвольные комментарии;
  • TAX_VALUE - общая сумма налогов;
  • AFFILIATE_ID - код аффилиата, через которого пришел посетитель;
  • STAT_GID - параметр события в статистике;
  • PS_STATUS - флаг (Y/N) статуса платежной системы - успешно ли оплачен заказ (для платежных систем, которые позволяют автоматически получать данные по проведенным через них заказам);
  • PS_STATUS_CODE - код статуса платежной системы (значение зависит от системы);
  • PS_STATUS_DESCRIPTION - описание результата работы платежной системы;
  • PS_STATUS_MESSAGE - сообщение от платежной системы;
  • PS_SUM - сумма, которая была реально оплачена через платежную систему;
  • PS_CURRENCY - валюта суммы;
  • PS_RESPONSE_DATE - дата получения статуса платежной системы;
  • SUM_PAID - сумма, которая уже была оплачена покупателем по данному счету (например, с внутреннего счета);
  • PAY_VOUCHER_NUM - номер платежного поручения;
  • PAY_VOUCHER_DATE - дата платежного поручения.
  • STORE_ID - ID пункта самовывоза из складов.

Возвращаемые значения

Возвращается код добавленного заказа или false в случае ошибки.

Примеры использования

<?
$arFields = array(
   "LID" => "en",
   "PERSON_TYPE_ID" => 1,
   "PAYED" => "N",
   "CANCELED" => "N",
   "STATUS_ID" => "N",
   "PRICE" => 279.32,
   "CURRENCY" => "USD",
   "USER_ID" => IntVal($USER->GetID()),
   "PAY_SYSTEM_ID" => 3,
   "PRICE_DELIVERY" => 11.37,
   "DELIVERY_ID" => 2,
   "DISCOUNT_VALUE" => 1.5,
   "TAX_VALUE" => 0.0,
   "USER_DESCRIPTION" => ""
);

// add Guest ID
if (CModule::IncludeModule("statistic"))
   $arFields["STAT_GID"] = CStatistic::GetEventParam();

$ORDER_ID = CSaleOrder::Add($arFields);
$ORDER_ID = IntVal($ORDER_ID);
?>

//добавляем в заказ аффилиата, если он есть
$arFields['AFFILIATE_ID'] = $APPLICATION->get_cookie("SALE_AFFILIATE");
$ORDER_ID = CSaleOrder::Add($arFields);


CancelOrder

Интернет-магазин>Классы>CSaleOrder>CancelOrder (доступен с 3.3.0, устарел с 15.0.0)

CSaleOrder::CancelOrder

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Order [image].

int
CSaleOrder::CancelOrder(
  int ID,
  string val,
  string description = ""
);

Метод меняет значение флага "заказ отменён" (поле CANCELED) на значение параметра Val для заказа с кодом ID. Кроме флага отмены заказа, устанавливаются также поля даты изменения значения флага (DATE_CANCELED) и кода пользователя, изменившего значение флага (EMP_CANCELED_ID). Поле с описанием причины отмены заказа (REASON_CANCELED) заполняется значением параметра Descr.

Если заказ был оплачен, то при отмене снимается флаг оплаты с возвращением денег на счет покупателя. Если заказ был частично оплачен, то при отмене внесённая сумма возвращается на внутренний счет покупателя.

Перед отменой заказа вызываются обработчики события OnSaleBeforeCancelOrder модуля магазина, в которых можно отменить отмену заказа, вернув значение false. После отмены вызываются обработчики события OnSaleCancelOrder модуля магазина.

В случае отмены заказа генерируется почтовое событие типа SALE_ORDER_CANCEL. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код заказа.
val | Новое значение флага отмены заказа (Y/N).
description | Описание причины отмены заказа.

Возвращаемые значения

Возвращается код заказа или false в случае ошибки.

Пример использования

<?
CSaleOrder::CancelOrder(25, "Y", "Потому что передумал");
?>


CommentsOrder

Интернет-магазин>Классы>CSaleOrder>CommentsOrder (доступен с 3.3.0, устарел с 15.0.0)

CSaleOrder::CommentsOrder

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Order [image].

int
CSaleOrder::CommentsOrder(
  int ID,
  string Val
);

Метод устанавливает новое значение Val комментария (поле COMMENTS) к заказу с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код заказа.
Val | Новое значение комментария.

Возвращаемые значения

Возвращается код заказа или false в случае ошибки.

Пример использования

<?
if (!CSaleOrder::CommentsOrder(12, "Не отгружать до оплаты!"))
   echo "Ошибка изменения комментария к заказу";
?>


Delete

Интернет-магазин>Классы>CSaleOrder>Delete (доступен с 3.3.0, устарел с 15.0.0)

CSaleOrder::Delete

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Order [image].

bool
CSaleOrder::Delete(
  int ID
);

Метод удаляет заказ с кодом ID. При этом заказ отменяется, если не был отменён, снимается флаг оплаты с возвращением денег на счет покупателя, если он был оплачен, и снимается флаг разрешения доставки, если он был установлен. Нестатический метод.

Перед удалением заказа вызываются обработчики события OnBeforeOrderDelete модуля магазина, в которых можно отменить удаление вернув значение false. Сразу после удаления вызываются обработчики события OnOrderDelete модуля магазина.

Примечание. Метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.

Параметры вызова

Параметр | Описание
ID | Код заказа.

Возвращаемые значения

Возвращается true при успешном удалении и false - в противном случае.

Пример использования

<?
CSaleOrder::Delete(23);
?>


DeliverOrder

Интернет-магазин>Классы>CSaleOrder>DeliverOrder (доступен с 3.3.0, устарел с 15.0.0)

CSaleOrder::DeliverOrder

Описание и параметры

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Order [image].

int
CSaleOrder::DeliverOrder(
 int ID,
 string val[,
 int recurringID = 0[,
 array arAdditionalFields = array()]]
);

Метод меняет значение флага "доставка разрешена" (поле ALLOW_DELIVERY) на значение параметра val для заказа с кодом ID. Нестатический метод.

Кроме флага разрешения доставки, устанавливаются также поля даты изменения значения флага (DATE_ALLOW_DELIVERY) и кода пользователя, изменившего значение флага (EMP_ALLOW_DELIVERY_ID).

При изменении флага "Доставка разрешена" для каждого элемента заказа (товара) вызывается функция обратного вызова из поля PAY_CALLBACK_FUNC корзины (если она установлена).

Перед изменением флага вызываются обработчики события OnSaleBeforeDeliveryOrder модуля магазина, в которых можно отменить изменение флага вернув значение false. После изменения флага вызываются обработчики события OnSaleDeliveryOrder модуля магазина.

В случае разрешения доставки генерируется почтовое событие типа SALE_ORDER_DELIVERY.

Параметры вызова

Параметр | Описание | С версии
ID | Код заказа. |
val | Новое значение флага разрешения доставки (Y/N). |
recurringID | Код продления подписки (если он есть). | 4.0.7
arAdditionalFields | Массив дополнительно обновляемых параметров (обычно это номер и дата платежного поручения). | 8.0.0

Возвращаемые значения

Возвращается код заказа или false в случае ошибки.

Примеры использования

<?
if (!CSaleOrder::DeliverOrder(23, "Y"))
   echo "Ошибка изменения заказа 23";
?>


DoSaveOrder

Интернет-магазин>Классы>CSaleOrder>DoSaveOrder (доступен с 11.5.0, устарел с 15.0.0)

CSaleOrder::DoSaveOrder

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Order [image].

int
CSaleOrder::DoSaveOrder(
   array &arOrder,
   array arAdditionalFields,
   int orderId,
   array &arErrors,
   array arCoupons,
   int arStoreBarcodeOrderFormData,
   bool bSaveBarcodes
);

Метод выполняет сохранение данных заказа: данных по уменьшению/увеличению количества, штрих-кодов, свойств заказа и данных по налогам. Метод статический.

Параметры вызова

Параметр | Описание | С версии
arOrder | Массив данных по заказу (все параметры, атрибуты, свойства, корзина). Является ссылкой на исходные параметры.
arAdditionalFields | Массив с дополнительными параметрами заказа. Это данные, которых либо нет в arOrder, либо их требуется заменить для изменения логики работы метода.
orderId Идентификатор заказа (если заказ уже был создан ранее). Если не задан, то метод выставляет:
"PAYED" = "N";
"CANCELED" = "N";
"STATUS_ID" = "N";
arErrors | Массив с текстами ошибок (общий массив на весь цикл заказа). Является ссылкой на исходные параметры.
arCoupons | Массив скидочных купонов.
arStoreBarcodeOrderFormData | Массив штрих-кодов. | 12.5.0
bSaveBarcodes | Флаг (true/false) добавления новых штрих-кодов. | 12.5.0

Возвращаемое значение

Возвращается идентификатор заказа или null в случае ошибки.


GetByID

Интернет-магазин>Классы>CSaleOrder>GetByID (доступен с 3.3.0, устарел с 15.0.0)

CSaleOrder::GetByID

Описание и параметры

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Order [image].

array
CSaleOrder::GetByID(
  int ID
);

Метод возвращает параметры заказа с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код заказа.

Возвращаемые значения

Возвращается ассоциативный массив с ключами:

Ключ | Описание
ID | Код заказа.
LID | Код сайта, на котором сделан заказ.
PERSON_TYPE_ID | Тип плательщика, к которому принадлежит посетитель, сделавший заказ (заказчик)
PAYED | Флаг (Y/N) оплачен ли заказ.
DATE_PAYED | Дата оплаты заказа.
EMP_PAYED_ID | Код пользователя (сотрудника магазина), который установил флаг оплаченности.
CANCELED | Флаг (Y/N) отменён ли заказ.
DATE_CANCELED | Дата отмены заказа.
EMP_CANCELED_ID | Код пользователя, который установил флаг отмены заказа.
RESPONSIBLE_ID | ID ответственного лица.
REASON_CANCELED | Текстовое описание причины отмены заказа.
STATUS_ID | Код статуса заказа.
DATE_STATUS | Дата изменения статуса заказа.
EMP_STATUS_ID | Код пользователя (сотрудника магазина), который установил текущий статус заказа.
PRICE_DELIVERY | Стоимость доставки заказа.
ALLOW_DELIVERY | Флаг (Y/N) разрешена ли доставка (отгрузка) заказа.
DATE_ALLOW_DELIVERY | Дата, когда была разрешена доставка заказа.
EMP_ALLOW_DELIVERY_ID | Код пользователя (сотрудника магазина), который разрешил доставку заказа.
PRICE | Общая стоимость заказа.
CURRENCY | Валюта стоимости заказа.
DISCOUNT_VALUE | Общая величина скидки.
USER_ID | Код пользователя заказчика.
PAY_SYSTEM_ID | Платежная система, которой (будет) оплачен заказа.
DELIVERY_ID | Способ (служба) доставки заказа.
DATE_INSERT | Дата добавления заказа.
DATE_UPDATE | Дата последнего изменения заказа.
USER_DESCRIPTION | Описание заказа заказчиком.
ADDITIONAL_INFO | Дополнительная информация по заказу.
PS_STATUS | Флаг (Y/N) статуса платежной системы - успешно ли оплачен заказ (для платежных систем, которые позволяют автоматически получать данные по проведенным через них заказам)
PS_STATUS_CODE | Код статуса платежной системы (значение зависит от системы)
PS_STATUS_DESCRIPTION | Описание результата работы платежной системы.
PS_STATUS_MESSAGE | Сообщение от платежной системы.
PS_SUM | Сумма, которая была реально оплачена через платежную систему.
PS_CURRENCY | Валюта суммы.
PS_RESPONSE_DATE | Дата получения статуса платежной системы.
COMMENTS | Произвольные комментарии.
TAX_VALUE | Общая сумма налогов.
STAT_GID | Параметр события в статистике.
SUM_PAID | Сумма, которая уже была оплачена покупателем по данному счету (например, с внутреннего счета).
PAY_VOUCHER_NUM | Номер платежного поручения.
PAY_VOUCHER_DATE | Дата платежного поручения.

Пример использования

<?
if (!($arOrder = CSaleOrder::GetByID($ORDER_ID)))
{
   echo "Заказ с кодом ".$ORDER_ID." не найден";
}
else
{
   echo "<pre>";
   print_r($arOrder);
   echo "</pre>";
}
?>


GetList

Интернет-магазин>Классы>CSaleOrder>GetList (доступен с 3.3.0, устарел с 15.0.0)

CSaleOrder::GetList

Описание и параметры

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Order [image].

CDBResult
CSaleOrder::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array(),
 array $arOptions = array()
);

Метод возвращает результат выборки записей из заказов в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание С версии
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле заказа, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).
arFilter Массив, в соответствии с которым фильтруются записи заказов. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • @ - модификатор может использоваться при передаче набора значений (массива);
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле заказов.

Для фильтрации заказов по свойствам возможны следующие варианты:
  • PROPERTY_ID - идентификатор значения свойства заказа по идентификатору свойства заказа;
  • PROPERTY_ORDER_PROPS_ID - идентификатор свойства заказа по идентификатору свойства заказа;
  • PROPERTY_NAME - название свойства по идентификатору свойства заказа;
  • PROPERTY_VALUE - значение свойства заказа по идентификатору свойства заказа;
  • PROPERTY_CODE - код свойства заказа по идентификатору свойства заказа;
  • PROPERTY_VAL_BY_CODE - значение свойства заказа по коду свойства.

Для фильтрации по свойствам типа "чекбокс" в значение фильтра надо ставить Y.

Пример фильтра:
array("CANCELED" => "Y")
Этот фильтр означает "выбрать все записи, в которых значение в поле CANCELED (отменён) равно Y".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.

Чтобы задать временной интервал при получении заказов, можно использовать в фильтре ключи DATE_UPDATE_FROM, DATE_UPDATE_TO для фильтрации по дате изменения и DATE_FROM, DATE_TO для фильтрации по дате добавления заказа.
arGroupBy Массив полей, по которым группируются записи заказов. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле заказов. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет. 		4.0.6
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет. 		4.0.6
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса. 		4.0.6
arOptions Массив дополнительных параметров.

Использовался только для Oracle. Передавался параметр NULLS_LAST, который позволял сортироваться выборку так, чтобы значения полей NULL были последние. Сейчас не используется. 		4.0.6

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы с ключами:

Ключ | Описание
ID | Номер заказа.
LID | Код сайта.
ACCOUNT_NUMBER | Код заказа.
TRACKING_NUMBER | Трек-номер заказа.
PAY_SYSTEM_ID | Идентификатор платежной системы.
DELIVERY_ID | Идентификатор службы доставки.
DATE_INSERT | Дата добавления заказа в формате текущего сайта.
DATE_UPDATE | Дата последнего изменения заказа в формате текущего сайта.
PERSON_TYPE_ID | Идентификатор плательщика.
USER_ID | Идентификатор пользователя, за кем закреплен заказ.
PAYED | Фраг оплаченности заказа (Y/N).
DATE_PAYED | Дата оплаты заказа.
DATE_INSERT | Дата добавления заказа в формате текущего сайта.
DATE_UPDATE | Дата последнего изменения заказа в формате текущего сайта.
EMP_PAYED_ID | Идентификатор пользователя оплатившего заказ.
DEDUCTED | Флаг отгруженности заказа (Y/N).
DATE_DEDUCTED | Дата отгрузки заказа.
EMP_DEDUCTED_ID | Идентификатор пользователя, отгрузившего заказ.
REASON_UNDO_DEDUCTED | Комментарий причины отмены отгрузки заказа.
STATUS_ID | Код статуса заказа.
DATE_STATUS | Дата изменения статуса заказа.
EMP_STATUS_ID | ID пользователя, изменивший статус заказа.
MARKED | Флаг проблемности заказа (Y/N).
DATE_MARKED | Дата выставления флага проблемности заказа.
EMP_MARKED_ID | Идентификатор пользователя, установивший флаг проблемности заказа.
REASON_MARKED | Комментарий причины проблемности заказа.
PRICE_DELIVERY | Стоимость доставки.
ALLOW_DELIVERY | Флаг разрешена ли отгрузка заказа (Y/N).
DATE_ALLOW_DELIVERY | Дата выставления флага разрешения отгрузки заказа.
EMP_ALLOW_DELIVERY_ID | Идентификатор пользователя, установивший флаг разрешение отгрузки заказа.
RESERVED | Флаг зарезервированно ли всё кол-во товара в заказе (Y/N).
PRICE | Стоимость заказа.
CURRENCY | Валюта заказа.
DISCOUNT_VALUE | Значение скидки заказа.
TAX_VALUE | Размер налога на заказ.
SUM_PAID | Сумма оплаченного заказа.
USER_DESCRIPTION | Комментарий пользователя оформившего заказ.
PAY_VOUCHER_NUM | Номер документа оплаты.
PAY_VOUCHER_DATE | Дата оплаты документа.
ADDITIONAL_INFO | Дополнительная информация заказа.
COMMENTS | Комментарии к заказу.
COMPANY_ID | Идентификатор компании, к которой привязан заказ.
CREATED_BY | Идентификатор пользователя, кто создал заказ.
RESPONSIBLE_ID | Идентификатор ответственного пользователя.
STAT_GID | Код статистики.
DATE_PAY_BEFORE | Дата предоплаты.
DATE_BILL | Дата выставления счета.
LOCKED_BY | Флаг, кто заблокировал заказ.
DATE_LOCK | Дата, когда был заблокирован заказ.
AFFILIATE_ID | Идентификатор аффилиата.
DELIVERY_DOC_NUM | Номер документа отгрузки.
DELIVERY_DOC_DATE | Дата документа отгрузки.
UPDATED_1C | Флаг обновления данных в 1C.
ORDER_TOPIC | Идентификатор темы на форуме, к которому привязан заказ.
XML_ID | Внешний код заказа.
ID_1C | Код в 1С.
VERSION_1C | Версия обмена.
EXTERNAL_ORDER | Флаг, определяющий является ли заказ внешним.
STORE_ID | Код склада.
CANCELED | Флаг отмены заказа.
EMP_CANCELED_ID | Идентификатор пользователя, кто отменил заказ.
DATE_CANCELED | Дата отмены заказа.
REASON_CANCELED | Причина отмены заказа.
DATE_INSERT_FORMAT | Дата добавления заказа в формате региональных настроек.
DATE_UPDATE_SHORT | Дата обновления заказа в формате региональных настроек.
DATE_STATUS_SHORT | Дата смены статуса заказа в формате региональных настроек.
DATE_CANCELED_SHORT | Дата отмены заказа в формате региональных настроек.
BY_RECOMMENDATION | Флаг оформлен ли заказ по рекомендации.
LOCK_STATUS | Код блокировка(green/yelow/green).
LOCK_USER_NAME | Имя пользователя, блокирующего заказ.
RESPONSIBLE_LOGIN | Логин ответственного за заказ пользователя.
RESPONSIBLE_NAME | Имя ответственного за заказ пользователя.
RESPONSIBLE_LAST_NAME | Фамилия ответственного за заказ пользователя.
RESPONSIBLE_SECOND_NAME | Отчество ответственного за заказ пользователя.
RESPONSIBLE_EMAIL | Email ответственного за заказ пользователя.
RESPONSIBLE_WORK_POSITION | Должность ответственного за заказ пользователя.
RESPONSIBLE_PERSONAL_PHOTO | Фото ответственного за заказ пользователя.
USER_LOGIN | Логин пользователя, за кем закреплен заказ.
USER_NAME | Имя пользователя, за кем закреплен заказ.
USER_LAST_NAME | Фамилия пользователя, за кем закреплен заказ.
USER_EMAIL | Email пользователя, за кем закреплен заказ.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Примеры использования

<?
// Выведем даты всех заказов текущего пользователя за текущий месяц, отсортированные по дате заказа
$arFilter = Array(
   "USER_ID" => $USER->GetID(),
   ">=DATE_INSERT" => date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")), mktime(0, 0, 0, date("n"), 1, date("Y")))
   );

$db_sales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter);
while ($ar_sales = $db_sales->Fetch())
{
   echo $ar_sales["DATE_INSERT_FORMAT"]."<br>";
}
?>
//список всех заказов, при оформлении которых был использован тот или иной купон получения скидки
<?
if (CModule::IncludeModule("sale")):

   $arFilter = Array(
      "BASKET_DISCOUNT_COUPON" => "КОД_КУПОНА_ЗДЕСЬ",
      );
   $rsSales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter);
   while ($arSales = $rsSales->Fetch())
   {
      echo "<pre>";
      print_r($arSales);
      echo "</pre>";
   }
endif;
?>

//можно использовать и массив купонов для поиска:
CSaleOrder::GetList(array(), array('BASKET_DISCOUNT_COUPON' => array('TEST1', 'TEST2')));

//пример использования arGroupBy
$arFilter = array('PAYED' => 'Y', 'PROPERTY_VAL_BY_CODE_F_COURIER' => $f_VALUE);
$rsOrders = CSaleOrder::GetList(array('ID' => 'DESC'), $arFilter, array('PAYED', 'SUM' => 'PRICE'));

//поле PAYED в arGroupBy передано, чтобы вернулся CNT (количество таких заказов). Если не передавать, вернется просто сумма.

//получить заказ с определенным товаром
$rsOrder = CSaleOrder::GetList(array('ID' => 'DESC'), array('BASKET_PRODUCT_ID' => 174474));

//фильтрация по нескольким вариантам статуса:
$arFilter = Array("USER_ID" => $USER->GetID(), "@STATUS_ID" => array("R", "I", "P", "O"));


PayOrder

Интернет-магазин>Классы>CSaleOrder>PayOrder (доступен с 3.3.0, устарел с 15.0.0)

CSaleOrder::PayOrder

Описание и параметры

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Order [image].

int
CSaleOrder::PayOrder(
 int ID,
 string val[,
 bool bWithdraw = True[,
 bool bPay = True[,
 int recurringID = 0[,
 array arAdditionalFields = array()]]]]
);

Метод меняет значение флага "заказ оплачен" (поле PAYED) на значение параметра Val для заказа с кодом ID. Кроме флага оплаты заказа, устанавливаются также поля даты изменения значения флага (DATE_PAYED) и кода пользователя, изменившего значение флага (EMP_PAYED_ID). Нестатический метод.

Перед изменением флага вызываются обработчики события OnSaleBeforePayOrder модуля магазина, в которых можно отменить изменение флага вернув значение false. После изменения флага вызываются обработчики события OnSalePayOrder модуля магазина.

В случае установки флага генерируется почтовое событие типа SALE_ORDER_PAID.

Параметры вызова

Параметр | Описание | С версии
ID | Код заказа. |
val | Новое значение флага оплаты заказа (Y/N). |
bWithdraw | Значение true отражает изменение флага на внутреннем счете пользователя. Значение false изменяет только флаг, не затрагивая счет. | 4.0.6
bPay | Если параметр bWithdraw установлен в true, то установка параметра bPay в true приведет к тому, что необходимая сумма денег будет внесена на счет покупателя перед оплатой, а установка в false приведет к тому, что оплата будет происходить целиком с внутреннего счета. Если параметр bWithdraw установлен в false, то операции со счетом не производятся и значение параметра bPay не играет роли. | 4.0.6
recurringID | Должен быть равен 0. | 4.0.6
arAdditionalFields | Массив дополнительно обновляемых параметров (обычно это номер и дата платежного поручения). | 4.0.6

Возвращаемые значения

Возвращается код заказа или false в случае ошибки. Повторная оплата заказа невозможна.

Пример использования

<?
if (!CSaleOrder::PayOrder($ID, "Y", True, True, 0, array("PAY_VOUCHER_NUM" => "19210")))
{
   echo "Ошибка обновления заказа";
}
?>


StatusOrder

Интернет-магазин>Классы>CSaleOrder>StatusOrder (доступен с 3.3.0, устарел с 15.0.0)

CSaleOrder::StatusOrder

Описание и параметры

Метод устарел.

int
CSaleOrder::StatusOrder(
  int ID,
  string Val
);

Метод меняет значение статуса заказа (поле STATUS_ID) на значение параметра Val для заказа с кодом ID. Кроме статуса заказа устанавливаются так же поля даты изменения статуса заказа (DATE_STATUS) и кода пользователя, изменившего статус заказа (EMP_STATUS_ID). Нестатический метод.

Перед изменением статуса вызываются обработчики события OnSaleBeforeStatusOrder модуля магазина, в которых можно отменить изменение статуса вернув значение false. После изменения флага вызываются обработчики события OnSaleStatusOrder модуля магазина.

Генерируется почтовое событие типа SALE_STATUS_CHANGED_<код статуса>, если есть подходящий почтовый шаблон. Иначе генерируется почтовое событие типа SALE_STATUS_CHANGED.

Параметры вызова

Параметр | Описание
ID | Код заказа.
Val | Код статуса заказа.

Возвращаемые значения

Возвращается код заказа или false в случае ошибки.

Пример использования

<?
if (!CSaleOrder::StatusOrder($ID, "F"))
   echo "Ошибка установки нового статуса заказа";
?>


Update

Интернет-магазин>Классы>CSaleOrder>Update (доступен с 3.3.0, устарел с 15.0.0)

CSaleOrder::Update

Описание и параметры

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Order [image].

int
CSaleOrder::Update(
  int ID,
  array arFields
  bDateUpdate
);

Метод изменяет параметры заказа с кодом ID на новые параметры из массива arFields. Перед добавлением заказа вызываются обработчики события OnBeforeOrderUpdate модуля магазина, а после добавления - обработчики события OnOrderUpdate модуля магазина. Статический метод.

Параметры вызова

Параметр | Описание | С версии
ID | Код заказа.
arFields Ассоциативный массив параметров заказа, ключами в котором являются названия параметров заказа, а значениями - новые значения.
Допустимые ключи:
  • LID - код сайта, на котором сделан заказ;
  • PERSON_TYPE_ID - тип плательщика, к которому принадлежит посетитель, сделавший заказ (заказчик);
  • PAYED - флаг (Y/N) оплачен ли заказ;
  • DATE_PAYED - дата оплаты заказа;
  • EMP_PAYED_ID - код пользователя (сотрудника магазина), который установил флаг оплаты;
  • CANCELED - флаг (Y/N) отменён ли заказ;
  • DATE_CANCELED - дата отмены заказа;
  • EMP_CANCELED_ID - код пользователя, который установил флаг отмены заказа;
  • REASON_CANCELED - текстовое описание причины отмены заказа;
  • STATUS_ID - код статуса заказа;
  • EMP_STATUS_ID - код пользователя (сотрудника магазина), который установил текущий статус заказа;
  • PRICE_DELIVERY - стоимость доставки заказа;
  • ALLOW_DELIVERY - флаг (Y/N) разрешена ли доставка (отгрузка) заказа;
  • DATE_ALLOW_DELIVERY - дата, когда была разрешена доставка заказа;
  • EMP_ALLOW_DELIVERY_ID - код пользователя (сотрудника магазина), который разрешил доставку заказа;
  • PRICE - общая стоимость заказа;
  • CURRENCY - валюта стоимости заказа;
  • DISCOUNT_VALUE - общая величина скидки;

    Параметр не поддерживается с версии 12.5.0. Вместо него необходимо использовать правила корзины [image].

  • USER_ID - код пользователя заказчика;
  • PAY_SYSTEM_ID - платежная система, которой (будет) оплачен заказа;
  • DELIVERY_ID - способ (служба) доставки заказа;
  • USER_DESCRIPTION - описание заказа заказчиком;
  • ADDITIONAL_INFO - дополнительная информация по заказу;
  • COMMENTS - произвольные комментарии;
  • TAX_VALUE - общая сумма налогов;
  • STAT_GID - параметр события в статистике;
  • PS_STATUS - флаг (Y/N) статуса платежной системы - успешно ли оплачен заказ (для платежных систем, которые позволяют автоматически получать данные по проведенным через них заказам);
  • PS_STATUS_CODE - код статуса платежной системы (значение зависит от системы);
  • PS_STATUS_DESCRIPTION - описание результата работы платежной системы;
  • PS_STATUS_MESSAGE - сообщение от платежной системы;
  • PS_SUM - сумма, которая была реально оплачена через платежную систему;
  • PS_CURRENCY - валюта суммы;
  • PS_RESPONSE_DATE - дата получения статуса платежной системы;
  • SUM_PAID - сумма, которая уже была оплачена покупателем по данному счету (например, с внутреннего счета);
  • PAY_VOUCHER_NUM - номер платежного поручения;
  • PAY_VOUCHER_DATE - дата платежного поручения.
  • DATE_INSERT - дата создания заказа.
DateUpdate | Обновление даты изменения заказа. Значения true/false (по-умолчанию true). | 8.0.3

Возвращаемые значения

Возвращается код добавленного заказа или false в случае ошибки.

Пример использования

<?
$arOrder = CSaleOrder::GetByID($ID);
if ($arOrder)
{
   $arFields = array(
      "PAYED" => "Y",
      "DATE_PAYED" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))),
      "USER_ID" => $arOrder["USER_ID"],
      "EMP_PAYED_ID" => $USER->GetID()
   );
   CSaleOrder::Update($ID, $arFields);
}
?>


Класс CSaleOrderProps

Методы класса

Метод | Описание | С версии
GetList | Метод возвращает результат выборки записей из заказов в соответствии со своими параметрами. | 3.3.0
GetByID | Метод возвращает параметры свойства с кодом ID заказа. | 3.3.0
Update | Метод изменяет параметры свойства с кодом ID заказа на значения из массива arFields. | 3.3.0
Delete | Метод удаляет свойство с кодом ID заказа. Существующие в базе значения этого свойства отвязываются от удаляемого свойства. Удаляются связанные значения из профиля покупателя. | 3.3.0
Add | Метод добавляет новое свойство заказа с параметрами из массива arFields. | 3.3.5


Add

Интернет-магазин>Классы>CSaleOrderProps>Add (доступен с 3.3.5)

CSaleOrderProps::Add

Описание и параметры

int
CSaleOrderProps::Add(
  array arFields
);

Метод добавляет новое свойство заказа с параметрами из массива arFields. Нестатический метод. В случае ошибки возвращает false.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив, в котором ключами являются названия параметров свойства, а значениями - значения этих параметров.

Допустимые ключи:
  • PERSON_TYPE_ID - тип плательщика;
  • NAME - название свойства (тип плательщика зависит от сайта, а сайт - от языка; название должно быть на соответствующем языке);
  • TYPE - тип свойства. Допустимые значения:
    • CHECKBOX - флаг;
    • TEXT - строка текста;
    • SELECT - выпадающий список значений;
    • MULTISELECT - список со множественным выбором;
    • TEXTAREA - многострочный текст;
    • LOCATION - местоположение;
    • RADIO - переключатель.
  • REQUIED - флаг (Y/N) обязательное ли поле;
  • DEFAULT_VALUE - значение по умолчанию;
  • SORT - индекс сортировки;
  • USER_PROPS - флаг (Y/N) входит ли это свойство в профиль покупателя;
  • IS_LOCATION - флаг (Y/N) использовать ли значение свойства как местоположение покупателя для расчёта стоимости доставки (только для свойств типа LOCATION);
  • PROPS_GROUP_ID - код группы свойств;
  • SIZE1 - ширина поля (размер по горизонтали);
  • SIZE2 - высота поля (размер по вертикали);
  • DESCRIPTION - описание свойства;
  • IS_EMAIL - флаг (Y/N) использовать ли значение свойства как E-Mail покупателя;
  • IS_PROFILE_NAME - флаг (Y/N) использовать ли значение свойства как название профиля покупателя;
  • IS_PAYER - флаг (Y/N) использовать ли значение свойства как имя плательщика;
  • IS_LOCATION4TAX - флаг (Y/N) использовать ли значение свойства как местоположение покупателя для расчёта налогов (только для свойств типа LOCATION);
  • CODE - символьный код свойства.
  • IS_FILTERED - свойство доступно в фильтре по заказам. С версии 10.0.
  • IS_ZIP - использовать как почтовый индекс. С версии 10.0.
  • UTIL - позволяет использовать свойство только в административной части. С версии 11.0.

Возвращаемые значения

Возвращается код добавленного свойства заказа.

Пример использования

<?
$arFields = array(
   "PERSON_TYPE_ID" => 2,
   "NAME" => "Комплектация",
   "TYPE" => "RADIO",
   "REQUIED" => "Y",
   "DEFAULT_VALUE" => "F",
   "SORT" => 100,
   "CODE" => "COMPLECT",
   "USER_PROPS" => "N",
   "IS_LOCATION" => "N",
   "IS_LOCATION4TAX" => "N",
   "PROPS_GROUP_ID" => 1,
   "SIZE1" => 0,
   "SIZE2" => 0,
   "DESCRIPTION" => "",
   "IS_EMAIL" => "N",
   "IS_PROFILE_NAME" => "N",
   "IS_PAYER" => "N"
);

// Если установлен код свойства, то изменяем свойство с этим кодом,
// иначе добавляем новой свойство
if ($ID>0)
{
   if (!CSaleOrderProps::Update($ID, $arFields))
   {
      echo "Ошибка изменения параметров свойства";
   }
   else
   {
      // Обновим символьный код у значений свойства
      // (хранение избыточных данных для оптимизации работы)
      $db_order_props_tmp =
          CSaleOrderPropsValue::GetList(($b="NAME"),
                                        ($o="ASC"),
                                        Array("ORDER_PROPS_ID"=>$ID));
      while ($ar_order_props_tmp = $db_order_props_tmp->Fetch())
      {
         CSaleOrderPropsValue::Update($ar_order_props_tmp["ID"],
                                      array("CODE" => "COMPLECT"));
      }
   }
}
else
{
   $ID = CSaleOrderProps::Add($arFields);
   if ($ID<=0)
      echo "Ошибка добавления свойства";
}
?>


Delete

Интернет-магазин>Классы>CSaleOrderProps>Delete (доступен с 3.3.0)

CSaleOrderProps::Delete

bool
CSaleOrderProps::Delete(
  int ID
);

Метод удаляет свойство с кодом ID заказа. Существующие в базе значения этого свойства отвязываются от удаляемого свойства. Удаляются связанные значения из профиля покупателя. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код удаляемого свойства.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в случае ошибки.

Пример использования

<?
if (!CSaleOrderProps::Delete(12))
   echo "Ошибка удаления свойства";
?>


GetByID

Интернет-магазин>Классы>CSaleOrderProps>GetByID (доступен с 3.3.0)

CSaleOrderProps::GetByID

Описание и параметры

array
CSaleOrderProps::GetByID(
  int ID
);

Метод возвращает параметры свойства с кодом ID заказа. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код свойства заказа.

Возвращаемые значения

Возвращается ассоциативный массив параметров свойства с ключами:

Ключ | Описание
ID | Код свойства заказа.
PERSON_TYPE_ID | Тип плательщика.
NAME | Название свойства.
TYPE Тип свойства. Допустимые значения:
  • CHECKBOX - флаг,
  • TEXT - строка текста,
  • SELECT - выпадающий список значений,
  • MULTISELECT - список со множественным выбором,
  • TEXTAREA - многострочный текст,
  • LOCATION - местоположение,
  • RADIO - переключатель.
REQUIED | Флаг (Y/N) обязательное ли поле.
DEFAULT_VALUE | Значение по умолчанию.
SORT | Индекс сортировки.
USER_PROPS | Флаг (Y/N) входит ли это свойство в профиль покупателя.
IS_LOCATION | Флаг (Y/N) использовать ли значение свойства как местоположение покупателя для расчёта стоимости доставки (только для свойств типа LOCATION)
PROPS_GROUP_ID | Код группы свойств.
SIZE1 | Ширина поля (размер по горизонтали).
SIZE2 | Высота поля (размер по вертикали).
DESCRIPTION | Описание свойства.
IS_EMAIL | Флаг (Y/N) использовать ли значение свойства как E-Mail покупателя.
IS_PROFILE_NAME | Флаг (Y/N) использовать ли значение свойства как название профиля покупателя.
IS_PAYER | Флаг (Y/N) использовать ли значение свойства как имя плательщика.
IS_LOCATION4TAX | Флаг (Y/N) использовать ли значение свойства как местоположение покупателя для расчёта налогов (только для свойств типа LOCATION)
CODE | Символьный код свойства.

Пример использования

<?
if ($arOrderProps = CSaleOrderProps::GetByID($ID))
{
   echo "<pre>";
   print_r($arOrderProps);
   echo "</pre>";
}
?>


GetList

Интернет-магазин>Классы>CSaleOrderProps>GetList (доступен с 3.3.0)

CSaleOrderProps::GetList

Описание и параметры

CDBResult
CSaleOrderProps::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки из свойств заказов в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле местоположения, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи свойств заказа. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений. Можно передавать и фильтр. Для ключа CODE - корректно формирует фильтр только для массива, а не для перечисление через запятые.;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поля" может стоять любое поле заказов.

Пример фильтра:
array("REQUIED" => "Y")
Этот фильтр означает "выбрать все записи, в которых значение в поле REQUIED (обязательно для заполнения) равно Y".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи свойств заказа. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле свойств заказа. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • UTIL - флаг Y/N, служебное;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров свойств с ключами:

Ключ | Описание
ID | Код свойства заказа.
PERSON_TYPE_ID | Тип плательщика.
NAME | Название свойства.
TYPE Тип свойства. Допустимые значения:
  • CHECKBOX - флаг,
  • TEXT - строка текста,
  • SELECT - выпадающий список значений,
  • MULTISELECT - список со множественным выбором,
  • TEXTAREA - многострочный текст,
  • LOCATION - местоположение,
  • RADIO - переключатель.
REQUIED | Флаг (Y/N) обязательное ли поле.
DEFAULT_VALUE | Значение по умолчанию.
SORT | Индекс сортировки.
USER_PROPS | Флаг (Y/N) входит ли это свойство в профиль покупателя.
IS_LOCATION | Флаг (Y/N) использовать ли значение свойства как местоположение покупателя для расчёта стоимости доставки (только для свойств типа LOCATION)
PROPS_GROUP_ID | Код группы свойств.
SIZE1 | Ширина поля (размер по горизонтали).
SIZE2 | Высота поля (размер по вертикали).
DESCRIPTION | Описание свойства.
IS_EMAIL | Флаг (Y/N) использовать ли значение свойства как E-Mail покупателя.
IS_PROFILE_NAME | Флаг (Y/N) использовать ли значение свойства как название профиля покупателя.
IS_PAYER | Флаг (Y/N) использовать ли значение свойства как имя плательщика.
IS_LOCATION4TAX | Флаг (Y/N) использовать ли значение свойства как местоположение покупателя для расчёта налогов (только для свойств типа LOCATION)
CODE | Символьный код свойства.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Выведем форму для ввода свойств заказа для группы свойств с кодом 5, которые входят в профиль покупателя, для типа плательщика с кодом 2
$db_props = CSaleOrderProps::GetList(
        array("SORT" => "ASC"),
        array(
                "PERSON_TYPE_ID" => 2,
                "PROPS_GROUP_ID" => 5,
                "USER_PROPS" => "Y"
            ),
        false,
        false,
        array()
    );

if ($props = $db_props->Fetch())
{
   echo "Заполните параметры заказа:<br>";
   do
   {
      echo $props["NAME"];
      if ($props["REQUIED"]=="Y" ||
          $props["IS_EMAIL"]=="Y" ||
          $props["IS_PROFILE_NAME"]=="Y" ||
          $props["IS_LOCATION"]=="Y" ||
          $props["IS_LOCATION4TAX"]=="Y" ||
          $props["IS_PAYER"]=="Y")
      {
         echo "*";
      }
      echo ": ";

      if ($props["TYPE"]=="CHECKBOX")
      {
         echo '<input type="checkbox" class="inputcheckbox" name="ORDER_PROP_'.$props["ID"].'" value="Y"'.(($props["DEFAULT_VALUE"]=="Y")?" checked":"").'>';
      }
      elseif ($props["TYPE"]=="TEXT")
      {
         echo '<input type="text" class="inputtext" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:30).'" maxlength="250" value="'.htmlspecialchars($props["DEFAULT_VALUE"]).'" name="ORDER_PROP_'.$props["ID"].'">';
      }
      elseif ($props["TYPE"]=="SELECT")
      {
         echo '<select name="ORDER_PROP_'.$props["ID"].'" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:1).'">';
         $db_vars = CSaleOrderPropsVariant::GetList(($by="SORT"), ($order="ASC"), Array("ORDER_PROPS_ID"=>$props["ID"]));
         while ($vars = $db_vars->Fetch())
         {
            echo '<option value="'.$vars["VALUE"].'"'.(($vars["VALUE"]==$props["DEFAULT_VALUE"])?" selected":"").'>'.htmlspecialchars($vars["NAME"]).'</option>';
         }
         echo '</select>';
      }
      elseif ($props["TYPE"]=="MULTISELECT")
      {
         echo '<select multiple name="ORDER_PROP_'.$props["ID"].'[]" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:5).'">';
         $arDefVal = Split(",", $props["DEFAULT_VALUE"]);
         for ($i = 0; $i<count($arDefVal); $i++)
            $arDefVal[$i] = Trim($arDefVal[$i]);

         $db_vars = CSaleOrderPropsVariant::GetList(($by="SORT"), ($order="ASC"), Array("ORDER_PROPS_ID"=>$props["ID"]));
         while ($vars = $db_vars->Fetch())
         {
            echo '<option value="'.$vars["VALUE"].'"'.(in_array($vars["VALUE"], $arDefVal)?" selected":"").'>'.htmlspecialchars($vars["NAME"]).'</option>';
         }
         echo '</select>';
      }
      elseif ($props["TYPE"]=="TEXTAREA")
      {
         echo '<textarea rows="'.((IntVal($props["SIZE2"])>0)?$props["SIZE2"]:4).'" cols="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:40).'" name="ORDER_PROP_'.$props["ID"].'">'.htmlspecialchars($props["DEFAULT_VALUE"]).'</textarea>';
      }
      elseif ($props["TYPE"]=="LOCATION")
      {
         echo '<select name="ORDER_PROP_'.$props["ID"].'" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:1).'">';
         $db_vars = CSaleLocation::GetList(Array("SORT"=>"ASC", "COUNTRY_NAME_LANG"=>"ASC", "CITY_NAME_LANG"=>"ASC"), array(), LANGUAGE_ID);
         while ($vars = $db_vars->Fetch())
         {
            echo '<option value="'.$vars["ID"].'"'.((IntVal($vars["ID"])==IntVal($props["DEFAULT_VALUE"]))?" selected":"").'>'.htmlspecialchars($vars["COUNTRY_NAME"]." - ".$vars["CITY_NAME"]).'</option>';
         }
         echo '</select>';
      }
      elseif ($props["TYPE"]=="RADIO")
      {
         $db_vars = CSaleOrderPropsVariant::GetList(($by="SORT"), ($order="ASC"), Array("ORDER_PROPS_ID"=>$props["ID"]));
         while ($vars = $db_vars->Fetch())
         {
            echo '<input type="radio" name="ORDER_PROP_'.$props["ID"].'" value="'.$vars["VALUE"].'"'.(($vars["VALUE"]==$props["DEFAULT_VALUE"])?" checked":"").'>'.htmlspecialchars($vars["NAME"]).'<br>';
         }
      }

      if (strlen($props["DESCRIPTION"])>0)
      {
         echo "<br><small>".$props["DESCRIPTION"]."</small>";
      }

      echo "<br>";
   }
   while ($props = $db_props->Fetch());
}
?>


Update

Интернет-магазин>Классы>CSaleOrderProps>Update (доступен с 3.3.0)

CSaleOrderProps::Update

Описание и параметры

int
CSaleOrderProps::Update(
  int ID,
  array arFields
);

Метод изменяет параметры свойства с кодом ID заказа на значения из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код свойства заказа.
arFields Ассоциативный массив новых значений параметров свойства заказа, в котором ключами являются названия параметров свойства, а значениями - значения этих параметров.
Допустимые ключи:
  • PERSON_TYPE_ID - тип плательщика;
  • NAME - название свойства (тип плательщика зависит от сайта, а сайт - от языка; название должно быть на соответствующем языке);
  • TYPE - тип свойства. Допустимые значения:
    • CHECKBOX - флаг;
    • TEXT - строка текста;
    • SELECT - выпадающий список значений;
    • MULTISELECT - список со множественным выбором;
    • TEXTAREA - многострочный текст;
    • LOCATION - местоположение;
    • RADIO - переключатель.
  • REQUIED - (Y/N) флаг обязательности;
  • DEFAULT_VALUE - значение по умолчанию;
  • SORT - индекс сортировки;
  • USER_PROPS - флаг (Y/N) входит ли это свойство в профиль покупателя;
  • IS_LOCATION - флаг (Y/N) использовать ли значение свойства как местоположение покупателя для расчёта стоимости доставки (только для свойств типа LOCATION);
  • PROPS_GROUP_ID - код группы свойств;
  • SIZE1 - ширина поля (размер по горизонтали);
  • SIZE2 - высота поля (размер по вертикали);
  • DESCRIPTION - описание свойства;
  • IS_EMAIL - флаг (Y/N) использовать ли значение свойства как E-Mail покупателя;
  • IS_PROFILE_NAME - флаг (Y/N) использовать ли значение свойства как название профиля покупателя;
  • IS_PAYER - флаг (Y/N) использовать ли значение свойства как имя плательщика;
  • IS_LOCATION4TAX - флаг (Y/N) использовать ли значение свойства как местоположение покупателя для расчёта налогов (только для свойств типа LOCATION);
  • CODE - символьный код свойства.

Возвращаемые значения

Возвращается числовой id свойства в случае успеха или bool false в случае ошибки, а ошибку следует добывать из $APPLICATION: $APPLICATION->GetException()->GetString()

Пример использования

<?
$arFields = array(
   "PERSON_TYPE_ID" => 2,
   "NAME" => "Комплектация",
   "TYPE" => "RADIO",
   "REQUIED" => "Y",
   "DEFAULT_VALUE" => "F",
   "SORT" => 100,
   "CODE" => "COMPLECT",
   "USER_PROPS" => "N",
   "IS_LOCATION" => "N",
   "IS_LOCATION4TAX" => "N",
   "PROPS_GROUP_ID" => 1,
   "SIZE1" => 0,
   "SIZE2" => 0,
   "DESCRIPTION" => "",
   "IS_EMAIL" => "N",
   "IS_PROFILE_NAME" => "N",
   "IS_PAYER" => "N"
);

// Если установлен код свойства, то изменяем свойство с этим кодом,
// иначе добавляем новой свойство
if ($ID>0)
{
   if (!CSaleOrderProps::Update($ID, $arFields))
   {
      echo "Ошибка изменения параметров свойства";
   }
   else
   {
      // Обновим символьный код у значений свойства
      // (хранение избыточных данных для оптимизации работы)
      $db_order_props_tmp =
          CSaleOrderPropsValue::GetList(($b="NAME"),
                                        ($o="ASC"),
                                        Array("ORDER_PROPS_ID"=>$ID));
      while ($ar_order_props_tmp = $db_order_props_tmp->Fetch())
      {
         CSaleOrderPropsValue::Update($ar_order_props_tmp["ID"],
                                      array("CODE" => "COMPLECT"));
      }
   }
}
else
{
   $ID = CSaleOrderProps::Add($arFields);
   if ($ID<=0)
      echo "Ошибка добавления свойства";
}
?>


Класс CSaleOrderPropsGroup

Методы класса

Метод | Описание | С версии
GetList | Метод возвращает результат выборки записей из заказов в соответствии со своими параметрами. | 3.3.0
GetByID | Метод возвращает параметры группы свойств заказа с кодом ID. | 3.3.0
Update | Метод обновляет параметры группы заказов с кодом ID на параметры из массива arFields. | 3.3.0
Delete | Метод удаляет группу свойств с кодом ID. | 3.3.0
Add | Метод добавляет новую группу свойств заказа. Группа используется только для группировки свойств. | 3.3.5


Add

Интернет-магазин>Классы>CSaleOrderPropsGroup>Add (доступен с 3.3.5)

CSaleOrderPropsGroup::Add

int
CSaleOrderPropsGroup::Add(
  array arFields
);

Метод добавляет новую группу свойств заказа. Группа используется только для группировки свойств. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров группы свойств, в котором ключами являются названия параметров, а значениями - их значения.
Допустимые ключи:
  • PERSON_TYPE_ID - тип плательщика;
  • NAME - название группы (группа привязывается к типу плательщика, тип плательщика привязывается к сайту, сайт привязывается к языку, название задается на этом языке);
  • SORT - индекс сортировки.

Возвращаемые значения

Возвращается код добавленной группы или false в случае ошибки.


Delete

Интернет-магазин>Классы>CSaleOrderPropsGroup>Delete (доступен с 3.3.0)

CSaleOrderPropsGroup::Delete

bool
CSaleOrderPropsGroup::Delete(
  int ID
);

Метод удаляет группу свойств с кодом ID. Так же удаляются свойства этой группы и другие сопутствующие данные. Значения свойств этой группы, привязанные к заказам, отвязываются от удаляемых свойств.
Если необходимо удалить только группу, то сначала от нее необходимо отвязать все свойства. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код группы свойств.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


GetByID

Интернет-магазин>Классы>CSaleOrderPropsGroup>GetByID (доступен с 3.3.0)

CSaleOrderPropsGroup::GetByID

Описание и параметры

array
CSaleOrderPropsGroup::GetByID(
  int ID
);

Метод возвращает параметры группы свойств заказа с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код группы заказов.

Возвращаемые значения

Возвращается ассоциативный массив параметров группы свойств с ключами:

Ключ | Описание
ID | Код группы заказов.
PERSON_TYPE_ID | Тип плательщика.
NAME | Название группы.
SORT | Индекс сортировки.

Пример использования

<?
if ($arPropsGroup = CSaleOrderPropsGroup::GetByID(3))
   echo $arPropsGroup["NAME"];
?>


GetList

Интернет-магазин>Классы>CSaleOrderPropsGroup>GetList (доступен с 3.3.0)

CSaleOrderPropsGroup::GetList

Описание и параметры

CDBResult
CSaleOrderPropsGroup::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из заказов в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле местоположения, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи групп свойств. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле заказов.

Пример фильтра:
array("!PERSON_TYPE_ID" => 1)
Этот фильтр означает "выбрать все записи, в которых значение в поле PERSON_TYPE_ID (код типа плательщика) не равно 1".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи групп свойств. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле групп свойств. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров групп свойств с ключами:

Ключ | Описание
ID | Код группы заказов.
PERSON_TYPE_ID | Тип плательщика.
NAME | Название группы.
SORT | Индекс сортировки.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Выведем все группы свойств для плательщика с кодом $PERSON_TYPE
$db_propsGroup = CSaleOrderPropsGroup::GetList(
        array("SORT" => "ASC"),
        array("PERSON_TYPE_ID" => $PERSON_TYPE),
        false,
        false,
        array()
    );

while ($propsGroup = $db_propsGroup->Fetch())
{
   echo $propsGroup["NAME"]."<br>";
}
?>


Update

Интернет-магазин>Классы>CSaleOrderPropsGroup>Update (доступен с 3.3.0)

CSaleOrderPropsGroup::Update

int
CSaleOrderPropsGroup::Update(
  int ID,
  array arFields
);

Метод обновляет параметры группы заказов с кодом ID на параметры из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код группы заказов.
arFields Ассоциативный массив параметров группы свойств, в котором ключами являются названия параметров, а значениями - новые значения.

Допустимые ключи:
  • PERSON_TYPE_ID - тип плательщика;
  • NAME - название группы (группа привязывается к типу плательщика, тип плательщика привязывается к сайту, сайт привязывается к языку, название задается на этом языке);
  • SORT - индекс сортировки.

Возвращаемые значения

Возвращается код добавленной группы или false в случае ошибки.


Класс CSaleOrderPropsValue

Методы класса

Метод | Описание | С версии
GetList | Метод возвращает результат выборки записей из заказов в соответствии со своими параметрами. | 3.3.0
GetByID | Метод возвращает параметры значения с кодом ID свойства заказа. | 3.3.0
Update | Метод обновляет параметры значения с кодом ID свойства заказа на параметры из массива arFields. | 3.3.2
Add | Метод добавляет новое значение свойства к заказу на основании параметров arFields. | 3.3.0
GetOrderProps | Метод возвращает набор значений свойств для заказа с кодом ORDER_ID. | 3.3.0


Add

Интернет-магазин>Классы>CSaleOrderPropsValue>Add (доступен с 3.3.0)

CSaleOrderPropsValue::Add

Описание и параметры

int
CSaleOrderPropsValue::Add(
  array arFields
);

Метод добавляет новое значение свойства к заказу на основании параметров arFields. Нестатический метод.

Внимание! для добавления свойств к заказу лучше использовать методы [image] нового ядра D7.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров значения свойства, ключами в котором являются названия параметров значения свойства, а значениями - соответствующие значения.

Допустимые ключи:
  • ORDER_ID - идентификатор заказа (обязательное);
  • ORDER_PROPS_ID - идентификатор свойства (обязательное);
  • NAME - название свойства (обязательное);
  • VALUE - значение свойства;
  • CODE - символьный код свойства.

Возвращаемые значения

Метод возвращает код добавленного значения свойства или false в случае ошибки.

Примеры использования

<?
$arFields = array(
   "ORDER_ID" => 124859,
   "ORDER_PROPS_ID" => 15,
   "NAME" => "Адрес доставки",
   "CODE" => "ADDRESS",
   "VALUE" => "ул. Строителей, дом 88, кв. 15"
);

CSaleOrderPropsValue::Add($arFields);
?>
//метод класса, который добавляет свойство (код/значение) к заказу, динамически узнавая идентификатор свойства:
 public static function AddOrderProperty($code, $value, $order) {
      if (!strlen($code)) {
         return false;
      }
      if (CModule::IncludeModule('sale')) {
         if ($arProp = CSaleOrderProps::GetList(array(), array('CODE' => $code))->Fetch()) {
            return CSaleOrderPropsValue::Add(array(
               'NAME' => $arProp['NAME'],
               'CODE' => $arProp['CODE'],
               'ORDER_PROPS_ID' => $arProp['ID'],
               'ORDER_ID' => $order,
               'VALUE' => $value,
            ));
         }
      }
   }


GetByID

Интернет-магазин>Классы>CSaleOrderPropsValue>GetByID (доступен с 3.3.0)

CSaleOrderPropsValue::GetByID

array
CSaleOrderPropsValue::GetByID(
  int ID
);

Метод возвращает параметры значения с кодом ID свойства заказа. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код значения свойства заказа.

Возвращаемые значения

Возвращается ассоциативный массив параметров значения свойства с ключами:

Ключ | Описание
ID | Код значения свойства заказа.
ORDER_ID | Код заказа.
ORDER_PROPS_ID | Код свойства.
NAME | Название свойства.
VALUE | Значение свойства.
CODE | Символьный код свойства.


GetList

Интернет-магазин>Классы>CSaleOrderPropsValue>GetList (доступен с 3.3.0)

CSaleOrderPropsValue::GetList

Описание и параметры

CDBResult
CSaleOrderPropsValue::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из заказов в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле местоположения, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи значений свойств. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр массиве со списком значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле заказов.

Пример фильтра:
array("~CODE" => "SH*")
Этот фильтр означает "выбрать все записи, в которых значение в поле CODE (символьный код свойства) начинается с SH".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи значений свойств. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле значений свойств. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров значений свойств с ключами:

Ключ | Описание
ID | Код значения свойства заказа.
ORDER_ID | Код заказа.
ORDER_PROPS_ID | Код свойства.
NAME | Название свойства.
VALUE | Значение свойства.
CODE | Символьный код свойства.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Узнаем имя заказчика (т.е. значение, которое было введено в поле свойства
// заказа $ORDER_ID с установленным флагом IS_PAYER)
$PAYER_NAME = "";
$db_order = CSaleOrder::GetList(
        array("DATE_UPDATE" => "DESC"),
        array("ID" => $ORDER_ID)
    );
if ($arOrder = $db_order->Fetch())
{
   $db_props = CSaleOrderProps::GetList(
        array("SORT" => "ASC"),
        array(
                "PERSON_TYPE_ID" => $arOrder["PERSON_TYPE_ID"],
                "IS_PAYER" => "Y"
            )
    );
   if ($arProps = $db_props->Fetch())
   {
      $db_vals = CSaleOrderPropsValue::GetList(
            array(),
            array(
                    "ORDER_ID" => $ORDER_ID,
                    "ORDER_PROPS_ID" => $arProps["ID"]
                )
        );
      if ($arVals = $db_vals->Fetch())
        $PAYER_NAME = $arVals["VALUE"];
   }
}
echo $PAYER_NAME;
?>


GetOrderProps

Интернет-магазин>Классы>CSaleOrderPropsValue>GetOrderProps (доступен с 3.3.0)

CSaleOrderPropsValue::GetOrderProps

Описание и параметры

CDBResult
CSaleOrderPropsValue::GetOrderProps(
  int ORDER_ID
);

Метод возвращает набор значений свойств для заказа с кодом ORDER_ID. Кроме параметров значений свойств возвращаются также некоторые связанные значения. Нестатический метод.

Параметры вызова

Параметр | Описание
ORDER_ID | Код заказа.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы параметров значений свойств заказа (и сопутствующие параметры других объектов) с ключами:

Ключ | Описание
ID | Код значения свойства заказа.
ORDER_ID | Код заказа.
ORDER_PROPS_ID | Код свойства заказа.
NAME | Название свойства заказа (привязанное к значению)
VALUE | Значение свойства заказа.
CODE | Символьный код свойства заказа.
PROPERTY_NAME | Название свойства заказа.
TYPE | Тип свойства заказа.
PROPS_GROUP_ID | Код группы свойств заказа.
GROUP_NAME | Название группы свойств заказа.
IS_LOCATION | Флаг (Y/N) использовать ли это значение в качестве кода местоположения для получения стоимости доставки.
IS_EMAIL | Флаг (Y/N) использовать ли это значение в качестве email адреса покупателя.
IS_PROFILE_NAME | Флаг (Y/N) использовать ли это значение в качестве названия профиля покупателя.
IS_PAYER | Флаг (Y/N) использовать ли это значение в качестве имени покупателя.

Результирующий набор отсортирован последовательно по индексу сортировки группы свойств заказа, названию группы свойств заказа, индексу сортировки свойства заказа, названию свойства заказа.

Примеры использования

<?
// Выведем все свойства заказа с кодом $ID, сгруппированые по группам свойств
$db_props = CSaleOrderPropsValue::GetOrderProps($ID);
$iGroup = -1;
while ($arProps = $db_props->Fetch())
{
   if ($iGroup!=IntVal($arProps["PROPS_GROUP_ID"]))
   {
      echo "<b>".$arProps["GROUP_NAME"]."</b><br>";
      $iGroup = IntVal($arProps["PROPS_GROUP_ID"]);
   }

   echo $arProps["NAME"].": ";

   if ($arProps["TYPE"]=="CHECKBOX")
   {
      if ($arProps["VALUE"]=="Y")
         echo "Да";
      else
         echo "Нет";
   }
   elseif ($arProps["TYPE"]=="TEXT" || $arProps["TYPE"]=="TEXTAREA")
   {
      echo htmlspecialchars($arProps["VALUE"]);
   }
   elseif ($arProps["TYPE"]=="SELECT" || $arProps["TYPE"]=="RADIO")
   {
      $arVal = CSaleOrderPropsVariant::GetByValue($arProps["ORDER_PROPS_ID"], $arProps["VALUE"]);
      echo htmlspecialchars($arVal["NAME"]);
   }
   elseif ($arProps["TYPE"]=="MULTISELECT")
   {
      $curVal = split(",", $arProps["VALUE"]);
      for ($i = 0; $i<count($curVal); $i++)
      {
         $arVal = CSaleOrderPropsVariant::GetByValue($arProps["ORDER_PROPS_ID"], $curVal[$i]);
         if ($i>0) echo ", ";
         echo htmlspecialchars($arVal["NAME"]);
      }
   }
   elseif ($arProps["TYPE"]=="LOCATION")
   {
      $arVal = CSaleLocation::GetByID($arProps["VALUE"], LANGUAGE_ID);
      echo htmlspecialchars($arVal["COUNTRY_NAME"]." - ".$arVal["CITY_NAME"]);
   }

   echo "<br>";
}
?>
//выборка по нескольким свойствам (например, по LOCATION и ADDRESS):
$dbOrderProps = CSaleOrderPropsValue::GetList(
        array("SORT" => "ASC"),
        array("ORDER_ID" => $intOrderID, "CODE"=>array("LOCATION", "ADDRESS"))
    );
    while ($arOrderProps = $dbOrderProps->GetNext()):
            echo "<pre>"; print_r($arOrderProps); echo "</pre>";
    endwhile;


Update

Интернет-магазин>Классы>CSaleOrderPropsValue>Update (доступен с 3.3.2)

CSaleOrderPropsValue::Update

Описание и параметры

int
CSaleOrderPropsValue::Update(
   int ID,
   array arFields
);

Метод обновляет параметры значения с кодом ID свойства заказа на параметры из массива arFields. Нестатический метод.

Примечание: если при оформлении заказа не были заполнены какие-то свойства, то эти свойства обновить потом не получится, т.к. их нет в базе данных (незаполненные свойства не имеют пустых значений в базе). Поэтому, если нужно заполнить такое свойство, то сперва нужно создать его через CSaleOrderPropsValue::Add и только затем значение этого свойства будет доступно для CSaleOrderPropsValue::Update и CSaleOrderPropsValue::Getlist.

Параметры вызова

Параметр | Описание
ID | Код значения свойства заказа.
arFields Ассоциативный массив параметров значения свойства, ключами в котором являются названия параметров значения свойства, а значениями - соответствующие новые значения.

Допустимые ключи:
  • ORDER_ID - код заказа;
  • ORDER_PROPS_ID - код свойства;
  • NAME - название свойства;
  • VALUE - значение свойства;
  • CODE - символьный код свойства.

Возвращаемые значения

Метод возвращает код обновленного значения свойства или false в случае ошибки.

Пример использования

<?
CSaleOrderPropsValue::Update(8, array("CODE"=>"ADDRESS"));
?>


Класс CSaleOrderPropsVariant

Методы класса

Метод | Описание | С версии
GetList | Метод возвращает набор вариантов значений свойств заказа, удовлетворяющих фильтру. | 3.3.0
GetByValue | Метод возвращает параметры варианта значения свойства заказа по коду свойства заказа и значению. | 3.3.0
GetByID | Метод возвращает параметры варианта с кодом ID значения свойства заказа. | 3.3.0
Update | Метод обновляет параметры варианта с кодом ID на значения из массива arFields. | 3.3.0
Delete | Метод удаляет вариант с кодом ID значения свойства заказа. | 3.3.0
DeleteAll | Метод удаляет все варианты значений для свойства с кодом ID заказа. | 3.3.0
Add | Метод добавляет новый вариант для выбора значения в свойствах типа переключатель (RADIO) и списки (SELECT, MULTISELECT). | 3.3.5


Add

Интернет-магазин>Классы>CSaleOrderPropsVariant>Add (доступен с 3.3.5)

CSaleOrderPropsVariant::Add

Описание и параметры

int
CSaleOrderPropsVariant::Add(
  array arFields
);

Метод добавляет новый вариант для выбора значения в свойствах типа переключатель (RADIO) и списки (SELECT, MULTISELECT). Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров нового варианта значения свойства заказа, ключами в котором являются названия параметров.
Допустимые ключи:
  • ORDER_PROPS_ID - код свойства заказа;
  • NAME - название варианта;
  • VALUE - значение варианта;
  • SORT - индекс сортировки;
  • DESCRIPTION - описание варианта.

Возвращаемые значения

Возвращается код добавленного варианта значения или false в случае ошибки.

Пример использования

<?
$arFieldsV = array(
   "ORDER_PROPS_ID" => 12,
   "VALUE" => "F",
   "NAME" => "В полной комплектации",
   "SORT" => 100,
   "DESCRIPTION" => "Доставка начинается после полного формирования заказа"
);

if (!CSaleOrderPropsVariant::Add($arFieldsV))
   echo "Ошибка добавления варианта значения";
?>


Delete

Интернет-магазин>Классы>CSaleOrderPropsVariant>Delete (доступен с 3.3.0)

CSaleOrderPropsVariant::Delete

bool
CSaleOrderPropsVariant::Delete(
  int ID
);

Метод удаляет вариант с кодом ID значения свойства заказа. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код варианта значения свойства заказа.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в случае ошибки.

Пример использования

<?
CSaleOrderPropsVariant::Delete(12);
?>


DeleteAll

Интернет-магазин>Классы>CSaleOrderPropsVariant>DeleteAll (доступен с 3.3.0)

CSaleOrderPropsVariant::DeleteAll

bool
CSaleOrderPropsVariant::DeleteAll(
  int ID
);

Метод удаляет все варианты значений для свойства с кодом ID заказа. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код свойства заказа.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


GetByID

Интернет-магазин>Классы>CSaleOrderPropsVariant>GetByID (доступен с 3.3.0)

CSaleOrderPropsVariant::GetByID

array
CSaleOrderPropsVariant::GetByID(
  int ID
);

Метод возвращает параметры варианта с кодом ID значения свойства заказа. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код варианта значения свойства заказа.

Возвращаемые значения

Возвращается ассоциативный массив значений параметров заказа с ключами:

Код | Описание
ID | Код варианта значения свойства заказа.
ORDER_PROPS_ID | Код свойства заказа.
NAME | Название варианта.
VALUE | Значение варианта.
SORT | Индекс сортировки.
DESCRIPTION | Описание варианта значения свойства заказа.


GetByValue

Интернет-магазин>Классы>CSaleOrderPropsVariant>GetByValue (доступен с 3.3.0)

CSaleOrderPropsVariant::GetByValue

Описание и параметры

array
CSaleOrderPropsVariant::GetByValue(
  int PropID,
  string Value
);

Метод возвращает параметры варианта значения свойства заказа по коду свойства заказа и значению. Нестатический метод.

Параметры вызова

Параметр | Описание
PropID | Код свойства заказа.
Value | Значение свойства.

Возвращаемые значения

Возвращается ассоциативный массив значений параметров заказа с ключами:

Код | Описание
ID | Код варианта значения свойства заказа.
ORDER_PROPS_ID | Код свойства заказа.
NAME | Название варианта.
VALUE | Значение варианта.
SORT | Индекс сортировки.
DESCRIPTION | Описание варианта значения свойства заказа.

Пример использования

<?
$arVal = CSaleOrderPropsVariant::GetByValue(12, "F");
echo $arVal["NAME"];
?>


GetList

Интернет-магазин>Классы>CSaleOrderPropsVariant>GetList (доступен с 3.3.0)

CSaleOrderPropsVariant::GetList

Описание и параметры

CDBResult
CSaleOrderPropsVariant::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает набор вариантов значений свойств заказа, удовлетворяющих фильтру arFilter. Результирующий набор отсортирован по полю by в направлении order. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле вариантов значений свойств, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи вариантов значений свойств. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • >= - значение поля меньше или равно передаваемой в фильтр величины;
  • >= - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле заказов.

Пример фильтра:
array("~VALUE" => "SH*")
Этот фильтр означает "выбрать все записи, в которых значение в поле VALUE (значение) начинается с SH".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи вариантов значений свойств. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле значений свойств. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы параметров с ключами:

Код | Описание
ID | Код варианта значения свойства заказа.
ORDER_PROPS_ID | Код свойства заказа.
NAME | Название варианта.
VALUE | Значение варианта.
SORT | Индекс сортировки.
DESCRIPTION | Описание варианта значения свойства заказа.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Выведем форму для ввода свойств заказа для группы свойств с кодом 5, которые
// входят в профиль покупателя, для типа плательщика с кодом 2
$db_props = CSaleOrderProps::GetList(
        array("SORT" => "ASC"),
        array(
                "PERSON_TYPE_ID" => 2,
                "PROPS_GROUP_ID" => 5,
                "USER_PROPS" => "Y"
            )
    );
if ($props = $db_props->Fetch())
{
   echo "Заполните параметры заказа:<br>";
   do
   {
      echo $props["NAME"];
      if ($props["REQUIED"]=="Y" || $props["IS_EMAIL"]=="Y" ||
          $props["IS_PROFILE_NAME"]=="Y" || $props["IS_LOCATION"]=="Y" ||
          $props["IS_LOCATION4TAX"]=="Y" || $props["IS_PAYER"]=="Y")
      {
         echo "*";
      }
      echo ": ";

      if ($props["TYPE"]=="CHECKBOX")
      {
         echo '<input type="checkbox" class="inputcheckbox" name="ORDER_PROP_'.$props["ID"].'" value="Y"'.(($props["DEFAULT_VALUE"]=="Y")?" checked":"").'>';
      }
      elseif ($props["TYPE"]=="TEXT")
      {
         echo '<input type="text" class="inputtext" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:30).'" maxlength="250" value="'.htmlspecialchars($props["DEFAULT_VALUE"]).'" name="ORDER_PROP_'.$props["ID"].'">";
      }
      elseif ($props["TYPE"]=="SELECT")
      {
         echo '<select name="ORDER_PROP_'.$props["ID"].'" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:1).'">';
         $db_vars = CSaleOrderPropsVariant::GetList(
                array("SORT" => "ASC"),
                array("ORDER_PROPS_ID" => $props["ID"])
            );
         while ($vars = $db_vars->Fetch())
         {
            echo '<option value="'.$vars["VALUE"].'"'.(($vars["VALUE"]==$props["DEFAULT_VALUE"])?" selected":"").'>'.htmlspecialchars($vars["NAME"]).'</option>';
         }
         echo '</select>';
      }
      elseif ($props["TYPE"]=="MULTISELECT")
      {
         echo '<select multiple name="ORDER_PROP_'.$props["ID"].'[]" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:5).'">';
         $arDefVal = Split(",", $props["DEFAULT_VALUE"]);
         for ($i = 0; $i<count($arDefVal); $i++)
            $arDefVal[$i] = Trim($arDefVal[$i]);

         $db_vars = CSaleOrderPropsVariant::GetList(
                array("SORT" => "ASC"),
                array("ORDER_PROPS_ID" => $props["ID"])
            );
         while ($vars = $db_vars->Fetch())
         {
            echo '<option value="'.$vars["VALUE"].'"'.(in_array($vars["VALUE"], $arDefVal)?" selected":"").'>'.htmlspecialchars($vars["NAME"]).'</option>';
         }
         echo '</select>';
      }
      elseif ($props["TYPE"]=="TEXTAREA")
      {
         echo '<textarea rows="'.((IntVal($props["SIZE2"])>0)?$props["SIZE2"]:4).'" cols="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:40).'" name="ORDER_PROP_'.$props["ID"].'">'.htmlspecialchars($props["DEFAULT_VALUE"]).'</textarea>';
      }
      elseif ($props["TYPE"]=="LOCATION")
      {
         echo '<select name="ORDER_PROP_'.$props["ID"].'" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:1).'">';
         $db_vars = CSaleLocation::GetList(Array("SORT"=>"ASC", "COUNTRY_NAME_LANG"=>"ASC", "CITY_NAME_LANG"=>"ASC"), array("LID" => LANGUAGE_ID));
         while ($vars = $db_vars->Fetch())
         {
            echo '<option value="'.$vars["ID"].'"".((IntVal($vars["ID"])==IntVal($props["DEFAULT_VALUE"]))?" selected":"").'>'.htmlspecialchars($vars["COUNTRY_NAME"]." - ".$vars["CITY_NAME"]).'</option>';
         }
         echo '</select>';
      }
      elseif ($props["TYPE"]=="RADIO")
      {
         $db_vars = CSaleOrderPropsVariant::GetList(
                array("SORT" => "ASC"),
                array("ORDER_PROPS_ID" => $props["ID"])
            );
         while ($vars = $db_vars->Fetch())
         {
            echo '<input type="radio" name="ORDER_PROP_'.$props["ID"].'" value="'.$vars["VALUE"].'"'.(($vars["VALUE"]==$props["DEFAULT_VALUE"])?" checked":"").'>'.htmlspecialchars($vars["NAME"]).'<br>';
         }
      }

      if (strlen($props["DESCRIPTION"])>0)
      {
         echo "<br><small>".$props["DESCRIPTION"]."</small>";
      }

      echo "<br>";
   }
   while ($props = $db_props->Fetch());
}
?>


Update

Интернет-магазин>Классы>CSaleOrderPropsVariant>Update (доступен с 3.3.0)

CSaleOrderPropsVariant::Update

int
CSaleOrderPropsVariant::Update(
  int ID,
  array arFields
);

Метод обновляет параметры варианта с кодом ID на значения из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код варианта значения свойства заказа.
arFields Ассоциативный массив параметров нового варианта значения свойства заказа, ключами в котором являются названия параметров.

Допустимые ключи:
  • ORDER_PROPS_ID - код свойства заказа;
  • NAME - название варианта;
  • VALUE - значение варианта;
  • SORT - индекс сортировки;
  • DESCRIPTION - описание варианта.

Возвращаемые значения

Возвращается код добавленного варианта значения или false в случае ошибки.


Класс CSaleOrderTax

Методы класса

Метод | Описание | С версии
Update | Метод изменяет сумму налога с кодом ID на основании массива arFields. | 3.3.2
Delete | Метод удаляет сумму налога с кодом ID. | 3.3.2
DeleteEx | Метод удаляет все суммы налогов для заказа с кодом ORDER_ID. | 3.3.2
GetByID | Метод возвращает параметры суммы налогов с кодом ID. | 3.3.2
GetList | Метод возвращает результат выборки записей из налогов заказа в соответствии со своими параметрами. | 3.3.2
CountTaxes | Метод вычисляет общую сумму налогов на товар стоимостью Price. Налоги задаются в массиве arTaxList. | 3.3.2
Add | Метод добавляет новую сумму налога к заказу. | 3.3.2


Add

Интернет-магазин>Классы>CSaleOrderTax>Add (доступен с 3.3.2)

CSaleOrderTax::Add

Описание и параметры

int
CSaleOrderTax::Add(
  array arFields
);

Метод добавляет новую сумму налога к заказу. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров новой записи, ключами в котором являются названия параметров, а значениями - соответствующие значения.
Допустимые ключи:
  • ORDER_ID - код заказа (обязательный);
  • TAX_NAME - название налога;
  • VALUE - величина налога (в процентах);
  • VALUE_MONEY - общая сумма этого налога;
  • APPLY_ORDER - порядок применения;
  • CODE - символьный код налога;
  • IS_PERCENT - должно быть значение "Y";
  • IS_IN_PRICE - флаг (Y/N) входит ли налог уже в цену товара.

Возвращаемые значения

Возвращается код добавленной суммы налога или false в случае ошибки.

Пример использования

<?
$arFields = array(
   "ORDER_ID" => 12789,
   "TAX_NAME" => "НДС",
   "IS_PERCENT" => "Y",
   "VALUE" => 3.5,
   "VALUE_MONEY" => 6948.55,
   "APPLY_ORDER" => 300,
   "IS_IN_PRICE" => "N",
   "CODE" => "NDS"
);

CSaleOrderTax::Add($arFields);
?>


CountTaxes

Интернет-магазин>Классы>CSaleOrderTax>CountTaxes (доступен с 3.3.2)

CSaleOrderTax::CountTaxes

Описание и параметры

float
CSaleOrderTax::CountTaxes(
  float Price,
  array &arTaxList,
  string DefCurrency
);

Метод вычисляет общую сумму налогов на товар стоимостью Price. Налоги задаются в массиве arTaxList. Нестатический метод.

Параметры вызова

Параметр | Описание
Price | Стоимость товара.
arTaxList Массив налогов, представляет собой массив ассоциативных массивов вида:
array("APPLY_ORDER"=>порядок_применения,
      "VALUE"=>величина_налога_в_процентах,
      "IS_IN_PRICE"=>"налог_входит_в_цену_Y/N")
DefCurrency | Базовая валюта для заказа.

Возвращаемые значения

Возвращается общая сумма налогов на товар. Кроме того в массиве arTaxList создаётся дополнительный ключ TAX_VAL, который содержит величину данного налога на товар.

Пример использования

<?
// Заполним массив активных налогов для текущего сайта, типа плательщика с кодом 2 и местоположения для начисления налогов с кодом 48
$arTaxList = array();

$arTaxFilter = array(
   "LID" => SITE_ID,
   "PERSON_TYPE_ID" => 2,
   "ACTIVE" => "Y",
   "LOCATION" => 48
);
$db_tax_rate_tmp = CSaleTaxRate::GetList(array("APPLY_ORDER"=>"ASC"), $arTaxFilter);
while ($ar_tax_rate_tmp = $db_tax_rate_tmp->Fetch())
{
   $arTaxList[] = $ar_tax_rate_tmp;
}

// Вычислим величину налогов на товар стоимостью 38.95
$TAX_PRICE_tmp = CSaleOrderTax::CountTaxes(38.95, $arTaxList, "RUR");

echo "Общая величина налогов: ".$TAX_PRICE_tmp."<br>";
echo "в том числе ";
for ($i = 0; $i<count($arTaxList); $i++)
{
   echo $arTaxList[$di]["NAME"]." - ".$arTaxList[$di]["TAX_VAL"]."<br>";
}
?>


Delete

Интернет-магазин>Классы>CSaleOrderTax>Delete (доступен с 3.3.2)

CSaleOrderTax::Delete

bool
CSaleOrderTax::Delete(
  int ID
);

Метод удаляет сумму налога с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код суммы налога.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


DeleteEx

Интернет-магазин>Классы>CSaleOrderTax>DeleteEx (доступен с 3.3.2)

CSaleOrderTax::DeleteEx

bool
CSaleOrderTax::DeleteEx(
  int ORDER_ID
);

Метод удаляет все суммы налогов для заказа с кодом ORDER_ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ORDER_ID | Код заказа.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


GetByID

Интернет-магазин>Классы>CSaleOrderTax>GetByID (доступен с 3.3.2)

CSaleOrderTax::GetByID

array
CSaleOrderTax::GetByID(
  int ID
);

Метод возвращает параметры суммы налогов с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код суммы налогов.

Возвращаемые значения

Возвращается ассоциативный массив с ключами

Ключ | Описание
ID | Код суммы налогов.
ORDER_ID | Код заказа.
TAX_NAME | Название налога.
VALUE | Ставка налога.
VALUE_MONEY | Сумма налога.
APPLY_ORDER | Порядок применения.
CODE | Символьный код налога.
IS_IN_PRICE | Флаг (Y/N) включен ли налог в цену товара.
IS_PERCENT | Y


GetList

Интернет-магазин>Классы>CSaleOrderTax>GetList (доступен с 3.3.2)

CSaleOrderTax::GetList

Описание и параметры

CDBResult
CSaleOrderTax::GetList(
 array arOrder = array("TAX_NAME" => "ASC"),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из налогов заказа в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание С версии
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле налогов заказа, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).
arFilter Массив, в соответствии с которым фильтруются записи налогов заказа. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле заказов.

Пример фильтра:
array("ORDER_ID" => 125)
Этот фильтр означает "выбрать все записи, в которых значение в поле ORDER_ID (код налога) равно 125".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет. 		4.0.6
arGroupBy Массив полей, по которым группируются записи вариантов налогов заказа. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле налогов заказа. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет. 		4.0.6
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет. 		4.0.6
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса. 		4.0.6

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы с ключами

Ключ | Описание
ID | Код суммы налогов.
ORDER_ID | Код заказа.
TAX_NAME | Название налога.
VALUE | Ставка налога.
VALUE_MONEY | Сумма налога.
APPLY_ORDER | Порядок применения.
CODE | Символьный код налога.
IS_IN_PRICE | Флаг (Y/N) включен ли налог в цену товара.
IS_PERCENT | Y

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
$arTaxList = array();
// Выберем все суммы налогов для заказа $ORDER_ID
$db_tax_list = CSaleOrderTax::GetList(array("APPLY_ORDER"=>"ASC"), Array("ORDER_ID"=>$ORDER_ID));

$iNds = -1;
$i = 0;
while ($ar_tax_list = $db_tax_list->Fetch())
{
   $arTaxList[$i] = $ar_tax_list;
   // определяем, какой из налогов - НДС, предполагая, что его символьный код - NDS
   if ($arTaxList[$i]["CODE"] == "NDS")
      $iNds = $i;

   $i++;
}
?>


Update

Интернет-магазин>Классы>CSaleOrderTax>Update (доступен с 3.3.2)

CSaleOrderTax::Update

int
CSaleOrderTax::Update(
  int ID,
  array arFields
);

Метод изменяет сумму налога с кодом ID на основании массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код суммы налога.
arFields Ассоциативный массив новых параметров записи, ключами в котором являются названия параметров, а значениями - соответствующие значения.
Допустимые ключи:
  • ORDER_ID - код заказа;
  • TAX_NAME - название налога;
  • VALUE - величина налога;
  • VALUE_MONEY - общая сумма этого налога;
  • APPLY_ORDER - порядок применения;
  • CODE - символьный код налога;
  • IS_PERCENT - должно быть значение "Y";
  • IS_IN_PRICE - флаг (Y/N) входит ли налог уже в цену товара.

Возвращаемые значения

Возвращается код измененной суммы налога или false в случае ошибки.


Класс CSaleOrderUserProps

Методы класса

Метод | Описание | С версии
GetByID | Метод возвращает параметры профиля покупателя с кодом ID. | 3.3.0
Update | Метод обновляет параметры профиля покупателя с кодом ID на значения из массива arFields. | 3.3.0
Delete | Метод удаляет профиль покупателя с кодом ID. Вместе с профилем удаляются все его свойства. | 3.3.0
Add | Метод сохраняет новый профиль покупателя с параметрами из массива arFields. | 3.3.5
ClearEmpty | Метод удаляет все пустые профили из базы (т.е. профили, в которых нет свойств). | 3.3.0
GetList | Метод возвращает результат выборки записей из профилей покупателя в соответствии со своими параметрами. | 3.3.0


Add

Интернет-магазин>Классы>CSaleOrderUserProps>Add (доступен с 3.3.5)

CSaleOrderUserProps::Add

Описание и параметры

int
CSaleOrderUserProps::Add(
  array arFields
);

Метод сохраняет новый профиль покупателя с параметрами из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров нового профиля. Ключами являются названия параметров, а значениями - соответствующие значения.

Допустимые ключи:
  • NAME - название профиля покупателя;
  • USER_ID - код пользователя, которому принадлежит профиль;
  • PERSON_TYPE_ID - тип плательщика;
  • DATE_UPDATE - дата последнего изменения.

Возвращаемые значения

Возвращается код добавленного профиля или false в случае ошибки.

Пример использования

<?
$arFields = array(
   "NAME" => "Профиль 1",
   "USER_ID" => $USER->GetID(),
   "PERSON_TYPE_ID" => 2
);
$USER_PROPS_ID = CSaleOrderUserProps::Add($arFields);
?>


ClearEmpty

Интернет-магазин>Классы>CSaleOrderUserProps>ClearEmpty (доступен с 3.3.0)

CSaleOrderUserProps::ClearEmpty

CSaleOrderUserProps::ClearEmpty();

Метод удаляет все пустые профили из базы (т.е. профили, в которых нет свойств). Нестатический метод.


Delete

Интернет-магазин>Классы>CSaleOrderUserProps>Delete (доступен с 3.3.0)

CSaleOrderUserProps::Delete

bool
CSaleOrderUserProps::Delete(
  int ID
);

Метод удаляет профиль покупателя с кодом ID. Вместе с профилем удаляются все его свойства. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код профиля покупателя.

Возвращаемые значения

Возвращается объект CDBResult в случае успешного удаления и false - в противном случае.


GetByID

Интернет-магазин>Классы>CSaleOrderUserProps>GetByID (доступен с 3.3.0)

CSaleOrderUserProps::GetByID

Описание и параметры

array
CSaleOrderUserProps::GetByID(
  int ID
);

Метод возвращает параметры профиля покупателя с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код профиля покупателя.

Возвращаемые значения

Возвращается ассоциативный массив параметров профиля покупателя с ключами:

Ключ | Описание
ID | Код профиля покупателя.
NAME | Название профиля.
USER_ID | Код пользователя, которому принадлежит профиль.
PERSON_TYPE_ID | Тип плательщика.
DATE_UPDATE | Дата последнего изменения профиля.

Пример использования

<?
if ($ar = CSaleOrderUserProps::GetByID(12))
{
   echo "<pre>";
   print_r($ar);
   echo "</pre>";
}
?>


GetList

Интернет-магазин>Классы>CSaleOrderUserProps>GetList (доступен с 3.3.0)

CSaleOrderUserProps::GetList

Описание и параметры

CDBResult
CSaleOrderUserProps::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из профилей покупателя в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле налогов заказа, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи профилей покупателя. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле заказов.

Пример фильтра:
array("~NAME" => "John*")
Этот фильтр означает "выбрать все записи, в которых значение в поле NAME (название профиля) начинается с John".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.

Важно! Если результат фильтровать не нужно, то пустой массив фильтра надо передать обязательно. Это требуется из-за наследия старого API.
arGroupBy Массив полей, по которым группируются записи вариантов профилей покупателя. Массив имеет вид:
array("название_поля1",
"группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле профилей покупателя. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров профиля покупателя с ключами:

Ключ | Описание
ID | Код профиля покупателя.
NAME | Название профиля.
USER_ID | Код пользователя, которому принадлежит профиль.
PERSON_TYPE_ID | Тип плательщика.
DATE_UPDATE | Дата последнего изменения профиля.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Выберем все профили покупателя для текущего пользователя,
// упорядочив результат по дате последнего изменения
$db_sales = CSaleOrderUserProps::GetList(
        array("DATE_UPDATE" => "DESC"),
        array("USER_ID" => $USER->GetID())
    );

while ($ar_sales = $db_sales->Fetch())
{
   echo $ar_sales["NAME"]."<br>";
}
?>


Update

Интернет-магазин>Классы>CSaleOrderUserProps>Update (доступен с 3.3.0)

CSaleOrderUserProps::Update

Описание и параметры

int
CSaleOrderUserProps::Update(
  int ID,
  array arFields
);

Метод обновляет параметры профиля покупателя с кодом ID на значения из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код профиля покупателя.
arFields Ассоциативный массив новых параметров профиля. Ключами являются названия параметров, а значениями - соответствующие значения.

Допустимые ключи:
  • NAME - название профиля покупателя.
  • USER_ID - код пользователя, которому принадлежит профиль. Если USER_ID не задан, то он устанавливается от текущего авторизованного пользователя.
  • PERSON_TYPE_ID - тип плательщика.
  • DATE_UPDATE - дата последнего изменения.

Возвращаемые значения

Возвращается код измененного профиля или false в случае ошибки.

Пример использования

<?
// Изменим название профиля покупателя
$arFields = array(
   "NAME" => "Профиль 24"
);
if (!CSaleOrderUserProps::Update(258, $arFields))
   echo "Ошибка изменения профиля покупателя";
?>


Класс CSaleOrderUserPropsValue

Методы класса

Метод | Описание | С версии
GetByID | Метод возвращает параметры свойства с кодом ID профиля покупателя. | 3.3.0
Delete | Метод удаляет свойство с кодом ID профиля покупателя. | 3.3.0
DeleteAll | Метод удаляет все свойства профиля покупателя для профиля с кодом ID. | 3.3.0
GetList | Метод возвращает результат выборки записей из значений свойств профилей покупателя в соответствии со своими параметрами. | 3.3.5
Add | Метод добавляет новое свойство профиля покупателя в соответствии с массивом параметров arFields. | 3.3.5
[link=706167]Update[/link] | Метод изменяет свойство профиля покупателя в соответствии с массивом параметров arFields. | 11.0.0


Add

Интернет-магазин>Классы>CSaleOrderUserPropsValue>Add (доступен с 3.3.5)

CSaleOrderUserPropsValue::Add

Описание и параметры

int
CSaleOrderUserPropsValue::Add(
  array arFields
);

Метод добавляет новое свойство профиля покупателя в соответствии с массивом параметров arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров нового свойства профиля покупателя. Ключами в массиве являются названия параметров свойства, а значениями - соответствующие значения.

Допустимые ключи:
  • USER_PROPS_ID - код профиля покупателя;
  • ORDER_PROPS_ID - код свойства заказа;
  • NAME - название свойства заказа;
  • VALUE - значение свойства заказа в профиле.

Возвращаемые значения

Возвращается код добавленного свойства профиля покупателя или false в случае ошибки.

Пример использования

<?
$arFields = array(
   "USER_PROPS_ID" => 1258,
   "ORDER_PROPS_ID" => 12,
   "NAME" => "Почтовый индекс",
   "VALUE" => "236015"
);
CSaleOrderUserPropsValue::Add($arFields);
?>


Delete

Интернет-магазин>Классы>CSaleOrderUserPropsValue>Delete (доступен с 3.3.0)

CSaleOrderUserPropsValue::Delete

bool
CSaleOrderUserPropsValue::Delete(
  int ID
);

Метод удаляет свойство с кодом ID профиля покупателя. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код свойства профиля покупателя.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.

Пример использования

<?
CSaleOrderUserPropsValue::Delete(17);
?>


DeleteAll

Интернет-магазин>Классы>CSaleOrderUserPropsValue>DeleteAll (доступен с 3.3.0)

CSaleOrderUserPropsValue::DeleteAll

bool
CSaleOrderUserPropsValue::DeleteAll(
  int ID
);

Метод удаляет все свойства профиля покупателя для профиля с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код профиля покупателя.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


GetByID

Интернет-магазин>Классы>CSaleOrderUserPropsValue>GetByID (доступен с 3.3.0)

CSaleOrderUserPropsValue::GetByID

array
CSaleOrderUserPropsValue::GetByID(
  int ID
);

Метод возвращает параметры свойства с кодом ID профиля покупателя. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код свойства профиля покупателя.

Возвращаемые значения

Возвращается ассоциативный массив параметров свойства с ключами:

Ключ | Описание
ID | Код свойства профиля покупателя.
USER_PROPS_ID | Код профиля покупателя.
ORDER_PROPS_ID | Код свойства заказа.
NAME | Название свойства заказа.
VALUE | Значение свойства заказа, сохраненное в профиле покупателя.


GetList

Интернет-магазин>Классы>CSaleOrderUserPropsValue>GetList (доступен с 3.3.5)

CSaleOrderUserPropsValue::GetList

Описание и параметры

CDBResult
CSaleOrderUserPropsValue::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из значений свойств профилей покупателя в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле налогов заказа, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи значений свойств профилей покупателя. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений. Можно просто передавать массив значений.
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле заказов.

Пример фильтра:
array("USER_PROPS_ID" => 120)
Этот фильтр означает "выбрать все записи, в которых значение в поле USER_PROPS_ID (код профиля покупателя) равно 120".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.

Важно! Если результат фильтровать не нужно, то пустой массив фильтра надо передать обязательно. Это требуется из-за наследия старого API.
arGroupBy Массив полей, по которым группируются записи значений свойств профилей покупателя. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле значений свойств профилей покупателя. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы параметров свойств с ключами:

Ключ | Описание
ID | Код свойства профиля покупателя.
USER_PROPS_ID | Код профиля покупателя.
ORDER_PROPS_ID | Код свойства заказа.
USER_VALUE_NAME | Название свойства заказа, сохраненное в профиле покупателя.
VALUE | Значение свойства заказа, сохраненное в профиле покупателя.
TYPE | Тип свойства заказа.
SORT | Индекс сортировки свойства заказа.
VARIANT_NAME | Название варианта значения свойства заказа со значением из профиля покупателя.
CODE | Символьный код свойства заказа.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

// Выведем все свойства профиля покупателя с кодом $ID
$db_propVals = CSaleOrderUserPropsValue::GetList(array("ID" => "ASC"), Array("USER_PROPS_ID"=>$ID));
while ($arPropVals = $db_propVals->Fetch())
{
echo $arPropVals["USER_VALUE_NAME"]."=".$arPropVals["VALUE"]."<br>";
}


Update

Интернет-магазин>Классы>CSaleOrderUserPropsValue>Update (доступен с 11.0.0)

CSaleOrderUserPropsValue::Update

array
CSaleOrderUserPropsValue::Update(
  $ID,
  $arFields
);

Метод обновляет свойство профиля покупателя в соответствии с массивом параметров arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Идентификатор свойства профиля покупателя. Его можно узнать посмотрев все свойства определённого профиля методом CSaleOrderUserPropsValue::GetList.
arFields | Массив значений свойств.
Ключ | Описание
ID | Идентификатор свойства профиля покупателя. Несмотря на то, что этот идентификатор передаётся как параметр, его необходимо обязательно продублировать в качестве ключа массива arFields. В противном случае будет ошибка. Идентификатор сожно узнать, например, посмотрев все профили пользователя методом CSaleOrderUserProps::GetList.
USER_PROPS_ID | Код профиля покупателя.
ORDER_PROPS_ID | Код свойства заказа.
NAME | Название свойства заказа.
VALUE | Значение свойства заказа, сохраненное в профиле покупателя.


Класс CSalePaySystem

Методы класса

Метод | Описание | С версии
Update | Метод обновляет параметры платежной системы с кодом ID в соответствии со значениями из массива arFields. | 3.3.6
Delete | Метод удаляет платежную систему с кодом ID. | 3.3.6
GetList | Метод возвращает результат выборки записей из платежных систем в соответствии со своими параметрами. | 3.3.6
GetByID | Метод возвращает параметры платежной системы с кодом ID. | 3.3.6
Add | Метод добавляет новую платежную систему на основании параметров из массива arFields. | 4.0.6


Add

Интернет-магазин>Классы>CSalePaySystem>Add (доступен с 4.0.6, устарел с 16.0.2)

CSalePaySystem::Add

int
CSalePaySystem::Add(
 array arFields
);

Метод добавляет новую платежную систему на основании параметров из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров новой платежной системы, в котором ключами являются названия параметров, а значениями - соответствующие значения.
Допустимые ключи:
  • CURRENCY - валюта платежной системы;
  • NAME - название платежной системы;
  • ACTIVE - флаг (Y/N) активности платежной системы;
  • SORT - индекс сортировки;
  • DESCRIPTION - описание.

Возвращаемые значения

Возвращается код измененной записи или false в случае ошибки.


Delete

Интернет-магазин>Классы>CSalePaySystem>Delete (доступен с 3.3.6, устарел с 16.0.2)

CSalePaySystem::Delete

bool
CSalePaySystem::Delete(
  int ID
);

Метод удаляет платежную систему с кодом ID. Если к платежной системе с кодом ID привязаны заказы, то эта платежная система удалена не будет. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код платежной системы.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.

Пример использования

<?
CSalePaySystem::Delete(25);
?>


GetByID

Интернет-магазин>Классы>CSalePaySystem>GetByID (доступен с 3.3.6, устарел с 16.0.2)

CSalePaySystem::GetByID

Описание и параметры

array
CSalePaySystem::GetByID(
  int ID,
  int PERSON_TYPE_ID = 0
);

Метод возвращает параметры платежной системы с кодом ID. Если установлен параметр PERSON_TYPE_ID, то возвращаются так же параметры соответствующего обработчика платежной системы. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код платежной системы.
PERSON_TYPE_ID | Код типа плательщика. Если установлен, то дополнительно возвращаются параметры соответствующего обработчика платежной системы. Иначе - только параметры самой платежной системы.

Возвращаемые значения

Возвращается ассоциативный массив параметров с ключами:

Ключ | Описание
ID | Код платежной системы.
LID | Сайт, на котором работает эта система.
CURRENCY | Валюта, с которой работает эта система.
NAME | Название платежной системы.
ACTIVE | Флаг (Y/N) активности системы.
SORT | Индекс сортировки.
DESCRIPTION | Описание платежной системы.
PSA_ID | Код обработчика платежной системы (возвращается, если в метод передается тип плательщика)
PSA_NAME | Название обработчика (возвращается, если в метод передается тип плательщика)
PSA_ACTION_FILE | Скрипт обработчика (возвращается, если в метод передается тип плательщика)
PSA_RESULT_FILE | Скрипт запроса результатов (возвращается, если в метод передается тип плательщика)
PSA_NEW_WINDOW | Флаг (Y/N) открывать ли скрипт обработчика в новом окне (возвращается, если в метод передается тип плательщика)

Пример использования

<?
// Выведем название обработчика платежной системы с кодом $PAY_SYSTEM_ID
// для типа плательщика с кодом $PERSON_TYPE
if ($arPaySys = CSalePaySystem::GetByID($PAY_SYSTEM_ID, $PERSON_TYPE))
{
   echo $arPaySys["PSA_NAME"];
}
?>


GetList

Интернет-магазин>Классы>CSalePaySystem>GetList (доступен с 3.3.6, устарел с 16.0.2)

CSalePaySystem::GetList

Описание и параметры

CDBResult

  CSalePaySystem::GetList(
 array arOrder = array(("SORT"=>"ASC", "NAME"=>"ASC"),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из платежных систем в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание С версии
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле платежных систем, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).
arFilter Массив, в соответствии с которым фильтруются записи платежных систем. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле из службы оплаты.

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи платежных систем. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле платежных систем. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.

Значение по умолчанию - false - означает, что результат группироваться не будет. 		4.0.6
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет. 		4.0.6
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса. 		4.0.6

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров платежных систем с ключами:

Ключ | Описание
ID | Код платежной системы.
NAME | Название платежной системы.
ACTIVE | Флаг (Y/N) активности системы.
SORT | Индекс сортировки.
DESCRIPTION | Описание платежной системы.
PSA_ID | Код обработчика платежной системы (возвращается, если в метод передается тип плательщика)
PSA_NAME | Название обработчика (возвращается, если в метод передается тип плательщика)
PSA_ACTION_FILE | Скрипт обработчика (возвращается, если в метод передается тип плательщика)
PSA_RESULT_FILE | Скрипт запроса результатов (возвращается, если в метод передается тип плательщика)
PSA_NEW_WINDOW | Флаг (Y/N) открывать ли скрипт обработчика в новом окне (возвращается, если в метод передается тип плательщика)
PSA_PERSON_TYPE_ID | Код типа плательщика.
PSA_PARAMS | Параметры вызова обработчика.
PSA_HAVE_PAYMENT | Есть вариант обработчика для работы после оформления заказа.
PSA_HAVE_ACTION | Есть вариант обработчика для мгновенного списания денег.
PSA_HAVE_RESULT | Есть скрипт запроса результатов.
PSA_HAVE_PREPAY | Есть вариант обработчика для работы во время оформления заказа.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Выведем все активные платежные системы для текущего сайта, для типа плательщика с кодом 2, работающие с валютой RUR
$db_ptype = CSalePaySystem::GetList($arOrder = Array("SORT"=>"ASC", "PSA_NAME"=>"ASC"), Array("LID"=>SITE_ID, "CURRENCY"=>"RUB", "ACTIVE"=>"Y", "PERSON_TYPE_ID"=>2));
$bFirst = True;
while ($ptype = $db_ptype->Fetch())
{
   ?><input type="radio" name="PAY_SYSTEM_ID" value="<?echo $ptype["ID"] ?>"<?if ($bFirst) echo " checked";?>><b><?echo $ptype["PSA_NAME"] ?></b><br><?
   $bFirst = false;
   if (strlen($ptype["DESCRIPTION"])>0)
      echo $ptype["DESCRIPTION"]."<br>";
   ?><hr size="1" width="90%"><?
}
?>


Update

Интернет-магазин>Классы>CSalePaySystem>Update (доступен с 3.3.6, устарел с 16.0.2)

CSalePaySystem::Update

int
CSalePaySystem::Update(
  int ID,
  array arFields
);

Метод обновляет параметры платежной системы с кодом ID в соответствии со значениями из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код платежной системы.
arFields Ассоциативный массив новых параметров платежной системы, в котором ключами являются названия параметров, а значениями - соответствующие значения.
Допустимые ключи:
  • LID - сайт платежной системы;
  • CURRENCY - валюта платежной системы;
  • NAME - название платежной системы;
  • ACTIVE - флаг (Y/N) активности платежной системы;
  • SORT - индекс сортировки;
  • DESCRIPTION - описание.

Возвращаемые значения

Возвращается код измененной записи или false в случае ошибки.


Класс CSalePaySystemAction

Методы класса

Метод | Описание | С версии
GetList | Метод возвращает результат выборки записей из обработчиков платежных систем в соответствии со своими параметрами. | 3.3.6
GetByID | Метод возвращает параметры обработчика платежной системы с кодом ID. | 3.3.6
Update | Метод обновляет параметры обработчика с кодом ID платежной системы в соответствии с массивом arFields. | 3.3.6
Delete | Метод удаляет обработчик платежной системы с кодом ID. | 3.3.6
Add | Метод добавляет новый обработчик платежной системы на основании параметров из массива arFields. | 4.0.6


Add

Интернет-магазин>Классы>CSalePaySystemAction>Add (доступен с 4.0.6)

CSalePaySystemAction::Add

int
CSalePaySystemAction::Add(
 array arFields
);

Метод добавляет новый обработчик платежной системы на основании параметров из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров нового обработчика платежной системы, ключами в котором являются названия параметров, а значениями - соответствующие значения.
Допустимые ключи:
  • PAY_SYSTEM_ID - код платежной системы;
  • PERSON_TYPE_ID - код типа плательщика;
  • NAME - название платежной системы;
  • ACTION_FILE - скрипт платежной системы;
  • RESULT_FILE - скрипт получения результатов;
  • NEW_WINDOW - флаг (Y/N) открывать ли скрипт платежной системы в новом окне
  • PARAMS - параметры вызова обработчика
  • HAVE_PAYMENT - есть вариант обработчика для работы после оформления заказа
  • HAVE_ACTION - есть вариант обработчика для мгновенного списания денег
  • HAVE_RESULT - есть скрипт запроса результатов
  • HAVE_PREPAY - есть вариант обработчика для работы во время оформления заказа.

Возвращаемые значения

Возвращается код обновленной записи или false - в случае ошибки.


Delete

Интернет-магазин>Классы>CSalePaySystemAction>Delete (доступен с 3.3.6)

CSalePaySystemAction::Delete

bool
CSalePaySystemAction::Delete(
  int ID
);

Метод удаляет обработчик платежной системы с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код обработчика платежной системы.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.

Пример использования

<?
CSalePaySystemAction::Delete(12);
?>


GetByID

Интернет-магазин>Классы>CSalePaySystemAction>GetByID (доступен с 3.3.6)

CSalePaySystemAction::GetByID

array
CSalePaySystemAction::GetByID(
  int ID
);

Метод возвращает параметры обработчика платежной системы с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код обработчика платежной системы.

Возвращаемые значения

Возвращается ассоциативный массив параметров обработчика платежной системы с ключами:

Ключ | Описание
ID | Код обработчика платежной системы.
PAY_SYSTEM_ID | Код платежной системы.
PERSON_TYPE_ID | Код типа плательщика.
NAME | Название платежной системы.
ACTION_FILE | Скрипт платежной системы.
RESULT_FILE | Скрипт получения результатов.
NEW_WINDOW | Флаг (Y/N) открывать ли скрипт платежной системы в новом окне.


GetList

Интернет-магазин>Классы>CSalePaySystemAction>GetList (доступен с 3.3.6)

CSalePaySystemAction::GetList

Описание и параметры

CDBResult
CSalePaySystemAction::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из обработчиков платежных систем в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле обработчиков платежных систем, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи обработчиков платежных систем. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле заказов.

Пример фильтра:
array("!PERSON_TYPE_ID" => 5)
Этот фильтр означает "выбрать все записи, в которых значение в поле PERSON_TYPE_ID (код типа плательщика) не равно 5".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи обработчиков платежных систем. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле обработчиков платежных систем. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Этот фильтр означает "выбрать все записи, в которых значение в поле LID (сайт системы) не равно en".

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы параметров обработчиков платежных систем с ключами:

Ключ | Описание
ID | Код обработчика платежной системы.
PAY_SYSTEM_ID | Код платежной системы.
PERSON_TYPE_ID | Код типа плательщика.
NAME | Название платежной системы.
ACTION_FILE | Скрипт платежной системы.
RESULT_FILE | Скрипт получения результатов.
NEW_WINDOW | Флаг (Y/N) открывать ли скрипт платежной системы в новом окне.
PARAMS | Параметры вызова обработчика.
HAVE_PAYMENT | Есть вариант обработчика для работы после оформления заказа.
HAVE_ACTION | Есть вариант обработчика для мгновенного списания денег.
HAVE_RESULT | Есть скрипт запроса результатов.
HAVE_PREPAY | Есть вариант обработчика для работы во время оформления заказа.
PS_LID | Сайт платежной системы.
PS_CURRENCY | Валюта платежной системы.
PS_NAME | Название платежной системы.
PS_ACTIVE | Активность платежной системы.
PS_SORT | Индекс сортировки платежной системы.
PS_DESCRIPTION | Описание платежной системы.
PT_LID | Сайт типа плательщика.
PT_NAME | Название типа плательщика.
PT_SORT | Индекс сортировки типа плательщика.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.


Update

Интернет-магазин>Классы>CSalePaySystemAction>Update (доступен с 3.3.6)

CSalePaySystemAction::Update

int
CSalePaySystemAction::Update(
  int ID,
  array arFields
);

Метод обновляет параметры обработчика с кодом ID платежной системы в соответствии с массивом arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код обработчика платежной системы.
arFields Ассоциативный массив новых параметров платежной системы, ключами в котором являются названия параметров, а значениями - соответствующие значения.
Допустимые ключи:
  • PAY_SYSTEM_ID - код платежной системы;
  • PERSON_TYPE_ID - код типа плательщика;
  • NAME - название платежной системы;
  • ACTION_FILE - скрипт платежной системы;
  • RESULT_FILE - скрипт получения результатов;
  • NEW_WINDOW - флаг (Y/N) открывать ли скрипт платежной системы в новом окне
  • PARAMS - параметры вызова обработчика
  • HAVE_PAYMENT - есть вариант обработчика для работы после оформления заказа
  • HAVE_ACTION - есть вариант обработчика для мгновенного списания денег
  • HAVE_RESULT - есть скрипт запроса результатов
  • HAVE_PREPAY - есть вариант обработчика для работы во время оформления заказа.

Возвращаемые значения

Возвращается код обновленной записи или false - в случае ошибки.


Класс CSalePersonType

Методы класса

Метод | Описание | С версии
GetList | Метод возвращает результат выборки записей из типов плательщика в соответствии со своими параметрами. | 3.3.0
GetByID | Метод возвращает параметры типа плательщика с кодом ID. | 3.3.0
Update | Метод обновляет параметры типа плательщика с кодом ID. | 3.3.0
Delete | Метод удаляет тип плательщика с кодом ID. | 3.3.0
Add | Метод добавляет новый тип плательщика с параметрами из массива arFields. | 3.3.5


Add

Интернет-магазин>Классы>CSalePersonType>Add (доступен с 3.3.5)

CSalePersonType::Add

Int
CSalePersonType::Add(
  array arFields
);

Метод добавляет новый тип плательщика с параметрами из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров нового типа плательщиков, ключами в котором являются названия параметров, а значениями - соответствующие значения.
Допустимые ключи:
  • LID - код сайта, к которому привязан тип плательщика. (Может быть массивом сайтов);
  • NAME - название типа плательщика;
  • SORT - индекс сортировки.
  • ACTIVE - флаг активности пользователя [Y|N] .

Возвращаемые значения

Возвращается код добавленного типа плательщика или false - в случае ошибки.


Delete

Интернет-магазин>Классы>CSalePersonType>Delete (доступен с 3.3.0)

CSalePersonType::Delete

bool
CSalePersonType::Delete(
  int ID
);

Метод удаляет тип плательщика с кодом ID. Так же удаляются все связанные данные. Если есть заказы, привязанные к этому типу плательщика, то тип плательщика не может быть удален. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код типа плательщика.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


GetByID

Интернет-магазин>Классы>CSalePersonType>GetByID (доступен с 3.3.0)

CSalePersonType::GetByID

Описание и параметры

array
CSalePersonType::GetByID(
  int ID
);

Метод возвращает параметры типа плательщика с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код типа плательщика.

Возвращаемые значения

Возвращается ассоциативный массив параметров типа плательщика с ключами:

Ключ | Описание
ID | Код типа плательщика.
LID | Код сайта.
NAME | Название типа плательщика.
SORT | Индекс сортировки.
ACTIVE | Флаг активности пользователя [Y|N]..

Пример использования

<?
if ($arPersType = CSalePersonType::GetByID($PERSON_TYPE_ID))
{
   echo "<pre>";
   print_r($arPersType);
   echo "</pre>";
}
?>


GetList

Интернет-магазин>Классы>CSalePersonType>GetList (доступен с 3.3.0)

CSalePersonType::GetList

Описание и параметры

CDBResult
CSalePersonType::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из типов плательщика в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле типов плательщика, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи типов плательщика. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле типов плательщика.
Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи типов плательщика. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле типов плательщика. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Этот фильтр означает "выбрать все записи, в которых значение в поле LID (сайт системы) не равно en".

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров типов плательщиков с ключами:

Ключ | Описание
ID | Код типа плательщика.
LID | Код сайта.
LIDS | Фильтрация/выборка всех сайтов, к которым привязан тип плательщика.
NAME | Название типа плательщика.
SORT | Индекс сортировки.
ACTIVE | Флаг активности пользователя [Y|N].

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Выведем переключатели для выбора типа плательщика для текущего сайта
$db_ptype = CSalePersonType::GetList(Array("SORT" => "ASC"), Array("LID"=>SITE_ID));
$bFirst = True;
while ($ptype = $db_ptype->Fetch())
{
   ?><input type="radio" name="PERSON_TYPE" value="<?echo $ptype["ID"] ?>"<?if ($bFirst) echo " checked";?>><?echo $ptype["NAME"] ?><br><?
   $bFirst = false;
}
?>


Update

Интернет-магазин>Классы>CSalePersonType>Update (доступен с 3.3.0)

CSalePersonType::Update

int
CSalePersonType::Update(
  int ID,
  array arFields
);

Метод обновляет параметры типа плательщика с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код типа плательщика.
arFields Ассоциативный массив новых параметров типа плательщиков, ключами в котором являются названия параметров, а значениями - соответствующие значения.

Допустимые ключи:
  • LID - код сайта, к которому привязан тип плательщика (Может быть массивом сайтов);
  • NAME - название типа плательщика;
  • SORT - индекс сортировки.
  • ACTIVE - флаг активности пользователя [Y|N] .

Возвращаемые значения

Возвращается код обновленного типа плательщика или false - в случае ошибки.


Класс CSaleRecurring

Методы класса

Метод | Описание | С версии
Update | Метод изменяет параметры записи на продление подписки в соответствии с параметрами из массива arFields. | 4.0.6
Add | Метод добавляет новую запись на продление подписки в соответствии с параметрами из массива arFields. | 4.0.6
Delete | Метод удаляет запись на продление подписки с кодом ID. | 4.0.6
CheckRecurring | Метод ищет подписки, которые пора продлить, и пытается осуществить продление. | 4.0.6
NextPayment | Метод осуществляет продление подписки с кодом ID. | 4.0.6
CancelRecurring | Метод осуществляет отмену продления подписки с кодом ID. | 4.0.6
GetList | Метод возвращает результат выборки записей информации и продлении подписки в соответствии со своими параметрами. | 4.0.6
GetByID | Метод возвращает параметры информации о продлении с кодом ID. | 4.0.6


Add

Интернет-магазин>Классы>CSaleRecurring>Add (доступен с 4.0.6)

CSaleRecurring::Add

int
CSaleRecurring::Add(
 array arFields
);

Метод добавляет новую запись на продление подписки в соответствии с параметрами из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров новой записи продления подписки с ключами:
  • USER_ID - код пользователя;
  • MODULE - модуль, товар которого продлевается;
  • PRODUCT_ID - код продлеваемого товара;
  • PRODUCT_NAME - название продлеваемого товара;
  • PRODUCT_URL - ссылка на продлеваемый товар;
  • RECUR_SCHEME_TYPE - тип периода оплаты;
  • RECUR_SCHEME_LENGTH - длина периода оплаты;
  • WITHOUT_ORDER - флаг "Без оформления заказа";
  • ORDER_ID - код базового заказа для продления;
  • CANCELED - флаг отмены продления;
  • DESCRIPTION - описание;
  • CALLBACK_FUNC - функция обратного вызова для обновления параметров продления;
  • REMAINING_ATTEMPTS - количество оставшихся попыток осуществления продления;
  • SUCCESS_PAYMENT - успешное осуществление продления;
  • CANCELED_REASON - причина отмены;
  • DATE_CANCELED - дата отмены;
  • PRIOR_DATE - дата последнего продления;
  • NEXT_DATE - дата очередного продления.

Возвращаемые значения

Метод возвращает код добавленной записи или false в случае ошибки.


CancelRecurring

Интернет-магазин>Классы>CSaleRecurring>CancelRecurring (доступен с 4.0.6)

CSaleRecurring::CancelRecurring

bool
CSaleRecurring::CancelRecurring(
 int ID
 string val[,
 string description = ""]
);

Метод осуществляет отмену продления подписки с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код записи с информацией о продлении.
val | "Y", если подписка отменяется, и "N", если подписка восстанавливается.
description | Причина отмены подписки.

Возвращаемые значения

Метод возвращает код отменяемой записи или false в случае ошибки.


CheckRecurring

Интернет-магазин>Классы>CSaleRecurring>CheckRecurring (доступен с 4.0.6)

CSaleRecurring::CheckRecurring

void
CSaleRecurring::CheckRecurring();

Метод ищет подписки, которые пора продлить, и пытается осуществить продление. За раз осуществляется продление не более трех подписок. Этот метод можно вызывать из агентов или cron'а для автоматического продления подписки. Нестатический метод.

Параметры вызова

Без параметров.

Возвращаемые значения

Метод не возвращает значений.


Delete

Интернет-магазин>Классы>CSaleRecurring>Delete (доступен с 4.0.6)

CSaleRecurring::Delete

bool
CSaleRecurring::Delete(
 int ID
);

Метод удаляет запись на продление подписки с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код удаляемой записи.

Возвращаемые значения

Метод возвращает true в случае успешного удаления или false в случае ошибки.


GetByID

Интернет-магазин>Классы>CSaleRecurring>GetByID (доступен с 4.0.6)

CSaleRecurring::GetByID

array
CSaleRecurring::GetByID(
 int ID
);

Метод возвращает параметры информации о продлении с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код записи с информацией о продлении.

Возвращаемые значения

Метод возвращает ассоциативный массив параметров информации о продлении с ключами:

  • ID - код записи;
  • USER_ID - код пользователя;
  • MODULE - модуль, товар которого продлевается;
  • PRODUCT_ID - код продлеваемого товара;
  • PRODUCT_NAME - название продлеваемого товара;
  • PRODUCT_URL - ссылка на продлеваемый товар;
  • RECUR_SCHEME_TYPE - тип периода оплаты;
  • RECUR_SCHEME_LENGTH - длина периода оплаты;
  • WITHOUT_ORDER - флаг "Без оформления заказа";
  • ORDER_ID - код базового заказа для продления;
  • CANCELED - флаг отмены продления;
  • DESCRIPTION - описание;
  • CALLBACK_FUNC - функция обратного вызова для обновления параметров продления;
  • REMAINING_ATTEMPTS - количество оставшихся попыток осуществления продления;
  • SUCCESS_PAYMENT - успешное осуществление продления;
  • CANCELED_REASON - причина отмены;
  • DATE_CANCELED - дата отмены;
  • PRIOR_DATE - дата последнего продления;
  • NEXT_DATE - дата очередного продления;
  • TIMESTAMP_X - дата последнего изменения записи.

Примечание: результат выполнения метода кешируется в рамках одной страницы. Поэтому повторные вызовы метода не влекут за собой дополнительных запросов к базе данных.


GetList

Интернет-магазин>Классы>CSaleRecurring>GetList (доступен с 4.0.6)

CSaleRecurring::GetList

Описание и параметры

CDBResult
CSaleRecurring::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей информации и продлении подписки в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле информации о продлении подписки, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи информации о продлении подписки. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений. Можно передавать и массив обычный, стандартно.
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле информации о продлении подписки.

Пример фильтра:
array("USER_ID" => 150)
Этот фильтр означает "выбрать все записи, в которых значение в поле USER_ID (код пользователя) равно 150".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи информации о продлении подписки. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле информации о продлении подписки. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров информации и продлении подписки.

  • ID - код записи;
  • USER_ID - код пользователя;
  • MODULE - модуль, товар которого продлевается;
  • PRODUCT_ID - код продлеваемого товара;
  • PRODUCT_NAME - название продлеваемого товара;
  • PRODUCT_URL - ссылка на продлеваемый товар;
  • RECUR_SCHEME_TYPE - тип периода оплаты;
  • RECUR_SCHEME_LENGTH - длина периода оплаты;
  • WITHOUT_ORDER - флаг "Без оформления заказа";
  • ORDER_ID - код базового заказа для продления;
  • CANCELED - флаг отмены продления;
  • DESCRIPTION - описание;
  • CALLBACK_FUNC - функция обратного вызова для обновления параметров продления;
  • REMAINING_ATTEMPTS - количество оставшихся попыток осуществления продления;
  • SUCCESS_PAYMENT - успешное осуществление продления;
  • CANCELED_REASON - причина отмены;
  • DATE_CANCELED - дата отмены;
  • PRIOR_DATE - дата последнего продления;
  • NEXT_DATE - дата очередного продления;
  • TIMESTAMP_X - дата последнего изменения записи;
  • USER_LOGIN - логин пользователя;
  • USER_ACTIVE - флаг активности пользователя;
  • USER_NAME - имя пользователя;
  • USER_LAST_NAME - фамилия пользователя;
  • USER_EMAIL - E-Mail пользователя.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.


NextPayment

Интернет-магазин>Классы>CSaleRecurring>NextPayment (доступен с 4.0.6)

CSaleRecurring::NextPayment

bool
CSaleRecurring::NextPayment(
 int ID
);

Метод осуществляет продление подписки с кодом ID. Нестатический метод.

Примечание: метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.

Параметры вызова

Параметр | Описание
ID | Код записи с информацией о продлении.

Возвращаемые значения

Метод возвращает true в случае успешного продления или false в случае ошибки.


Update

Интернет-магазин>Классы>CSaleRecurring>Update (доступен с 4.0.6)

CSaleRecurring::Update

int
CSaleRecurring::Update(
 int ID,
  array arFields

);

Метод изменяет параметры записи на продление подписки в соответствии с параметрами из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код изменяемой записи на продление подписки.
arFields Ассоциативный массив новых параметров новой записи продления подписки с ключами:
  • USER_ID - код пользователя;
  • MODULE - модуль, товар которого продлевается;
  • PRODUCT_ID - код продлеваемого товара;
  • PRODUCT_NAME - название продлеваемого товара;
  • PRODUCT_URL - ссылка на продлеваемый товар;
  • RECUR_SCHEME_TYPE - тип периода оплаты;
  • RECUR_SCHEME_LENGTH - длина периода оплаты;
  • WITHOUT_ORDER - флаг "Без оформления заказа";
  • ORDER_ID - код базового заказа для продления;
  • CANCELED - флаг отмены продления;
  • DESCRIPTION - описание;
  • CALLBACK_FUNC - функция обратного вызова для обновления параметров продления;
  • REMAINING_ATTEMPTS - количество оставшихся попыток осуществления продления;
  • SUCCESS_PAYMENT - успешное осуществление продления;
  • CANCELED_REASON - причина отмены;
  • DATE_CANCELED - дата отмены;
  • PRIOR_DATE - дата последнего продления;
  • NEXT_DATE - дата очередного продления.

Возвращаемые значения

Метод возвращает код измененной записи или False в случае ошибки.


Класс CSaleStatus

Методы класса

Метод | Описание | С версии
Add | Метод добавляет новый статус заказа с параметрами из массива arFields. | 3.3.0
Update | Метод изменяет параметры статуса заказа с кодом ID. | 3.3.0
Delete | Метод удаляет статус заказа с кодом ID. Если в базе есть заказы, находящиеся в этом статусе, то этот статус удалить нельзя. | 3.3.0
GetList | Метод возвращает результат выборки записей из статусов в соответствии со своими параметрами. | 3.3.0
GetByID | Метод возвращает параметры статуса с кодом ID, включая языкозависимые параметры для языка strLang. | 3.3.0


Add

Интернет-магазин>Классы>CSaleStatus>Add (доступен с 3.3.0)

CSaleStatus::Add

string
CSaleStatus::Add(
  array arFields
);

Метод добавляет новый статус заказа с параметрами из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров нового статуса. Ключами в массиве являются названия параметров статуса, а значениями - соответствующие значения.
Допустимые ключи:
  • ID - код статуса (обязательный), состоит из одной буквы;
  • SORT - индекс сортировки;
  • LANG - массив ассоциативных массивов языкозависимых параметров статуса с ключами:
    • LID - язык;
    • NAME - название статуса на этом языке;
    • DESCRIPTION - описание статуса;
  • PERMS - массив ассоциативных массивов прав на доступ к изменению заказа в данном статусе с ключами:
    • GROUP_ID - группа пользователей;
    • PERM_TYPE - тип доступа (S - разрешен перевод заказа в данный статус, M - разрешено изменение заказа в данном статусе).

Возвращаемые значения

Возвращается код добавленного статуса или false в случае ошибки.


Delete

Интернет-магазин>Классы>CSaleStatus>Delete (доступен с 3.3.0)

CSaleStatus::Delete

bool
CSaleStatus::Delete(
  string ID
);

Метод удаляет статус заказа с кодом ID. Если в базе есть заказы, находящиеся в этом статусе, то этот статус удалить нельзя. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код статуса заказа.

Возвращаемые значения

Возвращается true в случае успешного удаления и [dw]false[/dw][di]Самая вероятная причина - в базе есть заказы, в этом статусе.[/di] - в противном случае.


GetByID

Интернет-магазин>Классы>CSaleStatus>GetByID (доступен с 3.3.0)

CSaleStatus::GetByID

Описание и параметры

array
CSaleStatus::GetByID(
  string ID,
  string strLang = LANGUAGE_ID
);

Метод возвращает параметры статуса с кодом ID, включая языкозависимые параметры для языка strLang. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код статуса заказа.
strLang | Язык, для которого возвращаются языкозависимые параметры. По умолчанию используется текущий язык.

Возвращаемые значения

Возвращается ассоциативный массив параметров статуса с ключами:

Ключ | Описание
ID | Код статуса заказа.
SORT | Индекс сортировки.
LID | Язык.
NAME | Название статуса.
DESCRIPTION | Описание статуса.

Пример использования

<?
if ($arStatus = CSaleStatus::GetByID($STATUS_ID))
{
   echo "<pre>";
   print_r($arStatus);
   echo "</pre>";
}
?>


GetList

Интернет-магазин>Классы>CSaleStatus>GetList (доступен с 3.3.0)

CSaleStatus::GetList

Описание и параметры

CDBResult
CSaleStatus::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из статусов в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле статусов, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи статусов. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле типов плательщика.

Пример фильтра:
array("LID" => "en")
Этот фильтр означает "выбрать все записи, в которых значение в поле LID (код сайта) равно en".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи статусов. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле статусов. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Этот фильтр означает "выбрать все записи, в которых значение в поле LID (сайт системы) не равно en".

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы параметров статусов с ключами:

Ключ | Описание
ID | Код статуса заказа.
SORT | Индекс сортировки.
LID | Язык.
NAME | Название статуса.
DESCRIPTION | Описание статуса.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.


Update

Интернет-магазин>Классы>CSaleStatus>Update (доступен с 3.3.0)

CSaleStatus::Update

string
CSaleStatus::Update(
  string ID,
  array arFields
);

Метод изменяет параметры статуса заказа с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код статуса.
arFields Ассоциативный массив новых параметров статуса. Ключами в массиве являются названия параметров статуса, а значениями - соответствующие значения.
Допустимые ключи:
  • ID - код статуса (обязательный);
  • SORT - индекс сортировки;
  • LANG - массив ассоциативных массивов языкозависимых параметров статуса с ключами:
    • LID - язык;
    • NAME - название статуса на этом языке;
    • DESCRIPTION - описание статуса;
  • PERMS - массив ассоциативных массивов прав на доступ к изменению заказа в данном статусе с ключами:
    • GROUP_ID - группа пользователей;
    • PERM_TYPE - тип доступа (S - разрешен перевод заказа в данный статус, M - разрешено изменение заказа в данном статусе).

Возвращаемые значения

Возвращается код добавленного статуса или false в случае ошибки.


Класс CSaleTax

Методы класса

Метод | Описание | С версии
Update | Метод обновляет параметры налога с кодом ID. | 3.3.1
Delete | Метод удаляет налог с кодом ID. | 3.3.1
GetByID | Метод возвращает параметры налога с кодом ID. | 3.3.1
GetList | Метод возвращает набор налогов, удовлетворяющих фильтру arFilter. | 3.3.1
GetExemptList | Метод возвращает набор записей из таблицы освобождений от уплаты налогов, удовлетворяющих фильтру arFilter. | 3.3.1
AddExempt | Метод добавляет новую запись в таблицу освобождения от налогов. | 3.3.1
DeleteExempt | Метод удаляет записи, удовлетворяющие фильтру arFilter, из таблицы освобождений от уплаты налогов. | 3.3.1
Add | Метод добавляет новый налог с параметрами из массива arFields. | 3.3.1


Add

Интернет-магазин>Классы>CSaleTax>Add (доступен с 3.3.1)

CSaleTax::Add

int
CSaleTax::Add(
  array arFields
);

Метод добавляет новый налог с параметрами из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров нового налога, ключами в котором являются названия параметров, а значениями - соответствующие значения.

Допустимые параметры:
  • LID - сайт;
  • NAME - название налога;
  • DESCRIPTION - описание;
  • CODE - символьный код.

Возвращаемые значения

Возвращается код добавленного налога или false в случае ошибки.


AddExempt

Интернет-магазин>Классы>CSaleTax>AddExempt (доступен с 3.3.1)

CSaleTax::AddExempt

bool
CSaleTax::AddExempt(
  array arFields
);

Метод добавляет новую запись в таблицу освобождения от налогов. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров новой записи с ключами:
  • GROUP_ID - код группы пользователей, которая освобождается от уплаты налога;
  • TAX_ID - код налога, от уплаты которого освобождается группа пользователей.

Возвращаемые значения

Возвращается true в случае успешного добавления и false - в противном случае.


Delete

Интернет-магазин>Классы>CSaleTax>Delete (доступен с 3.3.1)

CSaleTax::Delete

bool
CSaleTax::Delete(
  int ID
);

Метод удаляет налог с кодом ID. Также удаляются ставки этого налога и освобождения от уплаты налога, относящиеся к этому налогу. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код налога.

Возвращаемые значения

Возвращается true в случае успешного добавления и false - в противном случае.


DeleteExempt

Интернет-магазин>Классы>CSaleTax>DeleteExempt (доступен с 3.3.1)

CSaleTax::DeleteExempt

bool
CSaleTax::DeleteExempt(
  array arFields
);

Метод удаляет записи, удовлетворяющие фильтру arFilter, из таблицы освобождений от уплаты налогов. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив условий для удаления записей. Ключами в массиве могут быть:
  • GROUP_ID - код группы пользователей, члены которой освобождены от уплаты налога;
  • TAX_ID - код налога, от уплаты которого освобождается группа пользователей.
В массиве должен присутствовать хотя бы один ключ.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае.


GetByID

Интернет-магазин>Классы>CSaleTax>GetByID (доступен с 3.3.1)

CSaleTax::GetByID

Описание и параметры

array
CSaleTax::GetByID(
  int ID
);

Метод возвращает параметры налога с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код налога.

Возвращаемые значения

Возвращается ассоциативный массив параметров налога с ключами:

Ключ | Описание
ID | Код налога.
LID | Сайт.
NAME | Название налога.
CODE | Символьный код налога.
DESCRIPTION | Описание налога.
TIMESTAMP_X | Дата последнего изменения записи.

Пример использования

<?
// Выведем параметры налога с кодом $TAX_ID
if ($arTax = CSaleTax::GetByID($TAX_ID))
{
   echo "<pre>";
   print_r($arTax);
   echo "</pre>";
}
?>


GetExemptList

Интернет-магазин>Классы>CSaleTax>GetExemptList (доступен с 3.3.1)

CSaleTax::GetExemptList

Описание и параметры

CDBResult
CSaleTax::GetExemptList(
  array arFilter = array()
);

Метод возвращает набор записей из таблицы освобождений от уплаты налогов, удовлетворяющих фильтру arFilter. Нестатический метод.

Параметры вызова

Параметр Описание
arFilter Ассоциативный массив для фильтрации записей. Ключами являются названия фильтруемых параметров, а значениями - условия на значения.

Допустимые ключи:
  • GROUP_ID - код группы пользователей, которая освобождается от уплаты налога;
  • TAX_ID - код налога, от уплаты которого освобождается группа пользователей.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы параметров налогов с ключами:

Ключ | Описание
GROUP_ID | Код группы пользователей, которая освобождается от уплаты налога.
TAX_ID | Код налога, от уплаты которого освобождается группа пользователей.

Пример использования

<?
// Заполним массив налогов, от уплаты которых освобожден текущий пользователь
$arTaxExempt = array();
if ($USER->IsAuthorized())
{
   $arUserGroups = $USER->GetUserGroupArray();
   for ($ig = 0; $ig < count($arUserGroups); $ig++)
   {
      $db_tax_ex_tmp = CSaleTax::GetExemptList(Array("GROUP_ID"=>$arUserGroups[$ig]));
      while ($ar_tax_ex_tmp = $db_tax_ex_tmp->Fetch())
      {
         if (!in_array(IntVal($ar_tax_ex_tmp["TAX_ID"]), $arTaxExempt))
         {
            $arTaxExempt[] = IntVal($ar_tax_ex_tmp["TAX_ID"]);
         }
      }
   }
}
?>


GetList

Интернет-магазин>Классы>CSaleTax>GetList (доступен с 3.3.1)

CSaleTax::GetList

Описание и параметры

CDBResult
CSaleTax::GetList(
  array arOrder = Array("NAME"=>"ASC"),
  array arFilter = Array()
);

Метод возвращает набор налогов, удовлетворяющих фильтру arFilter. Результирующий набор упорядочен в соответствии с массивом arOrder. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Ассоциативный массив условий сортировки. Каждая пара ключ-значение массива применяется последовательно. Ключами являются названия параметров, по значениям которых осуществляется сортировка, а значениями - направления сортировки.

Допустимые ключи:
  • NAME - название налога;
  • ID - код налога;
  • LID - сайт;
  • CODE - символьный код налога;
  • TIMESTAMP_X - дата последнего изменения записи.
arFilter Ассоциативный массив для фильтрации налогов. Ключами являются названия фильтруемых параметров, а значениями - условия на значения.

Допустимые ключи:
  • ID - код налога;
  • LID - сайт;
  • CODE - символьный код налога.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы параметров налогов с ключами:

Ключ | Описание
ID | Код налога.
LID | Сайт.
NAME | Название налога.
CODE | Символьный код налога.
DESCRIPTION | Описание налога.
TIMESTAMP_X | Дата последнего изменения записи.


Update

Интернет-магазин>Классы>CSaleTax>Update (доступен с 3.3.1)

CSaleTax::Update

int
CSaleTax::Update(
  int ID,
  array arFields
);

Метод обновляет параметры налога с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код налога.
arFields Ассоциативный массив новых параметров налога, ключами в котором являются названия параметров, а значениями - соответствующие значения.

Допустимые параметры:
  • LID - сайт;
  • NAME - название налога;
  • DESCRIPTION - описание;
  • CODE - символьный код.

Возвращаемые значения

Метод возвращает код измененного налога или false в случае ошибки.


Класс CSaleTaxRate

Методы класса

Метод | Описание | С версии
Update | Метод изменяет параметры ставки налога с кодом ID. | 3.3.1
Delete | Метод удаляет ставку налога с кодом ID. | 3.3.1
GetByID | Метод возвращает параметры ставки налога с кодом ID. | 3.3.1
Add | Метод добавляет новую ставку налога с параметрами из массива arFields. | 3.3.1
GetList | Метод возвращает набор ставок налога, удовлетворяющих фильтру arFilter. Набор упорядочен в соответствии с массивом arOrder. | 3.3.1


Add

Интернет-магазин>Классы>CSaleTaxRate>Add (доступен с 3.3.1)

CSaleTaxRate::Add

int
CSaleTaxRate::Add(
  array arFields
);

Метод добавляет новую ставку налога с параметрами из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров новой ставки налога. Ключами являются названия параметров ставки, а значениями - соответствующие значения.
Допустимые ключи:
  • TAX_ID - код налога;
  • PERSON_TYPE_ID - тип плательщика;
  • VALUE - величина налога (в процентах);
  • CURRENCY - валюта;
  • IS_PERCENT - всегда значение "Y";
  • IS_IN_PRICE - налог уже включен в цену товара;
  • APPLY_ORDER - порядок применения;
  • ACTIVE - флаг (Y/N) активности налога;
  • TAX_LOCATION - массив для указания местоположений и групп местоположений, для которых действует эта ставка. Каждый элемент массива представляет собой ассоциативный массив с ключами:
    • LOCATION_ID - код местоположения или группы местоположений;
    • LOCATION_TYPE - "L" для местоположения и "G" для группы местоположений.

Возвращаемые значения

Возвращается код добавленной ставки налога или false в случае ошибки.


Delete

Интернет-магазин>Классы>CSaleTaxRate>Delete (доступен с 3.3.1)

CSaleTaxRate::Delete

bool
CSaleTaxRate::Delete(
  int ID
);

Метод удаляет ставку налога с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код ставки налога.

Возвращаемые значения

Возвращается true в случае успешного удаления и false в противном случае.


GetByID

Интернет-магазин>Классы>CSaleTaxRate>GetByID (доступен с 3.3.1)

CSaleTaxRate::GetByID

array
CSaleTaxRate::GetByID(
  int ID
);

Метод возвращает параметры ставки налога с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код ставки налога.

Возвращаемые значения

Возвращается ассоциативный массив параметров ставки налога с ключами

Ключ | Описание
ID | Код ставки налога.
TAX_ID | Код налога.
PERSON_TYPE_ID | Тип плательщика.
VALUE | Величина налога (в процентах)
CURRENCY | Валюта.
IS_PERCENT | Y
IS_IN_PRICE | Флаг (Y/N) входит ли уже налог в цену.
APPLY_ORDER | Порядок применения.
TIMESTAMP_X | Дата последнего изменения записи.
ACTIVE | Флаг (Y/N) активности ставки.


GetList

Интернет-магазин>Классы>CSaleTaxRate>GetList (доступен с 3.3.1)

CSaleTaxRate::GetList

Описание и параметры

CDBResult
CSaleTaxRate::GetList(
  array arOrder = array("APPLY_ORDER"=>"ASC"),
  array arFilter = array()
);

Метод возвращает набор ставок налога, удовлетворяющих фильтру arFilter. Набор упорядочен в соответствии с массивом arOrder. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Ассоциативный массив для сортировки результирующего набора ставок налогов. Набор сортируется последовательно по каждой паре ключ-значение массива. Ключами массива являются названия параметров ставки налога, по значениям которых осуществляется сортировка. Значениями являются направления сортировки.

Допустимые ключи:
  • APPLY_ORDER - порядок применения;
  • ID - код ставки налога;
  • LID - сайт налога;
  • CODE - символьный код налога;
  • TIMESTAMP_X - дата последнего изменения параметров ставки;
  • ACTIVE - флаг (Y/N) активности ставки;
  • NAME - название налога;
  • PERSON_TYPE_ID - тип плательщика ставки;
  • IS_IN_PRICE - флаг (Y/N) входит ли ставка налога в цену
Допустимые значения:
  • ASC - по возрастанию;
  • DESC - по убыванию.
arFilter Ассоциативный массив условий для отбора (фильтрации) ставок налогов. Ключами являются названия фильтруемых параметров ставки налога, а значениями - условия на значения.

Допустимые ключи:
  • ID - код ставки налога;
  • LID - сайт налога;
  • CODE - символьный код налога;
  • TAX_ID - код налога;
  • PERSON_TYPE_ID - тип плательщика ставки налога;
  • IS_IN_PRICE - флаг (Y/N) входит ли налог в цену;
  • ACTIVE - флаг (Y/N) активности ставки налога;
  • APPLY_ORDER - порядок применения;
  • LOCATION - код местоположения, в котором действует ставка.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы параметров ставок налогов с ключами:

Ключ | Описание
ID | Код ставки налога.
TAX_ID | Код налога.
PERSON_TYPE_ID | Тип плательщика.
VALUE | Величина налога (в процентах)
CURRENCY | Валюта.
IS_PERCENT | Y
IS_IN_PRICE | Флаг (Y/N) входит ли уже налог в цену.
APPLY_ORDER | Порядок применения.
TIMESTAMP_X | Дата последнего изменения записи.
LID | Сайт налога.
NAME | Название налога.
CODE | Символьный код налога.
DESCRIPTION | Описание налога.
ACTIVE | Флаг (Y/N) активности ставки.

Пример использования

<?
// Заполним массив активных ставок налогов на текущем сайте для типа плательщика
// с кодом $PERSON_TYPE и местоположением плательщика с кодом $TAX_LOCATION

$arTaxList = array();

$arTaxFilter = array(
   "LID" => SITE_ID,
   "PERSON_TYPE_ID" => $PERSON_TYPE,
   "ACTIVE" => "Y",
   "LOCATION" => $TAX_LOCATION
);

$db_tax_rate_tmp = CSaleTaxRate::GetList(array("APPLY_ORDER"=>"ASC"), $arTaxFilter);
while ($ar_tax_rate_tmp = $db_tax_rate_tmp->Fetch())
{
   $arTaxList[] = $ar_tax_rate_tmp;
}
?>


Update

Интернет-магазин>Классы>CSaleTaxRate>Update (доступен с 3.3.1)

CSaleTaxRate::Update

int
CSaleTaxRate::Update(
  int ID,
  array arFields
);

Метод изменяет параметры ставки налога с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код ставки налога.
arFields Ассоциативный массив новых параметров ставки налога. Ключами являются названия параметров ставки, а значениями - соответствующие значения.

Допустимые ключи:
  • TAX_ID - код налога;
  • PERSON_TYPE_ID - тип плательщика;
  • VALUE - величина налога (в процентах);
  • CURRENCY - валюта;
  • IS_PERCENT - всегда значение "Y";
  • IS_IN_PRICE - налог уже включен в цену товара;
  • APPLY_ORDER - порядок применения;
  • ACTIVE - флаг (Y/N) активности налога;
  • TAX_LOCATION - массив для указания местоположений и групп местоположений, для которых действует эта ставка. Каждый элемент массива представляет собой ассоциативный массив с ключами:
    • LOCATION_ID - код местоположения или группы местоположений;
    • LOCATION_TYPE - "L" для местоположения и "G" для группы местоположений.

Возвращаемые значения

Возвращается код измененной ставки налога или false в случае ошибки.


Класс CSaleUser

Методы класса

Метод | Описание | С версии
DeleteOldAgent | Метод вызывает агент, который по истечении периода nDays, очищает корзины пользователей. | 3.2.3


DeleteOldAgent

Интернет-магазин>Классы>CSaleUser>DeleteOldAgent (доступен с 3.2.3)

CSaleUser::DeleteOldAgent

CSaleUser::DeleteOldAgent(
 int nDays,
 int speed = 0
);

Метод вызывает агент, который по истечении периода nDays, очищает корзины пользователей. Нестатический метод.

Параметры вызова

Параметр | Описание | С версии
nDays | Период времени (в днях), в течение которого корзина, сформированная покупателем, будет сохраняться в системе. |
speed | Интервал вызова агента очистки корзин, заданный в секундах. Необязательный параметр. | 14.0.4

Возвращаемое значение

Нет.


Класс CSaleUserAccount

Методы класса

Метод | Описание | С версии
Delete | Метод удаляет внутренний счет пользователя. | 4.0.6
Pay | Метод снимает указанную сумму с внутреннего счета пользователя. | 4.0.6
Withdraw | Метод снимает указанную сумму с внутреннего счета пользователя. | 4.0.6
UpdateAccount | Метод изменяет сумму на счете пользователя с кодом userID. | 4.0.6
GetByID | Метод возвращает ассоциативный массив параметров счета с кодом ID. | 4.0.6
GetByUserID | Метод возвращает ассоциативный массив параметров счета с валютой currency для пользователя с кодом userID. | 4.0.6
GetList | Метод возвращает результат выборки записей счетов в соответствии со своими параметрами. | 4.0.6
Add | Метод добавляет новый счет пользователя в соответствии с параметрами из массива arFields. | 4.0.6
Update | Метод изменяет параметры счета пользователя в соответствии с параметрами из массива arFields. | 4.0.6


Add

Интернет-магазин>Классы>CSaleUserAccount>Add (доступен с 4.0.6)

CSaleUserAccount::Add

Описание и параметры

int
CSaleUserAccount::Add(
 array arFields
);

Метод добавляет новый счет пользователя в соответствии с параметрами из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров нового счета. Может содержать следующие ключи:
  • USER_ID - код пользователя-владельца
  • CURRENT_BUDGET - текущая сумма на счете
  • CURRENCY - валюта
  • NOTES - текстовое описание
  • LOCKED - флаг заблокированности счета
  • DATE_LOCKED - дата блокировки счета

Возвращаемые значения

Метод возвращает код добавленного счета или false в случае ошибки.

Примеры использования

if($USER->IsAuthorized())
{
$user_id = $USER->GetID();
$arFields = Array("USER_ID" => $user_id, "CURRENCY" => "USD", "CURRENT_BUDGET" => 0);
$accountID = CSaleUserAccount::Add($arFields);
}

Создание счета для текущего пользователя

if(!CSaleUserAccount::GetByUserID($USER->GetID(), "RUB")){
   $arFields = Array("USER_ID" => $USER->GetID(), "CURRENCY" => "RUB", "CURRENT_BUDGET" => 0);
   CSaleUserAccount::Add($arFields);
}


Delete

Интернет-магазин>Классы>CSaleUserAccount>Delete (доступен с 4.0.6)

CSaleUserAccount::Delete

bool
CSaleUserAccount::Delete(
 int ID
);

Метод удаляет внутренний счет пользователя. Нестатический метод.

Примечание: Учитывайте, что при удалении счета удаляются записи о транзакциям по нему.

Параметры вызова

Параметр | Описание
ID | Код удаляемого счета.

Возвращаемые значения

Метод возвращает true в случае успешного удаления и false в случае ошибки. Возвращает или объект или false если id<=0 или если событие отменяет удаление.


GetByID

Интернет-магазин>Классы>CSaleUserAccount>GetByID (доступен с 4.0.6)

CSaleUserAccount::GetByID

Описание и параметры

array
CSaleUserAccount::GetByID(
 int ID
);

Метод возвращает ассоциативный массив параметров счета с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код счета.

Возвращаемые значения

Метод возвращает ассоциативный массив параметров счета с ключами:

  • ID - код счета;
  • USER_ID - код пользователя-владельца;
  • CURRENT_BUDGET - текущая сумма на счете;
  • CURRENCY - валюта;
  • NOTES - текстовое описание;
  • LOCKED - флаг заблокированности счета;
  • TIMESTAMP_X - дата последнего изменения;
  • DATE_LOCKED - дата блокировки счета.

Примечание: результат выполнения метода кешируется в рамках страницы, поэтому повторный вызов метода на одной странице не влечет за собой дополнительных обращений к базе данных.

Пример использования

<? if ($ar = CSaleUserAccount::GetByID(5))
{ echo "На счете ".SaleFormatCurrency($ar["CURRENT_BUDGET"],
                                      $ar["CURRENCY"]); } ?>


GetByUserID

Интернет-магазин>Классы>CSaleUserAccount>GetByUserID (доступен с 4.0.6)

CSaleUserAccount::GetByUserID

Описание и параметры

array
CSaleUserAccount::GetByUserID(
 int userID,
 string currency
);

Метод возвращает ассоциативный массив параметров счета с валютой currency для пользователя с кодом userID. Нестатический метод.

Параметры вызова

Параметр | Описание
userID | Код пользователя.
currency | Валюта счета.

Возвращаемые значения

Метод возвращает ассоциативный массив параметров счета с ключами:

  • ID - код счета;
  • USER_ID - код пользователя-владельца;
  • CURRENT_BUDGET - текущая сумма на счете;
  • CURRENCY - валюта;
  • NOTES - текстовое описание;
  • LOCKED - флаг заблокированности счета;
  • TIMESTAMP_X - дата последнего изменения;
  • DATE_LOCKED - дата блокировки счета.

Примечание: результат выполнения метода кешируется в рамках страницы, поэтому повторный вызов метода на одной странице не влечет за собой дополнительных обращений к базе данных.

Пример использования

<? if ($ar = CSaleUserAccount::GetByUserID(172, "USD"))
 { echo "На счете ".SaleFormatCurrency($ar["CURRENT_BUDGET"], $ar["CURRENCY"]); } ?>


GetList

Интернет-магазин>Классы>CSaleUserAccount>GetList (доступен с 4.0.6)

CSaleUserAccount::GetList

Описание и параметры

CDBResult
CSaleUserAccount::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей счетов в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле счетов, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи счетов. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле заказов.

Пример фильтра:
array("USER_ID" => 150)
Этот фильтр означает "выбрать все записи, в которых значение в поле USER_ID (код пользователя) равно 150".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи счетов. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", ...)
В качестве "название_поляN" может стоять любое поле счетов. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров счетов:

  • ID - код счета;
  • USER_ID - код пользователя-владельца;
  • CURRENT_BUDGET - текущая сумма на счете;
  • CURRENCY - валюта;
  • NOTES - текстовое описание;
  • LOCKED - флаг заблокированности счета;
  • TIMESTAMP_X - дата последнего изменения;
  • DATE_LOCKED - дата блокировки счета Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

<?
// Выберем все счета (в разных валютах) пользователя с кодом 21
$dbAccountCurrency = CSaleUserAccount::GetList(
        array(),
        array("USER_ID" => "21"),
        false,
        false,
        array("CURRENT_BUDGET", "CURRENCY")
    );
while ($arAccountCurrency = $dbAccountCurrency->Fetch())
{
    echo "На счете ".$arAccountCurrency["CURRENCY"].": ";
    echo SaleFormatCurrency($arAccountCurrency["CURRENT_BUDGET"],
                            $arAccountCurrency["CURRENCY"])."<br>";
}

// Выберем, сумму счетов покупателей (сколько должен магазин покупателям)
$dbAccountCurrency = CSaleUserAccount::GetList(
        array("CURRENCY" => "ASC"),
        array(),
        array("CURRENCY", "SUM" => "CURRENT_BUDGET"),
        false,
        array("CURRENCY", "SUM" => "CURRENT_BUDGET")
    );
while ($arAccountCurrency = $dbAccountCurrency->Fetch())
{
    echo "В валюте ".$arAccountCurrency["CURRENCY"].": ";
    echo SaleFormatCurrency($arAccountCurrency["CURRENT_BUDGET"],
                            $arAccountCurrency["CURRENCY"])."<br>";
}
?>


Pay

Интернет-магазин>Классы>CSaleUserAccount>Pay (доступен с 4.0.6)

CSaleUserAccount::Pay

Описание и параметры

bool
CSaleUserAccount::Pay(
 int userID,
 double paySum,
 string payCurrency[,
 int orderID = 0[,
 bool useCC = True]]
);

Метод снимает указанную сумму с внутреннего счета пользователя. Если на внутреннем счете не достаточно средств, то делается попытка снять дополнительные средства с пластиковой карточки пользователя. Нестатический метод.

Параметры вызова

Параметр | Описание
userID | Код пользователя.
paySum | Снимаемая сумма.
payCurrency | Валюта снимаемой суммы.
orderID | Код заказа, если снятие денег относится к заказу.
useCC | Если true, то система пробует снять деньги с пластиковой карты пользователя при недостаточности средств на внутреннем счете. Если false, то пластиковая карта пользователя не задействуется.

Возвращаемые значения

Метод возвращает true в случае успешного снятия денег с внутреннего счета пользователя и false в случае невозможности снять указанную сумму.

Примечание: деньги снимаются только со счета той же валюты, которая передается параметром в метод. Счета пользователя в другой валюте не затрагиваются.

Пример использования

<?
// Снимем с рублевого счета текущего пользователя 3 рубля в счет оплаты заказа номер 21
$bSuccessPayment = CSaleUserAccount::Pay(
        $USER->GetID(),
        3,
        "RUR",
        21,
        False
    );
if ($bSuccessPayment)
    echo "Сумма для оплаты счета успешно снята";
?>


Update

Интернет-магазин>Классы>CSaleUserAccount>Update (доступен с 4.0.6)

CSaleUserAccount::Update

int
CSaleUserAccount::Update(
 int ID,
 array arFields
);

Метод изменяет параметры счета пользователя в соответствии с параметрами из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код изменяемого счета.
arFields Ассоциативный массив новых параметров счета. Может содержать следующие ключи:
  • USER_ID - код пользователя-владельца;
  • CURRENT_BUDGET - текущая сумма на счете;
  • CURRENCY - валюта;
  • NOTES - текстовое описание;
  • LOCKED - флаг заблокированности счета;
  • DATE_LOCKED - дата блокировки счета.

Возвращаемые значения

Метод возвращает код измененного счета или false в случае ошибки.


UpdateAccount

Интернет-магазин>Классы>CSaleUserAccount>UpdateAccount (доступен с 4.0.6)

CSaleUserAccount::UpdateAccount

Описание и параметры

int
CSaleUserAccount::UpdateAccount(
 int userID,
 double sum,
 string currency[,
 string description = ""[,
 int orderID = 0[,
 string notes = ""]]]
);

Метод изменяет сумму на счете пользователя с кодом userID. Метод статический.

Параметры вызова

Параметр | Описание
userID | Код пользователя.
sum | Величина изменения суммы на счете. Для увеличения суммы на счете величина должна быть со знаком "+" или без знака, а для уменьшения - со знаком "-".
currency | Валюта суммы.
description | Описание причины изменения суммы.
orderID | Код заказа, если изменение суммы относится к заказу.
notes | Произвольное текстовое описание.

Возвращаемые значения

Метод возвращает код пользовательского счета или false в случае ошибки.

Замечания:
  • Деньги снимаются только со счета той же валюты, которая передается параметром в метод. Счета пользователя в другой валюте не затрагиваются.
  • Если счета в данной валюте раньше у пользователя не было, то он автоматически создастся (и будет возвращен код созданного счета).

Пример использования

<?
// Напишем функцию обратного вызова, которая будет вызываться при изменении
// флага "Доставка разрешена" заказа и добавлять (или снимать) 100 USD на счет

function MyDeliveryOrderCallback($productID, $userID, $bPaid, $orderID)
{
    global $DB;

    // Обработаем входные параметры
    $productID = IntVal($productID);    // Код заказанного товара
    $userID = IntVal($userID);  // Код пользователя-покупателя
    $bPaid = ($bPaid ? True : False);   // Устанавливается или снимается флаг доставки
    $orderID = IntVal($orderID);    // Код заказа

    if ($userID <= 0)
        return False;

    if ($orderID <= 0)
        return False;

    // Внесем (снимем) деньги на счет
    if (!CSaleUserAccount::UpdateAccount(
            $userID,
            ($bPaid ? 100 : -100),
            "USD",
            "MANUAL",
            $orderID
        ))
        return False;

    return True;
}
?>


Withdraw

Интернет-магазин>Классы>CSaleUserAccount>Withdraw (доступен с 4.0.6)

CSaleUserAccount::Withdraw

Описание и параметры

double
CSaleUserAccount::Withdraw(
 int userID,
 double paySum,
 string payCurrency[,
 int orderID = 0]
);

Метод снимает указанную сумму с внутреннего счета пользователя. Если на внутреннем счете не достаточно средств, то снимается максимально доступная сумма (т.е. все доступные средства). Нестатический метод.

Параметры вызова

Параметр | Описание
userID | Код пользователя.
paySum | Снимаемая сумма.
payCurrency | Валюта снимаемой суммы.
orderID | Код заказа, если снятие денег относится к заказу.

Возвращаемые значения

Метод возвращает реально снятую со счета сумму или false в случае ошибки.

Замечание: деньги снимаются только со счета той же валюты, которая передается параметром в метод. Счета пользователя в другой валюте не затрагиваются.

Пример использования

<?
// Оплатим полностью или хотя бы частично заказ номер 21 со счета пользователя

$arOrder = CSaleOrder::GetByID(21);

$withdrawSum = CSaleUserAccount::Withdraw(
        $arOrder["USER_ID"],
        $arOrder["PRICE"],
        $arOrder["CURRENCY"],
        $arOrder["ID"]
    );

if ($withdrawSum > 0)
{
    $arFields = array(
            "SUM_PAID" => $withdrawSum,
            "USER_ID" => $arOrder["USER_ID"]
        );
    CSaleOrder::Update($arOrder["ID"], $arFields);

    if ($withdrawSum == $arOrder["PRICE"])
        CSaleOrder::PayOrder($arOrder["ID"], "Y", False, False);
}
?>


Класс CSaleUserCards

Методы класса

Метод | Описание | С версии
Delete | Метод удаляет информацию о пластиковой карте пользователя. | 4.0.6
GetByID | Метод возвращает параметры пластиковой карты с кодом ID. | 4.0.6
Add | Метод сохраняет информацию о новой пластиковой карте пользователя. | 4.0.6
Update | Метод изменяет информацию о новой пластиковой карте пользователя. | 4.0.6
GetList | Метод возвращает результат выборки записей пластиковых карт в соответствии со своими параметрами. | 4.0.6
CryptData | Метод изменяет шифрует и расшифровывает номер пластиковой карты. | 4.0.6
CheckPassword | Метод проверяет, установлен ли пароль для шифрации номеров карт. | 4.0.7
IdentifyCardType | Метод определяет тип пластиковой карты по ее номеру. | 4.0.6


Add

Интернет-магазин>Классы>CSaleUserCards>Add (доступен с 4.0.6)

CSaleUserCards::Add

Описание и параметры

int
CSaleUserCards::Add(
 array arFields
);

Метод сохраняет информацию о новой пластиковой карте пользователя. Нестатический метод.

Параметры

Параметр Описание
arFields Ассоциативный массив параметров пластиковой карты с ключами:
  • USER_ID - код пользователя;
  • SORT - индекс сортировки;
  • PAY_SYSTEM_ACTION_ID - код обработчика платежной системы;
  • CURRENCY - валюта, которую можно снимать с карты;
  • CARD_CODE - CVC2;
  • CARD_TYPE - тип карты;
  • CARD_NUM - номер карты;
  • CARD_EXP_MONTH - месяц окончания действия карты;
  • CARD_EXP_YEAR - год окончания действия карты;
  • DESCRIPTION - краткое описание;
  • SUM_MIN - минимальная сумма, которую можно снять с карты за раз;
  • SUM_MAX - максимальная сумма, которую можно снять с карты за раз;
  • SUM_CURRENCY - валюта минимальной и максимальной сумм;
  • LAST_STATUS - статус последнего использования карты;
  • LAST_STATUS_CODE - код статуса последнего использования карты;
  • LAST_STATUS_DESCRIPTION - описание статуса последнего использования карты;
  • LAST_STATUS_MESSAGE - сообщение платежной системы;
  • LAST_SUM - последняя снятая с карты сумма;
  • LAST_CURRENCY - валюта последней снятой с карты суммы;
  • ACTIVE - флаг активности;
  • LAST_DATE - дата последнего использования карты.

Замечание: перед добавлением записи номер карты должен быть зашифрован методом CSaleUserCards::CryptData.

Возвращаемые значения

Метод возвращает код добавленной записи или false в случае ошибки.

Пример использования

<?
// Сохраним новую карту текущего пользователя

if (CSaleUserCards::CheckPassword())
{
    $arFields = array(
            "USER_ID" => $USER->GetID(),
            "ACTIVE" => "Y",
            "SORT" => "100",
            "PAY_SYSTEM_ACTION_ID" => 11,
            "CURRENCY" => "USD",
            "CARD_TYPE" =>
                CSaleUserCards::IdentifyCardType("4111111111111"),
            "CARD_NUM" =>
                CSaleUserCards::CryptData("4111111111111", "E"),
            "CARD_EXP_MONTH" => 11,
            "CARD_EXP_YEAR" => 2007,
            "DESCRIPTION" => false,
            "CARD_CODE" => "123",
            "SUM_MIN" => False,
            "SUM_MAX" => False,
            "SUM_CURRENCY" => False
        );

    $UserCardID = CSaleUserCards::Add($arFields);
}
?>


CheckPassword

Интернет-магазин>Классы>CSaleUserCards>CheckPassword (доступен с 4.0.7)

CSaleUserCards::CheckPassword

bool
CSaleUserCards::CheckPassword();

Метод проверяет, установлен ли пароль для шифрации номеров карт. Нестатический метод.

Параметры вызова

Без параметров.

Возвращаемые значения

Метод возвращает true, если пароль установлен, и false в противном случае.


CryptData

Интернет-магазин>Классы>CSaleUserCards>CryptData (доступен с 4.0.6)

CSaleUserCards::CryptData

string
CSaleUserCards::CryptData(
 string data,
 string type
);

Метод изменяет шифрует и расшифровывает номер пластиковой карты. Нестатический метод.

Параметры вызова

Параметр | Описание
data | Шифруемые (расшифровываемые) данные.
type | Для шифрования данных значение "E", для расшифровки - "D"

Замечание

Перед сохранением номера карты в базу его необходимо шифровать, а при выборке из базы - расшифровывать.

Возвращаемые значения

Метод возвращает результат шифрования (расшифровывания).


Delete

Интернет-магазин>Классы>CSaleUserCards>Delete (доступен с 4.0.6)

CSaleUserCards::Delete

bool
CSaleUserCards::Delete(
 int ID
);

Метод удаляет информацию о пластиковой карте пользователя. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код удаляемой информации о карте.

Возвращаемые значения

Метод возвращает true в случае успешного удаления и false в случае ошибки.


GetByID

Интернет-магазин>Классы>CSaleUserCards>GetByID (доступен с 4.0.6)

CSaleUserCards::GetByID

array
CSaleUserCards::GetByID(
 int ID
);

Метод возвращает параметры пластиковой карты с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код пластиковой карты.

Возвращаемые значения

Метод возвращает ассоциативный массив параметров пластиковой карты с ключами:

  • ID - код пластиковой карты;
  • USER_ID - код пользователя;
  • SORT - индекс сортировки;
  • PAY_SYSTEM_ACTION_ID - код обработчика платежной системы;
  • CURRENCY - валюта, которую можно снимать с карты;
  • CARD_CODE - CVC2;
  • CARD_TYPE - тип карты;
  • CARD_NUM - номер карты;
  • CARD_EXP_MONTH - месяц окончания действия карты;
  • CARD_EXP_YEAR - год окончания действия карты;
  • DESCRIPTION - краткое описание;
  • SUM_MIN - минимальная сумма, которую можно снять с карты за раз;
  • SUM_MAX - максимальная сумма, которую можно снять с карты за раз;
  • SUM_CURRENCY - валюта минимальной и максимальной сумм;
  • LAST_STATUS - статус последнего использования карты;
  • LAST_STATUS_CODE - код статуса последнего использования карты;
  • LAST_STATUS_DESCRIPTION - описание статуса последнего использования карты;
  • LAST_STATUS_MESSAGE - сообщение платежной системы;
  • LAST_SUM - последняя снятая с карты сумма;
  • LAST_CURRENCY - валюта последней снятой с карты суммы;
  • ACTIVE - флаг активности;
  • TIMESTAMP_X - дата изменения;
  • LAST_DATE - дата последнего использования карты.


GetList

Интернет-магазин>Классы>CSaleUserCards>GetList (доступен с 4.0.6)

CSaleUserCards::GetList

Описание и параметры

CDBResult
CSaleUserCards::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей пластиковых карт в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле карт, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи карт. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • >= - значение поля меньше или равно передаваемой в фильтр величины;
  • >= - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле карт.

Пример фильтра:
array("USER_ID" => 150)
Этот фильтр означает "выбрать все записи, в которых значение в поле USER_ID (код пользователя) равно 150".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи карт. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле карт. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров карт.

  • ID - код пластиковой карты;
  • USER_ID - код пользователя;
  • SORT - индекс сортировки;
  • PAY_SYSTEM_ACTION_ID - код обработчика платежной системы;
  • CURRENCY - валюта, которую можно снимать с карты;
  • CARD_CODE - CVC2;
  • CARD_TYPE - тип карты;
  • CARD_NUM - номер карты;
  • CARD_EXP_MONTH - месяц окончания действия карты;
  • CARD_EXP_YEAR - год окончания действия карты;
  • DESCRIPTION - краткое описание;
  • SUM_MIN - минимальная сумма, которую можно снять с карты за раз;
  • SUM_MAX - максимальная сумма, которую можно снять с карты за раз;
  • SUM_CURRENCY - валюта минимальной и максимальной сумм;
  • LAST_STATUS - статус последнего использования карты;
  • LAST_STATUS_CODE - код статуса последнего использования карты;
  • LAST_STATUS_DESCRIPTION - описание статуса последнего использования карты;
  • LAST_STATUS_MESSAGE - сообщение платежной системы;
  • LAST_SUM - последняя снятая с карты сумма;
  • LAST_CURRENCY - валюта последней снятой с карты суммы;
  • ACTIVE - флаг активности;
  • TIMESTAMP_X - дата изменения;
  • LAST_DATE - дата последнего использования карты.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.


IdentifyCardType

Интернет-магазин>Классы>CSaleUserCards>IdentifyCardType (доступен с 4.0.6)

CSaleUserCards::IdentifyCardType

Описание и параметры

string
CSaleUserCards::IdentifyCardType(
 string ccNum
);

Метод определяет тип пластиковой карты по ее номеру. Нестатический метод.

Параметры вызова

Параметр | Описание
ccNum | Номер карты.

Возвращаемые значения

Метод возвращает тип карты.

Пример использования

<?
// Сохраним новую карту текущего пользователя

if (CSaleUserCards::CheckPassword())
{
    $arFields = array(
            "USER_ID" => $USER->GetID(),
            "ACTIVE" => "Y",
            "SORT" => "100",
            "PAY_SYSTEM_ACTION_ID" => 11,
            "CURRENCY" => "USD",
            "CARD_TYPE" => CSaleUserCards::IdentifyCardType("4111111111111"),
            "CARD_NUM" => CSaleUserCards::CryptData("4111111111111", "E"),
            "CARD_EXP_MONTH" => 11,
            "CARD_EXP_YEAR" => 2007,
            "DESCRIPTION" => False,
            "CARD_CODE" => "123",
            "SUM_MIN" => False,
            "SUM_MAX" => False,
            "SUM_CURRENCY" => False
        );

    $UserCardID = CSaleUserCards::Add($arFields);
}
?>


Update

Интернет-магазин>Классы>CSaleUserCards>Update (доступен с 4.0.6)

CSaleUserCards::Update

int
CSaleUserCards::Update(
 int ID,
 array arFields
);

Метод изменяет информацию о новой пластиковой карте пользователя. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код изменяемой записи.
arFields Ассоциативный массив новых параметров пластиковой карты с ключами:
  • USER_ID - код пользователя;
  • SORT - индекс сортировки;
  • PAY_SYSTEM_ACTION_ID - код обработчика платежной системы;
  • CURRENCY - валюта, которую можно снимать с карты;
  • CARD_CODE - CVC2;
  • CARD_TYPE - тип карты;
  • CARD_NUM - номер карты;
  • CARD_EXP_MONTH - месяц окончания действия карты;
  • CARD_EXP_YEAR - год окончания действия карты;
  • DESCRIPTION - краткое описание;
  • SUM_MIN - минимальная сумма, которую можно снять с карты за раз;
  • SUM_MAX - максимальная сумма, которую можно снять с карты за раз;
  • SUM_CURRENCY - валюта минимальной и максимальной сумм;
  • LAST_STATUS - статус последнего использования карты;
  • LAST_STATUS_CODE - код статуса последнего использования карты;
  • LAST_STATUS_DESCRIPTION - описание статуса последнего использования карты;
  • LAST_STATUS_MESSAGE - сообщение платежной системы;
  • LAST_SUM - последняя снятая с карты сумма;
  • LAST_CURRENCY - валюта последней снятой с карты суммы;
  • ACTIVE - флаг активности;
  • LAST_DATE - дата последнего использования карты.

Замечание: если меняется номер карты, то перед добавлением записи этот номер должен быть зашифрован методом CSaleUserCards::CryptData.

Возвращаемые значения

Метод возвращает код обновленной записи или false в случае ошибки.


Класс CSaleUserTransact

Методы класса

Метод | Описание | С версии
Delete | Метод удаляет транзакцию с кодом ID. | 4.0.6
GetByID | Метод возвращает параметры транзакции с кодом ID. | 4.0.6
Add | Метод добавляет новую транзакцию с параметрами из массива arFields. | 4.0.6
Update | Метод изменяет параметры транзакции в соответствии с параметрами из массива arFields. | 4.0.6
GetList | Метод возвращает результат выборки записей транзакций в соответствии со своими параметрами. | 4.0.6


Add

Интернет-магазин>Классы>CSaleUserTransact>Add (доступен с 4.0.6)

CSaleUserTransact::Add

int
CSaleUserTransact::Add(
 array arFields
);

Метод добавляет новую транзакцию с параметрами из массива arFields. Нестатический метод.

Добавление транзакции не влияет на состояние счёта пользователя. Для изменения счёта используйте CSaleUserAccount::UpdateAccount

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров новой транзакции с ключами:
  • USER_ID - код пользователя;
  • AMOUNT - сумма;
  • CURRENCY - валюта суммы;
  • DEBIT - "Y", если занесение денег на счет, и "N", если списание денег со счета;
  • DESCRIPTION - описание;
  • ORDER_ID - код заказа, если транзакция относится к заказу;
  • EMPLOYEE_ID - код пользователя, осуществившего транзакцию;
  • TRANSACT_DATE - дата транзакции.

Возвращаемые значения

Метод возвращает код вставленной транзакции или false в случае ошибки.


Delete

Интернет-магазин>Классы>CSaleUserTransact>Delete (доступен с 4.0.6)

CSaleUserTransact::Delete

bool
CSaleUserTransact::Delete(
 int ID
);

Метод удаляет транзакцию с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Номер транзакции.

Возвращаемые значения

Метод возвращает true в случае успешного удаления и false - в противном случае.


GetByID

Интернет-магазин>Классы>CSaleUserTransact>GetByID (доступен с 4.0.6)

CSaleUserTransact::GetByID

array
CSaleUserTransact::GetByID(
 int ID
);

Метод возвращает параметры транзакции с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Номер транзакции.

Возвращаемые значения

Метод возвращает ассоциативный массив параметров транзакции с ключами:

  • ID - код транзакции;
  • USER_ID - код пользователя;
  • AMOUNT - сумма;
  • CURRENCY - валюта суммы;
  • DEBIT - "Y", если занесение денег на счет, и "N", если списание денег со счета;
  • DESCRIPTION - описание;
  • ORDER_ID - код заказа, если транзакция относится к заказу;
  • EMPLOYEE_ID - код пользователя, осуществившего транзакцию;
  • TIMESTAMP_X - дата последнего изменения записи;
  • TRANSACT_DATE - дата транзакции.


GetList

Интернет-магазин>Классы>CSaleUserTransact>GetList (доступен с 4.0.6)

CSaleUserTransact::GetList

Описание и параметры

CDBResult
CSaleUserTransact::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей транзакций в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле транзакций, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи транзакций. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - значение поля находится в передаваемом в фильтр разделенном запятой списке значений;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле транзакций.

Пример фильтра:
array("USER_ID" => 150)
Этот фильтр означает "выбрать все записи, в которых значение в поле USER_ID (код пользователя) равно 150".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи транзакций. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле транзакций. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров транзакций:

  • ID - код транзакции;
  • USER_ID - код пользователя;
  • AMOUNT - сумма;
  • CURRENCY - валюта суммы;
  • DEBIT - "Y", если занесение денег на счет, и "N", если списание денег со счета;
  • DESCRIPTION - описание;
  • ORDER_ID - код заказа, если транзакция относится к заказу;
  • EMPLOYEE_ID - код пользователя, осуществившего транзакцию;
  • TIMESTAMP_X - дата последнего изменения записи;
  • TRANSACT_DATE - дата транзакции;
  • USER_LOGIN - логин пользователя;
  • USER_ACTIVE - флаг активности пользователя;
  • USER_NAME - имя пользователя;
  • USER_LAST_NAME - фамилия пользователя;
  • USER_EMAIL - E-Mail пользователя.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Пример использования

//пример формирования отчета по транзакциям личного счета клиента
<table cellpadding="0" cellspacing="0" border="0" class="data-table">
    <thead>
        <tr>
            <td>№</td>
            <td>Дата транзакции</td>
            <td>Сумма</td>
            <td>Описание</td>
        </tr>
    </thead>
    <tbody>
    <?
    CModule::IncludeModule("sale");
    $res = CSaleUserTransact::GetList(Array("ID" => "DESC"), array("USER_ID" => $USER->GetID()));
    while ($arFields = $res->Fetch())
    {?>
        <tr>
            <td><?=$arFields["ID"]?></td>
            <td><?=$arFields["TRANSACT_DATE"]?></td>
            <td><?=($arFields["DEBIT"]=="Y")?"+":"-"?><?=SaleFormatCurrency($arFields["AMOUNT"], $arFields["CURRENCY"])?><br /><small>(<?=($arFields["DEBIT"]=="Y")?"на счет":"со счета"?>)</small></td>
            <td><?=$arFields["NOTES"]?></td>
        </tr>
    <?}?>
    <tbody>
</table>


Update

Интернет-магазин>Классы>CSaleUserTransact>Update (доступен с 4.0.6)

CSaleUserTransact::Update

int
CSaleUserTransact::Update(
 int ID,
 array arFields
);

Метод изменяет параметры транзакции в соответствии с параметрами из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код изменяемой транзакции.
arFields Ассоциативный массив новых параметров новой транзакции с ключами:
  • USER_ID - код пользователя;
  • AMOUNT - сумма;
  • CURRENCY - валюта суммы;
  • DEBIT - "Y", если занесение денег на счет, и "N", если списание денег со счета;
  • DESCRIPTION - описание;
  • ORDER_ID - код заказа, если транзакция относится к заказу;
  • EMPLOYEE_ID - код пользователя, осуществившего транзакцию;
  • TRANSACT_DATE - дата транзакции.

Возвращаемые значения

Метод возвращает код измененной транзакции или false в случае ошибки.


События

События модуля Интернет-магазин:

  • События, связанные с изменением типов плательщиков;
  • События, связанные с местоположениями;
  • События, связанные с изменением заказов;
  • События, связанные с изменением статусов заказа;
  • События, связанные с изменением состояния заказов;
  • События, связанные с изменением записей в корзине;
  • События, связанные с изменением аффилиатов;
  • События, связанные с компонентами;
  • События, связанные с отправкой почтовых шаблонов;
  • Прочие события.


События, связанные с изменением типов плательщиков

Примечание: перечисленные ниже события устарели с версии 15.5.0, но в продукте сохранена обратная совместимость. Поэтому их можно использовать, если в настройках модуля Интернет-магазин отмечена опция Включить обработку устаревших событий. Либо вы можете использовать события нового ядра [image].

Событие Описание и параметры Метод С версии До версии
OnBeforePersonTypeAdd Вызывается перед добавлением типа плательщика, может быть использовано для отмены или модификации данных.
Параметры
&arFields Массив полей типа плательщика
Add 4.0.6 15.5.0
OnPersonTypeAdd Вызывается после добавления типа плательщика.
Параметры
ID | Идентификатор добавленного типа плательщика
arFields | Массив полей типа плательщика
 Add 4.0.6 15.5.0
OnBeforePersonTypeUpdate Вызывается перед изменением типа плательщика, может быть использовано для отмены или модификации данных.
Параметры
ID | Идентификатор типа плательщика
&arFields | Массив полей типа плательщика
 Update 4.0.6 15.5.0
OnPersonTypeUpdate Вызывается после изменения типа плательщика.
Параметры
ID | Идентификатор типа плательщика
arFields | Массив полей типа плательщика
 Update 4.0.6 15.5.0
OnBeforePersonTypeDelete Вызывается перед удалением типа плательщика, может быть использовано для отмены.
Параметры
ID Идентификатор типа плательщика
Delete 4.0.6 15.5.0
OnPersonTypeDelete Вызывается после удаления типа плательщика
Параметры
ID Идентификатор типа плательщика
Delete 4.0.6 15.5.0


События, связанные с местоположениями

Примечание: перечисленные ниже события устарели с версии 15.5.0, но в продукте сохранена обратная совместимость. Поэтому их можно использовать, если в настройках модуля Интернет-магазин отмечена опция Включить обработку устаревших событий. Либо вы можете использовать события нового ядра [image].

Событие Описание и параметры Метод С версии До версии
OnCityAdd Вызывается после добавления города.
Параметры
ID | Идентификатор города
arFields | Массив полей города
 AddCity 4.0.6 15.5.0
OnCityDelete Вызывается после удаления города.
Параметры
ID Идентификатор города
DeleteCity 4.0.6 15.5.0
OnCityUpdate Вызывается после изменения города.
Параметры
ID | Идентификатор города
arFields | Массив полей полей города
 UpdateCity 4.0.6 15.5.0
OnBeforeCityAdd Вызывается перед добавлением города
Параметры
arFields Массив новых параметров.
AddCity 4.0.6 15.5.0
OnBeforeCityDelete Вызывается перед удалением города.
Параметры
ID Код записи города
DeleteCity 4.0.6 15.5.0
OnBeforeCityUpdate Вызывается перед обновлением города
Параметры
ID | Код записи города.
arFields | Массив новых параметров города.
 UpdateCity 4.0.6 15.5.0
OnRegionDelete Вызывается после удаления региона.
Параметры
ID Идентификатор региона
CSaleLocation::DeleteRegion 12.0.0 15.5.0
OnBeforeRegionDelete Вызывается до удаления региона, может быть использовано для отмены удаления.
Параметры
ID Идентификатор региона
CSaleLocation::DeleteRegion 12.0.0 15.5.0
OnRegionUpdate Вызывается после обновления региона.
Параметры
ID | Идентификатор региона
arFields | Массив полей региона
 CSaleLocation::UpdateRegion 12.0.0 15.5.0
OnBeforeRegionUpdate Вызывается до обновления региона, может быть использовано для отмены или модификации данных
Параметры
ID | Идентификатор региона
arFields | Массив полей региона
 CSaleLocation::UpdateRegion 12.0.0 15.5.0
OnBeforeRegionAdd Вызывается перед добавлением региона.
Параметры
arFields Массив полей региона.
CSaleLocation::AddRegion 12.0.0 15.5.0
OnRegionAdd Вызывается после добавлением региона
Параметры
ID | Идентификатор региона
arFields | Массив полей региона
 CSaleLocation::AddRegion 12.0.0 15.5.0
OnCountryAdd Вызывается после добавления страны
Параметры
ID | Идентификатор страны
arFields | Массив полей страны
 AddCountry 4.0.6 15.5.0
OnCountryDelete Вызывается после удаления страны.
Параметры
ID Идентификатор страны
DeleteCountry 4.0.6 15.5.0
OnCountryUpdate Вызывается после изменения страны
Параметры
ID | Идентификатор страны
arFields | Массив полей страны
 UpdateCountry 4.0.6 15.5.0
OnBeforeCountryAdd Вызывается перед добавлением страны.
Параметры
arFields Массив новых параметров страны
AddCountry 4.0.6 15.5.0
OnBeforeCountryDelete Вызывается перед удалением страны.
Параметры
ID Идентификатор страны
DeleteCountry 4.0.6 15.5.0
OnBeforeCountryUpdate Вызывается перед обновлением страны.
Параметры
ID | Идентификатор страны
arFields | Массив новых параметров страны
 UpdateCountry 4.0.6 15.5.0
OnLocationDelete Вызывается после удаления местоположения
Параметры
ID Идентификатор местоположения
Delete 4.0.6 15.5.0
OnLocationDeleteAll Вызывается после удаления всех местоположений.
Параметров нет 		DeleteAll 4.0.6 15.5.0
OnLocationAdd Вызывается после добавления местоположения
Параметры
ID | Идентификатор местоположения
arFields | Массив полей местоположения
 AddLocation 4.0.6 15.5.0
OnLocationUpdate Вызывается после обновления местоположения.
Параметры
ID | Идентификатор местоположения
arFields | Массив полей местоположения
 UpdateLocation 4.0.6 15.5.0
OnBeforeLocationAdd Вызывается перед добавлением местоположения
Параметры
arFields Массив новых параметров местоположения
AddLocation 4.0.6 15.5.0
OnBeforeLocationDelete Вызывается перед удалением местоположения.
Параметры
ID Код записи местоположения
Delete 4.0.6 15.5.0
OnBeforeLocationDeleteAll Вызывается перед удалением всех местоположений.
Параметров нет. 		DeleteAll 4.0.6 15.5.0
OnBeforeLocationUpdate Вызывается перед изменением местоположения.
Параметры
ID | Идентификатор местоположения
arFields | Массив полей местоположения
 UpdateLocation 4.0.6 15.5.0
OnLocationGroupAdd Вызывается после добавления группы местоположений
Параметры
ID | Идентификатор группы местоположений
arFields | Массив полей группы местоположений
 Add 4.0.6 15.5.0
OnLocationGroupDelete Вызывается после удаления группы местоположений.
Параметры
ID Идентификатор группы местоположений
Delete 4.0.6 15.5.0
OnLocationGroupUpdate Вызывается после после группы местоположений
Параметры
ID | Идентификатор группы местоположений
arFields | Массив полей группы местоположений
 Update 4.0.6 15.5.0
OnBeforeLocationGroupAdd Вызывается перед добавлением группы местоположений.
Параметры
arFields Массив новых параметров группы местоположений
Add 4.0.6 15.5.0
OnBeforeLocationGroupDelete Вызывается перед удалением группы местоположений.
Параметры
ID Код записи группы местоположений
Delete 4.0.6 15.5.0
OnBeforeLocationGroupUpdate Вызывается перед изменением группы местоположений
Параметры
ID | Идентификатор группы местоположений
arFields | Массив полей группы местоположений
 Update 4.0.6 15.5.0


События, связанные с изменением заказов

Примечание: перечисленные ниже события устарели с версии 15.5.0, но в продукте сохранена обратная совместимость. Поэтому их можно использовать, если в настройках модуля Интернет-магазин отмечена опция Включить обработку устаревших событий. Либо вы можете использовать события нового ядра [image].

Событие Описание и параметры Метод С версии До версии
OnBeforeOrderAdd Вызывается перед добавлением заказа, может быть использовано для отмены или модификации данных.
Параметры
&arFields Массив полей заказа
Add 4.0.6 15.5.0
OnOrderAdd Вызывается после добавления заказа.
Параметры
ID | Идентификатор добавленного заказа
arFields | Массив полей заказа
 Add 4.0.6 15.5.0
OnOrderSave Вызывается после обработки свойств заказа. Отличается от OnOrderAdd тем, что сохраняются не только поля заказа, но и свойства заказа.
Параметры
orderId | Идентификатор добавленного заказа.
fields | Массив полей заказа и дополнительные функциональные поля, влияющие на заказ.
orderFields | Массив свойств заказа.
isNew | Флаг, является ли заказ новым (true/false).
 DoSaveOrder 14.5.14 15.5.0
OnBeforeOrderUpdate Вызывается перед изменением заказа, может быть использовано для отмены или модификации данных.
Параметры
ID | Идентификатор заказа
arFields | Массив полей заказа
 Update 4.0.6 15.5.0
OnOrderUpdate Вызывается после изменения заказа.
Параметры
ID | Идентификатор заказа
arFields | Массив полей заказа
 Update 4.0.6 15.5.0
OnBeforeOrderDelete Вызывается перед удалением заказа, может быть использовано для отмены.
Параметры
ID Идентификатор заказа
Delete 4.0.6 15.5.0
OnOrderDelete вызывается после удаления заказа
Параметры
ID | Идентификатор заказа
Success | Индикатор успешности. Выводит true, если удаление произошло успешно. И false, если удаление заказа не произошло (например, не удалось удалить корзину заказа, или подписку по заказу).
 Delete 4.0.6 15.5.0
OnSaleCalculateOrder Вызывается после калькуляции заказа. В событии передается &arOrder, те можно вносить правки в массив заказа в обработчике события.
Параметры
arOrder Массив параметров заказа
CSaleOrder::DoCalculateOrder 11.5.0 15.5.0
OnSaleCalculateOrderDiscount Вызывается после расчёта скидки на заказ.
Параметры
arOrder Массив параметров заказа
CSaleOrder::DoCalculateOrder 11.5.0 15.5.0
OnSaleCalculateOrderDelivery Вызывается после расчёта доставки.
Параметры
arOrder Массив параметров заказа
CSaleOrder::DoCalculateOrder 11.5.0 15.5.0
OnSaleCalculateOrderDeliveryTax Вызывается после расчёта налога на доставку.
Параметры
arOrder Массив параметров заказа
CSaleOrder::DoCalculateOrder 11.5.0 15.5.0
OnSaleCalculateOrderPaySystem Вызывается после определения платёжной системы.
Параметры
arOrder Массив параметров заказа
CSaleOrder::DoCalculateOrder 11.5.0 15.5.0
OnSaleCalculateOrderPersonType Вызывается после определения типа плательщика.
Параметры
arOrder Массив параметров заказа
CSaleOrder::DoCalculateOrder 11.5.0 15.5.0
OnSaleCalculateOrderProps Вызывается после формирования свойств плательщика.
Параметры
arOrder Массив параметров заказа
CSaleOrder::DoCalculateOrder 11.5.0 15.5.0
OnSaleCalculateOrderShoppingCart Вызывается после формирования массива заказа из корзины.
Параметры
arOrder Массив параметров заказа
CSaleOrder::DoCalculateOrder 11.5.0 15.5.0
OnSaleCalculateOrderShoppingCartTax Вызывается после определения налогов.
Параметры
arOrder Массив параметров заказа
CSaleOrder::DoCalculateOrder 11.5.0 15.5.0


События, связанные с изменением статусов заказа

Примечание: перечисленные ниже события устарели с версии 15.5.0, но в продукте сохранена обратная совместимость. Поэтому их можно использовать, если в настройках модуля Интернет-магазин отмечена опция Включить обработку устаревших событий. Либо вы можете использовать события нового ядра [image].

Внимание! Данные события относятся не к смене статуса заказ (то есть изменению заказа), а к изменению самой сущности Статус заказа.

Событие Описание и параметры Метод С версии До версии
OnBeforeStatusAdd Вызывается перед добавлением статуса заказа, может быть использовано для отмены или модификации данных.
Параметры
&arFields Массив полей статуса заказа
Add 4.0.6 15.5.0
OnStatusAdd Вызывается после добавления статуса заказа.
Параметры
ID | Идентификатор добавленного статуса заказа
arFields | Массив полей статуса заказа
 Add 4.0.6 15.5.0
OnBeforeStatusUpdate Вызывается перед изменением статуса заказа, может быть использовано для отмены или модификации данных.
Параметры
ID | Идентификатор статуса заказа
&arFields | Массив полей статуса заказа
 Update 4.0.6 15.5.0
OnStatusUpdate Вызывается после изменения статуса заказа.
Параметры
ID | Идентификатор статуса заказа
arFields | Массив полей статуса заказа

Событие не срабатывает при изменении статуса заказа. Для этого используйте событие OnSaleStatusOrder. 		Update 4.0.6 15.5.0
OnBeforeStatusDelete Вызывается перед удалением статуса заказа, может быть использовано для отмены.
Параметры
ID Идентификатор статуса заказа
Delete 4.0.6 15.5.0
OnStatusDelete Вызывается после удаления статуса заказа
Параметры
ID Идентификатор статуса заказа
Delete 4.0.6 15.5.0


События внутреннего счёта

Событие Описание и параметры
OnBeforeUserAccountUpdate Событие вызывается при изменении внутреннего счета перед его сохранением.

Параметры
ID | Идентификатор счёта
arFields | Массив данных, которые изменяются. (См. CSaleUserAccount [image] )


События, связанные с изменением аффилиатов

Примечание: перечисленные ниже события устарели с версии 15.5.0, но в продукте сохранена обратная совместимость. Поэтому их можно использовать, если в настройках модуля Интернет-магазин отмечена опция Включить обработку устаревших событий. Либо вы можете использовать события нового ядра [image].

Событие Описание и параметры Метод С версии До версии
OnBeforeBAffiliateAdd Вызывается до добавления аффилиата.
Параметры
$arFields Массив изменяемых параметров
CSaleAffiliate::Add 12.0.4 15.5.0
OnAfterBAffiliateAdd Вызывается после добавления аффилиата.
Параметры
$ID | Код добавленного аффилиата.
arFields | Массив параметров
 CSaleAffiliate::Add 12.0.4 15.5.0
OnBeforeAffiliateUpdate Вызывается до обновления
Параметры
ID | Код аффилиата
$arFields | Массив изменяемых параметров
 CSaleAffiliate::Update 12.0.4 15.5.0
OnAfterAffiliateUpdate Вызывается после обновления
Параметры
ID | Код аффилиата
$arFields | Массив параметров
 CSaleAffiliate::Update 12.0.4 15.5.0
OnBeforeAffiliateDelete Вызывается перед удалением
Параметры
ID Код аффилиата
CSaleAffiliate::Delete 12.0.4 15.5.0
OnAfterAffiliateDelete Вызывается после удаления
Параметры
ID | Код аффилиата
$bResult | Результат удаления (true/false)Массив параметров
 CSaleAffiliate::Delete 12.0.4 15.5.0
OnBeforeAffiliateCalculate Вызывается перед калькуляцией
Параметры
$arAffiliate | Массив параметров аффилиата
$dateFrom, $dateTo | Период калькуляции
$datePlanFrom, $datePlanTo | Период определения плана
 CSaleAffiliate::CalculateAffiliate 12.0.4 15.5.0
OnAfterAffiliateCalculate Вызывается после калькуляции
Параметры
affiliateID Код аффилиата
CSaleAffiliate::CalculateAffiliate 12.0.4 15.5.0
OnBeforePayAffiliate Вызывается перед выплатой суммы на счёт
Параметры
$arAffiliate | Массив данных аффилиата.
$payType | Статус что делать с суммой.
 CSaleAffiliate::PayAffiliate 12.0.4 15.5.0
OnAfterPayAffiliate Вызывается после выплат
Параметры
affiliateID Код аффилиата
CSaleAffiliate::PayAffiliate 12.0.4 15.5.0
OnBeforeAffiliatePlanAdd Вызывается до сохранения плана
Параметры
$arFields Массив параметров плана
CSaleAffiliatePlan::Add 12.0.4 15.5.0
OnAfterAffiliatePlanAdd Вызывается после сохранения плана
Параметры
$ID | Код плана
$arFields | Массив параметров плана
 CSaleAffiliatePlan::Add 12.0.4 15.5.0
OnBeforeAffiliatePlanUpdate Вызывается до обновления плана.
Параметры
$ID | Код плана.
$arFields | Массив параметров плана
 CSaleAffiliatePlan::Update 12.0.4 15.5.0
OnAfterAffiliatePlanUpdate Вызывается после обновления плана.
Параметры
$ID | Код плана.
$arFields | Массив параметров плана
 CSaleAffiliatePlan::Update 12.0.4 15.5.0
OnBeforeAffiliatePlanDelete Вызывается до удаления плана
Параметры
$ID Код плана
CSaleAffiliatePlan::Delete 12.0.4 15.5.0
OnAfterAffiliatePlanDelete Вызывается после удаления плана
Параметры
$ID | Код плана
$bResult | Результат удаления (true/false)
 CSaleAffiliatePlan::Delete 12.0.4 15.5.0


События, связанные с изменением состояния заказов

Примечание: перечисленные ниже события устарели с версии 15.5.0, но в продукте сохранена обратная совместимость. Поэтому их можно использовать, если в настройках модуля Интернет-магазин отмечена опция Включить обработку устаревших событий. Либо вы можете использовать события нового ядра [image].

Событие Описание и параметры Метод С версии До версии
OnSaleBeforePayOrder Вызывается перед изменением флага оплаты заказа, может быть использовано для отмены.
Параметры
ID | Идентификатор заказа
val | Флаг оплаты (Y - оплатить заказ, N - снять оплату заказа)
bWithdraw | Значение true отражает изменение флага на внутреннем счете пользователя; значение false изменяет только флаг, не затрагивая счет
bPay | Если параметр bWithdraw установлен в true, то установка параметра bPay в true приведет к тому, что необходимая сумма денег будет внесена на счет покупателя перед оплатой, а установка в false приведет к тому, что оплата будет происходить целиком с внутреннего счета; если параметр bWithdraw установлен в false, то операции со счетом не производятся и значение параметра bPay не играет роли.
recurringID | Должен быть равен 0
arAdditionalFields | Массив дополнительно обновляемых параметров (обычно это номер и дата платежного поручения)
 PayOrder 4.0.6 15.5.0
OnSalePayOrder Вызывается после изменения флага оплаты заказа.
Параметры
ID | Идентификатор заказа
val | Флаг оплаты (Y - выставление оплаты, N - снятие оплаты)
 PayOrder 4.0.6 15.5.0
OnSaleBeforeDeliveryOrder Вызывается перед изменением флага разрешения доставки заказа, может быть использовано для отмены.
Параметры
ID | Идентификатор заказа
val | Флаг разрешения доставки (Y - разрешено, N - запрещено)
recurringID | Должен быть равен 0
arAdditionalFields | Массив дополнительно обновляемых параметров (обычно это номер и дата документа отгрузки)
 DeliverOrder 4.0.6 15.5.0
OnSaleDeliveryOrder Вызывается после изменения флага разрешения доставки заказа.
Параметры
ID | Идентификатор заказа
val | Флаг разрешения доставки (Y - разрешено, N - запрещено)
 DeliverOrder 4.0.6 15.5.0
OnSaleBeforeCancelOrder Вызывается перед изменением флага отмены заказа, может быть использовано для отмены.
Параметры
ID | Идентификатор заказа
val | Флаг отмены заказа (Y - отменено, N - не отменено)
 CancelOrder 4.0.6 15.5.0
OnSaleCancelOrder Вызывается после изменения флага отмены заказа.
Параметры
orderId | Идентификатор заказа
value | Флаг отмены заказа (Y - отменено, N - не отменено)
description | Причина отмены. Изменить это поле нельзя, только чтение.
 CancelOrder 4.0.6 15.5.0
OnSaleBeforeStatusOrder Вызывается перед изменением статуса заказа, может быть использовано для отмены.
Параметры
ID | Идентификатор заказа
val | Идентификатор статуса
 StatusOrder 4.0.6 15.5.0
OnSaleStatusOrder Вызывается после изменения статуса заказа.
Параметры
ID | Идентификатор заказа
val | Идентификатор статуса
 StatusOrder 4.0.6 15.5.0

Обратите внимание, что события OnSaleBeforeStatusOrder и OnSaleStatusOrder не вызываются в момент создания заказа, поэтому перевод в статус N (Принят) может быть инициировано только вручную. В таком случае, можно инициировать вызов своего обработчика на смену статуса через обработчик на создание заказа. Например так:
 public static function OnOrderAddHandler($ID, $arFields) {
      self::OnSaleStatusOrderHandler($ID, $arFields['STATUS_ID']);
   }


События, связанные с изменением записей в корзине

Примечание: перечисленные ниже события устарели с версии 15.5.0, но в продукте сохранена обратная совместимость. Поэтому их можно использовать, если в настройках модуля Интернет-магазин отмечена опция Включить обработку устаревших событий. Либо вы можете использовать события нового ядра [image].

Событие Описание и параметры Метод С версии До версии
OnBeforeBasketAdd Вызывается перед добавлением записи в корзину, может быть использовано для отмены или модификации данных.
Параметры
&arFields Массив полей записи корзины

Если добавление товара в корзину выполняется методом Add2BasketByProductID, то через него нельзя изменить название товара. Для этого добавляйте товар в корзину через CSaleBasket::Add [image].

 Add 8.0.3 15.5.0
OnBasketAdd Вызывается после добавления записи в корзину.
Параметры
ID | Идентификатор добавленной записи
arFields | Массив полей записи корзины
 Add 8.0.3 15.5.0
OnBeforeBasketUpdate Вызывается перед изменением записи в корзине, может быть использовано для отмены или модификации данных.
Параметры
ID | Идентификатор записи в корзине
&arFields | Массив полей записи корзины
 Update 8.0.3 15.5.0
OnBasketUpdate Вызывается после изменения записи в корзине.
Параметры
ID | Идентификатор записи в корзине
arFields | Массив полей записи корзины
 CSaleBasket::_Update 8.0.3 15.5.0
OnBeforeBasketUpdateAfterCheck Вызывается перед изменением корзины после проверки массива $arFields.
Параметры
ID | Код записи товара в корзине
arFields | Массив новых параметров элемента корзины
 CSaleBasket::_Update 11.5.0 15.5.0
OnBeforeBasketDelete Вызывается перед удалением записи из корзины, может быть использовано для отмены.
Параметры
ID Идентификатор записи в корзине
Delete 8.0.3 15.5.0
OnBasketDelete Вызывается после удаления записи из корзины
Параметры
ID Идентификатор записи в корзине
Delete 8.0.3 15.5.0
OnSetCouponList Добавляет переданные купоны. Событие является системным.

Параметры
intUserID | Идентификатор пользователя, для которого передаются купоны.
arCoupons | Один купон или массив передаваемых купонов.
arModules | Массив идентификаторов модулей, которые должны принять список купонов. Если массив пустой, то обработчик события должен обработать все модули, которые имеют обработчик этого события.
 CSaleBasket::DoSaveOrderBasket 11.5.0 15.5.0
OnClearCouponList Удаляет из списка переданные купоны. Событие является системным.

Параметры
intUserID | Идентификатор пользователя, для которого передаются купоны.
arCoupons | Один купон или массив передаваемых купонов.
arModules | Массив идентификаторов модулей, которые должны удалить из списка переданные купоны. Если массив пустой, то обработчик события должен обработать все модули, которые имеют обработчик этого события.
 CSaleBasket::DoSaveOrderBasket 11.5.0 15.5.0
OnDeleteCouponList Полностью удаляет список купонов. Событие является системным.

Параметры
intUserID | Идентификатор пользователя, для которого удаляются купоны.
arModules | Массив идентификаторов модулей, из которых удаляется список купонов. Если массив пустой, то обработчик события должен обработать все модули, которые имеют обработчик этого события.
 CSaleBasket::DoSaveOrderBasket 11.5.0 15.5.0


События, связанные с отправкой почтовых шаблонов

Примечание: перечисленные ниже события устарели с версии 15.5.0, но в продукте сохранена обратная совместимость. Поэтому их можно использовать, если в настройках модуля Интернет-магазин отмечена опция Включить обработку устаревших событий. Либо вы можете использовать события нового ядра [image].

Событие Описание и параметры Метод С версии До версии
OnOrderNewSendEmail Вызывается перед отправкой письма о новом заказе, может быть использовано для модификации данных, изменения идентификатора типа почтового события, по которому будет осуществлена отправка, и отмены отправки письма.
Параметры
ID | Идентификатор заказа
&eventName | Тип почтового события по которому будет осуществлена отправка
&arFields | Массив данных о заказе, которые будут подставлены в почтовый шаблон
 CSaleOrder::DoSaveOrder 11.5.0 15.5.0
OnOrderDeliverSendEmail Вызывается перед отправкой письма о разрешении доставки заказа, может быть использовано для модификации данных, изменения идентификатора типа почтового события, по которому будет осуществлена отправка, и отмены отправки письма.
Параметры
ID | Идентификатор заказа
&eventName | Тип почтового события по которому будет осуществлена отправка
&arFields | Массив данных о заказе, которые будут подставлены в почтовый шаблон
 DeliverOrder 11.0.0 15.5.0
OnOrderPaySendEmail Вызывается перед отправкой письма об оплате заказа, может быть использовано для модификации данных, изменения идентификатора типа почтового события, по которому будет осуществлена отправка, и отмены отправки письма.
Параметры
ID | Идентификатор заказа
&eventName | Тип почтового события по которому будет осуществлена отправка
&arFields | Массив данных о заказе, которые будут подставлены в почтовый шаблон
 PayOrder 11.0.0 15.5.0
OnOrderCancelSendEmail Вызывается перед отправкой письма об отмене заказа, может быть использовано для модификации данных, изменения идентификатора типа почтового события, по которому будет осуществлена отправка, и отмены отправки письма.
Параметры
ID | Идентификатор заказа
&eventName | Тип почтового события по которому будет осуществлена отправка
&arFields | Массив данных о заказе, которые будут подставлены в почтовый шаблон
 CancelOrder 11.0.0 15.5.0
OnSaleStatusEMail Вызывается в момент формирования письма клиенту о смене статуса заказа. Может быть использовано для переопределения текста письма или его дополнения (для этого обработчик события должен возвращать необходимый текст).
Параметры
ID | Идентификатор заказа
val | Идентификатор статуса заказа
 StatusOrder 4.0.6 15.5.0
OnOrderStatusSendEmail Вызывается перед отправкой письма о cмене статуса заказа, может быть использовано для модификации данных, изменения идентификатора типа почтового события, по которому будет осуществлена отправка, и отмены отправки письма.
Параметры
ID | Идентификатор заказа
&eventName | Тип почтового события по которому будет осуществлена отправка
&arFields | Массив данных о заказе, которые будут подставлены в почтовый шаблон
val | Идентификатор статуса заказа
 StatusOrder 11.0.0 15.5.0
OnOrderRemindSendEmail Вызывается перед отправкой письма о напоминании оплаты заказа, может быть использовано для модификации данных, изменения идентификатора типа почтового события, по которому будет осуществлена отправка, и отмены отправки письма.
Параметры
ID | Идентификатор заказа
&eventName | Тип почтового события по которому будет осуществлена отправка
&arFields | Массив данных о заказе, которые будут подставлены в почтовый шаблон
 CSaleOrder::RemindPayment 11.0.0 15.5.0
OnOrderRecurringSendEmail Вызывается перед отправкой письма о добавлении заказа на продление подписки, может быть использовано для модификации данных, изменения идентификатора типа почтового события, по которому будет осуществлена отправка, и отмены отправки письма.
Параметры
ID | Идентификатор заказа
&eventName | Тип почтового события по которому будет осуществлена отправка
&arFields | Массив данных о заказе, которые будут подставлены в почтовый шаблон
 CSaleOrder::RemindPayment 11.0.0 15.5.0
OnOrderRecurringCancelSendEmail Вызывается перед отправкой письма об отмене заказа на продление подписки, может быть использовано для модификации данных, изменения идентификатора типа почтового события, по которому будет осуществлена отправка, и отмены отправки письма.
Параметры
ID | Идентификатор заказа
&eventName | Тип почтового события по которому будет осуществлена отправка
&arFields | Массив данных о заказе, которые будут подставлены в почтовый шаблон
 CSaleRecurring::CancelRecurring 11.0.0 15.5.0


События, связанные с компонентами

Примечание: перечисленные ниже события устарели с версии 16.0.15, но в продукте сохранена обратная совместимость. Так как новый компонент sale.order.ajax использует новое АПИ магазина для расчета данных заказа (объект \Bitrix\Sale\Order [image]), для модификации заказа следует использовать новые события компонента [image].

Событие Описание и параметры Метод С версии
OnSaleComponentOrderOneStepPersonType Вызывается в компоненте bitrix:sale.order.ajax после формирования списка доступных типов плательщика, может быть использовано для модификации данных.
Параметры
&arResult | Массив arResult компонента
&arUserResult | Массив arUserResult компонента, содержащий текущие выбранные пользовательские данные.
arParams | Массив параметров компонента
 11.0.0
OnSaleComponentOrderOneStepOrderProps Вызывается в компоненте bitrix:sale.order.ajax после формирования списка доступных свойств заказа, может быть использовано для модификации данных.
Параметры
&arResult | Массив arResult компонента
&arUserResult | Массив arUserResult компонента, содержащий текущие выбранные пользовательские данные
arParams | Массив параметров компонента
 11.0.0
OnSaleComponentOrderOneStepDelivery Вызывается в компоненте bitrix:sale.order.ajax после формирования списка доступных служб доставки, может быть использовано для модификации данных.
Параметры
&arResult | Массив arResult компонента
&arUserResult | Массив arUserResult компонента, содержащий текущие выбранные пользовательские данные
arParams | Массив параметров компонента
 11.0.0
OnSaleComponentOrderOneStepPaySystem Вызывается в компоненте bitrix:sale.order.ajax после формирования списка доступных платежных систем, может быть использовано для модификации данных.
Параметры
&arResult | Массив arResult компонента
&arUserResult | Массив arUserResult компонента, содержащий текущие выбранные пользовательские данные.
arParams | Массив параметров компонента
 11.0.0
OnSaleComponentOrderOneStepProcess Вызывается в компоненте bitrix:sale.order.ajax после формирования всех данных компонента на этапе заполнения формы заказа, может быть использовано для модификации данных.
Параметры
&arResult | Массив arResult компонента
&arUserResult | Массив arUserResult компонента, содержащий текущие выбранные пользовательские данные
arParams | Массив параметров компонента
 11.0.0
OnSaleComponentOrderOneStepComplete Вызывается в компоненте bitrix:sale.order.ajax после создания заказа и всех его параметров, после отправки письма, но до редиректа на страницу с информацией о созданном заказе и оплате заказа.
Параметры
ID | Идентификатор заказа
arOrder | Массив полей заказа
arParams | Массив параметров компонента
 CSaleOrder::DoSaveOrder 11.0.0
OnSaleComponentOrderOneStepFinal Вызывается в компоненте bitrix:sale.order.ajax после создания заказа и всех его параметров, после отправки письма, перед выводом страницы об успешно созданном заказе и оплате заказа.
Параметры
ID | Идентификатор заказа
arOrder | Массив полей заказа
arParams | Массив параметров компонента
 11.0.0
OnSaleComponentOrderComplete Вызывается в компоненте bitrix:sale.order.full после создания заказа и всех его параметров.
Параметры
ID | Идентификатор заказа
arOrder | Массив полей заказа
arParams | Массив параметров компонента
 8.0.0
OnSaleComponentOrderOneStepDiscountBefore Вызывается в компоненте bitrix:sale.order.ajax перед подсчётом скидки при оформлении заказа. Можно использовать в том числе для присвоения/отъёма у пользователя купонов соответствующих скидок для расчёта индивидуальной скидки.
Параметры
arResult | Массив параметров заказа
arUserResult | Массив параметров пользователя
arParams | Массив параметров компонента
 12.0.0
OnOrderNewSendEmail Вызывается перед отправкой письма о новом заказе. Если возвращает false, отправка письма будет прервана.
Параметры
ID | ID заказа
eventName | Тип события (может быть изменено)
arFields | Массив полей письма (может быть изменено).
 CSaleOrder::DoSaveOrder 11.0.0


Прочие события

Примечание: перечисленные ниже события устарели с версии 15.5.0, но в продукте сохранена обратная совместимость. Поэтому их можно использовать, если в настройках модуля Интернет-магазин отмечена опция Включить обработку устаревших событий. Либо вы можете использовать события нового ядра [image].

Событие | Описание и параметры | Метод | С версии | До версии
OnOrderListFilter Вызывается при формировании фильтра для списка заказов в административной части. Позволяет модифицировать значения фильтра. Для этого обработчик события должен вернуть модифицированный массив фильтра.
Параметры
arFilter Сформированный фильтр
5.1.0 15.5.0
OnProductSearchFormIBlock Вызывается при формировании фильтра для выбора товаров для заказа. Позволяет модифицировать значения фильтра. Для этого обработчик события должен вернуть модифицированный массив фильтра.
Параметры
arFilter Сформированный фильтр
5.1.0 15.5.0
OnProductSearchForm Вызывается для каждого товара в форме поиска товара. Возвращаемое значение - массив (в формате JScript) новых параметров товара. Может использоваться, если товары в заказе должны иметь не те параметры, которые они имеют в каталоге.
Параметры
ID | Код товара
arParams | Текущее значение, передающееся в качестве параметров товара (массив в формате JScript)
 5.1.0 15.5.0
OnAffiliateGetSections Вызывается в методе CSaleAffiliate::CalculateAffiliate, если модуль товара не catalog. Позволяет задать секции для товара, расположенного не в модуле каталог, используемые для планов аффилиатов.
Параметры
MODULE | Идентификатор модуля товара корзины
PRODUCT_ID | Идентификатор товара
 CSaleAffiliate::CalculateAffiliate 5.1.0 15.5.0
OnSaleUserDelete Вызывается при удалении пользователя Интернет-магазина.
Параметры
ID Идентификатор пользователя Интернет-магазина
CSaleUser::Delete 3.2.3 15.5.0
onSaleDeliveryHandlersBuildList | Системное, не описывается. | CSaleDeliveryHandler::__getRegisteredHandlers | 6.5.0 | 15.5.0


Функции

  • SaleFormatCurrency


SaleFormatCurrency

string
SaleFormatCurrency(
 float fSum,
 string strCurrency,
 bool OnlyValue = False
);

Функция форматирует сумму fSum в соответствии с правилами форматирования для валюты strCurrency на текущем языке.

Параметры функции

Параметр | Описание | С версии
fSum | Денежная сумма, которую нужно сформатировать. |
strCurrency | Валюта, по правилам которой нужно производить форматирование. |
OnlyValue | Необязательный параметр. Если True - вернется только отформатированное число. | 3.3.2

Возвращаемые значения

Возвращает отформатированную строку.

Пример использования

<?
echo SaleFormatCurrency(11800.95, "USD");
?>


Для разработчиков

Описание и параметры

Модуль Интранет позволяет:

  • указать источники данных для компонентов модуля;
  • настроить параметры импорта пользователей из 1С:ЗУП;
  • настроить параметры поиска документов.

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("intranet")){
//здесь можно использовать функции и классы модуля
}
?>

Компоненты 2.0

Модуль включает в себя следующие Компоненты 2.0:
Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Руководство подразделениями | intranet.structure.head.user | Выводит список подразделений, руководителем которых является сотрудник.
HR
Календарь отсутствий | intranet.absence.calendar | Выводит график отсутствий сотрудников в виде календаря.
Отсутствия пользователя | intranet.absence.user | Выводит график отсутствий конкретного пользователя.
Дни рождения | intranet.structure.birthday.nearest | Выводит список ближайших именинников офиса, отдела или филиала компании.
Кадровые изменения | intranet.structure.events | Выводит список последних кадровых перестановок в компании.
Доска почета | intranet.structure.honour | Выводит список почетных сотрудников компании.
Доска почета пользователя | intranet.structure.honour.user | Выводит историю присутствия пользователя на доске почета.
Отсутствующие сотрудники | intranet.structure.informer.absent | Выводит краткий список отсутствующих сотрудников.
Новые сотрудники | intranet.structure.informer.new | Выводит краткий список новых сотрудников компании.
Бронирование переговорных
Бронирование переговорных (комплексный компонент) | intranet.reserve_meeting | Выводит календарь занятости переговорных комнат, позволяет бронировать переговорные и управлять ими.
Создание переговорной | intranet.reserve_meeting.add | Служит для создания переговорной комнаты.
Список переговорных | intranet.reserve_meeting.list | Выводит список переговорных.
Переговорная | intranet.reserve_meeting.meeting | Служит для отображения переговорной.
Меню | intranet.reserve_meeting.menu | Выводит меню комплексного компонента.
Резервирование переговорной | intranet.reserve_meeting.reserve | Служит для резервирования переговорной.
Поиск переговорных | intranet.reserve_meeting.search | Служит для поиска переговорных.
Просмотр резервирования | intranet.reserve_meeting.view_item | Предназначен для просмотра резервирования переговорных.
Оргструктура
Поиск сотрудника (комплексный компонент) | intranet.search | Выводит форму поиска и список найденных сотрудников корпоративного портала.
Структура компании (комплексный компонент) | intranet.structure | Выводит дерево структуры компании со списком сотрудников корпоративного портала.
Список сотрудников | intranet.structure.list | Выводит список сотрудников, удовлетворяющих внешнему фильтру.
Форма поиска | intranet.structure.selector | Выводит форму фильтрации списка сотрудников.
Визуальная структура компании | intranet.structure.visual | Выводит визуальное представление древовидной структуры компании.
Собрания и планерки
Собрания и планерки | meetings | Комплексный компонент для управления собраниями.
Системные (не описываются)
Начало работы с Bitrix24Time | faceid.timeman.start | Включает Bitrix24Time и запускает индексацию фотографий сотрудников.
Фейс-трекер рабочего времени | faceid.timeman | Автоматизирует открытие и закрытие рабочего дня по фотографии пользователя.
Отчет по рабочему времени | timeman.report | Вывод отчета по рабочему времени для сотрудников и руководителей.
Отчеты по работе сотрудников | timeman.report.weekly | Вывод отчетов по работе сотрудников и руководителей.
Учет рабочего времени | timeman | Основной инструментарий учета рабочего времени.


Интранет в ядре D7

Список классов

Список классов модуля Интранет в ядре D7.

Класс, пространство имен | Описание
Composite | Пространство имён содержит классы для работы по композитным технологиям.
Integration | Пространство имён содержит классы интегрирования интранета с Б24.
Internals | Пространство имён, содержащее классы для работы с таблицами модуля
OutlookApplication | Класс для работы с приложением Outlook.
UserAbsence | Класс методов для получения данных о текущем графике отсутствий.
UserTable | Класс для работы с таблицей пользователей.
UStat | Пространство имён содержит классы для работы со статистикой по пользователям.
Util | Класс вспомогательных методов.

События

Список событий модуля Интранет в ядре D7.

Событие | Описание | С версии
OnStartAbsence | Событие начала отсутствия | 18.3.0
OnEndAbsence | Событие окончания отсутствия | 18.3.0


Для разработчиков

Описание

Модуль Информационные блоки - мощный и в то же время гибкий механизм для хранения и выборки информации различными способами. API модуля состоит из нескольких высокоуровневых функций для выборки данных в публичном разделе сайта и набора классов с низкоуровневыми методами для более специализированной работы.

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?
   if(CModule::IncludeModule("iblock"))
   {
      //здесь можно использовать функции и классы модуля
   }
   ?>

Для получения данных при показе в публичном разделе сайта можно пользоваться функциями с простыми параметрами и предустановленными фильтрами. Эти функции выбирают по умолчанию те значения, которые подходят для места выборки, а именно только активные, привязанные к текущему сайту, подходящие по правам доступа и т.п.

Вся работа с датами через API (вставка, выборка, фильтры и т.п.) производится в формате текущего сайта или, если в административной части, в формате текущего языка.

Публичные функции и возвращаемые значения

Метод | Описание | С версии
GetIBlockList | Возвращает список информационных блоков по фильтру. | 3.0.5
GetIBlock | Возвращает информационный блок по заданному коду. | 3.0.5
GetIBlockElementListEx | Возвращает список элементов по фильтру. | 3.0.5
GetIBlockElementList | Возвращает список элементов из определённого информационного блока. | 3.0.5
GetIBlockElement | Возвращает элемент по заданному коду. | 3.0.5
GetIBlockSectionList | Возвращает список папок из определённого информационного блока. | 3.0.5
GetIBlockSection | Возвращает раздел по заданному коду. | 3.0.5

Если ваша задача более специфична и публичных функций недостаточно, или необходимо не только выбрать, но и изменить данные, то необходимо воспользоваться набором классов для работы с объектами модуля информационных блоков.

Классы модуля информационных блоков

Класс | Описание | С версии
CIBlock | Класс для работы с информационными блоками. | 3.0.3
CIBlockCMLExport | Класс для экспорта данных инфоблока в xml-формате. | 6.5.0
CIBlockCMLImport | Класс для импорта данных инфоблока в xml-формате. | 6.5.0
CIBlockElement | Класс для работы с элементами информационных блоков. | 3.0.5
CIBlockFormatProperties |  | 5.9.0
CIBlockPriceTools |  | 5.9.0
CIBlockProperty | класс для работы со свойствами информационных блоков. | 3.0.3
CIBlockPropertyEnum | Класс для работы с вариантами значений для свойств типа "список". | 3.1.3
CIBlockResult | Вспомогательный класс для работы с объектами результатов выборок. | 3.0.5
CIBlockRSS | Класс для работы с RSS лентами. | 3.0.14
CIBlockSection | Класс для работы с группами информационных блоков. | 3.0.4
CIBlockType | Класс для работы с типами информационных блоков. | 3.1.3
CIBlockXMLFile | Класс для работы с файлами XML. | 6.5.0
Пользовательские свойства | Позволяют изменять представление (формы ввода и т.п.) стандартных свойств расширяя их возможности. | 5.1.0
_CIBElement | Вспомогательный класс для работы с объектом выборки элемента. | 3.1.3

Компоненты 2.0

Модуль включает в себя следующие Компоненты 2.0:
Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Новости
Новости (комплексный компонент) | news | Позволяет создать новостной раздел на сайте.
Календарь | news.calendar | Служит для формирования и вывода календаря новостей или событий.
Новость детально | news.detail | Осуществляет вывод детального описания новости.
Все новости | news.index | Выводит новости из различных инфоблоков.
Лента | news.line | Осуществляет вывод списка элементов инфоблоков с датой и заголовком со ссылкой на страницу с подробной информацией.
Список новостей | news.list | Выводит список новостей из одного информационного блока.
Фотогалерея
Фотогалерея (комплексный компонент) | photo | Позволяет получить полнофункциональную фотогалерею, создавая физически только одну страницу.
Фотография детально | photo.detail | Выводит детальную информацию по фотографии.
Случайное фото | photo.random | Служит для показа одной произвольной фотографии.
Фотографии раздела | photo.section | Выводит все фотографии из выбранного раздела.
Разделы с TOP'ом фотографий | photo.sections.top | Служит для вывода TOP'а фотографий, сгруппированных по разделам.
Фотогалерея 2.0
Фотогалерея 2.0 (комплексный компонент) | photogallery | Позволяет получить полнофункциональную фотогалерею, создавая физически только одну страницу.
Фото | photogallery.detail | Выводит детальную информацию по фотографии.
Фото (комментарии) | photogallery.detail.comment | Служит для создания комментариев к фотографии.
Фото (редактирование) | photogallery.detail.edit | Служит для редактирования свойств фотографии.
Фото (список) | photogallery.detail.list | Выводит список фотографий.
Список фото со слайдером | photogallery.detail.list.ex | Выводит список фотографий во всплывающем окне со слайдером и комментариями.
Фотогалерея (редактирование) | photogallery.gallery.edit | Выводит форму редактирования параметров фотогалереи пользователя.
Фотогалерея (список) | photogallery.gallery.list | Выводит список фотогалерей пользователя.
Фотогалерея (шаблоны) | photogallery.interface | Подключает библиотеку вспомогательных шаблонов. Компонент ничего не выводит.
Flash-слайдшоу [image] (Не поддерживается с версии 15.0.0) | photogallery.imagerotator | Циклически проигрывает фотографии из фотогалереи.
Альбом | photogallery.section | Выводит полную информацию об одном альбоме.
Альбом (редактирование) | photogallery.section.edit | Позволяет отредактировать данные альбома: изменить название, дату создания, ввести описание, ограничить доступ к альбому по паролю.
Альбом (редактирование обложки) | photogallery.section.edit.icon | Служит для редактирования обложки альбома.
Альбом (список) | photogallery.section.list | Выводит список альбомов с информацией о количестве фотографий, вложенных альбомов в каждом и ссылками на просмотр содержимого альбомов.
Фото (загрузка) | photogallery.upload | Служит для загрузки фотографии.
Панель | photogallery.user | Выводит информацию о галерее пользователя.
Фотогалерея 2.0 (многопользовательская) (комплексный компонент) | photogallery_user | Позволяет получить полнофункциональную многопользовательскую фотогалерею, создавая физически только одну страницу.
Каталог
Каталог (комплексный компонент) | catalog | Осуществляет вывод полного каталога товаров из определенного инфоблока.
Список сравниваемых элементов каталога | catalog.compare.list | Выводит список сравниваемых элементов каталога в виде небольшой таблицы.
Таблица сравнения | catalog.compare.result | Выводит таблицу сравниваемых элементов каталога.
Элемент каталога детально | catalog.element | Выводит детальную информацию по элементу каталога.
Фильтр по элементам | catalog.filter | Выводит форму фильтра для фильтрации элементов информационых блоков.
Список связанных элементов | catalog.link.list | Выводит список элементов, связанных с заданным.
Список информационных блоков заданного типа | catalog.main | Выводит список всех информационных блоков заданного типа.
Элементы раздела | catalog.section | Выводит список элементов раздела с указанным набором свойств.
Структура разделов | catalog.section.list | Выводит список разделов инфоблока с указанным количеством элементов в каждом разделе.
Разделы с top'ом элементов | catalog.sections.top | Выводит Top элементов сгруппированных по разделам; элементы выводятся в таблице.
Top элементов каталога | catalog.top | Выводит в таблице Top элементов из всех разделов в соответствии с заданной сортировкой (используется как правило на главной странице сайта).
RSS
RSS новости (экспорт) | rss.out | Предназначен для создания страницы, которая отдает выбранные новости вашего сайта в формате RSS.
RSS новости (импорт) | rss.show | Предназначен для импорта новостей с другого сайта.
Добавление элементов
Добавление элементов инфоблока (комплексный компонент) | iblock.element.add | Осуществляет вывод списка элементов указанного инфоблока, добавление/редактирование элементов и их удаление в зависимости от прав пользователя.
Форма добавления / редактирования | iblock.element.add.form | Осуществляет вывод формы создания (редактирования) элемента указанного информационного блока.
Список своих элементов | iblock.element.add.list | Осуществляет вывод списка доступных пользователю элементов указанного инфоблока, ссылок Добавить, Редактировать, Удалить.
Инфоблоки
Голосование | iblock.vote | Реализует возможность голосования для пользователей.
Универсальные списки
Универсальные списки | lists | Позволяет вести полнофункциональную работу с универсальными списками, создавая физически только одну страницу.
Списки | lists.lists | Выводит таблицу универсальных списков, доступных для просмотра и изменения.
Список | lists.list | Выводит разделы и элементы универсального списка с возможностью навигации и редактирования.
Разделы списка | lists.sections | Позволяет удалить и изменить разделы универсального списка.
Редактирование элемента | lists.element.edit | Выводит форму редактирования элемента списка.
Настройки списка | lists.list.edit | Показывает форму настроек универсального списка.
Поля списка | lists.fields | Показывает поля универсального списка и позволяет их редактировать.
Настройки поля списка | lists.field.edit | Показывает форму настройки поля универсального списка.
Навигационная цепочка | lists.element.navchain | Добавляет к выводу обычного компонента Навигационная цепочка (bitrix:breadcrumb) элемент списка.


Информационные блоки в ядре D7

Список классов модуля Информационные блоки в ядре D7

Класс, пространство имен | Описание
BizprocType | Пространство содержит классы для работы со значениями полей инфоблоков пользовательских типов в бизнес-процессах.
Component | Пространство содержит классы поддержки компонентов.
ElementTable | Класс для работы с таблицей элементов инфоблоков.
Model | Пространство имен содержит классы для механизма единого управления свойствами.
Helpers | Пространство содержит вспомогательные классы.
IblockFieldTable | Класс для работы с таблицей полей инфоблоков.
IblockGroupTable | Класс для работы с таблицей прав доступа к инфоблокам.
IblockMessageTable | Класс для работы с таблицей подписей и заголовков объектов инфоблоков.
IblockRssTable | Класс для работы с таблицей привязок полей для выгрузки в RSS.
IblockSiteTable | Класс для работы с таблицей привязки инфоблоков к сайтам.
IblockTable | Класс для работы с таблицей информационных блоков.
InheritedProperty | Пространство содержит классы для работы с наследуемыми вычисляемыми свойствами.
InheritedPropertyTable | Класс для работы с таблицей шаблонов вычисляемых наследуемых свойств.
PropertyEnumerationTable | Класс для работы с таблицей вариантов значений свойств типа Список.
PropertyIndex | Пространство содержит классы для работы с индексами инфоблоков.
PropertyTable | Класс для работы с таблицей свойств инфоблоков.
SectionElementTable | Класс для работы с таблицей элементов разделов.
SectionPropertyTable | Класс для работы с таблицей свойств разделов.
SectionTable | Класс для работы с таблицей свойств разделов.
SenderEventHandler | Технический класс для сообщения с модулем Email-маркетинг.
SequenceTable | Класс для работы с таблицей счетчиков.
Template | Пространство содержит классы для работы с шаблонами SEO свойств.
TypeLanguageTable | Класс для работы с таблицей языковых параметров типов инфоблоков.
TypeTable | Класс для работы с таблицей типов информационных блоков.


Структура таблиц модуля информационных блоков

Поля таблиц

Типы инфоблоков

Типы инфоблоков (b_iblock_type)

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID типа информационных блоков. Уникален. | String(50) | Да |
SECTIONS | Флаг (Y/N). Разделяются ли элементы блока этого типа по разделам. Обязателен. По умолчанию - "Y". | Char(1) | Да | Y
EDIT_FILE_BEFORE | Полный путь к файлу-обработчику массива полей элемента перед сохранением на странице редактирования элемента. | String(255) | Нет |
EDIT_FILE_AFTER | Полный путь к файлу-обработчику вывода интерфейса редактирования элемента. | String(255) | Нет |
IN_RSS | Блоки данного типа экспортировать в RSS (Y|N). | Char(1) | Да | N
SORT | Порядок сортировки типа | Int | Да | 500

Языкозависимые параметры типов инфоблока (b_iblock_type_lang)/h4>
Поле | Описание | Тип | Обяз. | Умолч.
IBLOCK_TYPE_ID | ID типа блока. | String(50) | Да |
LID | Код языка параметров. | Char(2) | Да |
NAME | Название типа информационных блоков. | String(100) | Да |
SECTION_NAME | Название разделов информационных блоков (если элементы блока этого типа классифицируются по разделам). | String(100) | Нет |
ELEMENT_NAME | Название элементов информационных блоков. | String(100) | Да |

Инфоблоки

b_iblock

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID информационного блока. | Int | Да |
SITE_ID | Внутреннее служебное поле оставленное для совместимости.
LID | ID сайта. | Char(2) | Да |
CODE | Символьный идентификатор. | String(50) | Нет |
EXTERNAL_ID или XML_ID | Внешний код. | String(255) | Нет |
IBLOCK_TYPE_ID | Код типа информационных блоков. | String(50) | Да |
TIMESTAMP_X | Дата последнего изменения параметров блока. | Datetime | Да | Текущее.
NAME | Название. | String(255) | Да |
ACTIVE | Флаг активности (Y|N) | Char(1) | Да | Y
SORT | Индекс сортировки. | Int | Да | 500
LIST_PAGE_URL | Шаблон URL-а к странице для публичного просмотра списка элементов информационного блока. | String(255) | Нет |
SECTION_PAGE_URL | Шаблон URL-а к странице для просмотра раздела. | String(255) | Нет |
DETAIL_PAGE_URL | Шаблон URL-а странице для детального просмотра элемента. | String(255) | Нет |
CANONICAL_PAGE_URL | Канонический URL элемента. | String(255) | Нет |
PICTURE | Код картинки в таблице файлов. | Array | Нет |
DESCRIPTION | Описание. | Text | Нет |
DESCRIPTION_TYPE | Тип описания (text/html) | Char(4) | Да | text
RSS_ACTIVE | Разрешен экспорт в RSSдинамически (Y|N). | Char(1) | Да | Y
RSS_TTL | Время жизни RSS и интервал между генерациями файлов RSS (при включенном RSS_FILE_ACTIVE или RSS_YANDEX_ACTIVE) (часов). | Int | Да | 24
RSS_FILE_ACTIVE | Прегенерировать выгрузку в файл. | Char(1) | Да | N
RSS_FILE_LIMIT | Количество экспортируемых в RSS файл элементов (при включенном RSS_FILE_ACTIVE) | Int | Нет |
RSS_FILE_DAYS | За сколько последних дней экспортировать в RSS файл. (при включенном RSS_FILE_ACTIVE). -1 без ограничения по дням. | Int | Нет |
RSS_YANDEX_ACTIVE | Экспортировать в RSS файл в формате для yandex | Char(1) | Да | N
INDEX_ELEMENT | Индексировать для поиска элементы информационного блока. | Char(1) | Да | Y
INDEX_SECTION | Индексировать для поиска разделы информационного блока. | Char(1) | Да | N
LIST_MODE | Режим отображения списка элементов в административном разделе (S|C). | Char(1) | Нет |
RIGHTS_MODE | Режим проверки прав доступа (S|E). | Char(1) | Нет | S
SECTION_PROPERTY | Признак наличия привязки свойств к разделам (Y|N). | Char(1) | Нет |
PROPERTY_INDEX | Признак наличия фасетного индекса (N|Y|I). | Char(1) | Нет |
LAST_CONV_ELEMENT | Служебное поле для процедуры конвертации места хранения значений свойств инфоблока. | Int | Нет |
SOCNET_GROUP_ID | Служебное поле для привязки к группе социальной сети. | Int | Нет |
SECTIONS_NAME | Устаревшее. Название разделов. | String(100) | Нет |
SECTION_NAME | Устаревшее. Название раздела. | String(100) | Нет |
ELEMENTS_NAME | Устаревшее. Название элементов. | String(100) | Нет |
ELEMENT_NAME | Устаревшее. Название элемента. | String(100) | Нет |
WORKFLOW | Инфоблок участвует в документообороте (Y|N). | Char(1) | Да | Y
BIZPROC | Инфоблок участвует в бизнес-процессах (Y|N). | Char(1) | Да | N
SECTION_CHOOSER | Флаг выбора интерфейса отображения привязки элемента к разделам (D|L|P). | Char(1) | Нет |
VERSION | Флаг хранения значений свойств элементов инфоблока (1 - в общей таблице | 2 - в отдельной). | Int | Да | 1
EDIT_FILE_BEFORE | Полный путь к файлу-обработчику массива полей элемента перед сохранением на странице редактирования элемента. | String(255) | Нет |
EDIT_FILE_AFTER | Полный путь к файлу-обработчику вывода интерфейса редактирования элемента. | String(255) | Нет |
API_CODE | Символьный код API | String(255) | Нет |

Привязка инфоблока к сайтам (b_iblock_site)

Поле | Описание | Тип | Обяз. | Умолч.
IBLOCK_ID | ID информационного блока. | Int | Да |
SITE_ID | Идентификатор сайта. | Char(2) | Да |

Доп. параметры

Поле | Описание | Тип | Обяз. | Умолч.
ELEMENT_NAME | Название элемента в единственном числе | String(255) | Да | Элемент
ELEMENTS_NAME | Название элемента во множественном числе | String(255) | Да | Элементы
ELEMENT_ADD | Действие по добавлению элемента | String(255) | Да | Добавить элемент
ELEMENT_EDIT | Действие по редактированию/изменению элемента | String(255) | Да | Изменить элемент
ELEMENT_DELETE | Действие по удалению элемента | String(255) | Да | Удалить элемент
SECTION_NAME | Название раздела в единственном числе | String(255) | Да | Раздел
SECTIONS_NAME | Название раздела во множественном числе | String(255) | Да | Разделы
SECTION_ADD | Действие по добавлению раздела | String(255) | Да | Добавить раздел
SECTION_EDIT | Действие по редактированию/изменению раздела | String(255) | Да | Изменить раздел
SECTION_DELETE | Действие по удалению раздела | String(255) | Да | Удалить раздел

Разделы и элементы

Разделы (b_iblock_section)

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID группы информационного блока. | Int | Да
CODE | Символьный идентификатор. | String(255) | Нет
EXTERNAL_ID или XML_ID
Внешний код. String(255) Нет
IBLOCK_ID | ID информационного блока. | Int | Да
IBLOCK_SECTION_ID | ID группы родителя, если не задан то группа корневая. | Int | Нет
TIMESTAMP_X | Дата последнего изменения параметров группы. | Datetime | Да | Текущая.
SORT | Порядок сортировки (среди групп внутри одной группы-родителя). | Int | Да | 500
NAME | Наименование группы. | String(255) | Да
ACTIVE | Флаг активности (Y|N) | Char(1) | Да | Y
GLOBAL_ACTIVE Флаг активности, учитывая активность вышележащих (родительских) групп (Y|N). Вычисляется автоматически (не может быть изменен вручную). Char(1) - -
PICTURE Код картинки в таблице файлов. Для смены картинки нужно передать массив вида:
$section = new CIBlockSection();
                    $file = CFile::MakeFileArray($pictureId);
                    $result = $section->Update(
                        $sectionId,
                        array(
                            "PICTURE" => $file,
                        )
                    );
 Int Нет
DESCRIPTION | Описание группы. | Text | Нет
DESCRIPTION_TYPE | Тип описания группы (text/html). | Char(4) | Да | text
LEFT_MARGIN Левая граница группы. Вычисляется автоматически (не устанавливается вручную). Int - -
RIGHT_MARGIN Правая граница группы. Вычисляется автоматически (не устанавливается вручную). Int - -
DEPTH_LEVEL Уровень вложенности группы. Вычисляется автоматически (не устанавливается вручную). Int - -
SEARCHABLE_CONTENT Содержимое для поиска при фильтрации групп. Вычисляется автоматически. Складывается из полей NAME и DESCRIPTION (без html тэгов, если DESCRIPTION_TYPE установлен в html). Text - -
SECTION_PAGE_URL Шаблон URL-а к странице для детального просмотра раздела. Определяется из параметров информационного блока. Изменяется автоматически. String(255) - -
MODIFIED_BY | Код пользователя, в последний раз изменившего элемент. | Int | Да | Текущий пользователь.
DATE_CREATE | Дата создания элемента. | Datetime | Да | Текущее
CREATED_BY | Код пользователя, создавшего элемент. | Int | Да | Текущий пользователь.
DETAIL_PICTURE Код картинки в таблице файлов для детального просмотра. Int Нет -
SECTION_PROPERTY Показывать на странице редактирования элемента. (Y/N) Int Нет -

Элементы (b_iblock_element)

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID элемента. | Int | Да |
CODE | Символьный идентификатор. | String(255) | Нет |
EXTERNAL_ID или XML_ID | Внешний идентификатор. | String(255) | Да |
NAME | Название элемента. | String(255) | Да |
IBLOCK_ID | ID информационного блока. | Int | Да |
IBLOCK_SECTION_ID | ID группы. Если не задан, то элемент не привязан к группе. Если элемент привязан к нескольким группам, то в этом поле ID одной из них. Эта группа будет основной для элемента, то есть её код или ID будет стоять в URL страницы элемента. По умолчанию содержит привязку к разделу с минимальным ID из массива идентификаторов поля IBLOCK_SECTION. | Int | Нет |
IBLOCK_SECTION | Массив идентификаторов групп, к которым относится элемент. | Int | Нет |
IBLOCK_CODE | Символический код инфоблока. | String(255) | Нет |
ACTIVE | Флаг активности (Y|N). | Char(1) | Да | Y
ACTIVE_FROM | Дата начала действия элемента. | Datetime | Нет |
ACTIVE_TO | Дата окончания действия элемента. | Datetime | Нет |
SORT | Порядок сортировки элементов между собой (в пределах одной группы-родителя). | Int | Да | 500
PREVIEW_PICTURE | Код картинки в таблице файлов для предварительного просмотра (анонса). | Int | Нет |
PREVIEW_TEXT | Предварительное описание (анонс). | Text | Нет |
PREVIEW_TEXT_TYPE | Тип предварительного описания (text/html). | Char(4) | Да | text
DETAIL_PICTURE | Код картинки в таблице файлов для детального просмотра. | Int | Нет |
DETAIL_TEXT | Детальное описание | Text | Нет |
DETAIL_TEXT_TYPE | Тип детального описания (text/html). | Char(4) | Да | text
SEARCHABLE_CONTENT | Содержимое для поиска при фильтрации групп. Вычисляется автоматически. Складывается из полей NAME и DESCRIPTION (без html тэгов, если DESCRIPTION_TYPE установлен в html). | Text | - | -
DATE_CREATE | Дата создания элемента. | Datetime | Да | Текущее.
CREATED_BY | Код пользователя, создавшего элемент. | Int | Да | Текущий пользователь.
CREATED_USER_NAME | Имя пользователя, создавшего элемент. (доступен только для чтения). |  |  |
TIMESTAMP_X | Время последнего изменения полей элемента. | Datetime | Да | Текущее.
MODIFIED_BY | Код пользователя, в последний раз изменившего элемент. | Int | Да | Текущий пользователь.
USER_NAME | Имя пользователя, в последний раз изменившего элемент. (доступен только для чтения). |  |  |
LANG_DIR | Путь к папке сайта. Определяется из параметров информационного блока. Изменяется автоматически. (доступен только для чтения). | String(255) | - | -
LIST_PAGE_URL | Шаблон URL-а к странице для публичного просмотра списка элементов информационного блока. Определяется из параметров информационного блока. Изменяется автоматически. (доступен только для чтения). | String(255) | - | -
DETAIL_PAGE_URL | Шаблон URL-а к странице для детального просмотра элемента. Определяется из параметров информационного блока. Изменяется автоматически. (доступен только для чтения). | String(255) | - | -
SHOW_COUNTER | Количество показов элемента (изменяется при вызове метода CIBlockElement::CounterInc). | Int | Нет |
SHOW_COUNTER_START | Дата первого показа элемента (изменяется при вызове метода CIBlockElement::CounterInc). | Datetime | Нет |
WF_COMMENTS | Комментарий администратора документооборота. | Text | Нет |
WF_STATUS_ID | Код статуса элемента в документообороте. | Int | Да | 1
LOCK_STATUS | Текущее состояние блокированности на редактирование элемента. Может принимать значения: red - заблокирован, green - доступен для редактирования, yellow - заблокирован текущим пользователем. | String | - |
TAGS | Теги элемента. Используются для построения облака тегов модулем Поиска. | String(255) | Нет |

Поля элементов (b_iblock_fields)

Поле | Описание | Тип | Обяз. | Умолч.
IBLOCK_ID | Код информационного блока. | Int | Да |
FIELD_ID | Код поля. | String(50) | Да |
IS_REQUIRED | Обязательное (Y|N). | Char(1) | Нет |
DEFAULT_VALUE | Значение по умолчанию | Text | Нет |

Свойства элементов (b_iblock_property)

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID свойства. | Int | Да
CODE | Символьный код свойства. | String(50) | Нет
XML_ID | Внешний код свойства. | String (100) | Нет
IBLOCK_ID | Код информационного блока. | Int | Да
NAME | Название свойства. | String(100) | Да
ACTIVE | Активность свойства (Y|N). | Char(1) | Да | Y
IS_REQUIRED
Обязательное (Y|N).
Char(1) Нет
SORT | Индекс сортировки. | Int | Да | 500
PROPERTY_TYPE | Тип свойства. Возможные значения: S - строка, N - число, F - файл, L - список, E - привязка к элементам, G - привязка к группам. | Char(1) | Да | S
MULTIPLE | Множественность (Y|N). | Char(1) | Да | N
TIMESTAMP_X | Время последнего изменения свойства. | Datetime | Да | Текущее.
DEFAULT_VALUE | Значение свойства по умолчанию (кроме свойства типа список L). | String(255) | Нет
ROW_COUNT | Количество строк в ячейке ввода значения свойства. | Int | Да | 1
COL_COUNT | Количество столбцов в ячейке ввода значения свойства. | Int | Да | 30
LIST_TYPE | Тип для свойства список (L). Может быть "L" - выпадающий список или "C" - флажки. | Char(1) | Да | L
MULTIPLE_CNT | Количество строк в выпадающем списке для свойств типа "список". | Int | Нет
FILE_TYPE | Список допустимых расширений для свойств файл "F"(через запятую). | Char(200) | Нет
SEARCHABLE | Индексировать значения данного свойства. | Char(1) | Да | N
FILTRABLE | Выводить поля для фильтрации по данному свойству на странице списка элементов в административном разделе. | Char(1) | Да | N
LINK_IBLOCK_ID | Для свойств типа привязки к элементам и группам задает код информационного блока с элементами/группами которого и будут связано значение. | Int | Нет
WITH_DESCRIPTION | Признак наличия у значения свойства дополнительного поля описания. Только для типов S - строка, N - число и F - файл (Y|N). | Char(1) | Нет
VERSION | Флаг хранения значений свойств элементов инфоблока (1 - в общей таблице | 2 - в отдельной). (доступен только для чтения). | Int | Да | 1
USER_TYPE Идентификатор пользовательского типа свойства. Дополнительная информация административной части, каким образом выводить для редактирования то или иное поле (в то время как поле "PROPERTY_TYPE" указывает именно на сам тип поля).

Например, типу поля "S" (строка) может соответствовать следующие значения поля "USER_TYPE" и соответствующие интерфейсные решения:

  • никакого - тогда это обычное поле ввода (или если указан параметр "ROW_COUNT" больше единицы, то текстовый блок textarea)
  • UserID - тогда это привязка к пользователю
  • DateTime - тогда это поле для ввода даты и времени
  • map_yandex - привязка к точке на Яндекс.Карте
  • FileMan - привязка к файлу на сервере
  • TopicID - привязка к теме на форуме
  • HTML - специальное поле для редактирования текста или кода HTML
  • ElementXmlID - привязка к элементам по полю XML_ID
  • map_google - привязка к точке на карте Google.Map
  • directory - привязка к разделу на сервере
String(255) Нет
USER_TYPE_SETTINGS | Настройки пользовательского типа. | Text | Нет
HINT | Подсказка | Char | Нет

Значения свойств "список" (b_iblock_property_enum)

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID значения варианта свойства. | Int | Да |
PROPERTY_ID | Код свойства. | Int | Да |
VALUE | Значение варианта свойства. | String(255) | Да |
DEF | Значение по умолчанию (Y|N). | Char(1) | Нет | N
SORT | Порядок сортировки варианта | Int | Нет | 500
EXTERNAL_ID или XML_ID | Внешний код варианта свойства. | String(200) | Да | Автоматический уникальный идентификатор

Значения cвойств элемента (b_iblock_element_property)

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID значения свойства. | Int | Да |
IBLOCK_PROPERTY_ID | Код свойства. | Int | Да |
IBLOCK_ELEMENT_ID | Код элемента. | Int | Да |
VALUE | Значение свойства. | Text | Да |
VALUE_TYPE | Тип значения свойства (text/html). | Char(4) | Да | text
VALUE_ENUM | Представление значения свойства в виде целого числа. | Int | Нет |
VALUE_NUM | Представление значения свойства в виде числа с плавающей точкой. | Float | Нет |
DESCRIPTION | Дополнительное поле описания | String(255) | Нет |

Свойства разделов (b_iblock_section_property)

Поле | Описание | Тип | Обяз. | Умолч.
IBLOCK_ID | ID информационного блока. | Int | Да
SECTION_ID | ID раздела. | Int | Да
PROPERTY_ID | ID свойства. | Int | Да
SMART_FILTER | Показывать свойство в умном фильтре (Y|N). | Char(1) | Нет
DISPLAY_TYPE Вид в умном фильтре:
  • A - Число от-до, с ползунком;
  • B - Число от-до;
  • F - Флажки;
  • G - Флажки с картинками;
  • H - Флажки с названиями и картинками;
  • K - Радиокнопки;
  • P - Выпадающий список;
  • R - Выпадающий список с названиями и картинками.
 Char(1) Нет
DISPLAY_EXPANDED | Показать свойство в фильтре развёрнутым (Y|N). | Char(1) | Нет
FILTER_HINT | Подсказка в умном фильтре для посетителей. | String(255) | Нет

Привязка элементов к разделам (b_iblock_section_element)

Автоматическая таблица

Поле | Описание | Тип | Обяз. | Умолч.
IBLOCK_SECTION_ID | ID раздела. | Int | Да |
IBLOCK_ELEMENT_ID | ID элемента. | Int | Да |
ADDITIONAL_PROPERTY_ID | Признак привязки через свойство (Y|N). | Char(1) | Да |

Генераторы последовательностей для свойства "счётчик" (b_iblock_sequence)

Автоматическая таблица.

Поле | Описание | Тип | Обяз. | Умолч.
IBLOCK_ID | ID информационного блока. | Int | Да |
CODE | Код счётчика. | String(50) | Да |
SEQ_VALUE | Значение счётчика. | Int | Да |

SEO свойства (b_iblock_iproperty)

Поле | Описание | Тип | Обяз. | Умолч.
ID | Идентификатор. | Int | Да |
IBLOCK_ID | ID информационного блока. | Int | Да |
CODE | Код свойства. | String(50) | Да |
ENTITY_TYPE | Тип привязки (B|S|E). | Char(1) | Да |
ENTITY_ID | ID привязки. | Int | Да |
TEMPLATE | Шаблон для вычислений значений свойства. | Text | Да |

Права доступа

Права доступа в стандартном режиме (b_iblock_group)

Поле | Описание | Тип | Обяз. | Умолч.
IBLOCK_ID | ID информационного блока. | Int | Да |
GROUP_ID | Идентификатор группы пользователей. | Int | Да |
PERMISSION | Буква разрешения (чем больше, тем выше права). | Char(1) | Да |

Права доступа в расширенном режиме (b_iblock_right)

Поле | Описание | Тип | Обяз. | Умолч.
ID | Идентификатор. | Int | Да |
IBLOCK_ID | ID информационного блока. | Int | Да |
GROUP_CODE | Код доступа (токен). | String(50) | Да |
ENTITY_TYPE | Сущность привязки (IBLOCK|SECTION|ELEMENT). | String(32) | Да |
ENTITY_ID | ID привязки. | Int | Да |
DO_INHERIT | Признак наследования (всегда Y). | Char(1) | Да |
TASK_ID | ID уровня доступа. | Int | Да |
OP_SREAD | Для оптимизации. Признак возможности чтения раздела (Y|N). | Char(1) | Нет |
OP_EREAD | Для оптимизации. Признак возможности чтения элемента (Y|N). | Char(1) | Нет |
XML_ID | Внутреннее поле.

Расширенный доступ к разделам (b_iblock_section_right)

Автоматическая таблица

Поле | Описание | Тип | Обяз. | Умолч.
IBLOCK_ID | ID информационного блока. | Int | Да |
SECTION_ID | ID раздела. | Int | Да |
RIGHT_ID | Идентификатор права доступа (b_iblock_right.ID). | Int | Да |
IS_INHERITED | Признак наследования (Y|N). | Char(1) | Да |

Расширенный доступ к элементам (b_iblock_element_right)

Автоматическая таблица

Поле | Описание | Тип | Обяз. | Умолч.
IBLOCK_ID | ID информационного блока. | Int | Да |
SECTION_ID | ID раздела. | Int | Да |
ELEMENT_ID | ID элемента. | Int | Да |
RIGHT_ID | Идентификатор права доступа (b_iblock_right.ID). | Int | Да |
IS_INHERITED | Признак наследования (Y|N). | Char(1) | Да |

Блокировка элементов

b_iblock_element_lock

Используется модулем Бизнес-процессов.

Поле | Описание | Тип | Обяз. | Умолч.
IBLOCK_ELEMENT_ID | ID элемента. | Int | Да |
DATE_LOCK | Когда элемент был заблокирован. | Datetime | Да |
LOCKED_BY | Кем был заблокирован. | String(32) | Да |


RSS

Описание

RSS - формат, предназначенный для обмена информацией (прежде всего новостями) между сайтами. Формат RSS является диалектом XML. Получить полную информацию по формату RSS 2.0 можно по адресу http://backend.userland.com/rss [image].

Терминология

Канал
Информационный блок в RSS формате.
Сайт-сервер
Сайт, который экспортирует (отдает) информацию в формате RSS.
Сайт-клиент
Сайт, который импортирует (принимает) информацию в формате RSS.
Кеширование
Временное хранение информации, полученной с сайта-сервера, на сайте-клиенте для ускорения повторного доступа к ней.
Узел (элемент) канала
Элемент информационного блока (например, новость или товар) в RSS формате.

Экспорт в RSS

Существует три способа экспорта содержимого информационного блока в формат RSS

Динамическая ("на лету") генерация RSS файла по запросу сайта-клиента.

Для включения этого способа необходимо на сайте-сервере поставить флаг Разрешен экспорт в RSS динамически в настройках информационного блока и установить в поле Действительно (часов) время, через которое сайт-клиент должен будет перезапрашивать данные с сайта-сервера (между перезапросами сайт-клиент будет выводить данные из кеша).

Для доступа к RSS файлу сайт-клиент должен запросить скрипт /bitrix/rss.php с сайта-сервера с параметрами ID, LANG, TYPE и LIMIT.

Параметры запроса
Параметр | Описание
ID | Код информационного блока или символьный код инфоблока.
LANG | Сайт информационного блока.
TYPE | Тип информационного блока.
LIMIT | Сколько элементов информационного блока выдавать.

Пример запроса
http://www.ваш_сайт.ru/bitrix/rss.php?ID=3&LANG=ru&TYPE=news&LIMIT=3

Прегенерация RSS файла

Для включения этого способа необходимо на сайте-сервере поставить флаг Разрешен экспорт в RSS файл в настройках информационного блока и установить поля Количество экспортируемых в RSS файл элементов (ограничивает максимальное количество экспортируемых в файл элементов, -1 для отсутствия ограничений) и За сколько последних дней экспортировать в RSS файл (ограничивает экспортируемые в файл элементы заданным количеством последних дней по началу периода активности элемента, -1 для отсутствия ограничений).

RSS будет генерироваться с периодичностью, заданной в поле Действительно (часов), и сохраняться в файл с именем типа iblock_rss_<ID блока>.xml в каталог, заданный в настройках модуля информационных блоков.

Для доступа к RSS файлу сайт-клиент должен запросить файл http://<сайт-сервер>/<путь из настроек модуля информационных блоков>/iblock_rss_<ID блока>.xml.

Примеры запроса

http://www.ваш_сайт.ru/upload/iblock_rss_3.xml

Прегенерация RSS файла в Yandex-формате.

Этот формат служит для отправки новостей службе Яндекс.Новости и отличается от предыдущих форматов наличием дополнительной ветки, содержащей полный текст элемента информационного блока. Для включения этого способа необходимо на сайте-сервере поставить флаг Разрешен экспорт в RSS файл в формате yandex в настройках информационного блока. В этом случае элементы информационного блока выбираются за последние два дня без ограничения количества.

RSS будет генерироваться с периодичностью, заданной в поле Действительно (часов), и сохраняться в файл с именем типа yandex_rss_<ID блока>.xml в каталог, заданный в настройках модуля информационных блоков.

Для доступа к RSS файлу сайт-клиент должен запросить файл http://<сайт-сервер>/<путь из настроек модуля информационных блоков>/yandex_rss_<ID блока>.xml.

Пример запроса
http://www.ваш_сайт.ru/upload/yandex_rss_3.xml

Структура элемента канала в RSS файле

По умолчанию при генерации RSS узел <item> строится следующим образом:

<item>
  <title>Поле Название элемента информационного блока</title>
  <link>Поле URL страницы детального просмотра информационного блока</link>
  <description>Поле Описание для анонса элемента информационного блока, если оно заполнено. Иначе поле Описание для детального просмотра элемента информационного блока.</description>
  <pubDate>Поле Период активности элемента информационного блока.</pubDate>
  <enclosure url="Адрес изображения, загруженого в поле Описание для анонса элемента информационного блока." length="Размер файла изображения" type="Тип файла изображения" width="Ширина файла изображения" height="Высота файла изображения"/>
  <yandex:full-text>Только в Yandex-формате. Поле Описание для детального просмотра элемента информационного блока.</yandex:full-text>
</item>

Изменить генерацию можно на странице редактирования информационного блока в разделе Привязка полей для выгрузки в RSS. Поля RSS могут принимать любые текстовые значения. Кроме того можно использовать параметры, которые при генерации будут заменены на реальные данные. Параметры записываются в виде #ИМЯ#. В качестве имени параметра могут быть использованы коды свойств, а так же следующие значения:

  • NAME - заголовок элемента информационного блока;
  • DETAIL_PAGE_URL - адрес страницы с детальной информацией об элементе;
  • PREVIEW_TEXT - описание для анонса;
  • DETAIL_TEXT - описание для детального просмотра;
  • ACTIVE_FROM - начало периода активности/

Импорт из RSS

Для получения информации на сайте-клиенте следует воспользоваться методом GetNewsEx класса CIBlockRSS. Метод GetNews также доступен, но не рекомендуется к использованию как устаревший.

array
CIBlockRSS::GetNewsEx(
 SITE,
 PORT,
 PATH,
 QUERY_STR
);

Функция возвращает канал из кэша (если он не устарел) или с сайта-сервера.

Параметры запроса

SITE | Адрес сайта-сервера. Например, "www.ваш_сайт".
PORT | Порт сайта-сервера. Например, 80.
PATH | Путь к скрипту, генерирующему RSS на сайте-сервере. Например, "/bitrix/rss.php".
QUERY_STR | Строка запроса, если она необходима. Например, ID=3&LANG=ru&TYPE=news&LIMIT=5. Обратите внимание, что строка запроса должна строиться на основании спецификации HTTP.

Возвращаемое значение

Функция возвращает массив, содержащий данные запрошеного RSS файла.

Примеры использования

<?
CModule::IncludeModule("iblock");
$arRes = CIBlockRSS::GetNewsEx("www.bitrix.ru", 80, "/bitrix/rss.php", "ID=3&LANG=ru&TYPE=news&LIMIT=5");
$arRes = CIBlockRSS::FormatArray($arRes);

echo $arRes["title"];          // Название канала/блока
echo $arRes["link"];           // Ссылка на сайт-сервер
echo $arRes["description"];    // Описание канала/блока
echo $arRes["lastBuildDate"];  // Дата генерации файла на сайте-сервере
echo $arRes["ttl"];            // Через сколько часов обновить с сайта-сервера

echo $arRes["image"]["title"];   // Заголовок изображения блока/канала, если есть
echo $arRes["image"]["url"];     // Ссылка на файл изображения блока/канала, если есть
echo $arRes["image"]["width"];   // Ширина изображения блока/канала, если есть
echo $arRes["image"]["height"];  // Высота изображения блока/канала, если есть

echo $arRes["item"][0]["title"];       // Заголовок первой новости
echo $arRes["item"][1]["title"];       // Заголовок второй новости
echo $arRes["item"][1]["link"];        // Ссылка на вторую новость
echo $arRes["item"][1]["description"]; // Описание второй новости
echo $arRes["item"][1]["pubDate"];     // Дата публикации второй новости
echo $arRes["item"][1]["enclosure"]["url"];     // Ссылка на файл-вложение второй новости
echo $arRes["item"][1]["enclosure"]["length"];  // Размер файла-вложения второй новости
echo $arRes["item"][1]["enclosure"]["type"];    // MIME тип файла-вложения второй новости
echo $arRes["item"][1]["enclosure"]["width"];   // Ширина файла-вложения картинки
echo $arRes["item"][1]["enclosure"]["height"];  // Высота файла-вложения картинки

?>

<?
CModule::IncludeModule("iblock");
$arRes = CIBlockRSS::GetNewsEx("www.bitrix.ru", 80, "/bitrix/rss.php", "ID=demo&LANG=ru&TYPE=news&LIMIT=5");
$arRes = CIBlockRSS::FormatArray($arRes);
?>
<b><?echo $arRes["title"] ?></b><br>

<table cellpadding="2" cellspacing="0" border="0" width="80%">
  <?for ($i = 0; $i < count($arRes["item"]); $i++):?>
  <tr>
    <td width="100%">
      <font class="date">
        <?echo $arRes["item"][$i]["pubDate"]?>
      </font>&nbsp;|&nbsp;
      <?if (strlen($arRes["item"][$i]["link"])>0):?>
        <a href="<?echo $arRes["item"][$i]["link"]?>" class="zag">
      <?endif;?>
      <?echo $arRes["item"][$i]["title"]?>
      <?if (strlen($arRes["item"][$i]["link"])>0):?>
        </a>
      <?endif;?>
      <br>
    </td>
  </tr>
  <tr>
    <td valign="top" width="100%">
      <?if (strlen($arRes["item"][$i]["enclosure"]["url"])>0):?>
        <table cellpadding="0" cellspacing="0" border="0" align="left">
          <tr>
            <td valign="top">
              <img src="<?echo $arRes["item"][$i]["enclosure"]["url"] ?>" width="<?echo $arRes["item"][$i]["enclosure"]["width"] ?>" height="<?echo $arRes["item"][$i]["enclosure"]["height"]?>" border="0">
            </td>
          </tr>
        </table>
      <?endif;?>
      <font class="text">
        <?echo $arRes["item"][$i]["description"];?>
        <br>
      </font>
    </td>
  </tr>
  <?endfor;?>
</table>


Классы

Классы модуля Информационные блоки.

Класс | Описание | С версии
CIBlock | Класс для работы с информационными блоками. | 3.0.3
CIBlockElement | Класс для работы с элементами информационных блоков. | 3.0.5
CIBlockFormatProperties | Конвертирует дату в нужный формат. | 5.9.0
CIBlockPriceTools |  | 5.9.0
CIBlockProperty | класс для работы со свойствами информационных блоков. | 3.0.3
CIBlockPropertyEnum | Класс для работы с вариантами значений для свойств типа "список". | 3.1.3
CIBlockResult | Вспомогательный класс для работы с объектами результатов выборок. | 3.0.5
CIBlockRSS | Класс для работы с RSS лентами. | 3.0.14
CIBlockSection | Класс для работы с группами информационных блоков. | 3.0.4
CIBlockType | Класс для работы с типами информационных блоков. | 3.1.3
CIBlockXMLFile | Класс для работы с файлами XML. | 6.5.0
Пользовательские свойства | Позволяют изменять представление (формы ввода и т.п.) стандартных свойств расширяя их возможности. | 5.1.0
_CIBElement | Вспомогательный класс для работы с объектом выборки элемента. | 3.1.3

Примечание: при использовании методов учтите, что время в полях используется в формате сайта, время в свойствах используется в формате: YYYY-MM-DD HH:MI:SS.


CIBlock

CIBlock - класс для работы с информационными блоками

Методы класса

Метод | Описание | С версии
GetList | Возвращает список информационных блоков по фильтру. | 3.0.3
GetSite | Возвращает список сайтов для информационного блока. | 3.3.8
GetByID | Возвращает информационный блок по его ID. | 3.0.3
GetProperties | Возвращает свойства информационного блока. | 3.0.3
GetPermission | Определяет право доступа для текущего пользователя. | 3.0.3
Add | Добавляет новый информационный блок. | 3.0.3
AddPanelButtons | Метод добавляет в панель управления кнопки, отвечающие за управление элементами инфоблока. | 8.5.1
Update | Изменяет информационный блок. | 3.0.3
Delete | Удаляет информационный блок. | 3.0.3
SetPermission | Устанавливает права доступа на информационный блок. | 3.0.3
GetGroupPermissions | Возвращает все права доступа для информационного блока. | 3.0.3
ShowPanel | Добавляет кнопки для управления блоками, группами и элементами в верхнюю панель. | 3.0.13
GetArrayByID | Возвращает массив полей информационного блока. | 6.5.0
SetMessages | Устанавливает значения дополнительных полей инфоблока. | 7.0.0
GetMessages | Возвращает значения дополнительных полей инфоблока. | 7.0.0
GetPanelButtons | Метод возвращает массив, описывающий набор кнопок для управления элементами инфоблока. | 8.5.1
SetFields | Изменяет описание полей элементов инфоблоков. | 7.0.8
GetFields | Возвращает описание полей элементов инфоблоков. | 7.0.8
GetElementCount | Возвращает количество элементов информационного блока. | 5.0.2
ResizePicture | Выполняет масштабирование файла. | 7.0.8
isUniqueElementCode | Проверяет, включено ли в инфоблоке требование уникальности символьного кода элементов. | 21.700.0
isUniqueSectionCode | Проверяет, включено ли в инфоблоке требование уникальности символьного кода разделов. | 21.700.0


Add

Информационные блоки>Классы>CIBlock>Add (доступен с 3.0.3)

CIBlock::Add

Описание и параметры

int
 CIBlock::Add(
 array arFields
);

Метод добавляет новый информационный блок. Модифицировать поля, а также отменить создание инфоблока можно добавив обработчик события OnBeforeIBlockAdd. После успешного добавления инфоблока вызываются обработчики события OnAfterIBlockAdd. Нестатический метод.

Параметры вызова

Параметр | Описание
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей информационного блока. Дополнительно в поле SITE_ID должен находиться массив идентификаторов сайтов, к которым привязан добавляемый информационный блок. Кроме того, с помощью поля "GROUP_ID", значением которого должен быть массив соответствий кодов групп правам доступа, можно установить права для разных групп на доступ к информационному блоку(см. CIBlock::SetPermission()). Если задано поле "FIELDS", то будут выполнены настройки полей инфоблока (см. CIBlock::SetFields). Кроме того, предусмотрено поле "VERSION", определяющее способ хранения значений свойств элементов инфоблока (1 - в общей таблице | 2 - в отдельной). По умолчанию принимает значение 1. Если необходимо добавить инфоблок с поддержкой бизнес-процессов, то следует указать два дополнительных поля: BIZPROC, принимающее значение Y, и WORKFLOW, принимающее значение N.

Возвращаемое значение

Метод возвращает код добавленного информационного блока, если добавление прошло успешно, при возникновении ошибки метод вернет false, а в свойстве объекта LAST_ERROR будет содержаться текст ошибки.

Смотрите также

  • CIBlock::Update
  • Поля информационного блока
  • OnBeforeIBlockAdd
  • OnAfterIBlockAdd
  • CIBlock::SetFields

Примеры использования

<?
$arPICTURE = $_FILES["PICTURE"];
$ib = new CIBlock;
$arFields = Array(
  "ACTIVE" => $ACTIVE,
  "NAME" => $NAME,
  "CODE" => $CODE,
  "LIST_PAGE_URL" => $LIST_PAGE_URL,
  "DETAIL_PAGE_URL" => $DETAIL_PAGE_URL,
  "IBLOCK_TYPE_ID" => $type,
  "SITE_ID" => Array("en", "de"),
  "SORT" => $SORT,
  "PICTURE" => $arPICTURE,
  "DESCRIPTION" => $DESCRIPTION,
  "DESCRIPTION_TYPE" => $DESCRIPTION_TYPE,
  "GROUP_ID" => Array("2"=>"D", "3"=>"R")
  );
if ($ID > 0)
  $res = $ib->Update($ID, $arFields);
else
{
  $ID = $ib->Add($arFields);
  $res = ($ID>0);
}
?>


AddPanelButtons

Информационные блоки>Классы>CIBlock>AddPanelButtons (доступен с 8.5.1)

CIBlock::AddPanelButtons

CIBlock::AddPanelButtons(
 string mode,
 string componentName,
 array arButtons
);

Метод добавляет в панель управления кнопки, отвечающие за управление элементами инфоблока (в методе производится вызов CMain::AddPanelButton). Нестатический метод.

Параметры вызова

Параметр | Описание
mode | Режим отображения административной панели. Возвращается методом CMain::GetPublicShowMode.
componentName | Название компонента, который регистрирует кнопки. Возвращается методом CBitrixComponent::GetName.
arButtons | Массив кнопок, которые можно зарегистрировать с учётом текущих прав пользователя. Формируется методом CIBlock::GetPanelButtons.

Смотрите также

  • CMain::AddPanelButton
  • CMain::GetPublicShowMode
  • CBitrixComponent::GetName
  • CIBlock::GetPanelButtons


Delete

Информационные блоки>Классы>CIBlock>Delete (доступен с 3.0.3)

CIBlock::Delete

bool
  CIBlock::Delete(
 int ID
);

Метод удаляет информационный блок. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код информационного блока.

Возвращаемое значение

Возвращается true в случае успешного удаления и false - в противном случае. Удаление можно отменить в обработчике события OnBeforeIBlockDelete.

Примеры использования

<?
if($USER->IsAdmin())
{
    $DB->StartTransaction();
    if(!CIBlock::Delete($iblock_id))
    {
        $strWarning .= GetMessage("IBLOCK_DELETE_ERROR");
        $DB->Rollback();
    }
    else
        $DB->Commit();
}
?>


GetArrayByID

Информационные блоки>Классы>CIBlock>GetArrayByID (доступен с 6.5.0)

CIBlock::GetArrayByID

array
CIBlock::GetArrayByID(
 int ID,
 string FIELD = ""
);

Возвращает массив полей информационного блока. Метод статический.

Примечание: если инфоблока с таким ID не существует, то метод вернет false.

Параметры вызова

Параметр | Описание
ID | Идентификатор информационного блока
FIELD | Идентификатор поля. Если этот параметр задан, то метод вернет значение конкретного поля.

Возвращаемое значение

Массив полей инфоблока.

Смотрите также

  • Поля инфоблока

Примеры использования

<?
echo CIBlock::GetArrayByID($IBLOCK_ID, "NAME");
?>


GetByID

Информационные блоки>Классы>CIBlock>GetByID (доступен с 3.0.3)

CIBlock::GetByID

CDBResult
CIBlock::GetByID(
 int ID
);

Возвращает информационный блок по его коду ID. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код информационного блока.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля результата

Примеры использования

<?
$res = CIBlock::GetByID($_GET["BID"]);
if($ar_res = $res->GetNext())
  echo $ar_res['NAME'];
?>


GetElementCount

Информационные блоки>Классы>CIBlock>GetElementCount (доступен с 5.0.2)

CIBlock::GetElementCount

int
CIBlock::GetElementCount(
 int iblock_id
);

Метод возвращает количество элементов информационного блока. Нестатический метод.

Примечание: активность элементов и права доступа не учитываются.

Параметры вызова

Параметр | Описание
iblock_id | Код информационного блока. До версии 7.1.5 параметр назывался BID.

Возвращаемое значение

Целое число.


GetFields

Информационные блоки>Классы>CIBlock>GetFields (доступен с 7.0.8)

CIBlock::GetFields

array
CIBlock::GetFields(
 int ID
);

Метод возвращает описание полей элементов инфоблоков. Структура массива описана в CIBlock::SetFields. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код информационного блока.

Возвращаемое значение

Массив.

Смотрите также

  • CIBlock::SetFields


GetGroupPermissions

Информационные блоки>Классы>CIBlock>GetGroupPermissions (доступен с 3.0.3)

CIBlock::GetGroupPermissions

Описание и параметры

array
CIBlock::GetGroupPermissions(
 int ID
);

Возвращает права доступа к информационному блоку ID для всех групп пользователей. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код информационного блока.

Возвращаемое значение

Массив прав вида Array("ID группы"=>"Право доступа"[, ...]). Право доступа может принимать значение:
"R" - чтение,
"U" - изменение через документооборот,
"W" - изменение,
"X" - полный доступ (изменение + право изменять права доступа).

Смотрите также

  • GetPermission

Примеры использования

<?
// выбор списка пользователей, имеющих право доступа на чтение инфоблока $IBLOCK_ID
$gr_res = CIBlock::GetGroupPermissions($IBLOCK_ID);
$res = Array(1);
foreach($gr_res as $group_id=>$perm)
if($perm>"R")
   $res[] = $group_id;
$res = CUser::GetList($by="NAME", $order="ASC", Array("GROUP_MULTI"=>$res));
?>


GetList

Информационные блоки>Классы>CIBlock>GetList (доступен с 3.0.3)

CIBlock::GetList

Описание

CDBResult CIBlock::GetList(
 array arOrder = Array("SORT"=>"ASC"),
 array arFilter = Array(),
 bool bIncCnt = false
);

Возвращает список информационных блоков по фильтру arFilter отсортированный в порядке arOrder. Метод статический.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля CIBlock

Параметры вызова

Параметр | Описание | С версии
arOrder Массив для сортировки результата. Содержит пары "поле сортировки"=>"направление сортировки". Поле для сортировки может принимать значения:
  • id - код инфоблока;
  • iblock_type - тип инфоблоков;
  • name - название инфоблока;
  • active - активность;
  • code - символьный код;
  • sort - индекс сортировки;
  • element_cnt - количество элементов (только если bIncCnt = true);
  • timestamp_x - дата последнего изменения.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ACTIVE - фильтр по активности (Y|N);
  • NAME - по названию (можно искать по шаблону [%_]);
  • EXTERNAL_ID, XML_ID - по внешнему коду (можно искать по шаблону [%_]);
  • SITE_ID - по сайту;
  • TYPE - по типу инфоблоков (можно искать по шаблону [%_]);
  • CODE - по символьному коду (можно искать по шаблону [%_]);
  • ID - по коду;
  • VERSION - по флагу хранения значений свойств элементов инфоблока;
  • SOCNET_GROUP_ID - по идентификатору группы социальной сети в которой используется инфоблок;
  • CNT_ACTIVE - только если bIncCnt = true. Если значение Y, то при подсчете элементов будут учитываться только активные элементы, при любом другом значении все элементы;
  • CNT_ALL - только если bIncCnt = true. Если значение Y, то при подсчете элементов будут учитываться и те элементы, которые ещё не были опубликованы. При любом другом значении все элементы;
  • MIN_PERMISSION - фильтр по правам доступа, по умолчанию принимает R (уровень доступа Чтение).
  • CHECK_PERMISSIONS - если "N", то права на доступ не проверяются.
    Если проверка прав не нужна, то для ускорения запроса следует указывать значение "N". Кроме того, если не указать данный параметр в фильтре или при создании инфоблока не изменить параметр по умолчанию "нет доступа", то результат выдачи обычному пользователю будет пустым.
  • PERMISSIONS_BY - фильтрация по правам произвольного пользователя. Значение - ID пользователя или 0 (неавторизованный).
Перед названием фильтруемого поля можно указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно
Все фильтруемые поля кроме (CHECK_PERMISSIONS, MIN_PERMISSION, CNT_ALL и CNT_ACTIVE) могут содержать перед названием тип проверки фильтра [image].
"значения фильтра" - одиночное значение или массив.

Необязательное. По умолчанию записи не фильтруются.
bIncCnt | Возвращать ли количество элементов в информационном блоке в поле ELEMENT_CNT. Необязательный параметр, по умолчанию равен false. | 3.0.6

Примеры использования

Примечание: при копировании кода в свой проект рекомендуется убрать необязательный параметр bIncCnt (если он не используется), чтобы избежать проблем с производительностью.

<?
// выберем все активные информационные блоки для текущего сайта типа catalog
// у которых символьный код не my_products, со счетчиком активных элементов.
$res = CIBlock::GetList(
    Array(),
    Array(
        'TYPE'=>'catalog',
        'SITE_ID'=>SITE_ID,
        'ACTIVE'=>'Y',
        "CNT_ACTIVE"=>"Y",
        "!CODE"=>'my_products'
    ), true
);
while($ar_res = $res->Fetch())
{
    echo $ar_res['NAME'].': '.$ar_res['ELEMENT_CNT'];
}
?>


GetMessages

Информационные блоки>Классы>CIBlock>GetMessages (доступен с 7.0.0)

CIBlock::GetMessages

array
CIBlock::GetMessages(
 int ID,
 string type=""
);

Метод возвращает значения дополнительных полей инфоблока. Метод статический.

Параметры вызова

Параметр | Описание | С версии
ID | Код инфоблока. |
type | Код типа инфоблоков. Параметр используется только тогда, когда инфоблок с указанным ID не найден или указан 0. В этом случае берутся значения дополнительных полей из этого типа. Если ID задан и такой инфоблок есть, то параметр type игнорируется. | 8.6.3

Возвращаемое значение

Массив значений дополнительных полей инфоблока.

Смотрите также

  • CIBlock::SetMessages
  • Дополнительные поля


GetPanelButtons

Информационные блоки>Классы>CIBlock>GetPanelButtons (доступен с 8.5.1)

CIBlock::GetPanelButtons

Описание и параметры

array
CIBlock::GetPanelButtons(
 int IBLOCK_ID=0,
 int ELEMENT_ID=0,
 int SECTION_ID=0,
 array arOptions=array()
);

Метод возвращает массив, описывающий набор кнопок для управления элементами инфоблока. Метод статический.

Параметры вызова

Параметр | Описание
IBLOCK_ID | Идентификатор инфоблока, которому принадлежит элемент.
ELEMENT_ID | Идентификатор текущего элемента информационного блока.
SECTION_ID | Идентификатор раздела инфоблока (при наличии).
arOptions | Массив, содержащий локализацию названий и всплывающих подсказок к ним. Должен содержать секцию LABELS, в которой ключами будут названия действий с элементами и разделами информационных блоков с префиксами TEXT и TITLE (ELEMENT_ADD_TEXT и ELEMENT_ADD_TITLE). Если массив отсутствует, то настройки локализации берутся из настроек информационных блоков, которые возвращаются методом CIBlock::GetArrayByID.

Возвращаемое значение

Массив, описывающий набор кнопок (добавление, редактирование, настройка и пр.) с учётом уровней права доступа к информационным блокам.

Смотрите также

  • Дополнительные параметры информационных блоков
  • CIBlock::GetArrayByID


GetPermission

Информационные блоки>Классы>CIBlock>GetPermission (доступен с 3.0.3)

CIBlock::GetPermission

Описание и параметры

string
 CIBlock::GetPermission(
 int IBLOCK_ID,
 int FOR_USER_ID = false
);

Возвращает право доступа к информационному блоку IBLOCK_ID для пользователя с кодом FOR_USER_ID или для текущего пользователя (если код не задан). Нестатический метод.

Примечание: метод считается устаревшим (не работает при использовании расширенных прав). Рекомендуется использовать CIBlockElementRights::UserHasRightTo и CIBlockSectionRights::UserHasRightTo.

Параметры вызова

Параметр | Описание | С версии
IBLOCK_ID | Код информационного блока. |
FOR_USER_ID | Код пользователя. Необязательный параметр. До версии 11.5.1 параметр назывался USER_ID. | 8.5.0

Возвращаемое значение

Символ права доступа: "D" - запрещён, "R" - чтение, "U" - изменение через документооборот, "W" - изменение, "X" - полный доступ (изменение + право изменять права доступа).

Смотрите также

  • CIBlock::GetGroupPermissions
  • CUser::GetUserGroupString

Примеры использования

<?
$iblock_permission = CIBlock::GetPermission($id);
if($iblock_permission<"X")
        return false;
?>


GetProperties

Информационные блоки>Классы>CIBlock>GetProperties (доступен с 3.0.3)

CIBlock::GetProperties

Описание и параметры

CDBResult CIBlock::GetProperties(
 int iblock_id,
 array arOrder=Array(),
 array arFilter=Array()
);
Возвращает свойства информационного блока iblock_id с возможностью сортировки и дополнительной фильтрации. Нестатический метод.

Примечание: по умолчанию метод учитывает права доступа к информационному блоку. Для отключения проверки необходимо в параметре arFilter передать ключ "CHECK_PERMISSIONS" со значением "N".

Параметры вызова

Параметр | Описание
iblock_id | Код информационного блока.
arOrder | Массив для сортировки результата. Содержит пары "поле сортировки"=>"направление сортировки". Поля сортировки см. CIBlockProperty::GetList().
arFilter | Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемые поля и их значения смотрите в CIBlockProperty::GetList().

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • Поля свойств
  • CIBlockProperty::GetList()

Примеры использования

<?
$res = CIBlock::GetProperties($IBLOCK_ID, Array(), Array("CODE"=>"SRC"));
if($res_arr = $res->Fetch())
    $SrcPropID = $res_arr["ID"];
else
{
    $arFields = Array(
        "NAME" 			=> "Источник импорта",
        "ACTIVE" 		=> "Y",
        "SORT" 			=> "1000",
        "DEFAULT_VALUE" => "",
        "CODE" 			=> "SRC",
        "ROW_COUNT" 	=> "1",
        "COL_COUNT" 	=> "10",
        "MULTIPLE"	 	=> "N",
        "MULTIPLE_CNT" 	=> "",
        "PROPERTY_TYPE"	=> "S",
        "LIST_TYPE" 	=> "L",
        "IBLOCK_ID" 	=> $IBLOCK_ID
        );
    $ibp = new CIBlockProperty;
    $SrcPropID = $ibp->Add($arFields);
    if(IntVal($SrcPropID)<=0)
        $strWarning .= $ibp->LAST_ERROR."<br>";
}
?>


GetSite

Информационные блоки>Классы>CIBlock>GetSite (доступен с 3.3.8)

CIBlock::GetSite

Описание и параметры

CDBResult
CIBlock::GetSite(
 int iblock_id
);

Метод возвращает список сайтов к которым привязан инфоблок. Метод статический.

Параметры вызова

Параметр | Описание
iblock_id | Идентификатор информационного блока.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля CSite

Примеры использования

<?
$SITES = '';
$rsSites = CIBlock::GetSite($IBLOCK_ID);
while($arSite = $rsSites->Fetch())
    $SITES .= ($SITES!=""?" / ":"").htmlspecialchars($arSite["SITE_ID"]);
?>


isUniqueElementCode

Информационные блоки>Классы>CIBlock>isUniqueElementCode (21.700.0)

CIBlock::isUniqueElementCode

CIBlock::isUniqueElementCode(
 int $id
): bool;

Метод проверяет, включено ли в инфоблоке требование уникальности символьного кода элементов. Метод статический.

Параметры вызова

Параметр | Описание
$id | Идентификатор инфоблока (тип int).

Возвращаемое значение

Возвращается true, если в настройках поля [dw]Символьный код[/dw][di] [image] [/di] (CODE) установлен параметр "Если код задан, то проверять на уникальность". В противном случае возвращается false.

Для отрицательных значений вернется false. Для несуществующих инфоблоков результат зависит от того, что вернет метод CIBlock::GetFieldsDefaults (настройки полей по умолчанию).

Примеры использования

<?
$id = 10;
if (CIBlock::isUniqueElementCode($id))
{
    echo 'У инфоблока с кодом '.$id.' включена проверка на уникальность символьных кодов элементов';
}
?>


isUniqueSectionCode

Информационные блоки>Классы>CIBlock>isUniqueSectionCode (21.700.0)

CIBlock::isUniqueSectionCode

CIBlock::isUniqueSectionCode(
 int $id
): bool;

Метод проверяет, включено ли в инфоблоке требование уникальности символьного кода разделов. Метод статический.

Параметры вызова

Параметр | Описание
$id | Идентификатор инфоблока (тип int).

Возвращаемое значение

Возвращается true, если в настройках поля [dw]Символьный код[/dw][di] [image] [/di] (CODE) установлен параметр "Если код задан, то проверять на уникальность". В противном случае возвращается false.

Для отрицательных значений вернется false. Для несуществующих инфоблоков результат зависит от того, что вернет метод CIBlock::GetFieldsDefaults (настройки полей по умолчанию).

Примеры использования

<?
$id = 10;
if (CIBlock::isUniqueSectionCode($id))
{
    echo 'У инфоблока с кодом '.$id.' включена проверка на уникальность символьных кодов разделов';
}
?>


ResizePicture

Информационные блоки>Классы>CIBlock>ResizePicture (доступен с 7.0.8)

CIBlock::ResizePicture

Описание

array
CIBlock::ResizePicture(
 array arFile,
 array arResize
);

Метод выполняет масштабирование файла. Метод статический.

Примечание: обрабатываются только файлы JPEG, GIF и PNG (зависит от используемой библиотеки GD). Файл указанный в параметре arFile будет перезаписан.

Возвращаемое значение

Массив описывающий файл или строка с сообщением об ошибке.

Смотрите также

  • CFile::MakeFileArray
  • CIBlock::SetFields

Параметры вызова

Параметр Описание
arFile Массив, описывающий файл. Это может быть элемент массива $_FILES[имя] (или $HTTP_POST_FILES[имя]), а также результат метода CFile::MakeFileArray.

С версии модуля 14.0.0 массив файла передается в ключе VALUE, а описание - в ключе DESCRIPTION.
arResize
Массив параметров масштабирования. Содержит следующие ключи:
  • WIDTH - целое число. Размер картинки будет изменен таким образом, что ее ширина не будет превышать значения этого поля.
  • HEIGHT - целое число. Размер картинки будет изменен таким образом, что ее высота не будет превышать значения этого поля.
  • METHOD - возможные значения: resample или пусто. Значение поля равное "resample" приведет к использованию функции масштабирования imagecopyresampled, а не imagecopyresized. Это более качественный метод, но требует больше серверных ресурсов.
  • COMPRESSION - целое от 0 до 100. Если значение больше 0, то для изображений jpeg оно будет использовано как параметр компрессии. 100 соответствует наилучшему качеству при большем размере файла.
Параметры METHOD и COMPRESSION применяются только если происходит изменение размера. Если картинка вписывается в ограничения WIDTH и HEIGHT, то никаких действий над файлом выполнено не будет.

Примеры использования

<?
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", Array("MyHandlers", "ResizeElementProperty"));
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", Array("MyHandlers", "ResizeElementProperty"));

class MyHandlers
{
    function ResizeElementProperty(&$arFields)
    {
        global $APPLICATION;
        //Код инфоблока, свойство которого нуждается в масштабировании
        $IBLOCK_ID = 1;
        //Идентификатор свойства
        $PROPERTY_ID = 15;
        //Наш инфоблок и значения свойства в наличии
        if(
            $arFields["IBLOCK_ID"] == $IBLOCK_ID
            && is_array($arFields["PROPERTY_VALUES"])
            && array_key_exists(15, $arFields["PROPERTY_VALUES"])
        )
        {
            foreach($arFields["PROPERTY_VALUES"][$PROPERTY_ID] as $key => $arFile)
            {
                //Изменяем размеры картинки
                $arNewFile = CIBlock::ResizePicture($arFile, array(
                    "WIDTH" => 100,
                    "HEIGHT" => 100,
                    "METHOD" => "resample",
                ));
                if(is_array($arNewFile))
                    $arFields["PROPERTY_VALUES"][$PROPERTY_ID][$key] = $arNewFile;
                else
                {
                    //Можно вернуть ошибку
                    $APPLICATION->throwException("Ошибка масштабирования изображения в свойстве \"Файлы\":".$arNewFile);
                    return false;
                }
            }
        }
    }
}
?>


SetFields

Информационные блоки>Классы>CIBlock>SetFields (доступен с 7.0.8)

CIBlock::SetFields

Описание и параметры

CIBlock::SetFields(
 int ID,
 array arFields
);

Метод изменяет описание полей элементов инфоблоков. С ее помощью можно отметить поля как обязательные для заполнения, а также установить значение по умолчанию для новых элементов. Метод статический.

Примечание: обязательность полей будет проверена в методах CIBlock::Add и CIBlock::Update, а значение по умолчанию будет установлено только в форме редактирования элемента в административной части сайта.

Параметры вызова

Параметр Описание
ID
Код информационного блока.
arFields
Массив вида array("код поля" => "значение" ...), где значение это массив содержащий следующие элементы:
  • IS_REQUIRED - признак обязательности заполнения (Y|N).
  • DEFAULT_VALUE - значение поля по умолчанию.

Возвращаемое значение

Метод ничего не возвращает.

Смотрите также

  • Поля элемента

Описание полей

  • IBLOCK_SECTION - привязка к разделам
  • ACTIVE - Флаг активности
  • ACTIVE_FROM - Дата начала действия элемента
  • ACTIVE_TO - Дата окончания действия элемента
  • SORT - Порядок сортировки элементов между собой
  • NAME - Название элемента
  • PREVIEW_PICTURE - Код картинки для предварительного просмотра
  • PREVIEW_TEXT_TYPE - Тип предварительного описания
  • PREVIEW_TEXT - Предварительное описание
  • DETAIL_PICTURE - Код картинки для детального просмотра.
  • DETAIL_TEXT_TYPE - Тип детального описания
  • DETAIL_TEXT - Детальное описание
  • XML_ID - Внешний идентификатор
  • CODE - Символьный идентификатор
  • TAGS - Теги элемента
Признак обязательности не может быть переопределен для полей ACTIVE, NAME, PREVIEW_TEXT_TYPE, DETAIL_TEXT_TYPE. Эти поля всегда являются обязательными.

Значением поля DEFAULT_VALUE для полей PREVIEW_PICTURE и DETAIL_PICTURE является массив следующего вида:
  • FROM_DETAIL - возможные значения: Y|N. Указывает на необходимость генерации картинки предварительного просмотра из детальной.
  • SCALE - возможные значения: Y|N. Если равно "Y", то изображение будет отмасштабировано.
  • WIDTH - целое число. Размер картинки будет изменен таким образом, что ее ширина не будет превышать значения этого поля.
  • HEIGHT - целое число. Размер картинки будет изменен таким образом, что ее высота не будет превышать значения этого поля.
  • IGNORE_ERRORS - возможные значения: Y|N. Если во время изменения размера картинки были ошибки, то при значении "N" будет сгенерирована ошибка.
  • METHOD - возможные значения: resample или пусто. Значение поля равное "resample" приведет к использованию функции масштабирования imagecopyresampled, а не imagecopyresized. Это более качественный метод, но требует больше серверных ресурсов.
  • COMPRESSION - целое от 0 до 100. Если значение больше 0, то для изображений jpeg оно будет использовано как параметр компрессии. 100 соответствует наилучшему качеству при большем размере файла.
  • DELETE_WITH_DETAIL - возможные значения: Y|N. Указывает на необходимость удаления картинки предварительного просмотра при удалении детальной.
  • UPDATE_WITH_DETAIL - возможные значения: Y|N. Указывает на необходимость обновления картинки предварительного просмотра при изменении детальной.

Примеры

//Как сделать поле "Символьный код" обязательным
if (CModule::IncludeModule('iblock'))
{
$Id = 2;
$fields = CIBlock::getFields($Id);
$fields["CODE"]["IS_REQUIRED"] = "Y";
CIBlock::setFields($Id, $fields);
;
}
//Дополнительные настройки для поля "Символьный код"
$arFields["CODE"]["DEFAULT_VALUE"]["UNIQUE"] = "Y";//Если код задан, то проверять на уникальность
$arFields["CODE"]["DEFAULT_VALUE"]["TRANSLITERATION"] = "Y";//Транслитерировать из названия при добавлении элемента

//Подсказка: настройки для всех полей можно подсмотреть в исходном html-коде страницы с формой редактирования инфоблока.


SetMessages

Информационные блоки>Классы>CIBlock>SetMessages (доступен с 7.0.0)

CIBlock::SetMessages

CIBlock::SetMessages(
 int ID,
 array arFields
);

Метод устанавливает значения дополнительных полей инфоблока. Вызывается в методах CIBlock::Add и CIBlock::Update. Нестатический метод.

Примечание: значения полей не указанных в параметре arFields сохраняются.

Параметры вызова

Параметр | Описание
ID | Код инфоблока
arFields | Массив вида array("Поле" => "Значение" ...)

Возвращаемое значение

Метод ничего не возвращает.

Смотрите также

  • Дополнительные поля


SetPermission

Информационные блоки>Классы>CIBlock>SetPermission (доступен с 3.0.3)

CIBlock::SetPermission

CIBlock::SetPermission(
 int IBLOCK_ID,
 array arPERMISSIONS
);

Метод устанавливает права доступа arPERMISSIONS для информационного блока IBLOCK_ID. Перед этим все права установленные ранее снимаются. Права устанавливаются только для инфоблоков с простыми правами. Cтатический метод.

Параметры вызова

Параметр | Описание
IBLOCK_ID | Код информационного блока.
arPERMISSIONS | Массив вида Array("код группы"=>"право доступа", ....), где право доступа: E - Добавление элементов инфоблока в публичной части, S - Просмотр элементов и разделов в административной части, T - Добавление элементов инфоблока в административной части, R - чтение, U - редактирование через документооборот, W - запись, X - полный доступ (запись + назначение прав доступа на данный инфоблок).

Смотрите также

  • CIBlock::GetPermission()
  • CIBlock::Update()

Примеры использования

<?
CIBlock::SetPermission($IBLOCK_ID, Array("1"=>"X", "2"=>"R", "3"=>"W"));
?>


ShowPanel

Информационные блоки>Классы>CIBlock>ShowPanel (доступен с 3.0.13)

CIBlock::ShowPanel

Описание

CIBlock::ShowPanel(
 int IBLOCK_ID = 0,
 int ELEMENT_ID = 0,
 int SECTION_ID = "",
 string type = "news",
 bool bGetIcons = false,
 string componentName = "",
 array arLabels = array()
);

Добавляет в административную панель кнопки для быстрого перехода к редактированию объектов модуля информационных блоков, с учётом прав доступа. Также состав кнопок различен для разных режимов панели. Метод статический.

Смотрите также

  • CMain::ShowPanel
  • CMain::GetPublicShowMode

Параметры вызова

Параметр | Описание | С версии
IBLOCK_ID Код информационного блока.
если задан (больше нуля), то в панель добавляются кнопки на изменение параметров этого информационного блока, на добавление в него разделов и элементов.
ELEMENT_ID Код элемента информационного блока.
если задан (больше нуля), то в панель добавляются кнопки на редактирование этого элемента и просмотр его истории изменений (при установленном модуле документооборота).
SECTION_ID Код раздела информационного блока.
если задан, то в панель добавляются кнопки на изменение свойств этого раздела.
type Тип информационного блока.
если задан, то в панель добавляется кнопка добавления нового информационного блока.
bGetIcons | Если параметр равен true, то вместо добавления кнопок в панель метод возвращает массив описывающий кнопки. | 5.9.0
componentName | Если задан, то будет выводиться соответствующая подпись группирующая действия. Если не задан, то название будет определено из описания компонента 2.0, вызвавшего этот метод. | 7.0.0
arLabels Если задан, то элементы этого массива будут использованы для вывода названий кнопок и всплывающих подсказок. Возможны следующие ключи:
  • ELEMENT_ADD_TEXT - текст кнопки добавления элемента;
  • ELEMENT_ADD_TITLE - всплывающая подсказка кнопки добавления элемента;
  • ELEMENT_EDIT_TEXT - текст кнопки редактирования элемента;
  • ELEMENT_EDIT_TITLE - всплывающая подсказка кнопки редактирования элемента;
  • ELEMENTS_NAME_TEXT - текст кнопки просмотра списка элементов;
  • ELEMENTS_NAME_TITLE - всплывающая подсказка кнопки просмотра списка элементов;
  • SECTION_ADD_TEXT - текст кнопки добавления раздела;
  • SECTION_ADD_TITLE - всплывающая подсказка кнопки добавления раздела;
  • SECTION_EDIT_TEXT - текст кнопки редактирования раздела;
  • SECTION_EDIT_TITLE - всплывающая подсказка кнопки редактирования раздела;
  • SECTIONS_NAME_TEXT - текст кнопки просмотра списка разделов;
  • SECTIONS_NAME_TITLE - всплывающая подсказка кнопки просмотра списка разделов.
8.0.7

Примечание

Если задан ELEMENT_ID, но не определён IBLOCK_ID, то метод автоматически установит его. Это справедливо и для параметра SECTION_ID.

Примеры использования

<?
$IBLOCK_TYPE = 'catalog';
if(CModule::IncludeModule('iblock')):
    if($arIBlockElement = GetIBlockElement($_GET['ID'], $IBLOCK_TYPE)):
        CIBlock::ShowPanel($arIBlockElement['IBLOCK_ID'], $_GET['ID'], 0, $IBLOCK_TYPE);
        $APPLICATION->SetTitle($arIBlockElement['NAME']);
        $APPLICATION->AddChainItem($arIBlockElement['IBLOCK_NAME'], $arIBlockElement['LIST_PAGE_URL']);
        ?>
        <?=$arIBlockElement['NAME']?><br>
        <?=$arIBlockElement['DETAIL_TEXT']?>
        <?
    endif;
endif;
?>


Update

Информационные блоки>Классы>CIBlock>Update (доступен с 3.0.3)

CIBlock::Update

Описание и параметры

bool CIBlock::Update(
 int ID,
 array arFields
);

Метод изменяет параметры информационного блока с кодом ID. Модифицировать поля, а также отменить изменение параметров можно добавив обработчик события OnBeforeIBlockUpdate. После успешного добавления инфоблока вызываются обработчики события OnAfterIBlockUpdate. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | ID изменяемого информационного блока.
arFields Массив Array("поле"=>"значение", ...). Содержит значения всех полей информационного блока.
Дополнительно в поле SITE_ID должен находиться массив идентификаторов сайтов, к которым привязан изменяемый информационный блок.
Кроме того, с помощью поля "GROUP_ID", значением которого должен быть массив соответствий кодов групп правам доступа, можно установить права для разных групп на доступ к информационному блоку(см. CIBlock::SetPermission()).
Если задано поле "FIELDS", то будут выполнены настройки полей инфоблока (см. CIBlock::SetFields).

Возвращаемое значение

Метод возвращает true если изменение прошло успешно, при возникновении ошибки метод вернет false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки.

Смотрите также

  • CIBlock::Add
  • Поля информационного блока
  • CIBlock::SetFields
  • OnBeforeIBlockUpdate
  • OnAfterIBlockUpdate

Примеры использования

<?
$arPICTURE = $_FILES["PICTURE"];
$ib = new CIBlock;
$arFields = Array(
  "ACTIVE" => $ACTIVE,
  "NAME" => $NAME,
  "CODE" => $CODE,
  "LIST_PAGE_URL" => $LIST_PAGE_URL,
  "DETAIL_PAGE_URL" => $DETAIL_PAGE_URL,
  "IBLOCK_TYPE_ID" => $type,
  "SITE_ID" => Array("en", "de"),
  "SORT" => $SORT,
  "PICTURE" => $arPICTURE,
  "DESCRIPTION" => $DESCRIPTION,
  "DESCRIPTION_TYPE" => $DESCRIPTION_TYPE,
  "GROUP_ID" => Array("2"=>"D", "3"=>"R")
  );
if ($ID > 0)
  $res = $ib->Update($ID, $arFields);
else
{
  $ID = $ib->Add($arFields);
  $res = ($ID>0);
}
?>


CIBlockElement

CIBlockElement - класс для работы с элементами информационных блоков.

Методы класса

Метод | Описание | С версии
GetList | Возвращает список элементов по фильтру. | 3.0.8
GetByID | Возвращает элемент по его ID. | 3.0.8
GetElementGroups | Возвращает группы, которым принадлежит элемент, по его коду. | 3.1.3
GetIBlockByID | Метод возвращает инфоблок по ID его элемента. | 3.1.3
GetProperty | Получение свойств злемента. | 3.0.8
Add | Добавляет новый элемент. | 3.0.8
Update | Изменяет элемент. | 3.0.8
Delete | Удаляет элемент из информационного блока. | 3.0.5
SetElementSection | Привязывает элемент информационного блока к группам. | 3.1.3
SetPropertyValues | Сохраняет свойства элемента информационного блока. | 3.0.5
SetPropertyValuesEx | Сохраняет значения всех свойств элемента информационного блока. В отличие от SetPropertyValues может не содержать полный набор значений. | 6.0.0
SetPropertyValueCode | Изменяет значение свойства элемента. | 3.0.13
UpdateSearch | Индексирует указанный элемент в модуле поиска. | 3.0.8
CounterInc | Увеличивает счетчик показов элемента. | 3.3.8
[link=387308]SubQuery[/link] | Позволяет использовать подзапросы. | 10.0.2
GetPropertyValues | Метод позволяет получить значения свойств для элементов одного информационного блока, отобранных по фильтру | 14.0.0
GetPropertyValuesArray | Получение значений свойств элементов одного инфоблока для компонента. | 14.5.0
createMnemonicCode | * Метод создания символьного кода. | 21.300.100
generateMnemonicCode | * Метод генерации символьного кода. | 21.300.100
isExistsMnemonicCode | * Метод проверки существования символьного кода. | 21.300.100
getPublicElementsOrmFilter | * Метод для дополнения фильтра orm на основе массива. | 21.300.100

* - Методы работы с символьными кодами. Они работают, только если в настройках инфоблока включена опция Транслитерировать из названия при добавлении элемента для поля Символьный код элемента.

Параметры транслитерации берутся из настроек инфоблока, но могут быть переопределены в момент использования. Исключение - опция Использовать внешний сервис для перевода. В этом случае методы не работают, возвращают null.

Язык, с которого осуществляется транслитерация, выбирается из настроек сайта, к которому привязан инфоблок. Может быть переопределен в момент использования. Если сайты, к которым привязан инфоблок, имеют различные языки, то язык транслитерации ОБЯЗАТЕЛЬНО необходимо указать при вызове методов.


Add

Информационные блоки>Классы>CIBlockElement>Add (доступен с 3.0.8)

CIBlockElement::Add

Описание

int CIBlockElement::Add(
 array arFields,
 bool bWorkFlow = false,
 bool bUpdateSearch = true,
 bool bResizePictures = false
);
Метод добавляет новый элемент информационного блока. Перед добавлением элемента вызываются обработчики события OnBeforeIBlockElementAdd, из которых можно изменить значения полей или отменить добавление элемента вернув сообщение об ошибке. После добавления элемента вызывается событие OnAfterIBlockElementAdd. Нестатический метод.

Смотрите также

  • CIBlockElement::Update
  • CIBlockElement::SetPropertyValues()
  • CIBlockElement::SetPropertyValueCode()
  • OnBeforeIBlockElementAdd
  • OnAfterIBlockElementAdd

Примечание: если при добавлении свойств в PROPERTY_VALUES при сохранении элемента инфоблока методом CIBlockElement::Add, происходит подобная ошибка:
MySQL Query Error: INS ERT INTO b_iblock_element_property (IBLOCK_ELEMENT_ID, IBLOCK_PROPERTY_ID, VALUE, VALUE_NUM) SEL ECT 323 ,P.ID ,'28' ,28,0000 FR OM b_iblock_property P WHERE ID=42[Column count doesn't match val ue count at row 1]
попробуйте выставить пустое значение в setlocale( LC_NUMERIC, '' );, чтобы PHP использовал точку при форматировании числа, а не запятую.

Параметры вызова

Параметр | Описание | С версии
arFields | Массив вида Array("поле"=>"значение", ...), содержащий значения полей элемента инфоблоков и дополнительно может содержать поле "PROPERTY_VALUES" - массив со всеми значениями свойств элемента в виде массива Array("код свойства"=>"значение свойства"). Где "код свойства" - числовой или символьный код свойства, "значение свойства" - одиночное значение, либо массив значений если свойство множественное. Дополнительно для сохранения значения свойств см: CIBlockElement::SetPropertyValues(), CIBlockElement::SetPropertyValueCode(). Примечание: поля с датами задаются в формате сайта. |
bWorkFlow | Вставка в режиме документооборота. Если true и модуль документооборота установлен, то данное добавление будет учтено в журнале изменения элемента. Не обязательный параметр, по умолчанию вставка в режиме документооборота отключена. | 3.1.3
bUpdateSearch | Индексировать элемент для поиска. Для повышения производительности можно отключать этот параметр во время серии добавлений элементов, а после вставки переиндексировать поиск. Не обязательный параметр, по умолчанию элемент после добавления будет проиндексирован в поиске. | 3.2.1
bResizePictures | Использовать настройки инфоблока для обработки изображений. По умоляанию настройки не применяются. Если этот параметр имеет значение true, то к полям PREVIEW_PICTURE и DETAIL_PICTURE будут применены правила генерации и масштабирования в соответствии с настройками информационного блока. | 8.0.10

Возвращаемое значение

Метод возвращает ID добавленного элемента инфоблока, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в свойстве объекта LAST_ERROR будет содержаться текст ошибки.

Примеры использования

Пример 1:

<?
$el = new CIBlockElement;

$PROP = array();
$PROP[12] = "Белый";  // свойству с кодом 12 присваиваем значение "Белый"
$PROP[3] = 38;        // свойству с кодом 3 присваиваем значение 38

$arLoadProductArray = Array(
  "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
  "IBLOCK_SECTION_ID" => false,          // элемент лежит в корне раздела
  "IBLOCK_ID"      => 18,
  "PROPERTY_VALUES"=> $PROP,
  "NAME"           => "Элемент",
  "ACTIVE"         => "Y",            // активен
  "PREVIEW_TEXT"   => "текст для списка элементов",
  "DETAIL_TEXT"    => "текст для детального просмотра",
  "DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
  );

if($PRODUCT_ID = $el->Add($arLoadProductArray))
  echo "New ID: ".$PRODUCT_ID;
else
  echo "Error: ".$el->LAST_ERROR;
?>

Пример 2 (примеры массивов для свойств):

//описание массива для свойства типа "Html/Text"
$arrProp = Array();
$arrProp[ID или CODE][0] = Array("VALUE" => Array ("TEXT" => "значение", "TYPE" => "html или text"));

//описание массива для свойства типа "Список"
$arrProp = Array();
$arrProp[ID или CODE] = Array("VALUE" => $ENUM_ID ); //ENUM_ID - это ID значения в списке, его можно получить при помощи: CIBlockPropertyEnum::GetList

//описание массива для свойства типа "Список" множественного выбора
$arrProp = Array();
$arrProp[ID или CODE] = array( $ENUM_ID1, $ENUM_ID2, $ENUM_ID3, $ENUM_ID4);

//пример массива для вставки видео
$PROP["561"] = Array (
    "n0" => Array(
        "VALUE" => Array ("PATH" => "/upload/single_2.flv", "WIDTH" => 400, "HEIGHT" => 300, "TITLE" => "Заголовок видео", "DURATION" => "00:30", "AUTHOR" => "Автор видео", "DATE" => "01.02.2011")
     )
);
//При добавлении нового значения/значений множественного свойство типа "Файл" необходимо использовать ключи вида n0,n1,n2 ... nN .

Пример 3:

//детальная картинка загружается непосредственно из формы
<?
$el = new CIBlockElement;
$PROP = array();
$PROP[12] = 'Белый';  // свойству с кодом 12 присваиваем значение "Белый"
$PROP[3] = 38; // свойству с кодом 3 присваиваем значение 38
$arLoadProductArray = Array(
   'MODIFIED_BY' => $GLOBALS['USER']->GetID(), // элемент изменен текущим пользователем
   'IBLOCK_SECTION_ID' => false, // элемент лежит в корне раздела
   'IBLOCK_ID' => 18,
   'PROPERTY_VALUES' => $PROP,
   'NAME' => 'Элемент',
   'ACTIVE' => 'Y', // активен
   'PREVIEW_TEXT' => 'текст для списка элементов',
   'DETAIL_TEXT' => 'текст для детального просмотра',
   'DETAIL_PICTURE' => $_FILES['DETAIL_PICTURE'] // картинка, загружаемая из файлового поля веб-формы с именем DETAIL_PICTURE
);

if($PRODUCT_ID = $el->Add($arLoadProductArray)) {
   echo 'New ID: '.$PRODUCT_ID;
} else {
   echo 'Error: '.$el->LAST_ERROR;
}
?>

Пример 4:

//добавления элемента с установкой для его свойства пары "значение" и "описание"
$el = new CIBlockElement;

$PROP = array();
$PROP[id_property] =  Array(
"n0" => Array(
"VALUE" => "value",
"DESCRIPTION" => "description")
);

$arLoadProductArray = Array(
  "IBLOCK_SECTION" => false,
  "IBLOCK_ID" => iblock_id,
  "PROPERTY_VALUES" => $PROP,
  "NAME" => "Элемент",
  );

$PRODUCT_ID = id_element;
$res = $el->Update($PRODUCT_ID, $arLoadProductArray);

Пример 5:

//получить следующий ID для свойства типа "Счётчик" можно методом CIBlockSequence::GetNext и указать его в методе CIBlockElement:Add

CModule::IncludeModule('iblock');
$IBLOCK_ID = 21;
$PROPERTY_ID = 1223;
$seq = new CIBlockSequence($IBLOCK_ID, $PROPERTY_ID);
$el = new CIBlockElement;
$ID = $el->Add(array(
   "IBLOCK_ID" => $IBLOCK_ID,
   "NAME" => "test element",
   "PROPERTY_VALUES" => array($PROPERTY_ID => $seq->GetNext())
));
$rs = CIBlockElement::GetList(array(), array("ID" => $ID), false, false, array("ID", "PROPERTY_ABSTRACT_ID"));
if($ar = $rs->GetNext())
   echo 'PRINT_R:<pre style="font:16px Courier">', print_r($ar, 1), '</pre>';

Пример 6:

//Если при добавлении элемента надо обязательно заполнять символьный код элемента, то можно не писать свою функцию, а воспользоваться системным методом:

$params = Array(
       "max_len" => "100", // обрезает символьный код до 100 символов
       "change_case" => "L", // буквы преобразуются к нижнему регистру
       "replace_space" => "_", // меняем пробелы на нижнее подчеркивание
       "replace_other" => "_", // меняем левые символы на нижнее подчеркивание
       "delete_repeat_replace" => "true", // удаляем повторяющиеся нижние подчеркивания
       "use_google" => "false", // отключаем использование google
    );

"CODE" => CUtil::translit("здесь переменная названия элемента", "ru" , $params);

Пример 7:

//пример с символьными кодами свойств в массиве PROPERTY_VALUES:

$arFields = array(
   "ACTIVE" => "Y",
   "IBLOCK_ID" => 123,
   "IBLOCK_SECTION_ID" => 456,
   "NAME" => "Название элемента",
   "CODE" => "nazvanie-elementa",
   "DETAIL_TEXT" => "Описание элемента",
   "PROPERTY_VALUES" => array(
   "MANUFACTURER" =>"Имя производителя", //Производитель - свойство
   "ARTNUMBER" =>"Артикул товара", //Артикул производителя - свойство
   "MATERIAL" =>"Материал товара" //Материал - свойство
   )
);
$oElement = new CIBlockElement();
$idElement = $oElement->Add($arFields, false, false, true);

//Необходимо помнить, что если вы указали не все свойства в массиве PROPERTY_VALUES, то остальные свойства могут быть удалены.
//Для обновления элемента гораздо безопаснее использовать CIBlockElement::SetPropertyValueCode.

Пример 8 (как получить значение свойства):

//например, можно получить значение счетчика и записать его в базу

//$iblockId - ID инфоблока
//$propertyId - ID свойства

$seq = new CIBlockSequence($iblockId, $propertyId);
$current_value = $seq->GetNext();

//в $current_value - новое значение, которое можно писать в базу


CounterInc

Информационные блоки>Классы>CIBlockElement>CounterInc (доступен с 3.3.8)

CIBlockElement::CounterInc

CIBlockElement::CounterInc(
 int ID
);
Увеличивает счетчик просмотров элемента с кодом ID. При увеличении учитывается уникальность просмотров данного элемента в одной сессии. Метод статический. Метод не сбрасывает тегированый кеш.

Параметры вызова

Параметр | Описание
ID | Код элемента.

Примеры использования

<?
if(CModule::IncludeModule("iblock"))
    CIBlockElement::CounterInc($ID);
?>


createMnemonicCode

Информационные блоки>Классы>CIBlockElement>createMnemonicCode (с версии 21.300.100)

CIBlockElement::createMnemonicCode

?string
public function CIBlockElement::createMnemonicCode
(
 array $element,
 array array $options = []
);

Нестатичный метод создания символьного кода. От метода генерации отличается проверкой существования в базе, проверкой на уникальность и добавления в конец числового индекса, если сгенерированный код существует. Для работы рекомендуется использовать его.

Возвращаемое значение:

  • null - в случае ошибок
  • string - строка с символьным кодом

Параметры функции

Параметр Описание
$element Массив, описывающий элемент инфоблока. Тип - массив (array), ключи массива:
  • NAME - непустая строка названия, для которого необходимо сгенерировать символьный код. Тип - строка (string), обязательный.
  • IBLOCK_ID - идентификатор инфоблока. Тип - целое число (int), обязательный
  • ID - идентификатор элемента. Тип - целое число (int) или null, необязательный. Если указать не null - в фильтр будет добавлено условие по ID записи
$options Переопределяемые настройки траслитерации. Тип - массив (array), необязательный в общем случае. Содержит ключи, идентичные $options метода CIBlockElement::generateMnemonicCode с одним дополнением:
CHECK_SIMILAR - проверять похожие. Тип строка (string), значения Y/N, необязательный. Используется, если символьный код должен быть уникальным. После проверки, что сгенеренный код уже существует, будет выполнен поиск по всем вариантам "символьныйКод_ЧИСЛО". К символьному коду будет добавлено число, вариант с которым в базе еще не существует.


Delete

Информационные блоки>Классы>CIBlockElement>Delete (доступен с 3.0.5)

CIBlockElement::Delete

bool CIBlockElement::Delete(
 int ID
);

Метод удаляет элемент информационного блока. Также удаляются значения свойств типа "Привязка к элементу" указывающие на удаляемый. При установленном модуле поиска элемент удаляется из поискового индекса. Перед удалением вызываются обработчики события OnBeforeIBlockElementDelete из которых можно отменить это действие. После удаления вызывается обработчик события OnAfterIBlockElementDelete. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код элемента.

Возвращаемое значение

Возвращается true в случае успешного удаления, в противном случае метод вернет false.
При попытке удаления несуществующего элемента метод также вернет true.

Примеры использования

<?
if(CIBlock::GetPermission($IBLOCK_ID)>='W')
{
    $DB->StartTransaction();
    if(!CIBlockElement::Delete($ELEMENT_ID))
    {
        $strWarning .= 'Error!';
        $DB->Rollback();
    }
    else
        $DB->Commit();
}
?>


generateMnemonicCode

Информационные блоки>Классы>CIBlockElement>generateMnemonicCode (с версии 21.300.100)

CIBlockElement::generateMnemonicCode

?string
public function \CIBlockElement::generateMnemonicCode(
 string $name,
 int $iblockId,
 array $options = []
);

Нестатический метод генерации символьного кода. Возвращаемое значение:

  • null - в случае ошибок
  • string - строка с символьным кодом

Параметры функции

Параметр | Описание
$name | Непустая строка названия, для которого необходимо сгенерировать символьный код. Тип - строка (string), обязательный.
$iblockId | Идентификатор инфоблока. Тип - целое число (int), обязательный.
$options переопределяемые настройки траслитерации. Тип - массив (array), необязательный в общем случае.

Параметр может содержать следующие ключи (если не указать, то параметры берутся из настроек инфоблока):

  • MAX_LEN - максимальная длина полученного кода, тип - целое число (int)
  • TRANS_CASE - приведение к регистру, тип - строка (string). Возможные значения:
    • L - к нижнему регистру
    • U - к верхнему
    • пустая строка - не менять регистр
  • TRANS_SPACE - символ, используемый для замены пробелов, тип - строка (string), один символ
  • TRANS_OTHER - символ, используемый для замены прочих символов, недопустимых в символьных кодах, тип - строка (string), один символ
  • TRANS_EAT - удалять повторы, тип строка (string), значения Y/N
  • LANGUAGE_ID - код языка, с которого необходимо траслитерировать, дополнительный ключ.


GetByID

Информационные блоки>Классы>CIBlockElement>GetByID (доступен с 3.0.8)

CIBlockElement::GetByID

Описание и параметры

CIBlockResult CIBlockElement::GetByID(
 int ID
);

Возвращается объект CIBlockResult с полями элемента информационного блока. Метод статический.

Параметры вызова

Параметр | Описание
ID | ID элемента.

Примечание: метод не проверяет, чтобы элемент с кодом ID был опубликован и не являлся записью из истории. Для выборки только опубликованных элементов воспользуйтесь методом CIBlockElement::GetList().

Смотрите также

  • CDBResult
  • CIBlockResult
  • Поля элемента информационного блока
  • CIBlockElement::GetList()

Примеры использования

if(!CModule::IncludeModule("iblock"))

return;

<?
$res = CIBlockElement::GetByID($_GET["PID"]);
if($ar_res = $res->GetNext())
  echo $ar_res['NAME'];
?>


GetElementGroups

Информационные блоки>Классы>CIBlockElement>GetElementGroups (доступен с 3.1.3)

CIBlockElement::GetElementGroups

Описание

CDBResult
CIBlockElement::GetElementGroups(
 mixed ID,
 bool bElementOnly = false,
 array arSelect = array()
);

Принимает массив идентификаторов элементов. Возвращает группы, которым принадлежит элемент, по его коду ID. Метод статический.

Смотрите также

  • CDBResult
  • Поля раздела
  • CIBlockElement::SetElementSectio n()

Параметры вызова

Параметр | Описание | С версии
ID | ID элемента, либо массив ID элементов, для которых надо вернуть привязки к разделам.
bElementOnly
Не обязательный параметр. Указывает на необходимость выборки привязок и из свойств типа "Привязка к разделу". По умолчанию равен false и значения свойств будут выбраны. Если значения свойств не нужны, то значением параметра надо задать true.
5.1.0
arSelect
Перечень возвращаемых полей. Допустимые поля:

Поля, относящиеся к разделу:

  • ID - ID раздела инфоблока;
  • TIMESTAMP_X - дата последнего изменения параметров раздела;
  • MODIFIED_BY - идентификатор пользователя, в последний раз изменившего раздел;
  • DATE_CREATE - дата создания раздела;
  • CREATED_BY - идентификатор пользователя, создавшего раздел;
  • IBLOCK_ID - ID информационного блока;
  • IBLOCK_SECTION_ID - ID раздела-родителя;
  • ACTIVE - (Y|N) флаг активности раздела;
  • GLOBAL_ACTIVE - (Y|N) флаг активности раздела, учитывая активность вышележащих (родительских) разделов;
  • SORT - порядок сортировки;
  • NAME - название раздела;
  • PICTURE - код картинки раздела;
  • LEFT_MARGIN - левая граница раздела;
  • RIGHT_MARGIN - правая граница раздела;
  • DEPTH_LEVEL - уровень вложенности раздела;
  • DESCRIPTION - описание раздела;
  • DESCRIPTION_TYPE - тип описания группы (text/html);
  • SEARCHABLE_CONTENT - содержимое для поиска при фильтрации групп;
  • CODE - символьный идентификатор;
  • XML_ID - внешний код;
  • EXTERNAL_ID - внешний код;
  • TMP_ID - временный строковый идентификатор, используемый для служебных целей;
  • DETAIL_PICTURE - код картинки детального просмотра раздела;
  • SOCNET_GROUP_ID - группа Социальной сети.

Поля, относящиеся к инфоблоку раздела:

  • LIST_PAGE_URL - шаблон URL-а к странице для публичного просмотра списка элементов информационного блока;
  • SECTION_PAGE_URL -шаблон URL-а к странице для просмотра раздела;
  • IBLOCK_TYPE_ID - код типа инфоблоков;
  • IBLOCK_CODE - символьный код инфоблока;
  • IBLOCK_EXTERNAL_ID - внешний код инфоблока.

Поля, относящиеся к элементу, для которого возвращаются разделы:

  • IBLOCK_ELEMENT_ID - код элемента;
  • ADDITIONAL_PROPERTY_ID - код свойства (не пусто, если элемент привязан к разделу через свойство).
По умолчанию возвращаются все поля. 		12.5.7

Возвращаемое значение

Возвращается объект CDBResult со всеми полями для формирования url. С версии 10.0.9 в результат запроса добавлено поле IBLOCK_ELEMENT_ID.

Примеры использования

<?
$db_old_groups = CIBlockElement::GetElementGroups($ELEMENT_ID, true);
$ar_new_groups = Array($NEW_GROUP_ID);
while($ar_group = $db_old_groups->Fetch())
    $ar_new_groups[] = $ar_group["ID"];
CIBlockElement::SetElementSection($ELEMENT_ID, $ar_new_groups);
?>


GetIBlockByID

Информационные блоки>Классы>CIBlockElement>GetIBlockByID (доступен с 3.1.3)

CIBlockElement::GetIBlockByID

mixed CIBlockElement::GetIBlockByID(
 int ID
);

Метод возвращает инфоблок по ID его элемента. Метод статический.

Параметры вызова

Параметр | Описание
ID | ID элемента.

Возвращаемое значение

Метод возвращает идентификатор инфоблока по ID его элемента или false, если элемент не найден.


GetList

Информационные блоки>Классы>CIBlockElement>GetList (доступен с 3.0.8)

CIBlockElement::GetList

Описание

CIBlockResult
CIBlockElement::GetList(
 array arOrder = Array("SORT"=>"ASC"),
 array arFilter = Array(),
 mixed arGroupBy = false,
 mixed arNavStartParams = false,
 array arSelectFields = Array()
);

Возвращает список элементов по фильтру arFilter. Метод статический.

Важно! Начиная с версии 18.6.200 модуля Информационные блоки, в методе доступны новые возможности работы с товарами, изменены ключи метода. Читайте подробности в уроке Товары и CIBlockElement::GetList [image] [image]. Соответственно, все параметры вида CATALOG_*** устарели.

Внимание: Начиная с версии 20.5.0 модуля Информационные блоки в методе более не обрабатываются ключи CHECK_BP_TASKS_PERMISSIONS и TASKSTATUS.

Примечания:
  1. Внутренние ограничения Oracle и MSSQL не позволяют использовать DISTINCT при фильтрации по полям типа blob, поэтому фильтрация по нескольким значениям множественного свойства может дать дублирование.
  2. Поля перечисленные для сортировки будут автоматически добавлены в параметр arSelectFields или в arGroupBy, если указана группировка записей.

Смотрите также

  • CDBResult
  • Поля элементов

    • Параметры вызова

    Параметр Описание С версии
    arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где by - поле для сортировки, может принимать значения:
    • id - ID элемента. Может принимать значения:
      • asc - по возрастанию;
      • desc - по убыванию;
      • массив ID - в этом случае элементы будут выводиться в том порядке, в котором они перечислены в массиве. (С версии 18.6.700)

        Важно! Этот же массив должен быть передан в фильтр (параметр arFilter).

    • sort - индекс сортировки;
    • timestamp_x - дата изменения;
    • name - название;
    • active_from или date_active_from - начало периода действия элемента;
    • active_to или date_active_to - окончание периода действия элемента;
    • status - код статуса элемента в документообороте;
    • code - символьный код элемента;
    • iblock_id - числовой код информационного блока;
    • modified_by - код последнего изменившего пользователя;
    • active - признак активности элемента;
    • show_counter - количество показов элемента (учитывается методом CIBlockElement::CounterInc);
    • show_counter_start - время первого показа элемента (учитывается методом CIBlockElement::CounterInc);
    • shows - усредненное количество показов (количество показов / продолжительность показа);
    • rand - случайный порядок;
    • xml_id или external_id - внешний код;
    • tags - теги;
    • created - время создания;
    • created_date - дата создания без учета времени;
    • cnt - количество элементов (только при заданной группировке);
    • property_<PROPERTY_CODE> - по значению свойства с числовым или символьным кодом PROPERTY_CODE (например, PROPERTY_123 или PROPERTY_NEWS_SOURCE);
    • propertysort_<PROPERTY_CODE> - по индексу сортировки варианта значения свойства. Только для свойств типа "Список" ;
    • catalog_<CATALOG_FIELD>_<PRICE_TYPE> - по полю CATALOG_FIELD (может быть PRICE - цена, CURRENCY - валюта или PRICE_SCALE - цена с учетом валюты) из цены с типом PRICE_TYPE (например, catalog_PRICE_1 или CATALOG_CURRENCY_3). С версии 16.0.3 модуля Торговый каталог сортировка по цене также идет с учетом валюты.
    • IBLOCK_SECTION_ID - ID раздела;
    • *CATALOG_QUANTITY - общее количество товара;
    • *CATALOG_WEIGHT - вес товара;
    • *CATALOG_AVAILABLE - признак доступности товара (Y|N). Товар считается недоступным, если его количество меньше либо равно нулю, включен количественный учет и запрещена покупка при нулевом количестве.
    • *CATALOG_STORE_AMOUNT_<идентификатор_склада> - сортировка по количеству товара на конкретном складе (доступно с версии 15.5.5 модуля Торговый каталог).
    • *CATALOG_BUNDLE - сортировка по наличию набора у товара (доступно с версии 16.0.3 модуля Торговый каталог).
    • PROPERTY_<PROPERTY_CODE>.<FIELD> - по значению поля элемента указанного в качестве привязки. PROPERTY_CODE - символьный код свойства типа привязка к элементам. FIELD может принимать значения:
      • ID
      • TIMESTAMP_X
      • MODIFIED_BY
      • CREATED
      • CREATED_DATE
      • CREATED_BY
      • IBLOCK_ID
      • ACTIVE
      • ACTIVE_FROM
      • ACTIVE_TO
      • SORT
      • NAME
      • SHOW_COUNTER
      • SHOW_COUNTER_START
      • CODE
      • TAGS
      • XML_ID
      • STATUS
    • PROPERTY_<PROPERTY_CODE>.PROPERTY_<PROPERTY_CODE2> - по значению свойства элемента указанного в качестве привязки. PROPERTY_CODE - символьный код свойства типа привязки к элементам. PROPERTY_CODE2- код свойства связанных элементов.
    • HAS_PREVIEW_PICTURE и HAS_DETAIL_PICTURE - сортировка по наличию и отсутствию картинок.
    • order - порядок сортировки, пишется без пробелов, может принимать значения:
      • asc - по возрастанию;
      • nulls,asc - по возрастанию с пустыми значениями в начале выборки;
      • asc,nulls - по возрастанию с пустыми значениями в конце выборки;
      • desc - по убыванию;
      • nulls,desc - по убыванию с пустыми значениями в начале выборки;
      • desc,nulls - по убыванию с пустыми значениями в конце выборки;
      Необязательный. По умолчанию равен Array("sort"=>"asc")

    Примечание 1: если задать разным свойствам одинаковый символьный код, но в разном регистре, то при работе сортировки по одному из свойств (например, PROPERTY_rating) будет возникать ошибочная ситуация (элементы в списке задублируются, сортировки не будет).

    Примечание 2: указанные поля сортировки автоматически добавляются в arGroupBy (если он задан) и arSelectFields.
    arFilter Массив вида array("фильтруемое поле"=>"значения фильтра" [, ...]). "фильтруемое поле" может принимать значения:
    • ID - по числовому коду (фильтр Число);
    • ACTIVE - фильтр по активности (Y|N); передача пустого значения ("ACTIVE"=>"") выводит все элементы без учета их состояния (фильтр Строка);
    • NAME - по названию (фильтр Маска);
    • CODE - по символьному идентификатору (фильтр Маска);
    • IBLOCK_SECTION_ID - используйте этот ключ только в режиме выбора основного раздела для элемента [image] либо когда все товары привязаны только к одному разделу. Во всех остальных случаях используйте фильтр по SECTION_ID.
    • TAGS - по тегам (фильтр Маска);
    • XML_ID или EXTERNAL_ID - по внешнему коду (фильтр Маска);
    • PREVIEW_TEXT - по анонсу (фильтр Маска);
    • PREVIEW_TEXT_TYPE - по типу анонса (html|text, фильтр Строка);
    • PREVIEW_PICTURE - коду картинки для анонса (фильтр Число);
    • DETAIL_TEXT - по детальному описанию (фильтр Маска);
    • DETAIL_TEXT_TYPE - по типу детальному описания (html|text, фильтр Строка);
    • DETAIL_PICTURE - по коду детальной картинки (фильтр Число);
    • CHECK_PERMISSIONS - если установлен в "Y", то в выборке будет осуществляться проверка прав доступа к информационным блокам. По умолчанию права доступа не проверяются.
    • PERMISSIONS_BY - фильтрация по правам произвольного пользователя. Значение - ID пользователя или 0 (неавторизованный).
    • *CATALOG_TYPE - фильтрация по типу товара;
    • MIN_PERMISSION - минимальный уровень доступа, будет обработан только если CHECK_PERMISSIONS установлен в "Y". По умолчанию "R". Список прав доступа см. в CIBlock::SetPermission().
    • SEARCHABLE_CONTENT - по содержимому для поиска. Включает в себя название, описание для анонса и детальное описание (фильтр Маска);
    • SORT - по сортировке (фильтр Число);
    • TIMESTAMP_X - по времени изменения (фильтр Дата);
    • DATE_MODIFY_FROM - по времени изменения. Будут выбраны элементы измененные после времени указанного в фильтре. Время указывается в формате сайта. Возможно использовать операцию отрицания "!DATE_MODIFY_FROM";
    • DATE_MODIFY_TO - по времени изменения. Будут выбраны элементы измененные ранее времени указанного в фильтре. Время указывается в формате сайта. Возможно использовать операцию отрицания "!DATE_MODIFY_TO";
    • MODIFIED_USER_ID или MODIFIED_BY - по коду пользователя, изменившего элемент (фильтр Число);
    • DATE_CREATE - по времени создания (фильтр Дата);
    • CREATED_USER_ID или CREATED_BY - по коду пользователя, добавившего элемент (фильтр Число);
    • DATE_ACTIVE_FROM - по дате начала активности (фильтр Дата) Формат даты должен соответствовать формату даты [image] [image], установленному на сайте. Чтобы выбрать элементы с пустым полем начала активности, следует передать значение false;
    • DATE_ACTIVE_TO - по дате окончания активности (фильтр Дата)Формат даты должен соответствовать формату даты [image] [image], установленному на сайте. Чтобы выбрать элементы с пустым полем окончания активности, следует передать значение false;
    • ACTIVE_DATE - непустое значение задействует фильтр по датам активности. Будут выбраны активные по датам элементы.Если значение не установлено (""), фильтрация по датам активности не производится;
      Чтобы выбрать все не активные по датам элементы, используется такой синтаксис:
      $el_Filter[ "!ACTIVE_DATE" ]= "Y";
    • ACTIVE_FROM - устаревший;
    • ACTIVE_TO - устаревший;
    • IBLOCK_ID - по коду информационного блока (фильтр Число);

      При использовании инфоблоков 1.0 можно в IBLOCK_ID передать массив идентификаторов, чтобы сделать выборку из элементов нескольких инфоблоков:
      $arFilter = array("IBLOCK_ID" => array(1, 2, 3), ...);
      Для инфоблоков 2.0 такая выборка будет работать только в том случае, если в ней не запрашиваются свойства элементов.

      В некоторых случаях точное указание IBLOCK_ID в фильтре может ускорить выборку элементов. Так как зависимости сложные, каждый конкретный случай надо рассматривать отдельно.

    • IBLOCK_CODE - по символьному коду информационного блока (фильтр Маска);
    • IBLOCK_SITE_ID или IBLOCK_LID или SITE_ID или LID - по сайту (фильтр Строка);
    • IBLOCK_TYPE - по типу информационного блока (фильтр Маска);
    • IBLOCK_ACTIVE - по активности информационного блока (Y|N, фильтр Строка);
    • SECTION_ID - по родительской группе. Если значение фильтра false, "" или 0, то будут выбраны элементы не привязанные ни к каким разделам. Иначе будут выбраны элементы привязанные к заданному разделу. Значением фильтра может быть и массив. В этом случае будут выбраны элементы привязанные хотя бы к одному из разделов указанных в фильтре. Возможно указание отрицания "!". В этом случае условие будет инвертировано;
    • SECTION_CODE - по символьному коду родительской группы. Аналогично SECTION_ID;
    • INCLUDE_SUBSECTIONS - если задан фильтр по родительским группам SECTION_ID, то будут также выбраны элементы находящиеся в подгруппах этих групп (имеет смысле только в том случае, если SECTION_ID > 0);
    • SUBSECTION - по принадлежности к подразделам раздела. Значением фильтра может быть массив из двух элементов задающих левую и правую границу дерева разделов. Операция отрицания поддерживается.
    • SECTION_ACTIVE - если ключ есть в фильтре, то проверяется активность групп к которым привязан элемент.
    • SECTION_GLOBAL_ACTIVE - аналогично предыдущему, но учитывается также активность родительских групп.
    • SECTION_SCOPE - задает уточнение для фильтров SECTION_ACTIVE и SECTION_GLOBAL_ACTIVE. Если значение "IBLOCK", то учитываются только привязки к разделам инфоблока. Если значение "PROPERTY", то учитываются только привязки к разделам свойств. "PROPERTY_" - привязки к разделам конкретного свойства.
    • *CATALOG_AVAILABLE - признак доступности товара (Y|N). Товар считается недоступным, если его количество меньше либо равно нулю, включен количественный учет и запрещена покупка при нулевом количестве;
    • *CATALOG_CATALOG_GROUP_ID_N - по типу цен;
    • *CATALOG_SHOP_QUANTITY_N - фильтрация по диапазону количества в цене;
    • *CATALOG_QUANTITY - по общему количеству товара;
    • *CATALOG_WEIGHT - по весу товара;
    • *CATALOG_STORE_AMOUNT_<идентификатор_склада> - фильтрация по наличию товара на конкретном складе (доступно с версии 15.0.2 модуля Торговый каталог). В качестве значения фильтр принимает количество товара на складе либо false.
    • *CATALOG_PRICE_SCALE_<тип_цены> - фильтрация по цене с учетом валюты (доступно с версии 16.0.3 модуля Торговый каталог).
    • *CATALOG_BUNDLE - фильтрация по наличию набора у товара (доступно с версии 16.0.3 модуля Торговый каталог).
    • SUBQUERY - [dw]массив[/dw][di]
      $filter = array("SUBQUERY" => array(
     "FIELD" => "имя поля",
    "FILTER" => array(фильтр для отбора предложений)
))
      [/di] из двух параметров:
      • FIELD - строка, имя поля
      • FILTER - массив, фильтр для отбора предложений.
      Внутри GetList преобразовывается в:
      ID => CIBlockElement::SubQuery($filter['SUBQUERY']['FIELD'], $filter['SUBQUERY']['FILTER'])
      Доступен с версии 21.300.0 модуля iblock.
    • SHOW_COUNTER - по количеству показов (фильтр Число);
    • SHOW_COUNTER_START - по времени первого показа (фильтр Дата);
    • WF_COMMENTS - по комментарию документооборота (фильтр Маска);
    • WF_STATUS_ID или WF_STATUS - по коду статуса документооборота (фильтр Число);
    • SHOW_HISTORY - если установлен в значение "Y", то вместе с элементами будут выводится и их архив (история), по умолчанию выводятся только опубликованные элементы. Для фильтрации по WF_STATUS_ID SHOW_HISTORY должен стоять в "Y".
    • SHOW_NEW - если SHOW_HISTORY не установлен или не равен Y и SHOW_NEW=Y, то будут показываться ещё неопубликованные элементы вместе с опубликованными;
    • WF_PARENT_ELEMENT_ID - по коду элемента-родителя в документообороте для выборки истории изменений (фильтр Число);
    • WF_NEW - флаг что элемент ещё ни разу не был опубликован (Y|N);
    • WF_LOCK_STATUS - статус заблокированности элемента в документооборте (red|green|yellow);
    • PROPERTY_<PROPERTY_CODE> - фильтр по значениям свойств, где PROPERTY_CODE - код свойства или символьный код. Для свойств типа "Список", "Число", "Привязка к элементам" и "Привязка к разделам" - фильтр Число. Для прочих - фильтр Маска;
    • PROPERTY_<PROPERTY_CODE>_VALUE - фильтр по значениям списка для свойств типа "список" (фильтр Маска), поиск будет осуществляться по строковому значению списка, а не по идентификатору;
    • *CATALOG_<CATALOG_FIELD>_<PRICE_TYPE> - по полю CATALOG_FIELD из цены типа PRICE_TYPE (ID типа цены), где CATALOG_FIELD может быть: PRICE - цена, CURRENCY - валюта.
    • PROPERTY_<PROPERTY_CODE>.<FIELD> - фильтр по значениям полей связанных элементов. , где PROPERTY_CODE - ID или символьный код свойства привязки, а FIELD - поле указанного в привязке элемента. FIELD может принимать следующие значения: ACTIVE, DETAIL_TEXT_TYPE, PREVIEW_TEXT_TYPE, EXTERNAL_ID, NAME, XML_ID, TMP_ID, DETAIL_TEXT, SEARCHABLE_CONTENT, PREVIEW_TEXT, CODE, TAGS, WF_COMMENTS, ID, SHOW_COUNTER, WF_PARENT_ELEMENT_ID, WF_STATUS_ID, SORT, CREATED_BY, PREVIEW_PICTURE, DETAIL_PICTURE, IBLOCK_ID, TIMESTAMP_X, DATE_CREATE, SHOW_COUNTER_START, DATE_ACTIVE_FROM, DATE_ACTIVE_TO, ACTIVE_FROM, ACTIVE_TO, ACTIVE_DATE, DATE_MODIFY_FROM, DATE_MODIFY_TO, MODIFIED_USER_ID, MODIFIED_BY, CREATED_USER_ID, CREATED_BY. Правила фильтров идентичны тем, которые описаны выше.
    • PRODUCT_BARCODE - по штрихкоду.
    • PRODUCT_BARCODE_STORE - по привязке к складу штрихкода.
    • PRODUCT_BARCODE_ORDER - по привязке к заказу штрихкода.
    Перед названием фильтруемого поля можно указать тип проверки фильтра:
    • "!" - не равно
    • "<" - меньше
    • "<=" - меньше либо равно
    • ">" - больше
    • ">=" - больше либо равно
    • "><" - между
    • и т.д.
    Значения фильтра - одиночное значение или массив значений. Для исключения пустых значений необходимо использовать false.

    Необязательное. По умолчанию записи не фильтруются.

    Примечание 1: (по настройке фильтра для свойства типа "Дата/Время"): свойство типа Дата/Время хранится как строковое с датой в формате YYYY-MM-DD HH:MI:SS. Соответственно сортировка по значению такого свойства будет работать корректно, а вот значение для фильтрации формируется примерно так: $cat_filter[">"."PROPERTY_available"] = date("Y-m-d");

    Примечание 2: при использовании типа проверки фильтра "><" для целых чисел, заканчивающихся нулем, необходимо использовать тип поля число или разделительный знак "," для десятичных значений (например, 20000,00). Иначе работает не корректно.
    ** arGroupBy Массив полей для группировки элемента. Если поля указаны, то выборка по ним группируется (при этом параметр arSelectFields будет проигнорирован), а в результат добавляется поле CNT - количество сгруппированных элементов. Если указать в качестве arGroupBy пустой массив, то метод вернет количество элементов CNT по фильтру. Группировать можно по полям элемента, а также по значениям его свойств. Для этого в качестве одного из полей группировки необходимо указать PROPERTY_<PROPERTY_CODE>, где PROPERTY_CODE - ID или символьный код свойства.
    Необязательное. По умолчанию false - записи не группируются.     		3.2.1
    ** arNavStartParams Параметры для постраничной навигации и ограничения количества выводимых элементов. Массив вида "Название параметра"=>"Значение", где название параметра:
    • "nTopCount" - ограничить количество сверху;
    • "nOffset" - смещение. Ключ работает только при передаче непустого значения в ключе nTopCount. Доступен с версии iblock 21.700.100;
    • "bShowAll" - разрешить вывести все элементы при постраничной навигации;
    • "iNumPage" - номер страницы при постраничной навигации;
    • "nPageSize" - количество элементов на странице при постраничной навигации;
    • "nElementID" - ID элемента, который будет выбран вместе со своими соседями. Количество соседей определяется параметром nPageSize. Например: если nPageSize равно 2-м, то будут выбраны максимум 5-ть элементов. Соседи определяются порядком сортировки, заданным в параметре arOrder (см. выше).
      При этом действуют следующие ограничения:
      • Если элемент с таким ID отсутствует в выборке, то результат будет не определен.
      • nElementID не работает, если задана группировка (см. параметр arGroupBy выше).
      • в параметре arSelect обязательно должно присутствовать поле "ID".
      • обязательно должна быть задана сортировка arOrder.
      • поля в сортировке catalog_* не учитываются, и результат выборки становится не определенным.
      • в выборку добавляется поле RANK - порядковый номер элемента в "полной" выборке.
    Необязательное. По умолчанию false - не ограничивать выводимые элементы.
    Если передать в параметр arNavStartParams пустой массив, то ставится ограничение на 10 выводимых элементов.
            3.2.1
    arSelectFields Массив возвращаемых полей элемента.
    Обратите внимание! В параметре используются поля, но не массивы. Таким образом, попытка выборки по IBLOCK_SECTION (Массив идентификаторов групп, к которым относится элемент) приведет к нарушению работы метода.

    В списке полей элемента можно сразу выводить значения его свойств. Обязательно должно быть использованы поля IBLOCK_ID и ID, иначе не будет работать корректно. Кроме того, также в качестве одного из полей необходимо указать PROPERTY_<PROPERTY_CODE>, где PROPERTY_CODE - ID или символьный код (задается в верхнем регистре, даже если в определении свойств инфоблока он указан в нижнем регистре). В результате будет выведены значения свойств элемента в виде полей PROPERTY_<PROPERTY_CODE>_VALUE - значение; PROPERTY_<PROPERTY_CODE>_ID - код значения у элемента; PROPERTY_<PROPERTY_CODE>_ENUM_ID - код значения (для свойств типа список).
    При установленном модуле торгового каталога можно выводить и цены элемента. Для этого в качестве одного из полей необходимо указать *CATALOG_GROUP_<PRICE_CODE>, где PRICE_CODE - ID типа цены.
    Также есть возможность выбрать поля элементов по значениям свойства типа "Привязка к элементам". Для этого необходимо указать PROPERTY_<PROPERTY_CODE>.<FIELD>, где PROPERTY_CODE - ID или символьный код свойства привязки, а FIELD - поле указанного в привязке элемента. См. ниже "Поля связанных элементов для сортировки".
    Можно выбрать и значения свойств элементов по значениям свойства типа "Привязка к элементам". Для этого необходимо указать PROPERTY_<PROPERTY_CODE>.PROPERTY_<PROPERTY_CODE2>, где PROPERTY_CODE - ID или символьный код свойства привязки, а PROPERTY_CODE2 - свойство указанного в привязке элемента.

    По умолчанию выводить все поля. Значения параметра игнорируются, если используется параметр группировки arGroupBy.
    Примечание 1: если в массиве используются свойство, являющееся множественным, то для элементов, где используются несколько значений этого свойства, будет возвращено несколько записей вместо одной. Для решения этой проблемы инфоблоки нужно перевести в Режим хранения свойств в отдельных таблицах [image], в этом случае для свойства будет отдаваться массив значений. Либо можно не указывать свойства в параметрах выборки, а получать их значения на каждом шаге перебора выборки с помощью _CIBElement::GetProperties().

    Примечание 2: Если в массиве указаны поля DETAIL_PAGE_URL или LIST_PAGE_URL, то поля необходимые для правильной подстановки шаблонов URL'ов будут выбраны автоматически. Но только если не была задана группировка.

    Примечание 3: если необходимо выбрать данные о рейтингах для выбранных элементов, то для этого в массиве необходимо указать следующие поля: RATING_TOTAL_VALUE, RATING_TOTAL_VOTES, RATING_TOTAL_POSITIVE_VOTES, RATING_TOTAL_NEGATIVE_VOTES, RATING_USER_VOTE_VALUE.
            3.2.1
    * - Параметры вида CATALOG_*** устарели в версии 18.6.200 модуля Информационные блоки. Подробнее: Товары и CIBlockElement::GetList
    ** - В случае, если параметром arGroupBy передается пустой массив - данные параметра arNavStartParams - игнорируются.

    Частные случаи

    Рассмотрим несколько частных случаев фильтрации:

    • $arFilter = array("PROPERTY_CML2_SCAN_CODE") =>false - используется, чтобы выбрать все элементы с незаполненными свойствами;
    • $arFilter = array("PROPERTY_CML2_SCAN_CODE") =>"" - используется, чтобы выбрать все элементы;
    • $arFilter = array("PROPERTY_CML2_SCAN_CODE") =>qwe - при фильтрации элементов проверяется точное совпадение с заданными свойствами;
    • $arFilter = array("?PROPERTY_CML2_SCAN_CODE") =>we" - при фильтрации элементов проверяется наличие заданной подстроки свойствах.
    • $arFilter = array("!PROPERTY_CML2_SCAN_CODE") =>false - используется, чтобы выбрать только элементы с заполненными свойствами;
    • $arFilter = array("!PROPERTY_CML2_SCAN_CODE") =>qwe - при фильтрации элементов проверяется точное совпадение с заданными свойствами;
    • $arFilter = array("!?PROPERTY_CML2_SCAN_CODE") =>we - при фильтрации элементов проверяется отсутствие заданной подстроки свойствах.

    Фильтр со сложной логикой

    Параметр arFilter может содержать вложенные фильтры. Ключом массива вложенного фильтра должно быть число. Например:
    • $arFilter = array("NAME" => "A%", array(..<здесь пары "поле" => "фильтр">...), "IBLOCK_ID" => $IBLOCK_ID);
    Вложенность фильтров теоретически не ограничена.
    Так же условия фильтра могут объединяться не только по условию "И", но и "ИЛИ". Для этого в качестве фильтруемого поля надо указать "LOGIC". Может принимать два значения: "AND" и "OR". По умолчанию - "AND". Например выберем маленькие зрелые и большие не зрелые апельсины:

    $arFilter = array(
        "IBLOCK_ID" => $IBLOCK_ID,
        "SECTION_CODE" => "orange",
        "INCLUDE_SUBSECTIONS" => "Y",
        array(
            "LOGIC" => "OR",
            array("<PROPERTY_RADIUS" => 50, "=PROPERTY_CONDITION" => "Y"),
            array(">=PROPERTY_RADIUS" => 50, "!=PROPERTY_CONDITION" => "Y"),
        ),
    );

    В этом примере фильтр по свойствам апельсинов является подфильтром инфоблока фруктов.

    Поля связанных элементов

    • ID - числовой идентификатор элемента;
    • TIMESTAMP_X - время последней модификации в полном формате сайта;
    • MODIFIED_BY - идентификатор пользователя вносившего последние правки;
    • DATE_CREATE - время создания элемента в полном формате сайта
    • CREATED_BY - идентификатор пользователя создавшего элемент;
    • IBLOCK_ID - числовой идентификатор инфоблока элемента;
    • ACTIVE - активность (Y|N);
    • ACTIVE_FROM - начало активности в полном формате сайта;
    • ACTIVE_TO - окончание активности в полном формате сайта;
    • SORT - значение сортировки;
    • NAME - имя элемента;
    • PREVIEW_PICTURE - идентификатор изображения;
    • PREVIEW_TEXT - текст анонса;
    • PREVIEW_TEXT_TYPE - тип текста анонса (html|text);
    • DETAIL_PICTURE - идентификатор изображения;
    • DETAIL_TEXT - детальное описание;
    • DETAIL_TEXT_TYPE - тип детального описания (html|text);
    • SHOW_COUNTER - счетчик показов;
    • SHOW_COUNTER_START - время первого показа элемента в полном формате сайта;
    • CODE - символьный код элемента;
    • TAGS - теги;
    • XML_ID - внешний идентификатор;
    • IBLOCK_SECTION_ID - минимальный идентификатор раздела элемента (если задан);
    Дополнительно присоединяется таблица инфоблоков:
    • IBLOCK_TYPE_ID - идентификатор типа инфоблока;
    • IBLOCK_CODE - символьный код инфоблока;
    • IBLOCK_NAME - название инфоблока;
    • IBLOCK_EXTERNAL_ID - внешний код инфоблока;
    • DETAIL_PAGE_URL - путь к элементу;
    • LIST_PAGE_URL - путь к списку элементов;

    Возвращаемое значение

    Возвращается объект CIBlockResult.

    Примеры использования

    Пример 1:

    <?
$arSelect = Array("ID", "NAME", "DATE_ACTIVE_FROM");
$arFilter = Array("IBLOCK_ID"=>IntVal($yvalue), "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);
while($ob = $res->GetNextElement())
{
 $arFields = $ob->GetFields();
 print_r($arFields);
}
?>

    Пример можно модернизировать, добавив вывод свойств для каждого элемента. Удобно использовать, не прибегая к GetProperty. В случае использования Инфоблоков 2.0 необходимо в $arSelect добавить IBLOCK_ID.

    <?
$arSelect = Array("ID", "IBLOCK_ID", "NAME", "DATE_ACTIVE_FROM","PROPERTY_*");//IBLOCK_ID и ID обязательно должны быть указаны, см. описание arSelectFields выше
$arFilter = Array("IBLOCK_ID"=>IntVal($yvalue), "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);
while($ob = $res->GetNextElement()){
 $arFields = $ob->GetFields();
print_r($arFields);
 $arProps = $ob->GetProperties();
print_r($arProps);
}
?>

    Пример 2:

    <?
// выборка активных элементов из информационного блока $yvalue,
// у которых установлено значение свойства с символьным кодом SRC
// и дата начала автивности старше 1 января 2003 года
// выбранные элементы будут сгруппированы по дате активности
$arFilter = Array(
 "IBLOCK_ID"=>IntVal($yvalue),
 ">DATE_ACTIVE_FROM"=>date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(0,0,0,1,1,2003)),
 "ACTIVE"=>"Y",
 "!PROPERTY_SRC"=>false
 );
$res = CIBlockElement::GetList(Array("SORT"=>"ASC", "PROPERTY_PRIORITY"=>"ASC"), $arFilter, Array("DATE_ACTIVE_FROM"));
while($ar_fields = $res->GetNext())
{
 echo $ar_fields["DATE_ACTIVE_FROM"].": ".$ar_fields["CNT"]."<br>";
}
?>

    Пример 3:

    //вывод архива из просроченных элементов (news.list)
$arFilter = array(
   "IBLOCK_ID" => $arResult["ID"],
   "IBLOCK_LID" => SITE_ID,
   "ACTIVE" => "Y",
   "CHECK_PERMISSIONS" => "Y", //сильно грузит систему, но проверяет права
   " DateFormatToPHP(CLang::GetDateFormat("SHORT")), );

    Пример 4:

    //выборка элементов инфоблока, чтобы в возвращаемом результате находилось 5 случайных элементов
$rs = CIBlockElement::GetList (
   Array("RAND" => "ASC"),
   Array("IBLOCK_ID" => $IBLOCK_ID),
   false,
   Array ("nTopCount" => 5)
);

    Пример 5:

    //для фильтрации по нескольким значениям множественного свойства, нужно использовать подзапросы.
CModule::IncludeModule('iblock');

$rs = CIBlockElement::GetList(
   array(),
   array(
   "IBLOCK_ID" => 21,
   array("ID" => CIBlockElement::SubQuery("ID", array("IBLOCK_ID" => 21, "PROPERTY_PKE" => 7405))),
   array("ID" => CIBlockElement::SubQuery("ID", array("IBLOCK_ID" => 21, "PROPERTY_PKE" => 7410))),
   array("ID" => CIBlockElement::SubQuery("ID", array("IBLOCK_ID" => 21, "PROPERTY_PKE" => 7417)))
   ),
   false,
   false,
   array("ID")
);

while($ar = $rs->GetNext()) {
    echo '<pre>';
    print_r($ar);
    echo '</pre>';
}

    Пример 6:

    //следующий и предыдущий товар с учетом сортировки в подробном просмотре
 $arrSortAlown = array('price'=> 'catalog_PRICE_1' , 'name'=> 'NAME', 'rating' => 'PROPERTY_RATING' , 'artnumber'=> 'PROPERTY_ARTNUMBER');

   $_sort = isset($arrSortAlown[$_GET['sort']]) ? $arrSortAlown[$_GET['sort']] : 'NAME';
   $_order = isset($_GET['order']) && $_GET['order']=='desc' ? 'DESC' : 'ASC';

   $sort_url = 'sort=' .( isset($_GET['sort'])? $_GET['sort'] : 'name')
                        .'&order='. (isset($_GET['order'])? $_GET['order'] : 'asc');

   $res = CIBlockElement::GetList(
      array("$_sort" => $_order),
      Array(
         "IBLOCK_ID"=>$arResult["IBLOCK_ID"],
         "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y" ,
         "IBLOCK_SECTION_ID" =>
         $arResult["IBLOCK_SECTION_ID"]
      ),
      false,
      array("nPageSize" => "1","nElementID" => $arResult["ID"]),
      array_merge(Array("ID", "NAME","DETAIL_PAGE_URL"), array_values($arrSortAlown))
   );
   $navElement = array();
   while($ob = $res->GetNext()){
     $navElement[] = $ob;
   }

//вывод:
<noindex>
<div class="navElement" style="float:right; clear:both;">
   <span class="l">
      <small><a href="<?=$navElement[0]['DETAIL_PAGE_URL']?>?<?=$sort_url?>">Предыдущий товар</a></small>
   </span>
   <span class="r">
      <small><a href="<?=$navElement[2]['DETAIL_PAGE_URL']?>?<?=$sort_url?>">Следующий товар</a></small>
   </span>
</div>
</noindex>

    Пример 7:

    //вывод ненаступивших и, следовательно, неактивных анонсов событий без правки компонента
// в компоненте указываем имя фильтра, а сам фильтр добавляем перед компонентом:
<?
    $arrFilter=Array(array(
        "LOGIC" => "OR",
        array("DATE_ACTIVE_TO"=>false),
        array(">DATE_ACTIVE_TO"=>ConvertTimeStamp(time(),"FULL"))

    ));
  ?>

    Пример 8:

    //В iblock v18.6.700 появилась возможность сортировать выборку в порядке ID, указанных в массиве

// сортировать в таком порядке ID
$ids = [115, 120, 117, 109, 128];
$rs = CIBlockElement::GetList(
   ['ID' => $ids],
   ['IBLOCK_ID' => '5', 'ID' => $ids],
   false, false,
   ['ID', 'IBLOCK_ID', 'NAME']
);
while ($ar = $rs->Fetch()) {
   echo $ar['ID'] . ' ';
}

// имеем вывод:
// 115 120 117 109 128

    Пример 9:

    //В iblock v21.700.100 в arNavStartParams добавлен ключ nOffset (смещение)

\Bitrix\Main\Loader::includeModule('iblock');

$res = CIBlockElement::GetList(
    ['ID' => 'ASC'],
    ['IBLOCK_ID' => 2],
    false,
    ['nTopCount' => 5, 'nOffset' => 1000],
    ['ID', 'IBLOCK_ID', 'NAME']
);

while ($row = $res->Fetch())
{
    echo '<pre>', mydump($row), '</pre>';
}

// nTopCount - сколько
// nOffset - с каким смещением


GetProperty

Информационные блоки>Классы>CIBlockElement>GetProperty (доступен с 3.0.8)

CIBlockElement::GetProperty

Описание

CDBResult
  CIBlockElement::GetProperty(
  int iblock_id,
  int element_id,
  array arOrder = Array(),
  array arFilter = Array()
);

Метод возвращает значения свойства для элемента element_id. Метод статический.

Смотрите также

  • CDBResult
  • Поля свойств

Параметры вызова

Параметр | Описание
iblock_id | Код инфоблока.
element_id | Код элемента.
arOrder
Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где by - поле для сортировки, может принимать значения:
  • id - код свойства;
  • sort - индекс сортировки;
  • name - имя свойства;
  • active - активность свойства;
  • value_id - код значения свойства;
  • enum_sort - индекс сортировки варианта списочного свойства;
order - порядок сортировки, может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию равен Array("sort"=>"asc")
Примечание: параметр не должен быть false, иначе метод отработает неправильно и результат не будет отобран по заданным критериям.
arFilter Массив вида array("фильтруемое поле"=>"значения фильтра" [, ...]) "фильтруемое поле" может принимать значения: ACTIVE - активность (Y/N),
  • NAME - название свойства (можно использовать маску %|_),
  • ID - код свойства,
  • ACTIVE - активность (Y|N),
  • SEARCHABLE - участвует в поиске или нет (Y|N),
  • PROPERTY_TYPE - тип свойства,
  • CODE - символьный код свойства,
  • EMPTY - пустота свойства (Y|N).
Не обязательный параметр, по умолчанию равен array().

Примечание - Существуют ещё параметры, оставленные для сохранения совместимости: $by и $order .

Возвращаемое значение

Возвращается объект CDBResult, содержащий поля свойств и поля со значениями:

PROPERTY_VALUE_ID - код значения свойства,
VALUE - значение свойства,
DESCRIPTION - описание значения свойства,
VALUE_ENUM - текстовое значение элемента списочного свойства,
VALUE_XML_ID - внешний код значения свойства типа "список".

Примеры использования

Пример 1:

<?
$db_props = CIBlockElement::GetProperty($PRODUCT_IBLOCK_ID, $PRODUCT_ID, array("sort" => "asc"), Array("CODE"=>"FORUM_TOPIC_ID"));
if($ar_props = $db_props->Fetch())
    $FORUM_TOPIC_ID = IntVal($ar_props["VALUE"]);
else
    $FORUM_TOPIC_ID = false;
?>

Пример 2 (получить значения для множественного свойства):

    $VALUES = array();
    $res = CIBlockElement::GetProperty(IKSO_CUSTOM::$IBLOCKS['brands'], $BRAND_ID, "sort", "asc", array("CODE" => "BRAND_CLASS"));
    while ($ob = $res->GetNext())
    {
        $VALUES[] = $ob['VALUE'];
    }

Пример 3 (получить значения для немножественного свойства):

$res = CIBlockElement::GetProperty(IKSO_CUSTOM::$IBLOCKS['brands'], $BRAND_ID, "sort", "asc", array("CODE" => "BRAND_CLASS"));
    if ($ob = $res->GetNext())
    {
        $VALUE = $ob['VALUE'];
    }

Пример 4:

Если значений у свойства нет и в фильтр не передается "EMPTY"=>"N", то метод вернет массив с с пустым ключом VALUE:

//используются Инфоблоки 2.0
$db_props = CIBlockElement::GetProperty(30, 14391, "sort", "asc", Array("CODE"=>"XXX")); // XXX - множественное свойства типа "Строка"
if($ar_props = $db_props->Fetch()):
echo "<pre>".print_r($ar_props, true)."<pre>";
endif;


GetPropertyValues

Информационные блоки>Классы>CIBlockElement>GetPropertyValues (с версии 14.0.0)

CIBlockElement::GetPropertyValues

Описание и параметры

 CIBlockElement::GetPropertyValues(
 $IBLOCK_ID,
 $arElementFilter,
 $extMode = false,
 $propertyFilter = array()
);

Метод позволяет получить значения свойств для элементов одного информационного блока, отобранных по фильтру

Параметры функции

Параметр | Описание
IBLOCK_ID | ID инфоблока (ЕДИНИЧНОЕ значение).
arElementFilter | Фильтр CIBlockElement::GetList для отбора элементов. Ключ IBLOCK_ID указывать нет необходимости - он будет добавлен внутри метода.
extMode | Признак возврата расширенного числа полей. Необязательный.
propertyFilter | Фильтр возвращаемых свойств. необязательный. Может иметь только 1 ключ - ID. Это массив ID возвращаемых свойств. Если пуст - будут возвращены значения всех свойств инфоблока, включая неактивные.

Возвращаемое значение

Возвращаемое значение - объект типа CIBlockPropertyResult.

Если $extMode = false, то возвратятся следующие ключи для каждого значения свойства:

IBLOCK_ELEMENT_ID - ID элемента,
IBLOCK_PROPERTY_ID - ID свойства,
VALUE - строковое значение свойства,
VALUE_NUM - цифровое значение свойства (имеет смысл для свойств типа число, список, привязка к элементам, разделам, файловым и производным от них).

Если $extMode = true, то дополнительно вернутся ключи:

PROPERTY_VALUE_ID - ID записи значения свойства в базе,
DESCRIPTION - описание значения свойства (если есть).

Результат отсортирован по полю IBLOCK_ELEMENT_ID

Примеры использования

Получить все значения свойств с кодами 10 и 14 активных элементов инфоблока 5

$iterator = CIBlockElement::GetPropertyValues(5, array('ACTIVE' => 'Y'), true, array('ID' => array(10, 14)));
while ($row = $iterator->Fetch())
{
  print_r($row);
}


GetPropertyValuesArray

Информационные блоки>Классы>CIBlockElement>GetPropertyValuesArray (с версии 14.5.0)

CIBlockElement::GetPropertyValuesArray

CIBlockElement::GetPropertyValuesArray(
 &$result,
 $iblockID,
 $filter,
 $propertyFilter = array(),
 $options = array()
);

Получение значений свойств элементов одного инфоблока для компонента. Строго рекомендуется как замена кода вида

$iterator = CIBlockElement::GetList();
while ($obj = $iterator->GetNextElement())
{
  $properties = $obj->GetProperties();
}
в целях улучшения производительности.

Параметры функции

Параметр | Описание
result | Массив результатов, в качестве ключей должен содержать ID элементов. Передается по ссылке. Для каждого элемента вернет массив значений свойств.
iblockID | ID инфоблока (ЕДИНИЧНОЕ значение)
filter | Фильтр CIBlockElement::GetList для отбора элементов. Ключ IBLOCK_ID указывать нет необходимости - он будет добавлен внутри метода.
propertyFilter | Фильтр для отбора свойств. необязательный. Может содержать 3 ключа. либо ID - массив ID возвращаемых свойств. либо CODE - массив символьных кодов свойств. При указании обоих ключей учитывается только ID. Третий ключ - фильтр по активности свойств. Если не указать - будут выведены только активные свойства
options | Дополнительные настройки. Необязательный. Возможные ключи: USE_PROPERTY_ID = Y - ключами массива значений для каждого элемента использовать ID свойств. Иначе - символьные коды. PROPERTY_FIELDS - массив полей СВОЙСТВА, возвращаемых в результате. GET_RAW_DATA => Y - в этом случае в возвращаемых данных не будет ключей с ~ в начале, а оставшиеся не будут приведены к html-безопасному виду.

Возвращаемое значение

Возвращаемое значение - нет.


getPublicElementsOrmFilter

Информационные блоки>Классы>CIBlockElement>getPublicElementsOrmFilter (с версии 21.300.100)

CIBlockElement::getPublicElementsOrmFilter

array
public static function CIBlockElement::getPublicElementsOrmFilter(
 array $filter
);

Статический метод для дополнения фильтра orm на основе массива. Служит для получения фильтра, отсекающего неопубликованные записи в режиме документооборота (историю редактирования).

Возвращаемое значение - массив.

Параметры функции

Параметр | Описание
$filter | Массив фильтра для orm (\Bitrix\Iblock\ElementTable::getList [image] )


isExistsMnemonicCode

Информационные блоки>Классы>CIBlockElement>isExistsMnemonicCode (с версии 21.300.100)

CIBlockElement::isExistsMnemonicCode

bool
public function CIBlockElement::isExistsMnemonicCode(
 string $code,
 ?int $elementId,
 int $iblockId
);

Нестатический метод проверки существования символьного кода. Возвращаемое значение - true / false (уже существует или нет).

Параметры функции

Параметр | Описание
$code | Непустая строка символьного кода, для которой выполняется поиск, Тип - строка (string), обязательный
$elementId | Идентификатор элемента. Тип - целое число (int) или null, обязательный. Если указать не null - в фильтр будет добавлено условие по ID записи
$iblockId | Идентификатор инфоблока. Тип - целое число (int), обязательный.


SetElementSection

Информационные блоки>Классы>CIBlockElement>SetElementSection (доступен с 3.1.3)

CIBlockElement::SetElementSection

Использование метода не рекомендуется, так как он служебный, хоть и публичный. Для передачи привязок к разделам необходимо использовать CIBlockElement::Update

Описание и параметры

CIBlockElement::SetElementSection(
 int ID,
 array arSections,
 bool bNew = false,
 int bRightsIBlock = 0
);

Метод привязывает элемент информационного блока к группам. Нестатический метод. При использовании метода время обновления элемента не меняется.

При использовании метода, поменяется ID главного раздела, на наименьший из id передаваемого массива кодов групп.

Параметры вызова

Параметр | Описание | С версии
ID | Код (ID) элемента. |
arSections | Массив кодов групп, к которым принадлежит указанный элемент. Если передать пустой, то элемент будет "отвязан" от всех групп. |
bNew | Необязательный. Если это новый элемент или элемент не имеющий привязок, то можно указать значением этого параметра true. Это позволит экономит один запрос. Параметр используется только для оптимизации, когда известно, что элемент ни к чему не привязан. | 6.5.7
bRightsIBlock | Код (ID) инфоблока, к которому принадлежит элемент. Параметр обязателен в случае включенных расширенных прав, иначе - необязателен. | 11.0.5

Начиная с версии 15.0.1 модуля Информационные блоки, добавлен фасетный (т.е. предопределенный) поиск по товарам торгового каталога. После использовании функции CIBlockElement::SetElementSection() необходимо осуществить:

PropertyIndex\Manager::updateElementIndex($iblockId, $elementId);

Смотрите также

  • CIBlockElement:: GetElementGroups

Примеры использования

<?
$ID = 18;  // код элемента
$arSects = array(1, 5, 7); // массив кодов групп
CIBlockElement::SetElementSection($ID, $arSects);
?>


SetPropertyValueCode

Информационные блоки>Классы>CIBlockElement>SetPropertyValueCode (доступен с 3.0.13)

CIBlockElement::SetPropertyValueCode

Описание и параметры

bool
  CIBlockElement::SetPropertyValueCode(
 int ELEMENT_ID,
 string PROPERTY_CODE,
 string PROPERTY_VALUE
  );
Метод изменяет значение свойства элемента информационного блока. Выполняет один дополнительный запрос к БД для определения кода информационного блока элемента. Если код инфоблока известен, то лучше воспользоваться функцией SetPropertyValues, задав ей 4-й параметр. Статический метод.

Внимание! Удалять и обновлять несколько значений файлового свойства можно только ОДНИМ вызовом, а не несколькими, так как меняются ID значений свойств.

Отличие метода от SetPropertyValuesEx в том, что он не перезаписывает множественное свойства типа Файл, а дополняет.

Параметры вызова

Параметр | Описание
ELEMENT_ID | Код элемента, значение свойства которого изменяется.
PROPERTY_CODE | Символьный или числовой код свойства, которое изменяется. Если передан неверный PROPERTY_CODE метод все равно вернет true.
PROPERTY_VALUE | Значение свойства (одиночное или множественное в виде массива значений). Если для свойства типа список, привязка к элементам или разделам (и их клонам) будет установлено равным переданному значению PROPERTY_VALUE, без проверки, метод вернет true. (Если передавать значение, а не его ENUM_ID, то в БД будет записано само значение, привязки к значению не будет.)

Возвращаемое значение

При успешном изменении вернет true, иначе - false.

Смотрите также

  • CIBlockElement::Update
  • CIBlockElement::SetPropertyValues

Примеры использования

Пример 1:

<?
$arFile = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/add_basket.gif");
CIBlockElement::SetPropertyValueCode($ELEMENT_ID, "picture", $arFile);
?>

При добавлении/изменении значений свойства можно одновременно установить и описание, если после вызова MakeFileArray добавить "description".

Пример 2:

Для обновления значения поля типа html/текст значение TYPE должно быть либо HTML, либо TEXT:

CIBlockElement::SetPropertyValueCode(ELEMENT_ID, NAME_PROPERTY, array(array("TYPE"=>"TEXT", "TEXT"=>"мой текст")));


SetPropertyValues

Информационные блоки>Классы>CIBlockElement>SetPropertyValues (доступен с 3.0.5)

CIBlockElement::SetPropertyValues

Описание

CIBlockElement::SetPropertyValues(
 int ELEMENT_ID,
 int IBLOCK_ID,
 array PROPERTY_VALUES,
 string PROPERTY_CODE = false
);

Метод сохраняет значения всех свойств элемента информационного блока. Статический метод.

Внимание! Удалять и обновлять несколько значений файлового свойства можно только ОДНИМ вызовом, а не несколькими, так как меняются ID значений свойств.

Смотрите также

  • CIBlockElement::Update
  • CIBlockElement::SetPropertyValueCode

Параметры вызова

Параметр | Описание
ELEMENT_ID | Код элемента, значения свойств которого необходимо установить.
IBLOCK_ID | Код информационного блока.
PROPERTY_VALUES Массив значений свойств, в котором коду свойства ставится в соответствие значение свойства.
Если PROPERTY_CODE установлен, то должен содержать одно или массив всех значений свойства (множественное) для заданного элемента.
Если PROPERTY_CODE равен false, то PROPERTY_VALUES должен быть вида Array("код свойства1"=>"значения свойства1", ....), где "код свойства" - числовой или символьный код свойства, "значения свойства" - одно или массив всех значений свойства (множественное). При этом массив PROPERTY_VALUES должен содержать полный набор значений свойств для данного элемента, т.е. если в нем будет остутствовать одно из свойств, то все его значения для данного элемента будут удалены.
Это справедливо для всех типов свойств кроме типа файл. Файлы надо удалять через массив с параметром "del"=>"Y".
Если свойство типа файл множественное, то файл будет удален в случае присутствия параметра del, независимо от принимаемого им значения.

Примечания:
  • При обновлении нужно задать все свойства элемента, иначе те, которые не заданы, будут сброшены.
  • Если передаётся массив "свойство"=>"значение", то в качестве значения свойств типа "справочник" нужно указывать внешний код элемента справочника.

  • Для свойства типа Список следует передавать идентификатор значения свойства, а не значение.
PROPERTY_CODE | Код изменяемого свойства. Если этот параметр отличен от false, то изменяется только свойство с таким кодом. Не обязательный параметр, по умолчанию равен false.

Примеры использования

Пример 1:

<?
$ELEMENT_ID = 18;  // код элемента
$PROPERTY_CODE = "PROP1";  // код свойства
$PROPERTY_VALUE = "Синий";  // значение свойства

// Установим новое значение для данного свойства данного элемента
$dbr = CIBlockElement::GetList(array(), array("=ID"=>$ELEMENT_ID), false, false, array("ID", "IBLOCK_ID"));
if ($dbr_arr = $dbr->Fetch())
{
  $IBLOCK_ID = $dbr_arr["IBLOCK_ID"];
  CIBlockElement::SetPropertyValues($ELEMENT_ID, $IBLOCK_ID, $PROPERTY_VALUE, $PROPERTY_CODE);
}
?>

Пример 2 (код вызова метода для свойства типа "Строка"):

$value="text";
CIBlockElement::SetPropertyValueCode("$ELEMENT_ID", "code", $value);

Пример 3 (код вызова метода для свойства типа "HTML/text"):

$value="text";
CIBlockElement::SetPropertyValueCode("$ELEMENT_ID", "code", array("VALUE"=>array("TEXT"=>$value, "TYPE"=>"html")));

Пример 4 (добавление описания к значению):

CIBlockElement::SetPropertyValues ( $PRODUCT_ID, $IBLOCK_ID, array("VALUE"=>$prop_value,"DESCRIPTION"=>$prop_description), $property_name );

Пример 5 (удаление свойства типа "Файл"):

CIBlockElement::SetPropertyValuesEx(ELEMENT_ID, IBLOCK_ID, array(PROPERTY_ID => Array ("VALUE" => array("del" => "Y"))));

Пример 6:

Если требуется обновить всю карточку товара, включая свойства со значениями множественного типа (вместе с их описанием), то это можно сделать одним вызовом Update. Следует добавить описание (DESCRIPTION) к значениям (VALUE) свойств множественного типа, в PROPERTY_VALUES прописать числовой или символьный код свойства (множественного типа) и присвоить массив со значениями типа:

$arrFields = Array(
   'PROPERTY_ID_OR_CODE' => Array(
      Array(
         "VALUE" => 'value1',
         "DESCRIPTION" => 'desc for value1'
      ),
      Array(
         "VALUE" => 'value2',
         "DESCRIPTION" => 'desc for value2'
      )
   )
);


SetPropertyValuesEx

Информационные блоки>Классы>CIBlockElement>SetPropertyValuesEx (доступен с 6.0.0)

CIBlockElement::SetPropertyValuesEx

Описание и параметры

CIBlockElement::SetPropertyValuesEx(
   int ELEMENT_ID,
   int IBLOCK_ID,
   array PROPERTY_VALUES,
   array FLAGS = array()
);

Метод сохраняет значения всех свойств элемента информационного блока. В отличие от SetPropertyValues может не содержать полный набор значений. Значения свойств, неуказанных в массиве PROPERTY_VALUES, будут сохранены. Этот метод более экономен в количестве запросов к БД. Метод статический.

Метод возвращает Null.

Если необходимо сохранить пустое значение для множественного свойства, то используйте значение false, так как просто пустой массив не сохранится.

Параметры вызова

Параметр | Описание
ELEMENT_ID | Код элемента, значения свойств которого необходимо установить.
IBLOCK_ID Код информационного блока. Может быть не указан. В этом случае будет прочитан из базы данных по коду элемента.
PROPERTY_VALUES Массив значений свойств, в котором коду свойства ставится в соответствие значение свойства.
Должен быть вида Array("код свойства1"=>"значения свойства1", ....), где "код свойства" - числовой или символьный код свойства, "значения свойства" - одно или массив всех значений свойства (множественное).

Примечания:
  • При добавлении значений свойств типа "Файл" поле DESCRIPTION обязательно.
  • Если передаётся массив "свойство"=>"значение", то в качестве значения свойств типа "справочник" нужно указывать внешний код элемента справочника.

  • Для свойства типа Список следует передавать идентификатор значения свойства, а не значение.
  • для свойства типа Привязка к файлу на сервере, нужно передавать путь к файлу от корня сайта.
FLAGS Необязательный параметр предоставляет информацию для оптимизации выполнения. Может содержать следующие ключи:
  • NewElement - можно указать если заведомо известно, что значений свойств у данного элемента нет. Экономит один запрос к БД.
  • DoNotValidateLists - для свойств типа "список" отключает проверку наличия значений в метаданных свойства.

Смотрите также

  • CIBlockElement::SetPropertyValues

Примеры использования

Пример 1:

<?
$ELEMENT_ID = 18;  // код элемента
$PROPERTY_CODE = "PROP1";  // код свойства
$PROPERTY_VALUE = "Синий";  // значение свойства

// Установим новое значение для данного свойства данного элемента
CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, false, array($PROPERTY_CODE => $PROPERTY_VALUE));

?>

Пример 2 (изменение немножественного свойства типа HTML/Text):

$el_id = 125;
$iblock_id = 45;
$prop[$prop_code] = array('VALUE'=>array('TYPE'=>'HTML', 'TEXT'=>$prop_value));
CIBlockElement::SetPropertyValuesEx($el_id, $iblock_id, $prop);

Пример 3:

<input name="MyFile1" type="file" />
<input name="MyFile2" type="file" />

function makeCurentFilesArray($InputFileCode) {
   unset($arFiles, $TMPFILE);
   $arFiles = array();  // Массив всех файлов в свойстве []
   $TMPFILE = array(); // Временный массив для текщего файла
   if(is_array($_FILES[$InputFileCode])) {
      foreach($_FILES[$InputFileCode]['tmp_name'] as $key => $val) {
         if(file_exists($val)) {
            foreach($_FILES[$InputFileCode] as $namekey => $nameval) {
               $TMPFILE[$namekey] = $nameval[$key];
            }
         $arFiles[] = array('VALUE' => $TMPFILE, 'DESCRIPTION' => $TMPFILE['name']);
         }
      }
   }
   return $arFiles;
}

if (!empty($_FILES['MyFile1'])) $PropFileArr['MyFile1'] = makeCurentFilesArray('MyFile1');
if (!empty($_FILES['MyFile2'])) $PropFileArr['MyFile2'] = makeCurentFilesArray('MyFile2');

CIBlockElement::SetPropertyValuesEx($Element_ID, $IBlock_ID, $PropFileArr); // Обновляем массив свойств типа файл


SubQuery

Информационные блоки>Классы>CIBlockElement>SubQuery (доступен с 10.0.2)

CIBlockElement::SubQuery

Описание и параметры

object
CIBlockElement::SubQuery(
 string strField,
 array arFilter
 );

Позволяет использовать подзапросы. Метод статический.

Примечание: применимо только к полю ID элемента основного запроса.

Параметры вызова

Параметр | Описание
strField Название поля, по которому будет осуществляться фильтрация.
Возможные значения:
  • ID - по идентификатору элемента
  • PROPERTY_<PROPERTY_CODE> - по значению свойства, где PROPERTY_CODE - это ID или символьный код свойства привязки. Свойство должно быть типа "привязка к элементам".
arFilter | Фильтр элементов тот же, что и в методе CIBlockElement::GetList.

Возвращаемое значение

Объект подзапроса.

Примеры использования

<?
//Выбрать авторов написавших книги в 21-ом веке.
if(CModule::IncludeModule('iblock'))
{
  $rsBooks = CIBlockElement::GetList(
    array("NAME" => "ASC"), //Сортируем по имени
    array(
      "IBLOCK_ID" => $AUTHOR_IBLOCK,
      "ACTIVE" => "Y",
      "ID" => CIBlockElement::SubQuery("PROPERTY_AUTHOR", array(
        "IBLOCK_ID" => $BOOK_IBLOCK,
        ">=PROPERTY_PRINT_DATE" => "2000-01-01 00:00:00",
      )),
   ),
   false, // Без группировки
   false,  //Без постранички
   array("ID", "IBLOCK_ID", "NAME") // Выбираем только поля необходимые для показа
  );
  while($arBook = $rsBooks->GetNext())
    echo "<li>", $arBook["NAME"],"\n";
}
?>

Смотрите также

  • CIBlockElement::GetList


Update

Информационные блоки>Классы>CIBlockElement>Update (доступен с 3.0.8)

CIBlockElement::Update

Описание

bool
 CIBlockElement::Update(
 int ID,
 array arFields,
 bool bWorkFlow = false,
 bool bUpdateSearch = true,
 bool bResizePictures = false,
 bool bCheckDiskQuota = true
);

Метод изменяет параметры элемента с кодом ID. Перед изменением элемента вызываются обработчики события OnStartIBlockElementUpdate из которых можно изменить значения полей или отменить изменение элемента вернув сообщение об ошибке. После изменения элемента вызывается само событие OnAfterIBlockElementUpdate. Нестатический метод.

Если изменяется свойство типа файл, то необходимо сформировать массив [image].

Смотрите также

  • CIBlockElement::Add
  • OnBeforeIBlockElementUpdate
  • OnAfterIBlockElementUpdate

Параметры вызова

Параметр | Описание | С версии
ID | ID изменяемой записи.
arFields Массив вида Array("поле"=>"значение", ...), содержащий значения полей элемента инфоблоков и дополнительно может содержать поле "PROPERTY_VALUES" - массив со всеми значениями свойств элемента в виде массива Array("код свойства"=>"значение свойства"). Где
"код свойства" - числовой или символьный код свойства,
"значение свойства" - одиночное значение, либо массив значений (если свойство множественное).

Если массив PROPERTY_VALUES задан, то он должен содержать полный набор значений свойств для данного элемента, т.е. если в нем будет отсутствовать одно из свойств, то все его значения для данного элемента будут удалены.

Это справедливо для всех типов свойств кроме типа файл. Файлы надо удалять через массив с параметром "del"=>"Y".
Если свойство типа список, то в PROPERTY_VALUES надо отдавать не название, а ID значения.
Дополнительно для сохранения значения свойств см: CIBlockElement::SetPropertyValues(), CIBlockElement::SetPropertyValueCode().

Примечание 1: нельзя изменить значения полей ID и IBLOCK_ID.

Примечание 2: чтобы при обновлении элемента поле TIMESTAMP_X не обновилось на текущее время, в arFields необходимо передать:
'TIMESTAMP_X' => FALSE, // или NULL

Примечание 3: Если нужно обновить элемент инфоблока, добавив его в несколько новых разделов, но не изменив "главный", т.е. чтобы URL элемента не изменился, то в вызове CIBlockElement::Update передайте два ключа: IBLOCK_SECTION_ID - ID основного раздела, IBLOCK_SECTION - массив ID всех разделов элемента, включая основной.
bWorkFlow Изменение в режиме документооборота. Если true и модуль документооборота установлен, то данное изменение будет учтено в журнале изменений элемента. Не обязательный параметр, по умолчанию изменение в режиме документооборота отключено.
Примечание: в режиме документооборота можно передавать значения не всех свойств в PROPERTY_VALUES, а только необходимых.
3.1.3
bUpdateSearch | Индексировать элемент для поиска. Для повышения производительности можно отключать этот параметр во время серии изменений элементов, а после их окончания переиндексировать поиск. Не обязательный параметр, по умолчанию элемент после изменения будет автоматически проиндексирован в поиске. | 3.2.1
bResizePictures | Использовать настройки инфоблока для обработки изображений. По умолчанию настройки не применяются. Если этот параметр имеет значение true, то к полям PREVIEW_PICTURE и DETAIL_PICTURE будут применены правила генерации и масштабирования в соответствии с настройками информационного блока. | 8.0.10
bCheckDiskQuota | Проверять ограничение по месту занимаемому базой данных и файлами или нет (настройка главного модуля). Необязательный параметр. | 11.0.14

Возвращаемое значение

Метод возвращает true если изменение прошло успешно, при возникновении ошибки метод вернет false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки.

Примеры использования

<?
$el = new CIBlockElement;

$PROP = array();
$PROP[12] = "Белый";  // свойству с кодом 12 присваиваем значение "Белый"
$PROP[3] = 38;        // свойству с кодом 3 присваиваем значение 38

$arLoadProductArray = Array(
  "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
  "IBLOCK_SECTION" => false,          // элемент лежит в корне раздела
  "PROPERTY_VALUES"=> $PROP,
  "NAME"           => "Элемент",
  "ACTIVE"         => "Y",            // активен
  "PREVIEW_TEXT"   => "текст для списка элементов",
  "DETAIL_TEXT"    => "текст для детального просмотра",
  "DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
  );

$PRODUCT_ID = 2;  // изменяем элемент с кодом (ID) 2
$res = $el->Update($PRODUCT_ID, $arLoadProductArray);
?>

Менять параметр IBLOCK_ID нельзя.

Пример задания нового значения дополнительного свойства:

Для типа HTML/TEXT, при вставке HTML-кода и автоматическом подключении HTML-редактора:
$PROP[tables] = array("VALUE" => array("TYPE" =>"HTML","TEXT" => $matches[0]));
Для типа HTML/TEXT, при вставке plain text:
$PROP[tables] = array("VALUE" => array("TYPE" =>"TEXT","TEXT" => $matches[0]));


UpdateSearch

Информационные блоки>Классы>CIBlockElement>UpdateSearch (доступен с 3.0.8)

CIBlockElement::UpdateSearch

CIBlockElement::UpdateSearch(
 int ID,
 bool bOverWrite = false
);
Индексирует элемент с кодом ID в модуле поиска. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код элемента.
bOverWrite | Переиндексировать ли элемент, если дата его изменения не изменилась.


CIBlockFormatProperties

  • DateFormat
  • GetDisplayValue


DateFormat

Информационные блоки>Классы>CIBlockFormatProperties>DateFormat (доступен с 5.9.0)

CIBlockFormatProperties::DateFormat

string CIBlockFormatProperties::DateFormat(
   string format,
   string timestamp
)

Конвертирует дату в нужный формат. Доступные форматы можно посмотреть, вызвав CIBlockParameters::GetDateFormat. Метод статический.

Примечание: является функцией-оберткой для [link=253704]FormatDate[/link].

Параметры вызова

Параметр | Описание
format | Формат даты/времени. Может дополнительно принимать 2 значения: SHORT и FULL (для них берется формат даты или времени для сайта).
timestamp | Метка времени в Unix формате.

Возвращаемое значение

Отформатированная строка.


GetDisplayValue

Информационные блоки>Классы>CIBlockFormatProperties>GetDisplayValue (доступен с 5.9.0)

CIBlockFormatProperties::GetDisplayValue

array CIBlockFormatProperties::GetDisplayValue(
  array arItem,
  array arProperty,
)

Метод помогает компонентам показать значения свойства элемента. Вынесен в модуль для унификации отображения. Метод статический.

Параметры вызова

Параметр | Описание
arItem | Массив полей элемента.
arProperty | Массив полей свойства (как его возвращает метод CIBlockElement::GetProperty).

Возвращаемое значение

Массив полей элемента.

Примечание: метод в поле DISPLAY_VALUE выводит только активные по дате элементы (используется фильтр на уровне ядра, поэтому вывести ссылки на неактивные элементы не получится стандартными средствами).


CIBlockParameters

  • checkParamValues


checkParamValues

Информационные блоки>Классы>CIBlockParameters>checkParamValues (доступно с 14.5.10)

CIBlockParameters::checkParamValues

CIBlockParameters::checkParamValues(
  $value
);

Проверяет значение параметра. Метод статический.

Параметры вызова

Параметр | Описание
value | Проверяемое значение

Возвращаемое значение

Возвращает true, если значение не может быть приведено к false.

Примеры использования

$arCodes = array('', 0, 'ARTICUL');
$arCodes = array_filter($arCodes, 'CIBlockParameters::checkParamValues');

После этого в $arCodes будет выглядеть так:

$arCodes = array(2 => 'ARTICUL');


CIBlockPriceTools

  • CanBuy
  • GetCatalogPrices
  • GetItemPrices
  • GetOffersArray


CanBuy

Информационные блоки>Классы>CIBlockPriceTools>CanBuy (доступен с 5.9.0)

CIBlockPriceTools::CanBuy

array CIBlockPriceTools::CanBuy(
  int IBLOCK_ID,
  array arCatalogPrices,
  array arItem
)

Метод статический.

Параметры вызова

Параметр | Описание
IBLOCK_ID |
arCatalogPrices |
arItem |

Возвращаемое значение

© «Битрикс», 2001-2008, «1C-Битрикс», 2008-2022 1С-Битрикс: Управление сайтом


GetCatalogPrices

Информационные блоки>Классы>CIBlockPriceTools>GetCatalogPrices (доступен с 5.9.0)

CIBlockPriceTools::GetCatalogPrices

Описание и параметры

array CIBlockPriceTools::GetCatalogPrices(
  int IBLOCK_ID,
  array arPriceCode
);

Метод возвращает перечень типов цен с параметрами типа и с указанием, возможен ли просмотр и покупка этого типа цен для групп текущего пользователя. Метод статический.

Параметры вызова

Параметр | Описание
IBLOCK_ID | Идентификатор инфоблока. В действительности параметр используется только в редакциях без модуля Торговый каталог, несмотря на то, что является обязательным.
arPriceCode Массив, зависящий от редакции продукта:
  • если редакция с модулем Торговый каталог, то это массив кодов (поле NAME) типов цен, для которых надо выбрать информацию.
  • если редакция без модуля Торговый каталог, то это массив символьных кодов свойств типа Число инфоблока IBLOCK_ID.

Возвращаемое значение

Возвращает массив. В случае ошибки массив будет пустым. Если же информация есть, то вернется массив следующей структуры:

  • Для редакций с модулем Торговый каталог:

    Ключ - код типа цены. Значение - массив с таким полями:

    • ID - идентификатор типа цены;
    • TITLE - языкозависимое название типа цен на текущем языке, приведенное к html-безопасному виду. Если название для текущего языка не задано, то поле будет пустым (пустая строка);
    • SELECT - код выбора цены для добавления в $arSelect метода CIBlockElement::GetList (если необходимо выбрать цены вместе с элементов инфоблока);
    • CAN_VIEW - (true/false) флаг того, что может ли хоть одна группа, к которой принадлежит текущий пользователь, просматривать этот тип цен;
    • CAN_BUY - (true/false) флаг того, что может ли хоть одна группа, к которой принадлежит текущий пользователь, покупать по цене этого типа.

Пример для просмотра результатов

CModule::IncludeModule('catalog');
$res = CIBlockPriceTools::GetCatalogPrices(1, array('BASE', 'RETAIL', 'DISCOUNT'));
echo '<pre>', mydump($res), '</pre>';
  • Для редакций без модуля Торговый каталог:

    Ключ - символьный код свойства. Значение - массив с такими же полями, но:

    • ID - идентификатор свойства инфоблока;
    • TITLE - приведенное к html-безопасному виду название свойства;
    • SELECT - код выбора значения свойства для добавления в $arSelect метода CIBlockElement::GetList;
    • CAN_VIEW - всегда true;
    • CAN_BUY - всегда false.

    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008-2022 1С-Битрикс: Управление сайтом


GetItemPrices

Информационные блоки>Классы>CIBlockPriceTools>GetItemPrices (доступен с 5.9.0)

CIBlockPriceTools::GetItemPrices

Описание и параметры

array CIBlockPriceTools::GetItemPrices(
  int IBLOCK_ID,
  array arCatalogPrices,
  array arItem,
  bool bVATInclude = true,
  array arCurrencyParams = array(),
  int USER_ID = 0,
  string LID = SITE_ID
)

Метод возвращает рассчитанные с учетом скидок (если это торговый каталог) цены для элемента. Метод статический.

Параметры вызова

Параметр | Описание | С версии
IBLOCK_ID | Идентификатор инфоблока элемента. В действительности в коде сейчас не используется.
arCatalogPrices Массив с данными, зависящий от редакции продукта:
  • если редакция с модулем Торговый каталог, то это массив типов цен, которые вернул метод CIBlockPriceTools::GetCatalogPrices.
  • если редакция без модуля Торговый каталог, то это массив свойств, которые вернул метод CIBlockPriceTools::GetCatalogPrices.
arItem Элемент инфоблока, который был получен с помощью CIBlockElement::GetList:
  • для редакций с модулем Торговый каталог в элементе должны присутствовать данные по ценам.
  • для редакций без модуля Торговый каталог - свойства типа Число, упомянутые в CIBlockPriceTools::GetCatalogPrices.
bVATInclude | (true/false) Флаг определяет включать ли НДС в цену, если он не был включен. | 7.0.0
arCurrencyParams | Массив параметров, отвечающий за конвертацию цен в одну валюту. | 11.5.1
USER_ID | Идентификатор пользователя (если отсутствует или равен нулю, то группы берутся для текущего пользователя, а если задан, то рассчитываются для этого конкретного пользователя). Параметр влияет на выборку скидок. Необязательный. | 12.0.0
LID | Идентификатор сайта, для которого ведутся расчеты (если не задан, то берется текущий сайт). Параметр влияет на выборку скидок. Необязательный. | 12.0.0

Возвращаемое значение

Возвращает массив. В случае ошибки или отсутствия доступных типов цен (ни купить, ни посмотреть либо сами цены не заданы) массив будет пустым. В случае успешного выполнения вернется массив следующей структуры:

  1. Для редакций с модулем Торговый каталог:

    Ключ - код типа цены. Значение - массив с полями:

    • ID - идентификатор ценового предложения;
    • PRICE_ID - идентификатор типа цены;
    • CAN_ACCESS - (true/false) флаг определяющий возможность просмотра цены этого типа;
    • CAN_BUY - (true/false) флаг определяющий возможность покупки по цене этого типа;
    • MIN_PRICE - (Y/N) значение Y задается для наименьшей из цен, которые можно хотя бы смотреть;
    • VALUE_NOVAT - значение цены без НДС;
    • PRINT_VALUE_NOVAT - отформатированное значение цены без НДС;
    • VALUE_VAT - цена с НДС;
    • PRINT_VALUE_VAT - отформатированная цена с НДС;
    • VATRATE_VALUE - абсолютная величина НДС (не проценты);
    • PRINT_VATRATE_VALUE - отформатированная абс. величина НДС;
    • DISCOUNT_VALUE_NOVAT - цена со скидкой без НДС;
    • PRINT_DISCOUNT_VALUE_NOVAT - отформатированная цена со скидкой без НДС;
    • DISCOUNT_VALUE_VAT - НДС скидки;
    • PRINT_DISCOUNT_VALUE_VAT - отформатированный НДС скидки;
    • DISCOUNT_VATRATE_VALUE - цена со скидкой с НДС;
    • PRINT_DISCOUNT_VATRATE_VALUE - отформатированная цена со скидкой с НДС;
    • CURRENCY - код валюты;
    • следующие параметры зависят от значения параметра $bVATInclude. Если он принимает значение true, то в них копируются данные с включенным НДС, если нет - без НДС:
      • VALUE - цена для вывода;
      • PRINT_VALUE - отформатированная цена для вывода;
      • DISCOUNT_VALUE - цена со скидкой;
      • PRINT_DISCOUNT_VALUE - отформатированная цена со скидкой;
      • DISCOUNT_DIFF - величина скидки;
      • DISCOUNT_DIFF_PERCENT - процент скидки с округлением до целого
      • PRINT_DISCOUNT_DIFF - отформатированная величина скидки;
    • в случае, когда включено приведение к одной валюте и исходная валюта не равна той, в которую надо сконвертировать, появляются ключи с префиксом ORIG_. Такие ключи содержат исходные данные.

  2. Для редакций без модуля Торговый каталог конвертация валют и НДС не используются:

    Ключ - символьный код свойства. Значение - массив с полями:

    • CURRENCY - берется из DESCRIPTION (описания) значения свойства;
    • CAN_ACCESS - всегда true;
    • CAN_BUY - всегда false;
    • PRICE_ID - идентификатор свойства;
    • ID - идентификатор значения свойства;
    • VALUE - значение свойства;
    • PRINT_VALUE - значение свойства и значение описания (типа валюта);
    • DISCOUNT_VALUE - всегда VALUE;
    • PRINT_DISCOUNT_VALUE - всегда PRINT_VALUE;
    • MIN_PRICE - Y для минимального из значений свойств;
    • DISCOUNT_DIFF_PERCENT - всегда 0;
    • DISCOUNT_DIFF - всегда 0;
    • PRINT_DISCOUNT_DIFF - всегда 0 и описание значения (типа валюта).


GetOffersArray

Информационные блоки>Классы>CIBlockPriceTools>GetOffersArray (доступен с 10.0.2)

CIBlockPriceTools::GetOffersArray

Описание и параметры

array CIBlockPriceTools::GetOffersArray(
  mixed arFilter,
  array arElementID,
  array arOrder,
  array arSelectFields,
  array arSelectProperties,
  int limit,
  array arPrices,
  bool vat_include,
  array arCurrencyParams = array(),
  int USER_ID = 0,
  string LID = SITE_ID
)

Метод возвращает массив торговых предложений для одного или нескольких товаров одного информационного блока. Метод статический.

Параметры вызова

Параметр | Описание | С версии
arFilter Целое число - идентификатор инфоблока или ассоциативный массив с ключами:
  • IBLOCK_ID - идентификатор инфоблока;
  • HIDE_NOT_AVAILABLE - флаг "Скрывать предложения, отсутствующие на складе" (Y/N);
  • CHECK_PERMISSIONS - флаг проверки прав доступа к инфоблоку (Y/N).
До версии 12.5.4 мог задаваться только код инфоблока.
arElementID | Массив элементов инфоблока. Пустой массив array() означает, что будут возвращены все торговые предложения.
arOrder Ассоциативный массив для сортировки результирующего набора торговых предложений. Набор сортируется последовательно по каждой паре ключ-значение массива. Ключами массива являются названия параметров торгового предложения, по значениям которых осуществляется сортировка. Значениями являются направления сортировки.

Допустимые ключи и значения аналогичны ключам и значениям массива arOrder метода CIBlockElement::GetList.
arSelectFields Массив полей торговых предложений, которые должны быть возвращены методом. Допустимые ключи - все поля элементов инфоблока торговых предложений.

Пустой массив array() означает, что будут возвращены следующие поля:
  • ID - код торгового предложения;
  • IBLOCK_ID - код инфоблока торгового предложения;
  • PROPERTY_код_свойства - значение свойства привязки торгового предложения (фактически - идентификатор товара);
  • CATALOG_XXX (где XXX - это QUANTITY, QUANTITY_TRACE, QUANTITY_TRACE_ORIG, CAN_BUY_ZERO и т.д.) - все поля класса CCatalogProduct для торгового предложения.
arSelectProperties | Массив символьных или цифровых кодов тех свойств торговых предложений, которые должны быть возвращены методом. Если массив задан непустым, то в ключе PROPERTIES будут возвращены значения всех свойств торгового предложения, а в ключе DISPLAY_PROPERTIES - непустые значения свойств, отформатированные для показа в публичных компонентах и перечисленные в этом массиве.
limit | Максимальное число предложений для одного товара. Если задано значение 0, то будут возвращены все торговые предложения для указанных товаров.
arPrices | Массив типов цен, возвращенный методом CIBlockPriceTools::GetCatalogPrices. Для типов цен считаются скидки, минимальная цена и т.п.
vat_include | Признак включения НДС в цену при показе, если он еще не включен.
arCurrencyParams | Массив параметров для показа цен в одной валюте. Если в переданном массиве заполнено поле CURRENCY_ID, то произойдет конвертация цен в валюту CURRENCY_ID по текущему курсу. Необязательный параметр. | 11.5.1
USER_ID | Идентификатор пользователя. Значение непусто, если расчеты проводятся не для текущего пользователя. Необязательный параметр. | 12.0.0
LID | Идентификатор сайта. Значение непусто, если расчеты проводятся не для текущего сайта. Необязательный параметр. | 12.0.0

Возвращаемое значение

Ассоциативный массив торговых предложений, включающий в себя все запрошенные в методе поля, поля класса CCatalogProduct, а также следующие ключи:

  • PRICES - цены, которые вернет CIBlockPriceTools::GetItemPrice;
  • MIN_PRICE - массив, описывающий минимальную цену;
  • CAN_BUY - доступность к покупке (true/false);
  • LINK_ELEMENT_ID - код товара для предложения;
  • PROPERTIES - неотформатированные значения всех свойств элемента инфоблока, в т.ч. пустые (массив непуст, если запросили хоть одно свойство в $arSelectProperties);
  • DISPLAY_PROPERTIES - только те свойства, что непусты (из перечня $arSelectProperties);
  • CATALOG_MEASURE_NAME - название единицы измерения (сокращенное);
  • CATALOG_MEASURE - код единицы измерения;
  • CATALOG_RATIO - коэффициент единицы измерения.


CIBlockProperty

CIBlockProperty - класс для работы со свойствами информационных разделов.

Методы класса

Метод | Описание | С версии
GetList | Возвращает список свойств по фильтру. | 3.0.3
GetByID | Возвращает свойство по его ID. | 3.0.3
Add | Добавляет новое свойство. | 3.0.3
Update | Изменяет параметры свойства. | 3.0.3
Delete | Удаляет свойства. | 3.0.3
GetPropertyEnum | Начинает перечисление свойств. | 3.1.3
GetUserType | Метод возвращает описание пользовательского типа. | 5.1.0
UpdateEnum | Обновляет информацию в массиве результатов перечисления свойства. | 3.1.3


Add

Информационные блоки>Классы>CIBlockProperty>Add (доступен с 3.0.3)

CIBlockProperty::Add

Описание и параметры

int CIBlockProperty::Add(
 array arFields
);

Метод добавляет новое свойство. Отменить добавление или изменить поля свойства можно в обработчике события OnBeforeIBlockPropertyAdd. После добавления нового свойства вызываются обработчики события OnAfterIBlockPropertyAdd. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Массив Array("поле"=>"значение", ...).
Содержит значения всех полей свойства. Кроме того, с помощью поля "VALUES", значением которого должен быть массив структуры
array(
   array(
      "VALUE"=>"значение",
      "DEF"=>"по умолчанию (Y/N)",
      "SORT"=>"индекс сортировки"
      ...
   ),
)
, можно установить варианты выбора для свойств типа "список" (подробнее смотрите метод CIBlockProperty::UpdateEnum()).

Возвращаемое значение

Метод возвращает ID добавленного свойства, если добавление прошло успешно, при возникновении ошибки метод вернет false, а в свойстве объекта LAST_ERROR будет содержаться текст ошибки.

Смотрите также

  • CIBlockProperty::Update
  • Поля свойства
  • OnBeforeIBlockPropertyAdd
  • OnAfterIBlockPropertyAdd

Примеры использования

<?
$arFields = Array(
  "NAME" => "Цвет",
  "ACTIVE" => "Y",
  "SORT" => "100",
  "CODE" => "color",
  "PROPERTY_TYPE" => "L",
  "IBLOCK_ID" => 11
  );

$arFields["VALUES"][0] = Array(
  "VALUE" => "Красный",
  "DEF" => "N",
  "SORT" => "100"
);

$arFields["VALUES"][1] = Array(
  "VALUE" => "Желтый",
  "DEF" => "N",
  "SORT" => "200"
);

$arFields["VALUES"][2] = Array(
  "VALUE" => "Зеленый",
  "DEF" => "Y",
  "SORT" => "300"
);

$ibp = new CIBlockProperty;
$PropID = $ibp->Add($arFields);
?>
//добавление свойства типа "HTML"
 $arFields = Array(
        "NAME" => "Итог",
        "ACTIVE" => "Y",
        "SORT" => "600",
        "CODE" => "ITOG",
        "PROPERTY_TYPE" => "S",
        "USER_TYPE" => "HTML",
        "IBLOCK_ID" => $arParams["IBLOCK_ID"],
        );

      $ibp = new CIBlockProperty;
      $PropID = $ibp->Add($arFields);

//для добавления свойства типа "Видео" в массиве arFields должно быть указано:
"PROPERTY_TYPE" => "S",
"USER_TYPE" => "video",

//установка параметра "Выводить поле для описания значения" для свойства инфоблока ("WITH_DESCRIPTION" => "Y")
// доступно только для типов свойств:  S - строка, N - число и F - файл
  $arFields = Array(
      "NAME" => "Прочее",
      "ACTIVE" => "Y",
      "SORT" => "1700",
      "CODE" => "F_OTHER",
      "PROPERTY_TYPE" => "S",
      "IBLOCK_ID" => $IBLOCK_ID,
      "WITH_DESCRIPTION" => "Y",
      );

   $iblockproperty = new CIBlockProperty;
   $PropertyID = $iblockproperty->Add($arFields);

//добавление к инфоблоку свойства типа "Справочник"
 $arFields = Array(
   "NAME" => "Производитель",
   "ACTIVE" => "Y",
   "SORT" => "50",
   "CODE" => "PROIZVODITEL",
   "PROPERTY_TYPE" => "S",
   "USER_TYPE" => "directory",
   "IBLOCK_ID" => 888888888888888,//номер вашего инфоблока
   "LIST_TYPE" => "L",
   "MULTIPLE" => "N",
   "USER_TYPE_SETTINGS" => array("size"=>"1", "width"=>"0", "group"=>"N", "multiple"=>"N", "TABLE_NAME"=>"b_producers")
);

$ibp = new CIBlockProperty;
$PropID = $ibp->Add($arFields);

//затем следует в значение свойства вставить значение поля  UF_XML_ID от вашего справочника
CIBlockElement::SetPropertyValuesEx(123188, 888888888888888, array('PROIZVODITEL'=>'000000701'));


Delete

Информационные блоки>Классы>CIBlockProperty>Delete (доступен с 3.0.3)

CIBlockProperty::Delete

bool CIBlockProperty::Delete(
 int ID
);

Метод удаляет свойство и все его значения. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код свойства.

Возвращаемое значение

В случае успешного удаления возвращается true, иначе - false.


GetByID

Информационные блоки>Классы>CIBlockProperty>GetByID (доступен с 3.0.3)

CIBlockProperty::GetByID

Описание и параметры

CDBResult
CIBlockProperty::GetByID(
 mixed ID,
 int IBLOCK_ID = false,
 string IBLOCK_CODE = false
);

Возвращает свойство по его коду ID. Метод статический.

Параметры вызова

Параметр | Описание | С версии
ID | Числовой или символьный код свойства. |
IBLOCK_ID | Код информационного блока. Используется для уточнения свойства, если его ID задано символьным кодом и с таким символьным кодом свойства присутствует в нескольких информационных блоках. | 3.2.1
IBLOCK_CODE | Символьный код информационного блока. Используется для уточнения свойства, если его ID задано Символьным кодом и с таким символьным кодом свойства присутствует в нескольких информационных блоках. | 3.3.3

Возвращаемое значение

Возвращается объект CDBResult.

Примечание: если заданы оба значения IBLOCK_ID и IBLOCK_CODE, то будет производиться попытка найти свойство в одном из них (логика "или").

Смотрите также

  • CDBResult
  • Поля свойства

Примеры использования

<?
$res = CIBlockProperty::GetByID("SRC", false, "company_news");
if($ar_res = $res->GetNext())
  echo $ar_res['NAME'];
?>


GetList

Информационные блоки>Классы>CIBlockProperty>GetList (доступен с 3.0.3)

CIBlockProperty::GetList

Описание

CDBResult CIBlockProperty::GetList(
 array arOrder = Array(),
 array arFilter = Array()
);

Возвращает список свойств по фильтру arFilter отсортированные в порядке arOrder. Метод статический.

Смотрите также

  • CDBResult
  • Поля свойства

Параметры вызова

Параметр Описание
arOrder Массив для сортировки, имеющий вид by1=>order1[,by2=>order2 [, ..]], где: by - поле сортировки, может принимать значения:
  • id - код;
  • block_id - код информационного блока, которому принадлежит свойство; name - название;
  • name - название;
  • active - активность;
  • sort - индекс сортировки;
  • timestamp_x - дата последнего изменения
  • searchable - по признаку участия значения свойства в поиске;
  • filtrable - по признаку участия свойства в фильре на странице списка элементов;
  • order - порядок сортировки, может принимать значения:
    • asc - по возрастанию;
    • desc - по убыванию;
arFilter Массив вида array("фильтруемое поле"=>"значение" [, ...]). Ни один параметр фильтра не принимает массивы.

Фильтруемое поле может принимать значения:
  • ACTIVE - фильтр по активности (Y|N);
  • ID - по ID свойства, только число;
  • CODE - по символьному коду (по шаблону [%_]), только строка;
  • NAME - по названию свойства (по шаблону [%_]);
  • EXTERNAL_ID или XML_ID - по внешнему коду(по шаблону [%_]). Возможно использование отрицания, указав !EXTERNAL_ID;
  • PROPERTY_TYPE - по типу свойства:
    • S - строка
    • N - число
    • L - список
    • F - файл
    • G - привязка к разделу
    • E - привязка к элементу
  • USER_TYPE - по пользовательскому типу свойства;
    • UserID - Привязка к пользователю
    • DateTime - Дата/Время
    • EList - Привязка к элементам в виде списка
    • FileMan - Привязка к файлу (на сервере)
    • map_yandex - Привязка к Яndex.Карте
    • HTML - HTML/текст
    • map_google - Привязка к карте Google Maps
    • ElementXmlID - Привязка к элементам по XML_ID
    • Sequence - Счетчик
    • EAutocomplete - Привязка к элементам с автозаполнением
    • SKU - Привязка к товарам (SKU)
    • video - Видео
    • TopicID - Привязка к теме форума
    Кроме того, можно использовать идентификаторы пользовательских типов свойств инфоблока, добавленных сторонними модулями.
  • SEARCHABLE - по признаку участия значения свойства в поиске (Y|N);
  • FILTRABLE - по признаку участия свойства в фильре на странице списка элементов (Y|N);
  • VERSION - по флагу хранения значений свойств элементов инфоблока;
  • MIN_PERMISSION - фильтр по правам доступа, по умолчанию принимает R (уровень доступа Чтение);
  • CHECK_PERMISSIONS - если установлено значение "N", то проверки прав не происходит;
  • IBLOCK_ID - по коду информационного блока, которому принадлежит свойство (фильтр Число);
  • IBLOCK_CODE - по символьному коду информационного блока, которому принадлежит свойство;
  • LINK_IBLOCK_ID - по коду связанного информационного блока (может быть указан для свойств типа "E" и "G");
  • MULTIPLE - Проверка на множественность. по умолчанию N.
Необязательное. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult

Примеры использования

<?
$IBLOCK_ID = 11;
$properties = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$IBLOCK_ID));
while ($prop_fields = $properties->GetNext())
{
  echo $prop_fields["ID"]." - ".$prop_fields["NAME"]."<br>";
}
?>


GetPropertyEnum

Информационные блоки>Классы>CIBlockProperty>GetPropertyEnum (доступен с 3.1.3)

CIBlockProperty::GetPropertyEnum

Описание и параметры

CDBResult CIBlockProperty::GetPropertyEnum(
 mixed PROP_ID,
 array arOrder = Array("SORT"=>"asc"),
 array arFilter = Array()
)

Возвращает варианты для значения свойства PROP_ID типа "список" отсортированные в порядке arOrder и отфильтрованные по arFilter. Метод статический.

Параметры вызова

Параметр | Описание
PROP_ID | Числовой или символьный код свойства.
arOrder Массив для сортировки, имеющий вид by1=>order1[, by2=>order2 [, ..]], где
by - поле сортировки, может принимать значения:
id - код;
value - значение,
sort - поле сортировки,
external_id - внешний код,
order - порядок сортировки, может принимать значения:
asc - по возрастанию;
desc - по убыванию;
arFilter Массив вида array("фильтруемое поле"=>"значение" [, ...])
"фильтруемое поле" может принимать значения:
VALUE - по значению варианта свойства (можно искать по шаблону [%_]);
EXTERNAL_ID - по значению внешнего кода варианта свойства (можно искать по шаблону [%_]);
IBLOCK_ID - по коду информационного блока, которому принадлежит свойство;
ID - по коду значения варианта свойства;
Необязательное. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult, содержащий записи полей вариантов свойства.

Смотрите также

  • Поля вариантов свойства
  • CIBlockPropertyEnum::GetList()

Примеры использования

<?
$db_enum_list = CIBlockProperty::GetPropertyEnum("IMPORTANT_NEWS", Array(), Array("IBLOCK_ID"=>$BID, "VALUE"=>"Yes"));
if($ar_enum_list = $db_enum_list->GetNext())
{
  $db_important_news = CIBlockElement::GetList(Array(), Array("IBLOCK_ID"=>$BID, "PROPERTY"=>array("IMPORTANT_NEWS"=>$ar_enum_list["ID"])));
}
?>


GetUserType

Информационные блоки>Классы>CIBlockProperty>GetUserType (доступен с 5.1.0)

CIBlockProperty::GetUserType

array
CIBlockProperty::GetUserType(
 string USER_TYPE = false
);

Метод возвращает описание пользовательского типа. Метод статический.

Примечание: если параметр USER_TYPE не задан, то метод вернет массив всех пользовательских типов свойств модуля инфоблоков.

Параметры вызова

Параметр | Описание
USER_TYPE | Идентификатор пользовательского типа

Возвращаемое значение

Массив описывающий пользовательский тип.

Смотрите также

  • Пользовательские свойства
  • GetUserTypeDescription


Update

Информационные блоки>Классы>CIBlockProperty>Update (доступен с 3.0.3)

CIBlockProperty::Update

Описание и параметры

bool CIBlockProperty::Update(
 int ID,
 array arFields
);

Метод изменяет параметры свойства с кодом ID. Перед изменением параметров вызываются обработчики события OnBeforeIBlockPropertyUpdate из которых можно отменить изменения или переопределить поля. А после изменения параметром вызывается событие OnAfterIBlockPropertyUpdate. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | ID изменяемой записи.
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей изменяемого свойства. Кроме того, с помощью поля "VALUES", значением которого должен быть массив вида Array(Array("VALUE"=>"значение", "DEF"=>"по умолчанию (Y/N)", "SORT"=>"индекс сортировки"),...), можно установить варианты выбора для свойств типа "список" (подробнее смотрите метод CIBlockProperty::UpdateEnum()).

Примечание: без необходимости не передавайте в arFields параметр IBLOCK_ID. Если в arFields передается IBLOCK_ID и в инфоблоке включена поддержка свойств для разделов (и умный фильтр), то свойство отвяжется от верхнего раздела и снова привяжется к верхнему разделу.
$arFields = Array(
    "IBLOCK_ID"=>"1",
    "SORT" => 2,
);
$ibp = new CIBlockProperty;
if(!$ibp->Update($prop['ID'], $arFields))
    echo $ibp->LAST_ERROR;
Код не только изменит индекс сортировки, но еще добавит привязку к верхнему разделу инфоблока.

Возвращаемое значение

Метод возвращает true если изменение прошло успешно, при возникновении ошибки метод вернет false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки.

Примечание: если используются Инфоблоки 2.0 и изменяется базовый тип свойства, то все текущие значения свойств у существующих элементов очищаются.

Смотрите также

  • CIBlockProperty::Add
  • Поля свойства
  • OnBeforeIBlockPropertyUpdate
  • OnAfterIBlockPropertyUpdate

Примеры использования

Пример 1:

<?
$arFields = Array(
  "NAME" => "Цвет",
  "ACTIVE" => "Y",
  "SORT" => "100",
  "CODE" => "color",
  "PROPERTY_TYPE" => "L",
  "IBLOCK_ID" => 11
  );

$arFields["VALUES"][0] = Array
  "VALUE" => "Красный",
  "DEF" => "N",
  "SORT" => "100"
  );

$arFields["VALUES"][1] = Array(
  "VALUE" => "Желтый",
  "DEF" => "N",
  "SORT" => "200"
  );

$arFields["VALUES"][2] = Array(
  "VALUE" => "Зеленый",
  "DEF" => "Y",
  "SORT" => "300"
  );

$ibp = new CIBlockProperty;
if(!$ibp->Update($ID, $arFields))
    echo $ibp->LAST_ERROR;
?>

Пример 2:

В случае обновления информации в пользовательском типе свойства для сохранения ключа USER_TYPE_SETTINGS необходимо указать еще ключ USER_TYPE с реальным значением. В противном случае ключ USER_TYPE_SETTINGS не обновится. Неверными будут следующие варианты:

$arFields = array(
   'PROPERTY_TYPE' => 'E',
   'USER_TYPE_SETTINGS' => array(
      'WIDTH' => '10',
      'HEIGHT' => '10',
   ),
);
$ibp = new CIBlockProperty();
$ibp->Update($ID, $arFields));
и
$arFields = array(
   'PROPERTY_TYPE' => 'E',
   'USER_TYPE_SETTINGS' => array(
      'WIDTH' => '10',
      'HEIGHT' => '10',
   ),
   'USER_TYPE' => '',
);
$ibp = new CIBlockProperty();
$ibp->Update($ID, $arFields));
Рабочий вариант:
$arFields = array(
   'PROPERTY_TYPE' => 'E',
   'USER_TYPE_SETTINGS' => array(
      'WIDTH' => '10',
      'HEIGHT' => '10',
   ),
   'USER_TYPE' => 'xxx'
);
$ibp = new CIBlockProperty();
$ibp->Update($ID, $arFields));

Пример 3:

//включить индексацию свойства для поиска
 $arFields = Array(
     'SEARCHABLE'=>'Y'
);
$ibp = new CIBlockProperty;
if(!$ibp->Update($prop['ID'], $arFields))
     echo $ibp->LAST_ERROR;

Пример 4:

// добавление свойства в умный фильтр:
$arFields = Array('SMART_FILTER' => 'Y', 'IBLOCK_ID' => 123);
$ibp = new CIBlockProperty();
if(!$ibp->Update($prop['ID'], $arFields))
echo $ibp->LAST_ERROR;

//IBLOCK_ID в arFields указывать обязательно, иначе свойство не будет включено в умный фильтр, и при этом не выдаст ошибки.
//Чтобы исключить свойство из умного фильтра в arFileds заменить:  'SMART_FILTER'=>'N'


UpdateEnum

Информационные блоки>Классы>CIBlockProperty>UpdateEnum (доступен с 3.1.3)

CIBlockProperty::UpdateEnum

Описание и параметры

CIBlockProperty::UpdateEnum(
 int ID,
 array arVALUES,
 bool bForceDelete = true
);

Метод устанавливает значения перечислений свойства типа "список". Нестатический метод.

Параметры вызова

Параметр | Описание | С версии
ID | Код свойства. |
arVALUES | Массив всех значений в формате Array("код существующего значения"=>"массив полей значения", ..., "массив полей нового значения", ...). Где массив полей имеет вид: Array("VALUE"=>"значение"[, "SORT"=>"порядок сортировки"][, "DEF"=>"является значением по умолчанию (Y|N)"][, "XML_ID"=>"внешний код"]). |
bForceDelete | Если принимает значение true, то удаляются варианты значений, у которых VALUE пустой. Значение false позволяет сохранить значения, использованные хотя бы у одного элемента. Необязательный параметр. | 11.0.12

Примечание: массив arVALUES должен содержать полный список значений, те значение для которых в этом массиве не будет найден "код существующего значения" будут удалены.

Смотрите также

  • Поля значений свойства типа "список "
  • CIBlockPropetyEnum::Update()
  • CIBlockPropetyEnum::Add()

Примеры использования

<?
$cnt = 0;
$ar_all_values = Array();
$db_enum_list = CIBlockProperty::GetPropertyEnum($PROP_ID, Array('SORT'=>'ASC'));
while($ar_enum = $db_enum_list->Fetch())
{
    $cnt++;
    $ar_all_values[$ar_enum['ID']] = Array('SORT'=>$cnt, 'VALUE'=>$ar_enum['VALUE']);
}
$CIBlockProp = new CIBlockProperty;
$CIBlockProp->UpdateEnum($PROP_ID, $ar_all_values); ?>


CIBlockPropertyEnum

CIBlockPropertyEnum - класс для работы со вариантами значений свойств типа "список".

Методы класса

Метод | Описание | С версии
GetList | Возвращает список вариантов свойств по фильтру. | 3.1.3
Add | Добавляет новый вариант свойства. | 3.1.3
Update | Изменяет вариант свойства. | 3.1.3
Delete | Удаляет вариант свойства. | 3.1.3
GetByID | Метод возвращает значения всех полей варианта значения свойства типа "список". | 5.1.2


Add

Информационные блоки>Классы>CIBlockPropertyEnum>Add (доступен с 3.1.3)

CIBlockPropertyEnum::Add

Описание и параметры

int CIBlockPropertyEnum::Add(
 array fields
);

Метод добавляет новый вариант значения свойства типа "список". Метод статический.

Параметры вызова

Параметр | Описание
fields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей варианта значения свойства.

Возвращаемое значение

Метод возвращает код добавленного свойства, если добавление прошло успешно, при возникновении ошибки метод вернет false.

Смотрите также

  • CIBlockPropertyEnum::Update
  • Поля вариантов значения свойств типа "список"

Примеры использования

<?
$ibpenum = new CIBlockPropertyEnum;
if($PropID = $ibpenum->Add(Array('PROPERTY_ID'=>$PROPERTY_ID, 'VALUE'=>'New Enum 1')))
 echo 'New ID:'.$PropID;
?>


Delete

Информационные блоки>Классы>CIBlockPropertyEnum>Delete (доступен с 3.1.3)

CIBlockPropertyEnum::Delete

bool
CIBlockPropertyEnum::Delete(
 int ID
);

Метод удаляет вариант значения свойства типа "список". Метод статический.

Параметры вызова

Параметр | Описание
ID | Код варианта значения свойства.

Возвращаемое значение

В случае успешного удаления возвращается true, иначе - false.


GetByID

Информационные блоки>Классы>CIBlockPropertyEnum>GetByID (доступен с 5.1.2)

CIBlockPropertyEnum::GetByID

array CIBlockPropertyEnum::GetByID(
 int ID
);

Метод возвращает значения всех полей варианта значения свойства типа "список". Или false, если такой вариант отсутствует. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код варианта значения свойства.

Возвращаемое значение

Массив если такой вариант есть и false если вариант отсутствует.

Смотрите также

  • Поля вариантов значения свойств типа "список"


GetList

Информационные блоки>Классы>CIBlockPropertyEnum>GetList (доступен с 3.1.3)

CIBlockPropertyEnum::GetList

Описание

CDBResult CIBlockPropertyEnum::GetList(
 array arOrder = Array("SORT"=>"ASC", "VALUE"=>"ASC"),
 array arFilter = Array()
);

Возвращает список вариантов значений свойств типа "список" по фильтру arFilter отсортированные в порядке arOrder. Метод статический.

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • Поля варианта значений свойства типа "список"

Параметры вызова

Параметр Описание
arOrder Массив для сортировки, имеющий вид by1=>order1[, by2=>order2 [, ..]], где
by - поле сортировки, может принимать значения:
  • id - код варианта значения;
  • value - значение варианта;
  • sort - индекс сортировки варианта;
  • xml_id или external_id - внешний код варианта значения;
  • def - по признаку "значение по умолчанию";
  • property_id - код свойства;
  • property_sort - индекс сортировки свойства;
  • property_code - символьный код свойства;
order - порядок сортировки, может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
arFilter Массив вида array("фильтруемое поле"=>"значение" [, ...])
"фильтруемое поле" может принимать значения:
  • VALUE - по значению (по шаблону [%_]);
  • ID - по коду значения варианта свойства;
  • SORT - по индексу сортировки варианта свойства;
  • DEF - по параметру "значение по умолчанию" (Y|N);
  • XML_ID - по внешнему коду(по шаблону [%_]);
  • EXTERNAL_ID - по внешнему коду;
  • CODE - по символьному коду свойства (по шаблону [%_]);
  • PROPERTY_ID - по числовому или символьному коду свойства;
  • IBLOCK_ID - фильтр по коду информационного блока, которому принадлежит свойство;
Необязательное. По умолчанию записи не фильтруются.

Примеры использования

<?
$property_enums = CIBlockPropertyEnum::GetList(Array("DEF"=>"DESC", "SORT"=>"ASC"), Array("IBLOCK_ID"=>$IBLOCK_ID, "CODE"=>"COLORS"));
while($enum_fields = $property_enums->GetNext())
{
  echo $enum_fields["ID"]." - ".$enum_fields["VALUE"]."<br>";
}
?>


Update

Информационные блоки>Классы>CIBlockPropertyEnum>Update (доступен с 3.1.3)

CIBlockPropertyEnum::Update

Описание и параметры

bool CIBlockPropertyEnum::Update(
 int ID,
 array arFields
);

Метод изменяет параметры варианта свойства с кодом ID. Метод статический.

Параметры вызова

Параметр | Описание
ID | ID изменяемой записи.
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей варианта значения свойства.

Возвращаемое значение

Метод возвращает true если изменение прошло успешно, при возникновении ошибки метод вернет false.

Смотрите также

  • CIBlockPropertyEnum::Add
  • Поля свойства

Примеры использования

Примеры использования

<?
$ibpenum = new CIBlockPropertyEnum;
$ibpenum->Update($PROPERTY_ENUM_ID, Array('VALUE'=>'Enum 1'));
?>


CIBlockResult

CIBlockResult - вспомогательный класс для работы с объектами результатов выборок, наследуется от класса CDBResult и содержит все его параметры и методы. Объекты данного класса возвращают методы CIBlockElement::GetList, CIBlockElement::GetByID и функции GetIBlockElementList, GetIBlockElementListEx. Использование методов этого объекта позволяет более гибко и эффективно работать с элементами информационных блоков.

Методы класса

Метод | Описание | С версии
GetNext | Возвращает из выборки список полей элемента, с замененными ссылками в полях DETAIL_PAGE_URL и LIST_PAGE_URL. | 3.0.5
GetNextElement | Возвращает объект _CIBElement элемента из выборки. | 3.1.3
SetUrlTemplates | Устанавливает шаблоны путей для элементов. | 7.1.3
SetSectionContext | Метод устанавливает поля раздела в качестве родителя элемента для подстановки в шаблоны путей. | 7.1.3


GetNext

Информационные блоки>Классы>CIBlockResult>GetNext (доступен с 3.0.5)

CIBlockResult::GetNext

Описание и параметры

mixed
CIBlockResult::GetNext(
  bool bTextHtmlAuto = true,
  bool use_tilda = true
);

Возвращает массив значений полей приведенный в HTML безопасный вид. Также в полях DETAIL_PAGE_URL и LIST_PAGE_URL заменяются шаблоны вида #IBLOCK_ID# и т.п. на их реальные значения, в результате чего в этих полях будут ссылки на страницу детального просмотра и страницу списка элементов.

Если выборка была из инфоблока свойства которого хранятся отдельно (Режим хранения свойств в отдельных таблицах [image]), то для правильной обработки значений множественных свойств требуется наличие полей ID и IBLOCK_ID. Нестатический метод.

Параметры вызова

Параметр | Описание | С версии
$bTextHtmlAuto | Параметр передается в CDBResult::GetNext. Необязательный, по умолчанию принимает true. | 6.0.0
use_tilda

Возвращаемое значение

Метод возвращает массив с полями элемента информационного блока вида Array("поле"=>"преобразованное значение", "~поле"=>"не преобразованное значение", [, ...]) и передвигает курсор на следующую запись.
Если достигнута последняя запись (или в результате нет ни одной записи) метод вернет false.

Список шаблонов

  • #SITE_DIR# - заменяется на константу SITE_DIR;
  • #SERVER_NAME# - заменяется на константу SITE_SERVER_NAME;
  • #ID# - заменяется на идентификатор элемента или раздела;
  • #CODE# - заменяется на символьный код элемента или раздела;
  • #EXTERNAL_ID# - заменяется на внешний код элемента или раздела;
  • #IBLOCK_TYPE_ID# - заменяется на идентификатор типа инфоблока которому принадлежит элемент или раздел;
  • #IBLOCK_ID# - заменяется на идентификатор инфоблока которому принадлежит элемент или раздел;
  • #IBLOCK_CODE# - заменяется на символьный код инфоблока которому принадлежит элемент или раздел;
  • #IBLOCK_EXTERNAL_ID# - заменяется на внешний код инфоблока которому принадлежит элемент или раздел;
  • #ELEMENT_ID# - заменяется на идентификатор элемента;
  • #ELEMENT_CODE# - заменяется на символьный код элемента;
  • #SECTION_CODE# - заменяется на символьный код раздела (использование этого шаблона может привести к дополнительным запросам к базе данных).

Смотрите также

  • CDBResult
  • CIBlockResult::GetNextElement()
  • Поля элемента информационного блока
  • CIBlockElement::GetList()

Примеры использования

<?
$res = CIBlockElement::GetByID($_GET["PID"]);
if($ar_res = $res->GetNext())
  echo '<a href="'.$ar_res['DETAIL_PAGE_URL'].'">'.$ar_res['NAME'].'</a>';
else
  echo 'Элемент не найден.';
?>


GetNextElement

Информационные блоки>Классы>CIBlockResult>GetNextElement (доступен с 3.1.3)

CIBlockResult::GetNextElement

Описание и параметры

_CIBElement
CIBlockResult::GetNextElement(
   bool bTextHtmlAuto =  true,
   bool use_tilda =  true
);

Метод возвращает из выборки объект _CIBElement. Нестатический метод.

Параметры вызова

Параметр | Описание | С версии
$bTextHtmlAuto | Параметр передается в CDBResult::GetNext. Необязательный, по умолчанию принимает true. | 7.1.1
use_tilda

Возвращаемое значение

Метод возвращает из выборки объект _CIBElement, и передвигает курсор на следующую запись.
Если достигнута последняя запись (или в результате нет ни одной записи), метод вернет false.

Смотрите также

  • _CIBElement
  • CIBlockResult::GetNext()
  • CIBlockElement::GetList()

Примеры использования

<?
$res = CIBlockElement::GetByID($_GET["PID"]);
if($obRes = $res->GetNextElement())
{
  $ar_res = $obRes->GetFields();
  echo $ar_res['NAME'];
}
?>
//выборка всех данных элемента:
$db_elemens = CIblockElement::GetList($arOrder, $arFilter, false, false, $arSelect);

while($obElement = $db_elemens->GetNextElement())
{
   $el = $obElement->GetFields();
   $el["PROPERTIES"] = $obElement->GetProperties();
        $arResult["ITEMS"][] = $el;
}

//Примечание: в данном случае в $arSelect ничего задавать не нужно (можно его вообще не писать). Так как функции GetFields и GetProperties выбирает все свойства, которые есть у элемента.
//Этот способ нужно использовать для выборки элементов, у которых есть множественные свойства, чтобы избежать дублирования элементов, которое наблюдается при стандартном вызове GetNext.


SetSectionContext

Информационные блоки>Классы>CIBlockResult>SetSectionContext (доступен с 7.1.3)

CIBlockResult::SetSectionContext

Описание и параметры

void
CIBlockResult::SetSectionContext(
 array arSection
);

Метод устанавливает поля раздела в качестве родителя элемента для подстановки в шаблоны путей методом CIBlockResult::GetNext. Если родительский раздел не определен с помощью вызова этого метода, то для подстановки шаблона будут использованы поля из раздела с минимальным ID к которому привязан элемент. Нестатический метод.

Примечание: Используется в компонентах для сохранения текущего просматриваемого пользователем раздела в случае множественной привязки элементов.

Параметры вызова

Параметр | Описание
arSection | Массив полей раздела поля которого будут использованы для подстановки значений в шаблон пути.

Возвращаемое значение

Метод ничего не возвращает.

Смотрите также

  • CIBlockResult::GetNext
  • CIBlockResult:: SetUrlTemplates

Примеры использования

<?
$rsElements = CIBlockElement::GetList(array(), array("ID" => $ID), false, false, array("ID", "NAME", "DETAIL_PAGE_URL"));
$rsElements->SetUrlTemplates("/catalog/#SECTION_CODE#/#ELEMENT_CODE#.php");
$rsElements->SetSectionContext($arSection);
$arElement = $rsElements->GetNext();
?>


SetUrlTemplates

Информационные блоки>Классы>CIBlockResult>SetUrlTemplates (доступен с 7.1.3)

CIBlockResult::SetUrlTemplates

Описание и параметры

void
CIBlockResult::SetUrlTemplates(
   strDetailUrl = "",
   strSectionUrl = "",
   strListUrl = ""
);

Устанавливает шаблоны путей для элементов, разделов и списка элементов вместо тех которые указаны в настройках информационного блока. Шаблоны будут использованы методом CIBlockResult::GetNext. Нестатический метод.

Примечание: используется в компонентах для корректного формирования путей, если соответствующие параметры указаны.

Параметры вызова

Параметр | Описание
DetailUrl | Шаблон для пути к элементу. Если не задан, то путь будет взят из настроек инфоблока.
SectionUrl | Шаблон для пути к разделу. Если не задан, то путь будет взят из настроек инфоблока.
ListUrl | Шаблон для пути к списку элементов. Если не задан, то путь будет взят из настроек инфоблока.

Возвращаемое значение

Ничего.

Смотрите также

  • CIBlockResult::GetNext
  • CIBlockResult::SetSectionContext

Примеры использования

<?
$rsElements = CIBlockElement::GetList(array(), array("ID" => $ID), false, false, array("ID", "NAME", "DETAIL_PAGE_URL"));
$rsElements->SetUrlTemplates("/catalog/#SECTION_CODE#/#ELEMENT_CODE#.php");
$arElement = $rsElements->GetNext();
?>


CIBlockRSS

CIBlockRSS - класс для работы с RSS лентами.

Методы класса

Метод | Описание | С версии
GetNewsEx | Загружает xml c указанного адреса и разбирает его в массив. | 3.1.2
FormatArray | Метод преобразует результат метода GetNewsEx. | 3.0.15
XMLDate2Dec | Преобразует дату из rss формата. | 3.0.16


FormatArray

Информационные блоки>Классы>CIBlockRSS>FormatArray (доступен с 3.0.15)

CIBlockRSS::FormatArray

Описание и параметры

array
CIBlockRSS::FormatArray(
 array arRes,
 array bOutChannel = false
);

Метод преобразует результат метода CIBlockRSS::GetNewsEx в более приемлемое представление. Нестатический метод.

Параметры вызова

Параметр | Описание | С версии
arRes | Массив описания xml. Результат работы метода CIBlockRSS::GetNewsEx. |
bOutChannel | Параметр должен быть синхронизирован с одноименным метода CIBlockRSS::GetNewsEx. | 3.2.1

Возвращаемое значение

Массив следующего вида:

  • title - заголовок rss ленты;
  • link - ссылка;
  • description - описание;
  • lastBuildDate - время в rss формате (см. CIBlockRSS::XMLDate2Dec);
  • ttl - время действия в минутах;
  • image - описание картинки:
    • title - заголовок;
    • url;
    • link - ссылка;
    • width - ширина;
    • height - высота;
  • item - массив элементами которого являются нововсти:
    • title - заголовок новости;
    • link - ссылка;
    • description - подробное описание;
    • enclosure - вложение (не обязательно):
      • url;
      • length;
      • type;
      • width - не обязательно;
      • height - не обязательно;
    • category - категория;
    • pubDate - время в rss формате (см. CIBlockRSS::XMLDate2Dec);

Смотрите также

  • CIBlockRSS::GetNewsEx
  • CIBlockRSS::XMLDate2Dec

Примеры использования

<?
$arXML = CIBlockRSS::GetNewsEx('www.1c-bitrix.ru', '80', '/bitrix/rss.php', 'ID=news_sm&LANG=ru&TYPE=news&LIMIT=5');
if(count($arXML) > 0)
{
    $arRSS = CIBlockRSS::FormatArray($arXML);
    print_r($arRSS);
}
?>


GetNewsEx

Информационные блоки>Классы>CIBlockRSS>GetNewsEx (доступен с 3.1.2)

CIBlockRSS::GetNewsEx

Описание и параметры

array
CIBlockRSS::GetNewsEx(
 string SITE,
 string PORT,
 string PATH,
 string QUERY_STR,
 bool bOutChannel = false
);

Загружает xml c указанного адреса и разбирает его в массив. В качестве значения user-agent'а используется "BitrixSMRSS". После загрузки xml будет конвертирован в кодировку текущего сайта. Если во время работы метода возникли ошибки, то массив результата будет пустым. Нестатический метод.

Примечание: xml кешируется на время указанное в элементе ttl или если время не указано, то на один час.

Параметры вызова

Параметр | Описание | С версии
SITE | IP-адрес или доменное имя сайта. |
PORT | Номер порта, к которому будет выполнено подключение. HTTP порт по умолчанию - 80. |
PATH и QUERY_STR | Объединяются через знак вопроса ("?") и передаются HTTP команде GET. |
bOutChannel | Требуется указать true, если новости находятся вне элемента channel. | 3.2.1

Возвращаемое значение

Массив представления xml.

Смотрите также

  • CIBlockRSS:: FormatArray

Примеры использования

<?
$arRSS = CIBlockRSS::GetNewsEx('www.1c-bitrix.ru', '80', '/bitrix/rss.php', 'ID=news_sm&LANG=ru&TYPE=news&LIMIT=5');
print_r($arRSS);
?>


XMLDate2Dec

Информационные блоки>Классы>CIBlockRSS>XMLDate2Dec (доступен с 3.0.16)

CIBlockRSS::XMLDate2Dec

Описание и параметры

string
CIBlockRSS::XMLDate2Dec(
 string dateXML,
 string dateFormat= "DD.MM.YYYY"
);

Преобразует дату из rss формата в формат "DD.MM.YYYY". Нестатический метод.

Примечание: под rss форматом даты понимается формат, описанный в rfc 822.

Параметры вызова

Параметр | Описание | С версии
dateXML | rss дата/время. |
dateFormat | Формат даты. Необязательный параметр. По умолчанию используется формат "DD.MM.YYYY". | 11.0.7

Возвращаемое значение

строка.

Смотрите также

  • http://www.w3.org/Protocols/rfc822/
  • CIBlockRSS::GetNewsEx
  • CIBlockRSS::FormatArray

Примеры использования

<?
$arXML = CIBlockRSS::GetNewsEx('www.1c-bitrix.ru', '80', '/bitrix/rss.php', 'ID=news_sm&LANG=ru&TYPE=news&LIMIT=5');
if(count($arXML) > 0)
{
    $arRSS = CIBlockRSS::FormatArray($arXML);
    foreach($arRSS["item"] as $arItem)
    {
        echo $arItem["title"].":".CIBlockRSS::XMLDate2Dec($arItem["pubDate"]);
    }
}
?>


CIBlockSection

CIBlockSection - класс для работы с разделами (группами) информационных блоков.

Методы класса

Метод | Описание | С версии
GetList | Возвращает список разделов по фильтру. | 3.0.6
GetMixedList | Создаёт список разделов и элементов. | 5.1.0
GetByID | Возвращает параметры раздела по его коду ID. | 3.0.4
Add | Добавляет в информационный блок новый раздел. | 3.0.6
Update | Изменяет параметры существующего раздела. | 3.0.6
Delete | Удаляет раздел из информационного блока. | 3.0.4
GetCount | Возвращает количество подразделов. | 3.0.6
GetSectionElementsCount | Возвращает количество элементов в разделе. | 3.2.1
GetTreeList | Возвращает разделы отсортированные в порядке "полностью развернутого дерева" | 3.0.4
GetNavChain | Возвращает путь от заданного раздела до корневого. | 3.0.4
ReSort | Пересчет левой и правой границ. | 3.0.4
createMnemonicCode | * Метод создания символьного кода. | 21.300.100
generateMnemonicCode | * Метод генерации символьного кода. | 21.300.100
isExistsMnemonicCode | * Метод проверки существования символьного кода. | 21.300.100

* - Методы работы с символьными кодами. Методы работают, только если в настройках инфоблока включена опция Транслитерировать из названия при добавлении раздела для поля Символьный код раздела.

Параметры транслитерации берутся из настроек инфоблока, но могут быть переопределены в момент использования. Исключение - опция Использовать внешний сервис для перевода. В этом случае методы не работают, возвращают null.

Язык, с которого осуществляется транслитерация, выбирается из настроек сайта, к которому привязан инфоблок. Может быть переопределен в момент использования. Если сайты, к которым привязан инфоблок, имеют различные языки, то язык транслитерации ОБЯЗАТЕЛЬНО необходимо указать при вызове методов.


Add

Информационные блоки>Классы>CIBlockSection>Add (доступен с 3.0.6)

CIBlockSection::Add

Описание

int
CIBlockSection::Add(
 array arFields,
 bool bResort = true,
 bool bUpdateSearch = true,
 bool bResizePictures = false
);

Метод добавляет новый раздел в информационный блок. Перед добавлением раздела вызываются обработчики события OnBeforeIBlockSectionAdd из которых можно изменить значения полей или отменить добавление раздела вернув сообщение об ошибке. После добавления раздела вызывается событие OnAfterIBlockSectionAdd. Нестатический метод.

Смотрите также

  • CIBlockSection::Update
  • OnBeforeIBlockSectionAdd
  • OnAfterIBlockSectionAdd

Параметры вызова

Параметр | Описание | С версии
arFields | Массив вида Array("поле"=>"значение", ...), содержащий значения полей раздела инфоблоков. Пользовательские свойства UF_XXX можно тоже занести в массив и они будут добавляться. |
bResort | Флаг, указывающий пересчитывать ли правую и левую границы после изменения (поля LEFT_MARGIN и RIGHT_MARGIN). Примечание: настоятельно рекомендуется не устанавливать значение false. | 3.2.1
bUpdateSearch | Флаг, указывающий, что раздел должен быть проиндексирован для поиска сразу же после сохранения. | 4.0.6
bResizePictures | Использовать настройки инфоблока для обработки изображений. По умолчанию настройки не применяются. Если этот параметр имеет значение true, то к полям PICTURE и DETAIL_PICTURE будут применены правила генерации и масштабирования в соответствии с настройками информационного блока. | 9.0.4

Возвращаемое значение

Метод возвращает идентификационный код добавленного раздела блока, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в свойстве объекта LAST_ERROR будет содержаться текст ошибки.

Примеры использования

<?
$bs = new CIBlockSection;
$arFields = Array(
  "ACTIVE" => $ACTIVE,
  "IBLOCK_SECTION_ID" => $IBLOCK_SECTION_ID,
  "IBLOCK_ID" => $IBLOCK_ID,
  "NAME" => $NAME,
  "SORT" => $SORT,
  "PICTURE" => $_FILES["PICTURE"],
  "DESCRIPTION" => $DESCRIPTION,
  "DESCRIPTION_TYPE" => $DESCRIPTION_TYPE
  );

if($ID > 0)
{
  $res = $bs->Update($ID, $arFields);
}
else
{
  $ID = $bs->Add($arFields);
  $res = ($ID>0);
}

if(!$res)
  echo $bs->LAST_ERROR;
?>


createMnemonicCode

Информационные блоки>Классы>CIBlockSection>createMnemonicCode (с версии 21.300.100)

CIBlockSection::createMnemonicCode

?string
public function CIBlockSection::createMnemonicCode
(
 array $section,
 array array $options = []
);

Нестатичный метод создания символьного кода. От метода генерации отличается проверкой существования в базе, проверкой на уникальность и добавления в конец числового индекса, если сгенерированный код существует. Для работы рекомендуется использовать его.

Возвращаемое значение:

  • null - в случае ошибок
  • string - строка с символьным кодом

Параметры функции

Параметр Описание
$section Массив, описывающий элемент инфоблока. Тип - массив (array), ключи массива:
  • NAME - непустая строка названия, для которого необходимо сгенерировать символьный код. Тип - строка (string), обязательный.
  • IBLOCK_ID - идентификатор инфоблока. Тип - целое число (int), обязательный
  • ID - идентификатор раздела. Тип - целое число (int) или null, необязательный. Если указать не null - в фильтр будет добавлено условие по ID записи
$options Переопределяемые настройки траслитерации. Тип - массив (array), необязательный в общем случае. Содержит ключи, идентичные $options метода CIBlockSection::generateMnemonicCode с одним дополнением:
CHECK_SIMILAR - проверять похожие. Тип строка (string), значения Y/N, необязательный. Используется, если символьный код должен быть уникальным. После проверки, что сгенеренный код уже существует, будет выполнен поиск по всем вариантам "символьныйКод_ЧИСЛО". К символьному коду будет добавлено число, вариант с которым в базе еще не существует.


Delete

Информационные блоки>Классы>CIBlockSection>Delete (доступен с 3.0.4)

CIBlockSection::Delete

Описание и параметры

bool CIBlockSection::Delete(
 int ID,
 bool bCheckPermissions = true
);

Метод удаляет раздел с кодом ID, вместе со всеми подразделами и элементами, которые привязаны только к этому разделу. Также удаляются значения свойств типа "Привязка к разделу" указывающие на удаляемый. При установленном модуле поиска раздел удаляется из поискового индекса. Перед удалением раздела вызываются обработчики события OnBeforeIBlockSectionDelete из которых можно отменить это действие. После удаления вызывается обработчик события OnAfterIBlockSectionDelete. Метод статический.

Параметры вызова

Параметр | Описание | С версии
ID | Код раздела. |
bCheckPermissions | Флаг проверки прав доступа. Необязательный параметр. | 9.0.2

Возвращаемое значение

Возвращается true в случае успешного удаления, иначе возвращается false.

Смотрите также

  • OnBeforeIBlockSectionDelete
  • OnAfterIBlockSectionDelete

Примеры использования

<?
if(CIBlock::GetPermission($IBLOCK_ID)>='W')
{
    $DB->StartTransaction();
    if(!CIBlockSection::Delete($SECTION_ID))
    {
        $strWarning .= 'Error.';
        $DB->Rollback();
    }
    else
        $DB->Commit();
}
?>


generateMnemonicCode

Информационные блоки>Классы>CIBlockSection>generateMnemonicCode

CIBlockSection::generateMnemonicCode

?string
public function \CIBlockSection::generateMnemonicCode(
 string $name,
 int $iblockId,
 array $options = []
);

Нестатическиq метод генерации символьного кода. Возвращаемое значение:

  • null - в случае ошибок
  • string - строка с символьным кодом

Параметры функции

Параметр | Описание
$name | Непустая строка названия, для которого необходимо сгенерировать символьный код. Тип - строка (string), обязательный.
$iblockId | Идентификатор инфоблока. Тип - целое число (int), обязательный.
$options переопределяемые настройки траслитерации. Тип - массив (array), необязательный в общем случае.

Параметр может содержать следующие ключи (если не указать, то параметры берутся из настроек инфоблока):

  • MAX_LEN - максимальная длина полученного кода, тип - целое число (int)
  • TRANS_CASE - приведение к регистру, тип - строка (string). Возможные значения:
    • L - к нижнему регистру
    • U - к верхнему
    • пустая строка - не менять регистр
  • TRANS_SPACE - символ, используемый для замены пробелов, тип - строка (string), один символ
  • TRANS_OTHER - символ, используемый для замены прочих символов, недопустимых в символьных кодах, тип - строка (string), один символ
  • TRANS_EAT - удалять повторы, тип строка (string), значения Y/N
  • LANGUAGE_ID - код языка, с которого необходимо траслитерировать, дополнительный ключ.


GetByID

Информационные блоки>Классы>CIBlockSection>GetByID (доступен с 3.0.4)

CIBlockSection::GetByID

CIBlockResult
CIBlockSection::GetByID(
 int ID
);

Возвращает параметры раздела по его коду ID. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код раздела.

Возвращаемое значение

Возвращается объект CIBlockResult. Пользовательские поля не возвращаются.

Смотрите также

  • CIBlockResult
  • Поля раздела

Примеры использования

<?
$res = CIBlockSection::GetByID($_GET["GID"]);
if($ar_res = $res->GetNext())
  echo $ar_res['NAME'];
?>


GetCount

Информационные блоки>Классы>CIBlockSection>GetCount (доступен с 3.0.6)

CIBlockSection::GetCount

Описание и параметры

int
CIBlockSection::GetCount(
 array arFilter = Array()
);

Возвращает количество разделов, удовлетворяющих фильтру arFilter. Нестатический метод.

Параметры вызова

Параметр Описание
arFilter Массив вида array("фильтруемое поле"=>"значение" [, ...])
"фильтруемое поле" может принимать значения:
ACTIVE - фильтр по активности (Y|N);
GLOBAL_ACTIVE - фильтр по активности, учитывая активность вышележащих разделов (Y|N);
NAME - по названию (можно искать по шаблону [%_]);
CODE - по символьному коду (по шаблону [%_]);
EXTERNAL_ID - по внешнему коду (по шаблону [%_]);
SECTION_ID - по коду раздела-родителя;
DEPTH_LEVEL - по уровню вложенности;
LEFT_BORDER, RIGHT_BORDER - по левой и правой границе (поля LEFT_MARGIN и RIGHT_MARGIN, см. примечание);
ID - по коду раздела;
IBLOCK_ID - по коду родительского информационного блока;
IBLOCK_ACTIVE - по активности родительского информационного блока;
IBLOCK_NAME - по названию информационного блока (по шаблону [%_]);
IBLOCK_TYPE - по типу информационного блока;
IBLOCK_CODE - по символьному коду информационного блока (по шаблону [%_]);
IBLOCK_EXTERNAL_ID - по внешнему коду информационного блока (по шаблону [%_]);

Перед названием фильтруемого поля можно указать тип фильтрации:
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

"значения фильтра" одиночное значение или массив.

Необязательное. По умолчанию записи не фильтруются.

Возвращаемое значение

Число - количество разделов.

Смотрите также

  • CIBlockSection::GetList()

Примеры использования

<?
    $arFilter = Array(
        "IBLOCK_ID"=>$IBLOCK_ID,
        "SECTION_ID"=>$f_ID
        );

    echo CIBlockSection::GetCount($arFilter);
?>


GetList

Информационные блоки>Классы>CIBlockSection>GetList (доступен с 3.0.6)

CIBlockSection::GetList

Описание

CIBlockResult
CIBlockSection::GetList(
    array arOrder = Array("SORT"=>"ASC"),
    array arFilter = Array(),
    bool bIncCnt = false,
    array Select = Array(),
    array NavStartParams = false
);

Возвращает список разделов, отсортированных в порядке arOrder по фильтру arFilter. Нестатический метод.

Смотрите также

  • CIBlockResult
  • Поля раздела информационного блока

Параметры вызова

Параметр Описание С версии
arOrder Массив для сортировки, имеющий вид by1=>order1[, by2=>order2 [, ..]], где by1, ... - поле сортировки, может принимать значения:
  • id - код раздела;
  • section - код родительской раздела;
  • name - название раздела;
  • code - символьный код раздела;
  • active - активности раздела;
  • left_margin - левая граница;
  • depth_level - глубина вложенности (начинается с 1);
  • sort - индекс сортировки;
  • created - по времени создания раздела;
  • created_by - по идентификатору создателя раздела;
  • modified_by - по идентификатору пользователя изменившего раздел;
  • element_cnt - количество элементов в разделе, работает только если bIncCnt = true;
  • timestamp_x - по времени последнего изменения.
order1, ... - порядок сортировки, может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию.

Кроме того, сортировка возможна и по пользовательским свойствам UF_XXX.

Значение по умолчанию Array("SORT"=>"ASC") означает, что результат выборки будет отсортирован по возрастанию. Если задать пустой массив Array(), то результат отсортирован не будет.
arFilter Массив вида array("фильтруемое поле"=>"значение" [, ...]). Фильтруемое поле может принимать значения:
  • ACTIVE - фильтр по активности (Y|N);
  • GLOBAL_ACTIVE - фильтр по активности, учитывая активность вышележащих разделов (Y|N);
  • NAME - по названию (можно искать по шаблону [%_]);
  • CODE - по символьному коду (по шаблону [%_]);
  • XML_ID или EXTERNAL_ID - по внешнему коду (по шаблону [%_]);
  • SECTION_ID - по коду раздела-родителя (если указать false, то будут возвращены корневые разделы);
  • DEPTH_LEVEL - по уровню вложенности (начинается с 1);
  • LEFT_BORDER, RIGHT_BORDER - по левой и правой границе (используется, когда необходимо выбрать некий диапазон разделов, см. пример №4);
  • LEFT_MARGIN, RIGHT_MARGIN - по положению в дереве (используется, когда необходима выборка дерева подразделов, см. пример №4);
  • ID - по коду раздела;
  • IBLOCK_ID - по коду родительского информационного блока. Обязателен, если нужно получить пользовательское свойство;
  • IBLOCK_ACTIVE - по активности родительского информационного блока;
  • IBLOCK_NAME - по названию информационного блока (по шаблону [%_]);
  • IBLOCK_TYPE - по типу информационного блока (по шаблону [%_]);
  • IBLOCK_CODE - по символьному коду информационного блока (по шаблону [%_]);
  • IBLOCK_XML_ID или IBLOCK_EXTERNAL_ID - по внешнему коду информационного блока (по шаблону [%_]);
  • TIMESTAMP_X - по времени последнего изменения;
  • DATE_CREATE - по времени создания;
  • MODIFIED_BY - по коду пользователя изменившему раздел;
  • CREATED_BY - по содателю;
  • SOCNET_GROUP_ID - по привязке к группе Социальной сети;
  • MIN_PERMISSION - фильтр по правам доступа, по умолчанию принимает R (уровень доступа Чтение);
  • CHECK_PERMISSIONS - если установлено значение "N", то проверки прав не происходит;
  • PERMISSIONS_BY - фильтрация по правам произвольного пользователя. Значение - ID пользователя или 0 (неавторизованный).
  • PROPERTY - по значениям свойств внутрилежащих элементов, PROPERTY - массив вида Array("код свойства"=>"значение", ...).
  • HAS_ELEMENT - по наличию элемента. Используется в компоненте catalog.detail.
Все фильтруемые поля могут содержать перед названием тип проверки фильтра [image].

Значения фильтра одиночное значение или массив.

Важно! Чтобы фильтрация выполнялась по пользовательским свойствам, необходимо обязательно передавать в фильтр IBLOCK_ID. Само свойство надо указывать в виде UF_...

Необязательное. По умолчанию записи не фильтруются.
bIncCnt Возвращать ли поле ELEMENT_CNT - количество элементов в разделе. При этом arFilter дополнительно обрабатывает следующие фильтруемые поля:
  • ELEMENT_SUBSECTIONS - подсчитывать элементы вложенных подразделов или нет (Y|N). По умолчанию Y;
  • CNT_ALL - подсчитывать еще неопубликованные элементы (Y|N). По умолчанию N. Актуально при установленном модуле документооборота;
  • CNT_ACTIVE - при подсчете учитывать активность элементов (Y|N). По умолчанию N. Учитывается флаг активности элемента ACTIVE и даты начала и окончания активности.
Необязательный параметр, по умолчанию равен false.

Примечание: в случае если в фильтре есть ключ PROPERTY то в количестве элементов вернется то значение, которое попадает под этот фильтр по значению свойств.
arSelect Массив для выборки.
  • ID - ID группы информационного блока.
  • CODE - Символьный идентификатор.
  • EXTERNAL_ID или XML_ID - Внешний код.
  • IBLOCK_ID - ID информационного блока.
  • IBLOCK_SECTION_ID - ID группы родителя, если не задан то группа корневая.
  • TIMESTAMP_X - Дата последнего изменения параметров группы.
  • SORT - Порядок сортировки (среди групп внутри одной группы-родителя).
  • NAME - Наименование группы.
  • ACTIVE - Флаг активности (Y|N)
  • GLOBAL_ACTIVE - Флаг активности, учитывая активность вышележащих (родительских) групп (Y|N). Вычисляется автоматически (не может быть изменен вручную).
  • PICTURE - Код картинки в таблице файлов.
  • DESCRIPTION - Описание группы.
  • DESCRIPTION_TYPE - Тип описания группы (text/html).
  • LEFT_MARGIN - Левая граница группы. Вычисляется автоматически (не устанавливается вручную).
  • RIGHT_MARGIN - Правая граница группы. Вычисляется автоматически (не устанавливается вручную).
  • DEPTH_LEVEL - Уровень вложенности группы. Начинается с 1. Вычисляется автоматически (не устанавливается вручную).
  • SEARCHABLE_CONTENT Содержимое для поиска при фильтрации групп. Вычисляется автоматически. Складывается из полей NAME и DESCRIPTION (без html тэгов, если DESCRIPTION_TYPE установлен в html).
  • SECTION_PAGE_URL - Шаблон URL-а к странице для детального просмотра раздела. Определяется из параметров информационного блока. Изменяется автоматически.
  • MODIFIED_BY - Код пользователя, в последний раз изменившего элемент.
  • DATE_CREATE - Дата создания элемента.
  • CREATED_BY - Код пользователя, создавшего элемент.
  • DETAIL_PICTURE - Код картинки в таблице файлов для детального просмотра.
Кроме того, можно вывести пользовательские свойства, если задать их код (см. примечание ниже). 		6.0.3
arNavStartParams Массив для постраничной навигации. Может содержать следующие ключи:
  • bShowAll - разрешить вывести все элементы при постраничной навигации;
  • iNumPage - номер страницы при постраничной навигации;
  • nPageSize - количество элементов на странице при постраничной навигации;
  • nTopCount - ограничить количество возвращаемых методом записей сверху значением этого ключа (ключ доступен с версии 15.5.5 ).
Если в параметр передать пустой массив, то результат выборки будет ограничен десятью записями. А если передать значение false - то выборка будет полной. 		11.0.0

Возвращаемое значение

Возвращается объект CIBlockResult

Примечание №1: для вывода пользовательских свойств обязательно должен быть передан IBLOCK_ID и в arSelect код необходимых свойств UF_XXX. Если необходимо вывести все пользовательские свойства, то в arSelect необходимо передать UF_*.

Примечание №2: поле для сортировки left_margin, так называемая "сквозная" сортировка, высчитывается на основании поля sort, уровня вложенности и сортировкой верхнего уровня. Отличие полей sort и left_margin в том, что sort указывается пользователем, для сортировки разделов между собой в пределах одного раздела-родителя, а вычисляемое left_margin предназначено для сортировки во всем информационном блоке.

Примечание №3: нет возможности фильтровать разделы в выборке по количеству элементов.

Дополнительно

Выбор пользовательских свойств разделов возможен только при передаче в ключ фильтра IBLOCK_ID одиночного значения.

Примеры использования

Пример 1:

<?
$arIBTYPE = CIBlockType::GetByIDLang($type, LANGUAGE_ID);
if($arIBTYPE!==false)
{
  // выборка только активных разделов из инфоблока $IBLOCK_ID, в которых есть элементы
  // со значением свойства SRC, начинающееся с https://
  $arFilter = Array('IBLOCK_ID'=>$IBLOCK_ID, 'GLOBAL_ACTIVE'=>'Y', 'PROPERTY'=>Array('SRC'=>'https://%'));
  $db_list = CIBlockSection::GetList(Array($by=>$order), $arFilter, true);
  $db_list->NavStart(20);
  echo $db_list->NavPrint($arIBTYPE["SECTION_NAME"]);
  while($ar_result = $db_list->GetNext())
  {
    echo $ar_result['ID'].' '.$ar_result['NAME'].': '.$ar_result['ELEMENT_CNT'].'<br>';
  }
  echo $db_list->NavPrint($arIBTYPE["SECTION_NAME"]);
}
?>

Пример 2:

//пример выборки дерева подразделов для раздела
$rsParentSection = CIBlockSection::GetByID(ID_необходимой_секции);
if ($arParentSection = $rsParentSection->GetNext())
{
   $arFilter = array('IBLOCK_ID' => $arParentSection['IBLOCK_ID'],'>LEFT_MARGIN' => $arParentSection['LEFT_MARGIN'],'<RIGHT_MARGIN' => $arParentSection['RIGHT_MARGIN'],'>DEPTH_LEVEL' => $arParentSection['DEPTH_LEVEL']); // выберет потомков без учета активности
   $rsSect = CIBlockSection::GetList(array('left_margin' => 'asc'),$arFilter);
   while ($arSect = $rsSect->GetNext())
   {
       // получаем подразделы
   }
}

Пример 3:

//в шаблоне меню, построенного по структуре инфоблока, менять ссылку на элемент, если заполнено пользовательское поле

<?
//внутри цикла построения меню
$uf_iblock_id = 1; //ID инфоблока
$uf_name = Array("UF_PAGE_LINK"); //пользовательское поле UF_PAGE_LINK

preg_match('/\?ID=([0-9]+)\&?/i', $arItem["LINK"], $matches); //SEF отключен, поэтому спокойно берем SECTION_ID из ссылки по шаблону ID=#SECTION_ID#
$uf_section_id = $matches[1];
if(CModule::IncludeModule("iblock")): //подключаем модуль инфоблок для работы с классом CIBlockSection
   $uf_arresult = CIBlockSection::GetList(Array("SORT"=>"ASC"), Array("IBLOCK_ID" => $uf_iblock_id, "ID" => $uf_section_id), false, $uf_name);
   if($uf_value = $uf_arresult->GetNext()):
      if(strlen($uf_value["UF_PAGE_LINK"]) > 0): //проверяем что поле заполнено
         $arItem["LINK"] = $uf_value["UF_PAGE_LINK"]; //подменяем ссылку и используем её в дальнейшем
      endif;
   endif;
endif;
?>

Пример 4:

//рассмотрим разницу использования фильтра по LEFT_MARGIN, RIGHT_MARGIN и LEFT_BORDER, RIGHT_BORDER
//допустим, что у некоторого раздела LEFT_MARGIN (значение в базе) = 10, RIGHT_MARGIN (значение в базе) = 40

//в первом примере кода будет выбран как сам раздел, так и все его подразделы,
//поскольку всегда LEFT_MARGIN раздела-потомка > LEFT_MARGIN раздела-родителя
//и RIGHT_MARGIN раздела-потомка < RIGHT_MARGIN раздела-родителя

$arFilter = array('IBLOCK_ID' => 10, 'LEFT_MARGIN' => 10, 'RIGHT_MARGIN' => 40);
$rsSections = CIBlockSection::GetList(array('LEFT_MARGIN' => 'ASC'), $arFilter);
while ($arSection = $rsSections->Fetch())
{
    echo htmlspecialcharsbx($arSection['NAME']).' LEFT_MARGIN: '.$arSection['LEFT_MARGIN'].' RIGHT_MARGIN: '.$arSection['RIGHT_MARGIN'].'<br>';
}

//во втором примере кода будет возвращена только одна запись - сам раздел

$arFilter = array('IBLOCK_ID' => 10, 'LEFT_BORDER' => 10, 'RIGHT_BORDER' => 40);
$rsSections = CIBlockSection::GetList(array('LEFT_MARGIN' => 'ASC'), $arFilter);
while ($arSction = $rsSections->Fetch())
{
    echo htmlspecialcharsbx($arSection['NAME']).' LEFT_MARGIN: '.$arSection['LEFT_MARGIN'].' RIGHT_MARGIN: '.$arSection['RIGHT_MARGIN'].'<br>';
}


GetMixedList

Информационные блоки>Классы>CIBlockSection>GetMixedList (доступен с 5.1.0)

CIBlockSection::GetMixedList

Описание

CIBlockResult
CIBlockSection::GetMixedList(
 array arOrder = Array("SORT"=>"ASC"),
 array arFilter = Array(),
 bool bIncCnt = false,
 array arSelectedFields = false
);

Возвращает список разделов и элементов, отсортированных в порядке arOrder по фильтру arFilter. Нестатический метод.

Возвращаемое значение

Возвращается объект CIBlockResult.

Смотрите также

  • CIBlockSection::GetList
  • CIBlockElement::GetList

Параметры вызова

Параметр | Описание | С версии
arOrder Массив для сортировки, имеющий вид by1=>order1[, by2=>order2 [, ..]], где by1, ... - поле сортировки, может принимать значения:

для элементов:
  • id - ID элемента;
  • sort - индекс сортировки;
  • timestamp_x - дата изменения;
  • name - название;
  • active_from или date_active_from - начало периода действия элемента;
  • active_to или date_active_to - окончание периода действия элемента;
  • status - код статуса элемента в документообороте;
  • code - символьный код элемента;
  • iblock_id - числовой код информационного блока;
  • modified_by - код последнего изменившего пользователя;
  • active - признак активности элемента;
  • show_counter - количество показов элемента (учитывается методом CIBlockElement::CounterInc);
  • show_counter_start - время первого показа элемента (учитывается методом CIBlockElement::CounterInc);
  • shows - усредненное количество показов (количество показов / продолжительность показа);
  • rand - случайный порядок;
  • xml_id или external_id - внешний код;
  • tags - теги;
  • created - время создания;
  • created_date - дата создания без учета времени;
  • cnt - количество элементов (только при заданной группировке);
  • property_<PROPERTY_CODE> - по значению свойства с числовым или символьным кодом PROPERTY_CODE (например, PROPERTY_123 или PROPERTY_NEWS_SOURCE);
  • propertysort_<PROPERTY_CODE> - по индексу сортировки варианта значения свойства. Только для свойств типа "Список" ;
  • catalog_<CATALOG_FIELD>_<PRICE_TYPE> - по полю CATALOG_FIELD (может быть PRICE - цена или CURRENCY - валюта) из цены с типом PRICE_TYPE (например, catalog_PRICE_1 или CATALOG_CURRENCY_3);
  • CATALOG_QUANTITY - общее количество товара;
  • CATALOG_WEIGHT - вес товара;
  • CATALOG_AVAILABLE - признак доступности к покупке (Y|N). Товар считается недоступным, если его количество меньше либо равно нулю, включен количественный учет и запрещена покупка при нулевом количестве;
  • PROPERTY_<PROPERTY_CODE>.<FIELD> - по значению поля элемента указанного в качестве привязки. PROPERTY_CODE - символьный код свойства типа привязка к элементам. FIELD может принимать значения:
    • ID
    • TIMESTAMP_X
    • MODIFIED_BY
    • CREATED
    • CREATED_DATE
    • CREATED_BY
    • IBLOCK_ID
    • ACTIVE
    • ACTIVE_FROM
    • ACTIVE_TO
    • SORT
    • NAME
    • SHOW_COUNTER
    • SHOW_COUNTER_START
    • CODE
    • TAGS
    • XML_ID
    • STATUS
  • PROPERTY_<PROPERTY_CODE>.PROPERTY_<PROPERTY_CODE2> - по значению свойства элемента указанного в качестве привязки. PROPERTY_CODE - символьный код свойства типа привязки к элементам. PROPERTY_CODE2- код свойства связанных элементов.
  • HAS_PREVIEW_PICTURE и HAS_DETAIL_PICTURE - сортировка по наличию и отсутствию картинок.

для разделов:
  • id - код группы;
  • section - код родительской группы;
  • name - название группы;
  • code - символьный код группы;
  • active - активности группы;
  • left_margin - левая граница;
  • depth_level - глубина вложенности (начинается с 1);
  • sort - индекс сортировки;
  • created - по времени создания группы;
  • created_by - по идентификатору создателя группы;
  • modified_by - по идентификатору пользователя изменившего группу;
  • element_cnt - количество элементов в группе, работает только если bIncCnt = true;
  • timestamp_x - по времени последнего изменения.
order1, ... - порядок сортировки, может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию.

Значение по умолчанию Array("SORT"=>"ASC") означает, что результат выборки будет отсортирован по возрастанию. Если задать пустой массив Array(), то результат отсортирован не будет.
arFilter Массив вида array("фильтруемое поле"=>"значение" [, ...]). Фильтруемое поле может принимать значения:

для элементов:
  • ID_1, ID_2 - по числовому коду (Число) от ID_1 до ID_2;
  • ACTIVE - фильтр по активности (Y|N); передача пустого значения ("ACTIVE"=>"") выводит все элементы без учета их состояния (Строка);
  • NAME - по названию (Маска);
  • CODE - по символьному идентификатору (Маска);
  • TAGS - по тегам (Маска);
  • EXTERNAL_ID - по внешнему коду (Маска);
  • TIMESTAMP_X_1, TIMESTAMP_X_2 - по времени изменения (Дата) от TIMESTAMP_X_1 до TIMESTAMP_X_2;
  • DATE_CREATE_1, DATE_CREATE_2 - по времени создания (Дата) от DATE_CREATE_1 до DATE_CREATE_2;
  • CREATED_USER_ID или CREATED_BY - по коду пользователя, добавившего элемент (Число);
  • DATE_ACTIVE_FROM_1, DATE_ACTIVE_FROM_2 - по дате начала активности (Дата) от DATE_ACTIVE_FROM_1 до DATE_ACTIVE_FROM_2. Формат даты должен соответствовать формату даты [image] [image], установленному на сайте.;
  • DATE_ACTIVE_TO_1, DATE_ACTIVE_TO_2 - по дате окончания активности (Дата) от DATE_ACTIVE_TO_1 до DATE_ACTIVE_TO_2. Формат даты должен соответствовать формату даты [image] [image], установленному на сайте.;
  • IBLOCK_ID - по коду информационного блока (Число);
  • CATALOG_AVAILABLE - признак доступности к покупке (Y|N). Товар считается недоступным, если его количество меньше либо равно нулю, включен количественный учет и запрещена покупка при нулевом количестве;
  • CATALOG_CATALOG_GROUP_ID_N - по типу цен;
  • CATALOG_SHOP_QUANTITY_N - фильтрация по диапазону количества в цене;
  • CATALOG_QUANTITY - по общему количеству товара;
  • CATALOG_WEIGHT - по весу товара;
  • SHOW_COUNTER - по количеству показов (Число);
  • SHOW_COUNTER_START - по времени первого показа (Дата);
  • WF_COMMENTS - по комментарию документооборота (Маска);
  • WF_STATUS_ID или WF_STATUS - по коду статуса документооборота (Число);
  • SHOW_NEW - если SHOW_HISTORY не установлен или не равен Y и SHOW_NEW=Y, то будут показываться ещё неопубликованные элементы вместе с опубликованными;
  • PROPERTY_<PROPERTY_CODE> - фильтр по значениям свойств, где PROPERTY_CODE - код свойства или символьный код. Для свойств типа "Список", "Число", "Привязка к элементам" и "Привязка к разделам" - Число. Для прочих - Маска;
  • PROPERTY_<PROPERTY_CODE>_VALUE - фильтр по значениям списка для свойств типа "список" (Маска), поиск будет осуществляться по строковому значению списка, а не по идентификатору;
  • CATALOG_<CATALOG_FIELD>_<PRICE_TYPE> - по полю CATALOG_FIELD из цены типа PRICE_TYPE (ID типа цены), где CATALOG_FIELD может быть: PRICE - цена, CURRENCY - валюта.
  • PROPERTY_<PROPERTY_CODE>.<FIELD> - фильтр по значениям полей связанных элементов. , где PROPERTY_CODE - ID или символьный код свойства привязки, а FIELD - поле указанного в привязке элемента.
для разделов:
  • IBLOCK_ID - по коду родительского информационного блока;
  • NAME - по названию (можно искать по шаблону [%_]);
  • CODE - по символьному коду (по шаблону [%_]);
  • EXTERNAL_ID - по внешнему коду (по шаблону [%_]);
  • SECTION_ID - по коду раздела-родителя;
  • ID_1, ID_2 - по кодам разделов от ID_1 до ID_2;
  • TIMESTAMP_X_1, TIMESTAMP_X_2 - по времени последнего изменения от TIMESTAMP_X_1 до TIMESTAMP_X_2;
  • DATE_CREATE_1, DATE_CREATE_2 - по времени создания от DATE_CREATE_1 до DATE_CREATE_2;
  • MODIFIED_BY - по коду пользователя изменившему раздел;
  • CREATED_BY - по создателю;
  • PROPERTY - по значениям свойств внутрилежащих элементов, PROPERTY - массив вида Array("код свойства"=>"значение", ...).

Необязательное. По умолчанию записи не фильтруются.
bIncCnt Возвращать ли поле ELEMENT_CNT - количество элементов в разделе. При этом arFilter дополнительно обрабатывает следующие фильтруемые поля:
  • ELEMENT_SUBSECTIONS - подсчитывать элементы вложенных подразделов или нет (Y|N). По умолчанию Y;
  • CNT_ALL - подсчитывать еще неопубликованные элементы (Y|N). По умолчанию N. Актуально при установленном модуле документооборота;
  • CNT_ACTIVE - при подсчете учитывать активность элементов (Y|N). По умолчанию N. Учитывается флаг активности элемента ACTIVE и даты начала и окончания активности.
Необязательный параметр, по умолчанию равен false.
arSelectedFields | Массив для выборки. Задается только для элементов. | 5.1.5


GetNavChain

Информационные блоки>Классы>CIBlockSection>GetNavChain (доступен с 3.0.4)

CIBlockSection::GetNavChain

Описание и параметры

CIBlockResult CIBlockSection::GetNavChain(
 int IBLOCK_ID,
 int SECTION_ID,
 array arSelect = array(),
 $arrayResult = false
);
Метод возвращает путь по дереву от корня до раздела SECTION_ID (пользовательские поля не возвращаются). Метод статический.

Параметры вызова

Параметр | Описание | С версии
IBLOCK_ID | Код информационного блока, служит для проверки что раздел SECTION_ID, находится в заданном информационном блоке. Если значение IBLOCK_ID ноль, то проверка не будет выполнена и код информационного блока не будет учитываться. |
SECTION_ID | Код раздела информационного раздела, путь до которого будет выбран. |
arSelect | Массив возвращаемых полей раздела. Необязательный параметр. По умолчанию будут возвращены все доступные поля. | 12.5.0
arResult | Необязательный параметр. По умолчанию - false. Если передать в него true - вернет массив элементов, описывающих позиции, а не CDBResult. Это производительнее. | 12.5.0

Возвращаемое значение

Возвращается объект CIBlockResult с полями раздела информационного блока.

Примеры использования

<?
$nav = CIBlockSection::GetNavChain(false, $SECTION_ID);
while($nav->ExtractFields("nav_")):
?> &raquo;
  <?if($SECTION_ID == $nav_ID):?>
    <?echo $nav_NAME?>
  <?else:?>
    <a class="navchain" href="<?=$application->getcurpage()?>?iblock_id=<?=$iblock_id?>&section_id=<?=$nav_id?>#tb"><?echo $nav_NAME?></a>
  <?endif?>
<?endwhile;?>

Показать полный массив данных:

$list = CIBlockSection::GetNavChain(false,$Section['ID'], array(), true);
foreach ($list as $arSectionPath){
   echo '<pre>';print_r($arSectionPath);echo '</pre>';
}

Смотрите также

  • CIBlockResult
  • Поля раздела информационного блока


GetSectionElementsCount

Информационные блоки>Классы>CIBlockSection>GetSectionElementsCount (доступен с 3.2.1)

CIBlockSection::GetSectionElementsCount

int CIBlockSection::GetSectionElementsCount(
 int ID,
 array arFilter = Array()
);

Метод считает количество элементов внутри раздела ID, учитывая фильтр arFilter. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код раздела.
arFilter | Массив вида Array("фильтруемое поле"=>"значение", ...), где фильтруемое поле может принимать значения: CNT_ACTIVE - активные элементы (Y|N), CNT_ALL - учитывать ещё не опубликованные элементы (если установлен модуль документооборота), PROPERTY - массив для фильтрации элементов по значениям свойств, вида Array("код свойства"=>"значение", ...),

Примечание: метод устарел, для получения количества рекомендуется использовать метод CIBlockElement::GetList с установленным параметром для группировки.

Смотрите также

  • CIBlockElement::GetList


GetTreeList

Информационные блоки>Классы>CIBlockSection>GetTreeList (доступен с 3.0.4)

CIBlockSection::GetTreeList

CDBResult
CIBlockSection::GetTreeList(
 array arFilter=Array(),
 array arSelect=Array()
);

Метод возвращает список разделов, отсортированный в порядке "полного развернутого дерева". Метод статический. По сути является оберткой метода CIBlockSection::GetList() с предустановленным параметром сортировки:

CIBlockSection::GetList(Array("left_margin"=>"asc"), $arFilter);

Смотрите также

  • CIBlockSection::GetList


isExistsMnemonicCode

Информационные блоки>Классы>CIBlockSection>isExistsMnemonicCode (с версии 21.300.100)

CIBlockSection::isExistsMnemonicCode

bool
public function CIBlockSection::isExistsMnemonicCode(
 string $code,
 ?int $sectionId,
 int $iblockId
);

Нестатический метод проверки существования символьного кода. Возвращаемое значение - true / false (уже существует или нет).

Параметры функции

Параметр | Описание
$code | Непустая строка символьного кода, для которой выполняется поиск, Тип - строка (string), обязательный
$sectionId | Идентификатор раздела. Тип - целое число (int) или null, обязательный. Если указать не null - в фильтр будет добавлено условие по ID записи
$iblockId | Идентификатор инфоблока. Тип - целое число (int), обязательный.


ReSort

Информационные блоки>Классы>CIBlockSection>ReSort (доступен с 3.0.4)

CIBlockSection::ReSort

CIBlockSection::ReSort(
 int IBLOCK_ID
);

Метод пересчитывает параметры левой и правой границ для всех разделов информационного блока IBLOCK_ID. Должен использоваться после применения серии добавлений или изменений разделов при помощи методов CIBlockSection::Add() или CIBlockSection::Update() c отключенным параметром bReSort, в целях повышения производительности. Метод статический.

Параметры вызова

Параметр | Описание
IBLOCK_ID | код информационного блока.

Смотрите также

  • CIBlockSection::Add()
  • CIBlockSection::Update()

    Примеры использования

    <?
$obSect = new CIBlockSection;
for($i=0; $i<100; $i++)
{
  $obSect->Add(Array('NAME'=>'Section #'.$i, 'IBLOCK_ID'=>$IBLOCK_ID), false);
}

CIBlockSection::ReSort($IBLOCK_ID);
?>


Update

Информационные блоки>Классы>CIBlockSection>Update (доступен с 3.0.6)

CIBlockSection::Update

Описание

bool CIBlockSection::Update(
 int ID,
 array arFields,
 bool bResort = true,
 bool bUpdateSearch = true,
 bool bResizePictures = false
);

Метод изменяет параметры раздела с кодом ID. Перед изменением раздела вызываются обработчики события OnBeforeIBlockSectionUpdate из которых можно изменить значения полей или отменить изменение параметров раздела вернув сообщение об ошибке. После изменения раздела вызывается событие OnAfterIBlockSectionUpdate. Нестатический метод.

Примечание: Изменить значения полей GLOBAL_ACTIVE, DEPTH_LEVEL, LEFT_MARGIN, RIGHT_MARGIN, IBLOCK_ID, DATE_CREATE и CREATED_BY нельзя. Значение первого определяется флагом активности раздела и его родителей. DEPTH_LEVEL, LEFT_MARGIN и RIGHT_MARGIN расчитываются автоматически в зависимости от положения раздела в дереве.

Смотрите также

  • CIBlockSection::Add
  • OnBeforeIBlockSectionUpdate
  • OnAfterIBlockSectionUpdate

Параметры вызова

Параметр | Описание | С версии
ID | Код изменяемой записи. |
arFields | Массив вида Array("поле"=>"значение", ...), содержащий значения полей раздела инфоблоков. |
bResort | Флаг, указывающий пересчитывать ли правую и левую границы после изменения (поля LEFT_MARGIN и RIGHT_MARGIN). Примечание: настоятельно рекомендуется не устанавливать значение false. Если в перечне обновляемых полей имеются ключи IBLOCK_SECTION_ID, NAME, SORT, ACTIVE, то параметр bResort обязательно должен быть установлен в true. В противном случае необходимо вызывать после серии операций метод CIBlockSection::ReSort. |
bUpdateSearch | Флаг, указывающий, что раздел должен быть проиндексирован для поиска сразу же после сохранения. | 4.0.6
bResizePictures | Использовать настройки инфоблока для обработки изображений. По умолчанию настройки не применяются. Если этот параметр имеет значение true, то к полям PICTURE и DETAIL_PICTURE будут применены правила генерации и масштабирования в соответствии с настройками информационного блока. | 9.0.4

Возвращаемое значение

Метод возвращает true если изменение прошло успешно, при возникновении ошибки метод вернет false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки.

Примеры использования

<?
$bs = new CIBlockSection;

$arPICTURE = $_FILES["PICTURE"];
$arPICTURE["MODULE_ID"] = "iblock";

$arFields = Array(
  "ACTIVE" => $ACTIVE,
  "IBLOCK_SECTION_ID" => $IBLOCK_SECTION_ID,
  "IBLOCK_ID" => $IBLOCK_ID,
  "NAME" => $NAME,
  "SORT" => $SORT,
  "PICTURE" => $arPICTURE,
  "DESCRIPTION" => $DESCRIPTION,
  "DESCRIPTION_TYPE" => $DESCRIPTION_TYPE
  );

if($ID > 0)
{
  $res = $bs->Update($ID, $arFields);
}
else
{
  $ID = $bs->Add($arFields);
  $res = ($ID>0);
}
?>


CIBlockType

CIBlockType - класс для работы с типами информационных блоков.

Методы класса

Метод | Описание | С версии
GetList | Возвращает список типов по фильтру. | 3.1.3
GetByID | Возвращает тип по идентификатору. | 3.1.3
GetByIDLang | Возвращает настройки типа для заданного языка. | 3.1.3
Add | Добавляет новый тип информационных блоков. | 3.1.3
Update | Изменяет тип. | 3.1.3
Delete | Удаляет тип информационных блоков. | 3.1.3


Add

Информационные блоки>Классы>CIBlockType>Add (доступен с 3.1.3)

CIBlockType::Add

Описание и параметры

bool
  CIBlockType::Add(
 array arFields
);

Метод добавляет новый тип информационных блоков. В случае ошибки в свойстве объекта LAST_ERROR будет содержаться текст ошибки. Нестатический метод.

Примечание: вызов метода без ключа LANG (или с пустым ключом) вызывает ошибку.

Параметры метода

Параметр | Описание
arFields | Массив поле=>значение... Содержит значения полей типа информационных блоков. В элементе массива arFields["LANG"] должен содержаться ассоциативный массив языковых свойств типа.Ключами этого массива служат идентификаторы языков.

Возвращаемое значение

true, если тип успешно добавлен или false в противном случае.

Смотрите также

  • CIBlockType::Update()
  • Поля типа информационных блоков

Примеры использования

<?
$arFields = Array(
    'ID'=>'catalog',
    'SECTIONS'=>'Y',
    'IN_RSS'=>'N',
    'SORT'=>100,
    'LANG'=>Array(
        'en'=>Array(
            'NAME'=>'Catalog',
            'SECTION_NAME'=>'Sections',
            'ELEMENT_NAME'=>'Products'
            )
        )
    );

$obBlocktype = new CIBlockType;
$DB->StartTransaction();
$res = $obBlocktype->Add($arFields);
if(!$res)
{
   $DB->Rollback();
   echo 'Error: '.$obBlocktype->LAST_ERROR.'<br>';
}
else
   $DB->Commit();
?>


Delete

Информационные блоки>Классы>CIBlockType>Delete (доступен с 3.1.3)

CIBlockType::Delete

bool

CIBlockType::Delete(
string ID
);

Метод удаляет тип информационных блоков по его коду ID. Также удаляются все информационные блоки указанного типа. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код типа.

Возвращаемое значение

Возвращается true в случае успешного удаления, иначе возвращает false.

Смотрите также

  • CIBlock::Delete

Примеры использования

<?
$DB->StartTransaction();
if(!CIBlockType::Delete('catalog'))
{
    $DB->Rollback();
    echo 'Delete error!';
}
$DB->Commit();
?>


GetByID

Информационные блоки>Классы>CIBlockType>GetByID (доступен с 3.1.3)

CIBlockType::GetByID

CDBResult CIBlockType::GetByID(
 string ID
);

Возвращает тип информационных блоков по его коду ID. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код типа.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • CIBlockType


GetByIDLang

Информационные блоки>Классы>CIBlockType>GetByIDLang (доступен с 3.1.3)

CIBlockType::GetByIDLang

Описание и параметры

mixed
CIBlockType::GetByIDLang(
 string ID,
 string LANGUAGE_ID,
 bool bFindAny = true
);

Метод возвращает языковые настройки типа информационных блоков по его коду ID, для языка LANGUAGE_ID. Если для языка LANGUAGE_ID нет настроек и параметр bFindAny установлен в true, метод вернет настройки типа для языка по умолчанию. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код типа.
LANGUAGE_ID | Код языка.
bFindAny | Возвращать настройки для языка по умолчинию или нет. Необязательный. По умолчанию - возвращать.

Возвращаемое значение

Если языковые настройки найдены, то метод возвратит массив полей типа информационных блоков объединенный с массивом языкозависимых параметров типа, в противном случае метод вернет false.

Смотрите также

  • Поля CIBlockType
  • Языкозависимые поля CIBlockType

Примеры использования

<?
$db_iblock_type = CIBlockType::GetList();
while($ar_iblock_type = $db_iblock_type->Fetch())
{
   if($arIBType = CIBlockType::GetByIDLang($ar_iblock_type["ID"], LANG))
   {
      echo htmlspecialcharsex($arIBType["NAME"])."<br>";
   }
}
?>


GetList

Информационные блоки>Классы>CIBlockType>GetList (доступен с 3.1.3)

CIBlockType::GetList

Описание и параметры

CDBResult
  CIBlockType::GetList(
 array arOrder = Array("SORT"=>"ASC"),
 array arFilter = Array()
);

Возвращает список типов информационных блоков по фильтру arFilter с сортировкой arOrder. Метод статический.

Параметры вызова

Параметр | Описание
arOrder | Массив полей для сортировки, содержащий пары "поле сортировки"=>"направление сортировки". Поля сортировки могут принимать значения: id - код типа; sort - индекс сортировки; NAME - название типа.
arFilter | Массив вида array("фильтруемое поле"=>"значение" [, ...]) может принимать значения: ID - регистронезависимый по подстроке в коде типа; =ID - точное совпадение с кодом типа; NAME - регистронезависимый по подстроке в названии типа (для всех языков); Необязательное. По умолчанию записи не фильтруются. LANGUAGE_ID - код языка.

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • Поля CIBlockType

Примеры использования

<?
$db_iblock_type = CIBlockType::GetList();
while($ar_iblock_type = $db_iblock_type->Fetch())
{
   if($arIBType = CIBlockType::GetByIDLang($ar_iblock_type["ID"], LANG))
   {
      echo htmlspecialcharsEx($arIBType["NAME"])."<br>";
   }
}
?>


Update

Информационные блоки>Классы>CIBlockType>Update (доступен с 3.1.3)

CIBlockType::Update

Описание и параметры

bool
CIBlockType::Update(
 string ID,
 array arFields
);

Метод изменяет параметры типа информационных блоков с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код изменяемой записи.
arFields | Массив поле=>значение... Содержит значения полей типа информационных блоков. В элементе массива arFields["LANG"] должен содержаться ассоциативный массив языковых свойств типа. Ключами этого массива служат идентификаторы языков.

Возвращаемое значение

Метод возвращает true если изменение прошло успешно, при возникновении ошибки метод вернет false, а в свойстве LAST_ERROR объекта будет содержаться текст ошибки.

Смотрите также

  • CIBlockType::Add()
  • Поля типа информационных блоков

Примеры использования

<?
$arFields = Array(
    'SECTIONS'=>'Y',
    'IN_RSS'=>'N',
    'SORT'=>100,
    'LANG'=>Array(
        'en'=>Array(
            'NAME'=>'Catalog',
            'SECTION_NAME'=>'Sections',
            'ELEMENT_NAME'=>'Products'
            )
        )
    );

$obBlocktype = new CIBlockType;
$DB->StartTransaction();
$res = $obBlocktype->Update('catalog', $arFields);
if(!$res)
{
   $DB->Rollback();
   echo 'Error: '.$obBlocktype->LAST_ERROR.'<br>';
}
else
   $DB->Commit();
?>


CIBlockXMLFile

Описание и список методов

CIBlockXMLFile - класс для работы с файлами XML.

Методы класса

Метод | Описание | С версии
DropTemporaryTables | Удаляет таблицы, содержащие ранее загруженный файл. | 6.5.0
GetFilePosition | Возвращает объем прочитанных байт. | 6.5.0
CreateTemporaryTables | Создает таблицы для загрузки XML. | 6.5.0
ReadXMLToDatabase | Загрузка данных из файла в таблицы БД (пошаговая). | 6.5.0
IndexTemporaryTables | Индексация таблиц для ускорения доступа. | 6.5.0

Примеры использования

<?
$obXMLFile = new CIBlockXMLFile;
// Удаляем результат предыдущей загрузки
$obXMLFile->DropTemporaryTables();
// Подготавливаем БД
if(!$obXMLFile->CreateTemporaryTables())
    return "Ошибка создания БД.";

if($fp = fopen($FILE_NAME, "rb"))
{
    // Чтение содержимого файла за один шаг
    $obXMLFile->ReadXMLToDatabase($fp, $NS, 0);
    fclose($fp);
}
else
{
    // Файл открыть не удалось
    return "Ошибка открытия файла";
}

// Индексируем загруженные данные для ускорения доступа
if(!CIBlockXMLFile::IndexTemporaryTables())
    return "Ошибка созния индексов БД.";

?>


CreateTemporaryTables

Информационные блоки>Классы>CIBlockXMLFile>CreateTemporaryTables (доступен с 6.5.0)

CIBlockXMLFile::CreateTemporaryTables

bool
CIBlockXMLFile::CreateTemporaryTables(
  bool with_sess_id = false
);

Создает таблицы для загрузки XML. Нестатический метод.

Примечание: для MySQL если определена константа MYSQL_TABLE_TYPE (Специальные константы), то таблицы будут созданы заданного ей типа.

Параметры вызова

Параметр | Описание | С версии
with_sess_id | Если значение true, то будут создаваться временные таблицы с поддержкой нескольких сессий "одновременного" импорта. Введён для совместимости. Необязательный параметр. | 8.5.5

Возвращаемое значение

В случае, если таблицы создать не удалось, метод возвращает false.

Смотрите также

  • CIBlockXMLFile


DropTemporaryTables

Информационные блоки>Классы>CIBlockXMLFile>DropTemporaryTables (доступен с 6.5.0)

CIBlockXMLFile::DropTemporaryTables

bool
CIBlockXMLFile::DropTemporaryTables(
);

Удаляет таблицы, содержащие ранее загруженный файл. Необходимо вызывать метод перед началом загрузки XML. Нестатический метод.

Параметры вызова

Отсутствуют.

Возвращаемое значение

В случае возникновения ошибки метод возвращает false.

Смотрите также

  • CIBlockXMLFile


GetFilePosition

Информационные блоки>Классы>CIBlockXMLFile>GetFilePosition (доступен с 6.5.0)

CIBlockXMLFile::GetFilePosition

int
CIBlockXMLFile::GetFilePosition(
);

Метод возвращает объем прочитанных байт. Нестатический метод.

Параметры вызова

Отсутствуют.

Смотрите также

  • CIBlockXMLFile

Примеры использования

if ($obXMLFile->ReadXMLToDatabase($fp, $NS, 10, 1024) ) {
    echo '
Файл прочитан полностью.';
} else {
    echo '
Файл прочитан не полностью: '.round($obXMLFile->GetFilePosition()/$total*100, 2).'%.';
}

//пример пошагового разбора файла:
 echo '
Парсим файл';
    $NS = &$_SESSION["BX_IMPORT_NS"];
    $ABS_FILE_NAME = $DOCUMENT_ROOT."/upload/TakeMe.xml";
    $total = filesize($ABS_FILE_NAME);
    if($fp = fopen($ABS_FILE_NAME, "rb")) {
        // Чтение содержимого файла шагом в 10 секунд
        if ($obXMLFile->ReadXMLToDatabase($fp, $NS, 10, 1024) ) {
            echo '
Файл прочитан полностью.';
        } else {
            echo '
Файл прочитан не полностью: '.round($obXMLFile->GetFilePosition()/$total*100, 2).'%.';
        }
        fclose($fp);
    } else {
        // Файл открыть не удалось
        echo "Ошибка открытия файла";
    }


IndexTemporaryTables

Информационные блоки>Классы>CIBlockXMLFile>IndexTemporaryTables (доступен с 6.5.0)

CIBlockXMLFile::IndexTemporaryTables

bool
CIBlockXMLFile::IndexTemporaryTables(
  bool with_sess_id = false
);

Индексация таблиц для ускорения доступа. Необходимо вызвать после загрузки данных из файла в таблицы БД, но до обработки этих данных. Нестатический метод.

Параметры вызова

Параметр | Описание | С версии
with_sess_id | Если значение true, то будут создаваться временные таблицы с поддержкой нескольких сессий "одновременного" импорта. Введён для совместимости. Необязательный параметр. | 8.5.5

Возвращаемое значение

Если во время создания индексов произойдет ошибка БД, метод вернет false.

Смотрите также

  • CIBlockXMLFile


ReadXMLToDatabase

Информационные блоки>Классы>CIBlockXMLFile>ReadXMLToDatabase (доступен с 6.5.0)

CIBlockXMLFile::ReadXMLToDatabase

Описание и параметры

bool
CIBlockXMLFile::ReadXMLToDatabase(
 resource fp,
 array &NS,
 int time_limit = 0,
 int read_size = 1024,
);

Метод загружает данные из файла в таблицы БД. Когда весь файл прочитан, он возвращает true. Если методу не удалось уложиться в time_limit секунд, он вернет false и в параметре NS данные, необходимые для продолжения работы на следующем шаге. Нестатический метод.

Примечание: Если кодировка файла отличается от текущей (LANG_CHARSET), то будет выполнена перекодировка.

Параметры вызова

Параметр | Описание
fp | Дескриптор открытого файла. Файл рекомендуется открывать в режиме "rb".
NS | Массив с данными для продолжения работы метода, прерванного на предыдущем шаге.
time_limit | Ограничение работы метода по времени. В секундах. Если не задан или равен нулю, то метод будет работать без ограничений.
read_size | Сколько байт считывать за одну операцию чтения файла. Большие значения увеличивают производительность при большем потреблении памяти.

Возвращаемое значение

Метод возвращает true, если файл был полностью загружен, и false - в противном случае.

Смотрите также

  • CIBlockXMLFile


Пользовательские свойства

Пользовательские свойства модуля информационных блоков позволяют изменять представление (формы ввода и т.п.) стандартных свойств расширяя их возможности. Фактически такое свойство представляет собой набор обработчиков событий вызываемых при построении административного интерфейса, публичной части сайта или API функций.

При первом обращении к методам пользовательских свойств вызываются обработчики события OnIBlockPropertyBuildList. Строится список свойств и при необходимости вызываются их методы.

Примеры конкретной реализации свойств можно посмотреть в файлах модуля информационных блоков classes/general/prop_*.php

Методы класса

Метод | Описание | С версии
GetUserTypeDescription | Описание свойства | 5.0.1
CheckFields | Проверка правильности значения | 5.0.1
GetLength | Проверка длинны значения | 7.1.0
ConvertToDB | Сохранение в БД | 5.0.1
ConvertFromDB | Извлечение из БД | 5.0.1
GetPropertyFieldHtml | Отображение в форме редактирования | 5.0.1
GetAdminListViewHTML | Показ в списке | 6.0.3
GetPublicViewHTML | Отображение в публичной части | 6.5.2
GetPublicEditHTML | Редактирование в публичной части | 7.1.4
GetSearchContent | Индексация значений | 8.6.1
PrepareSettings | Сохранение настроек | 8.6.1
GetSettingsHTML | Редактирование настроек | 8.6.1
GetPropertyFieldHtmlMulty | Вывод формы редактирования множественного свойства. Если отсутствует, то используется GetPropertyFieldHtml для каждого значения отдельно (у множественных свойств). | 5.0.1
GetAdminFilterHTML | Выводит html для фильтра по свойству на административной странице списка элементов инфоблока. | 7.0.1
GetPublicFilterHTML | Выводит html для фильтра по свойству на публичной странице списка элементов инфоблока. | 8.0.1

Фильтрация

Для работы фильтра необходимо в GetUserTypeDescription добавить строчку вида:

"AddFilterFields" => array(__CLASS__,'AddFilterFields'),

и в классе объявить метод:

public static function AddFilterFields($arProperty, $control, &$arFilter, &$filtered)

Надо учитывать что этот метод не обязательный. Метод нужен только если фильтр сильно "не стандартный".


CheckFields

Описание и параметры

array
CIBlockProperty*::CheckFields(
 array arProperty,
 array value
);

Метод должен проверить корректность значения свойства и вернуть массив. Пустой, если ошибок нет, и с сообщениями об ошибках, если есть. Метод статический.

Примечание: вызывается перед добавлением или изменением элемента.

Параметры вызова

Параметр Описание
arProperty
Метаданные свойства. См. Свойства элементов инфоблока
value Значение свойства. Массив вида:
 array(
        "VALUE" => значение,
      );

Возвращаемое значение

Массив сообщений об ошибках или пустой массив.

Смотрите также

  • Свойства элементов инфоблока
  • GetUserTypeDescription

Примеры использования

<?
class CIBlockPropertyMyDateTime
{
    function CheckFields($arProperty, $value)
    {
        $arResult = array();
        if(strlen($value["VALUE"])>0 && !CheckDateTime($value["VALUE"]))
            $arResult[] = GetMessage("IBLOCK_PROP_DATETIME_ERROR");
        return $arResult;
    }
}
?>


ConvertFromDB

Описание и параметры

array
CIBlockProperty*::ConvertFromDB(
 array arProperty,
 array value
);

Метод должен преобразовать значение свойства из формата пригодного для сохранения в базе данных в формат обработки. И вернуть массив вида array("VALUE" => "...", "DESCRIPTION" => "..."). Дополняет ConvertToDB. Метод статический при использовании штатных свойств. У свойств, созданных клиентом, обязан быть статическим при использовании php7.

Примечание: Вызывается в методе CIBlockResult::Fetch. Для корректной работы необходимо в фильтре метода CIBlockElement::GetList указать "IBLOCK_ID".

Параметры вызова

Параметр Описание
arProperty
Метаданные свойства. См. Свойства элементов инфоблока
value Значение свойства прочитанное из базы данных. Массив вида:
array(
"VALUE" => значение,
"DESCRIPTION" => описание,
);

Возвращаемое значение

Внешнее представление значения свойства.

Смотрите также

  • Свойства элементов инфоблока
  • GetUserTypeDescription
  • ConvertToDB

Примеры использования

<?
class CIBlockPropertyMyDateTime
{
    function ConvertFromDB($arProperty, $value)
    {
        if(strlen($value["VALUE"])>0)
        {
            $value["VALUE"] = CDatabase::FormatDate(
                $value["VALUE"],
                "YYYY-MM-DD HH:MI:SS",
                CLang::GetDateFormat("FULL")
            );
            //Удалим незначимые нули
            $value["VALUE"] = str_replace(" 00:00:00", "", $value["VALUE"]);
        }
        return $value;
    }
}
?>


ConvertToDB

Описание и параметры

array
CIBlockProperty*::ConvertToDB(
 array arProperty,
 array value
);

Метод должен преобразовать значение свойства в формат пригодный для сохранения в базе данных. И вернуть массив вида array("VALUE" => "...", "DESCRIPTION" => "..."). Если значение свойства это массив, то разумным будет использование функции serialize. А вот Дата/время преобразуется в ODBC формат "YYYY-MM-DD HH:MI:SS". Это определит возможности сортировки и фильтрации по значениям данного свойства. Метод статический при использовании штатных свойств. У свойств, созданных клиентом, обязан быть статическим при использовании php7.

Примечание: вызывается перед сохранением значения свойства в БД.

Параметры вызова

Параметр Описание
arProperty
Метаданные свойства. См. Свойства элементов инфоблока
value Значение свойства. Массив вида:
array(
"VALUE" => значение,
"DESCRIPTION" => описание,
);

Возвращаемое значение

Строка представление для БД.

Смотрите также

  • Свойства элементов инфоблока
  • GetUserTypeDescription

Примеры использования

<?
class CIBlockPropertyMyDateTime
{
    function ConvertToDB($arProperty, $value)
    {
        if(strlen($value["VALUE"])>0)
        {
            $value["VALUE"] = CDatabase::FormatDate(
                $value["VALUE"],
                CLang::GetDateFormat("FULL"), "YYYY-MM-DD HH:MI:SS"
            );
        }
        return $value;
    }
}
?>


GetAdminFilterHTML

Описание и параметры

string
CIBlockProperty*::GetAdminFilterHTML(
 arProperty,
 strHTMLControlName
);

Выводит html для фильтра по свойству на административной странице списка элементов инфоблока. Метод статический при использовании штатных свойств. У свойств, созданных клиентом, обязан быть статическим при использовании php7.

Параметры вызова

Параметр Описание
arProperty
Метаданные свойства. См. Свойства элементов инфоблока
strHTMLControlName Имена элементов управления для заполнения значения свойства и его описания. Массив вида:
array(
    "VALUE" => html //безопасное имя для значения,
    "DESCRIPTION" => html //безопасное имя для описания,
    "MODE" => //может принимать зачение "FORM_FILL" при вызове из формы редактирования элемента
              //или "iblock_element_admin" при редактировании в режиме просмотра списка элементов,
              //а также "EDIT_FORM" при редактировании инфоблока.
    "FORM_NAME" => //имя формы в которую будет встроен элемент управления.
    );

Возвращаемое значение

Возвращаемое значение - html-код.

Примеры использования

Для типа Дата/Время:

function GetAdminFilterHTML($arProperty, $strHTMLControlName)
   {
      $from_name = $strHTMLControlName["VALUE"].'_from';
      $to_name = $strHTMLControlName["VALUE"].'_to';

      $lAdmin = new CAdminList($strHTMLControlName["TABLE_ID"]);
      $lAdmin->InitFilter(array(
         $from_name,
         $to_name,
      ));

      $from = isset($GLOBALS[$from_name])? $GLOBALS[$from_name]: "";
      $to = isset($GLOBALS[$to_name])? $GLOBALS[$to_name]: "";

      return  CAdminCalendar::CalendarPeriod($from_name, $to_name, $from, $to);
   }


GetAdminListViewHTML

Описание и параметры

string
CIBlockProperty*::GetAdminListViewHTML(
 array arProperty,
 array value,
 array strHTMLControlName
);

Метод должен вернуть безопасный HTML отображения значения свойства в списке элементов административной части. Метод статический при использовании штатных свойств. У свойств, созданных клиентом, обязан быть статическим при использовании php7.

Примечание: вызывается во время построения списка элементов.

Параметры вызова

Параметр Описание
arProperty
Метаданные свойства. См. Свойства элементов инфоблока
value Значение свойства. Массив вида:
array(
"VALUE" => значение,
"DESCRIPTION" => описание,
);
strHTMLControlName Имена элементов управления для заполнения значения свойства и его описания. Массив вида:
array(
"VALUE" => html безопасное имя для значения,
"DESCRIPTION" => html безопасное имя для описания,
"MODE" => может принимать зачение "FORM_FILL" при вызове из формы редактирования элемента или "iblock_element_admin" при редактировании в режиме просмотра списка элементов, а также "EDIT_FORM" при редактировании инфоблока.
"FORM_NAME" => имя формы в которую будет встроен элемент управления.
);

Возвращаемое значение

Строка.

Смотрите также

  • Свойства элементов инфоблока
  • GetUserTypeDescription

Примеры использования

<?
class CIBlockPropertyMyDateTime
{
    function GetAdminListViewHTML($arProperty, $value, $strHTMLControlName)
    {
        if(strlen($value["VALUE"])>0)
            return str_replace(" ", "&nbsp;", htmlspecialcharsex($value["VALUE"]));
        else
            return '&nbsp;';
    }
}
?>


GetLength

Описание и параметры

int
CIBlockProperty*::GetLength(
 array arProperty,
 array value
);

Метод должен вернуть фактическую длину значения свойства. Этот метод нужен только для свойств значения которых представляют собой сложные структуры (например массив). Метод статический при использовании штатных свойств. У свойств, созданных клиентом, обязан быть статическим при использовании php7.

Примечание: вызывается при проверке обязательности заполнения значения свойства перед добавлением или изменением элемента, если свойство помечено как обязательное.

Параметры вызова

Параметр Описание
arProperty
Метаданные свойства. См. Свойства элементов инфоблока
value Значение свойства. Массив вида:
array(
"VALUE" => значение,
"DESCRIPTION" => описание,
);

Возвращаемое значение

Целое число.

Смотрите также

  • Свойства элементов инфоблока
  • GetUserTypeDescription

Примеры использования

<?
class CIBlockPropertyMyDateTime
{
    //Проверка без учета пробельных символов
    function GetLength($arProperty, $value)
    {
        return strlen(trim($value["VALUE"], "\n\r\t "));
    }
}
?>


GetPropertyFieldHtml

Описание и параметры

string
CIBlockProperty*::GetPropertyFieldHtml(
 array arProperty,
 array value,
 array strHTMLControlName
);

Метод должен вернуть HTML отображения элемента управления для редактирования значений свойства в административной части. Метод статический при использовании штатных свойств. У свойств, созданных клиентом, обязан быть статическим при использовании php7.

Примечание: вызывается во время построения формы редактирования элемента.

Параметры вызова

Параметр Описание
arProperty
Метаданные свойства. См. Свойства элементов инфоблока
value Значение свойства. Массив вида:
array(
"VALUE" => значение,
"DESCRIPTION" => описание,
);
strHTMLControlName Имена элементов управления для заполнения значения свойства и его описания. Массив вида:
array(
"VALUE" => html безопасное имя для значения,
"DESCRIPTION" => html безопасное имя для описания,
"MODE" => может принимать зачение "FORM_FILL" при вызове из формы редактирования элемента или "iblock_element_admin" при редактировании в режиме просмотра списка элементов, а также "EDIT_FORM" при редактировании инфоблока.
"FORM_NAME" => имя формы в которую будет встроен элемент управления.
);

Возвращаемое значение

Строка.

Смотрите также

  • Свойства элементов инфоблока
  • GetUserTypeDescription

Примеры использования

<?
class CIBlockPropertyMyDateTime
{
    function GetPropertyFieldHtml($arProperty, $value, $strHTMLControlName)
    {
        return  CAdminCalendar::CalendarDate($strHTMLControlName["VALUE"], $value["VALUE"], 20).
            ($arProperty["WITH_DESCRIPTION"]=="Y"?
                '&nbsp;<input type="text" size="20" name="'.$strHTMLControlName["DESCRIPTION"].'" value="'.htmlspecialchars($value["DESCRIPTION"]).'">'
                :''
            );
    }
}
?>


GetPropertyFieldHtmlMulty

string
CIBlockProperty*::GetPropertyFieldHtmlMulty(
 arProperty,
 arValues,
 strHTMLControlName
);

Вывод формы редактирования множественного свойства. Если отсутствует, то используется GetPropertyFieldHtml для каждого значения отдельно (у множественных свойств). Метод статический при использовании штатных свойств. У свойств, созданных клиентом, обязан быть статическим при использовании php7.

Параметры вызова

Параметр Описание
arProperty
Метаданные свойства. См. Свойства элементов инфоблока
value Значение свойства. Массив вида:
array(
       "VALUE" => значение,
       "DESCRIPTION" => описание,
     );
strHTMLControlName Имена элементов управления для заполнения значения свойства и его описания. Массив вида:
  array(
       "VALUE" => html //безопасное имя для значения,
       "DESCRIPTION" => //html безопасное имя для описания,
       "MODE" => //может принимать зачение "FORM_FILL" при вызове из формы редактирования элемента
                //или "iblock_element_admin" при редактировании в режиме просмотра списка элементов,
                //а также "EDIT_FORM" при редактировании инфоблока.
       "FORM_NAME" => //имя формы в которую будет встроен элемент управления.
       );

Возвращаемое значение

Возвращаемое значение - html-код.


GetPublicEditHTML

Описание и параметры

string
CIBlockProperty*::GetPublicEditHTML(
 array arProperty,
 array value,
 array strHTMLControlName
);

Метод должен вернуть HTML отображения элемента управления для редактирования значений свойства в публичной части сайта. Метод статический при использовании штатных свойств. У свойств, созданных клиентом, обязан быть статическим при использовании php7.

Параметры вызова

Параметр Описание
arProperty
Метаданные свойства. См. Свойства элементов инфоблока
value Значение свойства. Массив вида:
array(
"VALUE" => значение,
"DESCRIPTION" => описание,
);
strHTMLControlName Имена элементов управления для заполнения значения свойства и его описания. Массив вида:
array(
"VALUE" => html безопасное имя для значения,
"DESCRIPTION" => html безопасное имя для описания,
"FORM_NAME" => имя формы в которую будет встроен элемент управления.
);

Возвращаемое значение

Строка.

Смотрите также

  • Свойства элементов инфоблока
  • GetUserTypeDescription

Примеры использования

<?
class CIBlockPropertyMyDateTime
{
    //Показываем компонент календаря.
    function GetPublicEditHTML($arProperty, $value, $strHTMLControlName)
    {
        $s = '<input type="text" name="'.htmlspecialchars($strHTMLControlName["VALUE"]).'" size="25" value="'.htmlspecialchars($value["VALUE"]).'" />';
        ob_start();
        $GLOBALS["APPLICATION"]->IncludeComponent(
            'bitrix:main.calendar',
            '',
            array(
                'FORM_NAME' => $strHTMLControlName["FORM_NAME"],
                'INPUT_NAME' => $strHTMLControlName["VALUE"],
                'INPUT_VALUE' => $value["VALUE"],
            ),
            null,
            array('HIDE_ICONS' => 'Y')
        );
        $s .= ob_get_contents();
        ob_end_clean();
        return  $s;
    }
}
?>


GetPublicEditHTMLMulty

Описание и параметры

string
CIBlockProperty*::GetPublicEditHTMLMulty(
 array arProperty,
 array value,
 array strHTMLControlName
);

Аналог GetPublicEditHTML, но работает с множественными свойствами. Метод должен вернуть HTML отображения элемента управления для редактирования значений свойства в публичной части сайта. Метод статический при использовании штатных свойств. У свойств, созданных клиентом, обязан быть статическим при использовании php7.

Параметры вызова

Параметр Описание
arProperty
Метаданные свойства. См. Свойства элементов инфоблока
value Значение свойства. Массив вида:
array(
"VALUE" => значение,
"DESCRIPTION" => описание,
);
strHTMLControlName Имена элементов управления для заполнения значения свойства и его описания. Массив вида:
array(
"VALUE" => html безопасное имя для значения,
"DESCRIPTION" => html безопасное имя для описания,
"FORM_NAME" => имя формы в которую будет встроен элемент управления.
);

Возвращаемое значение

Строка.

Смотрите также

  • Свойства элементов инфоблока
  • GetUserTypeDescription


GetPublicFilterHTML

Описание и параметры

string
CIBlockProperty*::GetPublicFilterHTML(
 arProperty,
 strHTMLControlName
);

Выводит html для фильтра по свойству на публичной странице списка элементов инфоблока. Метод статический.

Параметры вызова

Параметр Описание
arProperty
Метаданные свойства. См. Свойства элементов инфоблока
strHTMLControlName Имена элементов управления для заполнения значения свойства и его описания. Массив вида:
array(
    "VALUE" => html //безопасное имя для значения,
    "DESCRIPTION" => html //безопасное имя для описания,
    "MODE" => //может принимать значение "FORM_FILL" при вызове из формы редактирования элемента
              //или "iblock_element_admin" при редактировании в режиме просмотра списка элементов,
              //а также "EDIT_FORM" при редактировании инфоблока.
    "FORM_NAME" => //имя формы в которую будет встроен элемент управления.
    );

Возвращаемое значение

Возвращаемое значение - html-код.

Примеры использования

function GetPublicFilterHTML($arProperty, $strHTMLControlName)
   {
      $from_name = $strHTMLControlName["VALUE"].'_from';
      $to_name = $strHTMLControlName["VALUE"].'_to';
      $from = isset($_REQUEST[$from_name])? $_REQUEST[$from_name]: "";
      $to = isset($_REQUEST[$to_name])? $_REQUEST[$to_name]: "";

      return '
         <input name="'.htmlspecialcharsbx($from_name).'" value="'.htmlspecialcharsbx($from).'" size="8" type="text"> ...
         <input name="'.htmlspecialcharsbx($to_name).'" value="'.htmlspecialcharsbx($to).'" size="8" type="text">
      ';
   }


GetPublicViewHTML

Описание и параметры

string
CIBlockProperty*::GetPublicViewHTML(
 array arProperty,
 array value,
 array strHTMLControlName
);

Метод должна вернуть безопасный HTML отображения значения свойства в публичной части сайта. Если она вернет пустое значение, то значение отображаться не будет. Метод статический при использовании штатных свойств. У свойств, созданных клиентом, обязан быть статическим при использовании php7.

Примечание: вызывается из метода CIBlockFormatProperties::GetDisplayValue, которая используется компонентами модуля информационных блоков для форматирования значений свойств.

Параметры вызова

Параметр | Описание
arProperty | Метаданные свойства. См. Свойства элементов инфоблока
value | Значение свойства. Массив вида: array( "VALUE" => значение, );
strHTMLControlName | Пустой массив.

Возвращаемое значение

Строка.

Смотрите также

  • Свойства элементов инфоблока
  • GetUserTypeDescription

Примеры использования

<?
class CIBlockPropertyMyDateTime
{
    function GetPublicViewHTML($arProperty, $value, $strHTMLControlName)
    {
        if(strlen($value["VALUE"])>0)
            return str_replace(" ", "&nbsp;", htmlspecialcharsex($value["VALUE"]));
        else
            return '';
    }
}
?>


GetSearchContent

Описание и параметры

string
CIBlockProperty*::GetSearchContent(
 array arProperty,
 array value,
 array strHTMLControlName
);

Метод должна вернуть представление значения свойства для модуля поиска. Метод статический при использовании штатных свойств. У свойств, созданных клиентом, обязан быть статическим при использовании php7.

Примечание: вызывается при индексации элементов инфоблока модулем поиска. Если для свойства не определен этот метод, но есть метод GetPublicViewHTML, то будет вызван он. После удаления разметки HTML в поисковый индекс будет занесен его результат.

Параметры вызова

Параметр | Описание
arProperty | Метаданные свойства. См. Свойства элементов инфоблока
value | Значение свойства. Массив вида: array( "VALUE" => значение, );
strHTMLControlName | Пустой массив.

Возвращаемое значение

Строка.

Смотрите также

  • Свойства элементов инфоблока
  • GetUserTypeDescription

Примеры использования

<?
class CIBlockPropertyMyDateTime
{
    function GetSearchContent($arProperty, $value, $strHTMLControlName)
    {
        if(strlen($value["VALUE"])>0)
            return $value["VALUE"];
        else
            return '';
    }
}
?>


GetSettingsHTML

Описание и параметры

string
CIBlockProperty*::GetSettingsHTML(
 array arProperty,
 array strHTMLControlName,
 array &arPropertyFields
);

Метод возвращает безопасный HTML отображения настроек свойства для формы редактирования инфоблока. Метод статический при использовании штатных свойств. У свойств, созданных клиентом, обязан быть статическим при использовании php7.

Примечание: вызывается при построении формы редактирования инфоблока.

Параметры вызова

Параметр | Описание
arProperty | Метаданные свойства. См. Свойства элементов инфоблока
strHTMLControlName | Имя элемента управления для заполнения настроек свойства. Массив вида: array( "NAME" => html безопасное имя для настроек, );
arPropertyFields | Пустой массив.

Возвращаемое значение

HTML для встраивания в форму редактирования инфоблока.

В параметре arPropertyFields можно вернуть дополнительные флаги управления формой:
  • HIDE - массив названий полей свойства которые будут скрыты для редактирования. Возможные значения: MULTIPLE, SEARCHABLE, FILTRABLE, WITH_DESCRIPTION, MULTIPLE_CNT, ROW_COUNT, COL_COUNT и DEFAULT_VALUE.
  • SHOW - массив полей которые должны быть показаны даже если базовое свойство их не поддерживает. Возможные значения: MULTIPLE, SEARCHABLE, FILTRABLE, WITH_DESCRIPTION, MULTIPLE_CNT, ROW_COUNT и COL_COUNT.
  • SET - ассоциативный массив полей для принудительного выставления значений в случае если они не отображаются в форме. Возможные значения: MULTIPLE, SEARCHABLE, FILTRABLE, WITH_DESCRIPTION, MULTIPLE_CNT, ROW_COUNT и COL_COUNT.
  • USER_TYPE_SETTINGS_TITLE - строка для отображения в качестве заголовка секции настроек.

Смотрите также

  • Свойства элементов инфоблока
  • GetUserTypeDescription

Примеры использования

<?
class CIBlockPropertyMyDateTime
{
    function GetSettingsHTML($arProperty, $strHTMLControlName, &$arPropertyFields)
    {
        $arPropertyFields = array(
            "HIDE" => array("FILTRABLE", "ROW_COUNT", "COL_COUNT", "DEFAULT_VALUE"), //will hide the field
            "SET" => array("FILTRABLE" => "N"), //if set then hidden field will get this value
            "USER_TYPE_SETTINGS_TITLE" => "Настройки даты/времени"
        );

        return '<tr>
        <td>Длина поля ввода:</td>
        <td><input type="text" size="5" name="'.$strHTMLControlName["NAME"].'[WIDTH]"></td>
        </tr>';
    }
}
?>


GetUIFilterProperty

result_type
public static function GetUIFilterProperty(
   $property,
   $strHTMLControlName,
   &$fields
);

Метод описывает вид поля фильтрации в компоненте [dw]main.ui.filter[/dw][di]Компонент системный и не документируется.
В административном разделе отвечает за вывод фильтра в новом гриде.
[/di] на административных страницах Инфоблоков.

Параметры функции

Параметр | Описание
strHTMLControlName | Массив, описывающий свойство данного типа.
property | Массив данных по форме.
$fields | Массив, описание поля для фильтра. Передаётся по ссылке.

Примеры использования

Пример описания выпадающего списка

{
   // значения выпадающего списка
   $items = [
       'ИД_1' => 'значение_1',
       ...
       'ИД_N' => 'значение_N',
   ];
   //ИД могут быть как целыми числами, так и строками

   $fields['type'] = 'list';
   $fields['items'] = $items;
   $fields['filterable'] = '';
   // если нужен множественный выбор, добавить еще строчку
   $fields['params'] = ['multiple' => 'Y'];
}


GetUserTypeDescription

Описание

array
CIBlockProperty*::GetUserTypeDescription(
);

Метод возвращает массив описывающий поведение пользовательского свойства. Вызывается по событию OnIBlockPropertyBuildList. Метод статический при использовании штатных свойств. У свойств, созданных клиентом, обязан быть статическим при использовании php7.

Параметры вызова

Отсутствуют.

Возвращаемое значение

Массив.

Структура массива

Поле | Описание
PROPERTY_TYPE
Обязательное. Указывает модулю какое свойство будет базовым для хранения значений пользовательского свойства, а также для фильтрации и некоторых других действий. Возможные значения:
  • S - строка
  • N - число с плавающей точкой
  • L - список значений
  • F - файл
  • G - привязка к разделам
  • E - привязка к элементам
USER_TYPE | Обязательное. Уникальный идентификатор пользовательского свойства.
DESCRIPTION | Обязательное. Краткое описание. Будет выведено в списке выбора типа свойства при редактировании информационного блока.
CheckFields | Не обязательное. Значением этого поля должен быть массив из двух элементов. В первом должно быть название класса, а во втором название метода который будет вызван при наступлении соответствующего события.
GetUIFilterProperty | Аналогично. С версии 18.5.0.
GetLength | Аналогично.
ConvertToDB | Аналогично.
ConvertFromDB | Аналогично.
GetPropertyFieldHtml | Аналогично.
GetPropertyFieldHtmlMulty | Необязательный обработчик. Является аналогом GetPropertyFieldHtml за исключением того, что в value приходят несколько значений..
GetAdminListViewHTML | Аналогично.
GetPublicViewHTML | Аналогично.
GetPublicEditHTML | Аналогично.
GetSettingsHTML | Аналогично.
PrepareSettings | Аналогично.

Смотрите также

  • OnIBlockPropertyBuildList

Примеры использования

<?
class CIBlockPropertyMyDateTime
{
    public static function GetUserTypeDescription()
    {
        return array(
            "PROPERTY_TYPE"		=>"S",
            "USER_TYPE"		=>"MyDateTime",
            "DESCRIPTION"		=>"Дата/Время",
            //optional handlers
            "CheckFields"		=>array("CIBlockPropertyMyDateTime","CheckFields"),
            "GetLength"		=>array("CIBlockPropertyMyDateTime","GetLength"),
            "ConvertToDB"		=>array("CIBlockPropertyMyDateTime","ConvertToDB"),
            "ConvertFromDB"		=>array("CIBlockPropertyMyDateTime","ConvertFromDB"),
            "GetPropertyFieldHtml"	=>array("CIBlockPropertyMyDateTime","GetPropertyFieldHtml"),
            "GetAdminListViewHTML"	=>array("CIBlockPropertyMyDateTime","GetAdminListViewHTML"),
            "GetPublicViewHTML"	=>array("CIBlockPropertyMyDateTime","GetPublicViewHTML"),
            "GetPublicEditHTML"	=>array("CIBlockPropertyMyDateTime","GetPublicEditHTML"),
        );
    }
}
?>


PrepareSettings

Описание и параметры

string
CIBlockProperty*::PrepareSettings(
 array arFields
);

Метод возвращает либо массив с дополнительными настройками свойства, либо весь набор настроек, включая стандартные. Метод статический при использовании штатных свойств. У свойств, созданных клиентом, обязан быть статическим при использовании php7.

Примечание №1: до версии модуля Информационные блоки 12.5.7 метод возвращает только массив с дополнительными настройками свойства.

Примечание №2: вызывается перед сохранением метаданных свойства в базу данных.

Параметры вызова

Параметр | Описание
arFields | Значения полей метаданных свойства. См. Свойства элементов инфоблока

Возвращаемое значение

Строка или массив. Если метод возвращает весь набор настроек, то в этом случае дополнительные настройки передаются в ключе USER_TYPE_SETTINGS в виде массива.

Смотрите также

  • Свойства элементов инфоблока
  • GetUserTypeDescription

Примеры использования

<?
class CIBlockPropertyMyDateTime
{
    function PrepareSettings($arFields)
    {
        $width = intval($arFields["USER_TYPE_SETTINGS"]["WIDTH"]);
        if($width <= 0)
            $width = 10;
        return array("WIDTH" => $width);
    }
}
?>


Методы для проверки и генерации символьных кодов

Перечень методов, их параметры вызова и тип возвращаемого результата идентичны для классов CIBlockElement и CIBlockSection.

Методы работают, только если в настройках инфоблока включена опция Транслитерировать из названия при добавлении элемента для поля Символьный код (класс CIBlockElement) и Транслитерировать из названия при добавлении раздела для поля Символьный код раздела (класс CIBlockSection)

Параметры транслитерации берутся из настроек инфоблока, но могут быть переопределены в момент использования. Исключение - опция Использовать внешний сервис для перевода. В этом случае методы не работают, возвращают null.

Язык, с которого осуществляется транслитерация, выбирается из настроек сайта, к которому привязан инфоблок. Может быть переопределен в момент использования. Если сайты, к которым привязан инфоблок, имеют различные языки, то язык транслитерации ОБЯЗАТЕЛЬНО необходимо указать при вызове методов.

Метод | Описание | С версии
[link=][/link] |  |
[link=][/link] |  |
[link=][/link] |  |
[link=][/link] |  |
[link=][/link] |  |
[link=][/link] |  |
[link=][/link] |  |
[link=][/link] |  |
[link=][/link] |  |
[link=][/link] |  |
[link=][/link] |  |
[link=][/link] |  |


_CIBElement

_CIBElement - вспомогательный класс для работы с объектами, которые возвращает CIBlockResult::GetNextElement. Для получения различных характеристик элемента рекомендуется использовать именно этот класс, т.к. использование методов этого объекта позволяет более гибко и эффективно работать с элементами информационных блоков.

Методы класса

Метод | Описание | С версии
GetFields | Возвращает массив полей элемента, с замененными ссылками в полях DETAIL_PAGE_URL и LIST_PAGE_URL. | 3.1.3
GetProperties | Возвращает все или некоторые значения свойств элемента. | 3.1.3
GetProperty | Возвращает значения свойства элемента. | 3.1.3
GetGroups | Возвращает группы, к которым привязан элемент. | 3.1.3


GetFields

array
_CIBElement::GetFields();

Возвращает массив значений полей приведенный в HTML безопасный вид. Также в полях DETAIL_PAGE_URL и LIST_PAGE_URL заменяются шаблоны вида #IBLOCK_ID# и т.п. на их реальные значения, в результате чего в этих полях будут ссылки на страницу детального просмотра и страницу списка элементов. Нестатический метод.

Возвращаемое значение

Метод возвращает массив с полями элемента информационного блока вида Array("поле"=>"преобразованное значение" [, ...]).

Смотрите также

  • CIBlockResult::GetNext()
  • Поля элемента информационного блока
  • CIBlockElement::GetList()

Примеры использования

<?
$res = CIBlockElement::GetByID($_GET["PID"]);
if($obRes = $res->GetNextElement())
{
  $ar_res = $obRes->GetFields();
  echo '<a href="'.$ar_res['detail_page_url'].'">'.$ar_res['name'].'</a>';
}
?>


GetGroups

CDBResult
_CIBElement::GetGroups();

Возвращает группы, которым принадлежит текущий элемент и значения свойств типа "привязка к разделам" заданные для данного элемента. Нестатический метод.

Возвращаемое значение

Возвращается объект CDBResult с полями разделов.

Смотрите также

  • CDBResult
  • CIBlockElement::GetElementGroups

Примеры использования

<?
$res = CIBlockElement::GetByID($_GET["PID"]);
if($obRes = $res->GetNextElement())
{
  $ar_res = $obRes->GetGroups();
  print_r($ar_res);
}
?>


GetProperties

Описание

array
_CIBElement::GetProperties(
   arOrder = false,
   arFilter = Array() );

Метод возвращает значения свойств текущего элемента информационного блока. Нестатический метод.

Примечание: данный метод не работает, если в CIBlockElement::GetList в arSelectFields не указаны ID и IBLOCK_ID, а в arFilter не задан IBLOCK_ID. Должно быть, например, так:
$dbEl = CIBlockElement::GetList(
        Array(),
        Array("IBLOCK_TYPE"=>"catalog", "IBLOCK_ID"=>11),
        false,
        false,
        array("ID" , "IBLOCK_ID", ......)
);

Смотрите также

  • _CIBElement::GetProperties()
  • CIBlockElement::GetProperty()

Параметры вызова

Параметр Описание
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где by - поле для сортировки, может принимать значения:
  • id - код свойства;
  • sort - индекс сортировки;
  • name - имя свойства;
  • active - активность свойства;
  • value_id - код значения свойства;
  • enum_sort - индекс сортировки варианта списочного свойства;
order - порядок сортировки, может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
arFilter Массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения:
NAME - название свойства;
ID - код свойства;
ACTIVE - активность свойства (Y|N), по умолчанию выводятся только активные свойства, если необходимо вывести все значения, то установите ACTIVE в пустое значение;
SEARCHABLE - участвует в поиске или нет (Y|N);
PROPERTY_TYPE - тип свойства;
CODE - символьный код свойства;
EMPTY - пустота значения свойства (Y|N). По умолчанию выводятся все свойства и имеющие непустые значения и без значений.
Не обязательный параметр, по умолчанию равен array().

Возвращаемое значение

Метод возвращает массив значений свойств, где:
  • в качестве индексов массива "Символьный код свойства" (задается в настройках информационного блока) или, если символьный код свойства не указан, то уникальный числовой ID свойства.
  • значением массива будет массив полей свойства и дополнительно поля со значениями свойства:
    VALUE - значение свойства или массив значений свойств, если свойство множественное,
    VALUE_ENUM_ID - код варианта значения для свойства типа "Список" (массив или единичное значение),
    VALUE_XML_ID - внешний код варианта значения для свойства типа "Список" (массив или единичное значение),
    DESCRIPTION - описание значения свойства (массив или единичное значение),
    PROPERTY_VALUE_ID - код значения свойства (массив или единичное значение)

Примеры использования

<?
include($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php');
if(CModule::IncludeModule('iblock'))
{
    $dbEl = CIBlockElement::GetList(Array(), Array("IBLOCK_TYPE"=>"catalog", "IBLOCK_ID"=>11));
    if($obEl = $dbEl->GetNextElement())
    {
        $props = $obEl->GetProperties();
        echo "<pre>";
        print_r($props);
        echo "</pre>";
    }
}
?>
<?include($_SERVER['DOCUMENT_ROOT'].'/bitrix/footer.php');?>
Вывод примера:

Array
(
    [27] => Array
        (
            [ID] => 27
            [TIMESTAMP_X] => 20041222191551
            [IBLOCK_ID] => 11
            [NAME] => Battery
            [ACTIVE] => Y
            [SORT] => 500
            [CODE] =>
            [DEFAULT_VALUE] =>
            [PROPERTY_TYPE] => L
            [ROW_COUNT] => 1
            [COL_COUNT] => 30
            [LIST_TYPE] => L
            [MULTIPLE] => Y
            [XML_ID] =>
            [FILE_TYPE] =>
            [MULTIPLE_CNT] => 5
            [TMP_ID] =>
            [WITH_DESCRIPTION] =>
            [LINK_IBLOCK_ID] => 0
            [VALUE_TYPE] => text
            [VALUE_ENUM] => Li-Mon
            [VALUE] => Array
                (
                    [0] => Li-Test
                    [1] => Li-NEW
                    [2] => Li-Mon
                )

            [~VALUE] => Array
                (
                    [0] => Li-Test
                    [1] => Li-NEW
                    [2] => Li-Mon
                )

            [DESCRIPTION] => Array
                (
                    [0] =>
                    [1] =>
                    [2] =>
                )

            [~DESCRIPTION] => Array
                (
                    [0] =>
                    [1] =>
                    [2] =>
                )

            [PROPERTY_VALUE_ID] => Array
                (
                    [0] => 53860
                    [1] => 53861
                    [2] => 53862
                )

            [VALUE_ENUM_ID] => Array
                (
                    [0] => 18
                    [1] => 19
                    [2] => 20
                )

            [~NAME] => Battery
            [~DEFAULT_VALUE] =>
        )

    [28] => Array
        (
            [ID] => 28
            [TIMESTAMP_X] => 20041222191551
            [IBLOCK_ID] => 11
            [NAME] => Screen
            [ACTIVE] => Y
            [SORT] => 500
            [CODE] =>
            [DEFAULT_VALUE] =>
            [PROPERTY_TYPE] => S
            [ROW_COUNT] => 1
            [COL_COUNT] => 30
            [LIST_TYPE] => L
            [MULTIPLE] => Y
            [XML_ID] =>
            [FILE_TYPE] =>
            [MULTIPLE_CNT] => 5
            [TMP_ID] =>
            [WITH_DESCRIPTION] =>
            [LINK_IBLOCK_ID] => 0
            [VALUE_TYPE] =>
            [VALUE_ENUM] =>
            [VALUE] => Color
            [~VALUE] => Color
            [DESCRIPTION] =>
            [~DESCRIPTION] =>
            [PROPERTY_VALUE_ID] => 32862
            [~NAME] => Screen
            [~DEFAULT_VALUE] =>
        )

    [29] => Array
        (
            [ID] => 29
            [TIMESTAMP_X] => 20041222191551
            [IBLOCK_ID] => 11
            [NAME] => PropertyX
            [ACTIVE] => Y
            [SORT] => 500
            [CODE] =>
            [DEFAULT_VALUE] =>
            [PROPERTY_TYPE] => N
            [ROW_COUNT] => 1
            [COL_COUNT] => 30
            [LIST_TYPE] => L
            [MULTIPLE] => Y
            [XML_ID] =>
            [FILE_TYPE] =>
            [MULTIPLE_CNT] => 5
            [TMP_ID] =>
            [WITH_DESCRIPTION] =>
            [LINK_IBLOCK_ID] => 0
            [VALUE_TYPE] =>
            [VALUE_ENUM] =>
            [VALUE] =>
            [~VALUE] =>
            [DESCRIPTION] =>
            [~DESCRIPTION] =>
            [PROPERTY_VALUE_ID] =>
            [~NAME] => PropertyX
            [~DEFAULT_VALUE] =>
        )
    [FORUM_TOPIC_ID] => Array
        (
            [ID] => 383
            [TIMESTAMP_X] => 20041223132810
            [IBLOCK_ID] => 11
            [NAME] => FORUM_TOPIC_ID
            [ACTIVE] => Y
            [SORT] => 500
            [CODE] => FORUM_TOPIC_ID
            [DEFAULT_VALUE] =>
            [PROPERTY_TYPE] => N
            [ROW_COUNT] => 1
            [COL_COUNT] => 30
            [LIST_TYPE] => L
            [MULTIPLE] => N
            [XML_ID] =>
            [FILE_TYPE] =>
            [MULTIPLE_CNT] => 5
            [TMP_ID] =>
            [WITH_DESCRIPTION] =>
            [LINK_IBLOCK_ID] => 0
            [VALUE_TYPE] =>
            [VALUE_ENUM] =>
            [VALUE] =>
            [~VALUE] =>
            [DESCRIPTION] =>
            [~DESCRIPTION] =>
            [PROPERTY_VALUE_ID] =>
            [~NAME] => FORUM_TOPIC_ID
            [~DEFAULT_VALUE] =>
        )
    [386] => Array
        (
            [ID] => 386
            [TIMESTAMP_X] => 20050119162457
            [IBLOCK_ID] => 11
            [NAME] => Photo
            [ACTIVE] => Y
            [SORT] => 500
            [CODE] =>
            [DEFAULT_VALUE] =>
            [PROPERTY_TYPE] => F
            [ROW_COUNT] => 1
            [COL_COUNT] => 30
            [LIST_TYPE] => L
            [MULTIPLE] => N
            [XML_ID] =>
            [FILE_TYPE] =>
            [MULTIPLE_CNT] => 5
            [TMP_ID] =>
            [WITH_DESCRIPTION] => Y
            [LINK_IBLOCK_ID] => 0
            [VALUE_TYPE] => text
            [VALUE_ENUM] =>
            [VALUE] => 2309
            [~VALUE] => 2309
            [DESCRIPTION] => HP
            [~DESCRIPTION] => HP
            [PROPERTY_VALUE_ID] => 53863
            [~NAME] => Photo
            [~DEFAULT_VALUE] =>
        )
)


GetProperty

Описание и параметры

array
_CIBElement::GetProperty(
   mixed ID
);

Метод возвращает параметры свойства ID и его значения для текущего элемента информационного блока. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Числовой или символьный код свойства.

Возвращаемое значение

Метод возвращает массив полей свойства и дополнительно поля со значениями свойства:
VALUE => значение свойства или массив значений свойств, если свойство множественное,
VALUE_ENUM_ID => код варианта значения для свойства типа "Список" (массив или единичное значение),
DESCRIPTION => описание значения свойства (массив или единичное значение),
PROPERTY_VALUE_ID => код значения свойства (массив или единичное значение).

Примечание: если GetProperty применяется к результату работы CIBlockElement::GetList, то в arSelectFields необходимо обязательно указать IBLOCK_ID, иначе результат будет пустым.

Смотрите также

  • CIBlockElement::GetProperty()
  • _CIBElement::GetProperties()

Примеры использования

<?
$res = CIBlockElement::GetByID($_GET["PID"]);
if($obRes = $res->GetNextElement())
{
  $ar_res = $obRes->GetProperty("PHOTOS");
  print_r($ar_res);
}
?>
Вывод примера:

Array
(
    [ID] => 388
    [TIMESTAMP_X] => 20050119162457
    [IBLOCK_ID] => 11
    [NAME] => Photos with description
    [ACTIVE] => Y
    [SORT] => 500
    [CODE] =>
    [DEFAULT_VALUE] =>
    [PROPERTY_TYPE] => F
    [ROW_COUNT] => 1
    [COL_COUNT] => 30
    [LIST_TYPE] => L
    [MULTIPLE] => Y
    [XML_ID] =>
    [FILE_TYPE] =>
    [MULTIPLE_CNT] => 5
    [TMP_ID] =>
    [WITH_DESCRIPTION] => Y
    [LINK_IBLOCK_ID] => 0
    [VALUE_TYPE] => text
    [VALUE_ENUM] =>
    [VALUE] => Array
        (
            [0] => 2311
        )

    [~VALUE] => Array
        (
            [0] => 2311
        )

    [DESCRIPTION] => Array
        (
            [0] => Descr
        )

    [~DESCRIPTION] => Array
        (
            [0] => Descr
        )

    [PROPERTY_VALUE_ID] => Array
        (
            [0] => 53865
        )

    [~NAME] => Photos with description
    [~DEFAULT_VALUE] =>
)


События

Внимание! Если инфоблок участвует в документообороте, то событие будет вызываться дважды, на элемент и его копию. Чтобы избежать повторного вызова рекомендуется уже в событии проверять элемент и дальше либо обрабатывать его, либо нет. Проверять можно по полю WF_PARENT_ELEMENT_ID.

В некоторых случаях (например, в событии OnAfterIBlockElementAdd) использовать это поле напрямую нельзя: поле элемента WF_PARENT_ELEMENT_ID в обоих вызовах заполнено и равно одному и тому же ID. В этом случае необходимо сравнить WF_PARENT_ELEMENT_ID с ID элемента и если они совпадают, то это и есть искомый элемент из двух.

Событие | Вызывается | Метод | С версии
OnBeforeIBlockAdd | перед добавлением информационного блока. | CIBlock::CheckFields | 4.0.6
OnAfterIBlockAdd | после добавления информационного блока. | Add | 4.0.6
OnBeforeIBlockUpdate | перед изменением информационного блока. | CIBlock::CheckFields | 4.0.6
OnAfterIBlockUpdate | после изменения информационного блока. | Update | 4.0.6
OnBeforeIBlockDelete | перед удалением информационного блока. | Delete | 3.3.8
OnIBlockDelete | при удалении информационного блока. | Delete | 3.2.1
OnBeforeIBlockPropertyAdd | перед добавлением свойства. | CIBlockProperty::CheckFields | 4.0.6
OnAfterIBlockPropertyAdd | после добавления свойства. | Add | 4.0.6
OnBeforeIBlockPropertyUpdate | перед изменением свойства. | CIBlockProperty::CheckFields | 4.0.6
OnIBlockPropertyDelete | при удалении свойства. | Delete | 4.0.6
OnAfterIBlockPropertyUpdate | после изменения свойства. | Update | 4.0.6
OnBeforeIBlockPropertyDelete | перед удалением свойства. | Delete | 4.0.6
OnIBlockPropertyBuildList | при построении списка свойств. | GetUserType | 5.1.0
OnBeforeIBlockSectionAdd | перед добавлением раздела. | CIBlockSection::CheckFields | 4.0.6
OnAfterIBlockSectionAdd | после добавления раздела. | Add | 4.0.6
OnBeforeIBlockSectionUpdate | перед изменением раздела. | CIBlockSection::CheckFields | 4.0.6
OnAfterIBlockSectionUpdate | после изменения раздела. | Update | 4.0.6
OnBeforeIBlockSectionDelete | перед удалением раздела. | Delete | 4.0.6
OnAfterIBlockSectionDelete | после удаления раздела. | Delete | 7.0.3
OnBeforeIBlockElementAdd | перед добавлением элемента. | CIBlockElement::CheckFields | 4.0.6
OnStartIBlockElementAdd | в момент начала добавления элемента. | CIBlockElement::CheckFields | 7.1.8
OnAfterIBlockElementAdd | после добавления элемента. | Add | 4.0.6
OnBeforeIBlockElementUpdate | перед изменением элемента. | CIBlockElement::CheckFields | 4.0.6
OnStartIBlockElementUpdate | в момент начала изменения элемента. | CIBlockElement::CheckFields | 7.1.8
OnAfterIBlockElementUpdate | после изменения элемента. | Update | 4.0.6
OnBeforeIBlockElementDelete | перед удалением элемента. | Delete | 4.0.6
OnAfterIBlockElementDelete | после удаления элемента. | Delete | 5.0.0
OnIBlockElementDelete | при удалении элемента информационного блока. | Delete | 3.1.3
OnBeforeEventLog | перед внесением записи в лог. | Update | 11.0.8
OnSearchGetFileContent | при поиске файла. | CIBlockElement::__GetFileContent | 7.1.1
GetAuditTypesIblock | при возвращении описания журналу событий | CEventIBlock::GetAuditTypes | 11.0.0
OnAdminSubContextMenuShow | аналог OnAdminContextMenuShow для списка SKU | CAdminSubContextMenu::Show | 11.0.12
OnAdminSubListDisplay | аналог [link=265178]OnAdminListDisplay[/link] для списка SKU | CAdminSubList::Display | 10.0.3
OnAfterIBlockElementSetPropertyValues | после сохранения значений всех свойств элемента методом CIBlockElement::SetPropertyValues. | CIBlockElement::SetPropertyValues | 14.5.1
OnAfterIBlockElementSetPropertyValuesEx | после сохранения значений свойств элемента методом CIBlockElement::SetPropertyValuesEx. | CIBlockElement::SetPropertyValuesEx | 14.5.1
OnIBlockElementAdd | в момент добавления элемента информационного блока. | CIBlockElement::Add | 15.5.12
OnIBlockElementUpdate | в момент изменения элемента информационного блока. | CIBlockElement::Update | 15.5.12
OnIBlockElementSetPropertyValues | в момент сохранения значений свойств элемента инфоблока. | CIBlockElement::SetPropertyValues | 15.5.12
OnIBlockElementSetPropertyValuesEx | до внесения изменений в базу после валидации входящих данных. | CIBlockElement::SetPropertyValuesEx | 17.6.5


OnAfterIBlockAdd

Описание и параметры

функция-обработчик(
 array &arFields
);
Событие "OnAfterIBlockAdd" вызывается после попытки добавления нового информационного блока методом CIBlock::Add.

Параметры

Параметр | Описание
arFields | Массив полей нового информационного блока. Дополнительно, в элементе массива с индексом "RESULT" содержится результат работы (возвращаемое значение) метода CIBlock::Add и, в случае ошибки, элемент с индексом "RESULT_MESSAGE" будет содержать текст ошибки.

Примечание: все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Смотрите также

  • Событие "OnBeforeIBlockAdd"
  • CIBlock::Add
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnAfterIBlockAdd", Array("MyClass", "OnAfterIBlockAddHandler"));

class MyClass
{
    // создаем обработчик события "OnAfterIBlockAdd"
    function OnAfterIBlockAddHandler(&$arFields)
    {
        if($arFields["ID"]>0)
            AddMessage2Log("Запись с кодом ".$arFields["ID"]." добавлена.");
        else
            AddMessage2Log("Ошибка добавления записи (".$arFields["RESULT_MESSAGE"].").");
    }
}
?>


OnAfterIBlockElementAdd

Описание и параметры

функция-обработчик(
 array &arFields
);
Событие "OnAfterIBlockElementAdd" вызывается после попытки добавления нового элемента информационного блока методом CIBlockElement::Add. Работает вне зависимости от того были ли созданы/изменены элементы непосредственно, поэтому необходимо дополнительно проверять параметр: RESULT_MESSAGE.

Параметры

Параметр | Описание
arFields | Массив полей нового элемента информационного блока. Дополнительно, в элементе массива с индексом "RESULT" содержится результат работы (возвращаемое значение) метода CIBlockElement::Add и, в случае ошибки, элемент с индексом "RESULT_MESSAGE" будет содержать текст ошибки.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Примечания:
  • Событие OnAfterIBlockElementAdd будет вызываться в любом случае, даже если в OnBeforeIBlockElementAdd сработало исключение и элемент добавлен не был. Узнать о том, что добавление было отменено в событии OnAfterIBlockElementAdd можно с помощью arFields["RESULT"]. Если добавление прошло успешно, в нем будет храниться ID элемента, иначе - false.
  • Если была загружена картинка для анонса или детальная картинка, то в arFields["PREVIEW_PICTURE"] (arFields["DETAIL_PICTURE"]) хранится исходный временный файл (из папки temp) в формате:
    (
            [name] => 3323207.jpg
            [type] => image/jpeg
            [tmp_name] => /tmp/phpAU0r3o
            [error] => 0
            [size] => 577894
            [del] =>
            [description] =>
            [MODULE_ID] => iblock
        )
    При этом реальный файл, который привязан к элементу, не указывается. В то же время в массив arFields передается ключ "PREVIEW_PICTURE_ID" ("DETAIL_PICTURE"), в нём хранится ID привязанного к элементу файла.

Смотрите также

  • Событие "OnBeforeIBlockElementAdd"
  • CIBlockElement::Add
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("MyClass", "OnAfterIBlockElementAddHandler"));

class MyClass
{
    // создаем обработчик события "OnAfterIBlockElementAdd"
    function OnAfterIBlockElementAddHandler(&$arFields)
    {
        if($arFields["ID"]>0)
             AddMessage2Log("Запись с кодом ".$arFields["ID"]." добавлена.");
        else
             AddMessage2Log("Ошибка добавления записи (".$arFields["RESULT_MESSAGE"].").");
    }
}
?>


OnAfterIBlockElementDelete

функция-обработчик(
 array &arFields
);

Событие "OnAfterIBlockElementDelete" вызывается после того, как элемент и вся связанная с ним информация были удалены из базы данных.

Параметры функции-обработчика

Параметр | Описание
arFields | Массив полей элемента информационного блока.

Возвращаемое значение

Отсутствует.

Пример использования

// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnAfterIBlockElementDelete", Array("MyClass", "OnAfterIBlockElementDeleteHandler"));

class MyClass
{
    // создаем обработчик события "OnAfterIBlockElementDelete"
    function OnAfterIBlockElementDeleteHandler($arFields)
    {
        // Выполняем какие-либо действия
     }
}


OnAfterIBlockElementSetPropertyValues

Описание и параметры

функция-обработчик(
   int ELEMENT_ID,
   int IBLOCK_ID,
   array PROPERTY_VALUES,
   string PROPERTY_CODE
);

Событие "OnAfterIBlockElementSetPropertyValues" вызывается после попытки сохранения значений всех свойств элемента инфоблока методом CIBlockElement::SetPropertyValues.

Параметры

Параметр | Описание
ELEMENT_ID | Код элемента, значения свойств которого необходимо установить.
IBLOCK_ID | Код информационного блока.
PROPERTY_VALUES | Массив значений свойств, в котором коду свойства ставится в соответствие значение свойства.
PROPERTY_CODE | Код изменяемого свойства.

Возвращаемое значение

Нет.

Смотрите также

  • CIBlockElement::SetPropertyValues


OnAfterIBlockElementSetPropertyValuesEx

Описание и параметры

функция-обработчик(
   int ELEMENT_ID,
   int IBLOCK_ID,
   array PROPERTY_VALUES,
   array FLAGS
);

Событие "OnAfterIBlockElementSetPropertyValuesEx" вызывается после попытки сохранения значений свойств элемента инфоблока методом CIBlockElement::SetPropertyValuesEx.

Параметры

Параметр | Описание
ELEMENT_ID | Код элемента, значения свойств которого необходимо установить.
IBLOCK_ID | Код информационного блока.
PROPERTY_VALUES | Массив значений свойств, в котором коду свойства ставится в соответствие значение свойства.
FLAGS Массив параметров для оптимизации запросов к БД. Может содержать следующие ключи:
  • NewElement - можно указать если заведомо известно, что значений свойств у данного элемента нет. Экономит один запрос к БД.
  • DoNotValidateLists - для свойств типа "список" отключает проверку наличия значений в метаданных свойства.

Возвращаемое значение

Нет.

Смотрите также

  • CIBlockElement::SetPropertyValuesEx


OnAfterIBlockElementUpdate

Описание и параметры

функция-обработчик(
 array &arFields
);
Событие "OnAfterIBlockElementUpdate" вызывается после попытки изменения элемента информационного блока методом CIBlockElement::Update. Работает вне зависимости от того были ли созданы/изменены элементы непосредственно, поэтому необходимо дополнительно проверять параметр: RESULT_MESSAGE.

Параметры

Параметр | Описание
arFields | Массив полей изменяемого элемента информационного блока. Дополнительно, в элементе массива с индексом "RESULT" содержится результат работы (возвращаемое значение) метода CIBlockElement::Update и, в случае ошибки, элемент с индексом "RESULT_MESSAGE" будет содержать текст ошибки. Массив полей элемента передается по ссылке. Любые манипуляции с этим массивом в рамках обработчика не изменят информацию об элементе инфоблока, сохраненную в БД. Однако, если в системе будет несколько обработчиков события, каждый последующий получит массив с изменениями.

Смотрите также

  • Событие "OnBeforeIBlockElementUpdate"
  • CIBlockElement::Update
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", Array("MyClass", "OnAfterIBlockElementUpdateHandler"));

class MyClass
{
    // создаем обработчик события "OnAfterIBlockElementUpdate"
    function OnAfterIBlockElementUpdateHandler(&$arFields)
    {
        if($arFields["RESULT"])
            AddMessage2Log("Запись с кодом ".$arFields["ID"]." изменена.");
        else
            AddMessage2Log("Ошибка изменения записи ".$arFields["ID"]." (".$arFields["RESULT_MESSAGE"].").");
    }
}
?>


OnAfterIBlockPropertyAdd

Описание и параметры

функция-обработчик(
 array &arFields
);
Событие "OnAfterIBlockPropertyAdd" вызывается после попытки добавления нового свойства информационного блока методом CIBlockProperty::Add.

Параметры

Параметр | Описание
arFields | Массив полей нового свойства информационного блока. Дополнительно, в элементе массива с индексом "RESULT" содержится результат работы (возвращаемое значение) метода CIBlockProperty::Add и, в случае ошибки, элемент с индексом "RESULT_MESSAGE" будет содержать текст ошибки.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Смотрите также

  • Событие "OnBeforeIBlockPropertyAdd"
  • CIBlockProperty::Add
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnAfterIBlockPropertyAdd", Array("MyClass", "OnAfterIBlockPropertyAddHandler"));

class MyClass
{
    // создаем обработчик события "OnAfterIBlockPropertyAdd"
    function OnAfterIBlockPropertyAddHandler(&$arFields)
    {
        if($arFields["ID"]>0)
             AddMessage2Log("Запись с кодом ".$arFields["ID"]." добавлена.");
        else
             AddMessage2Log("Ошибка добавления записи (".$arFields["RESULT_MESSAGE"].").");
    }
}
?>


OnAfterIBlockPropertyDelete

bool
функция-обработчик(
 array arProperty
);
Событие "OnAfterIBlockPropertyDelete" вызывается после удаления свойства инфоблока методом CIBlockProperty::Delete.

Параметры

Параметр | Описание
arProperty | Поля удалённого свойства.

Возвращаемое значение

Отсутствует.


OnAfterIBlockPropertyUpdate

Описание и параметры

функция-обработчик(
 array &arFields
);
Событие "OnAfterIBlockPropertyUpdate" вызывается после попытки изменения свойства информационного блока методом CIBlockProperty::Update.

Параметры

Параметр | Описание
arFields | Массив полей изменяемого свойства информационного блока. Дополнительно, в элементе массива с индексом "RESULT" содержится результат работы (возвращаемое значение) метода CIBlockProperty::Update и, в случае ошибки, элемент с индексом "RESULT_MESSAGE" будет содержать текст ошибки.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Смотрите также

  • Событие "OnBeforeIBlockPropertyUpdate"
  • CIBlockProperty::Update
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnAfterIBlockPropertyUpdate", Array("MyClass", "OnAfterIBlockPropertyUpdateHandler"));

class MyClass
{
    // создаем обработчик события "OnAfterIBlockPropertyUpdate"
    function OnAfterIBlockPropertyUpdateHandler(&$arFields)
    {
        if($arFields["RESULT"])
            AddMessage2Log("Запись с кодом ".$arFields["ID"]." изменена.");
        else
            AddMessage2Log("Ошибка изменения записи ".$arFields["ID"]." (".$arFields["RESULT_MESSAGE"].").");
    }
}
?>


OnAfterIBlockSectionAdd

Описание и параметры

функция-обработчик(
 array &arFields
);
Событие "OnAfterIBlockSectionAdd" вызывается после попытки добавления нового раздела информационного блока методом CIBlockSection::Add.

Параметры

Параметр | Описание
arFields | Массив полей нового раздела информационного блока. Дополнительно, в элементе массива с индексом "RESULT" содержится результат работы (возвращаемое значение) метода CIBlockSection::Add и, в случае ошибки, элемент с индексом "RESULT_MESSAGE" будет содержать текст ошибки.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Смотрите также

  • Событие "OnBeforeIBlockSectionAdd"
  • CIBlockSection::Add
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnAfterIBlockSectionAdd", Array("MyClass", "OnAfterIBlockSectionAddHandler"));

class MyClass
{
    // создаем обработчик события "OnAfterIBlockSectionAdd"
    function OnAfterIBlockSectionAddHandler(&$arFields)
    {
        if($arFields["ID"]>0)
             AddMessage2Log("Запись с кодом ".$arFields["ID"]." добавлена.");
        else
             AddMessage2Log("Ошибка добавления записи (".$arFields["RESULT_MESSAGE"].").");
    }
}
?>


OnAfterIBlockSectionUpdate

Описание и параметры

функция-обработчик(
 array &arFields
);
Событие "OnAfterIBlockSectionUpdate" вызывается после попытки изменения раздела информационного блока методом CIBlockSection::Update.

Параметры

Параметр | Описание
arFields | Массив полей изменяемого раздела информационного блока. Дополнительно, в элементе массива с индексом "RESULT" содержится результат работы (возвращаемое значение) метода CIBlockSection::Update и, в случае ошибки, элемент с индексом "RESULT_MESSAGE" будет содержать текст ошибки.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Смотрите также

  • Событие "OnBeforeIBlockSectionUpdate"
  • CIBlockSection::Update
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnAfterIBlockSectionUpdate", Array("MyClass", "OnAfterIBlockSectionUpdateHandler"));

class MyClass
{
    // создаем обработчик события "OnAfterIBlockSectionUpdate"
    function OnAfterIBlockSectionUpdateHandler(&$arFields)
    {
        if($arFields["RESULT"])
            AddMessage2Log("Запись с кодом ".$arFields["ID"]." изменена.");
        else
            AddMessage2Log("Ошибка изменения записи ".$arFields["ID"]." (".$arFields["RESULT_MESSAGE"].").");
    }
}
?>


OnAfterIBlockUpdate

Описание и параметры

функция-обработчик(
 array &arFields
);
Событие "OnAfterIBlockUpdate" вызывается после попытки изменения информационного блока методом CIBlock::Update.

Параметры

Параметр | Описание
arFields | Массив полей изменяемого информационного блока. Дополнительно, в элементе массива с индексом "RESULT" содержится результат работы (возвращаемое значение) метода CIBlock::Update и, в случае ошибки, элемент с индексом "RESULT_MESSAGE" будет содержать текст ошибки.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Смотрите также

  • Событие "OnBeforeIBlockUpdate"
  • CIBlock::Update
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnAfterIBlockUpdate", Array("MyClass", "OnAfterIBlockUpdateHandler"));

class MyClass
{
    // создаем обработчик события "OnAfterIBlockUpdate"
    function OnAfterIBlockUpdateHandler(&$arFields)
    {
        if($arFields["RESULT"])
            AddMessage2Log("Запись с кодом ".$arFields["ID"]." изменена.");
        else
            AddMessage2Log("Ошибка изменения записи ".$arFields["ID"]." (".$arFields["RESULT_MESSAGE"].").");
    }
}
?>


OnBeforeIBlockAdd

Описание и параметры

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе CIBlock::Add до вставки информационного блока, и может быть использовано для отмены вставки или переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей нового информационного блока.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены добавления и прекращении выполнения метода CIBlock::Add необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnAfterIBlockAdd"
  • CIBlock::Add
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockAdd", Array("MyClass", "OnBeforeIBlockAddHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeIBlockAdd"
    function OnBeforeIBlockAddHandler(&$arFields)
    {
        if(strlen($arFields["CODE"])<=0)
        {
            global $APPLICATION;
            $APPLICATION->throwException("Введите символьный код.");
            return false;
        }
    }
}
?>


OnBeforeIBlockDelete

bool
функция-обработчик(
   int ID
);

Вызывается перед удалением информационного блока.

Параметры

Параметр | Описание
ID | ID информационного блока.

Возвращаемое значение

Обработчик должен вернуть false в случае если необходимо отменить удаление информационного блока.

Примеры использования

<?
// Подключаем к событию обработчик
RegisterModuleDependences("iblock",
                          "OnBeforeIBlockDelete",
                          "catalog",
                          "CCatalog",
                          "OnIBlockDelete");

// Реализуем обработчик
class CCatalog
{
  * * *

  function OnBeforeIBlockDelete($ID)
  {
    return false;
  }
}

// Теперь нельзя удалить информационный блок.
?>


OnBeforeIBlockElementAdd

Описание и параметры

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе CIBlockElement::Add до вставки элемента информационного блока, и может быть использовано для отмены вставки или переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей нового элемента информационного блока.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены добавления и прекращении выполнения метода CIBlockElement::Add необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Примеры функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", Array("MyClass", "OnBeforeIBlockElementAddHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeIBlockElementAdd"
    function OnBeforeIBlockElementAddHandler(&$arFields)
    {
        if(strlen($arFields["CODE"])<=0)
        {
            global $APPLICATION;
            $APPLICATION->throwException("Введите символьный код.");
            return false;
        }
    }
}
?>
//пример обработчика, который при сохранении элемента переводит в транслит его заголовок, добавляет к заголовку текущую дату (для уникальности) и передает в поле "Символьный код"

// файл /bitrix/php_interface/init.php
/ регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", Array("CymCode", "OnBeforeIBlockElementAddHandler"));

class CymCode
{

// создаем обработчик события "OnBeforeIBlockElementAdd"
function OnBeforeIBlockElementAddHandler(&$arFields)
{
   if(strlen($arFields["CODE"])<=0)
   {
      $arFields["CODE"] = CymCode::imTranslite($arFields["NAME"])."_".date('dmY');
           log_array($arFields); // убрать после отладки

      return;
   }
  }

// записывает все что передадут в /bitrix/log.txt
function log_array() {
   $arArgs = func_get_args();
   $sResult = '';
   foreach($arArgs as $arArg) {
      $sResult .= "\n\n".print_r($arArg, true);
   }

   if(!defined('LOG_FILENAME')) {
      define('LOG_FILENAME', $_SERVER['DOCUMENT_ROOT'].'/bitrix/log.txt');
   }
   AddMessage2Log($sResult, 'log_array -> ');
}

function imTranslite($str){
// транслитерация корректно работает на страницах с любой кодировкой
// ISO 9-95
   static $tbl= array(
      'а'=>'a', 'б'=>'b', 'в'=>'v', 'г'=>'g', 'д'=>'d', 'е'=>'e', 'ж'=>'g', 'з'=>'z',
      'и'=>'i', 'й'=>'y', 'к'=>'k', 'л'=>'l', 'м'=>'m', 'н'=>'n', 'о'=>'o', 'п'=>'p',
      'р'=>'r', 'с'=>'s', 'т'=>'t', 'у'=>'u', 'ф'=>'f', 'ы'=>'y', 'э'=>'e', 'А'=>'A',
      'Б'=>'B', 'В'=>'V', 'Г'=>'G', 'Д'=>'D', 'Е'=>'E', 'Ж'=>'G', 'З'=>'Z', 'И'=>'I',
      'Й'=>'Y', 'К'=>'K', 'Л'=>'L', 'М'=>'M', 'Н'=>'N', 'О'=>'O', 'П'=>'P', 'Р'=>'R',
      'С'=>'S', 'Т'=>'T', 'У'=>'U', 'Ф'=>'F', 'Ы'=>'Y', 'Э'=>'E', 'ё'=>"yo", 'х'=>"h",
      'ц'=>"ts", 'ч'=>"ch", 'ш'=>"sh", 'щ'=>"shch", 'ъ'=>"", 'ь'=>"", 'ю'=>"yu", 'я'=>"ya",
      'Ё'=>"YO", 'Х'=>"H", 'Ц'=>"TS", 'Ч'=>"CH", 'Ш'=>"SH", 'Щ'=>"SHCH", 'Ъ'=>"", 'Ь'=>"",
      'Ю'=>"YU", 'Я'=>"YA", ' '=>"_", '№'=>"", '«'=>"<", '»'=>">", '—'=>"-"
   );
    return strtr($str, $tbl);
 }
}

//пропорциональное изменение размеров изображений, добавленных как пользовательское свойство:
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", Array("MyClass", "OnBeforeIBlockElementAddHandler"));

class MyClass
{
    function OnBeforeIBlockElementAddHandler(&$arFields)
    {
    foreach($arFields[PROPERTY_VALUES][28] as &$file):
       CAllFile::ResizeImage(
         $file,
         array("width" => "200", "height" => "200"),
         BX_RESIZE_IMAGE_PROPORTIONAL);
    endforeach;
    }
}

Смотрите также

  • Событие "OnAfterIBlockElementAdd"
  • CIBlockElement::Add
  • Обработка событий


OnBeforeIBlockElementDelete

Описание и параметры

bool
функция-обработчик(
 int ID
);
Событие "OnBeforeIBlockElementDelete" вызывается перед удалением элемента методом CIBlockElement::Delete. Как правило задачи обработчика данного события - разрешить или запретить удаление.

Параметры

Параметр | Описание
ID | ID удаляемого элемента.

Возвращаемое значение

Для отмены удаления элемента и прекращении выполнения метода CIBlockElement::Delete необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockElementDelete", Array("MyClass", "OnBeforeIBlockElementDeleteHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeIBlockElementDelete"
    function OnBeforeIBlockElementDeleteHandler($ID)
    {
        if($ID==1)
        {
            global $APPLICATION;
            $APPLICATION->throwException("элемент с ID=1 нельзя удалить.");
            return false;
        }
    }
}
?>

Смотрите также

  • CIBlockElement::Delete
  • Обработка событий


OnBeforeIBlockElementUpdate

Описание и параметры

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе CIBlockElement::Update до изменения элемента информационного блока, и может быть использовано для отмены изменения или для переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей изменяемого элемента информационного блока.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены изменения и прекращении выполнения метода CIBlockElement::Update необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnAfterIBlockElementUpdate"
  • CIBlockElement::Update
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", Array("MyClass", "OnBeforeIBlockElementUpdateHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeIBlockElementUpdate"
    function OnBeforeIBlockElementUpdateHandler(&$arFields)
    {
        if(strlen($arFields["CODE"])<=0)
        {
            global $APPLICATION;
            $APPLICATION->throwException("Введите символьный код. (ID:".$arFields["ID"].")");
            return false;
        }
    }
}
?>


OnBeforeIBlockPropertyAdd

Описание и параметры

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе CIBlockProperty::Add до вставки свойства в инфоблок, и может быть использовано для отмены вставки или переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей нового свойства информационного блока.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены добавления и прекращении выполнения метода CIBlockProperty::Add необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnAfterIBlockPropertyAdd"
  • CIBlockProperty::Add
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockPropertyAdd", Array("MyClass", "OnBeforeIBlockPropertyAddHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeIBlockPropertyAdd"
    function OnBeforeIBlockPropertyAddHandler(&$arFields)
    {
        if(strlen($arFields["CODE"])<=0)
        {
            global $APPLICATION;
            $APPLICATION->throwException("Введите символьный код.");
            return false;
        }
    }
}
?>


OnBeforeIBlockPropertyDelete

Описание и параметры

bool
функция-обработчик(
 int ID
);
Событие "OnBeforeIBlockPropertyDelete" вызывается перед удалением свойства методом CIBlockProperty::Delete. Как правило задачи обработчика данного события - разрешить или запретить удаление.

Параметры

Параметр | Описание
ID | ID удаляемого свойства.

Возвращаемое значение

Для отмены удаления свойства и прекращении выполнения метода CIBlockProperty::Delete необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • CIBlockProperty::Delete
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockPropertyDelete", Array("MyClass", "OnBeforeIBlockPropertyDeleteHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeIBlockPropertyDelete"
    function OnBeforeIBlockPropertyDeleteHandler($ID)
    {
        if($ID==1)
        {
            global $APPLICATION;
            $APPLICATION->throwException("Свойство с ID=1 нельзя удалить.");
            return false;
        }
    }
}
?>


OnBeforeIBlockPropertyUpdate

Описание и параметры

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе CIBlockProperty::Update до изменения свойства информационного блока, и может быть использовано для отмены изменения или для переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей изменяемого свойства информационного блока.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены изменения и прекращении выполнения метода CIBlockProperty::Update необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnAfterIBlockPropertyUpdate"
  • CIBlockProperty::Update
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockPropertyUpdate", Array("MyClass", "OnBeforeIBlockPropertyUpdateHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeIBlockPropertyUpdate"
    function OnBeforeIBlockPropertyUpdateHandler(&$arFields)
    {
        if(strlen($arFields["CODE"])<=0)
        {
            global $APPLICATION;
            $APPLICATION->throwException("Введите символьный код. (ID:".$arFields["ID"].")");
            return false;
        }
    }
}
?>


OnBeforeIBlockSectionAdd

Описание и параметры

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе CIBlockSection::Add до вставки информационного блока, и может быть использовано для отмены вставки или переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей нового раздела информационного блока.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены добавления и прекращении выполнения метода CIBlockSection::Add необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnAfterIBlockSectionAdd"
  • CIBlockSection::Add
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockSectionAdd", Array("MyClass", "OnBeforeIBlockSectionAddHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeIBlockSectionAdd"
    function OnBeforeIBlockSectionAddHandler(&$arFields)
    {
        if(strlen($arFields["CODE"])<=0)
        {
            global $APPLICATION;
            $aMsg = array();
            $aMsg[] = array("id"=>"CODE", "text"=>"Введите символьный код.");
            $e = new CAdminException($aMsg);
            $APPLICATION->throwException($e);
            return false;
        }
    }
}
?>


OnBeforeIBlockSectionDelete

Описание и параметры

bool
функция-обработчик(
 int ID
);
Событие "OnBeforeIBlockSectionDelete" вызывается перед удалением раздела методом CIBlockSection::Delete. Как правило задачи обработчика данного события - разрешить или запретить удаление.

Параметры

Параметр | Описание
ID | ID удаляемого раздела.

Возвращаемое значение

Для отмены удаления раздела и прекращении выполнения метода CIBlockSection::Delete необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • CIBlockSection::Delete
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockSectionDelete", Array("MyClass", "OnBeforeIBlockSectionDeleteHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeIBlockSectionDelete"
    function OnBeforeIBlockSectionDeleteHandler($ID)
    {
        if($ID==1)
        {
            global $APPLICATION;
            $APPLICATION->throwException("раздел с ID=1 нельзя удалить.");
            return false;
        }
    }
}
?>


OnBeforeIBlockSectionUpdate

Описание и параметры

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе CIBlockSection::Update до изменения раздела информационного блока, и может быть использовано для отмены изменения или для переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей изменяемого раздела информационного блока.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены изменения и прекращении выполнения метода CIBlockSection::Update необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnAfterIBlockSectionUpdate"
  • CIBlockSection::Update
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockSectionUpdate", Array("MyClass", "OnBeforeIBlockSectionUpdateHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeIBlockSectionUpdate"
    function OnBeforeIBlockSectionUpdateHandler(&$arFields)
    {
        if(strlen($arFields["CODE"])<=0)
        {
            global $APPLICATION;
            $APPLICATION->throwException("Введите символьный код. (ID:".$arFields["ID"].")");
            return false;
        }
    }
}
?>


OnBeforeIBlockUpdate

Описание и параметры

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе CIBlock::Update до изменения информационного блока, и может быть использовано для отмены изменения или переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей изменяемого информационного блока.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены изменения и прекращении выполнения метода CIBlock::Update необходимо в функции-обработчике создать исключение методом $APPLICATION->ThrowException() и вернуть false.

Смотрите также

  • Событие "OnAfterIBlockUpdate"
  • CIBlock::Update
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("iblock", "OnBeforeIBlockUpdate", Array("MyClass", "OnBeforeIBlockUpdateHandler"));

class MyClass
{
    // создаем обработчик события "OnBeforeIBlockUpdate"
    function OnBeforeIBlockUpdateHandler(&$arFields)
    {
        if(strlen($arFields["CODE"])<=0)
        {
            global $APPLICATION;
            $APPLICATION->throwException("Введите символьный код. (ID:".$arFields["ID"].")");
            return false;
        }
    }
}
?>


OnIBlockDelete

функция-обработчик(
   int ID
);

Вызывается в момент удаления информационного блока.

Параметры

Параметр | Описание
ID | ID информационного блока.

Примеры использования

<?
// Подключаем к событию обработчик
RegisterModuleDependences("iblock",
                          "OnIBlockDelete",
                          "catalog",
                          "CCatalog",
                          "OnIBlockDelete");

// Реализуем обработчик
class CCatalog
{
  * * *

  function OnIBlockDelete($ID)
  {
    return CCatalog::Delete($ID);
  }
}

// Теперь при удалении блока будет вызываться обработчик
?>


OnIBlockElementAdd

функция-обработчик(
   array arFields
);

Событие OnIBlockElementAdd вызывается в момент добавления элемента информационного блока.

Событие вызывается в момент, когда уже отработали все обработчики, изменяющие данные, а также уже произошла проверка данных и идет запись в базу. Изменять данные событие не позволяет. Основной сценарий использования - выполнить некий код перед работой с базой, будучи уверенным, что данные в базе будут изменены.

Параметры

Параметр | Описание
arFields | Массив значений полей элемента инфоблока.

Возвращаемое значение

Нет.

Смотрите также

  • CIBlockElement::Add


OnIBlockElementDelete

функция-обработчик(
   int ID
);

Вызывается в момент удаления элемента информационного блока.

Примечание: начиная с версии 15.5.12, событие вызывается до удаления из таблиц любых данных, связанных с элементом.

Параметры

Параметр | Описание
ID | ID элемента информационного блока.

Примеры использования

<?
// Подключаем к событию обработчик
RegisterModuleDependences("iblock",
                          "OnIBlockElementDelete",
                          "catalog",
                          "CCatalogProduct",
                          "OnIBlockElementDelete");

// Реализуем обработчик
class CCatalogProduct
{
  * * *

  function OnIBlockElementDelete($PRODUCT_ID)
  {
    global $DB;
    echo "Удаляем...";
    return True;
  }
}

// Теперь при удалении элемента будет вызываться обработчик
?>


OnIBlockElementSetPropertyValues

Описание и параметры

функция-обработчик(
   int ELEMENT_ID,
   int IBLOCK_ID,
   array PROPERTY_VALUES,
   string PROPERTY_CODE,
   array ar_prop,
   array arDBProps
);

Событие OnIBlockElementSetPropertyValues вызывается в момент сохранения значений свойств элемента инфоблока.

Событие вызывается в момент, когда уже отработали все обработчики, изменяющие данные, а также уже произошла проверка данных и идет запись в базу. Изменять данные событие не позволяет. Основной сценарий использования - выполнить некий код перед работой с базой, будучи уверенным, что данные в базе будут изменены.

Параметры

Параметр | Описание
ELEMENT_ID | Идентификатор элемента инфоблока.
IBLOCK_ID | Идентификатор инфоблока.
PROPERTY_VALUES | Массив значений свойств элемента инфоблока.
PROPERTY_CODE | Код изменяемого свойства. Если этот параметр отличен от false, то изменяется только свойство с таким кодом.
ar_prop | Массив, описывающий активные свойства инфоблока.
arDBProps | Текущие значения свойств элемента.

Возвращаемое значение

Нет.

Смотрите также

  • CIBlockElement::SetPropertyValues


OnIBlockElementSetPropertyValuesEx

Описание и параметры

функция-обработчик(
   int ELEMENT_ID,
   int IBLOCK_ID,
   array PROPERTY_VALUES,
   array propertyList,
   array arDBProps
);

Событие вызывается до внесения изменений в базу после валидации входящих данных.

Параметры

Параметр | Описание
ELEMENT_ID | Идентификатор элемента инфоблока.
IBLOCK_ID | Идентификатор инфоблока.
PROPERTY_VALUES | Массив значений свойств элемента инфоблока.
propertyList | Массив, описывающий Список свойств.
arDBProps | Текущие значения свойств элемента.

Возвращаемое значение

Нет.

Смотрите также

  • CIBlockElement::SetPropertyValuesEx


OnIBlockElementUpdate

функция-обработчик(
   array newFields,
   array ar_wf_element
);

Событие OnIBlockElementUpdate вызывается в момент изменения элемента информационного блока.

Событие вызывается в момент, когда уже отработали все обработчики, изменяющие данные, а также уже произошла проверка данных и идет запись в базу. Изменять данные событие не позволяет. Основной сценарий использования - выполнить некий код перед работой с базой, будучи уверенным, что данные в базе будут изменены.

Параметры

Параметр | Описание
newFields | Массив обновляемых полей и свойств элемента инфоблока.
ar_wf_element | Текущие значения обновляемых полей, а также свойств элемента, если инфоблок участвует в документообороте.

Возвращаемое значение

Нет.

Смотрите также

  • CIBlockElement::Update


OnIBlockPropertyBuildList

array
функция-обработчик(
);

Событие вызывается при построении списка пользовательских свойств. Обработчик этого события должен вернуть массив описывающий пользовательское свойство. Содержимое этого массива описано в методе GetUserTypeDescription.

Параметры

Отсутствуют.

Возвращаемое значение

Массив.

Смотрите также

  • Пользовательские свойства
  • GetUserTypeDescription


OnStartIBlockElementAdd

bool функция-обработчик(
   array &arParams
);

Событие вызывается в методе CIBlockElement::Add до добавления элемента инфоблока перед проверкой правильности заполнения полей.

Параметры

Параметр | Описание
arParams | Массив полей нового элемента информационного блока.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Смотрите также

  • CIBlockElement::Add
  • Обработка событий


OnStartIBlockElementUpdate

bool функция-обработчик(
   array &arParams
);

Событие вызывается в методе CIBlockElement::Update до изменения элемента информационного блока перед проверкой правильности заполнения полей, и может быть использовано для переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей изменяемого элемента информационного блока.

Обратите внимание, что все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Если в обработчике события OnStartIBlockElementUpdate вернуть false, то будет отменено выполнение других обработчиков в методе CIBlockElement::Update.

Смотрите также

  • CIBlockElement::Update
  • Обработка событий


Фильтры

  • Дата
  • Маска
  • Строка
  • Число


Дата

Описание

Для фильтрации элементов инфоблока по свойству типа Дата переменная должна содержать значение даты в формате: YYYY-MM-DD HH:MI:SS.

Значения фильтра этого типа обрабатываются по следующим правилам:

Операция | Значение | Описание
 | пустая строка | Фильтр по полю применяться не будет. Будут выбраны все значения.
 | false | Если перед полем этого фильтра указано отрицание (символ "!"), то будут выбраны все не пустые значения. Иначе будут выбраны пустые значения - NULL.
"><" или "!><" | должно быть массивом с двумя элементами | Будет выполнена проверка на попадание в диапазон заданный элементами массива значения фильтра. Включительно. Если перед полем этого указано отрицание (символ "!"), то будут выбраны значения не попадающие в диапазон.
"=", "%", "?" или не задана | будет приведено к типу времени БД с помощью функции CharToDateFunction | Проверка на точное совпадение значения. Если указано отрицание, то проверка будет выполнена на неравенство.
">", "<", ">=", "<=" | будет приведено к типу времени БД с помощью функции CharToDateFunction | "Больше", "меньше", "больше или равно" и "меньше или равно". Можно использовать "!" для отрицания условия.

Примечание: если значение фильтра массив, то для каждого элемента будут формироваться соответствующие условия, а затем они будут объединены по "ИЛИ". В случае отрицания условия будут объединяться по "И".

Смотрите также

  • Типы фильтрации

Примеры использования

1

<?
//Все активные элементы это те у которых ACTIVE_FROM не задано или меньше чем сейчас
//при не заданной ACTIVE_TO или ACTIVE_TO больше чем сейчас
$arFilter = array(
  "<=DATE_ACTIVE_FROM" => array(false, ConvertTimeStamp(false, "FULL")),
  ">=DATE_ACTIVE_TO"   => array(false, ConvertTimeStamp(false, "FULL")),
);
?>

В примере выше используется ConvertTimeStamp, поэтому дата будет возвращена в формате сайта

2

При фильтрации свойств инфоблока по дате, нужно указывать формат YYYY-MM-DD HH:II, иначе фильтр работать не будет.

$arFilter = array(
        '>=PROPERTY_DATE_TO'  => date( 'Y-m-d H:i:s' ),
        '<=PROPERTY_DATE_TO'  => date( 'Y-m-d H:i:s'' )
);


Маска

Описание

Значения фильтра этого типа обрабатываются по следующим правилам:

Операция | Значение | Описание
 | пустая строка | Фильтр по полю применяться не будет. Будут выбраны все значения.
"?" | не пустая строка | Значением фильтра должна быть строка которая может содержать сложную логику.
"%", "!%" | не пустая строка | Будет выполнен регистронезависимый поиск подстроки.
"><" или "!><" | должно быть массивом с двумя элементами | Будет выполнена проверка на попадание в диапазон заданный элементами массива значения фильтра. Включительно. Если перед полем этого указано отрицание (символ "!"), то будут выбраны значения не попадающие в диапазон.
 | false | Если перед полем этого фильтра указано отрицание (символ "!"), то будут выбраны все не пустые значения. Иначе будут выбраны пустые значения - NULL или те у которых длина равна нулю.
"=" | будет приведено к верхнему регистру | Проверка на точное совпадение значения. Если указано отрицание, то проверка будет выполнена на неравенство. Проверка регистронезависимая.
">", "<", ">=", "<=" | будет приведено к верхнему регистру | "Больше", "меньше", "больше или равно" и "меньше или равно". Можно использовать "!" для отрицания условия. Не зависит от регистра.
не указана | будет приведено к верхнему регистру | Значение фильтра будет служить маской для отбора значений. "%" - любое количество любых символов, "_" - один любой символ.

Примечание: если значение фильтра массив, то для каждого элемента будут формироваться соответствующие условия, а затем они будут объединены по "ИЛИ". В случае отрицания условия будут объединяться по "И".

Смотрите также

  • Типы фильтрации

Примеры использования

<?
$arFilter = (
...
"NAME" => false, //Не вернет ничего т.к. нет пустых NAME
"NAME" => "", //вернет все т.к. фильтр не будет применен
"NAME" => "А%", //вернет все NAME начинающиеся на "A"
"?NAME" => "(мама || мачеха) && (папа || отчим)", //Все имеют двух родителей
">NAME" => "э", //Все начинающиеся на Э, Ю, Я.
...
);
?>
// исключение из выборки всех записей, в названиях которых есть вхождения jpg, jpeg и png
$arFilter = array(
  "IBLOCK_ID"=>$IBLOCK_ID,
  "ACTIVE_DATE"=>"Y",
  "ACTIVE"=>"Y",
  "!NAME" => array("%.jpg%", "%.jpeg%", "%.png%")
);

//Есть очень большой каталог, несколько тысяч
//нужно сделать выбор по двум словам (например, "Citroen" и "Berlingo"), которые могут содержаться в одном из пользовательских свойств элементов.
//Как сделать через маску?

//1-ый вариант маски:
$arFilter['PROPERTY_a_use'] = "%Citroen%Berlingo%";

//2-ой вариант маски:
$arFilter['?PROPERTY_a_use'] = "Citroen && Berlingo";

//Запрос
$getListFirst = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);

//По производительности 2-ой вариант хуже, так как 1-ый вариант - это обычный LIKE запрос к БД, в то время как 2-ой вариант делает переработку фильтра запроса
//С другой стороны, если в 1-ом варианте поменять местами слова, то ничего не найдется, а во 2-ом - должно сработать.


Строка

Описание

Значения фильтра этого типа обрабатываются по следующим правилам:

Операция | Значение | Описание
 | пустая строка | Фильтр по полю применяться не будет. Будут выбраны все значения.
"?" | не пустая строка | Значением фильтра должна быть строка которая может содержать сложную логику.
"%", "!%" | не пустая строка | Будет выполнен регистронезависимый поиск подстроки.
"><" или "!><" | должно быть массивом с двумя элементами | Будет выполнена проверка на попадание в диапазон заданный элементами массива значения фильтра. Включительно. Если перед полем этого указано отрицание (символ "!"), то будут выбраны значения не попадающие в диапазон.
 | false | Если перед полем этого фильтра указано отрицание (символ "!"), то будут выбраны все не пустые значения. Иначе будут выбраны пустые значения - NULL или те у которых длина равна нулю.
"=" или не задана | будет приведено к верхнему регистру | Проверка на точное совпадение значения. Если указано отрицание, то проверка будет выполнена на неравенство. Проверка регистронезависимая.
">", "<", ">=", "<=" | будет приведено к верхнему регистру | "Больше", "меньше", "больше или равно" и "меньше или равно". Можно использовать "!" для отрицания условия. Не зависит от регистра.

Примечание: если значение фильтра массив, то для каждого элемента будут формироваться соответствующие условия, а затем они будут объединены по "ИЛИ". В случае отрицания условия будут объединяться по "И".

Смотрите также

  • Типы фильтрации

Примеры использования

<?
$arFilter = (
...
"NAME" => false, //Не вернет ничего т.к. нет пустых NAME
"!NAME" => "", //вернет все т.к. фильтр не будет применен
"%NAME" => "отр", //вернет все NAME содержащую подстроку "отр" не зависимо от регистра
"?NAME" => "(мама || мачеха) && (папа || отчим)", //Все имют двух родителей
">NAME" => "э", //Все начинающиеся на Э, Ю, Я.
...
);
?>


Число

Описание

Значения фильтра этого типа обрабатываются по следующим правилам:

Операция | Значение | Описание
 | пустая строка | Фильтр по полю применяться не будет. Будут выбраны все значения.
 | false | Если перед полем этого фильтра указано отрицание (символ "!"), то будут выбраны все не пустые значения. Иначе будут выбраны пустые значения - NULL.
"><" или "!><" | должно быть массивом с двумя элементами | Будет выполнена проверка на попадание в диапазон заданный элементами массива значения фильтра. Включительно. Если перед полем этого указано отрицание (символ "!"), то будут выбраны значения не попадающие в диапазон.
"=", "%", "?" или не задана | будет приведено в типу doubleval | Проверка на точное совпадение значения. Если указано отрицание, то проверка будет выполнена на неравенство.
">", "<", ">=", "<=" | будет приведено в типу doubleval | "Больше", "меньше", "больше или равно" и "меньше или равно". Можно использовать "!" для отрицания условия.

Примечание: если значение фильтра массив, то для каждого элемента будут формироваться соответствующие условия, а затем они будут объединены по "ИЛИ". В случае отрицания условия будут объединяться по "И".

Смотрите также

  • Типы фильтрации

Примеры использования

<?
$arFilter = (
...
"ID" => false, //Не вернет ничего т.к. нет пустых ID
"!ID" => "", //вернет все т.к. фильтр не будет применен
"ID" => 0, //ID будет сравниваться с "0" (нулем)
"><ID" => array(1 ,100), //Все ID с 1 по 100 включительно
">ID" => "45", //Все ID больше 45-ти
"!%ID" => 33, //Все ID НЕ РАВНЫЕ 33
...
);
?>


Функции для использования в публичной части

Метод | Описание | С версии
GetIBlockList | Возвращает список информационных блоков по фильтру. | 3.0.5
GetIBlock | Возвращает информационный блок по заданному коду. | 3.0.5
GetIBlockElementListEx | Возвращает список элементов по фильтру. | 3.0.5
GetIBlockElementList | Возвращает список элементов из определённого информационного блока. | 3.0.5
GetIBlockElement | Возвращает элемент по заданному коду. | 3.0.5
GetIBlockSectionList | Возвращает список папок из определённого информационного блока. | 3.0.5
GetIBlockSection | Возвращает раздел по заданному коду. | 3.0.5
ImportXMLFile | Выполняет импорт xml-файла в инфоблок. | 6.5.0


GetIBlock

Описание и параметры

array
GetIBlock(
 string ID,
 type = ""
);

Функция возвращает информационный блок по коду ID, но только если он активен (ACTIVE равно Y) и имеет привязку к текущему сайту.

Параметры функции

Параметр | Описание
ID | ID информационного блока.
type | Тип информационного блока. Устанавливается в настройках модуля. Если задан, то при выборке проверяется чтобы информационный блок соответствовал этому типу. Необязательный. По умолчанию на информационный блок не накладываются ограничения по типу.

Возвращаемое значение

Функция возвращает массив полей информационного блока. Все возвращаемые поля преобразованы в "HTML безопасный" вид, а в полях (LIST_PAGE_URL - списка элементов и DETAIL_PAGE_URL - детального просмотра) с шаблонами для URL-ов заменены параметры #SITE_DIR# и #IBLOCK_ID#.
Если заданным параметрам не найден информационный блок, функция вернет false.

Примечание: функция вернет поля информационного блока только в том случае, если информационный блок активен и привязан к текущему сайту.

Смотрите также

  • Поля информационных блоков

Примеры использования

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

$APPLICATION->SetTitle("Продукты");

// проверим установлен ли модуль и получим блок с кодом $BID и типом catalog
if(CModule::IncludeModule("iblock") && ($arIBlock = GetIBlock($_GET["BID"], "catalog")))
{
   // сделаем заголовок страницы таким же как название инф. блока
   $APPLICATION->SetTitle($arIBlock["NAME"]);
   //добавим название в навигационную цепочку
   $APPLICATION->AddChainItem($arIBlock["NAME"], $arIBlock["LIST_PAGE_URL"]);

   //работаем дальше с информационным блоком
   // ....
}
else
   ShowError("Информационный блок не найден.");

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>


GetIBlockElement

Описание и параметры

array
 GetIBlockElement(
  int ID,
  string type = ""
  );

Функция возвращает информационный элемент с кодом ID. Функция-помошник, которая выбирает все базовые поля элемента, его свойства и информацию об инфоблоке. Использует GetList.

Примечание: функция является устаревшей, оставлена для обратной совместимости. Рекомендуется использоваться метод GetList.

Параметры функции

Параметр | Описание
ID | ID элемента.
type | Тип информационного блока. Устанавливается в настройках модуля. Если задан, то при выборке проверяется чтобы элемент соответствовал этому типу. Необязательный. По умолчанию на элемент не накладываются ограничения по типу.

Возвращаемое значение

Функция возвращает массив полей информационного элемента и дополнительно следующие поля:

Поле | Значение
IBLOCK_NAME | Название информационного блока.
PROPERTIES Массив значений свойств, имеющий в качестве индексов "Символьный код свойства" (задается в настройках информационного блока) или, если код не задан, то уникальное ID свойства. Значением каждого свойства будет массив вида:
Array(
     "NAME"=>"название свойства",
     "DEFAULT_VALUE"=>"значение свойства по умолчанию",
     "VALUE"=>"значение свойства или массив значений свойств, если свойство множественное",
     "VALUE_ENUM_ID"=>"Код значения свойства типа <Список>"
     )

Если заданным параметрам не найден элемент, функция вернет false.
Выборка элемента происходит только из активных элементов инфоблока, неактивный элемент выбран быть не может.

Примечание: все возвращаемые поля преобразованы в "HTML безопасный" вид, а в полях (LIST_PAGE_URL - списка элементов и DETAIL_PAGE_URL - детального просмотра) с шаблонами URL-ов к страницам будут заменены параметры #SITE_DIR#, #IBLOCK_ID#, #EXTERNAL_ID# и #ID#.

Смотрите также

  • Поля информационного элемента

Примеры использования

<?
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php');

$APPLICATION->SetTitle('Карточка товара');

// подключим модуль и выберем элемент ID типа product
$arIBlockElement = false;
if(CModule::IncludeModule('iblock') && ($arIBlockElement = GetIBlockElement($ID, 'product')))
{
   // В заголовок страницы вставим название элемента
   $APPLICATION->SetTitle($arIBlockElement['NAME']);
   // В навигационную цепочку вставим название и ссылку на текущий информационный блок
   $APPLICATION->AddChainItem($arIBlockElement['IBLOCK_NAME'], 'products.php?ID='.$arIBlockElement['IBLOCK_ID']);

   // выведем детальную картинку
   echo ShowImage($arIBlockElement['DETAIL_PICTURE'], 150, 150, 'border="0"', '', true);
   // выведем детальное описание
   echo $arIBlockElement['DETAIL_TEXT'].'<br>';
   // выведем значение свойства с кодом PRICE
   echo $arIBlockElement['PROPERTIES']['PRICE']['VALUE'].'<br>';

   // вывeдем оставшиеся свойсва
   $arProps = $arIBlockElement['PROPERTIES'];
   foreach($arProps as $property_code=>$arValue)
   {
      // если это свойство с кодом PRICE или значение свойства не введено - пропустим
      if($property_code=='PRICE'
            || (!is_array($arValue['VALUE']) && strlen($arValue['VALUE'])<=0)
            || (is_array($arValue['VALUE']) && count($arValue['VALUE'])<=0)
            )
         continue;

      // выведем пару "Название: значение"
      if(!is_array($arValue['VALUE']))
         echo $arValue['NAME'].": ".$arValue['VALUE'];
      else
      {
         echo $arValue['NAME'].': ';
         foreach($arValue['VALUE'] as $val)
         {
            echo $val.'<br>';
         }
      }
   }
}
else
   echo ShowError('Новость не найдена');

require($_SERVER["DOCUMENT_ROOT"].'/bitrix/footer.php");
?>


GetIBlockElementList

Описание

CIBlockResult
GetIBlockElementList(
 int iblock_id,
 int section_id = false,
 array order = Array("SORT"=>"ASC"),
 int cnt = 0,
 array arFilter = Array()
);

Функция возвращает активные элементы из информационного блока iblock_id.

Примечание: функция является устаревшей, оставлена для обратной совместимости. Рекомендуется использоваться метод GetList.

Возвращаемое значение

Функция возвращает объект класса CIBlockResult с активными элементами (у которых установлен флаг "Активен", выполняется условие периода активности и находящиеся в активных информационных блоках для текущего сайта).

Примечание: при работе с результатом рекомендуется применять метод класса CDBResult::GetNext(), результатом которого будет массив с полями элемента информационного блока. Все поля при этом будут преобразованы в "HTML безопасный" вид, а в полях с шаблонами URL-ов к страницам (LIST_PAGE_URL - списка элементов и DETAIL_PAGE_URL - детального просмотра) будут заменены параметры #SITE_DIR#, #IBLOCK_ID#, #EXTERNAL_ID# и #ID#. Если результат пуст или достигнут конец выборки CDBResult::GetNext() вернет false. Также можно воспользоваться любыми другими методами класса CDBResult, но при этом в полях LIST_PAGE_URL и DETAIL_PAGE_URL будут оригинальные (как они введены в форме редактирования информационного блока) шаблоны URL-ов, а не с замененными параметрами #SITE_DIR#, #IBLOCK_ID#, #EXTERNAL_ID# и #ID#.

Параметры функции

Параметр | Описание
iblock_id | ID информационного блока из которого будут выбраны элементы.
section_id ID раздела, из которой требуется получить элементы. Для получения элементов из корня информационного блока (не привязанные ни к одному разделу) установите параметр section_id = 0.

Необязательный. По умолчанию (false) выбираются все записи без ограничения по папкам.
order Порядок сортировки - массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где by - поле для сортировки, может принимать значения:
  • sort - индекс сортировки;
  • timestamp_x - дата изменения;
  • name - название;
  • id - ID элемента;
  • active_from - начало периода действия элемента;
  • active_to - окончание периода действия элемента;
  • order - порядок сортировки сортировки, может принимать значения:
    • asc - по возрастанию;
    • desc - по убыванию.
    Необязательный. По умолчанию равен Array("sort"=>"asc")
Полный список полей сортировки и дополнительную информацию смотрите в CIBlockElement::GetList()
cnt Максимальное количество записей, которые вернет функция.
Необязательный. По умолчанию выбираются все записи.
arFilter Дополнительный фильтр по произвольным полям вида Array("Фильтруемое поле"=>"Значение", ...).
Фильтруемое поле может принимать значения:
  • ID - по коду;
  • ACTIVE - фильтр по активности (Y|N); передача пустого значения ("ACTIVE"=>"") выводит все элементы без учета их состояния;
  • NAME - по имени и фамилии (можно искать по шаблону [%_]);
  • PREVIEW_TEXT - по имени и фамилии (можно искать по шаблону [%_]);
  • DETAIL_TEXT - по детальному описанию (можно искать по шаблону [%_]);
  • SEARCHABLE_CONTENT - по содержимому для поиска. Включает в себя название, описание для анонса и детальное описание (можно искать по шаблону [%_]);
  • CODE - по символьному идентификатору (можно искать по шаблону [%_]);
  • SORT - по сортировке;
  • EXTERNAL_ID - по внешнему коду (можно искать по шаблону [%_]);
  • TIMESTAMP_X - по времени изменения;
  • DATE_CREATE - по времени создания;
  • DATE_ACTIVE_FROM - по дате начала активности;
  • DATE_ACTIVE_TO - по дате окончанию активности;
  • ACTIVE_DATE - непустое значение задействует фильтр по датам активности (DATE_ACTIVE_FROM и DATE_ACTIVE_TO). Если значение не установлено (""), фильтрация по датам активности не производится;
  • IBLOCK_ID - по коду информационного блока;
  • IBLOCK_CODE - по символьному коду информационного блока (можно искать по шаблону [%_]);
  • IBLOCK_LID - по языку (можно искать по шаблону [%_]);
  • IBLOCK_TYPE - по типу блока (можно искать по шаблону [%_]);
  • IBLOCK_ACTIVE - по активности блока (можно искать по шаблону [%_]);
  • SECTION_ID - по родительскому разделу;
  • PROPERTY_<код свойства> - фильтр по значениям свойств (можно искать по шаблону [%_]), для свойств типа "список", поиск будет осуществляться не по значению перечисления, а по его идентификатору;
  • PROPERTY_<код свойства>_VALUE - фильтр по значениям списка для свойств типа "список" (можно искать по шаблону [%_]), поиск будет осуществляться по строковому значению списка, а не по идентификатору;
  • CATALOG_<CATALOG_FIELD>_<PRICE_TYPE> - по полю CATALOG_FIELD из цены типа PRICE_TYPE (ID типа цены), где CATALOG_FIELD может быть: PRICE - цена, CURRENCY - валюта.
Все фильтруемые поля (кроме SECTION_ID и ACTIVE_DATE) могут содержать перед названием тип проверки фильтра [image], а поля SECTION_ID и ACTIVE_DATE могут содержать перед названием тип проверки фильтра "!" - не равно.

Значения фильтра - одиночное значение или массив.

Необязательный. По умолчанию - пустой массив.
Полный список полей фильтра и дополнительную информацию смотрите в CIBlockElement::GetList().

Смотрите также

  • Поля элементов информационного блока
  • Функция GetIBlockElementListEx

Примеры использования

<?
if(CModule::IncludeModule("iblock"))
{
   // выберем 10 элементов из папки $ID информационного блока $BID
   $items = GetIBlockElementList($_GET['BID'], $_GET['ID'], Array("SORT"=>"ASC"), 10);
   $items->NavPrint("Товары");
   while($arItem = $items->GetNext())
   {
      echo $arItem["NAME"]."<br>";
      echo $arItem["PREVIEW_TEXT"]."<br>";
   }
   $items->NavPrint("Товары");
}
?>


GetIBlockElementListEx

Описание

CIBlockResult
GetIBlockElementListEx (
 string type,
 mixed TypesInc = Array(),
 mixed TypesExc = Array(),
 array Order = Array("SORT"=>"ASC"),
 int cnt = 0,
 array arFilter = Array(),
 array arSelect = Array(),
 mixed arGroupBy = false
);

Функция возвращает активные для текущего сайта элементы из информационных блоков типа type. Функция работает только с активными инфоблоками, так как в ней принудительно выставлен фильтр по активности инфоблока.

Возвращаемое значение

Функция возвращает объект класса CIBlockResult с активными элементами (у которых установлен флаг "Активен", выполняется условие периода активности и находящиеся в активных информационных блоках для текущего сайта).

Примечание: при работе с результатом рекомендуется применять метод класса CDBResult::GetNext(), результатом которого будет массив с полями элемента информационного блока. Все поля при этом будут преобразованы в "HTML безопасный" вид, а в полях с шаблонами URL-ов к страницам (LIST_PAGE_URL - списка элементов и DETAIL_PAGE_URL - детального просмотра) будут заменены параметры #SITE_DIR#, #IBLOCK_ID#, #EXTERNAL_ID# и #ID#. Если результат пуст или достигнут конец выборки CDBResult::GetNext() вернет false. Также можно воспользоваться любыми другими методами класса CDBResult, но при этом в полях LIST_PAGE_URL и DETAIL_PAGE_URL будут оригинальные (как они введены в форме редактирования информационного блока) шаблоны URL-ов, а не с замененными параметрами #SITE_DIR#, #IBLOCK_ID#, #EXTERNAL_ID# и #ID#.

Параметры функции

Параметр | Описание
type | Тип информационных блоков из которых выбираются элементы.
TypesInc Фильтр для включения по ID и(или) символьному коду информационного блока. В качестве параметра может быть как единичное значение (ID или символьный код информационного блока), так и массив (array) таких значений.
Необязательный. По умолчанию включаются все элементы из информационных блоков типа type без дополнительной фильтрации.
Пример: "product_news"
TypesExc Фильтр для исключения по ID и(или) символьному коду информационного блока. В качестве параметра может быть как единичное значение (ID или символьный код информационного блока), так и массив (array) таких значений.
Необязательный. По умолчанию выбираются все элементы из информационных блоков типа type без исключений.
Пример: Array("company_news", "product_news", 22)
Order Порядок сортировки - массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где by - поле для сортировки, может принимать значения:
  • sort - индекс сортировки;
  • timestamp_x - дата изменения;
  • name - название;
  • id - ID элемента;
  • active_from - начало периода действия элемента;
  • active_to - окончание периода действия элемента;
  • order - порядок сортировки сортировки, может принимать значения:
    • asc - по возрастанию;
    • desc - по убыванию.
    Необязательный. По умолчанию равен Array("sort"=>"asc")
Полный список полей сортировки и дополнительную информацию смотрите в CIBlockElement::GetList()
cnt Максимальное количество записей, которые вернет функция.
Необязательный. По умолчанию выбираются все записи.
arFilter Дополнительный фильтр по произвольным полям вида Array("Фильтруемое поле"=>"Значение", ...).
Фильтруемое поле может принимать значения:
  • ID - по коду;
  • ACTIVE - фильтр по активности (Y|N); передача пустого значения ("ACTIVE"=>"") выводит все элементы без учета их состояния;
  • NAME - по имени и фамилии (можно искать по шаблону [%_]);
  • PREVIEW_TEXT - по имени и фамилии (можно искать по шаблону [%_]);
  • DETAIL_TEXT - по детальному описанию (можно искать по шаблону [%_]);
  • SEARCHABLE_CONTENT - по содержимому для поиска. Включает в себя название, описание для анонса и детальное описание (можно искать по шаблону [%_]);
  • CODE - по символьному идентификатору (можно искать по шаблону [%_]);
  • SORT - по сортировке;
  • EXTERNAL_ID - по внешнему коду (можно искать по шаблону [%_]);
  • TIMESTAMP_X - по времени изменения;
  • DATE_CREATE - по времени создания;
  • DATE_ACTIVE_FROM - по дате начала активности;
  • DATE_ACTIVE_TO - по дате окончанию активности;
  • ACTIVE_DATE - непустое значение задействует фильтр по датам активности (DATE_ACTIVE_FROM и DATE_ACTIVE_TO). Если значение не установлено (""), фильтрация по датам активности не производится;
  • IBLOCK_ID - по коду информационного блока;
  • IBLOCK_CODE - по символьному коду информационного блока (можно искать по шаблону [%_]);
  • IBLOCK_LID - по языку (можно искать по шаблону [%_]);
  • IBLOCK_TYPE - по типу блока (можно искать по шаблону [%_]);
  • IBLOCK_ACTIVE - по активности блока (можно искать по шаблону [%_]);
  • SECTION_ID - по родительскому разделу;
  • PROPERTY_<код свойства> - фильтр по значениям свойств (можно искать по шаблону [%_]), для свойств типа "список", поиск будет осуществляться не по значению перечисления, а по его идентификатору;
  • PROPERTY_<код свойства>_VALUE - фильтр по значениям списка для свойств типа "список" (можно искать по шаблону [%_]), поиск будет осуществляться по строковому значению списка, а не по идентификатору;
  • CATALOG_<CATALOG_FIELD>_<PRICE_TYPE> - по полю CATALOG_FIELD из цены типа PRICE_TYPE (ID типа цены), где CATALOG_FIELD может быть: PRICE - цена, CURRENCY - валюта.
Все фильтруемые поля (кроме SECTION_ID и ACTIVE_DATE) могут содержать перед названием тип проверки фильтра [image], а поля SECTION_ID и ACTIVE_DATE могут содержать перед названием тип проверки фильтра "!" - не равно.

Значения фильтра - одиночное значение или массив.

Необязательный. По умолчанию - пустой массив.
Полный список полей фильтра и дополнительную информацию смотрите в CIBlockElement::GetList().
arSelect Массив возвращаемых полей элемента. Список полей элемента, а также можно сразу выводить значения его свойств. Для этого в качестве одного из полей необходимо указать PROPERTY_<PROPERTY_CODE>, где PROPERTY_CODE - ID или символьный код. В результате будет выведены значения свойств элемена в виде полей:
  • PROPERTY_<PROPERTY_CODE>_VALUE - значение;
  • PROPERTY_<PROPERTY_CODE>_ID - код значения у элемента;
  • PROPERTY_<PROPERTY_CODE>_ENUM_ID - код значения (для свойств типа список).
При установленном модуле торгового каталога можно выводить и цены элемента. Для этого в качестве одного из полей необходимо указать CATALOG_GROUP_<PROPERTY_CODE>, где PROPERTY_CODE - ID типа цены.

По умолчанию выводятся все поля элемента.
arGroupBy Массив полей для группировки элемента.

Если поля указаны, то выборка по ним группируется, а в результат добавляется поле CNT - количество сгруппированных элементов.

Если указать в качестве arGroupBy пустой массив, то функция вернет количество элементов CNT по заданному фильтру.

Группировать можно по полям элемента, а также по значениям его свойств. Для этого в качестве одного из полей группировки необходимо указать PROPERTY_<PROPERTY_CODE>, где PROPERTY_CODE - ID или символьный код свойства.

Необязательное. По умолчанию false - записи не группируются.

Смотрите также

  • CIBlockElement::GetList()
  • Поля элементов информационного блока
  • Функция GetIBlockElementList

Примеры использования

<?
if(CModule::IncludeModule("iblock"))
{
   // выберем 15 элементов типа "news" из информационного блока "company_news"
   $items = GetIBlockElementListEx("news", "company_news", Array(),
              Array("DATE_ACTIVE_FROM"=>"DESC", "SORT"=>"ASC", "NAME" => "ASC"), 15);

   // постраничная навигация
   $items->NavPrint("Новости компании");
   // цикл по всем новостям
   while($arItem = $items->GetNext())
   {
     // выведем ссылку на страницу с детальным просмотром
      echo "<a href='".$arItem["DETAIL_PAGE_URL"]."'>".$arItem["NAME"]."</a>";
     // выведем дату
      echo $arItem["DATE_ACTIVE_FROM"]."<br>";
     // выведем картинку для анонса, с ссылкой на детальный просмотр
      echo ShowImage($arItem["PREVIEW_PICTURE"], 100, 100,
                     "border='0'", $arItem["DETAIL_PAGE_URL"]);
     // выведем анонс
      echo $arItem["PREVIEW_TEXT"]."<hr>";
   }
   $items->NavPrint("Новости компании");
}
?>

<?
// Например, если необходимо вывести новости за сегодняшнюю дату (DATE_ACTIVE_FROM >= сегодня):
$items = GetIBlockElementListEx("news", Array(), Array(),
                                Array("SORT"=>"ASC", "ID" => "DESC"), 15,
                                Array(">=DATE_ACTIVE_FROM"=>
                                      date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")))));

// если необходимо вывести все вчерашние новости, т.е.
// (DATE_ACTIVE_FROM >= вчера && DATE_ACTIVE_FROM < сегодня):
$items = GetIBlockElementListEx("news", Array(), Array(),
                                Array("SORT"=>"ASC", "ID" => "DESC"), 15,
                                Array(">=DATE_ACTIVE_FROM"=>
                                      date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")),
                                                                mktime(0,0,0,date("m"),date("d")-1,date("Y"))),
                                      "<DATE_ACTIVE_FROM"=>
                                      date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")),
                                                                mktime(0,0,0,date("m"),date("d"),date("Y")))));

// если необходимо вывести все новости за 1 января 2003г., т.е.
// (DATE_ACTIVE_FROM >= 01.01.2003 && DATE_ACTIVE_FROM < 02.01.2003):
$items = GetIBlockElementListEx("news", Array(), Array(),
                                Array("SORT"=>"ASC", "ID" => "DESC"), 15,
                                Array(">=DATE_ACTIVE_FROM"=>
                                      date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")),
                                                                mktime(0,0,0,1,1,2003)),
                                      "<DATE_ACTIVE_FROM"=>
                                      date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")),
                                                                mktime(0,0,0,1,2,2003))));
?>


GetIBlockList

Описание

CDBResult
GetIBlockList (
 string type,
 mixed TypesInc = array(),
 mixed TypesExc = array(),
 array Order = array("SORT"=>"ASC"),
 int cnt = 0
);

Функция возвращает активные для текущего сайта информационные блоки типа type.

Возвращаемое значение

Функция возвращает объект класса CDBResult с активными (у которых установлен флаг "Активен") информационными блоками для текущего сайта, т.е. того на котором происходит вызов функции.

Примечание: при работе с результатом рекомендуется применять метод класса CDBResult::GetNext(), результатом которого будет массив с полями информационного блока. Все поля при этом будут преобразованы в "HTML безопасный" вид, а в полях с шаблонами URL-ов к страницам (LIST_PAGE_URL - списка элементов и DETAIL_PAGE_URL - детального просмотра) будут заменены параметры #SITE_DIR# и #IBLOCK_ID#. Если результат пуст или достигнут конец выборки CDBResult::GetNext() вернет false.
Можно пользоваться любыми методами класса CDBResult, но при этом в полях LIST_PAGE_URL и DETAIL_PAGE_URL будут оригинальные значения шаблонов URL-ов (как они введены в форме редактирования информационного блока), а не с замененными параметрами #SITE_DIR# и #IBLOCK_ID#.

Параметры функции

Параметр | Описание
type | Тип информационных блоков.
TypesInc Фильтр для включения по ID и(или) символьному коду информационного блока. В качестве параметра может быть как единичное значение (ID или символьный код информационного блока), так и массив (array) таких значений.
Необязательный. По умолчанию включаются все записи типа type без дополнительной фильтрации.
Пример: "product_news"
TypesExc Фильтр для исключения по ID и(или) символьному коду информационного блока. В качестве параметра может быть как единичное значение (ID или символьный код информационного блока), так и массив (array) таких значений.
Необязательный. По умолчанию выбираются все записи типа type без исключений.
Пример: Array("company_news", "product_news", 22)
Order Сортировка - массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где by - поле для сортировки, может принимать значения:
id - сортировка по ID информационных блоков;
sort - индекс сортировки;
timestamp_x - дата изменения;
name - название;
order - порядок сортировки сортировки, может принимать значения:
asc - по возрастанию;
desc - по убыванию;
Необязательный. По умолчанию равен Array("sort"=>"asc") - по возрастанию индекса сортировки.
cnt Максимальное количество записей, которые вернет функция.
Необязательный. По умолчанию выбираются все записи.

Смотрите также

  • Поля информационных блоков

Примеры использования

<?
if(CModule::IncludeModule("iblock"))
{
   //выбираем все информационные блоки типа "catalog"
   $iblocks = GetIBlockList("catalog");
   while($arIBlock = $iblocks->GetNext()) //цикл по всем блокам
   {
      // здесь мы НЕ используем функцию htmlspecialchars($arIBlock["NAME"]),
      // т.к. метод GetNext() делает это за нас
      echo "Название: ".$arIBlock["NAME"]."<br>";
   }
}

?>
<?
if(CModule::IncludeModule("iblock"))
{
   // выберем 5 информационных блоков типа "news", отсортированных по названию,
   // кроме тех, у которых символьный код "company_news"
   $iblocks = GetIBlockList(
               "news",
               Array(),
               "company_news",
               Array("name"=>"asc"),
               5
               );

   while($arIBlock = $iblocks->GetNext()): // цикл по информационным блокам
   ?>
       // ставим ссылку на страницу со списком новостей
       <a href="<?echo $arIBlock["LIST_PAGE_URL"]?>"><?echo $arIBlock["NAME"]?></a><br>
       <?
       // выберем 5 последних новостей для каждого информационного блока
       $items = GetIBlockElementList(
                   $arIBlock["ID"],
                   false,
                   Array("ACTIVE_FROM"=>"desc", "sort"=>"asc"),
                   5
                   );
       while($arItem = $items->GetNext())
       {
            //дальше показ новостей
       }
   endwhile;
}
?>


GetIBlockSection

Описание и параметры

array
GetIBlockSection(
 int ID,
 string type = ""
);

Функция возвращает раздел информационного блока.

Параметры функции

Параметр | Описание
ID | ID раздела.
type | Тип информационного блока, в котором размещён раздел. Устанавливается в настройках модуля. Если задан, то при выборке проверяется чтобы раздел соответствовал этому типу. Необязательный. По умолчанию на раздел не накладываются ограничения по типу.

Возвращаемое значение

Функция возвращает массив полей раздела информационного блока и поле IBLOCK_NAME - название информационного блока. Все возвращаемые поля преобразованы в "HTML безопасный" вид.
Если по заданным параметрам раздел не найден, функция вернет false.

Примечание: функция вернет поля раздела информационного блока только в том случае, если раздел "активен" и находится в информационный блоке, который также "активен" и привязан к текущему сайту.

Смотрите также

  • Поля раздела информационного блока

Примеры использования

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

$APPLICATION->SetTitle("Просмотр раздела");

// подключим модуль и выберем раздел ID типа product
if(CModule::IncludeModule("iblock") && ($arIBlockSection = GetIBlockSection($_GET['ID'], 'product')))
{
   // В заголовок страницы вставим название раздела
   $APPLICATION->SetTitle($arIBlockSection["NAME"]);
   // В навигационную цепочку вставим название и ссылку на текущий информационный блок
   $APPLICATION->AddChainItem($arIBlockSection["IBLOCK_NAME"], "products.php?ID=".$arIBlockElement["IBLOCK_ID"]);
   // выведем картинку
   echo ShowImage($arIBlockSection["PICTURE"], 150, 150, "border='0'", "", true);
   // выведем детальное описание
   echo $arIBlockSection["DESCRIPTION"]."<br>";
}
else
   echo ShowError("Раздел не найден");

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>


GetIBlockSectionList

Описание

CDBResult
  GetIBlockSectionList (
 int iblock_id,
 int section_id = false,
 array order = Array("LEFT_MARGIN"=>"ASC"),
 int cnt = 0,
 array arFilter = Array()
);

Функция возвращает активные разделы из информационного блока iblock_id. Использует метод CIBlockSection::GetList

Возвращаемое значение

Функция возвращает объект класса CDBResult с активными разделами (находящиеся в активных информационных блоках (у которых установлен флаг "Активен"), и которые лежат внутри активных разделов).

Примечания:

1. При работе с результатом рекомендуется применять метод класса CDBResult::GetNext(), результатом которого будет массив с полями раздела. Все поля при этом будут преобразованы в "HTML безопасный" вид. Если результат пуст или достигнут конец выборки CDBResult::GetNext() функция вернет false.

2. Поле для сортировки left_margin, так называемая "сквозная" сортировка, высчитывается на основании поля sort, уровня вложенности и сортировкой верхнего уровня. Отличие полей sort и left_margin в том, что sort указывается пользователем, для сортировки разделов между собой в пределах одного раздела-родителя, а вычисляемое left_margin предназначено для сортировки во всем информационном блоке.

Параметры функции

Параметр | Описание
iblock_id | ID информационного блока из которого будут выбраны разделы.
section_id ID папки-родителя. Для получения корневых разделов информационного блока установите параметр section_id = 0.
Необязательный. По умолчанию (false) выбираются все записи без ограничения по разделу-родителю.
order Массив вида Array(order1=>by1[, order2=>by2 [, ..]]), где order - поле для сортировки, может принимать значения:
  • sort - индекс сортировки;
  • timestamp_x - дата изменения;
  • name - название;
  • id - ID папки;
  • left_margin - поле обозначающее "сквозную" сортировку (см. Примечание);
  • depth_level - уровень вложенности папки;
  • by - порядок сортировки сортировки, может принимать значения:
    • asc - по возрастанию;
    • desc - по убыванию.
    Необязательный. По умолчанию равен Array("left_margin"=>"asc").
Полный список полей сортировки и дополнительную информацию смотрите в CIBlockSection::GetList()
cnt Максимальное количество записей, которые вернет функция.
Необязательный. По умолчанию выбираются все записи.
arFilter Дополнительный фильтр - массив вида array("фильтруемое поле"=>"значение" [, ...])
Может принимать значения:
  • ACTIVE - фильтр по активности (Y|N);
  • GLOBAL_ACTIVE - фильтр по активности, учитывая активность вышележащих разделов (Y|N);
  • NAME - по названию (можно искать по шаблону [%_]);
  • CODE - по символьному коду (по шаблону [%_]);
  • EXTERNAL_ID - по внешнему коду (по шаблону [%_]);
  • IBLOCK_ID - по коду информационного блока;
  • DEPTH_LEVEL - по уровню вложенности;
  • SECTION_ID - по разделу-родителю;
  • LEFT_BORDER, RIGHT_BORDER - по левой и правой границе (поля LEFT_MARGIN и RIGHT_MARGIN, см. примечание);
  • ID - по коду;
  • PROPERTY - по значениям свойств внутрилежащих элементов, PROPERTY - массив вида Array("код свойства"=>"значение", ...).
Необязательное. По умолчанию записи не фильтруются дополнительно.

Все фильтруемые поля могут содержать перед названием тип проверки фильтра [image].

Полный список параметров фильтра и дополнительную информацию b в CIBlockSection::GetList()

Смотрите также

  • Поля разделов информационных блоков

Примеры использования

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

$APPLICATION->SetTitle("Каталог");

if(CModule::IncludeModule("iblock"))
{
   // если $ID не задан или это не число, тогда
   // $ID будет =0, выбираем корневые разделы
   $ID = IntVal($_GET['ID']);
   // выберем папки из информационного блока $BID и раздела $ID
   $items = GetIBlockSectionList($_GET['BID'], $ID, Array("sort"=>"asc"), 10);
   while($arItem = $items->GetNext())
   {
      echo '<a href="catalog.php?BID='.
           urlencode($_GET['BID']).
           '&id='.$arItem['ID'].'">'.$arItem["NAME"].'</a><br>';
      echo $arItem["DESCRIPTION"]."<br>";
   }
}
else
   ShowError("Модуль не установлен");

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>


ImportXMLFile

Описание

mixed
ImportXMLFile(
   string file_name,
   string iblock_type = "-",
   array site_id = '',
   string section_action = "D",
   string element_action = "D",
   bool use_crc = false,
   bool preview = false,
   bool sync = false,
   bool return_last_error = false,
   bool return_iblock_id = false
);

Функция выполняет импорт xml-файла в инфоблок.

Возвращаемое значение

Возвращает true в случае успешного импорта или строку с сообщением об ошибке.

Параметры функции

Параметр | Описание | С версии
file_name | Путь к xml-файлу. |
iblock_type | Тип инфоблока, в который импортировать. |
site_id | Сайт, к которому будет привязан инфоблок. |
section_action | Действие, которое осуществляется с секциями, отсутствующими в файле импорта ("N" - ничего; "A" - деактивировать; "D" - удалить, используется по умолчанию). |
element_action | Действие, которое осуществляется с элементами, отсутствующими в файле импорта ("N" - ничего; "A" - деактивировать; "D" - удалить, используется по умолчанию). |
use_crc | Использование контрольных сумм при импорте для увеличения производительности и избежания лишних обновлений элементов. |
preview | Если true, то формировать картинку анонса из детальной картинки. |
sync | Позволяет разнести процесс синхронизации с 1С и обмен новостями через модуль Контроллер сайтов [image] . | 8.5.5
return_last_error | Если true, то функция в случае ошибки вернёт строку, иначе null. | 8.6.3
return_iblock_id | Если true, то функция в случае успеха вернёт идентификатор инфоблока (нового или обновлённого). | 12.5.5


Календарь

Информация, представленная в данном разделе, содержит сведения о событиях модуля Календарь.


Календарь в ядре D7

Список классов модуля Календарь в ядре D7
Класс, пространство имен | Описание
Integration | Пространство имен \Bitrix\Calendar\Integration содержит подпространства и классы для интеграции календаря событий с Живой Лентой, а также с модулями системы.
PushTable | Класс таблет. Содержит таблицу описания мобильных устройств, для дальнейшей отправки по ней push-уведомлений.
Sync | Пространство имен \Bitrix\Calendar\Sync содержит классы для текущих и будущих синхронизаций с различными внешними системами и сервисами (например, Google Calendar).
Update | Пространство имен \Bitrix\Calendar\Update содержит служебные классы для обновления модуля.


Константы

Константа | Проверяется | С версии
BX_COMP_MANAGED_CACHE | CCalendarLiveFeed::FormatEvent | 14.0.0
BX_UTF | CCalendarSect::FormatICal |
OLD_OUTLOOK_VERSION | CCalendarWebService::GetListItemChangesSinceToken |
SITE_SERVER_NAME | CCalendar::InitCalDavParams |


События

Событие | Вызывается | Метод | С версии
OnAfterBuildSceleton | в момент вывода на страницу базовой верстки календаря. | CCalendarSceleton::Build | 11.0.0
OnAfterCalendarEventDelete | после удаления события календаря. | CCalendarEvent::Delete | 11.5.6
OnAfterCalendarEventEdit | после изменения события календаря. | CCalendarEvent::Edit | 12.0.2
OnAfterCalendarEventUserFieldsUpdate | после обновления пользовательских полей календаря. | CCalendarEvent::UpdateUserFields | 12.0.2
OnBeforeBuildSceleton | перед выводом на страницу базовой верстки календаря. | CCalendarSceleton::Build | 11.0.0
OnBeforeCalendarEventDelete | перед удалением события календаря. | CCalendarEvent::Delete | 11.5.6
OnRemindEvent | в момент отсылки напоминания о событии календаря. | CCalendar::ReminderAgent | 11.0.0
OnSendInvitationMessage | при отсылке ряда уведомлений календаря. | CCalendar::SendMessage | 11.0.0


Конверсия

Модуль Конверсия позволяет вычислять конверсию сайта, а также получать аналитические отчеты о том, что влияет на ее значение.

О работе с модулем смотрите в учебном курсе [image].

Перед использованием модуля необходимо проверить, установлен ли он, и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("conversion")){
//здесь можно использовать функции и классы модуля
}
?>


Конверсия в ядре D7

Список классов модуля Конверсия в ядре D7

Класс | Описание | С версии
Internals | Пространство имён содержит классы для работы с основными сущностями модуля. | 15.5.1
DayContext | Класс для работы с уникальным ежедневным контекстом. |
MobileDetect | Класс для работы с контекстом мобильных устройств. |


События

Событие | Вызывается | С версии
OnGetCounterTypes | При опросе некоторого счетчика | 15.5.1
OnGetAttributeTypes | При опросе возможных атрибутов | 15.5.1
OnGetAttributeGroupTypes | При опросе группы атрибутов | 15.5.1
OnSetDayContextAttributes | При опросе, к каким атрибутам принадлежит пользователь Каждому пользователю при его первом хите присваивается Контекст. По сути это уникальный набор атрибутов для пользователя, причем из каждой группы может быть установлен только один атрибут. При этом после 00:00 каждого дня контекст пользователя сбрасывается и пересчитывается заново при его первом входе. | 15.5.1


Контроллер сайтов

  • Контроллер сайтов в ядре D7
  • События


Контроллер сайтов в ядре D7

Список классов модуля Контроллер сайтов в ядре D7

Класс/Пространство имен | Описание | С версии
GroupMapTable | Таблица соответствий групп пользователей, подключенных сайтов и групп пользователей контроллера. |
AuthGrantTable | Таблица выданных разрешений для пользователей для выполнения определённых операций с подключенными сайтами. |
AuthLogTable | Таблица журнала действий пользователей. |
GroupTable | Таблица групп подключенных сайтов. |
MemberTable | Таблица подключенных сайтов. |


События

Событие | Вызывается | Метод | С версии
OnAfterCloseMember | После отключения управляемого сайта. | CAllControllerMember::CloseMember | 6.5.3
OnBeforeUpdateCounters | Перед обновлением счётчиков сайта. Позволяет модифицировать код обновляющего счётчика. В обработчик могут передаваться пользовательские поля группы контроллера. | CAllControllerMember::UpdateCounters | 11.5.0
OnBeforeControllerMemberAdd | Перед добавлением клиента. | CControllerMember::CheckFields | 12.5.0
OnBeforeControllerMemberUpdate | Перед обновлением клиента. | CControllerMember::CheckFields | 12.5.0
OnBeforeSendCheckAuth | Используется для модификации полей пользователя, отправляемых на подключенный сайт при авторизации через контроллер. | CControllerMember::CheckFields | 14.5.0
OnBeforeTaskAdd | Перед добавлением задачи. | CControllerTask::CheckFields | 15.5.0
OnBeforeSetGroupSettings | Перед установкой настроек группы. | CControllerMember::SetGroupSettings | 16.0.1


Конструктор отчетов

С помощью модуля можно создавать отчеты для разных объектов и в дальнейшем многократно их запускать. Отчеты изменяются в реальном времени, в зависимости от хода выполнения задач.

О работе с модулем смотрите в учебном курсе [image].

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("report")){
//здесь можно использовать функции и классы модуля
}
?>


Конструктор отчетов в ядре D7

Список классов модуля Конструктор отчетов в ядре D7

Класс | Описание | С версии
Internals | Пространство содержит классы для работы с таблицами модуля. | 16.0.1
RightsManager | Класс для управления правами отчётов. | 16.0.1
ReportTable | Класс для работы с таблицей отчётов. |
Sharing | Класс для управления общим доступом. | 16.0.1
VisualConstructor | подпространство содержит классы для визуального конструктора отчетов. | 18.0.0


Список событий

Событие | Вызывается | Метод | С версии
OnBeforeReportAdd | перед добавлением отчета. | CReport::Add | 11.0.5
OnBeforeReportDelete | перед удалением отчета. | CReport::Delete | 11.0.5
OnBeforeReportUpdate | перед обновлением отчета. | CReport::Update | 11.0.5
OnReportAdd | после добавления отчета. | CReport::Add | 11.0.5
OnReportDelete | после удаления отчета. | CReport::Delete | 11.0.5
OnReportUpdate | после обновления отчета. | CReport::Update | 11.0.5


Список классов

Класс | Описание | С версии
CReport | Класс для манипуляций с отчётами. | 11.0.0


CReport

CReport - класс для манипуляций с отчётами.

Класс | Описание | С версии
Update | Изменяет существующий отчёт. |
Add | Добавляет новый отчёт. |
GetList | Добавляет новый отчёт. | 14.1.1
Delete | Удаляет существующий отчёт. | 14.1.1
setViewParams | Сохраняет параметры просмотра отчёта текущего пользователя. | 14.1.1
getViewParams | Позволяет получить параметры просмотра отчёта текущего пользователя. | 14.1.1
generateChains | Формирует дерево объектов с полным набором всех полей, необходимых для формирования запроса выборки данных для каждого доступного поля отчёта. | 14.1.1
generateColumnTree | Формирует дерево с описанием доступных в отчёте полей с привязками к цепочкам сущностей. | 14.1.1
clearViewParams | Очищает все сохранённые параметры просмотра отчёта с идентификатором id для текущего пользователя. | 14.1.1
attachLangToColumnTree | Загружает языковые фразы для полей отчёта, используя описания сущностей и вспомогательный класс отчёта. | 14.1.1
fillFilterReferenceColumns | Проверяет, с использованием метода fillFilterReferenceColumn вспомогательного класса, корректность значений фильтров, ссылающихся на сущности. | 14.1.1
GetCountInt | Позволяет получить количество отчётов пользователя, соответствующих ownerId, или всех отчётов пользователя, если не указан ownerId. | 14.1.1
getFullColumnTitle | Дополняет название колонки отчёта суффиксами соответствующими настройкам этой колонки. | 14.1.1
prepareSelectViewElement | Формирует алиас и выражение для поля, учитывая опции, выбранные для него в настройках отчёта. | 14.1.1
isColumnPercentable | Определяет, может ли вычисляться процент от заданной колонки отчёта. | 14.1.1
rewriteUserShortName | Преобразует поля с составными именами пользователей в вычисляемые на уровне базы данных и возвращающие имена в заданном формате. | 14.1.1
generateValueUrl | Формирует ссылки, отображаемые в отчёте, на основе шаблонов, сформированных методом appendHrefSelectElements, и данных конкретных значений. | 14.1.1
appendHrefSelectElements | Добавляет информацию, необходимую для построения ссылок для значений, отображаемых в отчёте. | 14.1.1
getUniqueFieldsByTree | Формирует полный список доступных в отчёте полей из основной и связанных сущностей на основе информации, возвращаемой методом generateColumnTree. | 14.1.1
isValidFilterCompareVariation | Проверяет применимость операции сравнения к полю отчёта в фильтре. | 14.1.1
addFreshDefaultReports | Добавляет отчёты по умолчанию. | 14.1.1
isColumnTotalCountable | Определяет, может ли вычисляться итоговое значение для заданной колонки отчёта. | 14.1.1
sqlizeFilter | Преобразует фильтр из внутреннего формата модуля отчётов в представление, подходяещее для использования в методе setFilter класса \Bitrix\Main\Entity\Query с сохранением древовидной структуры фильтра. | 14.1.1
makeSingleFilter | Преобразует фильтр из внутреннего формата модуля отчётов в представление, подходящее для использования в методе setFilter класса \Bitrix\Main\Entity\Query с преобразованием древовидной структуры в последовательную. | 14.1.1
collectFullHumanTitles | Формирует массив названий для всех доступных полей отчёта на основе информации, возвращаемой методом generateColumnTree. | 14.1.1
getFormattedNameExpr | Формирует выражение вычисляемого поля для метода rewriteUserShortName в соответствии с заданным форматом имени пользователя. | 14.1.1


Add

Конструктор отчетов>Классы>CReport >Add (с версии 11.0.0)

CReport ::Add

int Add($settings);

Добавляет новый отчёт. Метод статический.

Параметры функции

Параметр | Описание
settings | Массив с конфигурацией нового отчёта.

Возвращаемое значение

Возвращает идентификатор созданного отчёта, или false в случае неудачи.

Примеры использования

<?

$ID = CReport::Add(
    array(
        'title' => 'Список задач',
        'description' => 'Просто список задач',
        'owner' => 'TASKS',
        'entity' => 'Bitrix\\Tasks\\Task',
        'period' => array(
            'type' => 'month',
            'value' => null
        ),
        'select' => array(
            0 => array('name' => 'TITLE'),
            1 => array('name' => 'PRIORITY'),
            2 => array('name' => 'RESPONSIBLE.SHORT_NAME'),
            3 => array('name' => 'STATUS_PSEUDO')
        ),
        'filter' => array(),
        'sort' => 0,
        'sort_type' => 'ASC',
        'limit' => null,
        'red_neg_vals' => false,
        'grouping_mode' => false,
        'chart' => null
    )
);

?>


addFreshDefaultReports

Конструктор отчетов>Классы>CReport >addFreshDefaultReports (с версии 14.1.1)

CReport ::addFreshDefaultReports

addFreshDefaultReports($vReports, $ownerId);

Добавляет отчёты по умолчанию. Метод статический.

Параметры функции

Параметр | Описание
$vReports | Массив с полной информацией о добавляемых отчётах.
$ownerId | Идентификатор владельца. Как правило, содержит название модуля, к которому относятся отчёты, и наименование базовой сущности (если в модуле можно формировать отчёты на основе разных сущностей).


appendHrefSelectElements

Конструктор отчетов>Классы>CReport >appendHrefSelectElements (с версии 14.1.1)

CReport ::appendHrefSelectElements

appendHrefSelectElements(&$elem, $fList, $entity, $helper_class, &$select, &$runtime);

Добавляет информацию, необходимую для построения ссылок для значений, отображаемых в отчёте. Метод статический.

Параметры функции

Параметр | Описание
$elem | Ссылка на элемент массива выбранных полей отчёта.
$fList | Массив объектов, описывающих выбранные поля отчёта.
$entity | Объект базовой сущности отчёта.
$helper_class | Имя вспомогательного класса отчёта.
$select | Ссылка на массив выбранных полей отчёта.
$runtime | Ссылка на массив полей времени выполнения отчёта.

Возвращаемое значение

Не возвращает, модифицирует параметр $elem, добавляя в него массив href с шаблоном формирования ссылки pattern и массив elements с описанием полей, значения которых будут подставляться в шаблон для окончательного формирования ссылки. В случае, если для формирования ссылки требуются значения полей, которые не выбраны для отчёта, то они добавляются в массив $select. Если дополнительные поля определены как поля времени выполнения, то они добавляются в массив $runtime.


attachLangToColumnTree

Конструктор отчетов>Классы>CReport >attachLangToColumnTree (с версии 14.1.1)

CReport ::attachLangToColumnTree

attachLangToColumnTree(&$tree, $initEntity, $helper_class, $preTitle = array());

Загружает языковые фразы для полей отчёта, используя описания сущностей и вспомогательный класс отчёта. Метод статический.

Примечание. Используется внутри метода generateColumnTree.

Параметры функции

Параметр | Описание
$tree | Ссылка на дерево с описанием доступных в отчёте полей, формируемое методом generateColumnTree, в котором необходимо загрузить языковые фразы.
$initEntity | Объект базовой сущности отчёта.
$helper_class | Имя вспомогательного класса отчёта.
$preTitle | Префикс для полного названия поля.

Возвращаемое значение

Не возвращает, модифицирует параметр $tree.


clearViewParams

Конструктор отчетов>Классы>CReport >clearViewParams (с версии 14.1.1)

CReport ::clearViewParams

clearViewParams($id);

Очищает все сохранённые параметры просмотра отчёта с идентификатором id для текущего пользователя. Метод статический.

Параметры функции

Параметр | Описание
$id | Идентификатор отчёта, для которого нужно очистить параметры просмотра.


collectFullHumanTitles

Конструктор отчетов>Классы>CReport >collectFullHumanTitles (с версии 14.1.1)

CReport ::collectFullHumanTitles

collectFullHumanTitles($tree);

Формирует массив названий для всех доступных полей отчёта на основе информации, возвращаемой методом generateColumnTree. Метод статический.

Параметры функции

Параметр | Описание
$tree | Дерево с описанием доступных в отчёте полей, результат вызова метода generateColumnTree.

Возвращаемое значение

Массив, ключами которого являются определения полей отчёта, а значениями - их полные названия.


Delete

Конструктор отчетов>Классы>CReport >Delete (с версии 14.1.1)

CReport ::Delete

int Delete($ID);

Удаляет существующий отчёт. Метод статический.

Параметры функции

Параметр | Описание
$ID | Идентификатор удаляемого отчёта.

Возвращаемое значение

Возвращает true в случае успешного удаления или false в случае неудачи.


fillFilterReferenceColumns

Конструктор отчетов>Классы>CReport >fillFilterReferenceColumns (с версии 14.1.1)

CReport ::fillFilterReferenceColumns

fillFilterReferenceColumns(&$filters, &$fieldList, $helperClass);

Проверяет, с использованием метода fillFilterReferenceColumn вспомогательного класса, корректность значений фильтров, ссылающихся на сущности. Алгоритм проверки и модификации фильтров определяется разработчиком метода fillFilterReferenceColumn вспомогательного класса отчёта. Метод статический.

Параметры функции

Параметр | Описание
$filters | Ссылка на фильтры в настройках отчёта.
$fieldList | Ссылка на массив с описанием полей отчёта, который является результатом метода getUniqueFieldsByTree.
$helperClass | Имя вспомогательного класса отчёта.

Возвращаемое значение

Не возвращает, модифицирует фильтры через параметр $filters. Модификация осуществляется методом fillFilterReferenceColumn вспомогательного класса отчёта, который вызывается для всех фильтров ссылочного типа.


generateChains

Конструктор отчетов>Классы>CReport >generateChains (с версии 14.1.1)

CReport ::generateChains

generateChains($strChains, $initEntity, $initKey);

Формирует дерево объектов с полным набором всех полей, необходимых для формирования запроса выборки данных для каждого доступного поля отчёта. Метод статический.

Параметры функции

Параметр | Описание
$strChains | Описание полей отчёта (возвращает метод getColumnList вспомогательного класса отчёта).
$initEntity | Объект базовой сущности отчёта.
$initKey | Пустая строка при обычном вызове или контекст цепочки, описывающей поле отчёта, при рекурсивном вызове.

Возвращаемое значение

Возвращает массив с цепочками объектов, соответствующих описанию полей в аргументе $strChains. Возвращаемое значение может использоваться для построения дерева всех доступных полей отчёта методом generateColumnTree.

Примеры использования

<?

// Получение имени базовой сущности отчёта вызовом метода getEntityName вспомогательного класса.
$entityName = call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getEntityName'));
// Получение описания полей базовой сцщности отчёта вызовом метода getColumnList вспомогательного класса.
$entityFields = call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getColumnList'));
// Получение массива объектов цепочек всех доступных в отчёте полей.
$chains = CReport::generateChains($entityFields, $entity, '');
// Передача массива цепочек в метод generateColumnTree для формирования дерева с полным описанием всех
// доступных в отчёте полей.
$fieldsTree = CReport::generateColumnTree($chains, $entity, $arParams['REPORT_HELPER_CLASS']);

?>


generateColumnTree

Конструктор отчетов>Классы>CReport >generateColumnTree (с версии 14.1.1)

CReport ::generateColumnTree

generateColumnTree($chains, $initEntity, $helper_class, $level = 0);

Формирует дерево с описанием доступных в отчёте полей с привязками к цепочкам сущностей. Метод статический.

Параметры функции

Параметр | Описание
$chains | Массив с цепочками объектов, соответствующих описанию полей отчёта (результат метода generateChains).
$initEntity | Объект базовой сущности отчёта.
$helper_class | Имя вспомогательного класса отчёта.
$level | Уровень рекурсии.

Возвращаемое значение

Возвращает дерево с описанием доступных в отчёте полей, их метаданными, загруженными названиями и привязками к цепочкам сущностей. Например, в конструкторе отчёта, используется для построения интерфейса выбора полей в отчёт из дерева.

Примеры использования

<?

// Получение имени базовой сущности отчёта вызовом метода getEntityName вспомогательного класса.
$entityName = call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getEntityName'));
// Получение описания полей базовой сущности отчёта вызовом метода getColumnList вспомогательного класса.
$entityFields = call_user_func(array($arParams['REPORT_HELPER_CLASS'], 'getColumnList'));
// Получение массива объектов цепочек всех доступных в отчёте полей.
$chains = CReport::generateChains($entityFields, $entity, '');
// Формирование дерева с описанием доступных в отчёте полей.
$fieldsTree = CReport::generateColumnTree($chains, $entity, $arParams['REPORT_HELPER_CLASS']);

?>


generateValueUrl

Конструктор отчетов>Классы>CReport >generateValueUrl (с версии 14.1.1)

CReport ::generateValueUrl

generateValueUrl($elem, $dataRow, $entity);

Формирует ссылки, отображаемые в отчёте, на основе шаблонов, сформированных методом appendHrefSelectElements, и данных конкретных значений. Метод статический.

Параметры функции

Параметр | Описание
$elem | Структура данных, описывающая колонку отчёта, формируется в компоненте просмотра отчёта, в ключе href которой, содержится информация для формирования ссылки.
$dataRow | Запись результата выборки из базы данных.
$entity | Объект базовой сущности отчёта.

Возвращаемое значение

Возвращает ссылку для значения поля отчёта соответствующего параметру $elem.


GetCountInt

Конструктор отчетов>Классы>CReport >GetCountInt (с версии 14.1.1)

CReport ::GetCountInt

int GetCountInt($ownerId = '');

Позволяет получить количество отчётов пользователя, соответствующих ownerId, или всех отчётов пользователя, если не указан ownerId. Метод статический.

Параметры функции

Параметр | Описание
$ownerId | Идентификатор владельца. Как правило, содержит название модуля, к которому относятся отчёты, и наименование базовой сущности (если в модуле можно формировать отчёты на основе разных сущностей).

Возвращаемое значение

Возвращает количество отчётов.

Примеры использования

<?
<br/>
$n = CReport::GetCountInt('crm');
echo '<p>Количество отчётов по сделкам: '.$n.'.</p>';
<br/>
?>


getFormattedNameExpr

Конструктор отчетов>Классы>CReport >getFormattedNameExpr (с версии 14.1.1)

CReport ::getFormattedNameExpr

getFormattedNameExpr($format, $defPrefix);

Формирует выражение вычисляемого поля для метода rewriteUserShortName в соответствии с заданным форматом имени пользователя. Метод статический.

Параметры функции

Параметр | Описание
$format | Формат имени пользователя.
$defPrefix | Префикс определения поля с именем пользователя.

Возвращаемое значение

Массив элементов выражения для формирования поля времени выполнения именем пользователя в заданном формате.


getFullColumnTitle

Конструктор отчетов>Классы>CReport >getFullColumnTitle (с версии 14.1.1)

CReport ::getFullColumnTitle

getFullColumnTitle($view, $viewColumns, $fullHumanTitles);

Дополняет название колонки отчёта суффиксами, соответствующими настройкам этой колонки. Например, если колонка является вычисляемой и задана операция "Сумма", то к названию колонки отчёта добавится суффикс "(Сумма)". Метод статический.

Параметры функции

Параметр | Описание
$view | Структура данных, описывающая колонку отчёта, формируется в компоненте просмотра отчёта.
$viewColumns | Массив, содержащий информацию о всех колонках отчёта, в виде структур аналогичных параметру $view.
$fullHumanTitles | Массив с названиями полей отчёта.

Возвращаемое значение

Возвращает модифицированное название колонки отчёта.


GetList

Конструктор отчетов>Классы>CReport >GetList (с версии 14.1.1)

CReport ::GetList

Bitrix\Main\DB\Result
GetList($ownerId);
result_type

Позволяет получить список отчётов пользователя, соответствующих ownerId, или всех отчётов пользователя, если не указан ownerId. Метод статический.

Параметры функции

Параметр | Описание
$ownerId | Идентификатор владельца. Как правило, содержит название модуля, к которому относятся отчёты, и наименование базовой сущности (если в модуле можно формировать отчёты на основе разных сущностей).

Возвращаемое значение

Возвращает экземпляр Bitrix\Main\DB\Result, или false в случае неудачи.

Примеры использования

<?

$obRep = CReport::GetList('crm');
echo '<p>Список отчётов по сделкам:</p><ul>';
while($arRep = $obRep->fetch())
    echo '<li>'.$arRep['TITLE'];
echo '</ul>';

?>


getUniqueFieldsByTree

Конструктор отчетов>Классы>CReport >getUniqueFieldsByTree (с версии 14.1.1)

CReport ::getUniqueFieldsByTree

getUniqueFieldsByTree($tree);

Формирует полный список доступных в отчёте полей из основной и связанных сущностей на основе информации, возвращаемой методом generateColumnTree. Другими словами, разворачивает информацию о полях из древовидной структуры, возвращённой методом generateColumnTree, в список, ключами которого являются определения полей отчёта относительно базовой сущности. Метод статический.

Параметры функции

Параметр | Описание
$tree | Дерево с описанием доступных в отчёте полей, результат вызова метода generateColumnTree.

Возвращаемое значение

Массив, ключами которого являются определения полей относительно базовой сущности, а значениями - объекты, описывающие поля отчёта.

Примечание. Результат используется для быстрого получения объектов, описывающих поля, по их определению.


getViewParams

Конструктор отчетов>Классы>CReport >getViewParams (с версии 14.1.1)

CReport ::getViewParams

string getViewParams($id, $templateName);

Позволяет получить параметры просмотра отчёта текущего пользователя. Метод статический.

Параметры функции

Параметр | Описание
$id | Идентификатор отчёта, для которого нужно получить параметры.
$templateName | Имя шаблона компонента, которому соответствуют параметры просмотра отчёта.

Возвращаемое значение

Возвращает строку с параметрами просмотра отчёта текущего пользователя.


isColumnPercentable

Конструктор отчетов>Классы>CReport >isColumnPercentable (с версии 14.1.1)

CReport ::isColumnPercentable

isColumnPercentable($view, $helperClassName);

Определяет, может ли вычисляться процент от заданной колонки отчёта. Метод статический.

Параметры функции

Параметр | Описание
$view | Структура данных, описывающая колонку отчёта, формируется в компоненте просмотра отчёта.
$helperClassName | Имя вспомогательного класса отчёта.

Возвращаемое значение

Возвращает true в случае, если от заданной колонки может вычисляться процент, иначе false.


isColumnTotalCountable

Конструктор отчетов>Классы>CReport >isColumnTotalCountable (с версии 14.1.1)

CReport ::isColumnTotalCountable

isColumnTotalCountable($view, $helperClassName);

Определяет, может ли вычисляться итоговое значение для заданной колонки отчёта. Метод статический.

Параметры функции

Параметр | Описание
$view | Структура данных, описывающая колонку отчёта, формируется в компоненте просмотра отчёта.
$helperClassName | Имя вспомогательного класса отчёта.

Возвращаемое значение

Возвращает true в случае, если от заданной колонки может вычисляться итог, иначе false.


isValidFilterCompareVariation

Конструктор отчетов>Классы>CReport >isValidFilterCompareVariation (с версии 14.1.1)

CReport ::isValidFilterCompareVariation

isValidFilterCompareVariation($fDefinition, $fType, $variation, $variations);

Проверяет применимость операции сравнения к полю отчёта в фильтре. Метод статический.

Параметры функции

Параметр | Описание
$fDefinition | Определение поля в фильтре отчёта.
$fType | Тип поля в фильтре отчёта.
$variation | Операция сравнения, заданная для фильтра.
$variations | Информация о допустимых операциях сравнения для полей отчёта. Обычно возвращается методом getCompareVariations вспомогательного класса отчёта.

Возвращаемое значение

Возвращает true, если операция сравнения применима к полю фильтра, иначе false.


makeSingleFilter

Конструктор отчетов>Классы>CReport >makeSingleFilter (с версии 14.1.1)

CReport ::makeSingleFilter

makeSingleFilter($filter);

Преобразует фильтр из внутреннего формата модуля отчётов в представление, подходящее для использования в методе setFilter класса \Bitrix\Main\Entity\Query с преобразованием древовидной структуры в последовательную. Метод статический.

Параметры функции

Параметр | Описание
$filter | Структура данных из настроек отчёта, описывающая фильтр.

Возвращаемое значение

Возвращает модифицированную структуру фильтра.


prepareSelectViewElement

Конструктор отчетов>Классы>CReport >prepareSelectViewElement (с версии 14.1.1)

CReport ::prepareSelectViewElement

prepareSelectViewElement($elem, $select, $is_init_entity_aggregated, $fList, $fChainList, $helper_class, Entity\Base $entity);

Формирует алиас и выражение для поля, учитывая опции, выбранные для него в настройках отчёта.

Примечание. Используется в компоненте просмотра отчёта.

Параметры функции

Параметр | Описание
$elem | Элемент из массива выбранных полей отчёта.
$select | Массив выбранных полей отчёта.
$is_init_entity_aggregated | Признак того, что записи базовой сущности отчёта в результирующей выборке сгруппированы.
$fList | Массив объектов, описывающих выбранные поля отчёта.
$fChainList | Массив объектов цепочек выбранных полей отчёта.
$helper_class | Имя вспомогательного класса отчёта.
$entity | Объект базовой сущности отчёта.

Возвращаемое значение

Возвращает массив из двух элементов. Первый элемент содержит алиас выбранного поля отчёта. Второй элемент содержит выражение аналогичное тем, которые возвращает метод getColumnList вспомогательного класса, с той лишь разницей, что здесь учтены настройки отчёта, такие как: является ли поле вычисляемым, какая операция применяется для вычисления поля (сумма, количество уникальных, среднее, максимальное , процент от столбца и т.п.). Возвращаемое значение используется далее для создания полей времени выполнения, если необходимо, и для формирования запроса на выборку данных.


rewriteUserShortName

Конструктор отчетов>Классы>CReport >rewriteUserShortName (с версии 14.1.1)

CReport ::rewriteUserShortName

rewriteUserShortName(&$select, &$runtime, $format, $entity, $grc=false)

Преобразует поля с составными именами пользователей в вычисляемые на уровне базы данных и возвращающие имена в заданном формате. Метод статический.

Параметры функции

Параметр | Описание
$select | Ссылка на массив выбранных полей отчёта.
$runtime | Ссылка на массив полей времени выполнения отчёта.
$format | Формат имени пользователя. Например, можно получить с помощью метода CSite::GetNameFormat().
$entity | Объект базовой сущности отчёта.
$grc | Признак, нужно или не нужно перед алиасом сформированного поля времени выполнения добавлять префикс "GROUP_CONCAT_", означающий применение операции перечисления.

Возвращаемое значение

Не возвращает. Удаляет поля с именем пользователя из массива $select и добавляет вместо них поля времени выполнения в массив $runtime.


setViewParams

Конструктор отчетов>Классы>CReport >setViewParams (с версии 14.1.1)

CReport ::setViewParams

bool setViewParams($id, $templateName, $strParams);

Сохраняет параметры просмотра отчёта текущего пользователя. Метод статический.

Параметры функции

Параметр | Описание
$id | Идентификатор отчёта, для которого сохраняются параметры.
$templateName | Имя шаблона компонента, которому соответствуют сохраняемые параметры.
$strParams | Строка параметров просмотра отчёта.

Возвращаемое значение

Возвращает true в случае успешного сохранения параметров или false в случае неудачи.


sqlizeFilter

Конструктор отчетов>Классы>CReport >sqlizeFilter (с версии 14.1.1)

CReport ::sqlizeFilter

sqlizeFilter($filter);

Преобразует фильтр из внутреннего формата модуля отчётов в представление, подходяещее для использования в методе setFilter класса \Bitrix\Main\Entity\Query с сохранением древовидной структуры фильтра. Используется в методе makeSingleFilter. Метод статический.

Параметры функции

Параметр | Описание
$filter | Структура данных из настроек отчёта, описывающая фильтр.

Возвращаемое значение

Возвращает модифицированную структуру фильтра.


Update

Конструктор отчетов>Классы>CReport >Update (с версии 11.0.0)

CReport ::Update

int Update($ID, $settings);

Изменяет существующий отчёт.

Параметры функции

Параметр | Описание
$ID | Идентификатор отчёта для изменения.
$settings | Массив с изменённой конфигурацией отчёта.

Возвращаемое значение

Возвращает экземпляр CDBResult выполненного запроса на изменение, или false в случае неудачи.

Примеры использования

<?

$ID = CReport::Update(
    159,
    array(
    'title' => 'Список задач',
    'description' => 'Просто список задач с датой создания',
    'owner' => 'TASKS',
    'entity' => 'Bitrix\\Tasks\\Task',
    'period' => array(
        'type' => 'month',
        'value' => null
    ),
    'select' => array(
        4 => array('name' => 'CREATED_DATE'),
        0 => array('name' => 'TITLE'),
        1 => array('name' => 'PRIORITY'),
        2 => array('name' => 'RESPONSIBLE.SHORT_NAME'),
        3 => array('name' => 'STATUS_PSEUDO')
    ),
    'filter' => array(),
    'sort' => 0,
    'sort_type' => 'ASC',
    'limit' => null,
    'red_neg_vals' => false,
    'grouping_mode' => false,
    'chart' => null
)
);

?>


Менеджер идей

Сервис Есть идея? позволяет предложить свою идею для развития бизнеса компании, оценить идеи своих коллег. Каждая идея имеет свой рейтинг, который строится на основе мнения сотрудников компании.

Модуль включает в себя следующие компоненты 2.0:

Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Идеи | bitrix:idea | Комплексный компонент идей
Форма добавлении идеи (popup) | bitrix:idea.popup | Форма добавлении идеи во всплывающем окне


Менеджер идей в ядре D7

Список классов модуля Менеджер идей в ядре D7

Класс | Описание
NotifyEmailTable | Класс для работы с таблицей адресов уведомлений.


Классы

Класс | Описание | С версии
CIdeaManagment | Основной класс. | 11.5.0
CIdeaManagmentIdea | Класс для работы с идеями. | 11.5.0
CIdeaManagmentIdeaComment | Класс для работы с комментариями к идее. | 11.5.0


CIdeaManagment

CIdeaManagment - основной класс модуля.

Класс | Описание | С версии
getInstance | Создает объект менеджера идей. |
IsAvailable | Проверяет доступность модулей необходимых для корректной работы Менеджера идей. |
Idea | Возвращает объект для работы с конкретной идеей. |
IdeaComment | Возвращает объект для работы с конкретным комментарием идеи. |
Notification | Возвращает базовый объект для работы уведомлениями на идеи\комментарии. |


getInstance

Менеджер идей>Классы>CIdeaManagment>getInstance (доступен с 11.5.0)

CIdeaManagment::getInstance

function
CIdeaManagment::getInstance(
);

Создает объект менеджера идей. На входе - null. Метод статический.

Возвращаемое значение

Объект менеджера идей (CIdeaManagment).

Примеры использования

$I = CIdeaManagment::getInstance();


Idea

Менеджер идей>Классы>CIdeaManagment>Idea (доступен с 11.5.0)

CIdeaManagment::Idea

function
CIdeaManagment::Idea(
(int)$IdeaId = false
);

Возвращает объект для работы с конкретной идеей указанной во входном параметре. Нестатический метод.

Параметры метода

Параметр | Описание
IdeaId | ID идеи. По умолчанию - false.

Возвращаемое значение

Объект менеджера идей для работы с идеей (CIdeaManagmentIdea).

Примеры использования

$Idea = CIdeaManagment::getInstance()->Idea(1);


IdeaComment

Менеджер идей>Классы>CIdeaManagment>IdeaComment (доступен с 11.5.0)

CIdeaManagment::IdeaComment

function
CIdeaManagment::IdeaComment(
$CommentId = false
);

Возвращает объект для работы с конкретным комментарием идеи указанной во входном параметре. Нестатический метод.

Параметры метода

Параметр | Описание
CommentId | ID комментария

Возвращаемое значение

Объект менеджера идей для работы с комментарием идеи (CIdeaManagmentIdeaComment).

Примеры использования

$IdeaComment = CIdeaManagment::getInstance()->IdeaComment(1);


IsAvailable

Менеджер идей>Классы>CIdeaManagment>IsAvailable (доступен с 11.5.0)

CIdeaManagment::IsAvailable

function
CIdeaManagment::IsAvailable(
);

Проверяет доступность модулей необходимых для корректной работы Менеджера идей. На входе - null. Нестатический метод.

Возвращаемое значение

На выходе - bool.

Примеры использования

if(CIdeaManagment::getInstance()->IsAvailable())
    echo 'Менеджер идей готов к работе.';


Notification

Менеджер идей>Классы>CIdeaManagment>Notification (доступен с 11.5.0)

CIdeaManagment::Notification

function
CIdeaManagment::Notification(
 $arNotification = array()
);

Возвращает базовый объект для работы уведомлениями на идеи\комментарии. Нестатический метод.

Параметры метода

Параметр | Описание
arNotification | Массив параметров объекта менеджера идей.

Возвращаемое значение

Базовый объект менеджера идей для работы с уведомлениями (CIdeaManagmentNotify).

Примеры использования

$arNotifyFields = array_merge(
    $arFields,
    array(
        "TYPE"=>'IDEA_COMMENT',
        "ACTION" => 'ADD',
        "ID" => $commentID,
        "AUTHOR" => $AuthorName,
        "FULL_PATH" => "http://".$serverName.$commentUrl,
        "IDEA_COMMENT_TEXT" => $IdeaParser->convert4mail($arFields["POST_TEXT"]),
        "IDEA_TITLE" => $arPost['~TITLE']
    )
);
$notify = CIdeaManagment::getInstance()->Notification($arNotifyFields);


CIdeaManagmentIdea

CIdeaManagmentIdea - Класс для работы с идеями.

Класс | Описание | С версии
IsAvailable | Проверяет доступность идеи для последующих операций с ней. |
SetID | Устанавливает ID идеи для последующих операций с ней. |
GetStatusList | Возвращает массив всех статусов используемых в менеджере идей. |
SetStatus | Устанавливает статус конкретной идеи. |


GetStatusList

Менеджер идей>Классы>CIdeaManagmentIdea>GetStatusList (доступен с 11.5.0)

CIdeaManagmentIdea::GetStatusList

function
CIdeaManagmentIdea::GetStatusList(
 XML_ID = false
);

Возвращает массив всех статусов используемых в менеджере идей. Нестатический метод.

Параметры метода

Параметр | Описание
XML_ID | По умолчанию - false.

Возвращаемое значение

Массив всех статусов.

Примеры использования

$arStatus = CIdeaManagment::getInstance()->Idea()->GetStatusList(true);
echo '<pre>'; print_r($arStatus); echo '<pre>';


IsAvailable

Менеджер идей>Классы>CIdeaManagmentIdea>IsAvailable (доступен с 11.5.0)

CIdeaManagmentIdea::IsAvailable

function
CIdeaManagmentIdea::IsAvailable(
);

Проверяет доступность идеи для последующих операций с ней. На входе - null. Нестатический метод.

Возвращаемое значение

На выходе - bool.

Примеры использования

if(CIdeaManagment::getInstance()->Idea(1)->IsAvailable())
    echo 'Идея с ID=1 готова к работе.';


SetID

Менеджер идей>Классы>CIdeaManagmentIdea>SetID (доступен с 11.5.0)

CIdeaManagmentIdea::SetID

function
CIdeaManagmentIdea::SetID(
 IdeaId
);

Устанавливает ID идеи для последующих операций с ней. Нестатический метод.

Параметры метода

Параметр | Описание
IdeaId | ID идеи

Возвращаемое значение

Возвращает текущий объект.

Примеры использования

    $Idea = CIdeaManagment::getInstance()->Idea()->SetID(1);


SetStatus

Менеджер идей>Классы>CIdeaManagmentIdea>SetStatus (доступен с 11.5.0)

CIdeaManagmentIdea::SetStatus

function
CIdeaManagmentIdea::SetStatus(
 StatusId
);

Устанавливает статус конкретной идеи. Нестатический метод.

Параметры метода

Параметр | Описание
StatusId | Статус идеи.

Возвращаемое значение

На выходе - bool.

Примеры использования

$b = CIdeaManagment::getInstance()->Idea(1)->SetStatus(2);
if($b)
    echo 'Идеи с ID=1 установлен статус с ID=2.';


CIdeaManagmentIdeaComment

CIdeaManagmentIdeaComment - класс для работы с комментариями.

Класс | Описание | С версии
IsAvailable | Проверяет доступность комментария идеи для последующих операций с ним. |
SetID | Устанавлиает ID комментария идеи для последующих операций с ним. |
Get | Возвращает информацию по комментарию к идеи. |
Bind | Помечает комментарий как официальный ответ. |
UnBind | Снимает метку официального ответа. |


Bind

Менеджер идей>Классы>CIdeaManagmentIdeaComment>Bind (доступен с 11.5.0)

CIdeaManagmentIdeaComment::Bind

function
CIdeaManagmentIdeaComment::Bind();

Помечает комментарий как официальный ответ. на входе - null. Нестатический метод.

Возвращаемое значение

На выходе - bool.

Примеры использования

if(CIdeaManagment::getInstance()->IdeaComment()->SetID(1)->Bind())
    echo 'Комментарий идеи с ID=1 помечен как официальный ответ';


Get

Менеджер идей>Классы>CIdeaManagmentIdeaComment>Get (доступен с 11.5.0)

CIdeaManagmentIdeaComment::Get

function
CIdeaManagmentIdeaComment::Get();

Возвращает информацию по комментарию к идеи. На входе - null. Нестатический метод.

Возвращаемое значение

Возвращает массив данных по комментарию к идее.

Примеры использования

$arIdeaComment = CIdeaManagment::getInstance()->IdeaComment()->SetID(1)->Get();


IsAvailable

Менеджер идей>Классы>CIdeaManagmentIdeaComment>IsAvailable (доступен с 11.5.0)

CIdeaManagmentIdeaComment::IsAvailable

function
CIdeaManagmentIdeaComment::IsAvailable(
);

Проверяет доступность комментария идеи для последующих операций с ним. На входе - null. Нестатический метод.

Возвращаемое значение

На выходе - bool.

Смотрите также

  • CDBResult

Примеры использования

if(CIdeaManagment::getInstance()->IdeaComment(1)->IsAvailable())
    echo 'Комментарий идеи с ID=1 готов к работе.';


SetID

Менеджер идей>Классы>CIdeaManagmentIdeaComment>SetID (доступен с 11.5.0)

CIdeaManagmentIdeaComment::SetID

function
CIdeaManagmentIdeaComment::SetID(
 $CommentId
);

Устанавливает ID комментария идеи для последующих операций с ним. Нестатический метод.

Параметры метода

Параметр | Описание
CommentId | ID комментария.

Возвращаемое значение

Возвращает текущий объект.

Примеры использования

$IdeaComment = CIdeaManagment::getInstance()->IdeaComment()->SetID(1);


UnBind

Менеджер идей>Классы>CIdeaManagmentIdeaComment>UnBind (доступен с 11.5.0)

CIdeaManagmentIdeaComment::UnBind

function
CIdeaManagmentIdeaComment::UnBind();

Снимает метку официального ответа. На входе - null. Нестатический метод.

Возвращаемое значение

На выходе - bool.

Примеры использования

if(CIdeaManagment::getInstance()->IdeaComment()->SetID(1)->UnBind())
    echo 'Комментарий идеи с ID=1 более не официальный';


Мобильное приложение

Чтобы создать шаблон мобильного приложения, нужно вызвать метод CMobile::Init() в стандартном шаблоне сайта. С помощью этого метода инициализируются нужные константы, подключаются нужные JS-скрипты, соответствующие платформе клиента (iOS или Android), создаются нужные объекты и т.п.

В мобильном шаблоне доступен javascript-объект app класса BitrixMobile, который и позволяет управлять приложением BitrixMobile.

Документация и актуальное API:

  • BitrixMobile - создание кроссплатформенных мобильных приложений


Мобильная платформа в ядре D7

Список классов модуля Мобильная платформа в ядре D7

Класс | Описание
Mobile | Класс для работы с мобильными устройствами.


События Api Mobile

Внимание! Данные события уже устарели и в новой версии платформы BitrixMobile 3.0 [image] большинство из них не используются.

Событие | Вызывается | Версия api mobile
onOpenPageAfter | после открытия страницы. Происходит при "перелистывании" уже загруженных в навигационную цепочку страниц, а не после и до загрузки содержимого страницы. | 6
onOpenPageBefore | перед открытием страницы. Происходит при "перелистывании" уже загруженных в навигационную цепочку страниц, а не после и до загрузки содержимого страницы. | 6
onHidePageAfter | после скрытия страницы. | 6
onHidePageBefore | перед скрытием страницы. | 6
UIApplicationDidBecomeActiveNotification | после "выхода из сна". | 6
onInternetStatusChange | после изменения статуса интернет-соединения. | 6
onOpenPush | после открытия push-уведомления. | 6
onKeyboardWillShow | перед появлением клавиатуры. | 6
onKeyboardWillHide | перед скрытием клавиатуры. | 6
onKeyboardDidHide | после скрытия клавиатуры. | 6
onKeyboardDidShow | после появления клавиатуры. | 6


Для разработчиков

Модуль Монитор производительности предназначен для мониторинга параметров производительности сайта.

О работе с модулем смотрите в учебном курсе [image].

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("perfmon")){
//здесь можно использовать функции и классы модуля
}
?>


Монитор производительности в ядре D7

Классы

Список классов модуля Монитор производительности в ядре D7

Пространство имен | Описание | С версии
Sql | Набор классов для генерации DDL. |
Php | Класс для генерации php-кода. | 15.5.1


Инструкция по настройке кеширования

Использование кеширования в оперативной памяти

В версии 8.5.1 главного модуля появилась поддержка кеширования не только на диск, но и в разделяемую память.

Акселераторы PHP поддерживают API работы с разделяемой памятью. Это значит, что все процессы веб-сервера могут читать и писать в общее адресное пространство. Это позволяет организовать совместно используемый синхронный кеш.

Хотя данные приложения, кешированные в файл, кешируются на уровне файловой системы, бывают ситуации (например: резервное копирование) когда этот кеш вытесняется и становится не эффективным для использования.

Преимуществом разделяемого кеша акселераторов является его нахождение в оперативной памяти. Использование свопинга говорит о неадекватной настройке хостинга. Недостаток своп-файла - его полный сброс при перезапуске веб-сервера.

PHP приложения

Программа Описание Версия
APC Использует уже имеющиеся механизмы разделяемой памяти. Предоставляя PHP программисту функции apc_fetch, apc_store и apc_delete.
  • Недостаток 1: использует общую для скриптов и кеша память.
  • Недостаток 2: при кешировании требуется сериализация данных.
eAccelerator При сборке расширения необходимо указать "--with-eaccelerator-shared-memory". Имеет те же недостатки, что и APC. Достоинство: есть возможность настроить сохранение кеша на диск.

Примечание. eAccelerator не совместим с PHP версий выше 5.3

 Не поддерживается с версии 15.5.0

Демон memcached

Кроме акселераторов, схожим, но гораздо более богатым функционалом обладает демон memcached [image].

Это отдельный процесс использующий для коммуникаций протокол TCP/IP, который может поддерживать распределенный, разделяемый, синхронный кеш. К серверу, на котором запущен memcached, можно подключить более одного веб-сервера. Использование memcached решает проблемы кеша акселераторов, но на первое место выходит штраф производительности из-за транспорта протокола.

Пример работы с memcached на Ubuntu. Установка:

aptitude install memcached

Настройки демона хорошо документированы и расположены файле /etc/memcached.conf

Запуск демона:

/etc/init.d/memcached start

Для PHP имеется три расширения для работы с сервером memcached. На данный момент "1С-Битрикс: Управление сайтом" поддерживает расширение memcache. При этом при использовании memcache к нему можно подключиться через unixsocket:

define("BX_MEMCACHE_HOST", "unix:///path/to/memcached.sock");
define("BX_MEMCACHE_PORT", "0");

Однако предварительно нужно настроить memcached для работы через сокеты. Для этого необходимо в файле настройки memcached изменить сточку OPTIONS="" на OPTIONS="-s /tmp/memcached.sock -a 00755". И только после этого вносить изменения в dbconn.php.

Настройка Битрикса

Управление кешем реализуется через константы определяемые в файле dbconn.php (В версии ядра выше 14.0 настройки производятся в других файлах [image]).

Константа | Описание
BX_CACHE_TYPE Самая важная из всех. Может принимать следующие значения:
  • files - использовать в качестве хранилища кеша диск. Это полностью совместимое поведение. При неудачных попытках включения других типов кеша будет использован именно этот тип.
  • memcache - подключаться к memcached для сохранения кеша. Включится только приналичии загруженного расширения "memcache" и установлении соединения с сервером.
  • eaccelerator - использовать в качестве хранилища разделяемую область памяти eAccelerator'а. (Важно! eAccelerator начиная с версии 0.9.6 не поддерживает пользовательские функции кеширования, а значит для этой версии описанный здесь механизм работать не будет.)
  • apc - APC.
  • xcache - XCache.

Пример:
 define("BX_CACHE_TYPE", "memcache");
BX_CACHE_SID Обязательно определять, если на одном сервере запущено более одного экземпляра "1С-Битрикс: Управление сайтом". Это соль которая будет подмешана ко всем ключам кеша. И позволит им "не перепутаться".

Пример:
define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01");
BX_MEMCACHE_HOST Необходима только при использовании memcache. В ней определяется адрес сервера на котором запущен демон memcached.

Пример:
 define("BX_MEMCACHE_HOST", "192.168.0.43");
BX_MEMCACHE_PORT | Не обязательная, по умолчанию принимает значение 11211.

Примечание. Система проверяет чтобы параметр eaccelerator.shm_max был установлен в ненулевое значение.


Список событий

Событие | Вызывается | Метод | С версии
OnGetTableSchema | позволяет монитору производительности в браузере таблиц выставлять связи между ними. Пример можно посмотреть в /modules/search/install/index.php. | CPerfomanceSchema::Init | 11.0.0


Облачные хранилища

Модуль Облачные хранилища позволяет подключить к проекту поддержку "облачных" хранилищ файлов.

О работе с модулем смотрите в учебном курсе [image].


Список событий

Событие | Вызывается | Метод | С версии
OnGetStorageService | для подключения пользовательских облачных хранилищ. | CCloudStorage::_init | 10.0.0


Для разработчиков

Перед использованием модуля Обучение необходимо проверить, установлен ли он, и подключить его при помощи конструкции:

<?
if (CModule::IncludeModule("learning"))
{
   //здесь можно использовать функции модуля
}
?>

Модуль включает в себя следующие Компоненты 2.0:
Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Детальный вывод главы | learning.chapter.detail | Производит детальный вывод главы курса.
Учебный курс (комплексный компонент) | learning.course | Осуществляет полноценный вывод учебного курса.
Все материалы курса | learning.course.contents | Выводит все материалы курса на одной странице.
Детальный вывод курса | learning.course.detail | С помощью компонента производится детальный вывод курса.
Список курсов | learning.course.list | Выводит список курсов.
Дерево курса | learning.course.tree | Выводит иерархию глав и уроков курса.
Детальный вывод урока | learning.lesson.detail | Производит детальный вывод урока курса.
Отчет по курсам | learning.student.certificates | Выводит список пройденных и непройденных курсов текущего пользователя.
Журнал студента | learning.student.gradebook | Отображает результаты прохождения тестов.
Профиль студента | learning.student.profile | Отображает результаты прохождения тестов.
Резюме студента | learning.student.transcript | Отображает информацию о студенте и список полученных им сертификатов.
Контрольный тест | learning.test | Отображает контрольный тест курса.
Список тестов | learning.test.list | Выводит список активных тестов курса.
Самопроверка | learning.test.self | Выводит тест для самопроверки.


Структура таблиц модуля обучения

Поля таблиц:

Учебные курсы

Поле | Описание | Тип | Обяз. | Умолч.
ID | Идентификатор учебного курса. | Int | Да |
TIMESTAMP_X | Время последнего изменения курса. | Datetime |  | Текущее
ACTIVE | Флаг активности (Y|N). | Char(1) | Да | Y
CODE | Символьный идентификатор. | String(50) |  |
NAME | Название курса. | String(255) | Да |
SORT | Индекс сортировки. | Int | Да | 500
PREVIEW_PICTURE | Код картинки в таблице файлов для предварительного просмотра (анонса). | Int |  |
PREVIEW_TEXT | Предварительное описание (анонс). | Text |  |
PREVIEW_TEXT_TYPE | Тип предварительного описания (text/html). | String(4) | Да | Text
DESCRIPTION | Описание. | Text |  |
DESCRIPTION_TYPE | Тип описания (text/html). | String(4) | Да | Text
ACTIVE_FROM | Дата начала активности курса. | Datetime |  |
ACTIVE_TO | Дата окончания активности курса. | Datetime |  |

Главы

Поле | Описание | Тип | Обяз. | Умолч.
ID | Идентификатор главы. | Int | Да |
TIMESTAMP_X | Время последнего изменения главы. | Datetime |  | Текущее
ACTIVE | Флаг активности (Y|N). | Char(1) | Да | Y
COURSE_ID | Идентификатор учебного курса. | Int | Да |
CHAPTER_ID | Идентификатор главы-родителя, если не задан, то глава корневая. | Int |  |
NAME | Название главы. | String(255) | Да |
CODE | Символьный идентификатор. | String(50) |  |
SORT | Индекс сортировки. | Int | Да | 500
PREVIEW_PICTURE | Код картинки в таблице файлов для предварительного просмотра (анонса). | Int |  |
PREVIEW_TEXT | Предварительное описание (анонс). | Text |  |
PREVIEW_TEXT_TYPE | Тип предварительного описания (text/html). | String(4) | Да | Text
DETAIL_PICTURE | Код картинки в таблице файлов для детального просмотра. | Int |  |
DETAIL_TEXT | Детальное описание. | Text |  |
DETAIL_TEXT_TYPE | Тип детального описания (text/html). | String(4) | Да | Text

Уроки

Поле | Описание | Тип | Обяз. | Умолч.
ID | Идентификатор урока. | Int | Да |
TIMESTAMP_X | Время последнего изменения урока. | Datetime |  | Текущее
DATE_CREATE | Дата создания урока. | Datetime | Да | Текущая
CREATED_BY | Код пользователя, создавшего урок. | Int | Да | Текущий пользователь
ACTIVE | Флаг активности (Y|N). | Char(1) | Да | Y
COURSE_ID | Идентификатор учебного курса. | Int | Да |
CHAPTER_ID | Идентификатор главы. Если не задан, то урок не привязан к главе. | Int |  |
NAME | Название урока. | String(255) | Да |
SORT | Индекс сортировки. | Int | Да | 500
PREVIEW_PICTURE | Код картинки в таблице файлов для предварительного просмотра (анонса). | Int |  |
PREVIEW_TEXT | Предварительное описание (анонс). | Text |  |
PREVIEW_TEXT_TYPE | Тип предварительного описания (text/html). | String(4) | Да | Text
DETAIL_PICTURE | Код картинки в таблице файлов для детального просмотра. | Int |  |
DETAIL_TEXT | Детальное описание. | Text |  |
DETAIL_TEXT_TYPE | Тип детального описания (text/html). | String(4) | Да | Text

Вопросы

Поле | Описание | Тип | Обяз. | Умолч.
ID | Идентификатор вопроса. | Int | Да |
TIMESTAMP_X | Время последнего изменения вопроса. | Datetime |  | Текущее
ACTIVE | Флаг активности (Y|N). | Char(1) | Да | Y
LESSON_ID | Идентификатор урока. | Int | Да |
QUESTION_TYPE | Тип вопроса. S - одиночный выбор, M - множественный выбор. | Char(1) | Да | S
NAME | Название вопроса. | String(255) | Да |
SORT | Индекс сортировки. | Int | Да | 500
DESCRIPTION | Описание. | Text |  |
DESCRIPTION_TYPE | Тип описания (text/html). | String(4) | Да | Text
FILE_ID | Код картинки/файла в таблице файлов. | Int |  |
SELF | Вопрос для самопроверки (Y/N). | Char(1) | Да | Y
POINT | Количество баллов. | Int | Да | 10

Варианты ответов на вопросы

Поле | Описание | Тип | Обяз. | Умолч.
ID | Идентификатор ответа. | Int | Да |
QUESTION_ID | Идентификатор вопроса. | Int | Да |
SORT | Индекс сортировки. | Int | Да | 10
ANSWER | Вариант ответа. | Text | Да |
CORRECT | Правильность ответа (Y/N). | Char(1) | Да |
FEEDBACK | Комментарий к ответу. | Text |  |

Тесты

Поле | Описание | Тип | Обяз. | Умолч.
ID | Идентификатор теста. | Int | Да
COURSE_ID | Идентификатор учебного курса. | Int | Да
TIMESTAMP_X | Время последнего изменения теста. | Datetime | Текущее
SORT | Индекс сортировки. | Int | Да | 500
ACTIVE | Флаг активности (Y|N). | Char(1) | Да | Y
NAME | Название теста. | String(255) | Да
DESCRIPTION | Описание. | Text
DESCRIPTION_TYPE | Тип описания (text/html). | String(4) | Да | Text
ATTEMPT_LIMIT | Количество попыток прохождения теста. 0 - неограниченное количество. | Int | Да
TIME_LIMIT | Ограничение времени прохождения теста в минутах. 0 - без ограничения. | Int
COMPLETED_SCORE | Процент правильных ответов при автоматической проверке результатов теста. | Int
QUESTIONS_FROM В тесте участвуют вопросы из:
  • A - со всего курса,
  • C - с каждой главы,
  • L - с каждого урока.
 Char(1) Да A
QUESTIONS_AMOUNT | Количество вопросов в тесте. | Int | Да
RANDOM_QUESTIONS | Случайный порядок вопросов (Y/N). | Char(1) | Да | Y
RANDOM_ANSWERS | Случайный порядок ответов (Y/N). | Char(1) | Да | Y
APPROVED | Автоматическая проверка результатов (Y/N). | Char(1) | Да | Y
INCLUDE_SELF_TEST | Включать вопросы для самопроверки (Y/N). | Char(1) | Да | N
PASSAGE_TYPE Тип прохождения теста:
  • 0 - запретить переход к следующему вопросу без ответа на текущий вопрос, пользователь не может изменять свои ответы;
  • 1 - разрешить переход к следующему вопросу без ответа на текущий вопрос, пользователь не может изменять свои ответы;
  • 2 - разрешить переход к следующему вопросу без ответа на текущий вопрос, пользователь может изменять свои ответы.
 Char(1) Да 0

Попытки прохождения теста

Поле | Описание | Тип | Обяз. | Умолч.
ID | Идентификатор попытки. | Int | Да |
TEST_ID | Идентификатор теста. | Int | Да |
STUDENT_ID | Код пользователя, проходящего тест. | Int | Да |
DATE_START | Дата начала прохождения теста. | Datetime | Да | Текущая
DATE_END | Дата завершения теста. | Datetime |  |
STATUS | Статус попытки. B - тестирование началось, D - тест прерван, F - тест закончен. | Char(1) | Да | B
SCORE | Сумма баллов. | Int |  |
MAX_SCORE | Максимально возможная сумма баллов. | Int |  | Автоматически
QUESTIONS | Количество вопросов в попытке. | Int |  | Автоматически

План тестирования

Поле | Описание | Тип | Обяз. | Умолч.
ID | Идентификатор результата. | Int | Да |
ATTEMPT_ID | Идентификатор попытки. | Int | Да |
QUESTION_ID | Идентификатор вопроса. | Int | Да |
RESPONSE | Ответ учащегося. | Text |  |
POINT | Баллы. | Int | Да |
ANSWERED | Вопрос отвечен (Y/N). | Char(1) | Да | N
CORRECT | Отвечен правильно (Y/N). | Char(1) | Да | N

Журнал

Поле | Описание | Тип | Обяз. | Умолч.
ID | Идентификатор записи в журнале. | Int | Да |
STUDENT_ID | Код пользователя, проходящего тест. | Int | Да |
TEST_ID | Идентификатор теста. | Int | Да |
RESULT | Итоговая сумма баллов. | Int |  |
MAX_RESULT | Максимально возможная итоговая сумма баллов. | Int |  | Автоматически
COMPLETED | Тест пройден (Y/N). | Char(1) | Да | N
ATTEMPTS | Количество попыток прохождения теста. | Int. |  | Автоматически

Сертификаты

Поле | Описание | Тип | Обяз. | Умолч.
ID | Идентификатор сертификата. | Int | Да |
STUDENT_ID | Код пользователя. | Int | Да |
COURSE_ID | Идентификатор учебного курса. | Int | Да |
TIMESTAMP_X | Дата изменения сертификата. | Datetime |  | Текущее
DATE_CREATE | Дата создания сертификата. | Datetime |  |
ACTIVE | Активность сертификата (Y/N). | Char(1) | Да | Y
SORT | Индекс сортировки. | Int | Да | 500
FROM_ONLINE | Сертификат получен через Online-обучение (Y/N). | Char(1) | Да | Y
PUBLIC_PROFILE | Публиковать сертификат в профиле (Y/N). | Char(1) | Да | Y
SUMMARY | Сумма баллов, набранных за прохождение всех тестов курса. | Int | Да |
MAX_SUMMARY | Максимально возможная сумма баллов за прохождение всех тестов курса. | Int | Да | Автоматически

Профиль студента

Поле | Описание | Тип | Обяз. | Умолч.
USER_ID | Код пользователя. | Int | Да |
TRANSCRIPT | Числовой случайный идентификатор. | Int | Да | Автоматически
PUBLIC_PROFILE | Профиль доступен публично (Y/N). | Char(1) | Да | N
RESUME | Резюме студента | Text |  |


События

Событие | Вызывается | Метод | С версии
OnBeforeCertificateAdd | перед добавлением сертификата | CAllCertification::Add | 12.0
OnAfterCertificateAdd | после добавления сертификата | CAllCertification::Add | 12.0
OnBeforeCertificateUpdate | перед изменением сертификата | CAllCertification::Update | 12.0
OnAfterCertificateUpdate | после изменения сертификата | CAllCertification::Update | 12.0
OnBeforeCertificateDelete | перед удалением сертификата | CAllCertification::Delete | 12.0
OnAfterCertificateDelete | после удаления сертификата | CAllCertification::Delete | 12.0
OnBeforeCertificate | перед сертификацией | CAllCertification::Certificate | 12.0
OnBeforeLessonAdd | перед добавлением [dw]курса/главы/урока[/dw][di]Отличить курс от урока поможет условие $lesson["LINKED_LESSON_ID"] > 0[/di] | CLearnLesson::Add | 12.0
OnAfterLessonAdd | после добавления курса/главы/урока | CLearnLesson::Add | 12.0
OnBeforeLessonUpdate | перед изменением курса/главы/урока | CLearnLesson::Update | 12.0
OnAfterLessonUpdate | после изменения курса/главы/урока | CLearnLesson::Update | 12.0
OnBeforeLessonDelete | перед удалением курса/главы/урока | CLearnLesson::Delete | 12.0
OnAfterLessonDelete | после удаления курса/главы/урока | CLearnLesson::Delete | 12.0
OnBeforeStudentAdd | перед добавлением учетной записи студента | CStudent::Add | 12.0
OnAfterStudentAdd | после добавления учетной записи студента | CStudent::Add | 12.0
OnBeforeStudentUpdate | перед изменением учетной записи студента | CStudent::Update | 12.0
OnAfterStudentUpdate | после изменения учетной записи студента | CStudent::Update | 12.0
OnBeforeStudentDelete | перед удалением учетной записи студента | CStudent::Delete | 12.0
OnAfterStudentDelete | после удаления учетной записи студента | CStudent::Delete | 12.0
OnBeforeTestAdd | перед добавлением теста | CTest::Add | 12.0
OnAfterTestAdd | после добавления теста | CTest::Add | 12.0
OnBeforeTestUpdate | перед изменением теста | CTest::Update | 12.0
OnAfterTestUpdate | после изменения теста | CTest::Update | 12.0
OnBeforeTestDelete | перед удалением теста | CTest::Delete | 12.0
OnAfterTestDelete | после удаления теста | CTest::Delete | 12.0
OnAfterQuestionAdd | после добавления вопроса | CLQuestion::Add | 12.0
OnAfterQuestionUpdate | после обновления вопроса | CLQuestion::Update | 12.0
OnAfterQuestionDelete | после удаления вопроса | CLQuestion::Delete | 12.0
OnAfterAttemptFinished | после завершения попытки прохождения теста | CAllTestAttempt::AttemptFinished | 12.0
OnBeforeLearningGroupAdd | перед добавлением учебной группы | CLearningGroup::add | 12.0
OnAfterLearningGroupAdd | после добавления учебной группы | CLearningGroup::add | 12.0
OnBeforeLearningGroupUpdate | перед обновлением учебной группы | CLearningGroup::update | 12.0
OnAfterLearningGroupUpdate | после обновления учебной группы | CLearningGroup::update | 12.0
OnBeforeLearningGroupDelete | перед удалением учебной группы | CLearningGroup::delete | 12.0
OnAfterLearningGroupDelete | после удаления учебной группы | CLearningGroup::delete | 12.0
OnAfterLearningGroupMemberAdd | после добавления члена учебной группы | CLearningGroupMember::add | 12.0


Классы модуля обучения

Следующие PHP классы используются в модуле обучения.

Классы

Класс | Описание | С версии | До версии
CCourse | Класс для работы с курсами. | 5.0.3 |
CChapter | Класс для работы с главами. | 5.1.0 | актуален до 12.0.0
CLesson | Класс для работы с уроками. | 5.1.0 | актуален до 12.0.0
CLQuestion | Класс для работы с вопросами. | 5.0.3 |
CLAnswer | Класс для работы с ответами. | 5.0.6 |
CTest | Класс для работы с тестами. | 5.1.0 |
CTestAttempt | Класс для работы с попытками прохождения теста. | 5.1.0 |
CTestResult | Класс для работы с планом тестирования. | 5.1.0 |
CGradeBook | Класс для работы с журналом. | 5.1.0 |
CCertification | Класс для работы с сертификатами. | 5.1.0 |
CStudent | Класс для работы c профилем студента. | 5.1.0 |
CCoursePackage | Класс для экспорта курса. | 5.0.3 |
CCourseImport | Класс для импорта курса. | 5.0.3 |


Класс CCertification

CCertification - класс для работы с сертификатами студентов.
Метод | Описание | С версии
GetList | Возвращает список сертификатов по фильтру. | 5.1.0
GetByID | Возвращает сертификат по идентификатору. | 5.1.0
Add | Добавляет новый сертификат. | 5.1.0
Update | Изменят параметры сертификата. | 5.1.0
Delete | Удаляет сертификат. | 5.1.0
IsCourseCompleted | Проверяет, пройден ли курс. | 5.1.0
Certificate | Добавляет или изменяет сертификат, если курс был пройден. | 5.1.0


Add

Обучение>Классы>CCertification>Add (доступен c 5.1.0)

CCertification::Add

Описание и параметры

int
CCertification::Add(
 array arFields
);

Метод добавляет новый сертификат. Метод нестатический.

Параметры метода

Параметр | Описание
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей сертификата. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает идентификатор добавленного сертификата, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Смотрите также

  • CCertification::Update
  • Поля

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;
    $STUDENT_ID = 3;

    $arFields = Array(
        "ACTIVE" => "Y",
        "COURSE_ID" => $COURSE_ID,
        "STUDENT_ID" => $STUDENT_ID,
        "SUMMARY" => 300,
        "MAX_SUMMARY" => 300
    );

    $certificate = new CCertification;
    $ID = $certificate->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }
}
?>


Certificate

Обучение>Классы>CCertification>Certificate (доступен c 5.1.0)

CCertification::Certificate

Описание и параметры

bool
CCertification::Certificate(
 int STUDENT_ID,
 int COURSE_ID
);

Добавляет или изменяет сертификат, если курс был пройден. Метод нестатический.

Параметры метода

Параметр | Описание
STUDENT_ID | Идентификатор студента.
COURSE_ID | Идентификатор курса.

Возвращаемое значение

Метод возвращает true, если сертификация прошла успешно, иначе - false.

Смотрите также

  • CCertification::Add
  • CCertification::Update
  • CTest::GetList
  • CGradeBook::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $STUDENT_ID = 1;
    $COURSE_ID = 92;

    $done = CCertification::Certificate($STUDENT_ID, $COURSE_ID);

    if ($done)
        echo "Success!";
    else
        echo "Course is not completed";
}
?>


Delete

Обучение>Классы>CCertification>Delete (доступен c 5.1.0)

CCertification::Delete

Описание и параметры

bool
CCertification::Delete(
 int ID
);

Метод удаляет сертификат с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор сертификата.

Возвращаемое значение

Метод возвращает true в случае успешного удаления сертификата, в противном случае возвращает false.

Смотрите также

  • CCertification::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;
    $CERTIFICATE_ID = 19;

    if (CCourse::GetPermission($COURSE_ID) >= 'W')
    {
        @set_time_limit(0);
        $DB->StartTransaction();
        if (!CCertification::Delete($CERTIFICATE_ID))
        {
            echo "Error!";
            $DB->Rollback();
        }
        else
            $DB->Commit();
    }
}
?>


GetByID

Обучение>Классы>CCertification>GetByID (доступен c 5.1.0)

CCertification::GetByID

Описание и параметры

CDBResult
  CCertification::GetByID(
 int ID
);

Возвращает сертификат по идентификатору ID. Учитываются права доступа текущего пользователя. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор сертификата.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля сертификата
  • CCertification::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $CERTIFICATE_ID = 13;

    $res = CCertification::GetByID($CERTIFICATE_ID);

    if ($arCertificate = $res->GetNext())
    {
        echo "Course: ".$arCertificate["COURSE_NAME"].
             " User: ".$arCertificate["USER_NAME"].
             " Score: ".$arCertificate["SUMMARY"];
    }
}
?>


GetList

Обучение>Классы>CCertification>GetList (доступен c 5.1.0)

CCertification::GetList

Описание и параметры

CDBResult
  CCertification::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array()
);

Возвращает список сертификатов по фильтру arFilter, отсортированный в порядке arOrder. Учитываются права доступа текущего пользователя. Метод статический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • ID - идентификатор сертификата;
  • STUDENT_ID - идентификатор студента ;
  • COURSE_ID - идентификатор курса;
  • SUMMARY - cумма баллов, набранных за прохождение всех тестов курса;
  • MAX_SUMMARY - максимально возможная сумма баллов за прохождение всех тестов курса;
  • SORT - индекс сортировки;
  • ACTIVE - фильтр по активности (Y|N);
  • FROM_ONLINE - сертификат получен через online-обучение (Y/N);
  • PUBLIC_PROFILE - публиковать сертификат в профиле (Y/N);
  • DATE_CREATE - дата создания сертификата;
  • TIMESTAMP_X - дата изменения студента.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию фильтруется по убыванию идентификатора сертификата.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор сертификата;
  • STUDENT_ID - идентификатор студента ;
  • COURSE_ID - идентификатор курса;
  • SUMMARY - cумма баллов, набранных за прохождение всех тестов курса;
  • MAX_SUMMARY - максимально возможная сумма баллов за прохождение всех тестов курса;
  • SORT - индекс сортировки;
  • ACTIVE - фильтр по активности (Y|N);
  • FROM_ONLINE - сертификат получен через online-обучение (Y/N);
  • PUBLIC_PROFILE - публиковать сертификат в профиле (Y/N);
  • DATE_CREATE - дата создания сертификата;
  • TIMESTAMP_X - дата изменения студента.
  • USER - пользователь (возможны сложные условия по полям пользователя ID, LOGIN, NAME, LAST_NAME);
  • MIN_PERMISSION - минимальный уровень доступа. По умолчанию "R". Список прав доступа см. в CCourse::SetPermission.
  • CHECK_PERMISSIONS - проверять уровень доступа. Если установлено значение "N" - права доступа не проверяются.
Перед названием фильтруемого поля можно указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • CCertification::GetByID
  • Поля сертификата

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 100;
    $res = CCertification::GetList(
        Array("SUMMARY" => "DESC", "SORT"=>"ASC"),
        Array("ACTIVE" => "Y", "COURSE_ID" => $COURSE_ID)
    );

    while ($arCertification = $res->GetNext())
    {
        echo "User:".$arCertification["USER_NAME"].
             "; Course name: ".$arCertification["COURSE_NAME"]."<br>";
    }
}
?>
<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 100;
    $res = CCertification::GetList(
        Array("SUMMARY" => "DESC", "SORT"=>"ASC"),
        Array("ACTIVE" => "Y", "CHECK_PERMISSIONS" => "N")
    );

    while ($arCertification = $res->GetNext())
    {
        echo "User:".$arCertification["USER_NAME"].
             "; Course name: ".$arCertification["COURSE_NAME"]."<br>";
    }
}
?>


IsCourseCompleted

Обучение>Классы>CCertification>IsCourseCompleted (доступен c 5.1.0)

CCertification::IsCourseCompleted

Описание и параметры

bool
CCertification::IsCourseCompleted(
 int STUDENT_ID,
 int COURSE_ID
);

Проверяет, пройден ли курс. Курс считается пройденным, если пройдены все его тесты. Метод статический.

Параметры метода

Параметр | Описание
STUDENT_ID | Идентификатор студента.
COURSE_ID | Идентификатор курса.

Возвращаемое значение

Метод возвращает true, если курс пройден, иначе - false.

Смотрите также

  • CGradeBook::GetList
  • CTest::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $STUDENT_ID = 1;
    $COURSE_ID = 92;

    $done = CCertification::IsCourseCompleted($STUDENT_ID, $COURSE_ID);

    if ($done)
        echo "Course completed";
    else
        echo "Course is not completed";

}
?>


Update

Обучение>Классы>CCertification>Update (доступен c 5.1.0)

CCertification::Update

Описание и параметры

bool
CCertification::Update(
 int   ID,
 array arFields
);

Метод изменяет параметры сертификата с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор сертификата.
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей сертификата. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки функция вернет false. При возникновении ошибки в исключениях будет содержаться текст ошибки

Смотрите также

  • Поля
  • CCertification::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $CERTIFICATE_ID = 15;

    $arFields = Array(
        "ACTIVE" => "N",
        "SUMMARY" => 290,
        "MAX_SUMMARY" => 555
    );

    $certificate = new CCertification;
    $success =  $certificate->Update($CERTIFICATE_ID, $arFields);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }
}
?>


Класс CChapter

CChapter - класс для работы с главами.
Метод | Описание | С версии
GetList | Возвращает список глав по фильтру. | 5.1.0
GetByID | Возвращает главу по ее идентификатору. | 5.1.0
Add | Добавляет новую главу. | 5.1.0
Update | Изменяет параметры главы. | 5.1.0
Delete | Удаляет главу. | 5.1.0
GetCount | Возвращает количество подразделов. | 5.1.0
GetTreeList | Возвращает разделы отсортированные в порядке "полностью развернутого дерева". | 5.1.0
GetNavChain | Возвращает путь от заданного раздела до корневого. | 5.1.0

Примечание: начиная с версии 12.0.0, класс считается устаревшим. Вместо него для работы с главами/уроками следует использовать класс CLearnLesson.


Add

Обучение>Классы>CChapter>Add (доступен с 5.1.0, устарел и удален с 12.0.0)

CChapter::Add

Описание и параметры

int
CChapter::Add(
 array arFields
);

Метод добавляет новую главу.

Параметры метода

Параметр | Описание
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей главы. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает идентификатор добавленной главы, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Смотрите также

  • CChapter::Update
  • Поля главы

Примеры использования

if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    $arFields = Array(
        "COURSE_ID" => $COURSE_ID,
        "ACTIVE" => "Y",
        "NAME" => "Chapter 1",
        "SORT" => "100",
        "DETAIL_TEXT" => "In this chapter ...",
    );

    $chapter = new CChapter;
    $ID = $chapter->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}

?>


Delete

Обучение>Классы>CChapter>Delete (доступен с 5.1.0, устарел и удален с 12.0.0)

CChapter::Delete

Описание и параметры

bool
CChapter::Delete(
 int ID
);

Метод удаляет главу с идентификатором ID.

Параметры метода

Параметр | Описание
ID | Идентификатор главы.

Возвращаемое значение

Метод возвращает true в случае успешного удаления главы, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;
    $CHAPTER_ID = 300;

    if (CCourse::GetPermission($COURSE_ID) >= 'W')
    {
        @set_time_limit(0);
        $DB->StartTransaction();
        if (!CChapter::Delete($CHAPTER_ID))
        {
            echo "Error!";
            $DB->Rollback();
        }
        else
            $DB->Commit();
    }
}
?>


GetByID

Обучение>Классы>CChapter>GetByID (доступен с 5.1.0, устарел и удален с 12.0.0)

CChapter::GetByID

Описание и параметры

CDBResult
CChapter::GetByID(
 int ID
);

Возвращает главу по ее коду ID.

Параметры метода

Параметр | Описание
ID | Идентификатор главы.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля главы
  • CChapter::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $CHAPTER_ID = 97;

    $res = CChapter::GetByID($CHAPTER_ID);

    if ($arChapter = $res->GetNext())
    {
        echo "Name: ".$arChapter["NAME"];
    }
}

?>


GetCount

Обучение>Классы>CChapter>GetCount (доступен с 5.1.0, устарел и удален с 12.0.0)

CChapter::GetCount

Описание и параметры

int
CChapter::GetCount(
 array arFilter = Array()
);

Возвращает количество глав по заданному фильтру.

Параметры метода

Параметр | Описание
arFilter | Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Описание фильтра см. в CChapter::GetList

Возвращаемое значение

Число - количество глав.

Смотрите также

  • CChapter::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    $cnt = CChapter::GetCount(Array("ACTIVE" => "Y", "COURSE_ID" => $COURSE_ID));

    echo "Number of chapters: ".$cnt;
}

?>

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    $cnt = CChapter::GetCount(Array("CHECK_PERMISSIONS" => "N", "COURSE_ID" => $COURSE_ID));

    echo "Number of chapters: ".$cnt;
}

?>


GetList

Обучение>Классы>CChapter>GetList (доступен с 5.1.0, устарел и удален с 12.0.0)

CChapter::GetList

Описание и параметры

CDBResult
CChapter::GetList(
 array arOrder = Array("TIMESTAMP_X"=>"DESC"),
 array arFilter = Array(),
 bool bIncCnt = false
);

Возвращает список глав по фильтру arFilter, отсортированный в порядке arOrder. Учитываются права доступа текущего пользователя.

Параметры метода

Параметр | Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • ID - идентификатор главы;
  • NAME - название главы;
  • ACTIVE - активность главы;
  • SORT - индекс сортировки;
  • TIMESTAMP_X - дата изменения главы.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию сортируется по убыванию даты изменения главы.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор главы;
  • NAME - название главы (можно искать по шаблону [%_]);
  • SORT - индекс сортировки;
  • CODE - символьное имя главы (можно искать по шаблону [%_]);
  • ACTIVE - фильтр по активности (Y|N);
  • TIMESTAMP_X - дата изменения главы;
  • CHAPTER_ID - идентификатор главы. Для получения списка родительских глав установите это поле в значение пусто;
  • COURSE_ID - идентификатор курса;
  • DETAIL_TEXT - детальное описание (можно искать по шаблону [%_]);
  • PREVIEW_TEXT - предварительное описание (можно искать по шаблону [%_]);
  • MIN_PERMISSION - минимальный уровень доcтупа. По умолчанию "R". Список прав доступа см. в CCourse::SetPermission.
  • CHECK_PERMISSIONS - проверять уровень доступа. Если установлено значение "N" - права доступа не проверяются;
  • CNT_ACTIVE - считать количество только активных уроков. Работает, если bIncCnt установлено в значение true.
Перед названием фильтруемого поля может быть указан тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
bIncCnt | Возвращать ли количество уроков главы в поле ELEMENT_CNT. Не обязательный параметр, по умолчанию равен false.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • CChapter::GetByID
  • Поля главы

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;
    $res = CChapter::GetList(
        Array("SORT"=>"ASC"),
        Array("ACTIVE" => "Y", "COURSE_ID" => $COURSE_ID, "CNT_ACTIVE" => "Y"),
        true
    );

    while ($arChapter = $res->GetNext())
    {
        echo "Chapter name: ".$arChapter["NAME"]."<br>";
        echo "Active lessons: ".$arChapter["ELEMENT_CNT"]."<br><br>";
    }
}

?>

<?

if (CModule::IncludeModule("learning"))
{
    $res = CChapter::GetList(
        Array("SORT"=>"ASC"),
        Array("?NAME" => "Site")
    );

    while ($arChapter = $res->GetNext())
    {
        echo "Chapter name: ".$arChapter["NAME"]."<br>";
    }
}
?>

<?

if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    $res = CChapter::GetList(
        Array("NAME" => "ASC", "SORT"=>"ASC"),
        Array("COURSE_ID" => $COURSE_ID)
    );

    while ($arChapter = $res->GetNext())
    {
        echo "Chapter name: ".$arChapter["NAME"]."<br>";
    }
}

?>

<?

if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    $res = CChapter::GetList(
        Array("TIMESTAMP_X" => "ASC", "SORT"=>"ASC"),
        Array("CHECK_PERMISSIONS" => "N", "CHAPTER_ID" => "", "COURSE_ID" => $COURSE_ID)
    );

    while ($arChapter = $res->GetNext())
    {
        echo "Chapter name: ".$arChapter["NAME"]."<br>";
    }
}

?>


GetNavChain

Обучение>Классы>CChapter>GetNavChain (доступен с 5.1.0, устарел с 12.0.0)

CChapter::GetNavChain

Описание и параметры

CDBResult
CChapter::GetNavChain(
 int courseId,
 int chapterId
);

Метод возвращает путь по дереву от корня до главы chapterId.

Параметры метода

Параметр | Описание
courseId | Идентификатор курса. До версии 12.0.0 параметр назывался COURSE_ID.
chapterId | Идентификатор главы. До версии 12.0.0 параметр назывался CHAPTER_ID.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • CChapter::GetList
  • CChapter::GetByID
  • Поля главы

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{

    $COURSE_ID = 90;
    $CHAPTER_ID = 116;

    $nav = CChapter::GetNavChain($COURSE_ID, $CHAPTER_ID);
    $i = 1;
    while($arChain = $nav->GetNext())
    {
        if ($i > 1) echo " -> ";
        echo $arChain["NAME"];
        $i++;
    }

    /*
    The above example will output something similar to:

    Chapter 1 -> Chapter 1.1 -> Chapter 1.1.3 -> Chapter 1.1.2
    $CHAPTER_ID - ID of Chapter 1.1.2;
    */
}
?>


GetTreeList

Обучение>Классы>CChapter>GetTreeList (доступен с 5.1.0, устарел и удален с 12.0.0)

CChapter::GetTreeList

Описание и параметры

CDBResult
CChapter::GetTreeList(
 int COURSE_ID,
 int CHAPTER_ID = 0
);

Метод возвращает список глав, отсортированный в порядке "полного развернутого дерева".

Параметры метода

Параметр | Описание | С версии
COURSE_ID | Идентификатор курса. |
CHAPTER_ID | Идентификатор главы. Необязательный параметр. | 9.5.4

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • CChapter::GetByID
  • CChapter::GetList
  • CCourse::GetCourseContent
  • Поля главы

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $res = CChapter::GetTreeList($COURSE_ID = 105);

    while ($arChapter = $res->GetNext())
    {
        echo str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;", $arChapter["DEPTH_LEVEL"]);
        echo "+".$arChapter["NAME"]."<br>";
    }

    /*
    The above example will output something similar to:
    +Chapter 1
      +Chapter 1.1
      +Chapter 1.2
    +Chapter 2
    +Chapter 3
      +Chapter 3.1
        +Chapter 3.1.1
    */
}
?>


Update

Обучение>Классы>CChapter>Update (доступен с 5.1.0, устарел и удален с 12.0.0)

CChapter::Update

Описание и параметры

bool
CChapter::Update(
 int   ID,
 array arFields
);

Метод изменяет параметры главы с идентификатором ID.

Параметры метода

Параметр | Описание
ID | Идентификатор главы.
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей главы. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки метод вернет false. При возникновении ошибки в исключениях будет содержаться текст ошибки.

Смотрите также

  • Поля главы
  • CChapter::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $CHAPTER_ID = 299;

    $arFields = Array(
        "ACTIVE" => "N",
        "NAME" => "New name of Chapter 1",
        "SORT" => "555",
    );

    $chapter = new CChapter;
    $success = $chapter->Update($CHAPTER_ID, $arFields);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}

?>


Класс CCourse

CCourse - класс для работы с учебными курсами.
Метод | Описание | С версии
GetList | Возвращает список курсов по фильтру. | 5.1.0
GetByID | Возвращает курс по идентификатору. | 5.0.3
Add | Добавляет новый курс. | 5.0.3
Update | Изменяет параметры курса. | 5.0.3
Delete | Удаляет курс. | 5.0.3
SetPermission | Устанавливает права доступа на курс. | 5.0.3
GetPermission | Определяет право доступа для текущего пользователя. | 5.0.3
GetGroupPermissions | Возвращает все права доступа для курса. | 5.0.3
IsHaveCourse | Определяет, имеет ли текущий пользователь право доступа хотя бы к одному курсу. | 5.0.3
GetSite | Возвращает список сайтов для курса. | 5.0.3
GetCourseContent | Возвращает список глав и уроков ("дерево" курса). | 5.0.3
TimeToStr | Переводит количество секунд в текст. | 5.1.0


Add

Обучение>Классы>CCourse>Add (доступен с 5.0.3)

CCourse::Add

Описание и параметры

int
CCourse::Add(
 array arFields
);

Метод добавляет новый курс. Метод нестатический.

Параметры метода

Параметр Описание
arFields Массив Array("поле"=>"значение", ...). Содержит значения всех полей курса. Обязательные поля должны быть заполнены.
Дополнительно в поле SITE_ID должен находиться массив идентификаторов сайтов, к которым привязан добавляемый курс.
Кроме того, с помощью поля "GROUP_ID", значением которого должен быть массив соответствий кодов групп правам доступа, можно установить права для разных групп на доступ к курсу (см. CCourse::SetPermission).

Возвращаемое значение

Метод возвращает идентификатор добавленного курса, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Смотрите также

  • CCourse::Update
  • Поля курса

Примеры использования

<?

if (CModule::IncludeModule("learning"))
{
    $arFields = Array(
        "ACTIVE" => "Y",
        "NAME" => "My First Course",
        "SITE_ID" => Array("ru", "en"), //Sites
        "GROUP_ID" => Array("2" => "R"), //Permissions: Everyone can read my course
        "SORT" => "100",
        "DESCRIPTION" => "It's my first e-Learning course",
        "DESCRIPTION_TYPE" => "text",
    );

    $course = new CCourse;
    $ID = $course->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();

    }

}
?>


Delete

Обучение>Классы>CCourse>Delete (доступен с 5.0.3)

CCourse::Delete

Описание и параметры

bool
CCourse::Delete(
 int ID
);

Метод удаляет курс с идентификатором ID. Метод нестатический.

Примечание

Если есть сертификаты, полученные за указанный курс, метод возвратит false.

Параметры метода

Параметр | Описание
ID | Идентификатор курса.

Возвращаемое значение

Метод возвращает true в случае успешного удаления курса, в противном случае возвращает false.

Примеры использования

<?

if (CModule::IncludeModule("learning"))
{

    $ID = 109;//Course ID

    if($USER->IsAdmin())
    {
        @set_time_limit(0);
        $DB->StartTransaction();
        if(!CCourse::Delete($ID))
            $DB->Rollback();
        else
            $DB->Commit();
    }

}

?>


GetByID

Обучение>Классы>CCourse>GetByID (доступен с 5.0.3)

CCourse::GetByID

Описание и параметры

CDBResult
CCourse::GetByID(
 int ID
);

Возвращает поля курса по его коду ID. Учитываются права доступа текущего пользователя. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор курса.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля курса
  • CCourse::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $course = CCourse::GetByID($COURSE_ID);
    if ($arCourse = $course->GetNext())
    {
        echo $arCourse["NAME"];
    }
}
?>


GetCourseContent

Обучение>Классы>CCourse>GetCourseContent (доступен с 5.0.3)

CCourse::GetCourseContent

Описание и параметры

CDBResult
CCourse::GetCourseContent(
 int COURSE_ID,
 array arAddSelectFileds = Array("DETAIL_TEXT", "DETAIL_TEXT_TYPE", "DETAIL_PICTURE")
);

Возвращает список активных глав и уроков, отсортированный по возрастанию индекса сортировки. Метод нестатический.

Примечание

Возвращаемый список содержит одноименные поля глав и уроков. Обязательные поля списка: ID - идентификатор урока или главы; NAME - название; CHAPTER_ID - идентификатор родительской главы; SORT - индекс сортировки; DEPTH_LEVEL - уровень вложенности; TYPE - тип ("LE" - урок, "CH" - глава). Для вывода остальных полей используйте массив arAddSelectFileds. Метод предназначен для вывода "дерева" курса. Если поля "DETAIL_TEXT", "DETAIL_TEXT_TYPE", "DETAIL_PICTURE" не используются - рекомендуется arAddSelectFileds оставлять пустым (arAddSelectFileds = Array()).

Параметры метода

Параметр | Описание | С версии
COURSE_ID | Идентификатор курса.
arAddSelectFileds Массив дополнительных полей. Допустимые поля:
PREVIEW_TEXT - Предварительное описание (анонс);
PREVIEW_TEXT_TYPE - Тип предварительного описания (text/html);
PREVIEW_PICTURE - Код картинки в таблице файлов для предварительного просмотра (анонса);
DETAIL_TEXT_TYPE - Тип детального описания (text/html);
DETAIL_PICTURE - Код картинки в таблице файлов для детального просмотра;
DETAIL_TEXT - Детальное описание;
По умолчанию массив arAddSelectFileds = Array("DETAIL_TEXT", "DETAIL_TEXT_TYPE", "DETAIL_PICTURE"); 		5.1.0

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • Поля урока
  • Поля главы
  • CDBResult
  • CLesson::GetList
  • CChapter::GetList
  • CChapter::GetTreeList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $res = CCourse::GetCourseContent($COURSE_ID = 105, Array());

    while ($arContent = $res->GetNext())
    {
        echo str_repeat("&nbsp;&nbsp;&nbsp;&nbsp;", $arContent["DEPTH_LEVEL"]);
        echo ($arContent["TYPE"]=="CH" ? "+": "-").$arContent["NAME"]."<br>";
    }

    /*
    The above example will output something similar to:

    +Chapter 1
      +Chapter 1.1
        -Lesson 1.1.1
      +Chapter 1.2
    +Chapter 2
      -Lesson 2
    +Chapter 3
      +Chapter 3.1
        -Lesson 3.1.1
        -Lesson 3.1.2
        +Chapter 3.1.1

    */

}

?>


GetGroupPermissions

Обучение>Классы>CCourse>GetGroupPermissions (доступен с 5.0.3)

CCourse::GetGroupPermissions

Описание и параметры

array
CCourse::GetGroupPermissions(
 int COURSE_ID
);

Возвращает права доступа к учебному курсу с идентификатором COURSE_ID для всех групп пользователей. Метод нестатический.

Параметры метода

Параметр | Описание
COURSE_ID | Идентификатор курса.

Возвращаемое значение

Массив прав вида Array("ID группы"=>"Право доступа"[, ...]). Право доступа может принимать значение: "D" - запрещён, "R" - чтение, "W" - изменение, "X" - полный доступ (изменение + право изменять права доступа).

Смотрите также

  • CCourse::GetPermission

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $arPerm = CCourse::GetGroupPermissions($COURSE = 8);
    print_r($arPerm);

    /*
    The above example will output something similar to:

    Array
    (
        [2] => R
        [22] => W
    )
    */
}

?>


GetList

Обучение>Классы>CCourse>GetList (доступен с 5.1.0)

CCourse::GetList

Описание и параметры

CDBResult
CCourse::GetList(
 array arOrder = array(),
 array arFields = array(),
 array arNavParams = array()
);

Возвращает список курсов, отсортированный в порядке arOrder. Учитываются права доступа текущего пользователя. Метод статический.

Параметры метода

Параметр | Описание | С версии | До версии
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • ID - идентификатор курса;
  • NAME - название курса;
  • ACTIVE - активность курса;
  • SORT - индекс сортировки;
  • TIMESTAMP_X - дата изменения курса.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
arFields | Массив выбираемых полей. | 12.0.0
arNavParams | Массив настроек постраничной навигации. | 14.0.0
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор курса;
  • NAME - название курса (можно искать по шаблону [%_]);
  • SORT - индекс сортировки;
  • CODE - символьное имя курса (можно искать по шаблону [%_]);
  • DESCRIPTION - описание курса (можно искать по шаблону [%_]);
  • ACTIVE - фильтр по активности (Y|N);
  • SITE_ID - идентификатор сайта;
  • TIMESTAMP_X - дата изменения курса;
  • ACTIVE_FROM - дата начала активности с учётом пустого значения;
  • ACTIVE_TO - дата окончания активности с учётом пустого значения;
  • DATE_ACTIVE_FROM - дата начала активности без учета пустого значения;
  • DATE_ACTIVE_TO - дата окончания активности без учета пустого значения;
  • ACTIVE_DATE - непустое значение задействует фильтр по датам активности (ACTIVE_FROM и ACTIVE_TO). Если значение не установлено (""), фильтрация по датам активности не производится;
  • MIN_PERMISSION - минимальный уровень доcтупа. По умолчанию "R". Список прав доступа см. в CCourse::SetPermission.
  • CHECK_PERMISSIONS - проверять уровень доступа. Если установлено значение "N" - права доступа не проверяются;
  • CNT_ACTIVE - считать количество только активных уроков. Работает, если bIncCnt установлено в значение true.
Перед названием фильтруемого поля можно указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются. 		12.0.0
bIncCnt | Возвращать ли количество уроков курса в поле ELEMENT_CNT. Необязательный параметр, по умолчанию равен false. | 12.0.0

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • CCourse::GetByID
  • Поля курса

Примеры использования

lt;?
if (CModule::IncludeModule("learning"))
{
    $res = CCourse::GetList(
        Array("SORT"=>"ASC"),
        Array("ACTIVE" => "Y", "CNT_ACTIVE" => "Y"),
        $bIncCnt = true
    );

    while ($arCourse = $res->GetNext())
    {
        echo "Course name: ".$arCourse["NAME"]."<br>";
        echo "Active lessons: ".$arCourse["ELEMENT_CNT"]."<br><br>";
    }
}

?>

<?

if (CModule::IncludeModule("learning"))
{
    $res = CCourse::GetList(
        Array("SORT"=>"ASC"),
        Array("?NAME" => "Site")
    );

    while ($arCourse = $res->GetNext())
    {
        echo "Course name: ".$arCourse["NAME"]."<br>";
    }
}
?>

<?

if (CModule::IncludeModule("learning"))
{
    $res = CCourse::GetList(
        Array("NAME" => "ASC", "SORT"=>"ASC"),
        Array("CHECK_PERMISSIONS" => "N")
    );

    while ($arCourse = $res->GetNext())
    {
        echo "Course name: ".$arCourse["NAME"]."<br>";
    }
}

?>

<?
if(CModule::IncludeModule("learning")):

    $res = CCourse::GetList(Array("SORT" => "DESC"), Array("ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "SITE_ID" => LANG));

    while ($arElement = $res->GetNext()):?>

        <font class="text">
        <?if ($arElement["PREVIEW_PICTURE"]):?>
            <table cellpadding="0" cellspacing="0" border="0" align="left">

                <tr>
                    <td><?echo ShowImage($arElement["PREVIEW_PICTURE"], 200, 200, "hspace='0' vspace='2' align='left' border='0'", "", true);?></td>
                    <td valign="top" width="0%"><img src="/bitrix/images/1.gif" width="10" height="1"></td>

                </tr>
            </table>
        <?endif;?>
        <a target="blank_" href="<?=$COURSE_URL?>?COURSE_ID=<?=$arElement["ID"]?>"><?=$arElement["NAME"]?></a>

        <?=(strlen($arElement["PREVIEW_TEXT"])>0 ? "<br>".$arElement["PREVIEW_TEXT"]: "")?>
        </font><br clear="all"><br>

    <?endwhile?>
<?endif?>
?>


GetPermission

Обучение>Классы>CCourse>GetPermission (доступен с 5.0.3)

CCourse::GetPermission

Описание и параметры

string
CCourse::GetPermission(
 int courseId
);

Возвращает право доступа к учебному курсу с идентификатором courseId для текущего пользователя. Метод статический.

Параметры метода

Параметр | Описание
courseId | Идентификатор курса. До версии 12.0.0 параметр назывался COURSE_ID.

Возвращаемое значение

Символ права доступа: "D" - запрещён, "R" - чтение, "W" - изменение, "X" - полный доступ (изменение + право изменять права доступа).

Смотрите также

  • CCourse::SetPermission
  • CCourse::GetGroupPermissions

Примеры использования

<?
$permission = CCourse::GetPermission($id);
if ($permission<"X")
    return false;
?>


GetSite

Обучение>Классы>CCourse>GetSite (доступен с 5.0.3)

CCourse::GetSite

Описание и параметры

CDBResult
CCourse::GetSite(
 int COURSE_ID
);

Возвращает список сайтов для учебного курса с идентификатором COURSE_ID. Метод нестатический.

Параметры метода

Параметр | Описание
COURSE_ID | Идентификатор курса.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult

Примеры использования

<?

if (CModule::IncludeModule("learning"))
{

    $ID = 106;//Course ID

    $arSite = Array();
    $db_SITE_ID = CCourse::GetSite($ID);
    while($ar_SITE_ID = $db_SITE_ID->Fetch())
        $arSite[] = $ar_SITE_ID["LID"];

}

?>


IsHaveCourse

Обучение>Классы>CCourse>IsHaveCourse (доступен с 5.0.3, удален с 8.0.0)

CCourse::IsHaveCourse

Описание и параметры

bool
CCourse::IsHaveCourse(
 string MIN_PERMISSION = "W"
);

Определяет, имеет ли текущий пользователь минимальное право доступа MIN_PERMISSION хотя бы к одному курсу.

Параметры метода

Параметр | Описание
MIN_PERMISSION | Минимальное право доступа. По умолчанию "W" - запись.

Возвращаемое значение

Метод возвращает true, если пользователь имеет доступ хотя бы к одному курсу, в противном случае - false.

Смотрите также

  • CCourse::GetList

    • Примеры использования

    <?
if (CCourse::IsHaveCourse($MIN_PERMISSION = "W"))
{
  echo "You are a teacher!";
}
else
{
  echo "Access denied!";
}
?>


SetPermission

Обучение>Классы>CCourse>SetPermission (доступен с 5.0.3)

CCourse::SetPermission

Описание и параметры

CCourse::SetPermission(
 int COURSE_ID,
 array arPERMISSIONS
);

Важно! Данный метод устарел, использовать его крайне не рекомендуется. Он оставлен лишь для обратной совместимости.

Метод устанавливает права доступа arPERMISSIONS для учебного курса с идентификатором COURSE_ID. Метод статический.

Параметры метода

Параметр | Описание
COURSE_ID | Идентификатор курса.
arPERMISSIONS массив вида Array("код группы"=>"право доступа", ....),
где право доступа:
  • D - доступ запрещён;
  • R - чтение;
  • W - запись;
  • X - полный доступ (запись + назначение прав доступа на данный курс).

Смотрите также

  • CCourse::GetPermission
  • CCourse::Update()

Примеры использования

<?
CCourse::SetPermission($COURSE_ID, Array("2"=>"R", "3"=>"W"));
?>


TimeToStr

Обучение>Классы>CCourse>TimeToStr (доступен с 5.1.0)

CCourse::TimeToStr

string
CCourse::TimeToStr(
 int seconds
);

Возвращает количество дней, часов, минут и секунд в виде строки, содержащихся в seconds. Метод нестатический.

Параметры метода

Параметр | Описание
seconds | Количество секунд.

Возвращаемое значение

Метод возвращает строку вида "DDдн. HHч. MMмин. SSсек.".

Примеры использования

<?

if (CModule::IncludeModule("learning"))
{
    $seconds = 56789;
    $time = CCourse::TimeToStr($seconds);
    echo $time; //print 15 ч. 46 мин. 29 сек.
}

?>


Update

Обучение>Классы>CCourse>Update (доступен с 5.0.3)

CCourse::Update

Описание и параметры

bool
CCourse::Update(
 int   ID,
 array arFields
);

Метод изменяет параметры курса с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор изменяемого курса.
arFields Массив Array("поле"=>"значение", ...). Содержит значения всех полей курса. Обязательные поля должны быть заполнены.
Дополнительно в поле SITE_ID должен находиться массив идентификаторов сайтов, к которым привязан добавляемый курс.
Кроме того, с помощью поля "GROUP_ID", значением которого должен быть массив соответствий кодов групп правам доступа, можно установить права для разных групп на доступ к курсу (см. CCourse::SetPermission).

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки метод вернет false. При возникновении ошибки в исключениях будет содержаться текст ошибки.

Смотрите также

  • Поля курса
  • CCourse::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $arFields = Array(
        "ACTIVE" => "Y",
        "NAME" => "New name",
        "SITE_ID" => Array("en"), //Sites
    );

    $ID = 1;//Course ID

    $course = new CCourse;
    $success = $course->Update($ID, $arFields);

    if($success)
    {
        echo "Ok!";

    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}
?>


Класс CCourseImport

CCourseImport - класс для импорта курса.
Метод | Описание | С версии
CCourseImport | (конструктор) инициализирует импортируемый курс. | 5.0.3
ImportPackage | Импортирует курс. | 5.0.3


CCourseImport

Обучение>Классы>CCourseImport (доступен с 5.0.3)

CCourseImport::CCourseImport

Описание и параметры

bool
CCourseImport::CCourseImport(
 string PACKAGE_DIR,
 array arSITE_ID
);

Конструктор класса CCourseImport. Инициализирует импортируемый курс.

Параметры метода

Параметр | Описание
PACKAGE_DIR | Путь к директории (относительно корня сайта) с архивом курса.
arSITE_ID | Массив идентификаторов сайтов, к которым будет привязан импортируемый курс.

Примечание

Если инициализация прошла неудачно, в свойстве LAST_ERROR объекта будет содержаться текст ошибки.

Смотрите также

  • CCourseImport::ImportPackage

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    if ($USER->IsAdmin())
    {
        @set_time_limit(0);
        $package = new CCourseImport($PACKAGE_DIR = "/upload/mypackage/", Array("ru", "en"));

        if (strlen($package->LAST_ERROR) > 0)
        {
            echo "Error: ".$package->LAST_ERROR;
        }
        else
        {
            $success = $package->ImportPackage();

            if (!$success)
                echo "Error: ".$package->LAST_ERROR;
            else
                echo "Ok!";
        }
    }
}
?>


ImportPackage

Обучение>Классы>CCourseImport>ImportPackage (доступен с 5.0.3)

CCourseImport::ImportPackage

Описание и параметры

bool
CCourseImport::ImportPackage();

Метод импортирует курс. Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

Метод возвращает true, если создание курса прошло успешно. При возникновении ошибки метод вернёт false, а в свойстве объекта LAST_ERROR будет содержаться текст ошибки.

Смотрите также

  • CCourseImport::CCourseImport

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    if ($USER->IsAdmin())
    {
        @set_time_limit(0);
        $package = new CCourseImport($PACKAGE_DIR = "/upload/mypackage/", Array("ru", "en"));

        if (strlen($package->LAST_ERROR) > 0)
        {
            echo "Error: ".$package->LAST_ERROR;
        }
        else
        {
            $success = $package->ImportPackage();

            if (!$success)
                echo "Error: ".$package->LAST_ERROR;
            else
                echo "Ok!";
        }
    }
}
?>


Класс CCoursePackage

CCoursePackage - класс для экспорта курса.
Метод | Описание | С версии
CCoursePackage | (конструктор) инициализирует экспортируемый курс. | 5.0.3
CreateManifest | Возвращает манифест (в xml-формате) архива. | 5.0.3
CreatePackage | Создает архив с учебным курсом. | 5.0.3


CCoursePackage

Обучение>Классы>CCoursePackage (доступен с 5.0.3)

CCoursePackage::CCoursePackage

Описание и параметры

bool
CCoursePackage::CCoursePackage(
 int COURSE_ID
);

Конструктор класса CCoursePackage инициализирует экспортируемый курс. Метод нестатический.

Параметры метода

Параметр | Описание
COURSE_ID | Идентификатор курса.

Примечание

Если инициализация прошла неудачно, в свойстве LAST_ERROR объекта будет содержаться текст ошибки.

Смотрите также

  • CCoursePackage::CreatePackage
  • CCoursePackage::CreateManifest

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    if (CCourse::GetPermission($COURSE_ID) >= 'W')
    {
        @set_time_limit(0);
        $package = new CCoursePackage($COURSE_ID);

        if (strlen($package->LAST_ERROR) > 0)
        {
            echo "Error: ".$package->LAST_ERROR;
        }
        else
        {
            $success = $package->CreatePackage($PACKAGE_DIR = "/upload/mypackage/");

            if (!$success)
                echo "Error: ".$package->LAST_ERROR;
            else
                echo "Ok!";
        }

    }
}

?>


CreateManifest

Обучение>Классы>CCoursePackage>CreateManifest (доступен с 5.0.3)

CCoursePackage::CreateManifest

Описание и параметры

string
CCoursePackage::CreateManifest();

Возвращает манифест (в xml-формате) архива учебного курса. Метод нестатический.

Параметры метода

Нет параметров.

Возвращаемое значение

Метод возвращает строку - содержимое файла imsmanifest.xml архива учебного курса.

Смотрите также

  • CCoursePackage::CCoursePackage
  • CCoursePackage::CreatePackage

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    if (CCourse::GetPermission($COURSE_ID) >= 'W')
    {
        @set_time_limit(0);
        $package = new CCoursePackage($COURSE_ID);

        if (strlen($package->LAST_ERROR) > 0)
        {
            echo "Error: ".$package->LAST_ERROR;
        }
        else
        {
            echo htmlspecialchars($package->CreateManifest());
        }

    }
}

?>


CreatePackage

Обучение>Классы>CCoursePackage>CreatePackage (доступен с 5.0.3)

CCoursePackage::CreatePackage

Описание и параметры

bool
CCoursePackage::CreatePackage(
 int PACKAGE_DIR
);

Создает архив с учебным курсом. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
PACKAGE_DIR | Путь (относительно корня сайта) к директории, куда будет скопирован архив курса. | 5.1.2

Возвращаемое значение

Метод возвращает true, если создание архива прошло успешно. При возникновении ошибки метод вернет false, а в свойстве объекта LAST_ERROR будет содержаться текст ошибки.

Смотрите также

  • CCoursePackage::CCoursePackage
  • CCoursePackage::CreateManifest

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    if (CCourse::GetPermission($COURSE_ID) >= 'W')
    {
        @set_time_limit(0);
        $package = new CCoursePackage($COURSE_ID);

        if (strlen($package->LAST_ERROR) > 0)
        {
            echo "Error: ".$package->LAST_ERROR;
        }
        else
        {
            $success = $package->CreatePackage($PACKAGE_DIR = "/upload/mypackage/");

            if (!$success)
                echo "Error: ".$package->LAST_ERROR;
            else
                echo "Ok!";
        }

    }
}

?>


Класс CGradeBook

CGradeBook - класс для работы с журналом.
Метод | Описание | С версии
GetList | Возвращает список записей журнала по фильтру. | 5.1.0
GetByID | Возвращает запись по идентификатору. | 5.1.0
Add | Добавляет новую запись в журнал. | 5.1.0
Update | Изменяет параметры записи в журнале. | 5.1.0
Delete | Удаляет запись из журнала. | 5.1.0

Пример использования

// пример пересчета журнала
$gradebook = new CGradeBook;
$gradebook->RecountAttempts($STUDENT_ID,$TEST_ID);


Add

Обучение>Классы>CGradeBook>Add (доступен с 5.1.0)

CGradeBook::Add

Описание и параметры

int
CGradeBook::Add(
 array arFields
);

Метод добавляет новую запись в журнал. Метод нестатический.

Параметры метода

Параметр | Описание
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей журнала. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает идентификатор добавленной записи в журнал, если добавление прошло успешно. При возникновении ошибки метод вернёт false, а в исключениях будут содержаться ошибки.

Смотрите также

  • CGradeBook::Update
  • Поля журнала

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $TEST_ID = 32;
    $STUDENT_ID = 3;

    $arFields = Array(

        "TEST_ID" => $TEST_ID,
        "STUDENT_ID" => $STUDENT_ID,
        "RESULT" => 300,
        "MAX_RESULT" => 300
    );

    $gradebook = new CGradeBook;
    $ID = $gradebook->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }
}
?>


Delete

Обучение>Классы>CGradeBook>Delete (доступен с 5.1.0)

CGradeBook::Delete

bool
CGradeBook::Delete(
 int ID
);

Метод удаляет запись в журнале с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор записи.

Возвращаемое значение

Метод возвращает true в случае успешного удаления записи, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $RECORD_ID = 96;

    @set_time_limit(0);
    $DB->StartTransaction();
    if (!CGradeBook::Delete($RECORD_ID))
    {
        echo "Error!";
        $DB->Rollback();
    }
    else
        $DB->Commit();

}
?>


GetByID

Обучение>Классы>CGradeBook>GetByID (доступен с 5.1.0)

CGradeBook::GetByID

Описание и параметры

CDBResult
CGradeBook::GetByID(
 int ID
);

Возвращает запись журнала по идентификатору ID. Учитываются права доступа текущего пользователя. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор записи в журнале.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля журнала
  • CGradeBook::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $RECORD_ID = 95;

    $res = CGradeBook::GetByID($RECORD_ID);

    if ($arGradeBook = $res->GetNext())
    {
        echo "Test: ".$arGradeBook["TEST_NAME"]." User: ".$arGradeBook["USER_NAME"]." Score: ".$arGradeBook["RESULT"];
    }
}

?>


GetList

Обучение>Классы>CGradeBook>GetList (доступен с 5.1.0)

CGradeBook::GetList

Описание и параметры

CDBResult
CGradeBook::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array()
);

Возвращает список записей журнала по фильтру arFilter, отсортированный в порядке arOrder. Учитываются права доступа текущего пользователя. Метод статический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • ID - идентификатор записи;
  • TEST_ID - идентификатор теста;
  • STUDENT_ID - идентификатор студента ;
  • RESULT - количество баллов;
  • MAX_RESULT - максимальное количество баллов;
  • COMPLETED - тест пройден;
  • USER_NAME - имя студента;
  • TEST_NAME - название теста.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию фильтруется по убыванию идентификатора записи журнала.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор записи;
  • TEST_ID - идентификатор теста;
  • STUDENT_ID - идентификатор студента;
  • RESULT - количество баллов;
  • MAX_RESULT - максимальное количество баллов;
  • COMPLETED - тест пройден (Y|N);
  • USER - пользователь (возможны сложные условия по полям пользователя ID, LOGIN, NAME, LAST_NAME);
  • MIN_PERMISSION - минимальный уровень доcтупа. По умолчанию "R". Список прав доступа см. в CCourse::SetPermission.
  • CHECK_PERMISSIONS - проверять уровень доступа. Если установлено значение "N" - права доступа не проверяются.
Перед названием фильтруемого поля можно указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • CGradeBook::GetByID
  • Поля журнала

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $TEST_ID = 45;
    $res = CGradebook::GetList(
        Array("ID" => "ASC"),
        Array("TEST_ID" => $TEST_ID)
    );

    while ($arGradebook = $res->GetNext())
    {
        echo "Student: ".$arGradebook["USER_NAME"]."; Test name: ".$arGradebook["TEST_NAME"]."; Completed: ".$arGradebook["COMPLETED"]."<br>";
    }
}

?>

<?

if (CModule::IncludeModule("learning"))
{
    $TEST_ID = 45;
    $STUDENT_ID = 3;

    $res = CGradebook::GetList(
        Array("ID" => "ASC"),
        Array("CHECK_PERMISSIONS" => "N", "TEST_ID" => $TEST_ID, "STUDENT_ID" => $STUDENT_ID)
    );

    while ($arGradebook = $res->GetNext())
    {
        echo "Student: ".$arGradebook["USER_NAME"]."; Test name: ".$arGradebook["TEST_NAME"]."; Completed: ".$arGradebook["COMPLETED"]."<br>";
    }

}

?>


Update

Обучение>Классы>CGradeBook>Update (доступен с 5.1.0)

CGradeBook::Update

Описание и параметры

bool
CGradeBook::Update(
 int   ID,
 array arFields
);

Метод изменяет параметры записи в журнале с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор записи в журнале.
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей журнала. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки метод вернет false. При возникновении ошибки в исключениях будет содержаться текст ошибки.

Смотрите также

  • Поля журнала
  • CGradeBook::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $RECORD_ID = 96;

    $arFields = Array(
        "RESULT" => 250,
        "MAX_RESULT" => 300
    );

    $gradebook = new CGradeBook;
    $success = $gradebook->Update($RECORD_ID, $arFields);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }
}
?>


Класс CLAnswer

CLAnswer - класс для работы с ответами вопроса.
Метод | Описание | С версии
GetList | Возвращает список ответов по фильтру. | 5.0.6
GetByID | Возвращает ответ по идентификатору. | 5.0.6
Add | Добавляет новый ответ. | 5.0.6
Update | Изменяет параметры ответа. | 5.0.6
Delete | Удаляет ответ. | 5.0.6


Add

Обучение>Классы>CLAnswer>Add (доступен с 5.0.6)

CLAnswer::Add

Описание и параметры

int
CLAnswer::Add(
 array arFields
);

Метод добавляет новый ответ на вопрос. Метод нестатический.

Параметры метода

Параметр | Описание
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей ответа. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает идентификатор добавленного ответа, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Смотрите также

  • CLAnswer::Update
  • Поля ответа

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $QUESTION_ID = 289;

    $arFields = Array(
        "ANSWER" => "Another answer",
        "QUESTION_ID" => $QUESTION_ID,
    );

    $answer = new CLAnswer;
    $ID = $answer->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}

?>


Delete

Обучение>Классы>CLAnswer>Delete (доступен с 5.0.6)

CLAnswer::Delete

bool
CLAnswer::Delete(
 int ID
);

Метод удаляет ответ с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор ответа.

Возвращаемое значение

Метод возвращает true в случае успешного удаления ответа, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;
    $ANSWER_ID = 1553;

    if (CCourse::GetPermission($COURSE_ID) >= 'W')
    {
        @set_time_limit(0);
        $DB->StartTransaction();
        if (!CLAnswer::Delete($ANSWER_ID))
        {
            echo "Error!";
            $DB->Rollback();
        }
        else
            $DB->Commit();
    }
}
?>


GetByID

Обучение>Классы>CLAnswer>GetByID (доступен с 5.0.6)

CLAnswer::GetByID

Описание и параметры

CDBResult
CLAnswer::GetByID(
 int ID
);

Возвращает ответ по его коду ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор ответа.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля ответа
  • CLAnswer::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $ANSWER_ID = 573;

    $res = CLAnswer::GetByID($ANSWER_ID);

    if ($arAnswer = $res->GetNext())
    {
        echo "Name: ".$arAnswer["ANSWER"];
    }
}
?>


GetList

Обучение>Классы>CLAnswer>GetList (доступен с 5.0.6)

CLAnswer::GetList

Описание и параметры

CDBResult
CLAnswer::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array()
);

Возвращает список ответов по фильтру arFilter, отсортированный в порядке arOrder. Метод нестатический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • ID - идентификатор ответа;
  • SORT - индекс сортировки;
  • CORRECT - правильность ответа;
  • ANSWER - текст ответа;
  • RAND - случайный порядок;
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию фильтруется по убыванию идентификатора ответа.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор ответа;
  • SORT - индекс сортировки;
  • QUESTION_ID - идентификатор вопроса;
  • ANSWER - текст ответа (можно искать по шаблону [%_]);
  • CORRECT - правильность ответа (Y|N);
Перед названием фильтруемого поля можно указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • CLAnswer::GetByID
  • Поля ответа

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $QUESTION_ID = 290;
    $res = CLAnswer::GetList(
        Array("SORT"=>"DESC"),
        Array("QUESTION_ID" => $QUESTION_ID)
    );

    while ($arAnswer = $res->GetNext())
    {
        echo "Answer name: ".$arAnswer["ANSWER"]."<br>";
    }
}

?>

<?

if (CModule::IncludeModule("learning"))
{
    $QUESTION_ID = 290;

    $res = CLAnswer::GetList(
        Array("SORT"=>"ASC"),
        Array("QUESTION_ID" => $QUESTION_ID, "?ANSWER" => "sys")
    );

    while ($arAnswer = $res->GetNext())
    {
        echo "Answer name: ".$arAnswer["ANSWER"]."<br>";
    }
}
?>

<?

if (CModule::IncludeModule("learning"))
{
    $QUESTION_ID = 290;

    $res = CLAnswer::GetList(
        Array(),
        Array("QUESTION_ID" => $QUESTION_ID, "CORRECT" => "Y")
    );

    while ($arAnswer = $res->GetNext())
    {
        echo "Answer name: ".$arAnswer["ANSWER"]."<br>";
    }
}

?>

<?

if (CModule::IncludeModule("learning"))
{
    $QUESTION_ID = 290;

    $res = CLAnswer::GetList(
        Array("TIMESTAMP_X" => "ASC", "SORT"=>"ASC"),
        Array("QUESTION_ID" => $QUESTION_ID)
    );

    while ($arAnswer = $res->GetNext())
    {
        echo "Answer name: ".$arAnswer["ANSWER"]."<br>";
    }
}

?>

<?

if (CModule::IncludeModule("learning"))
{
    $QUESTION_ID = 290;

    $res = CLAnswer::GetList(
        Array("RAND"=>""),
        Array("QUESTION_ID" => $QUESTION_ID)
    );

    while ($arAnswer = $res->GetNext())
    {
        echo "Answer name: ".$arAnswer["ANSWER"]."<br>";
    }
}

?>


Update

Обучение>Классы>CLAnswer>Update (доступен с 5.0.6)

CLAnswer::Update

Описание и параметры

bool
CLAnswer::Update(
 int   ID,
 array arFields
);

Метод изменяет параметры ответа с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор ответа.
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей ответа. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки метод вернет false. При возникновении ошибки в исключениях будет содержаться текст ошибки.

Смотрите также

  • Поля ответа
  • CLAnswer::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $ANSWER_ID = 1553;

    $arFields = Array(
        "ANSWER" => "New answer name",
        "SORT" => "1",
    );

    $answer = new CLAnswer;
    $success = $answer->Update($ANSWER_ID, $arFields);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}
?>


Класс CLesson

CLesson - класс для работы с уроками.
Метод | Описание | С версии
GetList | Возвращает список уроков по фильтру. | 5.1.0
GetByID | Возвращает урок по идентификатору. | 5.1.0
Add | Добавляет новый урок. | 5.1.0
Update | Изменяет параметры урока. | 5.1.0
Delete | Удаляет урок. | 5.1.0

Примечание: начиная с версии 12.0.0, класс считается устаревшим. Вместо него для работы с главами/уроками следует использовать класс CLearnLesson.


Add

Обучение>Классы>CLesson>Add (доступен с 5.1.0, устарел и удален с 12.0.0)

CLesson::Add

Описание и параметры

int
CLesson::Add(
 array arFields
);

Метод добавляет новый урок.

Примечание: начиная с версии 12.0.0, метод считается устаревшим. Вместо него для работы с главами/уроками следует использовать класс CLearnLesson.

Параметры метода

Параметр | Описание
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей урока. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает идентификатор добавленного урока, если добавление прошло успешно. При возникновении ошибки метод вернёт false, а в исключениях будут содержаться ошибки.

Смотрите также

  • CLesson::Update
  • Поля урока

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    $arFields = Array(
        "ACTIVE" => "Y",
        "COURSE_ID" => $COURSE_ID,
        "NAME" => "Lesson 1",
        "SORT" => "1",
        "DETAIL_TEXT" => "It my first lesson ...",
    );

    $lesson = new CLesson;
    $ID = $lesson->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}
?>


Delete

Обучение>Классы>CLesson>Delete (доступен с 5.1.0, устарел и удален с 12.0.0)

CLesson::Delete

Описание и параметры

bool
CLesson::Delete(
 int ID
);

Метод удаляет урок с идентификатором ID.

Примечание: начиная с версии 12.0.0, метод считается устаревшим. Вместо него для работы с главами/уроками следует использовать класс CLearnLesson.

Параметры метода

Параметр | Описание
ID | Идентификатор урока.

Возвращаемое значение

Метод возвращает true в случае успешного удаления урока, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;
    $LESSON_ID = 732;

    if (CCourse::GetPermission($COURSE_ID) >= 'W')
    {
        @set_time_limit(0);
        $DB->StartTransaction();
        if (!CLesson::Delete($LESSON_ID))
        {
            echo "Error!";
            $DB->Rollback();
        }
        else
            $DB->Commit();
    }
}
?>


GetByID

Обучение>Классы>CLesson>GetByID (доступен с 5.1.0, устарел и удален с 12.0.0)

CLesson::GetByID

Описание и параметры

CDBResult
CLesson::GetByID(
 int ID
);

Возвращает урок по его коду ID. Учитываются права доступа текущего пользователя.

Примечание: начиная с версии 12.0.0, метод считается устаревшим. Вместо него для работы с главами/уроками следует использовать класс CLearnLesson.

Параметры метода

Параметр | Описание
ID | Идентификатор урока.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля урока
  • CLesson::GetList

    • Примеры использования

    <?
if (CModule::IncludeModule("learning"))
{
    $LESSON_ID = 651;

    $res = CLesson::GetByID($LESSON_ID);

    if ($arLesson = $res->GetNext())
    {
        echo "Name: ".$arLesson["NAME"];
    }
}
?>


GetList

Обучение>Классы>CLesson>GetList (доступен с 5.1.0, устарел с 12.0.0)

CLesson::GetList

Описание и параметры

CDBResult
CLesson::GetList(
 array arOrder = Array("TIMESTAMP_X"=>"DESC"),
 array arFilter = Array()
);

Возвращает список уроков по фильтру arFilter, отсортированный в порядке arOrder. Учитываются права доступа текущего пользователя. Метод статический.

Примечание: начиная с версии 12.0.0, метод считается устаревшим. Вместо него для работы с главами/уроками следует использовать метод CLearnLesson::GetList.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • ID - идентификатор урока;
  • NAME - название урока;
  • ACTIVE - активность урока;
  • SORT - индекс сортировки;
  • TIMESTAMP_X - дата изменения урока.
  • CREATED_BY - код пользователя, создавшего урок.
  • CHAPTER_NAME - название главы, в .
  • DATE_CREATE - дата создания урока.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию сортируется по убыванию даты изменения урока.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор урока;
  • NAME - название урока (можно искать по шаблону [%_]);
  • SORT - индекс сортировки;
  • ACTIVE - фильтр по активности (Y|N);
  • TIMESTAMP_X - дата изменения урока;
  • DATE_CREATE - дата создания урока;
  • CHAPTER_ID - идентификатор главы. Для получения списка родительских глав установите это поле в значение пусто;
  • COURSE_ID - идентификатор курса;
  • CREATED_BY - код пользователя, создавшего урок;
  • DETAIL_TEXT - детальное описание (можно искать по шаблону [%_]);
  • PREVIEW_TEXT - предварительное описание (можно искать по шаблону [%_]);
  • MIN_PERMISSION - минимальный уровень доcтупа. По умолчанию "R". Список прав доступа см. в CCourse::SetPermission.
  • CHECK_PERMISSIONS - проверять уровень доступа. Если установлено значение "N" - права доступа не проверяются.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • CLesson::GetByID
  • Поля урока

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 8;
    $res = CLesson::GetList(
        Array("SORT"=>"ASC"),
        Array("ACTIVE" => "Y", "COURSE_ID" => $COURSE_ID)
    );

    while ($arLesson = $res->GetNext())
    {
        echo "Lesson name: ".$arLesson["NAME"]."<br>";
    }
}

?>

<?

if (CModule::IncludeModule("learning"))
{
    $res = CLesson::GetList(
        Array("SORT"=>"ASC"),
        Array("?NAME" => "Site")
    );

    while ($arLesson = $res->GetNext())
    {
        echo "Lesson name: ".$arLesson["NAME"]."<br>";
    }
}
?>

<?

if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 8;

    $res = CLesson::GetList(
        Array("NAME" => "ASC", "SORT"=>"ASC"),
        Array("CHECK_PERMISSIONS" => "N", "COURSE_ID" => $COURSE_ID)
    );

    while ($arLesson = $res->GetNext())
    {
        echo "Lesson name: ".$arLesson["NAME"]."<br>";
    }
}

?>

<?

if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 8;

    $res = CLesson::GetList(
        Array("NAME" => "ASC", "SORT"=>"ASC"),
        Array("CHECK_PERMISSIONS" => "N", "CHAPTER_ID" => "", "COURSE_ID" => $COURSE_ID)
    );

    while ($arLesson = $res->GetNext())
    {
        echo "Lesson name: ".$arLesson["NAME"]."<br>";
    }
}

?>


Update

Обучение>Классы>CLesson>Update (доступен с 5.1.0, устарел и удален с 12.0.0)

CLesson::Update

Описание и параметры

bool
CLesson::Update(
 int   ID,
 array arFields
);

Метод изменяет параметры урока с идентификатором ID.

Примечание: начиная с версии 12.0.0, метод считается устаревшим. Вместо него для работы с главами/уроками следует использовать класс CLearnLesson.

Параметры метода

Параметр | Описание
ID | Идентификатор урока.
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей урока. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки метод вернёт false. При возникновении ошибки в исключениях будет содержаться текст ошибки.

Смотрите также

  • Поля урока
  • CLesson::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $LESSON_ID = 732;

    $arFields = Array(
        "ACTIVE" => "N",
        "NAME" => "New name of Lesson 1",
        "SORT" => "555",
    );

    $lesson = new CLesson;
    $success = $lesson->Update($LESSON_ID, $arFields);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}

?>


Класс CLQuestion

CLQuestion - класс для работы с вопросами.
Метод | Описание | С версии
GetList | Возвращает список вопросов по фильтру. | 5.0.3
GetByID | Возвращает вопрос по идентификатору. | 5.0.3
Add | Добавляет новый вопрос. | 5.0.3
Update | Изменяет параметры вопроса. | 5.0.3
Delete | Удаляет вопрос. | 5.0.3
GetCount | Возвращает количество вопросов. | 5.0.3


Add

Обучение>Классы>CLQuestion>Add (доступен с 5.0.3)

CLQuestion::Add

Описание и параметры

int
CLQuestion::Add(
 array arFields
);

Метод добавляет новый вопрос. Метод нестатический.

Параметры метода

Параметр | Описание
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей вопроса. Обязательные поля должны быть заполнены.

Примечание: при добавлении вопроса средствами API стоит обратить внимание на поле FILE_ID: указать в нем только id файла, уже существующего на сервере, недостаточно. Это поле должно быть массивом, формат подробно описан здесь. (FILE_ID = CFile::MakeFileArray ('Путь_к_картинке');)

Возвращаемое значение

Метод возвращает идентификатор добавленного вопроса, если добавление прошло успешно. При возникновении ошибки метод вернет false, а в исключениях будут содержаться ошибки.

Смотрите также

  • CLQuestion::Update
  • Поля вопроса

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $LESSON_ID = 431;

    $arFields = Array(
        "ACTIVE" => "Y",
        "LESSON_ID" => $LESSON_ID,
        "SORT" => "1",
        "NAME" => "Let us assume that there are several sites in the system.
        Is it possible to assign users permissions on access to viewing statistics individually for each site?"
    );

    $question = new CLQuestion;
    $ID = $question->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}

?>


Delete

Обучение>Классы>CLQuestion>Delete (доступен с 5.0.3)

CLQuestion::Delete

Описание и параметры

bool
CLQuestion::Delete(
 int ID
);

Метод удаляет вопрос с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор вопроса.

Возвращаемое значение

Метод возвращает true в случае успешного удаления вопроса, в противном случае возвращает false.

Смотрите также

  • CLQuestion::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;
    $QUESTION_ID = 600;

    if (CCourse::GetPermission($COURSE_ID) >= 'W')
    {
        @set_time_limit(0);
        $DB->StartTransaction();
        if (!CLQuestion::Delete($QUESTION_ID))
        {
            echo "Error!";
            $DB->Rollback();
        }
        else
            $DB->Commit();
    }
}
?>


GetByID

Обучение>Классы>CLQuestion>GetByID (доступен с 5.0.3)

CLQuestion::GetByID

Описание и параметры

CDBResult
CLQuestion::GetByID(
 int ID
);

Возвращает вопрос по идентификатору. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор вопроса.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля вопроса
  • CLQuestion::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $QUESTION_ID = 289;

    $res = CLQuestion::GetByID($QUESTION_ID);

    if ($arQuestion = $res->GetNext())
    {
        echo "Name: ".$arQuestion["NAME"];
    }
}
?>


GetCount

Обучение>Классы>CLQuestion>GetCount (доступен с 5.0.3)

CLQuestion::GetCount

Описание и параметры

int
CLQuestion::GetCount(
 array arFilter = Array()
);

Метод возвращает количество вопросов по заданному фильтру. Метод нестатический.

Параметры метода

Параметр | Описание
arFilter | Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Описание фильтра см. в CLQuestion::GetList. По умолчанию вопросы не фильтруются.

Возвращаемое значение

Число - количество вопросов.

Смотрите также

  • CLQuestion::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    $cnt = CLQuestion::GetCount(Array("ACTIVE" => "Y", "COURSE_ID" => $COURSE_ID));

    echo "Number of questions: ".$cnt;
}

?>

<?
if (CModule::IncludeModule("learning"))
{
    $LESSON_ID = 426;

    $cnt = CLQuestion::GetCount(Array("LESSON_ID" => $LESSON_ID));

    echo "Number of questions: ".$cnt;
}

?>


GetList

Обучение>Классы>CLQuestion>GetList (доступен с 5.0.3)

CLQuestion::GetList

Описание и параметры

CDBResult
CLQuestion::GetList(
 array arOrder = Array("TIMESTAMP_X"=>"DESC"),
 array arFilter = Array()
);

Возвращает список вопросов по фильтру arFilter, отсортированный в порядке arOrder. Метод нестатический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • ID - идентификатор вопроса;
  • NAME - название вопроса;
  • ACTIVE - активность вопроса;
  • SORT - индекс сортировки;
  • SELF - вопрос для самопроверки;
  • POINT - баллы;
  • TYPE - тип вопроса;
  • TIMESTAMP_X - дата изменения вопроса.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию сортируется по убыванию даты изменения вопроса.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор вопроса;
  • NAME - название вопроса (можно искать по шаблону [%_]);
  • SORT - индекс сортировки;
  • ACTIVE - фильтр по активности (Y|N);
  • LESSON_ID - идентификатор урока;
  • POINT - баллы;
  • COURSE_ID - идентификатор курса;
  • QUESTION_TYPE - тип вопроса (S - одиночный выбор, M - множественный выбор);
  • SELF - вопрос для самопроверки (Y|N).
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • CLQuestion::GetByID
  • Поля вопроса

Примеры использования

<?

if (CModule::IncludeModule("learning"))
{
    $LESSON_ID = 426;

    $res = CLQuestion::GetList(
        Array("TIMESTAMP_X" => "ASC", "SORT"=>"ASC"),
        Array("LESSON_ID" => $LESSON_ID)
    );

    while ($arQuestion = $res->GetNext())
    {
        echo "Question name: ".$arQuestion["NAME"]."<br>";
    }
}

?>

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;
    $res = CLQuestion::GetList(
        Array("SORT"=>"ASC"),
        Array("ACTIVE" => "Y", "COURSE_ID" => $COURSE_ID)
    );

    while ($arQuestion = $res->GetNext())
    {
        echo "Question name: ".$arQuestion["NAME"]."<br>";
    }
}

?>

<?

if (CModule::IncludeModule("learning"))
{
    $res = CLQuestion::GetList(
        Array("SORT"=>"ASC"),
        Array("?NAME" => "Site")
    );

    while ($arQuestion = $res->GetNext())
    {
        echo "Question name: ".$arQuestion["NAME"]."<br>";
    }
}
?>

<?

if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    $res = CLQuestion::GetList(
        Array("NAME" => "ASC", "SORT"=>"ASC"),
        Array("COURSE_ID" => $COURSE_ID, "!SELF" => "Y")
    );

    while ($arQuestion = $res->GetNext())
    {
        echo "Question name: ".$arQuestion["NAME"]."<br>";
    }
}

?>


Update

Обучение>Классы>CLQuestion>Update (доступен с 5.0.3)

CLQuestion::Update

Описание и параметры

bool
CLQuestion::Update(
 int   ID,
 array arFields
);

Метод изменяет параметры вопроса с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор вопроса.
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей вопроса. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки метод вернёт false. При возникновении ошибки в исключениях будет содержаться текст ошибки.

Смотрите также

  • Поля вопроса
  • CLQuestion::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $QUESTION_ID = 600;

    $arFields = Array(
        "ACTIVE" => "N",
        "NAME" => "New name of question",
        "SORT" => "555",
    );

    $question = new CLQuestion;
    $success = $question->Update($QUESTION_ID, $arFields);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}
?>


Класс CStudent

CStudent - класс для работы с учетными записями студентов.
Метод | Описание | С версии
GetList | Возвращает список учетных записей студентов. | 5.1.0
GetByID | Возвращает учетную запись по идентификатору. | 5.1.0
Add | Добавляет новую учетную запись. | 5.1.0
Update | Изменяет параметры учетной записи. | 5.1.0
Delete | Удаляет учетную запись. | 5.1.0
GenerateTranscipt | Возвращает случайный числовой идентификатор. | 5.1.0


Add

Обучение>Классы>CStudent>Add (доступен с 5.1.0)

CStudent::Add

Описание и параметры

int
CStudent::Add(
 array arFields
);

Метод добавляет новую учетную запись студента. Метод нестатический.

Параметры метода

Параметр | Описание
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей учётной записи студента. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает идентификатор добавленной учетной записи студента (равный коду пользователя), если добавление прошло успешно. При возникновении ошибки метод вернёт false, а в исключениях будут содержаться ошибки.

Смотрите также

  • CStudent::Update
  • Поля учетной записи студента

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $arFields = Array(
        "USER_ID" => 151,
        "RESUME" => "My resume"
    );

    $student = new CStudent;
    $ID = $student->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}
?>


Delete

Обучение>Классы>CStudent>Delete (доступен с 5.1.0)

CStudent::Delete

Описание и параметры

bool
CStudent::Delete(
 int USER_ID
);

Метод удаляет учётную запись студента с кодом пользователя USER_ID. Метод нестатический.

Параметры метода

Параметр | Описание
USER_ID | Код пользователя.

Возвращаемое значение

Метод возвращает true в случае успешного удаления учётной записи студента, в противном случае возвращает false.

Смотрите также

  • CStudent::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $USER_ID = 3;
    if ($USER->IsAdmin())
    {
        @set_time_limit(0);
        $DB->StartTransaction();
        if (!CStudent::Delete($USER_ID))
        {
            echo "Error!";
            $DB->Rollback();
        }
        else
            $DB->Commit();
    }
}
?>


GenerateTranscipt

Обучение>Классы>CStudent>GenerateTranscipt (доступен с 5.1.0)

CStudent::GenerateTranscipt

int
CStudent::GenerateTranscipt(
 int TranscriptLength = 8
);

Возвращает случайный числовой идентификатор. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
TranscriptLength | Длина числового идентификатора. По умолчанию равна 8. | 5.1.2

Возвращаемое значение

Случайное число.

Смотрите также

  • CStudent::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    echo CStudent::GenerateTranscipt();
}
?>


GetByID

Обучение>Классы>CStudent>GetByID (доступен с 5.1.0)

CStudent::GetByID

Описание и параметры

CDBResult
CStudent::GetByID(
 int USER_ID
);

Возвращает учётную запись студента по коду пользователя USER_ID. Метод нестатический.

Параметры метода

Параметр | Описание
USER_ID | Код пользователя.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля учетной записи студента
  • CStudent::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $USER_ID = 3;

    $res = CStudent::GetByID($USER_ID);

    if ($arStudent = $res->GetNext())
    {
        echo "CP: ".$arStudent["RESUME"];
    }
}
?>


GetList

Обучение>Классы>CStudent>GetList (доступен с 5.1.0)

CStudent::GetList

Описание и параметры

CDBResult
CStudent::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array()
);

Возвращает список учётных записей студентов по фильтру arFilter, отсортированный в порядке arOrder. Метод нестатический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • USER_ID - Код пользователя;
  • PUBLIC_PROFILE - профиль доступен публично (Y/N);
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию сортируется по убыванию кода пользователя.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • USER_ID - Код пользователя;
  • PUBLIC_PROFILE - профиль доступен публично (Y/N);
  • TRANSCRIPT - числовой случайный идентификатор;
  • RESUME - резюме студента (можно искать по шаблону [%_]);
Перед названием фильтруемого поля можно указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • CStudent::GetByID
  • Поля студента

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $USER_ID = 1; $TRANSCRIPT = 46785643;
    $res = CStudent::GetList(Array(), Array("USER_ID" => $USER_ID, "TRANSCRIPT" => $TRANSCRIPT));

    while ($arProfile = $res->GetNext())
    {
        echo $arProfile["RESUME"];
    }
}
?>


Update

Обучение>Классы>CStudent>Update (доступен с 5.1.0)

CStudent::Update

Описание и параметры

bool
CStudent::Update(
 int   USER_ID,
 array arFields
);

Метод изменяет параметры учётной записи студента с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
USER_ID | Код пользователя.
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей учетной записи студента. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки метод вернёт false. При возникновении ошибки в исключениях будет содержаться текст ошибки

Смотрите также

  • Поля учетной записи студента
  • CStudent::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $USER_ID = 151;

    $arFields = Array(
        "RESUME" => "My new CP",
    );

    $student = new CStudent;
    $success = $student->Update($USER_ID, $arFields);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}

?>


Класс CTest

CTest - класс для работы с тестами.
Метод | Описание | С версии
GetList | Возвращает список тестов по фильтру. | 5.1.0
GetByID | Возвращает тест по идентификатору. | 5.1.0
Add | Добавляет новый тест. | 5.1.0
Update | Изменяет параметры теста. | 5.1.0
Delete | Удаляет тест. | 5.1.0
GetCount | Возвращает количество тестов по фильтру. | 5.1.1


Add

Обучение>Классы>CTest>Add (доступен с 5.1.0)

CTest::Add

Описание и параметры

int
CTest::Add(
 array arFields
);

Метод добавляет новый тест. Метод нестатический.

Параметры метода

Параметр | Описание
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей теста. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает идентификатор добавленного теста, если добавление прошло успешно. При возникновении ошибки метод вернёт false, а в исключениях будут содержаться ошибки.

Смотрите также

  • CTest::Update
  • Поля теста

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{

    $COURSE_ID = 97;

    $arFields = Array(
        "COURSE_ID" => $COURSE_ID,
        "NAME" => "New test!",
        "INCLUDE_SELF_TEST" => "Y"
    );

    $test = new CTest;
    $ID = $test->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}

?>


Delete

Обучение>Классы>CTest>Delete (доступен с 5.1.0)

CTest::Delete

bool
CTest::Delete(
 int ID
);

Метод удаляет тест с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор теста.

Возвращаемое значение

Метод возвращает true в случае успешного удаления теста, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{

    $TEST_ID = 99;
    $COURSE_ID = 97;

    if (CCourse::GetPermission($COURSE_ID) >= 'W')
    {
        @set_time_limit(0);
        $DB->StartTransaction();
        if (!CTest::Delete($TEST_ID))
        {
            echo "Error!";
            $DB->Rollback();
        }
        else
            $DB->Commit();
    }
}
?>


GetByID

Обучение>Классы>CTest>GetByID (доступен с 5.1.0)

CTest::GetByID

Описание и параметры

CDBResult
CTest::GetByID(
 int ID
);

Возвращает тест по идентификатору ID. Учитываются права доступа текущего пользователя. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор теста.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля теста
  • CTest::GetList

    • Примеры использования

    <?
if (CModule::IncludeModule("learning"))
{
    $TEST_ID = 32;

    $res = CTest::GetByID($TEST_ID);

    if ($arTest = $res->GetNext())
    {
        echo "Test name: ".$arTest["NAME"];
    }
}
?>


GetCount

Обучение>Классы>CTest>GetCount (доступен с 5.1.1)

CTest::GetCount

Описание и параметры

int
CTest::GetCount(
 array arFilter = Array()
);

Возвращает количество тестов по заданному фильтру. Метод нестатический.

Параметры метода

Параметр | Описание
arFilter | Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Описание фильтра см. в CTest::GetList. По умолчанию тесты не фильтруются.

Возвращаемое значение

Число - количество тестов.

Смотрите также

  • CTest::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    $cnt = CTest::GetCount(Array("ACTIVE" => "Y", "COURSE_ID" => $COURSE_ID));

    echo "Number of tests: ".$cnt;
}

?>

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    $cnt = CTest::GetCount(Array("CHECK_PERMISSIONS" => "N", "COURSE_ID" => $COURSE_ID));

    echo "Number of tests: ".$cnt;
}

?>


GetList

Обучение>Классы>CTest>GetList (доступен с 5.1.0)

CTest::GetList

Описание и параметры

CDBResult
CTest::GetList(
 array arOrder = Array("TIMESTAMP_X"=>"DESC"),
 array arFilter = Array()
);

Возвращает список тестов по фильтру arFilter, отсортированный в порядке arOrder. Учитываются права доступа текущего пользователя. Метод статический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • ID - идентификатор теста;
  • SORT - индекс сортировки;
  • NAME - название теста;
  • SORT - индекс сортировки;
  • TIMESTAMP_X - даты изменения теста;
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию сортируется по убыванию даты изменения теста.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор теста;
  • SORT - индекс сортировки;
  • COURSE_ID - идентификатор курса;
  • ATTEMPT_LIMIT - количество попыток;
  • TIME_LIMIT - ограничение времени прохождения теста (в минутах);
  • NAME - название теста (можно искать по шаблону [%_]);
  • DESCRIPTION - описание теста (можно искать по шаблону [%_]);
  • ACTIVE - фильтр по активности (Y|N);
  • APPROVED - автоматическая проверка результатов (Y|N);
  • INCLUDE_SELF_TEST - включать вопросы для самопроверки (Y|N);
  • RANDOM_QUESTIONS - случайный порядок вопросов (Y|N);
  • RANDOM_ANSWERS - случайный порядок ответов (Y|N);
  • QUESTIONS_FROM - в тесте участвуют вопросы (A - со всего курса, C - с каждой главы, L - с каждого урока, S - все вопросы с урока);
  • QUESTIONS_FROM_ID - в тесте участвуют вопросы из конкретного урока;
  • PASSAGE_TYPE - Тип прохождения теста. 0 - запретить переход к следующему вопросу без ответа на текущий вопрос, пользователь не может изменять свои ответы; 1 - разрешить переход к следующему вопросу без ответа на текущий вопрос, пользователь не может изменять свои ответы; 3 - разрешить переход к следующему вопросу без ответа на текущий вопрос, пользователь может изменять свои ответы.
  • MIN_PERMISSION - минимальный уровень доcтупа. По умолчанию "R". Список прав доступа см. в CCourse::SetPermission.
  • CHECK_PERMISSIONS - проверять уровень доступа. Если установлено значение "N" - права доступа не проверяются.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • CTest::GetByID
  • Поля теста

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;
    $res = CTest::GetList(
        Array("SORT"=>"ASC"),
        Array("ACTIVE" => "Y", "COURSE_ID" => $COURSE_ID)
    );

    while ($arTest = $res->GetNext())
    {
        echo "Test name: ".$arTest["NAME"]."<br>";
    }
}

?>

<?

if (CModule::IncludeModule("learning"))
{
    $res = CTest::GetList(
        Array("SORT"=>"ASC"),
        Array("?NAME" => "Site")
    );

    while ($arTest = $res->GetNext())
    {
        echo "Test name: ".$arTest["NAME"]."<br>";
    }
}
?>

<?

if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    $res = CTest::GetList(
        Array("NAME" => "ASC", "SORT"=>"ASC"),
        Array("COURSE_ID" => $COURSE_ID, "APPROVED" => "Y")
    );

    while ($arTest = $res->GetNext())
    {
        echo "Test name: ".$arTest["NAME"]."<br>";
    }
}

?>

<?

if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 97;

    $res = CTest::GetList(
        Array("TIMESTAMP_X" => "ASC", "SORT"=>"ASC"),
        Array("CHECK_PERMISSIONS" => "N", "COURSE_ID" => $COURSE_ID)
    );

    while ($arTest = $res->GetNext())
    {
        echo "Test name: ".$arTest["NAME"]."<br>";
    }
}

?>


Update

Обучение>Классы>CTest>Update (доступен с 5.1.0)

CTest::Update

Описание и параметры

bool
CTest::Update(
 int   ID,
 array arFields
);

Метод изменяет параметры теста с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор теста.
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей теста. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки метод вернет false. При возникновении ошибки в исключениях будет содержаться текст ошибки.

Смотрите также

  • Поля теста
  • CTest::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{

    $TEST_ID = 99;

    $arFields = Array(
        "NAME" => "New name",
        "INCLUDE_SELF_TEST" => "N",
        "QUESTIONS_AMOUNT" => 5
    );

    $test = new CTest;
    $success = $test->Update($TEST_ID, $arFields);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}

?>


Класс CTestAttempt

CTestAttempt - класс для работы с попытками.
Метод | Описание | С версии
GetList | Возвращает список попыток по фильтру. | 5.1.0
GetByID | Возвращает попытку по идентификатору. | 5.1.0
Add | Добавляет новую попытку. | 5.1.0
Update | Изменяет параметры попытки. | 5.1.0
Delete | Удаляет попытку. | 5.1.0
GetCount | Возвращает количество попыток. | 5.1.0
AttemptFinished | Переводит попытку в статус "Закончена" и пересчитывает набранные баллы. | 5.1.0
IsTestCompleted | Проверяет, пройден ли тест. | 5.1.0
CreateAttemptQuestions | Создает план вопросов для указанной попытки. | 5.1.0


Add

Обучение>Классы>CTestAttempt>Add (доступен с 5.1.0)

CTestAttempt::Add

Описание и параметры

int
CTestAttempt::Add(
 array arFields
);

Метод добавляет новую попытку. Метод нестатический.

Параметры метода

Параметр | Описание
Параметр | Массив Array("поле"=>"значение", ...). Содержит значения всех полей попытки. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает идентификатор добавленной попытки, если добавление прошло успешно. При возникновении ошибки метод вернёт false, а в исключениях будут содержаться ошибки.

Смотрите также

  • CTestAttempt::Update
  • Поля попытки

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $TEST_ID = 32;
    $STUDENT_ID = 3;

    $arFields = Array(
        "TEST_ID" => $TEST_ID,
        "STUDENT_ID" => $STUDENT_ID,
        "STATUS" => "B"
    );

    $attempt = new CTestAttempt;
    $ID = $attempt->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}
?>


AttemptFinished

Обучение>Классы>CTestAttempt>AttemptFinished (доступен с 5.1.0)

CTestAttempt::AttemptFinished

bool
CTestAttempt::AttemptFinished(
 int ATTEMPT_ID
);

Переводит попытку в статус "Закончена" и пересчитывает набранные баллы. Метод нестатический.

Параметры метода

Параметр | Описание
ATTEMPT_ID | Идентификатор попытки.

Возвращаемое значение

Метод возвращает true, если операция выполнилась успешно, иначе false.

Смотрите также

  • CTestAttempt::Update

Примеры использования

if (CModule::IncludeModule("learning"))
{
    $ATTEMPT_ID = 23;
    $oTestAttempt = new CTestAttempt;
    $success = $oTestAttempt->AttemptFinished($ATTEMPT_ID);
    if ($success)
        echo "Attempt has been finished";
    else
        echo "Error!";
}


CreateAttemptQuestions

Обучение>Классы>CTestAttempt>CreateAttemptQuestions (доступен с 5.1.0)

CTestAttempt::CreateAttemptQuestions

Описание и параметры

bool
CTestAttempt::CreateAttemptQuestions(
 int ATTEMPT_ID
);

Создаёт план вопросов для указанной попытки. Метод статический.

Параметры метода

Параметр | Описание
ATTEMPT_ID | Идентификатор попытки.

Возвращаемое значение

Метод возвращает true, если создание плана вопросов прошло успешно. При возникновении ошибки метод вернёт false, а в исключениях будут содержаться ошибки.

Смотрите также

  • CTestResult::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $ATTEMPT_ID = 563;

    $success = CTestAttempt::CreateAttemptQuestions($ATTEMPT_ID);

    if($success)
    {
        echo "Questions have been created.";
    }
    else
    {
        if($ex = $APPLICATION->GetException())
            echo "Error: ".$ex->GetString();
    }

}
?>


Delete

Обучение>Классы>CTestAttempt>Delete (доступен с 5.1.0)

CTestAttempt::Delete

bool
CTestAttempt::Delete(
 int ID
);

Метод удаляет попытку с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор попытки.

Возвращаемое значение

Метод возвращает true в случае успешного удаления попытки, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $COURSE_ID = 83;
    $ATTEMPT_ID = 596;

    if (CCourse::GetPermission($COURSE_ID) >= 'W')
    {
        @set_time_limit(0);
        $DB->StartTransaction();
        if (!CTestAttempt::Delete($ATTEMPT_ID))
        {
            echo "Error!";
            $DB->Rollback();
        }
        else
            $DB->Commit();
    }
}
?>


GetByID

Обучение>Классы>CTestAttempt>GetByID (доступен с 5.1.0)

CTestAttempt::GetByID

Описание и параметры

CDBResult
CTestAttempt::GetByID(
 int ID
);

Возвращает попытку по идентификатору ID. Учитываются права доступа текущего пользователя. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор попытки.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля попытки
  • CTestAttempt::GetList

    • Примеры использования

    <?
if (CModule::IncludeModule("learning"))
{
    $ATTEMPT_ID = 590;

    $res = CTestAttempt::GetByID($ATTEMPT_ID);

    if ($arAttempt = $res->GetNext())
    {
        echo "Test name: ".$arAttempt["TEST_NAME"];
        echo "Date start: ".$arAttempt["DATE_START"];
    }
}
?>


GetCount

Обучение>Классы>CTestAttempt>GetCount (доступен с 5.1.0)

CTestAttempt::GetCount

Описание и параметры

int
CTestAttempt::GetCount(
 int TEST_ID
 int STUDENT_ID
);

Возвращает количество попыток студента для указанного теста. Метод нестатический.

Параметры метода

Параметр | Описание
TEST_ID | Идентификатор теста.
STUDENT_ID | Идентификатор студента.

Возвращаемое значение

Число - количество попыток.

Смотрите также

  • CTestAttempt::GetList

    • Примеры использования

    <?
if (CModule::IncludeModule("learning"))
{
    $TEST_ID = 33;
    $STUDENT_ID = 165;

    $cnt = CTestAttempt::GetCount($TEST_ID, $STUDENT_ID);

    echo "Number of attempts:".$cnt;

}
?>


GetList

Обучение>Классы>CTestAttempt>GetList (доступен с 5.1.0)

CTestAttempt::GetList

Описание и параметры

CDBResult
CTestAttempt::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array(),
 array arSelect = Array(),
 array arNavParams = Array()
);

Возвращает список попыток по фильтру arFilter, отсортированный в порядке arOrder. Учитываются права доступа текущего пользователя. Метод статический.

Параметры метода

Параметр | Описание | С версии
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • ID - идентификатор попытки;
  • TEST_ID - идентификатор теста;
  • STUDENT_ID - идентификатор студента ;
  • DATE_START - дата начала попытки;
  • DATE_END - дата окончания попытки;
  • STATUS - статус попытки;
  • SCORE - количество баллов;
  • MAX_SCORE - максимальное количество баллов;
  • COMPLETED - тест пройден;
  • QUESTIONS - количество вопросов;
  • USER_NAME - имя студента ;
  • TEST_NAME - название теста.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию сортируется по убыванию идентификатора попытки.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор попытки;
  • TEST_ID - идентификатор теста;
  • STUDENT_ID - идентификатор студента;
  • SCORE - количество баллов;
  • MAX_SCORE - максимальное количество баллов;
  • QUESTIONS - количество вопросов;
  • STATUS - статус попытки (B - тестирование началось, D - тест прерван, F - тест закончен.);
  • COMPLETED - тест пройден (Y|N);
  • DATE_START - дата начала попытки;
  • DATE_END - дата окончания попытки;
  • USER - пользователь (возможны сложные условия по полям пользователя ID, LOGIN, NAME, LAST_NAME);
  • MIN_PERMISSION - минимальный уровень доcтупа. По умолчанию "R". Список прав доступа см. в CCourse::SetPermission.
  • CHECK_PERMISSIONS - проверять уровень доступа. Если установлено значение "N" - права доступа не проверяются.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.
arSelect Массив полей записей, которые будут возвращены методом.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса. 		9.5.2
arNavParams | Массив настроек постраничной навигации. | 12.5.1

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • CTestAttempt::GetByID
  • Поля попытки

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $TEST_ID = 45;
    $res = CTestAttempt::GetList(
        Array("ID" => "ASC"),
        Array("TEST_ID" => $TEST_ID)
    );

    while ($arAttempt = $res->GetNext())
    {
        echo "Attempt ID:".$arAttempt["ID"]."; Date start: ".$arAttempt["DATE_START"]."; Test name: ".$arAttempt["TEST_NAME"]."<br>";
    }
}

?>

<?

if (CModule::IncludeModule("learning"))
{
    $TEST_ID = 45;
    $STUDENT_ID = 3;

    $res = CTestAttempt::GetList(
        Array("SCORE" => "DESC"),
        Array("CHECK_PERMISSIONS" => "N", "TEST_ID" => $TEST_ID, "STUDENT_ID" => $STUDENT_ID)
    );

    while ($arAttempt = $res->GetNext())
    {
        echo "Attempt ID:".$arAttempt["ID"]."; Date start: ".$arAttempt["DATE_START"]."; Test name: ".$arAttempt["TEST_NAME"]."<br>";
    }
}

?>


IsTestCompleted

Обучение>Классы>CTestAttempt>IsTestCompleted (доступен с 5.1.0)

CTestAttempt::IsTestCompleted

bool
CTestAttempt::IsTestCompleted(
 int ATTEMPT_ID
 int PERCENT
);

Проверяет, пройден ли тест. Метод нестатический.

Параметры метода

Параметр | Описание
ATTEMPT_ID | Идентификатор попытки.
PERCENT | Количество процентов, необходимых для прохождения теста.

Возвращаемое значение

Метод возвращает true, если тест пройден, иначе - false.

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $ATTEMPT_ID = 563;
    $PERCENT = 30;

    $complete = CTestAttempt::IsTestCompleted($ATTEMPT_ID, $PERCENT);

    if ($complete)
        echo "Test has been completed";
    else
        echo "Try again";
}
?>


Update

Обучение>Классы>CTestAttempt>Update (доступен с 5.1.0)

CTestAttempt::Update

Описание и параметры

bool
CTestAttempt::Update(
 int   ID,
 array arFields
);

Метод изменяет параметры попытки с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор попытки
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей попытки. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки метод вернёт false. При возникновении ошибки в исключениях будет содержаться текст ошибки.

Смотрите также

  • Поля попытки
  • CTestAttempt::Add

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $ATTEMPT_ID = 596;

    $arFields = Array(
        "STATUS" => "F",
        "DATE_END" => ConvertTimeStamp(false,"FULL")
    );

    $attempt = new CTestAttempt;
    $ID = $attempt->Update($ATTEMPT_ID, $arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}
?>


Класс CTestResult

CTestResult - класс для работы с планом тестирования.
Метод | Описание | С версии
GetList | Возвращает список вопросов плана тестирования. | 5.1.0
GetByID | Возвращает вопрос плана тестирования по идентификатору. | 5.1.0
Add | Добавляет новый вопрос плана тестирования. | 5.1.0
Update | Изменяет параметры вопроса плана тестирования. | 5.1.0
AddResponse | Сохраняет ответ учащегося и устанавливает, отвечен ли вопрос правильно. | 5.1.0
Delete | Удаляет вопрос плана тестирования. | 5.1.0
GetCount | Возвращает количество вопросов плана тестирования для указанной попытки. | 5.1.0
GetProgress | Возвращает количество отвеченных и неотвеченных вопросов плана тестирования. | 5.1.0


Add

Обучение>Классы>CTestResult>Add (доступен с 5.1.0)

CTestResult::Add

Описание и параметры

int
CTestResult::Add(
 array arFields
);

Метод добавляет новый вопрос плана тестирования. Метод нестатический.

Параметры метода

Параметр | Описание
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей плана тестирования. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает идентификатор добавленного вопроса плана тестирования, если добавление прошло успешно. При возникновении ошибки метод вернёт false, а в исключениях будут содержаться ошибки.

Смотрите также

  • CTestAttempt::CreateAttemptQuestions
  • CTestResult::Update
  • CTestResult::AddResponse
  • Поля плана тестирования

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $ATTEMPT_ID = 588;
    $QUESTION_ID = 128;

    $arFields = Array(
        "ATTEMPT_ID" => $ATTEMPT_ID,
        "QUESTION_ID" => $QUESTION_ID
    );

    $plan = new CTestResult;
    $ID = $plan->Add($arFields);
    $success = ($ID>0);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}
?>


AddResponse

Обучение>Классы>CTestResult>AddResponse (доступен с 5.1.0)

CTestResult::AddResponse

Описание и параметры

bool
CTestResult::AddResponse(
 int TEST_RESULT_ID
 mixed RESPONSE
);

Сохраняет ответ учащегося и устанавливает, дан ли на вопрос правильный ответ. Метод нестатический.

Параметры метода

Параметр | Описание
TEST_RESULT_ID | Идентификатор вопроса в плане тестирования.
RESPONSE | Идентификатор или массив идентификаторов ответов на вопрос.

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки метод вернёт false. При возникновении ошибки в исключениях будет содержаться текст ошибки.

Смотрите также

  • CTestResult::Update

Примеры использования

if (CModule::IncludeModule("learning"))
{
    $TEST_TESULT_ID = 2962;
    $RESPONSE = 186; /* or Array(186,187); */

    $res = CTestResult::AddResponse($TEST_RESULT_ID, $RESPONSE);
    if($res)
     echo "Response has been added ";
    else
     echo "Error";
}


Delete

Обучение>Классы>CTestResult>Delete (доступен с 5.1.0)

CTestResult::Delete

bool
CTestResult::Delete(
 int ID
);

Метод удаляет вопрос плана тестирования с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор вопроса в плане тестирования.

Возвращаемое значение

Метод возвращает true в случае успешного удаления результата тестирования, в противном случае возвращает false.

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $TEST_RESULT_ID = 2967;

    @set_time_limit(0);
    $DB->StartTransaction();
    if (!CTestResult::Delete($TEST_RESULT_ID))
    {
        echo "Error!";
        $DB->Rollback();
    }
    else
        $DB->Commit();

}
?>


GetByID

Обучение>Классы>CTestResult>GetByID (доступен с 5.1.0)

CTestResult::GetByID

Описание и параметры

CDBResult
CTestResult::GetByID(
 int ID
);

Возвращает вопрос плана тестирования по идентификатору ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор вопроса в плане тестирования.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • Поля плана тестирования
  • CTestResult::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $TEST_RESULT_ID = 2894;

    $res = CTestResult::GetByID($TEST_RESULT_ID);

    if ($arResult = $res->GetNext())
    {
        echo " Question name: ".$arResult["QUESTION_NAME"];
        echo " Answered: ".$arResult["ANSWERED"];
        echo " Point: ".$arResult["POINT"];
    }
}
?>


GetCount

Обучение>Классы>CTestResult>GetCount (доступен с 5.1.0)

CTestResult::GetCount

Описание и параметры

int
CTestResult::GetCount(
 int ATTEMPT_ID
);

Возвращает количество вопросов плана тестирования для указанной попытки. Метод нестатический.

Параметры метода

Параметр | Описание
ATTEMPT_ID | Идентификатор попытки.

Возвращаемое значение

Число - количество вопросов плана тестирования.

Смотрите также

  • CTestResult::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $ATTEMPT_ID = 588;

    $cnt = CTestResult::GetCount($ATTEMPT_ID);

    echo "Number of questions:".$cnt;

}
?>


GetList

Обучение>Классы>CTestResult>GetList (доступен с 5.1.0)

CTestResult::GetList

Описание и параметры

CDBResult
CTestResult::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array()
);

Возвращает список вопросов плана тестирования по фильтру arFilter, отсортированный в порядке arOrder. Метод нестатический.

Параметры метода

Параметр Описание
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • ID - идентификатор вопроса в плане тестирования;
  • ATTEMPT_ID - идентификатор попытки;
  • QUESTION_ID - идентификатор вопроса;
  • POINT - количество баллов;
  • ANSWERED - вопрос отвечен (Y|N);
  • CORRECT - вопрос правильно отвечен (Y|N);
  • QUESTION_NAME - название вопроса;
  • RAND - случайный порядок.
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
Необязательный. По умолчанию сортируется по убыванию идентификатора вопроса в плане тестирования.
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор вопроса в плане тестирования;
  • ATTEMPT_ID - идентификатор попытки;
  • QUESTION_ID - идентификатор вопроса;
  • POINT - количество баллов;
  • RESPONSE - ответ учащегося (можно искать по шаблону [%_]);
  • QUESTION_NAME - название вопроса (можно искать по шаблону [%_]);
  • ANSWERED - вопрос отвечен (Y|N);
  • CORRECT - вопрос правильно отвечен (Y|N).
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult
  • CTestResult::GetByID
  • Поля плана тестирования

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $ATTEMPT_ID = 590;
    $res = CTestResult::GetList(
        Array("ID" => "ASC"),
        Array("ANSWERED" => "N", "ATTEMPT_ID" => $ATTEMPT_ID)
    );

    while ($arQuestionPlan = $res->GetNext())
    {
        echo "Question ID: ".$arQuestionPlan["QUESTION_ID"].
             "; Correct answer: ".$arQuestionPlan["CORRECT"].
             "; Question name:".$arQuestionPlan["QUESTION_NAME"]."<br>";
    }
}
?>


GetProgress

Обучение>Классы>CTestResult>GetProgress (доступен с 5.1.0)

CTestResult::GetProgress

Описание и параметры

array
CTestResult::GetProgress(
 int ATTEMPT_ID
);

Возвращает количество отвеченных и неотвеченных вопросов плана тестирования. Метод нестатический.

Параметры метода

Параметр | Описание
ATTEMPT_ID | Идентификатор попытки.

Возвращаемое значение

Метод возвращает ассоциативный массив с ключами:

  • DONE - количество отвеченных вопросов теста.
  • TODO - количество неотвеченных вопросов теста.

Смотрите также

  • CTestResult::GetList

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $ATTEMPT_ID = 588;

    $arStat = CTestResult::GetProgress($ATTEMPT_ID);

    echo $arStat["TODO"];
    echo $arStat["DONE"];
}
?>


Update

Обучение>Классы>CTestResult>Update (доступен с 5.1.0)

CTestResult::Update

Описание и параметры

bool
CTestResult::Update(
 int   ID,
 array arFields
);

Метод изменяет параметры вопроса плана тестирования с идентификатором ID. Метод нестатический.

Параметры метода

Параметр | Описание
ID | Идентификатор вопроса в плане тестирования.
arFields | Массив Array("поле"=>"значение", ...). Содержит значения всех полей плана тестирования. Обязательные поля должны быть заполнены.

Возвращаемое значение

Метод возвращает true, если изменение прошло успешно, при возникновении ошибки метгод вернёт false. При возникновении ошибки в исключениях будет содержаться текст ошибки.

Смотрите также

  • Поля плана тестирования
  • CTestResult::Add
  • CTestResult::AddResponse

Примеры использования

<?
if (CModule::IncludeModule("learning"))
{
    $TEST_TESULT_ID = 2962;

    $arFields = Array(
        "CORRECT" => "Y",
        "POINT" => "20"
    );

    $plan = new CTestResult;
    $success = $plan->Update($TEST_TESULT_ID, $arFields);

    if($success)
    {
        echo "Ok!";
    }
    else
    {
        if($e = $APPLICATION->GetException())
            echo "Error: ".$e->GetString();
    }

}
?>


Для разработчиков

Информация представленная в данном разделе содержит сведения о функциях модуля Опросы, голосования, необходимых для настройки показа опросов в публичной части сайта, а также об этапах инсталляции модуля.

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("vote")){
//здесь можно использовать функции и классы модуля
}
?>

Модуль включает в себя следующие Компоненты 2.0:
Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Текущий опрос (комплексный компонент) | voting.current | Выводит форму опроса, а после ее заполнения отображает результаты опроса.
Форма опроса | voting.form | Выводит форму опроса.
Список опросов | voting.list | Выводит список опросов.
Результаты опроса | voting.result | Выводит результаты опроса в виде диаграммы.


Опросы, голосования в ядре D7

Список классов модуля Опросы, голосования в ядре D7:

Подпространство, класс | Описание
AnswerTable | Класс для работы с таблицей ответов опросов.
Attach | Класс для работы с прикрепленными к опросам объектами.
AttachTable | Класс для работы с таблицей связанных с опросами объектов.
Attachment | Пространство для работы с прикрепленными к опросам объектами.
Base | Базовое подпространство опросов.
Channel | Класс для работы с группами опросов.
ChannelGroupTable | Класс для работы с таблицей прав доступа к группам опросов.
ChannelSiteTable | Класс для работы с таблицей привязки опросов к сайтам.
ChannelTable | Класс для работы с таблицей групп опросов.
EventAnswerTable | Класс для работы с таблицей вопросов, по которым проводились голосования.
EventQuestionTable | Класс для работы с таблицей вопросов, по которым проводились голосования.
EventTable | Класс для работы с таблицей голосований пользователей.
QuestionTable | Класс для работы с таблицей вопросов опросов.
Uf | Содержит классы для работы с прикрепленными к опросам объектами.
User | Класс для работы с пользователями, принявших участие в опросах.
UserTable | Класс для работы с таблицей пользователей, принявших участие в опросах.
Vote | Класс для работы с опросами.
VoteTable | Класс для работы с таблицей опросов.


События

Внимание! Для событий с префиксом onBefore*** - если обработчик возвращает false, то метод прекращает свою работу.

Статистика голосования

Событие | Входные параметры | Вызывается | Метод | С версии
onVoteReset | [$voteId] | После сброса статистики | \Bitrix\Vote\Vote::resetStatistic($voteId) | 12.0.5
onBeforeVoting | [&$eventFields, &$answers] | До момента фиксации голоса | \Bitrix\Vote\Event::add | 12.0.5
onAfterVoting | [$voteId, $eventId, $userId] | После успешной фиксации голоса | \Bitrix\Vote\Vote::registerEvent | 12.0.5

Опросы как сущность

Событие | Входные параметры | Вызывается | Метод | С версии
onBeforeVoteAdd | [&$fields] | Перед добавлением опроса | \Bitrix\Vote\VoteTable::onBeforeAdd | 8.5.0
onAfterVoteAdd | [$id, $fields] | После добавления опроса | \Bitrix\Vote\VoteTable::onAfterAdd | 8.5.0
onBeforeVoteUpdate | [$id, &$fields] | Перед изменением опроса | \Bitrix\Vote\VoteTable::onBeforeUpdate | 8.5.0
onAfterVoteUpdate | [$id, $fields] | После изменения опроса | \Bitrix\Vote\VoteTable::onAfterUpdate | 8.5.0
onBeforeVoteDelete | [&$id] | Перед удалением опроса | \CVote::Delete | 12.0.5
onAfterVoteDelete | [$id] | После удаления опроса | \CVote::Delete | 12.0.5

Вопросы

Событие | Входные параметры | Вызывается | Метод | С версии
onBeforeVoteQuestionAdd | [&$fields] | Перед добавлением вопроса | \CVoteQuestion::Add | 8.5.0
onAfterVoteQuestionAdd | [$id, $fields] | После добавления вопроса | \CVoteQuestion::Add | 8.5.0
onBeforeVoteQuestionUpdate | [$id, &$fields] | Перед изменением вопроса | \CVoteQuestion::Update | 8.5.0
onAfterVoteQuestionUpdate | [$id, $fields] | После изменения вопроса | \CVoteQuestion::Update | 8.5.0
onBeforeVoteQuestionDelete | [$id, $voteId] | Перед удалением вопроса | \CVoteQuestion::Delete | 8.5.0
onAfterVoteQuestionDelete | [$id, $voteId] | После удаления вопроса | \CVoteQuestion::Delete | 8.5.0
onVoteQuestionActivate | [$id, boolean $active] | При активации вопроса | \CVoteQuestion::setActive | 12.5.0

Ответы

Событие | Входные параметры | Вызывается | Метод | С версии
onBeforeVoteAnswerAdd | [&$fields] | Перед добавлением ответа | \CVoteAnswer::Add | 8.5.0
onAfterVoteAnswerAdd | [$id, $fields] | После добавления ответа | \CVoteAnswer::Add | 8.5.0
onBeforeVoteAnswerUpdate | [$id, &$fields] | Перед изменением ответа | \CVoteAnswer::Update | 8.5.0
onAfterVoteAnswerUpdate | [$id, $fields] | После изменения ответа | \CVoteAnswer::Update | 8.5.0
onBeforeVoteAnswerDelete | [$id, $questionId, $voteId] | Перед удалением ответа | \CVoteAnswer::Delete | 8.5.0
onAfterVoteAnswerDelete | [$id, $questionId, $voteId] | После удаления ответа | \CVoteAnswer::Delete | 8.5.0

Группы опросов

Событие | Входные параметры | Вызывается | Метод | С версии
onBeforeVoteChannelAdd | [&$fields] | Перед добавлением группы опросов | \CVoteChannel::Add | 12.0.5
onAfterVoteChannelAdd | [$id, $fields] | После добавления группы опросов | \CVoteChannel::Add | 12.0.5
onBeforeVoteChannelUpdate | [&$fields] | Перед изменением группы опросов | \CVoteChannel::Update | 12.0.5
onAfterVoteChannelUpdate | [$id, $fields] | После изменения группы опросов | \CVoteChannel::Update | 12.0.5
onBeforeVoteChannelDelete | [&$id] | Перед удалением группы опросов | \CVoteChannel::Delete | 12.0.5
onAfterVoteChannelDelete | [$id] | После удаления группы опросов | \CVoteChannel::Delete | 12.0.5


onBeforeVoteAdd

Событие вызывается в методе \Bitrix\Vote\VoteTable::onBeforeAdd перед добавлением опроса.

Пример использования

Например, у нас есть группа [dw]опросов[/dw][di] [image] [/di] по спортивной тематике.

// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("vote", "onBeforeVoteAdd", ["MyClassForVote", "onBeforeVoteAddHandler"]);

class MyClassForVote
{
    public static function onBeforeVoteAddHandler(&$fields)
    {
        // Аргумент $fields передан по ссылке, т.е. изменяя данные $fields, вы влияете на сохранённые данные.
        if (
            $fields["CHANNEL_ID"] == 5 // Например, для опросов группы (с номером 5) по спортивной тематике
            &&
            empty($fields["IMAGE_ID"]) // и пустой картинкой
        )
        {
            // будем подставлять картинку мяча, например
            $fields["IMAGE_ID"] = [
                "name" => "ball.png",
                "type" => "image/png",
                "tmp_name" => __DIR__."/soccer-ball.png",
                "size" => 20008,
                "error" => 0
            ];
        }
    }
}


onBeforeVoteAnswerAdd

Событие вызывается в методе \CVoteAnswer::Add перед добавлением ответа.

Пример использования

Например, у нас есть группа [dw]опросов[/dw][di] [image] [/di] по спортивной тематике.

// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("vote", "onBeforeVoteAnswerAdd", ["MyClassForVote", "onBeforeVoteAnswerAddHandler"]);

class MyClassForVote
{
      public static function onBeforeVoteAnswerAddHandler(&$fields)
    {
        // Аргумент $fields передан по ссылке, т.е. изменяя данные $fields, вы влияете на сохранённые данные.
        $channel = getChannelByQuestionId($fields["QUESTION_ID"]); // ф-ция, возвращающая массив CHANNEL
        if (
            $channel["ID"] == 6 // Например, для опросов группы (с номером 6) по спортивной тематике
            &&
            empty($fields["IMAGE_ID"]) // и пустой картинкой
        )
        {
            // будем Возвращать ошибку загрузки
            global $APPLICATION;
            $APPLICATION->throwException("Ай-ай-ай! Нехорошо писать ответы в этой группе без картинки. ");
            return false;
        }
    }
}


onBeforeVoteAnswerUpdate

Событие вызывается в методе \CVoteAnswer::Update перед изменением ответа.

Пример использования

Например, у нас есть группа [dw]опросов[/dw][di] [image] [/di] по спортивной тематике.

// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("vote", "onBeforeVoteAnswerUpdate", ["MyClassForVote", "onBeforeVoteAnswerUpdateHandler"]);

class MyClassForVote
{
        public static function onBeforeVoteAnswerUpdateHandler($id, &$fields)
    {
        // Аргумент $fields передан по ссылке, т.е. изменяя данные $fields, вы влияете на сохранённые данные.
        $channel = getChannelByQuestionId($fields["QUESTION_ID"]); // ф-ция, возвращающая массив CHANNEL
        if (
            $channel["ID"] == 6 // Например, для опросов группы (с номером 6) по спортивной тематике
            &&
            empty($fields["IMAGE_ID"]) // и пустой картинкой
        )
        {
            // будем Возвращать ошибку загрузки
            global $APPLICATION;
            $APPLICATION->throwException("Ай-ай-ай! Нехорошо писать ответы в этой группе без картинки. ");
            return false;
        }
    }
}


onBeforeVoteUpdate

Событие вызывается в методе \Bitrix\Vote\VoteTable::onBeforeUpdate перед обновлением опроса.

Пример использования

Например, у нас есть группа [dw]опросов[/dw][di] [image] [/di] по спортивной тематике.

// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("vote", "onBeforeVoteUpdate", ["MyClassForVote", "onBeforeVoteUpdateHandler"]);

class MyClassForVote
{
      public static function onBeforeVoteUpdateHandler($id, &$fields)
    {
        // Аргумент $fields передан по ссылке, т.е. изменяя данные $fields, вы влияете на сохранённые данные.
        if (
            $fields["CHANNEL_ID"] == 5 // Например, для опросов группы (с номером 5) по спортивной тематике
            &&
            empty($fields["IMAGE_ID"]) // и пустой картинкой
        )
        {
            // будем подставлять картинку мяча, например
            $fields["IMAGE_ID"] = [
                "name" => "ball.png",
                "type" => "image/png",
                "tmp_name" => __DIR__."/soccer-ball.png",
                "size" => 20008,
                "error" => 0
            ];
        }
    }
}


Функции

В данном разделе представлены функции, необходимые для вывода форм опросов и их результатов в публичной части сайта.

Функция | Описание | С версии
GetAnyAccessibleVote | Возвращает ID первого попавшегося опроса, по которому пользователь ещё не голосовал, но имеет на это право. |
GetCurrentVote | Возвращает ID текущего опроса в группе. |
GetPrevVote | Возвращает ID предыдущего опроса в группе. |
GetVoteDataByID | В случае, если массив будет найден в базе, возвращает ID опроса и массивы, его описывающие. |
GetVoteList | Возвращает выборку из базы по опросам. |
IsUserVoted | Возвращает true, если пользователь уже голосовал по заданному опросу и ему больше нельзя голосовать в соответствии с настройками опроса, в противном случае - false. |
ShowCurrentVote | Возвращает HTML-код текущего опроса группы. |
ShowCurrentVoteResults | Возвращает HTML-код диаграммы результатов текущего опроса группы. |
ShowPrevVoteResults | Возвращает HTML-код диаграммы результатов предыдущего опроса группы. |
ShowVote | Возвращает HTML-код формы опроса. |
ShowVoteResults | Возвращает HTML-код с диаграммой результатов опроса. |


GetAnyAccessibleVote

GetAnyAccessibleVote([lid])

Функция возвращает ID первого попавшегося опроса по которому пользователь ещё не голосовал, с учётом прав пользователя, у которого должно быть право "на участие в опросе" (>=2)

Параметры функции

Параметр | Описание | С версии
lid | Сайт группы опросов. По умолчанию - текущий (константа LANG). Необязательный параметр. | Удален с 4.0.0
site_id | Сайт группы опросов. Необязательный параметр. | 4.0.0
channel_id | Необязательный параметр. Значение по умолчанию - "null". | 10.0.1

Примеры использования

Файл в публичной части сайта - "vote_any.php":
<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
// Отображает форму первого попавшегося опроса по которому пользователь ещё не голосовал
// если пользователь проголосовал, то перенаправляет его на файл отображающий результат данного опроса
if (CModule::IncludeModule("vote") && $VOTING_OK=="Y")
{
    $VOTE_DIR = COption::GetOptionString("vote", "VOTE_DIR", "");
    $z = CLang::GetByID(LANG);
    $zr = $z->Fetch();
    $LANG_DIR = $zr["DIR"];
    $LANG_DIR = TrimExAll($LANG_DIR,"/");
    $VOTE_DIR = TrimExAll($VOTE_DIR,"/");
    LocalRedirect("/".$LANG_DIR."/".$VOTE_DIR."/vote_result.php?VOTE_ID=". $PUBLIC_VOTE_ID."&VOTING_OK=".$VOTING_OK);
}
if (strlen($APPLICATION->GetTitle())<=0) $APPLICATION->SetTitle(GetMessage("VOTE_VOTING_TITLE"));
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");
?><?
if (CModule::IncludeModule("vote"))
{
    $VID = GetAnyAccessibleVote();
    ShowVote($VID);
}
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog.php");
?>


GetCurrentVote

Описание и параметры

GetCurrentVote(
 GROUP_SYMBOLIC_NAME, [
 lid, [
 access]]
)

Функция возвращает ID текущего опроса в группе.

Параметры функции

Параметр | Описание | С версии
GROUP_SYMBOLIC_NAME | Символическое имя группы. | Удален с 4.0.0
lid | ID сайта. По умолчанию - текущий - константа "LANG". Необязательный параметр. | Удален с 4.0.0
access | Минимальный уровень доступа к опросу для текущего пользователя: 0 - доступ закрыт 1 - право на просмотр результатов опроса 2 - право на участие в опросе По умолчанию access = 1, т.е. для того чтобы функция GetCurrentVote возвратила ID текущего опроса группы, у пользователя на данную группу должно быть, как минимум, право на просмотр результатов. Необязательный параметр. |
group_sid |  | 4.0.0
site_id | Необязательный параметр. Значение по умолчанию - SITE_ID. | 4.0.0

Примеры использования

<?
// возвращает форму текущего опроса для заданной группы
function ShowCurrentVote($GROUP_SYMBOLIC_NAME, $lid=LANG)
{
    $CURRENT_VOTE_ID = GetCurrentVote($GROUP_SYMBOLIC_NAME, $lid, 2);
    if (intval($CURRENT_VOTE_ID)>0) ShowVote($CURRENT_VOTE_ID);
}
?>


GetPrevVote

Описание и параметры

GetPrevVote(
 GROUP_SYMBOLIC_NAME, [
 level, [
 lid]]
);

Функция возвращает ID предыдущего опроса в группе.

Параметры функции

Параметр | Описание | С версии
GROUP_SYMBOLIC_NAME | Символическое имя группы. | Удален с 4.0.0
level | Уровень предыдущего опроса (1 - предыдущий, 2 - пред- предыдущий и т.д.). По умолчанию - 1. Необязательный параметр. |
lid | ID сайта. По умолчанию - текущий (константа LANG). Необязательный параметр. | Удален с 4.0.0
access | Минимальный уровень доступа к опросу для текущего пользователя: 0 - доступ закрыт 1 - право на просмотр результатов опроса 2 - право на участие в опросе По умолчанию access = 1, т.е. для того чтобы функция GetPrevVote возвратила ID текущего опроса группы, у пользователя на данную группу должно быть, как минимум, право на просмотр результатов. Необязательный параметр. |
group_sid |  | 4.0.0
site_id | ID сайта. По умолчанию - текущий - SITE_ID. Необязательный параметр. | 4.0.0

Примеры использования

<?
// возвращает диаграмму результатов предыдущего опроса
function ShowPrevVoteResults($GROUP_SYMBOLIC_NAME, $level=1, $lid=LANG)
{
    $PREV_VOTE_ID = GetPrevVote($GROUP_SYMBOLIC_NAME, $level, $lid);
    if (intval($PREV_VOTE_ID)>0) ShowVoteResults($PREV_VOTE_ID);
}
?>


GetVoteDataByID

Описание и параметры

GetVoteDataByID(
  int VOTE_ID,
  array &arChannel,
  array &arVote,
  array &arQuestions,
  array &arAnswers,
  array &arDropDown,
  array &arMultiSelect,
  array &arGroupAnswers,
  string getGroupAnswers
)

Функция возвращает ID опроса в случае, если такой опрос был найден в базе, а также массивы описывающие опрос.

Параметры функции

Параметр | Описание | С версии
VOTE_ID | ID опроса.
arChannel Массив описывающий группу заданного опроса.
Индексы массива:
  • ID - ID группы
  • SYMBOLIC_NAME - символическое имя
  • ACTIVE - флаг активности ["Y"|"N"]
  • TITLE - заголовок группы
  • LID - ID сайта
  • C_SORT - порядок сортировки
  • TIMESTAMP_X - время изменения записи в базе данных
    • arVote Массив описывающий заданный опрос.
    Индексы массива:
  • ID - ID опроса
  • CHANNEL_ID - ID группы опроса
  • C_SORT - порядок сортировки
  • ACTIVE - флаг активности ["Y"|"N"]
  • TIMESTAMP_X - время изменения записи в базе данных
  • DATE_START - время начала опроса
  • DATE_END - время окончания опроса
  • COUNTER - количество голосований по опросу
  • TITLE - заголовок опроса
  • DESCRIPTION - описание опроса
  • DESCRIPTION_TYPE - тип описания опроса ["html"|"text"]
  • IMAGE_ID - ID изображения
  • EVENT1 - идентификатор типа события - " event1"
  • EVENT2 - идентификатор типа события - " event2"
  • EVENT3 - дополнительный параметр типа события - " event3"
  • UNIQUE_TYPE - тип уникальности посетителей: 0 - не ограничено; 1 - не голосовать дважды в одной сессии; 2 - не голосовать дважды в одной сессии либо с одним cookie; 3 - не голосовать дважды в одной сессии либо с одним cookie либо с одного IP;
  • KEEP_IP_SEC - количество секунд в течении которых нельзя голосовать с одного IP
  • TEMPLATE - шаблон для показа формы опроса
  • RESULT_TEMPLATE - шаблон для показа результатов опроса
  • QUESTIONS - количество вопросов
  • LAMP - индикатор: "red" - флаг активности опроса снят либо текущая дата не попадает в интервал проведения опроса; "green" - флаг активности опроса установлен и текущая дата попадает в интервал проведения опроса.
    • arQuestions Массив состоящий из массивов каждый из которых описывает один вопрос.
    Индексы массива:
  • ID - ID вопроса
  • ACTIVE - флаг активности ["Y"|"N"]
  • C_SORT - порядок сортировки
  • QUESTION - текст вопроса
  • QUESTION_TYPE - тип текста вопроса ["html"|"text"]
  • IMAGE_ID - ID изображения
  • DIAGRAM - флаг включения вопроса в результирующую диаграмму ["Y"|"N"]
  • TEMPLATE - шаблон для показа результатов вопроса
  • TIMESTAMP_X - дата изменения записи в базе данных
    • arAnswers Массив ответов, его индексами являются ID вопросов, а значениями - список массивов, каждый из которых описывает один ответ.
    Индексы массива описывающего один ответ:
  • ID - ID ответа
  • ACTIVE - флаг активности ["Y"|"N"]
  • TIMESTAMP_X - дата изменения записи в базе данных
  • QUESTION_ID - ID вопроса
  • C_SORT - порядок сортировки
  • MESSAGE - текст сообщения который будет выдан рядом с ответом в форме опроса и в качестве ответа в диаграмме опроса
  • COUNTER - количество раз когда был выбран данный ответ
  • FIELD_TYPE - тип поля ввода: 0 - radio, 1 - checkbox, 2 - dropdown list; 3 - multiselect list, 4 - text; 5 - textarea
  • FIELD_WIDTH - ширина поля ввода
  • FIELD_HEIGHT - высота поля ввода
  • FIELD_PARAM - дополнительные параметры поля ввода: стиль, класс
  • COLOR - RGB цвета элемента диаграммы (например: #FFOOCC)
    • arDropDown Массив с всеми элементами типа "2" (dropdown list) одного вопроса. Индексом массива является ID вопроса, а значением - массив со следующими индексами:
  • REFERENCE - текст ответа
  • REFERENCE_ID - ID ответа
    • arMultiSelect Массив с всеми элементами типа "3" (multiselect list) одного вопроса. Индексом массива является ID вопроса, а значением - массив со следующими индексами:
  • REFERENCE - текст ответа
  • REFERENCE_ID - ID ответа
    • arGroupAnswers Массив описывающий варианты ответов для элементов ввода типа "4" (text) и "5" (textarea). Индексом массива является ID вопроса, а значением - список массивов со следующими индексами:
  • MESSAGE - текст ответа
  • COUNTER - количество таких ответов
    • getGroupAnswers | Флаг принимающий следующие значения: "Y" - собирать массив arGroupAnswers; "N" - собирать массив arGroupAnswers не нужно. | Удален с 12.0.0
    arrAddParams | Необязательный параметр. Значение по умолчанию - "N". | 12.0.0

    Примеры использования

    <?
// возвращает форму заданного опроса с учётом прав пользователя
function ShowVote($VOTE_ID, $template1="")
{
    global $MESS, $VOTING_LAMP, $VOTING_OK, $USER_ALREADY_VOTE, $USER_GROUP_PERMISSION, $VOTE_USER_ID, $VOTE_PERMISSION;
    $VOTE_ID = GetVoteDataByID($VOTE_ID, $arChannel, $arVote, $arQuestions, $arAnswers, $arDropDown, $arMultiSelect, $arGroupAnswers, "N");
    if (intval($VOTE_ID)>0)
    {
        $perm = CVoteChannel::GetGroupPermission($arChannel["ID"]);
        if (intval($perm)>=2)
        {
            $template = (strlen($arVote["TEMPLATE"])<=0) ? "default.php" : $arVote["TEMPLATE"];
            $VOTE_PERMISSION = CVote::UserGroupPermission($arChannel["ID"]);
            require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/vote/include.php");
            @include_once (GetLangFileName($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/lang/", "/".$template));
            $path = COption::GetOptionString("vote", "VOTE_TEMPLATE_PATH", "/bitrix/php_interface/include/vote/show/");
            if (strlen($template1)>0) $template = $template1;
            @include($_SERVER["DOCUMENT_ROOT"].$path.$template);
        }
    }
}
?>

    <?
// получаем данные по опросу
$VOTE_ID = GetVoteDataByID($PUBLIC_VOTE_ID, $arChannel, $arVote, $arQuestions, $arAnswers, $arDropDown, $arMultiSelect, $arGroupAnswers, "N", $template, $res_template);
$VOTE_ID = intval($VOTE_ID);
// если поступивший ID опроса корректный то
if ($VOTE_ID>0 && $arVote["LAMP"]=="green")
{
    ...
}
?>


GetVoteList

Описание и параметры

GetVoteList([
 GROUP_SYMBOLIC_NAME,
 params,
 site_id = SITE_ID
);

Функция возвращает выборку из базы по опросам.

Параметры функции

Массив параметров для выборки, возможные параметры:
Параметр | Описание | С версии
GROUP_SYMBOLIC_NAME | Строка или массив символических имён групп каналов.
params
  • order SQL код, содержащий параметры сортировки для выборки. Необязательный параметр. По умолчанию: "ORDER BY C.C_SORT, C.ID, V.DATE_START desc"
  • bDescPageNumbering Обратная постраничная навигация. По умолчанию false.
  • nPageSize Размер страницы
  • bShowAll Разрешить показать все. По умолчанию false.
  • nTopCount - Ограничение числа верхних записей.
  • bCount Вернуть только количество. По умолчанию true.
lid | ID сайта. По умолчанию - текущий (константа LANG).
site_id | ID сайта. По умолчанию - текущий - SITE_ID. Необязательный параметр. | 4.0.0
group_sid | Необязательный параметр. Значение по умолчанию - "". | 4.0.0

Примеры использования

Файл в публичной части сайта - "vote_list.php":
<?
// Отображает список опросов (архив)
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if (CModule::IncludeModule("vote")) require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/vote/include.php");
if (strlen($APPLICATION->GetTitle())<=0) $APPLICATION->SetTitle(GetMessage("VOTE_LIST_TITLE"));
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");
?><?
if (CModule::IncludeModule("vote"))
{
    $votes = GetVoteList(); // список опросов
    require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/vote/list/default.php"); // шаблон показа
}
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog.php");
?>

<?

// вывод всех активных опросов на текущем сайте, отсортированных в следующем порядке: по индексу сортировки канала, ID канала, индексу сортировки опроса, времени начала опроса. Активный опрос в
// данном контексте - это опрос, у которого атрибут ACTIVE установлен в Y, а время начала голосования меньше текущего.

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
$APPLICATION->SetTitle("Результаты опроса");
$APPLICATION->AddChainItem("Архив опросов", "vote_list.php");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");

if (CModule::IncludeModule("vote"))
{
   $db_res = GetVoteList("");
   if (!!$db_res)
   {
      if (!empty($arResult["NAV_STRING"]))
      {
         ?>;<div class="vote-navigation-box vote-navigation-top">
            <div class="vote-page-navigation">
               <?=$arResult["NAV_STRING"]?>
            </div><div class="vote-clear-float"></div>
         </div><?
      }

      ?><ol class="vote-items-list voting-list-box"><?
      while ($arVote = $db_res->Fetch()) {
      ?><li class="vote-item-vote <?
         ?><?=($arVote["LAMP"]=="green" ? "vote-item-vote-active " : ($arVote["LAMP"]=="red" ? "vote-item-vote-disable " : ""))?>">
         <div class="vote-item-header"><?
            if (!empty($arVote["TITLE"])) { ?><span class="vote-item-title"><?=$arVote["TITLE"];?></span><? }?>
            <div class="vote-clear-float"></div>
         </div>
         <?
         $arDateBlocks = array();
         if (!!$arVote["DATE_START"])
            $arDateBlocks[] = '<span class="vote-item-date-start">'.FormatDate($DB->DateFormatToPHP(CSite::GetDateFormat('FULL')), MakeTimeStamp($arVote["DATE_START"])).'</span>';
         if (!!$arVote["DATE_END"] && $arVote["DATE_END"] != "31.12.2030 23:59:59")
            $arDateBlocks[] = '<span class="vote-item-date-end">'.FormatDate($DB->DateFormatToPHP(CSite::GetDateFormat('FULL')), MakeTimeStamp($arVote["DATE_END"])).'</span>';
         if (!empty($arDateBlocks)) {
            ?><div class="vote-item-date"> - </span>', $arDateBlocks)?></div><?
         }
         if ($arVote["COUNTER"] > 0){
            ?&qt;<div class="vote-item-counter"><span>Голосов:</span> <?=$arVote["COUNTER"]?></div><?
         }

         if (!empty($arVote["IMAGE"]) || !empty($arVote["DESCRIPTION"])):
         ?>
         <div class="vote-item-footer">
            <?if (!empty($arVote["IMAGE"])):?>
            <div class="vote-item-image">
               <img src="" width="<?=$arVote["IMAGE"]["WIDTH"]?>" height="<?=$arVote["IMAGE"]["HEIGHT"]?>" border="0" />
            </div>
            <?endif;
            if (!empty($arVote["DESCRIPTION"])):?>
            <div class="vote-item-description"><?=$arVote["DESCRIPTION"];?></div>
            <?endif?>
            <div class="vote-clear-float"></div>
         </div>
         <?
         endif;
         ?>

      <?
      }
   ?><?
   }

}
?><style>
   ol.vote-items-list, ol.vote-items-list li {
      margin: 0; padding: 0; border: none; font-size: 100%; list-style-type: none;}
   ol.vote-items-list li {
      padding: 0.55em;
      border: 1px solid #ccc;
      border-top: none;}
   ol.vote-items-list li:first-child { border-top: 1px solid #ccc; }
   .vote-item-title { font-weight:bold; }
   div.vote-item-date { font-style: italic; }
   div.vote-item-header { margin-bottom: 0.5em; }
   div.vote-item-footer { margin-top: 0.5em; }
   div.vote-item-image { float:left; padding-right:0.55em; }
   div.vote-clear-float { clear: both; }
</style><?
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog.php");
?>


IsUserVoted

IsUserVoted (VOTE_ID)

Функция возвращает true, если пользователь уже голосовал по заданному опросу и ему больше нельзя голосовать в соответствии с настройками опроса, в противном случае - false

Параметры функции

Параметр | Описание
VOTE_ID | ID опроса.

Примеры использования

Файл в публичной части сайта - "vote_now.php":
<?
// Отображает форму текущего опроса группы, если пользователь
// ещё не голосовал, иначе отображает результаты текущего опроса группы
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if (CModule::IncludeModule("vote"))
{
    $VID = GetCurrentVote("ANKETA");
    if ($VOTING_OK=="Y" || IsUserVoted($VID)) $ALREADY_VOTED = "Y"; else $ALREADY_VOTED = "N";
}
if (strlen($APPLICATION->GetTitle())<=0) $APPLICATION->SetTitle(GetMessage("VOTE_VOTING_TITLE"));
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");
?><?
if (CModule::IncludeModule("vote"))
{
    if ($ALREADY_VOTED=="Y") ShowVoteResults($VID); else ShowVote($VID);
}
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog.php");
?>


ShowCurrentVote

Описание и параметры

ShowCurrentVote(
 GROUP_SYMBOLIC_NAME, [
 lid]
);

Функция выводит HTML-код текущего опроса группы.

Параметры функции

Параметр | Описание | С версии
GROUP_SYMBOLIC_NAME | Символическое имя группы. | Удален с 4.0.0
lid | ID сайта. Необязательный параметр. По умолчанию - текущий (константа LANG). | Удален с 4.0.0
group_sid |  | 4.0.0
site_id | ID сайта. Необязательный параметр. По умолчанию - текущий (SITE_ID). | 4.0.0

Примеры использования

Файл в публичной части сайта - "vote_current.php":
<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
// Отображает форму текущего опроса заданной группы,
// после голосования перенаправляет на файл отображающий результат опроса
if (CModule::IncludeModule("vote") && $VOTING_OK=="Y")
{
    $VOTE_DIR = COption::GetOptionString("vote", "VOTE_DIR", "");
    $z = CLang::GetByID(LANG);
    $zr = $z->Fetch();
    $LANG_DIR = $zr["DIR"];
    $LANG_DIR = TrimExAll($LANG_DIR,"/");
    $VOTE_DIR = TrimExAll($VOTE_DIR,"/");
    LocalRedirect("/".$LANG_DIR."/".$VOTE_DIR."/vote_result.php?VOTE_ID=".$PUBLIC_VOTE_ID."&VOTING_OK=Y");
}
if (strlen($APPLICATION->GetTitle())<=0) $APPLICATION->SetTitle(GetMessage("VOTE_VOTING_TITLE"));
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");
?><?
if (CModule::IncludeModule("vote")) ShowCurrentVote("ANKETA");
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog.php");
?>


ShowCurrentVoteResults

ShowCurrentVoteResults (
 GROUP_SYMBOLIC_NAME, [
 lid]
);

Функция выводит HTML-код диаграммы результатов текущего опроса группы.

Параметры функции

Параметр | Описание | С версии
GROUP_SYMBOLIC_NAME | Символическое имя группы. | Удален с 4.0.0
lid | ID сайта. Необязательный параметр. По умолчанию - текущий (константа LANG). | Удален с 4.0.0
group_sid |  | 4.0.0
site_id | ID сайта. Необязательный параметр. По умолчанию - текущий (SITE_ID). | 4.0.0


ShowPrevVoteResults

Описание и параметры

ShowPrevVoteResults (
 GROUP_SYMBOLIC_NAME, [
 level, [
 lid]]
);

Функция выводит HTML-код диаграммы результатов предыдущего опроса группы.

Параметры функции

Параметр | Описание | С версии
GROUP_SYMBOLIC_NAME | Символическое имя группы. | Удален с 4.0.0
level | Уровень предыдущего опроса (1 - предыдущий, 2 - предпредыдущий и т.д.). По умолчанию - 1. Необязательный параметр. |
lid | ID сайта. По умолчанию - текущий. Необязательный параметр. | Удален с 4.0.0
group_sid |  | 4.0.0
site_id | ID сайта. По умолчанию - текущий (SITE_ID). Необязательный параметр. | 4.0.0

Примеры использования

Файл в публичной части сайта - "vote_prev.php":
<?
// Отображает результаты предыдущего опроса заданной группы
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if (strlen($APPLICATION->GetTitle())<=0) $APPLICATION->SetTitle(GetMessage("VOTE_PREV_VOTING_TITLE"));
$APPLICATION->AddChainItem(GetMessage("VOTE_VOTES_LIST"), "vote_list.php");
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");
?><?
if (CModule::IncludeModule("vote")) ShowPrevVoteResults("ANKETA");
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog.php");
?>


ShowVote

ShowVote(
 VOTE_ID, [
 template]
);

Функция выводит HTML-код формы опроса.

Параметры функции

Параметр | Описание
VOTE_ID | ID опроса.
template | Имя файла - шаблона для показа опроса. По умолчанию будет использован шаблон, заданный в параметрах опроса. Необязательный параметр.

Примеры использования

Файл в публичной части сайта - "vote.php":
<?
// Отображает форму опроса по заданному ID
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if (CModule::IncludeModule("vote") && $VOTING_OK=="Y")
{
    $VOTE_DIR = COption::GetOptionString("vote", "VOTE_DIR", "");
    $z = CLang::GetByID(LANG);
    $zr = $z->Fetch();
    $LANG_DIR = $zr["DIR"];
    $LANG_DIR = TrimExAll($LANG_DIR,"/");
    $VOTE_DIR = TrimExAll($VOTE_DIR,"/");
    LocalRedirect("/".$LANG_DIR."/".$VOTE_DIR."/vote_result.php?VOTE_ID=".$PUBLIC_VOTE_ID."&VOTING_OK=Y");
}
if (strlen($APPLICATION->GetTitle())<=0) $APPLICATION->SetTitle(GetMessage("VOTE_VOTING_TITLE"));
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");
?><?
if (CModule::IncludeModule("vote")) ShowVote($VOTE_ID);
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog.php");
?>


ShowVoteResults

ShowVoteResults(
 VOTE_ID, [
 template]
);

Функция выводит HTML-код с диаграммой результатов опроса.

Параметры функции

Параметр | Описание
VOTE_ID | ID опроса.
template | Имя файла - шаблона для показа результатов опроса. По умолчанию будет использован шаблон, заданный в параметрах опроса. Необязательный параметр.

Примеры использования

Файл в публичной части сайта - "vote_result.php":
<?
// Отображает результат опроса по заданному ID
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if (strlen($APPLICATION->GetTitle())<=0) $APPLICATION->SetTitle(GetMessage("VOTE_RESULTS_TITLE"));
//$APPLICATION->AddChainItem(GetMessage("VOTE_VOTES_LIST"), "vote_list.php");
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");
?><?
if (CModule::IncludeModule("vote")) ShowVoteResults($VOTE_ID);
require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog.php");
?>


Открытые линии

Информация, представленная в данном разделе, содержит сведения о классах и событиях модуля Открытые линии, необходимых для сбора, распределения и маршрутизации сообщений со всех каналов связи в реальном времени.

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("imopenlines")){
//здесь можно использовать функции и классы модуля
}
?>


События

Событие | Вызывается | Метод | С версии
OnBeforeSessionTransfer | Управление переадресацией в нерабочее время по своим правилам. |  | 20.100.0
OnErrorEventBeforeSessionTransfer | Проверка на корректность данных, которые возвращает обработчик. |  | 20.100.0


OnBeforeSessionTransfer

Описание и параметры

В событие приходит объект \Bitrix\Main\Event.

Входящие параметры можно получить через $eventParams = $event->getParameters();

Параметры

Параметр | Описание
session | Массив данных сессии, которая перенаправляется на нового оператора. Текущий оператор, с которого предполагается снять диалог, указан в элементе OPERATOR_ID.
config | Информация об открытой линии, к которой принадлежит сессия.
chat | Объект Bitrix\ImOpenLines\Chat из которого можно получить информацию о чате, который относится к сессии.
reasonReturn [dw]Причина[/dw][di] Перечень доступных причин:

Внимание! Актуальный список причин можно увидеть в классе \Bitrix\ImOpenLines\Queue.

\Bitrix\ImOpenLines\Queue::REASON_DEFAULT; //по умолчанию
\Bitrix\ImOpenLines\Queue::REASON_OPERATOR_ABSENT = 'VACATION'; //отпуск
\Bitrix\ImOpenLines\Queue::REASON_OPERATOR_DAY_PAUSE = 'NONWORKING'; //нерабочее время
\Bitrix\ImOpenLines\Queue::REASON_OPERATOR_DAY_END = 'NONWORKING'; //нерабочее время
\Bitrix\ImOpenLines\Queue::REASON_OPERATOR_DELETED = 'DISMISSAL'; //оператор уволен
\Bitrix\ImOpenLines\Queue::REASON_REMOVED_FROM_QUEUE = 'REMOVING'; //оператор удален
\Bitrix\ImOpenLines\Queue::REASON_OPERATOR_NOT_AVAILABLE = 'NOT_AVAILABLE'; //оператор недоступен
\Bitrix\ImOpenLines\Queue::REASON_OPERATOR_OFFLINE = 'OFFLINE'; //оператор не в сети
\Bitrix\ImOpenLines\Queue::REASON_QUEUE_TYPE_CHANGED = 'DEFAULT'; //по умолчанию [/di] того, почему происходит назначение нового оператора.
newOperatorQueue Массив. Самый важный параметр, который и необходимо вернуть в событии. При необходимости в элементы массива можно вносить изменения и изменять штатную логику.

Элементы массива:
  • RESULT - True или false. Тип bool. Указывает, удалось ли найти оператора/ов для назначения (даже если найден тот же самый, что и сейчас, оператор).
  • OPERATOR_ID - Идентификатор оператора, на которого назначается диалог. Тип int. Если передано значение, означает, что это режим работы очереди не "одновременно всем". Можно указать id линии, предварив префиксом queue. Например "queue55" для переадресации на линию с id 55.
  • OPERATOR_LIST - Список операторов, на которых будет направлен диалог. Тип array. Если передано значение, то работает назначение сразу на нескольких операторов. Т.е. у сессии нет ответственных, но диалог показывается сразу нескольким. Не использовать одновременно с OPERATOR_ID! Направленный диалог не будет автоматически принят, оператор должен будет еще принять диалог.
  • DATE_QUEUE - Дата следующей попытки распределения диалога. Должен быть передан либо объект Bitrix\Main\Type\DateTime, либо false. Если передается false, то обязательно должно быть указано 'OPERATOR_ID' или 'OPERATOR_LIST'.
  • QUEUE_HISTORY - История назначения по очереди. Нужно добавить в него добавляемого оператора (если его там нет) в конец в формате: ключ массива - id пользователя. Значение: true.

Проверка на корректность

Внимательно проверяется корректность данных, которые возвращает обработчик. Если что-то не пройдет проверку, то отработает штатный алгоритм, как будто бы обработчика и нет.

Было создано дополнительное событие OnErrorEventBeforeSessionTransfer.

На него можно подписать на время отладки. В параметрах передается массив ошибок и объект, который вернул обработчик события.

Пример результата

array (
  'errors' =>
  array (
    0 => 'The result of the processing of the event returned with an error',
  ),
  'eventResult' =>
  Bitrix\Main\EventResult::__set_state(array(
     'moduleId' => NULL,
     'handler' => NULL,
     'type' => 0,
     'parameters' =>
    array (
      'RESULT' => 5,
    ),
  )),
)

Данное решение должно существенно облегчить дебаг.

Пример кода

"Болванка" событий

$eventManager = \Bitrix\Main\EventManager::getInstance();

$eventManager->addEventHandler('imopenlines', 'OnBeforeSessionTransfer', 'onBeforeSessionTransfer');
$eventManager->addEventHandler('imopenlines', 'OnErrorEventBeforeSessionTransfer', 'onErrorEventBeforeSessionTransfer');

function onBeforeSessionTransfer(\Bitrix\Main\Event $event)
{
   $eventParams = $event->getParameters();
   //test
   define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");
   AddMessage2Log(var_export($eventParams,1), 'onBeforeSessionTransfer');
   //END test
   $eventParams['newOperatorQueue'] = [
      'RESULT' => true,
      'OPERATOR_ID' => 1,
      'OPERATOR_LIST' =>
         [],
      'DATE_QUEUE' => false,
      'QUEUE_HISTORY' =>
         [
            1 => true,
         ],
   ];

   return new \Bitrix\Main\EventResult(
      \Bitrix\Main\EventResult::SUCCESS,
      $eventParams
   );
}

function onErrorEventBeforeSessionTransfer(\Bitrix\Main\Event $event)
{
   $eventParams = $event->getParameters();
   //test
   define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");
   AddMessage2Log(var_export($eventParams,1), 'OnErrorEventBeforeSessionTransfer');
   //END test
}


Переводы

Перед использованием модуля Перевод необходимо проверить, установлен ли он, и подключить его при помощи конструкции:

<?
if (CModule::IncludeModule("translate"))
{
   //здесь можно использовать функции модуля
}
?>

Модуль Перевод предоставляет удобный интерфейс для поиска и перевода [image] языковых сообщений и позволяет:

  • просмотреть распределение языковых фраз по файлам системы;
  • определить количество непереведенных фраз для каждого файла;
  • перейти к переводу необходимых текстовых сообщений.


CopyMessage

CTranslateUtils::CopyMessage(
     $code,
     $fileFrom,
     $fileTo,
     $newCode = ''
);

Метод копирует фразу по четырём языкам: de, en, ru, ua. Метод нестатический.

Параметры функции

Параметр | Описание | С версии
code | Код фразы, которую нужно копировать. |
fileFrom | Путь к исходному файлу, где расположена фраза. |
fileTo | Путь к файлу куда копируется фраза. |
newCode | Новый код фразы. |

Примеры использования

 CTranslateUtils::CopyMessage("AD_INSTALL_MODULE_NAME", "C:/Projects/local/bitrix/modules/advertising/install/install.php", "C:/Projects/local/bitrix/modules/advertising/install/index.php");


Планёрки и собрания

  • События


События

В модуле есть две сущности:

  • планерка
  • вопрос планерки

Эти сущности независимы друг от друга, то есть вопрос планерки напрямую к планерке не привязан. Вопрос может участвовать в их любой планёрке без ограничений. В связи с этим возникает понятие instance - участие вопроса в планерке. Но помимо осуществления стандартной связи "многое к многим" эта сущность несет еще некоторые дополнительные функции. В частности, к ней привязываются ответственные, отчеты, состояние на начало/конец планерки и косвенно привязываются задачи.

Примечание. При некоторых действиях события могут не вызываться, например, при удалении планерки обработчики удаления привязок вопросов (типа instance) вызываться не будут.

Событие | Вызывается | Метод | С версии
OnAfterMeetingAdd | после добавлении собрания | CAllMeeting::Add | 11.0
OnAfterMeetingDelete | после удалении собрания | CAllMeeting::Delete | 11.0
OnAfterMeetingInstanceAdd | после добавления вопроса планёрки к конкретному собранию | CAllMeetingInstance::Add | 11.0
OnAfterMeetingInstanceDelete | после удаления вопроса планёрки из конкретного собрания | CAllMeetingInstance::Delete | 11.0
OnAfterMeetingInstanceUpdate | после обновления вопроса планёрки в рамках конкретного собрания | CAllMeetingInstance::Update | 11.0
OnAfterMeetingItemAdd | после добавления вопроса планёрки | CAllMeetingItem::Add | 11.0
OnAfterMeetingItemDelete | после удаления вопроса планёрки | CAllMeetingItem::Delete | 11.0
OnAfterMeetingItemUpdate | после изменения вопроса планёрки | CAllMeetingItem::Update | 11.0
OnAfterMeetingReportAdd | после добавления отчёта | CAllMeetingReports::Add | 11.0
OnAfterMeetingReportDelete | после удаления отчета | CAllMeetingReports::Delete | 11.0
OnAfterMeetingReportUpdate | после изменения отчёта | CAllMeetingReports::Update | 11.0
OnAfterMeetingUpdate | после изменения собрания | CAllMeeting::Update | 11.0
OnBeforeMeetingAdd | перед добавлением собрания | CAllMeeting::Add | 11.0
OnBeforeMeetingDelete | перед удалением собрания | CAllMeeting::Delete | 11.0
OnBeforeMeetingInstanceAdd | перед добавлением вопроса планёрки к конкретному собранию | CAllMeetingInstance::Add | 11.0
OnBeforeMeetingInstanceDelete | перед удалением вопроса планёрки из конкретного собрания | CAllMeetingInstance::Delete | 11.0
OnBeforeMeetingInstanceUpdate | перед обновлением вопроса планёрки в рамках конкретного собрания | CAllMeetingInstance::Update | 11.0
OnBeforeMeetingItemAdd | перед добавлением вопроса планёрки | CAllMeetingItem::Add | 11.0
OnBeforeMeetingItemDelete | перед удалением вопроса планёрки | CAllMeetingItem::Delete | 11.0
OnBeforeMeetingItemUpdate | перед изменением вопроса планёрки | CAllMeetingItem::Update | 11.0
OnBeforeMeetingReportAdd | перед добавлением отчёта | CAllMeetingReports::Add | 11.0
OnBeforeMeetingReportDelete | перед удалением отчёта | CAllMeetingReports::Delete | 11.0
OnBeforeMeetingReportUpdate | перед изменением отчёта | CAllMeetingReports::Update | 11.0
OnBeforeMeetingUpdate | перед изменением собрания | CAllMeeting::Update | 11.0


Для разработчиков

Информация представленная в данном разделе содержит сведения о классах и событиях модуля Подписка, рассылки, необходимых для организации списков рассылки в публичной части сайта, а также для подписки на рассылку.

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("subscribe")){
//здесь можно использовать функции и классы модуля
}
?>

Модуль включает в себя следующие Компоненты 2.0:
Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Страница редактирования подписки | subscribe.edit | Служит для создания страницы с формами для добавления или редактирования адреса подписки.
Форма подписки | subscribe.form | Служит для построения включаемой в дизайн сайта формы для подписки на рассылки.
Страница рассылок | subscribe.index | Служит для создания страницы со списком рассылок и формами управления подпиской.
Список новостей | subscribe.news | Служит для выбора списка новостей из одного или нескольких информационных блоков для формирования рассылки.
Упрощенное редактирование подписки | subscribe.simple | Служит для управления подписками пользователей.


Классы модуля подписки и рассылки

Следующие PHP классы используются в модуле подписки и рассылки.

Классы

Класс | Описание | С версии
CPosting | Класс для работы с выпусками новостей подписки. | 3.3.0
CRubric | Класс для работы с рубриками подписки. | 3.1.1
CSubscription | Класс для работы с подписками на рассылки. | 3.1.1
CPostingTemplate | Класс для работы с шаблонами. | 4.0.5


Класс CPostingGeneral

CPostingGeneral - класс для работы с выпусками новостей подписки.

Методы класса

Метод | Описание | С версии
Add | Метод добавляет выпуск. | 3.1.1
Delete | Метод удаляет выпуск по его идентификатору. | 3.1.1
GetByID | Метод возвращает выпуск по его идентификатору. | 3.1.1
GetEmails | Метод возвращает массив адресов, по которым выпуск будет отправлен. | 3.3.2
GetGroupList | Метод возвращает выборку групп пользователей, на которые будет отправлен выпуск. | 3.1.1
UpdateGroups | Метод изменяет информацию о привязке выпуска к группам пользователей. | 3.1.1
GetRubricList | Метод возвращает выборку рассылок, на которые будет отправлен выпуск. | 3.1.1
UpdateRubrics | Метод изменяет информацию о привязке выпуска к рубрикам подписки. | 3.1.1
SendMessage | Метод возвращает true при успешной отправке, false при неуспешной, "CONTINUE" при частичной отправке. При неуспешной отправке переменная LAST_ERROR класса содержит сообщение об ошибке. | 3.2.0
Update | Метод изменяет информацию о выпуске по его идентификатору. | 3.1.1
SaveFile | Метод добавляет вложение к выпуску сохраняя и регистрируя его в таблице файлов (b_file). | 4.0.5
DeleteFile | Метод удаляет одно или все вложения выпуска. | 4.0.5
GetFileList | Метод возвращает выборку вложений выпуска. | 4.0.5
AutoSend | Метод для отправки выпуска с помощью cron'а или агента. | 4.0.5
ChangeStatus | Метод изменяет статус выпуска. | 4.0.5
GetEmailStatuses | Метод возвращает массив статусов в очереди выпуска на отправку. | 8.5.3
GetEmailsByStatus | Метод возвращает выборку из очереди на отправку. | 8.5.3


Add

Подписка, рассылки>Классы>CPostingGeneral>Add (доступен с 3.1.1)

CPostingGeneral::Add

Описание и параметры

int
CPosting::Add(
 array arFields
);

Метод добавляет выпуск. Метод нестатический.

Параметры

Параметр | Описание | С версии
arFields | Массив со значениями полей объекта "Выпуск" Дополнительно могут быть указаны поля: RUB_ID - массив идентификаторов рассылок; GROUP_ID - массив идентификаторов групп пользователей. |

Требования к полям передаваемым в arFields

  • FROM_FIELD - должно содержать правильный адрес e-mail (см. функцию check_email).
  • TO_FIELD - в случае когда поле DIRECT_SEND равно Y не должно быть пустым.
  • SUBJECT - не должно быть пустым.
  • BODY - не должно быть пустым.
  • AUTO_SEND_TIME - если задано, то должно содержать или false или дату включающую время (см. метод CDatabase::IsDate)

Возвращаемые значения

В случае успешного добавления возвращается ID выпуска. В противном случает возвращается false, и переменная класса LAST_ERROR содержит сообщение об ошибке (так же возбуждается исключение CMain::ThrowException).

При указании статуса в поле STATUS следует учитывать, что при переводе из одного статуса в другой могут выполняться определенные действия. Так, например, при переводе из статуса "Черновик" ("D") в статус "В процессе" ("P") формируется список адресов, по которым будет происходить отправка. А именно, адреса, на которые требуется отправить выпуск, попадают в таблицу b_posting_email со статусом "Y". Если при добавлении выпуска сразу указать статус "В процессе" ("Р"), то процесс добавления адресов в таблицу b_posting_email не произойдет, и выпуск никому не отправится. При этом статус выпуска сменится на "S" (отправлен успешно). Выпуски хранятся в таблице b_posting.

Примеры использования

$posting = new CPosting;
$arFields = Array(
    "FROM_FIELD" => $FROM_FIELD,
    "TO_FIELD" => $TO_FIELD,
    "BCC_FIELD" => $BCC_FIELD,
    "EMAIL_FILTER" => $EMAIL_FILTER,
    "SUBJECT" => $SUBJECT,
    "BODY_TYPE" => ($BODY_TYPE <> "html"? "text":"html"),
    "BODY" => $BODY,
    "DIRECT_SEND" => ($DIRECT_SEND <> "Y"? "N":"Y"),
    "CHARSET" => $CHARSET,
    "SUBSCR_FORMAT" => ($SUBSCR_FORMAT<>"html" && $SUBSCR_FORMAT<>"text"?
        false:$SUBSCR_FORMAT),
    "RUB_ID" => $RUB_ID,
    "GROUP_ID" => $GROUP_ID
);
if($STATUS <> "")
{
    if($STATUS<>"S" && $STATUS<>"E" && $STATUS<>"P")
        $STATUS = "D";
    $arFields["STATUS"] = $STATUS;
    if($STATUS == "D")
    {
        $arFields["DATE_SENT"] = false;
        $arFields["SENT_BCC"] = "";
        $arFields["ERROR_EMAIL"] = "";
    }
}
$ID = $posting->Add($arFields);
if($ID == false)
    echo $posting->LAST_ERROR;

// Полностью схема генерации выпуска из скрипта выглядит так:
    $cPosting = new CPosting;
    $ID = $cPosting->Add($arFields);
    if($ID)
    {
    $cPosting->ChangeStatus($ID, "P");
    $cPosting->AutoSend($ID);
    }


AutoSend

Подписка, рассылки>Классы>CPostingGeneral>AutoSend (доступен с 3.1.1)

CPostingGeneral::AutoSend

Описание и параметры

CPosting::AutoSend(
 int ID = false,
 bool limit = false,
 string site_id = false
);

Метод для отправки выпуска с помощью cron'а или агента. Метод статический.

Примечание

При отправке с помощью агента учитывается кодировка в которой выпуск был составлен. отправка выпуска откладывается до хита на подходящий сайт.

Параметры

Параметр | Описание | С версии
ID | Идентификатор выпуска. Если параметр не указан или равен false, то будут отсылаться все выпуски в статусе "В процессе" время отправки которых меньше или равно текущему. В порядке возрастания времени отправки. |
limit | Флажок ограничения количества отправляемых писем за один вызов. Если этот параметр указан и равен true количество писем отправляемых за один вызов данной функции ограничивается параметром "Количество писем для автоматической рассылки агентом за один запуск" в настройках модуля. При отправке выпуска с помощью агента (задан параметр ID) дополнительно ограничивается продолжительность отправки, которая определяется параметром в настройках модуля. |
site_id | Идентификатор сайта. Используется при отправке автоматически сгенерированных выпусков с помощью агентов. Если этот параметр указан, то его значение сравнивается с текущим значением константы SITE_ID. Таким образом агент по отправке выполняется только в контексте сайта к которому привязана рубрика породившая выпуск. Это позволяет избежать проблемы пропуска картинок в html выпусках в случае многосайтовости организованной по второму варианту. | 7.0.4

Возвращаемые значения

Нет.

Примеры использования

Пример использования в сценарии PHP для cron'а

#!/usr/bin/php
<?php
//Здесь необходимо указать ваш DOCUMENT_ROOT!
$_SERVER["DOCUMENT_ROOT"] = "/opt/www/html";
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
set_time_limit(0);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if (CModule::IncludeModule("subscribe"))
{
    $cPosting = new CPosting;
    $cPosting->AutoSend();
}
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?>

Пример использования в сценарии PHP для агента

<?
    CAgent::AddAgent("CPosting::AutoSend(".$ID.",true);", "subscribe", "N", 0, $post_arr["AUTO_SEND_TIME"], "Y", $post_arr["AUTO_SEND_TIME"]);
?>
<p class="notetext">Для отправки выпуска был создан агент.</p>


ChangeStatus

Подписка, рассылки>Классы>CPostingGeneral>ChangeStatus (доступен с 4.0.5)

CPostingGeneral::ChangeStatus

Описание и параметры

bool
CPosting::ChangeStatus(
 int ID,
 string status );

Метод изменяет статус выпуска и производит действия в соответствии с приведенной ниже таблицей. Метод нестатический.

Текущий статус | Новый статус | Действия
Черновик | В процессе | Формируется список адресов по которым будет происходить отправка.
В процессе | Остановлен | Нет.
Остановлен | В процессе | Нет.
В процессе | Отправлен с ошибками | Нет.
В процессе | Отправлен | Нет.
Отправлен с ошибками | В процессе | Адреса в очереди отправки помеченные как ошибочные помечаются на отправку.
Отправлен с ошибками, Отправлен, Остановлен | Черновик | Очередь отправки очищается.

Параметры

Параметр | Описание | С версии
ID | Идентификатор выпуска. |
status | Новый статус выпуска. Может принимать значение: "S" (отправлен успешно),"E" (отправлен с ошибками), "P" (в процессе), "W" (остановлен), "D" (черновик). |

Возвращаемые значения

true при успешной смене статуса и false при неуспешной. При неуспешной смене статуса переменная LAST_ERROR класса содержит сообщение об ошибке.

Примеры использования

//******************************
// Stop sending the message
//******************************
if($action=="stop" && $ID>0 && $POST_RIGHT=="W")
{
    $cPosting->ChangeStatus($ID, "W");
}


Delete

Подписка, рассылки>Классы>CPostingGeneral>Delete (доступен с 3.1.1)

CPostingGeneral::Delete

mixed
CPosting::Delete(
 int ID
);

Метод удаляет выпуск по его идентификатору. Метод статический.

Примечание. До версии 17.0.0 метод использовал внутреннюю транзакцию, то есть если использовался MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.

Параметры

Параметр | Описание | С версии
ID | Идентификатор выпуска. |

Возвращаемые значения

В случае успешного удаления возвращается результат типа CDBResult. В противном случает возвращается false.

Пример использования

$res = CPosting::Delete($ID);
if(!$res)
    echo "Cannot delete the issue.";
elseif($res->AffectedRowsCount() < 1)
    echo "Already deleted.";
else
    echo "Deleted successfylly.";


DeleteFile

Подписка, рассылки>Классы>CPostingGeneral>DeleteFile (доступен с 4.0.5)

CPostingGeneral::DeleteFile

CPosting::DeleteFile(
 int ID,
 int file_id = false
);

Метод удаляет одно или все вложения выпуска. Метод статический.

Параметры

Параметр | Описание | С версии
ID | Идентификатор выпуска. |
file_id | Идентификатор вложения. Если параметр не указан или равен false, то удаляются все вложения выпуска. |

Возвращаемые значения

Нет.

Пример использования

    if(is_array($FILE_ID))
        foreach($FILE_ID as $file_id)
            CPosting::DeleteFile($ID, $file_id);


GetByID

Подписка, рассылки>Классы>CPostingGeneral>GetByID (доступен с 3.1.1)

CPostingGeneral::GetByID

CDBResult
CPosting::GetByID(
 int ID
);

Метод возвращает выпуск по его идентификатору. Метод статический.

Параметры

Параметр | Описание | С версии
ID | Идентификатор выпуска. |

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта "Выпуск".

Пример использования

$rsPosting = CPosting::GetByID($ID);
$arPosting = $rsPosting->Fetch();
if($arPosting)
    echo htmlspecialchars(print_r($arPosting, true));
else
    echo "Not found";


GetEmails

Подписка, рассылки>Классы>CPostingGeneral>GetEmails (доступен с 3.3.2)

CPostingGeneral::GetEmails

Описание и параметры

array
CPosting::GetEmails(
 array post_arr
);

Метод возвращает массив адресов, по которым выпуск будет отправлен. Метод нестатический.

Параметры

Параметр | Описание | C версии
post_arr | Массив всех полей объекта "Выпуск" в виде наборов "название поля" => "значение". |

Возвращаемые значения

Возвращает массив уникальных e-mail адресов. В который входят

  • Адреса подписчиков из рубрик выпуска, подписка которых активна и подтверждена с учетом формата подписки и фильтра адресов.
  • Адреса зарегистрированных и активных пользователей принадлежащих тем группам к которым привязан выпуск.
  • Адреса перечисленные в поле BCC_FIELD.

Примеры использования

$post = CPosting::GetByID($ID);
if(($post_arr = $post->Fetch()))
    $aEmail = CPosting::GetEmails($post_arr);


GetEmailsByStatus

Подписка, рассылки>Классы>CPostingGeneral>GetEmailsByStatus (с версии 8.5.3)

CPostingGeneral::GetEmailsByStatus

array
CPosting::GetEmailsByStatus(
 int ID,
 char STATUS
);

Метод возвращает выборку из очереди на отправку. Метод статический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор выпуска
STATUS Статус получателя в очереди.

Допустимыми значениями являются:

  • "N" письмо отправлено успешно;
  • "E" - отправлено с ошибкой;
  • "Y" - ожидает отправки.

Возвращаемое значение

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта "Очередь отправки".

Смотрите также

  • Поля CPosting


GetEmailStatuses

Подписка, рассылки>Классы>CPostingGeneral>GetEmailStatuses (доступен с 8.5.3)

CPostingGeneral::GetEmailStatuses

Описание и параметры

array
CPosting::GetEmailStatuses(
 int ID
);

Метод возвращает массив статусов в очереди выпуска на отправку. Ключами массива являются статусы, а значениями количество подписчиков в соответствующих статусах. Метод статический.

Параметры

Параметр | Описание | С версии
ID | Идентификатор выпуска |

Возвращаемое значение

Массив распределения получателей выпуска по статусам. Если получатели в каком-то из статусов отсутствуют, то и соответствующий элемента массива будет отсутствовать.

Допустимыми значениями ключей являются:

  • "N" - письмо отправлено успешно;
  • "E" - отправлено с ошибкой;
  • "Y" - ожидает отправки.

Смотрите также

  • Поля CPosting

Примеры использования

<?
$arStatuses = CPosting::GetEmailStatuses($ID);
if(!isset($arStatuses["Y"]))
  echo "Выпуск отправлен.";
?>


GetFileList

Подписка, рассылки>Классы>CPostingGeneral>GetFileList (доступен с 4.0.5)

CPostingGeneral::GetFileList

Описание и параметры

CDBResult
CPosting::GetFileList(
 int ID,
 int file_id = false
);

Метод возвращает выборку вложений выпуска. Метод статический.

Параметры

Параметр | Описание | С версии
ID | Идентификатор выпуска. |
file_id | Идентификатор вложения. Если параметр не указан или равен false, то выбираются все вложения выпуска. |

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта "Файл": ID, FILE_SIZE, ORIGINAL_NAME, SUBDIR, FILE_NAME, CONTENT_TYPE.

Примеры использования

//размер всех вложений
$attach_size = 0;
$rsFile = CPosting::GetFileList($ID);
while($arFile = $rsFile->Fetch())
    $attach_size += $arFile["FILE_SIZE"];


GetGroupList

Подписка, рассылки>Классы>CPostingGeneral>GetGroupList (доступен с 3.1.1)

CPostingGeneral::GetGroupList

Описание и параметры

CDBResult
CPosting::GetGroupList(
 int ID
);

Метод возвращает выборку групп пользователей, на которые будет отправлен выпуск. Метод статический.

Параметры

Параметр | Описание | С версии
ID | Идентификатор выпуска. |

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта "Группа": ID, NAME.

Примеры использования

<?
//show user groups and check selected for the issue
$aPostGrp = array();
if($ID>0)
{
    $post_grp = CPosting::GetGroupList($ID);
    while($post_grp_arr = $post_grp->Fetch())
        $aPostGrp[] = $post_grp_arr["ID"];
}
$group = CGroup::GetList(($by="name"), ($order="asc"));
while($group->ExtractFields("g_")):
?>
<input type="checkbox" name="GROUP_ID[]" value="<?echo $g_ID?>"<?if(in_array($g_ID, $aPostGrp)) echo " checked"?>>
<?echo $g_NAME?><br>
<?
endwhile;
?>


GetRubricList

Подписка, рассылки>Классы>CPostingGeneral>GetRubricList (доступен с 3.1.1)

CPostingGeneral::GetRubricList

CDBResult
CPosting::GetRubricList(
 int ID
);

Метод возвращает выборку рассылок, на которые будет отправлен выпуск. Метод статический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор выпуска. |

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта "Рассылка": ID, NAME, SORT, LID, ACTIVE.

Пример использования

//в какие рубрики отправлять
$aPostRub = array();
$post_rub = CPosting::GetRubricList($post_arr["ID"]);
while($post_rub_arr = $post_rub->Fetch())
    $aPostRub[] = $post_rub_arr["ID"];


SaveFile

Подписка, рассылки>Классы>CPostingGeneral>SaveFile (доступен с 4.0.5)

CPostingGeneral::SaveFile

Описание и параметры

bool
CPosting::SaveFile(
 int ID,
 array file
);

Метод добавляет вложение к выпуску сохраняя и регистрируя его в таблице файлов (b_file). Метод нестатический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор выпуска.
file Массив с данными файла формата:
Array(
    "name" => "название файла",
    "size" => "размер",
    "tmp_name" => "временный путь на сервере",
    "type" => "тип загружаемого файла");
Массив такого вида может быть взят прямо из $_FILES[имя поля]

Возвращаемые значения

В случае успешного сохранения вложения возвращается ID зарегистрированного файла. В противном случает возвращается false, и переменная класса LAST_ERROR содержит сообщение об ошибке.

Примеры использования

if (strlen($save)>0 && $REQUEST_METHOD=="POST")
{
    $cPosting=new CPosting;
$file_id = $cPosting->SaveFile($ID, $_FILES["FILE_TO_ATTACH"]);
if($file_id===false)
    strError .= "Ошибка при сохранении вложения."."
";
}


SendMessage

Подписка, рассылки>Классы>CPostingGeneral>SendMessage (доступен с 3.1.1)

CPostingGeneral::SendMessage

Описание и параметры

mixed
CPosting::SendMessage(
int ID,
 int timeout = 0,
int maxcount = 0,<
bool check_charset = false,
);

Нестатический метод отправляет выпуск в почтовую рассылку по адресам, указанным в таблице b_posting_email с соответствующим идентификатором выпуска. При этом обновляя статусы:

  • Y - еще не отправлялось
  • N - отправлено
  • Е - с ошибками
Выпуски со статусом "Успешно отправлен" повторно не отправляются. Если у выпуска установлен статус "Частично отправлен", то выпуск отправляется по оставшимся адресам.

Сначала выполняется попытка получения блокировки выпуска (см. CPosting::Lock). Если блокировку получить не удалось, то отправка считается частичной и возвращается "CONTINUE". Затем формируется тело письма для отправки и в цикле по адресам подписчиков осуществляется отправка выпуска с использованием функции bxmail.

В режиме отправки "Персонально каждому получателю" перед вызовом bxmail вызываются обработчики события BeforePostingSendMail.

В цикле отправки в очереди адресов делаются отметки об успешной отправке или ошибке.

С выпуска снимается блокировка(см. CPosting::UnLock).

Параметры

Параметр | Описание | C версии
ID | Идентификатор выпуска. |
timeout | Максимальное время отправки в секундах. При превышении этого времени прерывается работа и устанавливается статус выпуска "Частично отправлен". Параметр имеет значение только при методе отправки "Персонально каждому получателю". Если timeout=0, то отправка производится за один шаг. | 3.2.0
maxcount | Максимальное количество писем для отправки. При превышении этого количества прерывается работа и устанавливается статус выпуска "Частично отправлен". Параметр имеет значение только при методе отправки "Персонально каждому получателю". Если maxcount=0, то отправка производится за один шаг. | 4.0.5
check_charset | Сопоставлять текущую кодировку (константа LANG_CHARSET) с кодировкой в которой составлен выпуск или нет. Если кодировки не совпадают, то вернется "CONTINUE". Используется при отправке выпусков с помощью агентов. Сравнение выполняется без учета регистра кодировок. | 8.0.1

Возвращаемые значения

Функция возвращает true при успешной отправке, false при неуспешной, "CONTINUE" при частичной отправке. При неуспешной отправке переменная LAST_ERROR класса содержит сообщение об ошибке.

Смотрите также

  • bxmail

    • Примеры использования

    <?
    if($action=="send" && $ID>0):
        if(($res = $cPosting->SendMessage($ID, COption::GetOptionString("subscribe", "posting_interval"))) !== false):
            if($res === "CONTINUE"):
    ?>
    <script language="JavaScript" type="text/javascript">
    <!--
    function DoNext(){window.location="<?echo $APPLICATION->GetCurPage()."?ID=".$ID."&action=send&lang=".LANG."&rnd=".rand();?>";}
    setTimeout('DoNext()', 2500);
    //-->
    </script>
    <?
            else:
                $strOk = "Sent successfully.";
            endif; //$res === "CONTINUE"
        endif; //$cPosting->SendMessage
        $strError .= $cPosting->LAST_ERROR;
    endif; //$action=="send"


Update

Подписка, рассылки>Классы>CPostingGeneral>Update (доступен с 3.1.1)

CPostingGeneral::Update

Описание и параметры

bool
CPosting::Update(
 int ID,
 array arFields
);

Метод изменяет информацию о выпуске по его идентификатору. Метод нестатический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор выпуска. |
arFields | Массив со значениями полей объекта "Выпуск". Дополнительно могут быть указаны поля: RUB_ID - массив идентификаторов рассылок; GROUP_ID - массив идентификаторов групп пользователей. |

Возвращаемые значения

В случае успешного изменения возвращается true. В противном случает возвращается false, и переменная класса LAST_ERROR содержит сообщение об ошибке.

Примеры использования

$posting = new CPosting;
$arFields = Array(
    "FROM_FIELD" => $FROM_FIELD,
    "TO_FIELD" => $TO_FIELD,
    "BCC_FIELD" => $BCC_FIELD,
    "EMAIL_FILTER" => $EMAIL_FILTER,
    "SUBJECT" => $SUBJECT,
    "BODY_TYPE" => ($BODY_TYPE <> "html"? "text":"html"),
    "BODY" => $BODY,
    "DIRECT_SEND" => ($DIRECT_SEND <> "Y"? "N":"Y"),
    "CHARSET" => $CHARSET,
    "SUBSCR_FORMAT" => ($SUBSCR_FORMAT<>"html" && $SUBSCR_FORMAT<>"text"? false:$SUBSCR_FORMAT),
    "RUB_ID" => $RUB_ID,
    "GROUP_ID" => $GROUP_ID
);
if($STATUS <> "")
{
    if($STATUS<>"S" && $STATUS<>"E" && $STATUS<>"P")
        $STATUS = "D";
    $arFields["STATUS"] = $STATUS;
    if($STATUS == "D")
    {
        $arFields["DATE_SENT"] = false;
        $arFields["SENT_BCC"] = "";
        $arFields["ERROR_EMAIL"] = "";
    }
}
if(!$posting->Update($ID, $arFields))
    $strError = $posting->LAST_ERROR;


UpdateGroups

Подписка, рассылки>Классы>CPostingGeneral>UpdateGroups (доступен с 3.1.1)

CPostingGeneral::UpdateGroups

void
CPosting::UpdateGroups(
 int ID,
 array aGroup
);

Метод изменяет информацию о привязке выпуска к группам пользователей. Метод нестатический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор выпуска. |
aRubric | Массив идентификаторов групп пользователей. |

Пример использования

$posting = new CPosting;
$posting->UpdateGroups($ID, array(1));


UpdateRubrics

Подписка, рассылки>Классы>CPostingGeneral>UpdateRubrics (доступен с 3.1.1)

CPostingGeneral::UpdateRubrics

void
CPosting::UpdateRubrics(
 int ID,
 array aRubric
);

Метод изменяет информацию о привязке выпуска к рубрикам подписки. Метод нестатический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор выпуска. |
aRubric | Массив идентификаторов рассылок. |

Пример использования

$posting = new CPosting;
$posting->UpdateRubrics($ID, array(1, 2, 3));


Поля CPostingGeneral

Подписка, рассылки>Классы>CPostingGeneral>Поля CPostingGeneral

CPostingGeneral::Поля CPostingGeneral

Поля при работе с объектом "Выпуск"

Название поля | Описание | Тип | Обяз.
ID | Идентификатор выпуска. | int | Да.
TIMESTAMP_X | Дата модификации записи. | datetime |
STATUS | Статус выпуска. Может принимать значение: "S" (отправлен успешно), "E" (отправлен с ошибками), "P" (в процессе), "W" (остановлен), "D" (черновик). | char(1) |
DATE_SENT | Дата отправки выпуска. | datetime |
FROM_FIELD | Поле письма "От кого". | string(255) | Да.
TO_FIELD | Поле письма "Кому". | string(255) | Нет.
BCC_FIELD | Список адресов в поле письма "Скрытая копия". | text |
SUBJECT | Поле письма "Тема". | string(255) | Да.
BODY_TYPE | Тип текста письма ("text"/"html"). | string(4) |
BODY | Текст письма. | text | Да.
DIRECT_SEND | Отправлять персонально каждому подписчику ("Y"/"N"). | char(1) |
MSG_CHARSET | Кодировка в которой был создан выпуск. | string(255) | Текущее значение константы LANG_CHARSET
CHARSET | Кодировка, указываемая в заголовке письма. | string(50) |
EMAIL_FILTER | Фильтр на выборку адресов. | string(255) |
SUBSCR_FORMAT | Фильтр на формат текста. Формат указан в подписках. | string(4) |
AUTO_SEND_TIME | Время для начала отправки выпуска с помощью агента или по cron'у. | datetime |

Поля при работе с объектом "Очередь отправки"

Название поля | Описание | Тип | Обяз.
ID | Идентификатор получателя в очереди. | int | Да.
POSTING_ID | Идентификатор выпуска. | int | Да.
STATUS | Статус получателя. Может принимать значение: "N" (письмо отправло успешно), "E" (отправлено с ошибкой), "Y" (ожидает отправки). | char(1) | Да.
EMAIL | Адрес получателя. | string(255) | Да.
SUBSCRIPTION_ID | Идентификатор подписки получателя. Если получатель был добавлен в очередь на отправку выпуска по подписке на рубрику. | int | Нет.
USER_ID | Идентификатор пользователя. Если получатель был добавлен в очередь на отправку выпуска по принадлежности к группе. | int | Нет.


Класс CPosting

CPosting - класс для работы с выпусками новостей подписки.

Методы класса

Метод | Описание | С версии
GetList | Метод возвращает список выпусков по фильтру. | 3.1.1
Lock | Метод возвращает true при успешной блокировке выпуска и false при неуспешной. | 4.0.5
UnLock | Метод возвращает true при успешном снятии блокировки выпуска и false при неуспешном. | 4.0.7


GetList

Подписка, рассылки>Классы>CPosting>GetList (доступен с 3.1.1)

CPosting::GetList

Описание и параметры

CDBResult
CPosting::GetList(
 $aSort = Array(),
 $arFilter = Array(),
 $arSelect = Array(),
 $arNavStartParams = false
);

Метод возвращает список выпусков по фильтру. Метод нестатический.

Параметры

Параметр | Описание | C версии
aSort Массив, содержащий признак сортировки в виде наборов "название поля"=>"направление".

Название поля может принимать значение:
  • ID - идентификатор выпуска;
  • TIMESTAMP - дата изменения;
  • SUBJECT - тема письма;
  • BODY_TYPE - тип текста;
  • STATUS - статус выпуска;
  • DATE_SENT - дата отправки выпуска;
  • AUTO_SEND_TIME - время автоматической отправки выпуска;
Направление сортировки может принимать значение:
  • ASC - по возрастанию;
  • DESC - по убыванию.
Пример:
array("STATUS"=>"ASC",

           "DATE_SENT"=>"DESC")
arFilter Массив, содержащий фильтр в виде наборов "название поля"=>"значение фильтра".

Название поля может принимать значение:
  • ID - идентификатор выпуска (возможны сложные условия);
  • TIMESTAMP_1 - дата изменения (начало периода);
  • TIMESTAMP_2 - дата изменения (конец периода);
  • DATE_SENT_1 - дата отправки (начало периода);
  • DATE_SENT_2 - дата отправки (конец периода);
  • AUTO_SEND_TIME_1 - дата или время автоматической отправки (начало периода);
  • AUTO_SEND_TIME_2 - дата или время автоматической отправки (конец периода);
  • STATUS - статус выпуска строкой (возможны сложные условия);
  • STATUS_ID - статус выпуска символом (возможны сложные условия);
  • SUBJECT - тема письма (возможны сложные условия);
  • FROM - поле "от кого" письма (возможны сложные условия);
  • TO - кому отправлен выпуск (возможны сложные условия);
  • BODY_TYPE - тип текста письма;
  • BODY - текст письма (возможны сложные условия);
  • RUB_ID - массив идентификаторов рассылок с которыми связан выпуск;
  • MSG_CHARSET - кодировка в которой был составлен выпуск (точное совпадение).
Пример:
array("SUBJECT"=>"test | тест",

           "TO"=>"@bitrixsoft.ru")
arSelect | Массив, содержащий список полей CPostingGeneral. | 20.0.0
arNavStartParams Необязательное. По умолчанию false - не ограничивать выводимые элементы. Для ограничения выводимых элементов передается массив с ключами
  • nTopCount - ограничить количество сверху;
  • bShowAll - разрешить вывести все элементы при постраничной навигации;
  • iNumPage - номер страницы при постраничной навигации;
  • nPageSize - количество элементов на странице при постраничной навигации.

Если параметру arNavStartParams передать пустой массив, то установится ограничение на 10 выводимых элементов.

20.0.0

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта "Выпуск", за исключением полей типа text.

Если поля фильтра содержат ошибку, то переменная LAST_ERROR класса содержит сообщение об ошибке.

Примеры использования

$cPosting = new CPosting;
$arFilter = Array(
    "ID" => $find_id,
    "TIMESTAMP_1" => $find_timestamp_1,
    "TIMESTAMP_2" => $find_timestamp_2,
    "DATE_SENT_1" => $find_date_sent_1,
    "DATE_SENT_2" => $find_date_sent_2,
    "STATUS" => $find_status,
    "STATUS_ID" => $find_status_id,
    "SUBJECT" => $find_subject,
    "FROM" => $find_from,
    "TO" => $find_to,
    "BODY" => $find_body,
    "BODY_TYPE" => $find_body_type
);
$rsPosting = $cPosting->GetList(array($by=>$order), $arFilter);
$strError .= $cPosting->LAST_ERROR;

$rsPosting->NavStart(50);
echo $rsPosting->NavPrint("Issues");
while($rsPosting->NavNext(true, "f_"))
{
    //...
}


Lock

Подписка, рассылки>Классы>CPosting>Lock (доступен с 4.0.7)

CPosting::Lock

Описание и параметры

bool
CPosting::Lock(
 int ID );

Метод возвращает true при успешной блокировке выпуска и false при не успешной. Используется при автоматической отправке выпусков. Метод статический.

Параметры

Параметр | Описание | С версии
ID | Идентификатор выпуска. |

Возвращаемые значения

В случае успешной блокировки возвращается true. В противном случае возвращается false. Если блокировку не удалось получить из-за ошибки базы данных, то возвращается false и возбуждает исключение (CMain::ThrowException).

Примеры использования

if(CPosting::Lock($ID)===false)
{
    if($e = $APPLICATION->GetException())
        echo "Произошла ошибка БД: ".$e->GetString();
    else
        return;
}
else
{
    //Выпуск успешно заблокирован
    //можно продолжать обработку
}


UnLock

Подписка, рассылки>Классы>CPosting>UnLock (доступен с 4.0.7)

CPosting::UnLock

bool
CPosting::UnLock(
 int ID
);

Метод возвращает true при успешном снятии блокировки выпуска и false при неуспешном. Используется при отправке выпусков. Метод статический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор выпуска. |

Возвращаемые значения

В случае успешного снятия блокировки возвращается true. В противном случае возвращается false.

Пример использования

CPosting::UnLock($ID);


Класс CSubscriptionGeneral

CSubscriptionGeneral - класс для работы с подписками на рассылки.

Методы класса

Метод | Описание | C версии
Add | Метод добавляет подписку на рассылки и отправляет подписчику письмо с кодом подтверждения подписки (если не указано не отправлять). | 3.0.5
Authorize | Авторизует посетителя для доступа к редактированию подписки. Признак успешной авторизации сохраняется в PHP-сессии. | 3.3.2
ConfirmEvent | Метод добавляет событие SUBSCRIBE_CONFIRM для отправки подписчику письма с кодом подтверждения подписки. Письмо формируется по шаблону типа "SUBSCRIBE_CONFIRM - Подтверждение подписки". | 3.0.5
Delete | Метод удаляет подписку. | 3.0.5
GetByID | Метод выбирает подписку по ее идентификатору. | 3.0.5
GetList | Метод выбирает список подписок по фильтру. | 3.0.5
GetRubricArray | Метод возвращает массив идентификаторов рассылок, на которые подписан данный адрес. | 3.0.5
GetRubricList | Метод возвращает выборку рассылок, на которые подписан данный адрес. | 3.0.5
GetUserSubscription | Метод возвращает массив полей подписки текущего пользователя. Подписка определяется по Email, сохраненному в куках посетителя, либо по Email авторизованного пользователя. | 3.0.5
IsAuthorized | Метод проверяет, авторизован ли текущий посетитель для доступа к информации о подписке. | 3.3.2
Update | Метод изменяет данные подписки. Если изменяется адрес подписки, то Метод снимает подтверждение с подписки и генерирует событие для отправки письма с кодом подтверждения подписки (если это явно не запрещено). Если подписка не подтверждена, а массив полей включает в себя правильный CONFIRM_CODE, то подписка подтверждается. | 3.0.5


Add

Подписка, рассылки>Классы>CSubscriptionGeneral>Add (доступен с 3.0.5)

CSubscriptionGeneral::Add

Описание и параметры

int
CSubscription::Add(
    array arFields,
    string SITE_ID = SITE_ID
 );

Метод добавляет подписку на рассылки и отправляет подписчику письмо с кодом подтверждения подписки (если не указано не отправлять). Метод нестатический.

Параметры

Параметр | Описание | C версии
arFields Массив со значениями полей объекта "Подписка". Дополнительно могут быть указаны поля:
  • RUB_ID - массив идентификаторов рассылок, на которые подписывается адрес;
  • SEND_CONFIRM - отправлять ли письмо с кодом подтверждения подписчику (Y/N).
  • ALL_SITES - отписать подписчика от рассылок всех сайтов или только от заданного SITE_ID (Y/N).
  • USER_ID - необязательный. Идентификатор зарегистрированного пользователя.
SITE_ID | Идентификатор сайта, по которому определяется шаблон письма о подтверждении подписки. По умолчанию параметр принимает значение текущего сайта. | 4.0.0

Требования к полям, передаваемым в arFields

  • EMAIL - должно содержать правильный адрес e-mail (см. функцию check_email). Также выполняется проверка уникальности EMAIL.

Возвращаемые значения

В случае успешного добавления возвращается ID подписки. В противном случает возвращается false, и переменная класса LAST_ERROR содержит сообщение об ошибке (так же возбуждается исключение CMain::ThrowException).

Примеры использования

//there must be at least one newsletter category
if(!is_array($RUB_ID) || count($RUB_ID) == 0)
    $strWarning .= "There must be at least one category."."<br>";

if($strWarning == "")
{
    $arFields = Array(
        "USER_ID" => ($USER->IsAuthorized()? $USER->GetID():false),
        "FORMAT" => ($FORMAT <> "html"? "text":"html"),
        "EMAIL" => $EMAIL,
        "ACTIVE" => "Y",
        "RUB_ID" => $RUB_ID
    );
    $subscr = new CSubscription;

    //can add without authorization
    $ID = $subscr->Add($arFields);
    if($ID>0)
        CSubscription::Authorize($ID);
    else
        $strWarning .= "Error adding subscription: ".$subscr->LAST_ERROR."<br>";
}


Authorize

Подписка, рассылки>Классы>CSubscriptionGeneral>Authorize (доступен с 3.3.2)

CSubscriptionGeneral::Authorize

Описание и параметры

bool
CSubscription::Authorize(
    int ID,
    string CONFIRM_CODE = false
);

Авторизует посетителя для доступа к редактированию подписки. Признак успешной авторизации сохраняется в PHP-сессии ($_SESSION["SESS_SUBSCR_AUTH"][$ID]).

Если подписка анонимная, то авторизация проверяется по коду подтверждения подписки. Если подписка принадлежит зарегистрированному пользователю, то доступ предоставляется только авторизованному пользователю-владельцу подписки. Метод статический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор подписки. |
CONFIRM_CODE | Пароль для авторизации доступа, должен совпадать с кодом подтверждения подписки, сгенерированным при добавлении или изменении адреса подписки. Если параметр принимает значение false, то производится безусловная авторизация. |

Возвращаемые значения

При успешной авторизации доступа к подписке возвращается true, иначе false.

Примеры использования

//try to authorize subscription by CONFIRM_CODE or user password AUTH_PASS
if($ID > 0 && !CSubscription::IsAuthorized($ID))
{
    if($str_USER_ID > 0 && !empty($AUTH_PASS))
    {
        //trying to login user
        $usr = CUser::GetByID($str_USER_ID);
        if(($usr_arr = $usr->Fetch()))
        {
            $res = $USER->Login($usr_arr["LOGIN"], $AUTH_PASS);
            if($res["TYPE"] == "ERROR")
                $strWarning .= $res["MESSAGE"];
        }
    }
    CSubscription::Authorize($ID, (empty($AUTH_PASS)? $CONFIRM_CODE:$AUTH_PASS));
}


ConfirmEvent

Подписка, рассылки>Классы>CSubscriptionGeneral>ConfirmEvent (доступен с 3.0.5)

CSubscriptionGeneral::ConfirmEvent

Описание и параметры

bool
CSubscription::ConfirmEvent(
    int ID,
    string SITE_ID = SITE_ID
);

Метод добавляет событие SUBSCRIBE_CONFIRM для отправки подписчику письма с кодом подтверждения подписки. Письмо формируется по шаблону типа "SUBSCRIBE_CONFIRM - Подтверждение подписки". Метод статический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор подписки. |
SITE_ID | Идентификатор сайта, по которому определяется шаблон письма о подтверждении подписки. По умолчанию параметр принимает значение текущего сайта. |

Возвращаемые значения

При успешном добавлении события возвращается true, иначе false.

Так же false возвращается если подписка уже подтверждена (CONFIRMED равно Y).

Примеры использования

if($ID > 0)
{
    //confirmation code request
    if($action == "sendcode")
    {
        if(CSubscription::ConfirmEvent($ID))
            echo "Subscription confirmation was sent successfully";
    }
}


Delete

Подписка, рассылки>Классы>CSubscriptionGeneral>Delete (доступен с 3.0.5)

CSubscriptionGeneral::Delete

mixed
CSubscription::Delete(
    int ID
);

Метод удаляет подписку. Метод статический.

Примечание. Метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.

Параметры

Параметр | Описание | C версии
ID | Идентификатор подписки. |

Возвращаемые значения

В случае успешного удаления возвращается результат типа CDBResult. В противном случае возвращается false.

Пример использования

if (($res = CSubscription::Delete($ID)) &&
     $res->AffectedRowsCount() < 1 ||
     $res == false)
    echo "Error deleting subscription.";
else
    echo "Subscription deleted.";


GetByID

Подписка, рассылки>Классы>CSubscriptionGeneral>GetByID (доступен с 3.0.5)

CSubscriptionGeneral::GetByID

CDBResult
CSubscription::GetByID(
    int ID
);

Метод выбирает подписку по ее идентификатору. Метод статический.

Параметры

Параметр | Описание | С версии
ID | Идентификатор подписки. |

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта "Подписка".

Пример использования

//new or existing subscription?
//ID==0 indicates new subscription
if(strlen($sf_EMAIL) > 0 || $ID > 0)
{
    if($ID > 0)
        $subscription = CSubscription::GetByID($ID);
    else
        $subscription = CSubscription::GetByEmail($sf_EMAIL);

    if($subscription->ExtractFields("str_"))
        $ID = (integer)$str_ID;
    else
        $ID=0;
}
else
    $ID = 0;


GetList

Подписка, рассылки>Классы>CSubscriptionGeneral>GetList (доступен с 3.0.5)

CSubscriptionGeneral::GetList

Описание и параметры

CDBResult
CSubscription::GetList(
    array aSort = Array(),
    array arFilter = Array(),
   array arNavStartParams = false
);

Метод выбирает список подписок (подписчиков) по фильтру. Метод статический.

Если параметр aFilter не задан, то сортировки будет выполнена в порядке убывания поля ID.

Параметры

Параметр Описание C версии
aSort Массив, содержащий признак сортировки в виде наборов "название поля"=>"направление".

Название поля может принимать значение:
  • ID - идентификатор подписки;
  • DATE_INSERT - дата добавления;
  • DATE_UPDATE - дата изменения;
  • DATE_CONFIRM - дата подтверждения;
  • ACT - флаг активности;
  • CONF - флаг подтверждения;
  • EMAIL - адрес подписки;
  • FMT - формат подписки;
  • USER - идентификатор пользователя.
  • CONFIRM_CODE - код подтверждения подписки.
  • Направление сортировки может принимать значение:
  • ASC - по возрастанию;
  • DESC - по убыванию.
Например: array("EMAIL"=>"ASC", "ACT"=>"DESC")
arFilter Массив, содержащий фильтр в виде наборов "название поля"=>"значение фильтра".

Название поля может принимать значение:
  • 1ID - идентификатор подписки;
  • 1EMAIL - адрес;
  • UPDATE_1 - дата модификации (начало периода);
  • UPDATE_2 - дата модификации (конец периода);
  • INSERT_1 - дата добавления (начало периода);
  • INSERT_2 - дата добавления (конец периода);
  • 2USER - пользователь;
  • 1USER_ID - идентификатор пользователя;
  • ANONYMOUS - флаг анонимности подписки;
  • CONFIRMED - флаг подтверждения подписки;
  • ACTIVE - флаг активности подписки;
  • FORMAT - формат подписки;
  • RUBRIC - рубрики подписки в виде массива идентификаторов или строки, сформированной по правилам логики фильтра.
Например: array("CONFIRMED"=>"Y", "ACTIVE"=>"Y")
1 - допускаются сложные условия
2 - допускаются сложные условия по полям пользователя ID, LOGIN, NAME, LAST_NAME
arNavStartParams Параметры для постраничной навигации и ограничения количества выводимых элементов. массив вида "Название параметра"=>"Значение", где название параметра

"bShowAll" - разрешить вывести все элементы при постраничной навигации
"iNumPage" - номер страницы при постраничной навигации
"nPageSize" - количество элементов на странице при постраничной навигации

Необязательное. По умолчанию false - не ограничивать выборку. 		8.5.3

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта "Подписка".

Примеры использования

//в какие рубрики отправлять
$aPostRub = array();
$post_rub = CPosting::GetRubricList($post_arr["ID"]);
while($post_rub_arr = $post_rub->Fetch())
    $aPostRub[] = $post_rub_arr["ID"];

//активные и подтвержденные адреса, подписанные на рубрики
$subscr = CSubscription::GetList(
    array("ID"=>"ASC"),
    array("RUBRIC"=>$aPostRub, "CONFIRMED"=>"Y", "ACTIVE"=>"Y",
        "FORMAT"=>$post_arr["SUBSCR_FORMAT"], "EMAIL"=>$post_arr["EMAIL_FILTER"])
);
while(($subscr_arr = $subscr->Fetch()))
    $aEmail[] = $subscr_arr["EMAIL"];


GetRubricArray

Подписка, рассылки>Классы>CSubscriptionGeneral>GetRubricArray (доступен с 3.0.5)

CSubscriptionGeneral::GetRubricArray

array
CSubscription::GetRubricArray(
    int ID
);

Метод возвращает массив идентификаторов рассылок, на которые подписан данный адрес. Метод статический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор подписки. |

Возвращаемые значения

Массив целых чисел, идентификаторы рассылок.

Пример использования

<?
//shows all subscription categories and checks subscribed one
$aSubscrRub = CSubscription::GetRubricArray($ID);
$rub = CRubric::GetList(
    array("LID"=>"ASC", "SORT"=>"ASC", "NAME"=>"ASC"),
    array("ACTIVE"=>"Y", "LID"=>LANG)
);
while($rub->ExtractFields("r_")):
    $bChecked = in_array($r_ID, $aSubscrRub);
?>
<input type="checkbox"
       name="RUB_ID[]"
       value="<?echo $r_ID?>"<?if($bChecked) echo " checked"?>>
<?echo $r_NAME?><br>
<?
endwhile;
?>


GetRubricList

Подписка, рассылки>Классы>CSubscriptionGeneral>GetRubricList (доступен с 3.0.5)

CSubscriptionGeneral::GetRubricList

Описание и параметры

CDBResult
CSubscription::GetRubricList(
    int ID );

Метод возвращает выборку рассылок, на которые подписан данный адрес. Метод статический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор подписки. |

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны некоторые поля объекта "Рассылка". А именно:

  • ID - Идентификатор рассылки;
  • NAME - Название рассылки;
  • SORT - Сортировка в списке;
  • LID - Идентификатор сайта;
  • ACTIVE - Признак активности рассылки (Y/N).
  • VISIBLE - Выводить в списке публичных рассылок (Y/N).

Примеры использования

//array of subscribed categories
function GetRubricArray($ID)
{
    $aSubscrRub = array();
    if($ID>0)
    {
        $subscr_rub = CSubscription::GetRubricList($ID);
        while($subscr_rub_arr = $subscr_rub->Fetch())
            $aSubscrRub[] = $subscr_rub_arr["ID"];
    }
    return $aSubscrRub;
}


GetUserSubscription

Подписка, рассылки>Классы>CSubscriptionGeneral>GetUserSubscription (доступен с 3.0.5)

CSubscriptionGeneral::GetUserSubscription

array
CSubscription::GetUserSubscription();

Метод возвращает массив полей подписки текущего пользователя. Подписка определяется по Email, сохраненному в куках посетителя, либо по Email авторизованного пользователя. Метод статический.

Параметры

Метод не имеет параметров.

Возвращаемые значения

Возвращается массив полей объекта "Подписка". Если подписка посетителя не найдена, то возвращается массив array("ID"=>0, "EMAIL"=>"").

Пример использования

//get current user subscription from cookies
$aSubscr = CSubscription::GetUserSubscription();

//get user's newsletter categories
$aSubscrRub = CSubscription::GetRubricArray(intval($aSubscr["ID"]));

//show subscription form
//.....


IsAuthorized

Подписка, рассылки>Классы>CSubscriptionGeneral>IsAuthorized (доступен с 3.3.2)

CSubscriptionGeneral::IsAuthorized

bool
CSubscription::IsAuthorized(
    int ID
);

Метод проверяет, авторизован ли текущий посетитель для доступа к информации о подписке. Метод статический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор подписки. |

Возвращаемые значения

Если посетитель авторизован для доступа к данной подписке, то возвращается true, иначе false.

Пример использования

//check whether already authorized to show password field
$bShowPass = true;
$aSubscr = CSubscription::GetUserSubscription();
if($aSubscr["ID"] > 0)
{
    //try to authorize user account's subscription
    if($aSubscr["USER_ID"]>0 && !CSubscription::IsAuthorized($aSubscr["ID"]))
        CSubscription::Authorize($aSubscr["ID"], "");
    //check authorization
    if(CSubscription::IsAuthorized($aSubscr["ID"]))
        $bShowPass = false;
}


Update

Подписка, рассылки>Классы>CSubscriptionGeneral>Update (доступен с 3.0.5)

CSubscriptionGeneral::Update

Описание и параметры

mixed
CSubscription::Update(
    int ID,
    array arFields,
    string SITE_ID = SITE_ID
);

Метод изменяет данные подписки. Если изменяется адрес подписки, то метод снимает подтверждение с подписки и генерирует событие для отправки письма с кодом подтверждения подписки (если это явно не запрещено). Если подписка не подтверждена, а массив полей включает в себя правильный CONFIRM_CODE, то подписка подтверждается. Метод нестатический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор подписки. |
arFields | Массив со значениями полей объекта "Подписка". Дополнительно могут быть указаны поля: RUB_ID - массив идентификаторов рассылок, на которые подписывается адрес; SEND_CONFIRM - отправлять ли письмо с кодом подтверждения подписчику при изменениии адреса (Y/N). |
SITE_ID | Идентификатор сайта, по которому определяется шаблон письма о подтверждении подписки. По умолчанию параметр принимает значение текущего сайта. Обязателен при использовании RUB_ID. Если ALL_SITES указан в массиве $arFields, то SITE_ID можно не указывать | 4.0.0

Возвращаемые значения

В случае успешного изменения возвращается true. В противном случает возвращается false, и переменная класса LAST_ERROR содержит сообщение об ошибке (так же возбуждается исключение CMain::ThrowException).

При успешном результате переменная класса LAST_MESSAGE содержит строку-код информационного сообщения. Возможные значения:
"CONF" - подписка подтверждена;
"SENT" - сгенерировано событие для отправки письма с кодом подтверждения.

Примеры использования

$subscr = new CSubscription;
//confirmation code from letter or confirmation form
if($CONFIRM_CODE <> "" && $ID > 0 && empty($action))
{
    if($str_CONFIRMED <> "Y")
    {
        //subscribtion confirmation
        if($subscr->Update($ID, array("CONFIRM_CODE"=>$CONFIRM_CODE)))
            $str_CONFIRMED = "Y";
        $strWarning .= $subscr->LAST_ERROR;
        $iMsg = $subscr->LAST_MESSAGE;
    }
}

//*************************
//form actions processing
//*************************
if($ID > 0)
{
    if($action == "unsubscribe" && CSubscription::IsAuthorized($ID))
    {
        //unsubscription
        if($subscr->Update($ID, array("ACTIVE"=>"N")))
        {
            $str_ACTIVE = "N";
            $iMsg = "UNSUBSCR";
        }
    }
    if($action == "activate" && CSubscription::IsAuthorized($ID))
    {
        //activation
        if($subscr->Update($ID, array("ACTIVE"=>"Y")))
        {
            $str_ACTIVE = "Y";
            $iMsg = "ACTIVE";
        }
    }
}


Поля CSubscriptionGeneral

Подписка, рассылки>Классы>CSubscriptionGeneral>Поля CSubscriptionGeneral

CSubscriptionGeneral::Поля CSubscriptionGeneral

Класс CSubscriptionGeneral использует следующие поля при работе с объектом "Подписка":

Название поля | Описание | Тип | Обяз.
ID | Идентификатор подписки. | int | Да.
DATE_INSERT | Дата добавления записи. | datetime |
DATE_UPDATE | Дата модификации записи. | datetime |
USER_ID | Идентификатор пользователя, которому принадлежит подписка. Если NULL, то подписка анонимна. | int |
ACTIVE | Признак активности подписки (Y/N). Если подписка не активна, то рассылка на этот адрес не производится. | char(1) |
EMAIL | Email подписки (уникальный). | string(255) | Да.
FORMAT | Предпочтительный формат выпуска (text/html). | string(4) |
CONFIRM_CODE | Код подтверждения подписки (пароль). | string(8) |
CONFIRMED | Признак подтверждения подписки (Y/N). | char(1) |
DATE_CONFIRM | Дата отправки кода подтверждения подписки. | datetime |


Класс CSubscription

CSubscription - класс для работы с подписками на рассылки.

Методы класса

Метод | Описание | C версии
GetByEmail | Метод выбирает подписку по уникальному Email. | 3.2.0


GetByEmail

Подписка, рассылки>Классы>CSubscription>GetByEmail (доступен с 3.2.0)

CSubscription::GetByEmail

Описание и параметры

CDBResult
CSubscription::GetByEmail(
    string email
);

Метод выбирает подписку по уникальному Email. Метод статический.

Параметры

Параметр | Описание | C версии
email | Уникальный Email подписчика. |

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта "Подписка".

Примеры использования

//new or existing subscription?
//ID==0 indicates new subscription
if(strlen($sf_EMAIL) > 0 || $ID > 0)
{
    if($ID > 0)
        $subscription = CSubscription::GetByID($ID);
    else
        $subscription = CSubscription::GetByEmail($sf_EMAIL);

    if($subscription->ExtractFields("str_"))
        $ID = (integer)$str_ID;
    else
        $ID=0;
}
else
    $ID = 0;


Класс CRubric

CRubric - класс для работы с рубриками подписки.

Методы класса

Метод | Описание | С версии
Add | Метод добавляет рассылку. | 5.0.2
Delete | Метод удаляет рассылку. | 5.0.2
GetByID | Метод выбирает одну рассылку по ее идентификатору. | 5.0.2
GetList | Метод возвращает список рассылок по фильтру. | 5.0.2
GetSubscriptionCount | Метод возвращает количество подписчиков на указанную рассылку. Учитываются как подтвержденные, так и неподтвержденные подписчики. | 5.0.2
Update | Метод модифицирует рассылку. | 5.0.2


Add

Подписка, рассылки>Классы>CRubric>Add (доступен с 5.0.2)

CRubric::Add

Описание и параметры

int
CRubric::Add(
    array arFields
);

Метод добавляет рассылку. При этом если рассылка активна и является автоматической, то в случае соответствующей настроки модуля (метод генерации не cron) добляется агент для генерации выпусков. Метод нестатический.

Параметры

Параметр | Описание | C версии
arFields | Массив со значениями полей объекта "Рассылка". |

Требования к полям, передаваемым в arFields

  • NAME - не должно быть пустым.
  • LID - не должно быть пустым и должно содержать корректный идентификатор сайта.
  • DAYS_OF_MONTH - может быть пустым или должно содержать корректный список дней месяца вида (DD|DD-DD)[[,(DD|DD-DD)],...].
  • DAYS_OF_WEEK - может быть пустым или должно содержать корректный список дней недели вида DD[[,DD],...].
  • TIMES_OF_DAY - может быть пустым или должно содержать корректный список времен вида HH:MM[[,HH:MM],...].
  • TEMPLATE - может быть пустым или должно содержать корректный идентификатор шаблона.
  • LAST_EXECUTED - может быть пустым или должно содержать корректное значение времени.
  • AUTO - если задано и равно "Y", то должны быть заданы DAYS_OF_MONTH или DAYS_OF_WEEK, а также TIMES_OF_DAY и LAST_EXECUTED. И еще поле FROM_FIELD должно содержать правильный адрес e-mail (см. функцию check_email).

Возвращаемые значения

В случае успешного добавления возвращается ID рассылки. В противном случает возвращается false, и переменная класса LAST_ERROR содержит сообщение об ошибке.

Примеры использования

$rubric = new CRubric;
$arFields = Array(
    "ACTIVE" => ($ACTIVE <> "Y"? "N":"Y"),
    "NAME" => $NAME,
    "SORT" => $SORT,
    "DESCRIPTION" => $DESCRIPTION,
    "LID" => $LID
);
$ID = $rubric->Add($arFields);
if($ID == false)
    echo $rubric->LAST_ERROR;


Delete

Подписка, рассылки>Классы>CRubric>Delete (доступен с 5.0.2)

CRubric::Delete

mixed
CRubric::Delete(
    int ID
);

Метод удаляет рассылку. Метод нестатический.

Примечание. Метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.

Параметры

Параметр | Описание | C версии
ID | Идентификатор рассылки. |

Возвращаемые значения

В случае успешного удаления возвращается результат типа CDBResult. В противном случает возвращается false.

Пример использования

if (($res = CRubric::Delete($ID)) &&
     $res->AffectedRowsCount() < 1 ||
     $res == false)
    echo "Error";


GetByID

Подписка, рассылки>Классы>CRubric>GetByID (доступен с 5.0.2)

CRubric::GetByID

CDBResult
CRubric::GetByID(
    int ID
);

Метод выбирает одну рассылку по ее идентификатору. Метод статический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор рассылки. |

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта "Рассылка".

Пример использования

if($ID>0)
{
    $rubric = CRubric::GetByID($ID);
    if($rubric->ExtractFields("str_"))
        echo $str_NAME;
}


GetList

Подписка, рассылки>Классы>CRubric>GetList (доступен с 5.0.2)

CRubric::GetList

Описание и параметры

CDBResult
CRubric::GetList(
    array aSort = Array(),
    array aFilter = Array()
);

Метод возвращает список рассылок по фильтру. Метод статический.

Параметры

Параметр Описание С версии
aSort Массив, содержащий признак сортировки в виде наборов "название поля"=>"направление".

Название поля может принимать значение:
  • NAME - название рассылки;
  • LID - идентификатор сайта;
  • ACT - активность рассылки;
  • SORT - сортировка в списке;
  • ID - идентификатор рассылки;
  • AUTO - флаг генерации;
  • VISIBLE - публичность рассылки;
  • LAST_EXECUTED - время последней генерации.
Направление сортировки может принимать значение:
  • ASC - по возрастанию;
  • DESC - по убыванию.
Пример:
array("LID"=>"ASC", "NAME"=>"DESC")
aFilter Массив, содержащий фильтр в виде наборов "название поля"=>"значение фильтра".

Название поля может принимать значение:
  • LID - идентификатор сайта;
  • ACTIVE - активность рассылки;
  • AUTO - флаг генерации;
  • VISIBLE - публичность рассылки;
  • ID - идентификатор рассылки.
  • NAME - название рассылки.
Пример:
array("LID"=>SITE_ID, "ACTIVE"=>"Y")

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта "Рассылка".

Примеры использования

<?
//get site's newsletter categories
$rub = CRubric::GetList(array("SORT"=>"ASC", "NAME"=>"ASC"), array("ACTIVE"=>"Y", "LID"=>LANG));
while($rub->ExtractFields("r_")):
?>
    <input type="checkbox" name="sf_RUB_ID[]" value="<?echo $r_ID?>"><?echo $r_NAME?><br>
<?
endwhile;
?>

<?
// Вывод рубрик можно производить таким способом
$arOrder = Array("SORT"=>"ASC", "NAME"=>"ASC");
$arFilter = Array("ACTIVE"=>"Y", "LID"=>LANG);
$rsRubric = CRubric::GetList($arOrder, $arFilter);
$arRubrics = array();
while($arRubric = $rsRubric->GetNext())
{
 $arResult["RUBRIC_LIST"][] = $arRubric;
}
?>


GetSubscriptionCount

Подписка, рассылки>Классы>CRubric>GetSubscriptionCount (доступен с 5.0.2)

CRubric::GetSubscriptionCount

int
CRubric::GetSubscriptionCount(
    int ID
);

Метод возвращает количество подписчиков на указанную рассылку. Учитываются как подтвержденные, так и неподтвержденные подписчики. Метод статический.

Параметры

Параметр | Описание | C версии
ID | Идентификатор рассылки. |

Возвращаемые значения

целое число, равное количеству подписчиков рассылки. Если подписка с заданным идентификатором не существует, то возвращается 0.

Пример использования

<?
//get site's newsletter categories
$rub = CRubric::GetList(array("SORT"=>"ASC", "NAME"=>"ASC"), array("ACTIVE"=>"Y", "LID"=>LANG));
while($rub->ExtractFields("r_")):
?>
    <input type="checkbox" name="sf_RUB_ID[]" value="<?echo $r_ID?>">
    <?echo $r_NAME?> (<?echo CRubric::GetSubscriptionCount($r_ID);?>)<br>
<?
endwhile;
?>


Update

Подписка, рассылки>Классы>CRubric>Update (доступен с 5.0.2)

CRubric::Update

Описание и параметры

bool
CRubric::Update(
    int ID,
    array arFields
);

Метод модифицирует рассылку. Метод нестатический.

Параметры

Параметр | Описание | С версии
ID | Идентификатор рассылки. |
arFields | Массив со значениями полей объекта "Рассылка". |

Возвращаемые значения

В случае успешного изменения возвращается true. В противном случает возвращается false, и переменная класса LAST_ERROR содержит сообщение об ошибке.

Примеры использования

$rubric = new CRubric;
$arFields = Array(
    "ACTIVE" => ($ACTIVE <> "Y"? "N":"Y"),
    "NAME" => $NAME,
    "SORT" => $SORT,
    "DESCRIPTION" => $DESCRIPTION,
    "LID" => $LID
);
if($ID>0)
{
    if(!$rubric->Update($ID, $arFields))
        echo $rubric->LAST_ERROR;
}


Поля CRubric

Подписка, рассылки>Классы>CRubric>Поля CRubric

CRubric::Поля CRubric

Класс CRubric использует следующие поля при работе с объектом "Рассылка":

Название поля | Описание | Тип | Обяз.
ID | Идентификатор рассылки | int | Да.
LID | Идентификатор сайта | char(2) | Да.
NAME | Название рассылки | string(100) | Да.
DESCRIPTION | Описание рассылки для подписчиков | text |
SORT | Сортировка в списке | int |
ACTIVE | Признак активности рассылки (Y/N) | char(1) |
VISIBLE | Показывать рассылку в списке публичных или нет (Y/N) | char(1) |
AUTO | Признак того, что выпуски рассылки генерируются автоматически (Y/N) | char(1) |
LAST_EXECUTED | Время последней генерации выпуска. | datetime |
DAYS_OF_MONTH | Список дней месяца для генерации выпуска. | string(100) |
DAYS_OF_WEEK | Список дней недели для генерации выпуска. | string(15) |
TIMES_OF_DAY | Список времен дня для генерации выпуска. | string(100) |
TEMPLATE | Относительный путь к каталогу шаблона. | string(100) |
FROM_FIELD | Поле письма "От кого". Может использоваться в шаблоне генерации выпуска. | string(255) |


Класс CPostingTemplate

CPostingTemplate - класс для работы с шаблонами генерации выпусков подписки.

Методы класса

Метод | Описание | C версии
GetList | Метод возвращает список шаблонов. | 4.0.5
GetByID | Метод возвращает шаблон по его идентификатору (относительному пути). | 4.0.5
IsExists | Метод проверяет существование каталога шаблона. | 4.0.5
Execute | Метод выбирает шаблон для генерации выпуска рассылки в соответствии с расписанием. | 4.0.5
AddPosting | Метод генерации выпуска на основании шаблона. | 4.0.5


AddPosting

Подписка, рассылки>Классы>CPostingTemplate>AddPosting (доступен с 4.0.5)

CPostingTemplate::AddPosting

Описание и параметры

void
CPostingTemplate::AddPosting(
    array arRubric
);

Метод генерации выпуска на основании шаблона. Метод статический.

Сначала ищется и подключается языковой файл шаблона. Поиск осуществляется по пути <шаблон>>/lang/<идентификатор языка сайта к которому привязана рассылка>/template.php. Затем исполняется (подключается файл <шаблон>>/lang/template.php) шаблон. Весь вывод шаблона становится телом письма, а массив возвращаемый из него становится полями выпуска.

Если шаблон вернул не массив, а false, то выпуск не будет создан. При этом отметка времени о формировании будет сделана.

Если в этом массиве есть элемент FILES, к выпуску добавляются вложения. Элементами этого массива должны быть массивы формата:

Array(
    "name" => "название файла",
    "size" => "размер",
    "tmp_name" => "временный путь на сервере",
    "type" => "тип загружаемого файла");
Массив такого вида может быть сформирован с помощью функии CFile::MakeFileArray.

А если в этом массиве есть элемент DO_NOT_SEND и его значение равно "Y", то выпуск не будет отправлен. Может быть использовано для отладки генерации или премодерации автоматических выпусков.

Параметры

Параметр | Описание | C версии
arRubric | Массив со значениями полей объекта "Рассылка". и дополнительными полями: SITE_ID - идентификатор сайта рассылки; START_TIME - время предыдущего запуска шаблона в формате "FULL" текущего сайта; END_TIME - время текущего запуска шаблона в формате "FULL" текущего сайта. |

Возвращаемые значения

Нет.

Примеры использования

$rubrics = CRubric::GetList(array(), array("ID"=>$ID));
if($arRubric=$rubrics->Fetch())
{
    $arRubric["START_TIME"] = $START_TIME;
    $arRubric["END_TIME"] = $END_TIME;
    $arRubric["SITE_ID"] = $arRubric["LID"];
    CPostingTemplate::AddPosting($arRubric);
}


Execute

Подписка, рассылки>Классы>CPostingTemplate>Execute (доступен с 4.0.5)

CPostingTemplate::Execute

string
CPostingTemplate::Execute();

Метод выбирает шаблон для генерации выпуска рассылки в соответствии с расписанием.

Сначала делается выборка всех рассылок отмеченных как активные и автоматические. Затем для каждой из них выполняется проверка на необходимость генерации выпуска. Как только найдена такая рассылка для нее вызывается метод CPostingTemplate::AddPosting и на этом функция Execute завершает свою работу.

Этот метод предназначен для вызова из сценария cron'а или агента. Метод статический.

Параметры

Метод не имеет параметров.

Возвращаемые значения

Если была найдена хотя бы одна активная и автоматическая рассылка, то возвращается строка для вызова из агента, иначе возвращается пустая строка.

Пример использования в сценарии PHP для cron'а

#!/usr/bin/php
<?php
//Здесь необходимо указать ваш DOCUMENT_ROOT!
$_SERVER["DOCUMENT_ROOT"] = "/opt/www/html";
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
set_time_limit(0);
define("LANG", "ru");
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if (CModule::IncludeModule("subscribe"))
    CPostingTemplate::Execute();
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?>


GetByID

Подписка, рассылки>Классы>CPostingTemplate>GetByID (доступен с 4.0.5)

CPostingTemplate::GetByID

array
CPostingTemplate::GetByID(
    string path = ""
);

Метод возвращает шаблон по его идентификатору (относительному пути). Метод статический.

Параметры

Параметр | Описание | C версии
path | Относительный путь к каталогу шаблона. |

Возвращаемые значения

Возвращается массив формируемый в файле description.php дополненный элементом "path" равным относительному пути к каталогу шаблона.

Пример файла description.php

<?
$arTemplate =
    Array(
    "NAME"=>"Дайджест новостей",
    "DESCRIPTION"=>"Шаблон генерации дайджеста новостей."
    );
?>


GetList

Подписка, рассылки>Классы>CPostingTemplate>GetList (доступен с 4.0.5)

CPostingTemplate::GetList

array
CPostingTemplate::GetList();

Метод возвращает список шаблонов. Метод статический.

Параметры

Метод не имеет параметров.

Возвращаемые значения

Возвращается массив относительных путей к подкаталогам каталога /bitrix/php_interface/subscribe/templates.

Пример использования

<?
//get template directories
$arTemplates = CPostingTemplate::GetList();
foreach($arTemplates as $template_dir):
?>
    <p><?echo $template_dir?></p>
<?
endforeach;
?>


IsExists

Подписка, рассылки>Классы>CPostingTemplate>IsExists (доступен с 4.0.5)

CPostingTemplate::IsExists

bool
CPostingTemplate::IsExists(
    string path = ""
);

Метод проверяет существование каталога шаблона. Метод статический.

Параметры

Параметр | Описание | C версии
path | Относительный путь к каталогу шаблона. |

Возвращаемые значения

true, если каталог шаблона существует, и false в противном случае.

Пример использования

<?
if(!CPostingTemplate::IsExists("bitrix/php_interface/subscribe/templates/news"))
    echo "Указанный шаблон не существует.";
?>


События

Событие | Вызывается | Метод | С версии
BeforePostingSendMail | перед отправкой выпуска каждому конкретному адресату. | CPostingGeneral::SendMessage | 6.0.1
OnEventMessageDelete | при удалении сообщения. | subscribe::UnInstallDB | 6.5.4
OnBeforeSubscriptionDelete | перед удалением подписки. | CSubscriptionGeneral::Delete | 14.5.1
OnAfterSubscriptionDelete | после удаления подписки. | CSubscriptionGeneral::Delete | 14.5.1
OnStartSubscriptionUpdate | при обновлении подписки. | CSubscriptionGeneral::CheckFields | 14.5.1
OnBeforeSubscriptionUpdate | перед обновлением подписки. | CSubscriptionGeneral::CheckFields | 14.5.1
OnStartSubscriptionAdd | при добавлении подписки. | CSubscriptionGeneral::CheckFields | 14.5.1
OnBeforeSubscriptionAdd | перед добавлением подписки. | CSubscriptionGeneral::CheckFields | 14.5.1


BeforePostingSendMail

Описание и параметры

функция-обработчик(
 array arFields
);
Событие "BeforePostingSendMail" вызывается перед отправкой выпуска из метода CPosting::SendMessage.

Параметры

Параметр Описание
arFields Массив следующего содержания:
  • POSTING_ID - идентификатор выпуска.
  • EMAIL - адрес на который будет отправлен выпуск.
  • SUBJECT - заголовок письма (в кодированном виде, если установлена соответсветствующая настройка модуля).
  • BODY - тело письма уже отформатированное в соответствии со стандартом MIME.
  • HEADER - служебные заголовки.
  • EMAIL_EX - расширенная информация о получателе, см. Поля CPosting.

Данный обработчик должен вернуть массив аналогичного содержания. Этот массив будет передан в качестве аргумента следующему обработчику. Проверка целостности результата обработчика в модуле не производится.

Если обработчик вернет не массив, то отправка письма выполняться не будет. Однако в случае возврата false письмо будет считаться не отправленным, иначе отправка будет отмечена как успешная.

Смотрите также

  • CPosting::SendMessage
  • Обработка событий

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("subscribe", "BeforePostingSendMail", Array("MyClass", "BeforePostingSendMailHandler"));

class MyClass
{
    // создаем обработчик события "BeforePostingSendMail"
    function BeforePostingSendMailHandler($arFields)
    {
        $USER_NAME = "Подписчик";
        //Попробуем найти подписчика.
        $rs = CSubscription::GetByEmail($arFields["EMAIL"]);
        if($ar = $rs->Fetch())
        {
            if(intval($ar["USER_ID"]) > 0)
            {
                $rsUser = CUser::GetByID($ar["USER_ID"]);
                if($arUser = $rsUser->Fetch())
                {
                    $USER_NAME = $arUser["NAME"]." ".$arUser["LAST_NAME"];
                }
            }
        }
        $arFields["BODY"] = str_replace("#NAME#", $USER_NAME, $arFields["BODY"]);
        return $arFields;
    }
}
?>


Для разработчиков

Описание

Перед использованием модуля Поиск необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?
if(CModule::IncludeModule("search"))
{
    //здесь можно использовать функции модуля
}
?>

Работа модуля поиска сводится к предварительному индексированию и последующей выдаче информации сайте по запросу пользователя. Индексирование заключается в сохранении времени изменения, модуля-владельца, кода элемента, языка, web-адреса, заголовка, текста и двух произвольных параметров индексируемого элемента, а так же списка кодов групп пользователей, которые имеют доступ на чтение (как минимум) к данному элементу. Поиск заключается в выдаче списка результатов, удовлетворяющих введенной строке запроса (обрабатывается с учётом языка запросов), а так же набору установленных ограничений (модуль-владелец, код элемента, сайт, два произвольных параметра).

Алгоритм работы модуля поиска таков, что он не имеет никакой информации по характеру и структуре данных других модулей. При индексации модули по запросу сами отдают модулю поиска ту информацию, которую необходимо проиндексировать. Передача осуществляется в виде массива заданной структуры. Связь между модулем поиска и другими модулями системы осуществляется через систему сообщений.

Смотрите также:

  • Специальные константы.

Публичные функции и возвращаемые значения

Функция | Описание | С версии
stemming | Возвращает массив неизменных основ слов. | 6.5.0
stemming_default | Функция морфологического анализа текста применяемая по умолчанию. | 6.5.0
stemming_stop_default | Функция определения стоп слова применяемая по умолчанию. | 6.5.0
stemming_letter_default | Функция возвращает алфавит по умолчанию. | 6.5.0
tags_prepare | Возвращает массив тегов. | 6.5.0
InputTags | Возвращает код html для ввода тегов с поддержкой автодополнения. | 6.5.0

Классы модуля поиска

Класс | Описание | С версии
CSearch | Класс для индексирования сайта и осуществления поиска по индексу. | 3.0.1
CSearchCustomRank | Класс поддержки правил сортировки. | 4.1.2
CSiteMap | Класс поддержки Google Sitemap. | 4.0.12
CSearchTags | Класс поддержки тегов. | 6.5.0

События модуля поиска

Событие | Описание | С версии
BeforeIndex | Вызывается перед индексацией элемента. | 5.1.0
OnSearch | Вызывается перед выполнением поисковых запросов. | 3.0.4
OnReIndex | Вызывается при построении поискового индекса. | 3.0.4
OnSearchGetFileContent | Вызывается по время переиндексации данных главного модуля. | 6.5.6
OnSearchGetURL | Вызывается при форматировании элемента в результатах поиска. | 4.0.0
OnSearchGetTag | Вызывается при разборе строки тегов. | 7.1.2
OnBeforeFullReindexClear | Вызывается в начале первого шага полной переиндексации, непосредственно перед удалением всех данных поискового индекса. | 8.0.4
OnBeforeIndexDelete | Вызывается перед удалением части поискового индекса. | 8.0.4
OnBeforeIndexUpdate | Вызывается перед обновлением поискового индекса. | 8.0.4
OnAfterIndexAdd | Вызывается после добавления новых данных в поисковый индекс. | 8.0.4
OnSearchCheckPermissions | Вызывается при построении поискового запроса. | 8.0.4

Компоненты 2.0

Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Форма поиска | search.form | Служит для вывода формы поиска.
Стандартная страница поиска | search.page | Служит для создания страницы поиска.
Облако тегов | search.tags.cloud | Предназначен для вывода облака тегов.
Форма ввода тегов | search.tags.input | Предназначен для вывода формы ввода тегов.
Поиск по заголовкам | search.title | Предназначен для вывода поля поиска по заголовкам.
Поле ввода поискового запроса | search.suggest.input | Cлужит для вывода поля ввода поискового запроса с подсказкой.


Константы

  • CACHED_b_search_tags
  • CACHED_b_search_tags_len

Имя константы | Тип | Описание
CACHED_b_search_tags | А Т И С | Кешировать в управляемом кеше выпадающий список тегов или нет. Если равно false, то кеширование не производится. По умолчанию задается значение 3600, что означает кеширование на 1 час.
CACHED_b_search_tags_len | А Т И С | Максимально допустимая длина маски поиска тегов при которой будет включено управляемое кеширование. По умолчанию равно 2, что означает создание в пределе около 1000 файлов (все 2-х буквенные комбинации).

Обозначения типов констант:

  • А (авто) - константа инициализируется при подключении модуля автоматически
  • Т (страница) - константу можно определить на любой публичной странице до подключения пролога
  • И (инициализация) - константу можно определить в одном из следующих файлов:
    • /bitrix/php_interface/init.php - дополнительные параметры портала
    • /bitrix/php_interface/ID сайта/init.php - дополнительные параметры сайта
  • С (соединение с базой) - константу можно определить только в файле хранящим параметры соединения к базе: /bitrix/php_interface/dbconn.php


Классы модуля

Класс | Описание | С версии
CSearch | Класс для индексирования сайта и осуществления поиска по индексу. | 3.0.1
CSearchCustomRank | Класс поддержки правил сортировки. | 4.1.2
CSearchTags | Класс поддержки тегов. | 6.5.0
CSiteMap | Класс поддержки Google Sitemap. | 4.0.12


Класс CSearch

Класс для индексирования сайта и осуществления поиска по индексу

Методы класса

Метод | Описание | С версии
CSearch | Конструктор класса CSearch. | 3.0.4
Search | Возвращает записи индекса, которые удовлетворяют заданной строке запроса и указанным параметрам, а так же доступны на просмотр для текущего посетителя (в соответствии с его уровнем доступа) | 3.3.2
ChangeIndex | Метод изменяет проиндексированную информацию данного модуля. | 3.0.4
ChangePermission | Метод изменяет права на доступ к проиндексированной информации данного модуля. | 3.0.4
[link=169822]ChangeSite[/link] | Метод изменяет привязку проиндексированной информации к сайтам. | 8.0.4
DeleteIndex | Метод удаляет из индекса поиска указанную информацию. | 3.0.4
Index | Метод переиндексирует какую-то одиночную позицию (сообщение на форуме, новость и т.п.), причем комбинация (MODULE_ID, ITEM_ID) используется для определения переиндексируемого документа. | 3.0.1
ReindexModule | Метод инициирует переиндексацию указанного модуля. | 3.0.4
ReIndexAll | Пошаговый метод переиндексации. | 3.0.4
ReIndexFile | Переиндексация статического файла. | 3.0.1
Fetch | Возвращает следующий найденный элемент. | 4.0.0


Конструктор CSearch

Поиск>Классы>CSearch>Конструктор CSearch (доступен с 3.0.4)

CSearch::Конструктор CSearch

Описание и параметры

CDBResult
CSearch(
    string strQuery,
    string LID = false,
    string MODULE_ID = false,
    string ITEM_ID = false,
    string PARAM1 = false,
    string PARAM2 = false,
    array aSort = array(),
    array aParamsEx = array(),
    bool bTagsCloud = false
);

Конструктор класса CSearch возвращает записи индекса, которые удовлетворяют заданной строке запроса и указанным параметрам, а так же доступны на просмотр для текущего посетителя (в соответствии с его уровнем доступа).

Примечание: метод устарел, лучше воспользоваться методом CSearch::Search. Это показано в приведенном ниже примере.

Смотрите также

  • CSearch::Search

Примеры использования

<?
$q = "жареная рыба или селедка";
$module_id = "forum";
//Эту строку заменяем
//$obSearch = new CSearch($q, LANG, $module_id);
// на следующую:
$obSearch = new CSearch;
$obSearch->Search(array(
    "QUERY" => $q,
    "SITE_ID" => LANG,
    "MODULE_ID" => $module_id,
));
if ($obSearch->errorno!=0):
    ?>
    <font class="text">В поисковой фразе обнаружена ошибка:</font>
    <?echo ShowError($obSearch->error);?>
    <font class="text">Исправьте поисковую фразу и повторите поиск.</font>
    <?
else:
    while($arResult = $obSearch->GetNext())
    {
    ?>
        <a href="<?echo $arResult["URL"]?>"><?echo $arResult["TITLE_FORMATED"]?></a>
        <?echo $arResult["BODY_FORMATED"]?>
        <hr size="1" color="#DFDFDF">
    <?
    }
endif;
?>


ChangeIndex

Поиск>Классы>CSearch>ChangeIndex (доступен с 3.0.4)

CSearch::ChangeIndex

Описание и параметры

void
CSearch::ChangeIndex(
    string MODULE_ID,
    array arFields,
    string ITEM_ID = false,
    string PARAM1 = false,
    string PARAM2 = false,
    string SITE_ID = false
);

Метод изменяет проиндексированную информацию данного модуля. Метод статический.

Параметры метода

Параметр | Описание
MODULE_ID | Код модуля, проиндексированную информацию которого необходимо поменять.
arFields Массив новых значений для поискового индекса. Массив должен иметь следующую структуру:
  • "DATE_CHANGE" => дата изменения индексируемого элемента,
  • "URL" => адрес индексируемого элемента,
  • "TITLE" => заголовок индексируемого элемента,
  • "BODY" => индексируемый текст,
  • "SEARCHABLE_CONTENT" => индекс,
  • "PARAM1" => первый параметр,
  • "PARAM2" => второй параметр,
  • "PERMISSIONS" => массив кодов групп, члены которых имеют право на чтение индексируемого элемента,
  • "SITE_ID" => ассоциативный массив привязки к сайтам. Ключи - идентификаторы сайтов, а их значения пути к элементу.
Атрибуты, значения которых не изменились, можно опустить.
ITEM_ID | Код элемента, индекс которого необходимо изменить. Если этот параметр равен false, то ограничение по коду элемента не устанавливается (изменяются индексы элементов с любыми кодами). Не обязательный параметр, по умолчанию равен false.
PARAM1 | Первый параметр элемента, ограничивающий набор проиндексированных элементов, индексы которых необходимо поменять. Если этот параметр равен false, то ограничение по первому параметру элемента не устанавливается. Не обязательный параметр, по умолчанию равен false.
PARAM2 | Второй параметр элемента, ограничивающий набор проиндексированных элементов, индексы которых необходимо поменять. Если этот параметр равен false, то ограничение по второму параметру элемента не устанавливается. Не обязательный параметр, по умолчанию равен false.
SITE_ID Сайт проиндексированого элемента, ограничивающий набор элементов, индекс которых необходимо поменять. Если этот параметр равен false, то ограничение по сайту элемента не устанавливается. Необязательный параметр, по умолчанию равен false.

До версии 4.0.6 параметр назывался LID.

Примеры использования

При изменении заголовка темы форума необходимо соответствующим образом изменить индекс
<?
$new_title = "Новый заголовок темы";
$fid = 5;    // Код форума
$tid = 128;    // Код темы
CSearch::ChangeIndex("forum",
    array(
        "TITLE" => $new_title
    ),
    false, $fid, $tid);
?>


ChangePermission

Поиск>Классы>CSearch>ChangePermission (доступен с 3.0.4)

CSearch::ChangePermission

Описание и параметры

void
CSearch::ChangePermission(
    string MODULE_ID,
    array arGroups,
    string ITEM_ID = false,
    string PARAM1 = false,
    string PARAM2 = false,
    string SITE_ID = false,
    string PARAMS = false
);

Метод изменяет права на доступ к проиндексированной информации данного модуля. Метод статический.

Параметры метода

Параметр | Описание | С версии
MODULE_ID | Код модуля, права на доступ к информации которого необходимо поменять. |
arGroups | Массив кодов групп, которые имеют право на чтение проиндексированной информации. |
ITEM_ID | Код элемента, права на доступ к которому необходимо поменять. Если этот параметр равен false, то ограничение по коду элемента не устанавливается (изменяются права на доступ к элементу с любыми кодами). Не обязательный параметр, по умолчанию равен false. |
PARAM1 | Первый параметр элемента, ограничивающий набор проиндексированных элементов, права на доступ к которым необходимо поменять. Если этот параметр равен false, то ограничение по первому параметру элемента не устанавливается. Не обязательный параметр, по умолчанию равен false. |
PARAM2 | Второй параметр элемента, ограничивающий набор проиндексированных элементов, права на доступ к которым необходимо поменять. Если этот параметр равен false, то ограничение по второму параметру элемента не устанавливается. Не обязательный параметр, по умолчанию равен false. |
SITE_ID | Сайт проиндексированного элемента, ограничивающий набор элементов, права на доступ к которым необходимо поменять. Если этот параметр равен false, то ограничение по сайту элемента не устанавливается. Необязательный параметр, по умолчанию равен false. До версии 4.0.6 параметр назывался LID. |
PARAMS | Необязательный параметр, по умолчанию равен false. | 10.0.0

Примеры использования

Изменяем права на доступ к проиндексированным сообщениям данного форума при изменении прав на доступ к этому форуму
<?
$Forum_ID = 5;
$arGroups = CForum::GetAccessPermissions($Forum_ID);
$arGPerm = Array();
for ($i=0; $i < count($arGroups); $i++)
{
    if ($arGroups[$i][1]>="E")
    {
        $arGPerm[] = $arGroups[$i][0];
        if($arGroups[$i][0]==2)
            break;
    }
}
CSearch::ChangePermission("forum", $arGPerm, false, $Forum_ID);
?>


ChangeSite

Поиск>Классы>CSearch>ChangeSite (доступен с 8.0.4)

CSearch::ChangeSite

Описание и параметры

void
CSearch::ChangePermission(
    string MODULE_ID,
    array arSite,
    string ITEM_ID = false,
    string PARAM1 = false,
    string PARAM2 = false,
    string SITE_ID = false
);

Метод изменяет привязку проиндексированной информации к сайтам. Метод статический.

Параметры метода

Параметр | Описание
MODULE_ID | Код модуля, права на доступ к информации которого необходимо поменять.
arsite | Ассоциативный массив привязки к сайтам.Ключи - идентификаторы сайтов, а их значения пути к проиндексированной информации.
ITEM_ID | Код элемента, права на доступ к которому необходимо поменять. Если этот параметр равен false, то ограничение по коду элемента не устанавливается (изменяются права на доступ к элементу с любыми кодами). Не обязательный параметр, по умолчанию равен false.
PARAM1 | Первый параметр элемента, ограничивающий набор проиндексированных элементов, права на доступ к которым необходимо поменять. Если этот параметр равен false, то ограничение по первому параметру элемента не устанавливается. Не обязательный параметр, по умолчанию равен false.
PARAM2 | Второй параметр элемента, ограничивающий набор проиндексированных элементов, права на доступ к которым необходимо поменять. Если этот параметр равен false, то ограничение по второму параметру элемента не устанавливается. Не обязательный параметр, по умолчанию равен false.
SITE_ID | Сайт проиндексированного элемента, ограничивающий набор элементов, права на доступ к которым необходимо поменять. Если этот параметр равен false, то ограничение по сайту элемента не устанавливается. Необязательный параметр, по умолчанию равен false.

Примеры использования

Изменяем пути к проиндексированным элементам инфоблока с идентификатором 5.
<?
$IBLOCK_ID = 5;
CSearch::ChangeSite("iblock", array("s1" => "=/new/localation/#ID#/"), false, $IBLOCK_ID);
?>


DeleteIndex

Поиск>Классы>CSearch>DeleteIndex (доступен с 3.0.4)

CSearch::DeleteIndex

Описание и параметры

void
CSearch::DeleteIndex(
    string MODULE_ID,
    string ITEM_ID = false,
    string PARAM1 = false,
    string PARAM2 = false,
    string SITE_ID = false
);

Метод удаляет из индекса поиска указанную информацию. Метод статический.

Параметры метода

Параметр | Описание
MODULE_ID | Код модуля, индексацию информации которого необходимо удалить .
ITEM_ID | Код элемента, индексацию информации которого необходимо удалить. Если этот параметр равен false, то ограничение по коду элемента не устанавливается (удаляется индексация информации с любыми кодами). Не обязательный параметр, по умолчанию равен false.
PARAM1 | Первый параметр элемента, ограничивающий набор проиндексированных элементов, индексацию информации которых необходимо удалить. Если этот параметр равен false, то ограничение по первому параметру элемента не устанавливается. Не обязательный параметр, по умолчанию равен false.
PARAM2 | Второй параметр элемента, ограничивающий набор проиндексированных элементов, индексацию информации которых необходимо удалить. Если этот параметр равен false, то ограничение по второму параметру элемента не устанавливается. Не обязательный параметр, по умолчанию равен false.
SITE_ID | Сайт проиндексированого элемента, ограничивающий набор элементов, индексацию информации которых необходимо удалить. Если этот параметр равен false, то ограничение по сайту элемента не устанавливается. Необязательный параметр, по умолчанию равен false. До версии 4.0.6 параметр назывался LID.

Примеры использования

При удалении файла с диска необходимо удалить так же его индекс поиска, если он есть
<?
$path = "/ru/my_files/file.php";
if (unlink($_SERVER["DOCUMENT_ROOT"].$path))
{
    if (CModule::IncludeModule("search"))
        CSearch::DeleteIndex("main", $path);
}
?>


Fetch

Поиск>Классы>CSearch>Fetch (доступен с 4.0.0)

CSearch::Fetch

array
CSearch::Fetch(
);

Возвращает следующий найденный элемент. Нестатический метод.

Если поле результата URL начинается с символа "=", то вызываются обработчики события OnSearchGetURL.

Параметры метода

Нет параметров.

Возвращаемое значение

Смотри описание возвращаемого значения метода CSearch::Search. Если достигнут конец выборки, возвращается false.


Index

Поиск>Классы>CSearch>Index (доступен с 3.0.1)

CSearch::Index

Описание и параметры

int
CSearch::Index(
    string MODULE_ID,
    string ITEM_ID,
    array arFields,
    bool bOverWrite = false,
    string SEARCH_SESS_ID = ''
);

Метод переиндексирует какую-то одиночную позицию (сообщение на форуме, новость и т.п.), причем комбинация (MODULE_ID, ITEM_ID) используется для определения переиндексируемого документа. Метод статический.

Вначале индексации вызывается событие BeforeIndex. Затем вычисляется пользовательский вес позиции. И производится собственно переиндексация.

Параметры метода

Параметр | Описание | С версии
MODULE_ID | Код модуля, которому принадлежит индексируемый элемент. |
ITEM_ID | Код индексируемого элемента. |
arFields | Массив свойств индексируемого элемента. |
bOverWrite | Перетирать индекс поиска элемента если элемент уже проиндексирован. Не обязательный параметр, по умолчанию равен false. |
SEARCH_SESS_ID | Служебный параметр, используется при пошаговой переиндексации. | 3.0.6

Примеры использования

<?
CSearch::Index(
    "iblock",
    $ID,
    Array(
        "DATE_CHANGE"=>$arIBlockElement["DATE_CHANGE"],
        "TITLE"=>$arIBlockElement["NAME"],
        "SITE_ID"=>$arSites,
        "PARAM1"=>$arIBlockElement["IBLOCK_TYPE_ID"],
        "PARAM2"=>$IBLOCK_ID,
        "PERMISSIONS"=>$arGroups,
        "URL"=>str_replace("#ID#", $arIBlockElement["ID"], $DETAIL_PAGE_URL),
        "BODY"=>$arIBlockElement["DETAIL_TEXT"],
        "TAGS"=>$arIBlockElement["TAGS"]
    ),
    $bOverWrite
);
?>


ReIndexAll

Поиск>Классы>CSearch>ReIndexAll (доступен с 3.0.4)

CSearch::ReIndexAll

Описание и параметры

mixed
CSearch::ReIndexAll(
    bool bFull = false,
    int max_execution_time = 0,
    array NS = Array(),
    bool clear_suggest = false
);

Метод пошаговой переиндексации. Для того, чтобы модуль был переиндексирован, он должен предоставить соответствующий метод, который должен быть зарегистрирован в системе событий как обработчик события OnReIndex модуля "search". Метод статический.

На завершение работы метода срабатывает или время или "шаг", смотря что раньше "закончится".

Примечание: метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.

Параметры метода

Параметр | Описание | С версии
bFull | Если равен true, то на первом шаге поисковый индекс будет полностью очищен. По умолчанию равен false, что приводит к перестройке индекса только тех элементов, содержимое которых изменилось. |
max_execution_time | Если задан и больше нуля, то как только время выполнения метода превысит значение этого параметра выполнение метода завершится. Данные для начала следующего шага будут возвращены как результат работы метода. | 3.0.6
NS | Хранит состояние процесса индексации (прогресс) на начало шага. | 3.0.6
clear_suggest | Удаляет историю/статистику подсказок для строки поиска. Необязательный параметр, по умолчанию принимает значение false. | 8.6.3

Возвращаемое значение

Метод возвращает массив, если требуется вызвать метод еще раз. Или число проиндексированных элементов, если переиндексация завершена.

Смотрите также

  • OnReIndex

Примеры использования

<?
//Этот пример не является примером пошаговой индексации.
//Для этого надо вызывать метод ReIndexAll только один раз за запуск скрипта.
//А промежуточное состояние (NS) можно сохранять например в файле.

$NS = false;
$NS = CSearch::ReIndexAll(false, 60, $NS);
while(is_array($NS))
    $NS = CSearch::ReIndexAll(false, 60, $NS);
echo $NS;

?>


ReIndexFile

Поиск>Классы>CSearch>ReIndexFile (доступен с 3.0.1)

CSearch::ReIndexFile

Описание и параметры

int
CSearch::ReindexFile(
    string path,
    string SEARCH_SESS_ID=""
);

Метод переиндексирует указанный файл. Метод статический.

Сначала определяется удовлетворяет файл и его размер настройкам модуля поиска. Если одна из проверок не проходит, то возвращается 0. Затем вызываются обработчики события OnSearchGetFileContent модуля "search". После того как один из обработчиков вернет не false, вызов остальных произведен не будет. И наконец вызывается метод CSearch::Index

Параметры метода

Параметр | Описание | С версии
path | Путь относительно корня сайта к переиндексируемому файлу. С версии 12.0.3 если $path не array, то возвращает 0. Рекомендуемый формат: $path = array(SITE_ID, "/path/from/SiteDocRoot"); |
SEARCH_SESS_ID | Служебный параметр, используется при пошаговой переиндексации. | 3.0.6

Возвращаемое значение

Метод возвращает уникальный идентификатор в поисковом индексе в случае успеха и 0 в противном случае.

Смотрите также

  • OnSearchGetFileContent
  • CSearch::Index


ReindexModule

Поиск>Классы>CSearch>ReindexModule (доступен с 3.0.4)

CSearch::ReindexModule

Описание и параметры

void
CSearch::ReindexModule(
    string MODULE_ID,
    bool bFull = false
);

Метод инициирует переиндексацию указанного модуля. Для того, чтобы модуль был переиндексирован, он должен предоставить соответствующий метод, который должен быть зарегистрирован в системе событий как обработчик события OnReIndex модуля "search". Метод статический.

С помощью этого метода невозможно переиндексировать данные модуля "main". Т.к. индексация файлов выполняется не через обработчики событий, а непосредственно модулем поиска. Но можно воспользоваться методом CSearch::ReIndexAll, передав на первом шаге $NS = array("MODULE_ID"=>"main").

Примечание: метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.

Параметры метода

Параметр | Описание
MODULE_ID | Код модуля, переиндексация которого требуется.
bFull | Производить ли полную переиндексацию с очисткой старых поисковых индексов. Не обязательный параметр, по умолчанию равен false.

Смотрите также

  • OnReIndex

Примеры использования

OnReindex.

// регистрируем обработчик события "OnReindex" модуля "search"
RegisterModuleDependences("search", "OnReindex", "my_module", "CMyModule", "OnReindex");

// создаем в модуле my_module в классе CMyModule метод OnReindex
function OnReindex()
{
    global $DB;
    $arResult = array();

    $strSql =
        "SELECT FT.ID, FT.TITLE, FT.MESSAGE, ".
        "  DATE_FORMAT(FT.POST_DATE, '%d.%m.%Y %H:%i:%s') as POST_DATE, FT.LID ".
        "FROM b_my_table FT ";

    $db_res = $DB->Query($strSql);
    while ($res = $db_res->Fetch())
    {
        $arResult[] = array(
            "ID" => $res["ID"],
            "LID" => $res["LID"],
            "DATE_CHANGE" => $res["POST_DATE"],
            "URL" => "/my_module/index.php?ID=".$res["ID"],
            "PERMISSIONS" => array(2),
            "TITLE" => $res["TITLE"],
            "BODY" => $res["POST_MESSAGE"]
        );
    }
    return $arResult;
}

// вызываем переиндексацию модуля
CSearch::ReIndexModule("my_module");

?>


Search

Поиск>Классы>CSearch>Search (доступен с 3.3.2)

CSearch::Search

Описание и параметры

void CSearch::Search(
    array arParams,
    array aSort = array(),
    array aParamsEx = array(),
    bool bTagsCloud = false
);

Метод инициализирует выборку данных. Нестатический метод.

Перед выполнением поисковых запросов вызывается событие OnSearch.

Параметры метода

Параметр | Описание | С версии
arParams Массив, содержащий условия поиска в виде наборов "название поля"=>"значение".

Название поля может принимать значение:
  • QUERY - Строка запроса. Обязательный элемент. Должна быть сформирована в соответствии с правилами языка запросов.
  • TAGS - Список тегов. В результате поиска будут возвращены все элементы имеющие данные теги.
  • SITE_ID - Сайт, в информации которого производится поиск. Не обязательный параметр, по умолчанию равен текущему.
  • MODULE_ID - Код модуля, данными которого ограничивается поиск. Если этот параметр равен false, то поиск производится по всем модулям. Не обязательный параметр, по умолчанию равен false.
  • ITEM_ID - Код проиндексированного элемента. Используется для ограничения области поиска по коду элемента. Если параметр имеет значение false, то ограничение не производится. Не обязательный параметр, по умолчанию равен false.
  • PARAM1 - Первый параметр элемента или массив первых параметров. Используется для ограничения области поиска по произвольному параметру. Если параметр имеет значение false, то ограничение не производится. Не обязательный параметр, по умолчанию равен false.
  • PARAM2 - Второй параметр элемента или массив вторых параметров. Используется для ограничения области поиска по произвольному параметру. Если параметр имеет значение false, то ограничение не производится. Не обязательный параметр, по умолчанию равен false.
  • URL - маска адреса относительно корня сайта, по которому доступен данный элемент или массив масок адресов;
  • DATE_CHANGE - время изменения элемента в формате сайта (включает время);
  • CHECK_DATES - если задан и равен Y, то найдены будут только активные элементы;
aSort Массив, содержащий признак сортировки в виде наборов "название поля"=>"направление".

Название поля может принимать значение:
  • ID - идентификатор в поисковом индексе;
  • MODULE_ID - идентификатор модуля;
  • ITEM_ID - идентификатор элемента поискового индекса (например для форума это идентификатор сообщения);
  • TITLE - заголовок;
  • PARAM1 - Первый параметр элемента или массив первых параметров. Используется для ограничения области поиска по произвольному параметру. Если параметр имеет значение false, то ограничение не производится. Не обязательный параметр, по умолчанию равен false.
  • PARAM2 - Второй параметр элемента или массив вторых параметров. Используется для ограничения области поиска по произвольному параметру. Если параметр имеет значение false, то ограничение не производится. Не обязательный параметр, по умолчанию равен false.
  • DATE_FROM - дата начала активности элемента;
  • DATE_TO - дата окончания активности элемента;
  • RANK - вычисленное значение релевантности;
  • TITLE_RANK - количество вхождений подстрок запроса в заголовок. Позволяет повысить значимость заголовка в результатах поиска;
  • CUSTOM_RANK - заданное значение релевантности;
  • DATE_CHANGE - время изменения элемента;
Направление сортировки может принимать значение:
  • ASC - по возрастанию;
  • DESC - по убыванию.
Пример (именно это значение считается по умолчанию):
array("CUSTOM_RANK"=>"DESC", "RANK"=>"DESC", "DATE_CHANGE"=>"DESC")
В случае когда параметр bTagsCloud равен true, допустимыми полями являются:
  • DATE_CHANGE - время изменения элемента;
  • NAME - значение тег;
  • CNT - частота тега;
 4.0.10
aParamsEx Массив массивов, содержащий дополнительные условия поиска в виде наборов "название поля"=>"значение". Эти условия будут объединены по условию ИЛИ. Смотри описание параметра arParams.

Так же может содержать элемент:
  • STEMMING - Если равно true, то при поиске будет учитываться морфология. Если false, то не будет. Если не задано, то будет использоваться настройка модуля;
Пример сложного условия:
        array(
            array(
                "MODULE_ID" => "forum",
                "PARAM1" => array(1, 2),
            ),
            array(
                "MODULE_ID" => "iblock",
                "PARAM2" => 3,
            ),
        )
В данном случае поиск будет осуществляться в форумах с идентификаторами 1 и 2, а также в инфоблоке с идентификатором 3. 		4.0.10
bTagsCloud | Признак построения облака тегов. Если задан и равен true, то будет построено облако тегов. | 6.5.0

Расширение фильтров

С версии модуля 7.1.2 в параметрах arParams и arParamsEx появилась возможность использовать модификаторы ключей и сложную логику фильтров.
Ключи поддерживающие модификаторы:
  • MODULE_ID
  • ITEM_ID
  • PARAM1
  • PARAM2
  • SITE_ID
  • DATE_CHANGE
  • DATE_FROM
  • DATE_TO
  • SITE_URL

Модификаторы:

Модификатор | Пример | Описание
= | "=MODULE_ID" => "iblock" | Выборка точного соответствия
% | "%ITEM_ID" => "my" | Регистронезависимый поиск по подстроке
? | "?PARAM1" => "forum|iblock" | Использование в фильтре сложной логики
>, <, >=, <= | ">=PARAM1" => "44" | Выборка с использованием оператора
>< | "><PARAM2" => array(10, 20) | Выборка значений диапазона

Модификатор может предваряться символом "!", тогда условие будет отрицительным. Если присутствует ключ "LOGIC" и он имеет значение "OR", то условия объединяются логическим ИЛИ. Так же массивы ключей могут иметь вложенность.

Пример сложного фильтра:
 //Поиск только среди элементов инфоблоков за исключением разделов и инфоблоков с ID 3, 5 и 7 и сообщений форума не старше одних суток.
 array(
   "LOGIC" => "OR",
   array(
     "=MODULE_ID" => "iblock",
     "!ITEM_ID" => "S%",
     "!=PARAM2" => array(3,5,7),
   ),
   array(
     "=MODULE_ID" => "forum",
     ">=DATE_CHANGE" => ConvertTimeStamp(time()-24*60*60, "FULL"),
   )
 )

Возвращаемое значение

Ничего не возвращает.

Array(
    [ID] => Код индекса
    [DATE_CHANGE] => Дата изменения проиндексированного элемента
    [MODULE_ID] => Модуль, которому принадлежит проиндексированный элемент
    [ITEM_ID] => Код проиндексированного элемента
    [LID] => Языковое зеркало (язык) сайта
    [URL] => Адрес относительно корня сайта, по которому доступен данный элемент (с заменой специальных символов <, >, " на &lt;, &gt;, &quot;)
    [TITLE] => Заголовок проиндексированного элемента (с заменой спец. символов)
    [BODY] => Текст проиндексированного элемента (с заменой спец. символов)
    [SEARCHABLE_CONTENT] => Индекс элемента, по которому идет поиск (с заменой спец. символов)
    [PARAM1] => Первый параметр элемента
    [PARAM2] => Второй параметр элемента
    [~URL] => Адрес относительно корня сайта, по которому доступен данный элемент
    [~TITLE] => Заголовок проиндексированного элемента
    [~BODY] => Текст проиндексированного элемента
    [~SEARCHABLE_CONTENT] => Индекс элемента, по которому идет поиск
    [TITLE_FORMATED] => Заголовок проиндексированного элемента с выделением искомых слов
    [BODY_FORMATED] => Часть текста проиндексированного элемента с выделением искомых слов
    [URL_WO_PARAMS] => Адрес элемента без параметров добавленных в обработчиках события OnSearch.
)

Если задано построение облака тегов, то:

Array(
    [NAME] => тег
    [CNT] => частота
    [DATE_CHANGE] => Максимальная дата изменения элемента имеющего данный тег
    [FULL_DATE_CHANGE] => Дата изменения элемента включая время.
)

Примеры использования

Пример №1: поиск в форумах текущего сайта указанной строки:

<?
$q = "жареная рыба или селедка";
$module_id = "forum";
$obSearch = new CSearch;
$obSearch->Search(array(
    "QUERY" => $q,
    "SITE_ID" => LANG,
    "MODULE_ID" => $module_id,
));
if ($obSearch->errorno!=0):
    ?>
    <font class="text">В поисковой фразе обнаружена ошибка:</font>
    <?echo ShowError($obSearch->error);?>
    <font class="text">Исправьте поисковую фразу и повторите поиск.</font>
    <?
else:
    while($arResult = $obSearch->GetNext())
    {?>
        <a href="<?echo $arResult["URL"]?>"><?echo $arResult["TITLE_FORMATED"]?></a>
        <?echo $arResult["BODY_FORMATED"]?>
    <hr size="1" color="#DFDFDF">
    <?}
endif;
?>

Пример №2: чтобы при обращении к модулю поиска поисковая фраза проиндексировалась в статистике Поиска, нужно обязательно вызвать NavStart():

   $obSearch = new CSearch;
   $obSearch->Search(array(
      'QUERY' => $_REQUEST['q'],
      'SITE_ID' => LANG,
      'MODULE_ID' => 'iblock',
   ));
   $obSearch->NavStart();
   while ($arSearch = $obSearch->Fetch()) {
      echo($arSearch);
   }

Примечание: такой вызов NavStart() породит дополнительный PAGEN_. Если он мешает, то можно заменить NavStart на такую конструкцию:

$obSearch->Statistic = new CSearchStatistic($obSearch->strQueryText, $obSearch->strTagsText);
$obSearch->Statistic->PhraseStat($obSearch->NavRecordCount, $obSearch->NavPageNomer);


CSearchCustomRank

Класс поддержки правил сортировки.

Методы класса

Метод | Описание | С версии
GetList | Получение списка правил сортировки. | 5.1.1
GetByID | Получение правила сортировки по ID. | 5.1.1
Add | Метод добавляет новое правило. | 5.1.1
Update | Изменение правила сортировки. | 5.1.1
Delete | Удаление правила сортировки. | 5.1.1
StartUpdate | Подготовка к применению изменений в правилах. | 5.1.1
NextUpdate | Шаг применения изменений правил сортировки. | 5.1.1

Смотрите также

  • Поля объекта CSearchCustomRank - описание полей, доступных в методах класса.


Add

Поиск>Классы>CSearchCustomRank>Add (доступен с 5.1.1)

CSearchCustomRank::Add

int
CSearchCustomRank::Add(
    array arFields
);

Метод добавляет новое правило. Нестатический метод.

После удаления всех требуемых правил необходимо пересчитать поисковый индекс методами CSearchCustomRank::StartUpdates и CSearchCustomRank::NextUpdate.

Параметры метода

Параметр | Описание
arFields | Массив со значениями полей объекта правила сортировки.

Возвращаемые значения

В случае успешного добавления возвращается ID нового правила. В противном случае возвращается false.

Смотрите также

  • Поля объекта правила сортировки
  • CSearchCustomRank::StartUpdates
  • CSearchCustomRank::NextUpdate


Delete

Поиск>Классы>CSearchCustomRank>Delete (доступен с 5.1.1)

CSearchCustomRank::Delete

CDBResult
CSearchCustomRank::Delete(
    int ID
);

Удаление правила сортировки по идентификатору. Метод статический.

После удаления всех требуемых правил необходимо пересчитать поисковый индекс методами CSearchCustomRank::StartUpdates и CSearchCustomRank::NextUpdate.

Параметры метода

Параметр | Описание
ID | Идентификатор правила сортировки.

Возвращаемые значения

Если правило успешно удалено, то возвращается результат запроса типа CDBResult, в противном случае метод вернет false.

Смотрите также

  • CSearchCustomRank::StartUpdates
  • CSearchCustomRank::NextUpdate


GetByID

Поиск>Классы>CSearchCustomRank>GetByID (доступен с 5.1.1)

CSearchCustomRank::GetByID

CDBResult
CSearchCustomRank::GetByID(
    int ID
);

Получение правила сортировки по идентификатору. Метод статический.

Параметры метода

Параметр | Описание
ID | Идентификатор правила сортировки.

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта правила сортировки.

Смотрите также

  • Поля объекта правила сортировки


GetList

Поиск>Классы>CSearchCustomRank>GetList (доступен с 5.1.1)

CSearchCustomRank::GetList

Описание и параметры

CDBResult
CSearchCustomRank::GetList(
    array aSort = array(),
    array aFilter = array()
);

Получение списка правил сортировки по фильтру. Метод статический.

Параметры метода

Параметр Описание
aSort Массив, содержащий признак сортировки в виде наборов "название поля"=>"направление".

Название поля может принимать значение названия любого из полей объекта правила сортировки. Не обязательный параметр. По умолчанию равен:
        array(
            "SITE_ID"=>"ASC",
            "MODULE_ID"=>"ASC",
            "PARAM1"=>"DESC",
            "PARAM2"=>"DESC",
            "ITEM_ID"=>"DESC",
        )
aFilter Массив, содержащий фильтр в виде наборов "название поля"=>"значение фильтра".

Название поля может принимать значение названия любого из полей объекта правила сортировки. Фильтрация осуществляется по точному совпадению значения фильтра и правила. Не обязательный параметр.

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля объекта правила сортировки.

Смотрите также

  • Поля объекта правила сортировки


NextUpdate

Поиск>Классы>CSearchCustomRank>NextUpdate (доступен с 5.1.1)

CSearchCustomRank::NextUpdate

Описание и параметры

array
CSearchCustomRank::NextUpdate(
);

Шаг применения изменений правил сортировки. Нестатический метод.

Данный метод применяет следующее непримененное правило сортировки к поисковому индексу. Применение правил требуется всякий раз когда происходят их изменения (CSearchCustomRank::Add, CSearchCustomRank::Update и CSearchCustomRank::Delete). При индексации данных или после переиндексации данная процедура не требуется, т.к. правила сортировки учитываются в процессе построения поискового индекса.

Перед началом применения правил необходимо инициировать процесс вызвав CSearchCustomRank::StartUpdates.

Параметры метода

Нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращается массив следующей структуры:

  • DONE - количество уже примененных правил;
  • TODO - сколько правил еще надо применить.

В противном случае возвращается false и через LAST_ERROR экземпляра класса можно получить текст сообщения об ошибке.

Смотрите также

  • CSearchCustomRank::StartUpdates
  • CSearchCustomRank::Add
  • CSearchCustomRank::Update
  • CSearchCustomRank::Delete


StartUpdate

Поиск>Классы>CSearchCustomRank>StartUpdate (доступен с 5.1.1)

CSearchCustomRank::StartUpdate

Описание и параметры

CDBResult
CSearchCustomRank::StartUpdate(
);

Подготовка к применению изменений в правилах. Нестатический метод.

Данный метод начинает процедуру применения правил сортировки к поисковому индексу. Применение правил требуется всякий раз когда происходят их изменения (CSearchCustomRank::Add, CSearchCustomRank::Update и CSearchCustomRank::Delete). При индексации данных или после переиндексации данная процедура не требуется, т.к. правила сортировки учитываются в процессе построения поискового индекса.

Фактически данный метод сбрасывает все весовые коэффициенты. А для собственно применения правил необходимо воспользоваться пошаговой CSearchCustomRank::NextUpdate.

Параметры метода

Нет параметров.

Возвращаемые значения

В случае успешного выполнения возвращается объект CDBResult. В противном случае возвращается false.

Смотрите также

  • CSearchCustomRank::NextUpdate
  • CSearchCustomRank::Add
  • CSearchCustomRank::Update
  • CSearchCustomRank::Delete


Update

Поиск>Классы>CSearchCustomRank>Update (доступен с 5.1.1)

CSearchCustomRank::Update

Описание и параметры

bool
CSearchCustomRank::Update(
    int ID,
    array arFields
);

Изменение правила сортировки. Нестатический метод.

После удаления всех требуемых правил необходимо пересчитать поисковый индекс методами CSearchCustomRank::StartUpdate и CSearchCustomRank::NextUpdate.

Параметры метода

Параметр | Описание
ID | Идентификатор правила.
arFields | Массив со значениями полей объекта правила сортировки.

Возвращаемые значения

В случае успешного добавления возвращается true. В противном случает возвращается false.

Смотрите также

  • Поля объекта правила сортировки
  • CSearchCustomRank::StartUpdate
  • CSearchCustomRank::NextUpdate


Поля объекта CSearchCustomRank

Поиск>Классы>CSearchCustomRank>Поля объекта CSearchCustomRank

CSearchCustomRank::Поля объекта CSearchCustomRank

Класс CSearchCustomRank использует следующие поля при работе с объектом "Правило сортировки".

Название поля | Описание | Тип | Обяз.
ID | Идентификатор правила. | int | Да.
SITE_ID | Сайт для элементов которого данное правило будет применяться. | char(2) | Да.
MODULE_ID | Идентификатор модуля для элементов которого данное правило будет применяться. | string(200) | Да.
PARAM1 | Первый параметр элемента. | text |
PARAM2 | Второй параметр элемента. | text |
ITEM_ID | Идентификатор элемента поискового индекса. | string(255) |
RANK | Вес. | int | Да.
APPLIED | Признак применения правила. | char(1) | Да.


CSearchStatistic

Класс для работы со статистикой поиска.

Методы класса

Метод | Описание | С версии
GetList | Получение списка поисковых фраз. | 8.6.3

Смотрите также

  • Поля объекта CSearchStatistic


GetList

Поиск>Классы>CSearchStatistic>GetList (доступен с 8.6.3)

CSearchStatistic::GetList

CDBResult
CSearchStatistic::GetList(
    array arOrder = false,
    array arFilter = false,
    array arSelect = false,
    array bGroup = false
);

Метод возвращает список поисковых фраз. Метод статический.

Параметры метода

Параметр Описание
arOrder Массив, содержащий признак сортировки в виде наборов "название поля"=>"направление". Название поля может принимать значение названия любого из полей объекта поисковой статистики. Необязательный параметр.

Значение по умолчанию - false - означает, что результат отсортирован не будет.
arFilter Массив, содержащий фильтр в виде наборов "название поля"=>"значение фильтра". Название поля может принимать значение названия любого из полей объекта поисковой статистики. Необязательный параметр.

Значение по умолчанию - false - означает, что результат отфильтрован не будет.
arSelect Массив, содержащий поля для выборки. Можно указать только те поля, которые необходимы. Необязательный параметр.

Значение по умолчанию - false - означает, что будут возвращены все поля основной таблицы запроса.
bGroup Массив полей, по которым группируются поисковые фразы. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле объекта поисковой статистики. Необязательный параметр.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру. При bGroup = true в arOrder можно передать COUNT для сортировки по количеству.

Значение по умолчанию - false - означает, что результат группироваться не будет.

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступными поля, перечисленные в параметре arSelect.


Поля объекта CSearchStatistic

Поиск>Классы>CSearchStatistic>Поля объекта CSearchStatistic

CSearchStatistic::Поля объекта CSearchStatistic

Класс CSearchStatistic использует следующие поля при работе с объектом "Поисковая статистика".

Название поля | Описание | Тип
ID | Идентификатор поисковой фразы. | int
TIMESTAMP_X | Дата использования поисковой фразы. | datetime
SITE_ID | Идентификатор сайта, на котором была введена поисковая фраза. | char(2)
RESULT_COUNT | Количество найденных по фразе документов. | int
PAGES | Глубина просмотра (0 - поиск по фразе был безуспешный, 1 - поиск по фразе был успешный). | int
PHRASE | Поисковая фраза. | text
TAGS | Теги. | text
URL_TO | Адрес страницы, на которую пришли с поисковой фразой. | string(255)
URL_TO_404 | Признак того, что поисковая фраза ведет на несуществующую страницу. | char(1)
URL_TO_SITE_ID | Идентификатор сайта, на который ведет поисковая фраза. | char(2)
STAT_SESS_ID | Идентификатор сессии пользователя. | int


CSearchTags

Класс поддержки тегов.

Методы класса

Метод | Описание | С версии
GetList | Получение списка тегов элементов поискового индекса. | 6.5.0


GetList

Поиск>Классы>CSearchTags>GetList (доступен с 6.5.0)

CSearchTags::GetList

Описание и параметры

CDBResult
CSearchTags::GetList(
    array arSelect = array(),
    array arFilter = array(),
    array arOrder = array(),
    int limit = 100
);

Получение списка тегов элементов поискового индекса. Метод статический.

Данный метод использует технологию управляемого кеширования в случае соответствующей настройки констант модуля поиска: CACHED_b_search_tags и CACHED_b_search_tags_len.

Параметры метода

Параметр | Описание
arSelect Массив, содержащий поля для выборки.

Название поля может принимать значение:
  • NAME - тег;
  • CNT - частота тега, количество элементов поискового индекса содержащих этот тег;
  • DATE_CHANGE - максимальная дата модификации (в полном формате) элементов поискового индекса содержащих этот тег;
Не обязательный параметр. По умолчанию равен:
        array(
            "NAME",
            "CNT",
        )
arFilter Массив, содержащий фильтр в виде наборов "название поля"=>"значение фильтра".

Название поля может принимать значение:
  • SITE_ID - массив идентификаторов сайтов;
  • TAG - начало тега, будут возвращены все теги начинающиеся с этого значения;
  • MODULE_ID - идентификатор модуля;
  • PARAM1 - первый параметр элемента;
  • PARAM2 - второй параметр элемента;
Пример:
        array(
            "SITE_ID"=>array("s1"),
            "TAG"=>"We",
            "MODULE_ID"=>"iblock",
        )
arOrder Массив, содержащий признак сортировки в виде наборов "название поля"=>"направление".

Название поля может принимать значение:
  • NAME - тег;
  • CNT - частота тега, количество элементов поискового индекса содержащих этот тег;
  • DATE_CHANGE - максимальная дата модификации (в полном формате) элементов поискового индекса содержащих этот тег;
Направление сортировки может принимать значение:
  • ASC - по возрастанию;
  • DESC - по убыванию.
Не обязательный параметр. По умолчанию равен:
        array(
            "NAME"=>"ASC",
        )
limit | Ограничение количества тегов в результатах.

Возвращаемые значения

Возвращается результат запроса типа CDBResult. При выборке из результата методами класса CDBResult становятся доступны поля перечисленные в параметре arSelect.

Смотрите также

  • Константы модуля поиска

Примеры использования

Получение списка десяти самых популярных тегов модуля информационных блоков.
<?
//подключение модуля поиска
if(CModule::IncludeModule('search'))
{
    $rsTags = CSearchTags::GetList(
        array(),
        array(
            "MODULE_ID" => "iblock",
        ),
        array(
            "CNT" => "DESC",
        ),
        10
    );
    while($arTag = $rsTags->Fetch())
        print_r($arTag);
}
?>


CSiteMap

Класс поддержки Google Sitemap.

Методы класса

Метод | Описание | С версии
Create | Создание карты сайта в формате Google Sitemap. | 4.0.12


Create

Поиск>Классы>CSiteMap>Create (доступен с 4.0.12)

CSiteMap::Create

Описание и параметры

mixed
  CSiteMap::Create(
    string site_id,
    array max_execution_time,
    array NS,
    array arOptions = array()
);

Создание карты сайта в формате Google Sitemap.

Создание всегда происходит в пошаговом режиме. Нестатический метод.

Параметры метода

Параметр | Описание | С версии
site_id | Идентификатор сайта для которого будет создаваться карта. |
max_execution_time | Элемент этого массива с индексом 0 задает максимальное время одно шага в секундах. А с индексом 1 - максимальное количество записей поискового индекса (рекомендовано задавать не более 5000). |
NS | Начало шага. Передается результат, возвращенный предыдущим вызовом этого метода. |
arOptions | Необязательный параметр. Если содержит ключ FORUM_TOPICS_ONLY со значением Y, то при установленном модуле форума в Sitemap попадут не все сообщения, а только те которые начинают новую тему на форуме. Причем дата модификации будет равна дате добавления последнего сообщения в данную тему. | 7.0.3

Возвращаемое значение

  • false - в случае возникновения ошибки.
  • true - успешное создание карты.
  • array - требуется еще один вызов метода.

Примеры использования

Построение карты сайта из сценария вызываемого в cron'е.

<?
//подключение модуля поиска
if(CModule::IncludeModule('search'))
{
    //В этом массиве будут передаваться данные "прогресса". Он же послужит индикатором окончания исполнения.
    $NS=Array();
    //Задаем максимальную длительность одной итерации равной "бесконечности".
    $sm_max_execution_time = 0;
    //Это максимальное количество ссылок обрабатываемых за один шаг.
    //Установка слишком большого значения приведет к значительным потерям производительности.
    $sm_record_limit = 5000;
    do {
        $cSiteMap = new CSiteMap;
        //Выполняем итерацию создания,
        $NS = $cSiteMap->Create("ru", array($sm_max_execution_time, $sm_record_limit), $NS);
        //Пока карта сайта не будет создана.
    } while(is_array($NS));
}
?>


События модуля

Событие | Описание | С версии
BeforeIndex | Вызывается перед индексацией элемента. | 5.1.0
OnSearch | Вызывается перед выполнением поисковых запросов. | 3.0.4
OnReIndex | Вызывается при построении поискового индекса. | 3.0.4
OnSearchGetFileContent | Вызывается при индексации статических файлов. | 6.5.6
OnSearchGetURL | Вызывается при форматировании элемента в результатах поиска. | 4.0.0
OnSearchGetTag | Вызывается при разборе тегов. | 7.1.2
OnBeforeFullReindexClear | Вызывается в начале первого шага полной переиндексации, непосредственно перед удалением всех данных поискового индекса. | 8.0.4
OnBeforeIndexDelete | Вызывается перед удалением части поискового индекса. | 8.0.4
OnBeforeIndexUpdate | Вызывается перед обновлением поискового индекса. | 8.0.4
OnAfterIndexAdd | Вызывается после добавления новых данных в поисковый индекс. | 8.0.4
OnSearchCheckPermissions | Вызывается при построении поискового запроса. | 8.0.4


BeforeIndex

Описание и параметры

функция-обработчик(
    array arFields
);

Событие "BeforeIndex" вызывается перед индексацией элемента методом CSearch::Index.

Важно! Функция-обработчик не принимает параметр arFields по ссылке. Не верно: function BeforeIndexHandler(&$arFields). Верно: function BeforeIndexHandler($arFields).

Параметры

Параметр Описание
arFields Массив следующего содержания:
  • MODULE_ID - идентификатор модуля (не изменится);
  • ITEM_ID - идентификатор элемента (не изменится);
  • PARAM1 - первый параметр элемента;
  • PARAM2 - второй параметр элемента;
  • DATE_FROM - дата начала активности элемента;
  • DATE_TO - дата окончания активности элемента;
  • TITLE - заголовок;
  • BODY - содержание;
  • TAGS - теги элемента;
  • SITE_ID - массив сайтов;
  • PERMISSIONS - массив идентификаторов групп пользователей которым разрешено чтение;
  • URL - адрес относительно корня сайта, по которому доступен данный элемент;

Данный обработчик может модифицировать поля параметра arFields и должен вернуть его как результат своей работы.

Важные моменты

  • Если в обработчике проводятся модификации поля SITE_ID, то надо помнить,что индексы в массиве должны быть с нуля и по порядку. Иначе массив будет воспринят как ассоциативный и элементы привяжутся к сайтам неверно (вместо SITE_ID окажутся числа и элементы пропадут из поиска).

  • Чтобы не добавлять запись в индекс (например, если надо какой-то подраздел инфоблока не индексировать), необходимо в функции-обработчике выполнить:
    unset($arFields["BODY"]);
unset($arFields["TITLE"]);
  • Если выполняются проверки типа:
    $bTitle = array_key_exists("TITLE", $arFields);
$bBody = array_key_exists("BODY", $arFields);
if($bTitle && $bBody && strlen($arFields["BODY"])<=0 && strlen($arFields["TITLE"])<=0)
    то для исключения элемента из индекса как записи следует выполнять:
    $arFields["BODY"]='';
$arFields["TITLE"]='';

Смотрите также

  • CSearch::Index

Примеры

Пример функции-обработчика:

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("search", "BeforeIndex", Array("MyClass", "BeforeIndexHandler"));

class MyClass
{
    // создаем обработчик события "BeforeIndex"
    function BeforeIndexHandler($arFields)
    {
    if($arFields["MODULE_ID"] == "iblock" && $arFields["PARAM2"] == 33)
    {
        if(array_key_exists("BODY", $arFields))
        {
            $arFields["BODY"] .= " самые свежие новости";
        }
    }
    return $arFields;
    }
}
?>

Пример использования функции-обработчика:

Пример использования функции-обработчика, чтобы компонент search.title [image] проводил поиск не только по заголовкам, но и некоторому свойству:

// регистрируем обработчик
AddEventHandler("search", "BeforeIndex", "BeforeIndexHandler");
 // создаем обработчик события "BeforeIndex"
function BeforeIndexHandler($arFields)
{
   if(!CModule::IncludeModule("iblock")) // подключаем модуль
      return $arFields;
   if($arFields["MODULE_ID"] == "iblock")
   {
      $db_props = CIBlockElement::GetProperty(                        // Запросим свойства индексируемого элемента
                                    $arFields["PARAM2"],         // BLOCK_ID индексируемого свойства
                                    $arFields["ITEM_ID"],          // ID индексируемого свойства
                                    array("sort" => "asc"),       // Сортировка (можно упустить)
                                    Array("CODE"=>"CML2_ARTICLE")); // CODE свойства (в данном случае артикул)
      if($ar_props = $db_props->Fetch())
         $arFields["TITLE"] .= " ".$ar_props["VALUE"];   // Добавим свойство в конец заголовка индексируемого элемента
   }
   return $arFields; // вернём изменения
}


OnAfterIndexAdd

Описание и параметры

void
функция-обработчик(
  int ID,
  array arFields
);

Событие "OnAfterIndexAdd" вызывается после добавления новых данных в поисковый индекс.

Параметры

Параметр | Описание
ID | Уникальный идентификатор записи в поисковом индексе.
arFields | Поля поискового индекса.

Смотрите также

  • Обработка событий

Пример функции-обработчика

<?

// регистрируем обработчик события "OnAfterIndexAdd" модуля "search"
RegisterModuleDependences("search", "OnAfterIndexAdd", "my_module", "CMyModule", "AddSearchExtData");

// создаем в модуле my_module в классе CMyModule функцию-метод AddSearchExtData
function AddSearchExtData($ID, $arFields)
{
    global $DB;
        if($arFields["MODULE_ID"]=="my_module")
      $DB->Add("my_search_ext_data", array("SEARCH_CONTENT_ID"=>$ID, "EXT_DATA"=>time()));
}

?>


OnBeforeFullReindexClear

void
функция-обработчик();

Событие "OnBeforeFullReindexClear" вызывается во время полной переиндексации. В начале первого шага, непосредственно перед удалением всех данных поискового индекса.

Смотрите также

  • Обработка событий

Пример функции-обработчика:

<?

// регистрируем обработчик события "OnBeforeFullReindexClear" модуля "search"
RegisterModuleDependences("search", "OnBeforeFullReindexClear", "my_module", "CMyModule", "TruncateTables");

// создаем в модуле my_module в классе CMyModule функцию-метод TruncateTables
function TruncateTables()
{
    global $DB;
    $DB->Query("truncate table my_search_ext_data");
}

?>


OnBeforeIndexDelete

void
функция-обработчик(
  string strWhere
  );

Событие "OnBeforeIndexDelete" вызывается перед удалением части поискового индекса.

Параметры

Параметр | Описание
strWhere | SQL условие для удаления. Представляет собой фильтр по полю SEARCH_CONTENT_ID.

Смотрите также

  • Обработка событий

Пример функции-обработчика:

<?

// регистрируем обработчик события "OnBeforeIndexDelete" модуля "search"
RegisterModuleDependences("search", "OnBeforeIndexDelete", "my_module", "CMyModule", "DeleteSearchExtData");

// создаем в модуле my_module в классе CMyModule функцию-метод TruncateTables
function DeleteSearchExData($strWhere)
{
    global $DB;
    $DB->Query("delete from my_search_ext_data where ".$strWhere);
}

?>


OnBeforeIndexUpdate

void
функция-обработчик(
  int ID,
  array arFields
);

Событие "OnBeforeIndexUpdate" вызывается перед обновлением поискового индекса.

Параметры

Параметр | Описание
ID | Уникальный идентификатор записи в поисковом индексе.
arFields | Поля поискового индекса.

Смотрите также

  • Обработка событий

Пример функции-обработчика:

<?

// регистрируем обработчик события "OnBeforeIndexUpdate" модуля "search"
RegisterModuleDependences("search", "OnBeforeIndexUpdate", "my_module", "CMyModule", "AddSearchExtData");

// создаем в модуле my_module в классе CMyModule функцию-метод AddSearchExtData
function AddSearchExtData($ID, $arFields)
{
    global $DB;
        if($arFields["MODULE_ID"]=="my_module")
      $DB->Add("my_search_ext_data", array("SEARCH_CONTENT_ID"=>$ID, "EXT_DATA"=>time()));
}

?>


OnReIndex

Описание и параметры

bool
функция-обработчик(
    array NS,
    string oCallback,
    string callback_method
);

Событие "OnReindex" вызывается во время переиндексации данных модуля методами CSearch::ReindexModule или CSearch::ReIndexAll.

Параметры

Параметр | Описание
NS Массив в котором передается информация о начале текущего шага.
  • MODULE - идентификатор модуля;
  • ID - идентификатор элемента;
  • SITE_ID - массив сайтов;
oCallback | Объект модуля поиска для вызова метода индексации элемента.
callback_method | Метод объекта модуля поиска для индексации элемента.

Смотрите также

  • CSearch::ReindexModule
  • CSearch::ReIndexAll
  • Обработка событий

Примеры использования

<?

// регистрируем обработчик события "OnReindex" модуля "search"
RegisterModuleDependences("search", "OnReindex", "my_module", "CMyModule", "OnReindex");

// создаем в модуле my_module в классе CMyModule функцию-метод OnReindex
function OnReindex($NS, $oCallback, $callback_method)
{
    global $DB;

    $NS["ID"] = intval($NS["ID"]);
    if($NS["MODULE"]=="my_module" && $NS["ID"] > 0)
        $strWhere = "WHERE ID > ".$NS["ID"];
    else
        $strWhere = "";

    $strSql =
        "SELECT FT.ID, FT.TITLE, FT.MESSAGE, ".
        "  DATE_FORMAT(FT.POST_DATE, '%d.%m.%Y %H:%i:%s') as POST_DATE, FT.LID ".
        "FROM b_my_table FT ".
        $strWhere.
        " ORDER BY FT.ID";

    $db_res = $DB->Query($strSql);
    while ($res = $db_res->Fetch())
    {
        $Result = array(
            "ID" => $res["ID"],
            "SITE_ID" => array("s1"),
            "DATE_CHANGE" => $res["POST_DATE"],
            "URL" => "/my_module/index.php?ID=".$res["ID"],
            "PERMISSIONS" => array(2),
            "TITLE" => $res["TITLE"],
            "BODY" => $res["MESSAGE"],
        );
        $index_res = call_user_func(array($oCallback, $callback_method), $Result);
        if(!$index_res)
            return $Result["ID"];
    }
    return false;
}

// вызываем переиндексацию модуля
CSearch::ReIndexModule("my_module");

?>


OnSearch

Описание и параметры

string
функция-обработчик(
    string strQuery
);

Событие "OnSearch" вызывается перед выполнением поисковых запросов методом CSearch::Search.

Параметры

Параметр | Описание
strQuery | Поисковая фраза. Если используется поиск по тегам, то в начале добавляется "tags:".

Возвращаемое значение

Функция обработчик может вернуть строку вида "параметр=значение" которая будет добавлена к ссылкам на найденные элементы. Используется модулем статистики для учета поисковых фраз внутреннего поисковика.

Смотрите также

  • CSearch::Search
  • Обработка событий

Примеры использования

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("search", "OnSearch", Array("MyClass", "OnSearchHandler"));

class MyClass
{
    // создаем обработчик события "BeforeIndex"
    function OnSearchHandler($strQuery)
    {
    if(strpos($strQuery, "tags:")!==false)
        return "tags_search=Y";
    else
        return "";
    }
}
?>


OnSearchCheckPermissions

void
функция-обработчик(
  string FIELD
);

Событие "OnSearchCheckPermissions" вызывается при построении поискового запроса. Позволяет задать дополнительные условия для определения прав доступа к результатам поиска.

Параметры

Параметр | Описание
FIELD | Столбец таблицы поискового индекса для использования в подзапросе (например: SC.ID или scsite.SEARCH_CONTENT_ID).

Смотрите также

  • Обработка событий


OnSearchGetFileContent

Описание и параметры

mixed
функция-обработчик(
    string absolute_path,
    string SEARCH_SESS_ID
);

Событие "OnSearchGetFileContent" вызывается во время переиндексации данных главного модуля CSearch::ReIndexFile.

Параметры

Параметр | Описание
absolute_path | Абсолютный путь к индексируемому файлу.
SEARCH_SESS_ID | Идентификатор текущей сессии индексации. Может использоваться в обработчике события для добавления в поисковый индекс дополнительного контента с помощью метода CSearch::Index.

Возвращаемое значение

Функция-обработчик может вернуть массив описывающий содержимое файла. Массив должен иметь следующую структуру:

  • TITLE - заголовок (обязательное поле);
  • CONTENT - содержимое документа;
  • PROPERTIES - массив свойств документа (обязательное). Если свойств нет, то должен быть передан пустой массив. Содержимое элемента этого массива с именем указанным в настройках модуля как "Код свойства страницы в котором хранятся теги" будет занесен в теги;

Или может вернуть false, если не знает как файл должен быть обработан.

Смотрите также

  • CSearch::ReIndexFile
  • Обработка событий

Пример функции-обработчика

<?
//init.php

// индексируем сжатые gzip файлы.
// регистрируем обработчик события "OnSearchGetFileContent" модуля "search"
AddEventHandler("search", "OnSearchGetFileContent", array("CMyClass", "OnSearchGetFileContent_gzip"));

class CMyClass
{
    function OnSearchGetFileContent_gzip($absolute_path)
    {

        if(file_exists($absolute_path) && is_file($absolute_path) && substr($absolute_path, -3) == ".gz")
        {
            return array(
                "TITLE" => basename($absolute_path),
                "CONTENT" => implode("\n", gzfile($absolute_path)),
                "PROPERTIES" => array(),
            );
        }
        else
            return false;
    }
}

?>


OnSearchGetTag

Описание и параметры

string
функция-обработчик(
    string tag
);

Событие "OnSearchGetTag" вызывается при разборе строки тегов из функции Tags_prepare.

Параметры

Параметр | Описание
tag | Тег.

Возвращаемое значение

Функция-обработчик может отфильтровать недопустимые символы или значения тега. И должна его вернуть даже если форматирование не было применено.

Смотрите также

  • Tags_prepare
  • Обработка событий

Пример функции-обработчика

<?
//init.php

// регистрируем обработчик события "OnSearchGetTag" модуля "search"
AddEventHandler("search", "OnSearchGetTag", array("CMyClass", "OnSearchGetTag"));

class CMyClass
{
    function OnSearchGetTag($tag)
    {
        static $stop = array(
            "АХ" => true,
            "ФУ" => true,
        );
        $tag = ToUpper($tag);
        if(array_key_exists($tag, $stop))
            return "";
        else
            return $tag;
    }
}

?>


OnSearchGetURL

Описание и параметры

string
функция-обработчик(
    array arFields
);

Событие "OnSearchGetURL" вызывается при форматировании элемента в результатах поиска из метода CSearch::Fetch и при построении Google Sitemap CSiteMap::Create. На данный момент событие вызывается только для параметризированных URL.

Параметры

Параметр | Описание
arFields | Массив описывающий элемент поискового индекса.

Возвращаемое значение

Функция-обработчик может применить форматирование к элементу URL. И должна его вернуть даже если форматирование не было применено.

Смотрите также

  • CSearch::Fetch
  • CSiteMap::Create
  • Обработка событий

Пример функции-обработчика

<?
//init.php

// регистрируем обработчик события "OnSearchGetURL" модуля "search"
AddEventHandler("search", "OnSearchGetURL", array("CMyClass", "OnSearchGetURL"));

class CMyClass
{
    function OnSearchGetURL($arFields)
    {
        $url = str_replace("#MY_SID#", md5(rand()), $arFields["URL"]);
        return $url;
    }
}

?>


Функции модуля

Функция | Описание | С версии
Stemming | Возвращает массив неизменных основ слов. | 6.5.0
Stemming_default | Функция морфологического анализа текста применяемая по умолчанию. | 6.5.0
Stemming_stop_default | Функция определения стоп слова применяемая по умолчанию. | 6.5.0
Stemming_letter_default | Функция возвращает алфавит по умолчанию. | 6.5.0
Tags_prepare | Возвращает массив тегов. | 6.5.0
InputTags | Возвращает код html для ввода тегов с поддержкой автодополнения. | 6.5.0


InputTags

Описание и параметры

string
InputTags(
    string sName,
    string sValue = '',
    array  arSites = array(),
    string sHTML = '',
    string sId = ''
);

Функция возвращает код html для ввода тегов с поддержкой автодополнения.

Параметры функции

Параметр | Описание
sName | Имя элемента управления html.
sValue | Начальное значение элемента управления. Необязательный параметр. По умолчанию - пустая строка.
arSites | Массив идентификаторов сайтов для которых будет строиться облако тегов. Необязательный параметр. По умолчанию берется текущий сайт.
sHTML | Произвольный html код, который будет вставлен в элемент управления. Необязательный параметр. По умолчанию - пустая строка.
sId | Идентификатор элемента управления (id). Необязательный параметр. По умолчанию идентификатор будет сгенерирован автоматически.

Возвращаемое значение

Функция возвращает html код элемента управления.

Примеры использования

<?
echo InputTags("TAGS", $arElement["TAGS"]);
?>


Stemming

Описание и параметры

array
stemming(
    string sText,
    string sLang="ru"
);

Функция производит морфологический анализ текста и возвращает массив неизменных основ слов.

Сначала ищется и подключается анализатор для заданного языка (параметр sLang):

  • Выполняется попытка подключения файла $_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/".$sLang."/search/stemming.php" и если в нем определена функция "stemming_"$sLang, то на этом поиск завершается.
  • Иначе выполняется попытка подключить анализатор из набора поставляемых с модулем поиска.
  • Если и эта попытка провалилась, то будет использован анализатор по умолчанию Stemming_default.

Также ожидается, что в одном из файлов определена функция поиска стоп слов - "stemming_stop_".$sLang. Если это не так, то для определения списка стоп слов будет использована функция по умолчанию Stemming_stop_default.

Далее текст приводится к верхнему регистру и разбивается на отдельные слова. Разбивка происходит путем удаления всех символов не входящих в алфавит языка. Алфавит задается следующим образом:

  • В расчет принимаются все символы возвращаемые функцией Stemming_letter_default;
  • К ним добавляются символы возвращаемые функцией "stemming_letter_".$sLang (если таковая определена);
  • А также символы входящие в соответствующую настройку модуля поиска.

Для каждого слова с помощью найденной ранее функции определяется неизменная основа. После этого, если слово не является стоп словом оно заносится в массив который будет возвращен в качестве результата.

Параметры функции

Параметр | Описание
sText | Содержит текст для морфологического анализа.
sLang | Идентификатор языка текста.

Возвращаемое значение

Функция возвращает ассоциативный массив ключами которого являются неизменные основы слов, а значениями частота их появления.

Смотрите также

  • Stemming_default
  • Stemming_stop_default
  • Stemming_letter_default

Примеры использования

<?
$ar = stemming("Зебры любят зебр, а не слонов!", "ru");
print_r($ar);

//Будет напечатано:
/*
array(
    "ЗЕБР" => 2
    "ЛЮБ" => 1
    "СЛОН" => 1
)
*/
?>


Stemming_default

string
stemming_default(
    string sText
);

Функция морфологического анализа текста применяемая по умолчанию.

Параметры функции

Параметр | Описание
sText | Слово для морфологического анализа.

Возвращаемое значение

Функция возвращает sText.

Смотрите также

  • Stemming


Stemming_letter_default

string
stemming_letter_default(
);

Функция возвращает алфавит по умолчанию.

Возвращаемое значение

Функция возвращает строку содержащую все символы латинского алфавита, а также цифры.

Смотрите также

  • Stemming


Stemming_stop_default

bool
stemming_stop_default(
    string sWord
);

Функция определения стоп слова применяемая по умолчанию.

Параметры функции

Параметр | Описание
sWord | Неизменная основа слова.

Возвращаемое значение

Функция возвращает true если sWord не является стоп словом и false в противном случае. Определение происходит по длине слова. Стоп словами считаются все, имеющие длину меньше двух символов.

Смотрите также

  • Stemming


Tags_prepare

Описание и параметры

array
tags_prepare(
    string sText,
    string site_id = false
);

Функция разбивает текст на отдельные теги и возвращает массив. Разбивка происходит по символу "," (запятая). Затем для каждого тега вызывается обработчик события OnSearchGetTag и если результат не пустой, то тег будет помещен в индекс.

Параметры функции

Параметр | Описание
sText | Содержит текст для разбивки на теги.
site_id | Идентификатор сайта.

Возвращаемое значение

Функция возвращает массив тегов.

Смотрите также

  • OnSearchGetTag

Примеры использования

<?
$ar = tags_prepare("apache, Web 2.0, AJAX", "s1");
print_r($ar);

//Будет напечатано:
/*
array(
    "apache" => "apache"
    "Web 2.0" => "Web 2.0"
    "AJAX" => "AJAX"
)
*/
?>


Для разработчиков

Модуль Поисковая оптимизация предназначен для анализа технического исполнения сайта. Он отображает параметры, влияющие на оптимизацию и дает рекомендации по улучшению этих параметров.

Работа модуля во многом связана с модулем Веб-аналитика. Часть функционала Поисковой оптимизации в младших редакциях "1С-Битрикс: Управление сайтом", не содержащих Веб-аналитику, работать не будет.

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("seo")){
//здесь можно использовать функции и классы модуля
}
?>


Поисковая оптимизация в ядре D7

Классы

Список классов модуля Поисковая оптимизация в ядре D7

Класс, простраство имён | Описание
Adv | Пространство имён классов для работы с рекламными кампаниями, объявлениями, баннерами.
AdvEntity | Базовый класс для сущностей внешнего сервиса рекламы.
Engine | Пространство имён транспортных классов для работы с Яндекс.Директ и класса для поддержки централизованной авторизации при работе с Яндекс.Директ.
SitemapFile | Класс для работы с файлами sitemap.
SitemapIblock | Класс, отвечающий за обслуживание событий инфоблоков с целью автоматического отражения изменения в файлах карты сайта.
SitemapIblockTable | Класс для работы с хранилищем привязок инфоблоков к механизму генерации файлов карты сайта.
SitemapRuntime | Класс для работы с временным файлом карты сайта.
SitemapTable | Класс для работы с хранилищем настроек генерации файлов карты сайта.


События модуля

Событие | Описание | С версии
onPageCheck | Событие предназначено для назначения собственных проверок и вывода собственных рекомендаций в инструменте Страница модуля Поисковая оптимизация. |
OnSeoCountersGetList | Событие предназначено для подключения собственного программного счетчика. |


onPageCheck

функция-обработчик(
);

Событие предназначено для назначения собственных проверок и вывода собственных рекомендаций в инструменте Страница модуля Поисковая оптимизация.


OnSeoCountersGetList

функция-обработчик();

Событие OnSeoCountersGetList предназначено для подключения собственного программного счетчика.

Пример использования

function MyOnSeoCountersGetList()
{
  $value = rand(100, 500);
  return
      '<div style="width: 150px; text-align: center; border: solid 1px red; margin: 1px; padding: 5px;">Тестовый счетчик: <b>'.$value.'</b></div>'
      .'<!--/Start webdew.ro/--><a href="http://www.webdew.ro/utils.php"><img src="http://www.webdew.ro/pagerank/free-pagerank-display.php?a=getCode&s=goo" title="Free PageRank Display Code" border="0px" alt="PageRank" /></a><!--/End webdew.ro/-->';
}

addEventHandler('seo', 'OnSeoCountersGetList', 'MyOnSeoCountersGetList');


Для разработчиков

Перед использованием модуля необходимо проверить, установлен ли он, и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("mail")){
//здесь можно использовать функции и классы модуля
}
?>


Почта в ядре D7

Классы

Список классов модуля Почта в ядре D7

Класс, простраство имён | Описание
Imap | Класс для работы с почтой по протоколу Imap.
Message | Класс для работы с сообщениями.
User | Класс для работы с пользователями.


Константы

Константа | Проверяется | С версии
B_PROLOG_INCLUDED | CMailFilter::DoPHPAction | 3.3.1
BX_MAIL_DEFAULT_CHARSET | CMailHeader::Parse | 9.0.0
BX_UTF | CMailUtil::ConvertCharset | 7.0.1


События

Событие | Вызывается | Метод | С версии
OnGetFilterList | при получении списка фильтров. | CMailFilter::GetFilterList | 3.3.1


Для разработчиков

Информация представленная в данном разделе содержит сведения о классах модуля Реклама, баннеры, необходимых для организации показа рекламы на сайте.

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("advertising")){
//здесь можно использовать функции и классы модуля
}
?>

Модуль включает в себя следующие Компоненты 2.0:
Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Баннер | advertising.banner | Выводит баннер заданного типа.


Реклама в ядре D7

Список классов модуля Реклама в ядре D7.

Класс, пространство имён | Описание
Internals | Пространство имён, содержащее классы с обработчиками для конверсии и баннеров.


События

Событие | Вызывается | Метод | С версии
onBannerClick | При клике на баннер | CAdvBanner::Click |
OnBeforeBannerAdd | При создании баннера | CAdvBanner::Set | 15.5.3
OnBeforeBannerUpdate | При редактировании баннера | CAdvBanner::Set | 15.5.3


Классы

Класс | Описание | С версии
CAdvBanner | Класс для работы с рекламными баннерами. | 3.3.4
CAdvContract | Класс для работы с рекламными контрактами. | 3.3.4
CAdvType | Класс для работы с типами баннеров. | 3.3.4


Класс CAdvBanner

CAdvBanner

Класс для работы с рекламными баннерами.

Методы класса

Метод | Описание | С версии
Set | Создает новый баннер, либо обновляет существующий. |
GetList | Возвращает список баннеров с использованием фильтра. |
GetByID | Возвращает один баннер по его ID. |
Delete | Удаляет баннер. |
Show | Выбирает в соответствии с весами (приоритетами) произвольный баннер по указанному типу, фиксирует факт показа баннера в базе данных и возращает готовый HTML баннера (используется в шаблоне сайта для вывода баннеров). |
Click | По заданному ID баннера фиксирует клик по нему в базе данных. |
FixShow | Фиксирует в базе данных факт показа баннера. |
GetRandom | Выбирает в соответствии с весами (приоритетами) произвольный баннер по указанному типу и возвращает массив, частично его описывающий. |
GetHTML | По заданному массиву, описывающему баннер, возвращает готовый HTML баннера. |
GetKeywords | Возвращает весь или часть массива, хранящего ключевые слова, заданные для данной страницы. | 3.3.16
ResetKeywords | Обнуляет массив (либо его части) ключевых слов баннеров, заданных для страницы. | 3.3.16
SetDesiredKeywords | Задает массив желательных ключевых слов для данной страницы. | 3.3.16
SetRequiredKeywords | Задает массив обязательных ключевых слов для данной страницы. | 3.3.16


Click

Реклама, баннеры>Классы>CAdvBanner>Click (3.3.4)

CAdvBanner::Click

CAdvBanner::Click

(
 int BANNER_ID,
 int CONTRACT_ID=false
);

Метод фиксирует клик по баннеру в базе данных. Метод нестатический.

Параметры метода

Параметры | Описание | Удален с версии
BANNER_ID | ID баннера. |
CONTRACT_ID | ID контракта которому принадлежит баннер; если задано false - ID контракта берется из параметров баннера. Необязательный параметр. | 3.3.14


Delete

Реклама, баннеры>Классы>CAdvBanner>Delete (3.3.4)

CAdvBanner::Delete

boolean
CAdvBanner::Delete(
 int BANNER_ID,
 char(1) CHECK_RIGHTS="Y"
);

Метод удаляет баннер. Метод нестатический.

Параметры метода

Параметры | Описание
BANNER_ID | ID баннера.
CHECK_RIGHTS | "Y" - необходимо проверить право на удаление у текущего пользователя; "N" - прав проверять не надо. Необязательный параметр.


FixShow

Реклама, баннеры>Классы>CAdvBanner>FixShow (3.3.4)

CAdvBanner::FixShow

CAdvBanner::FixShow

(
 array arrBanner
);

Метод фиксирует показ баннера в базе данных. Помимо этого, метод устанавливает cookie, в котором фиксирует факт того, что посетителю был показан баннер. Метод нестатический.

Параметры метода

Параметры Описание
arrBanner Массив, описывающий параметры баннера; в массиве достаточно и необходимо иметь наличие следующих индексов и соответствующих значений:
  • ID - ID баннера
  • CONTRACT_ID - ID контракта баннера


GetByID

Реклама, баннеры>Классы>CAdvBanner>GetByID (3.3.4)

CAdvBanner::GetByID

Описание и параметры

record set
CAdvBanner::GetByID(

 int BANNER_ID,
 char(1) CHECK_RIGHTS="Y"

);

Метод возвращает баннер по его ID. Метод нестатический.

Параметры метода

Параметры | Описание | С версии
BANNER_ID | ID баннера. |
CHECK_RIGHTS | Параметр проверяет уровень доступа к модулю Реклама (администратор рекламы, рекламодатель и т.д.). Если параметр определён как "N", то считается, что текущий пользователь обладает административными правами доступа к модулю Реклама. Если параметр пропущен либо равен "Y", то метод проверяет уровень доступа к контракту, которому принадлежит баннер. Необязательный параметр. | 3.3.14

Пример

Пример массива, получаемого после Fetch результата, возвращенного данным методом

<?
Array
(
    [LAMP] => green
    [ID] => 88
    [CONTRACT_ID] => 1
    [TYPE_SID] => TOP
    [GROUP_SID] =>
    [STATUS_SID] => PUBLISHED
    [STATUS_COMMENTS] =>
    [NAME] =>
    [ACTIVE] => Y
    [LID] =>
    [WEIGHT] => 100
    [MAX_SHOW_COUNT] => 300
    [MAX_CLICK_COUNT] => 100
    [SHOW_COUNT] => 102
    [CLICK_COUNT] => 4
    [IMAGE_ID] => 1032
    [IMAGE_ALT] =>
    [URL] => http://www.1c-bitrix.ru?banner_param=#EVENT_GID#
    [URL_TARGET] => _parent
    [CODE] =>
<TABLE class=smalltext cellSpacing=0 cellPadding=0 width=145>
<TR>
<TD></TD>
<TD>
<DIV align=center>
<A class=righthead href="/ru/partners/partnership.php">Партнёрская программа</A>
</DIV></TD></TR>
<TR>
<TD></TD>
<TD height=8></TD></TR>
<TR>
<TD width=5></TD>
<TD vAlign=bottom>
<DIV align=center>
<A href="/ru/partners/partnership.php">
<IMG height=95 src="/images/advert/free.gif" width=100 border=0></A></DIV></TD></TR>
<TR>
<TD></TD>
<TD height=5></TD></TR>
<TR>
<TD></TD>
<TD>Разработчики сайтов и интеграторы получают:<BR>
<B><FONT class=smalltext>
<IMG height=8 src="/images/list_bullet.gif" width=8>
</FONT></B>
<FONT color=#ff5a31>скидки до 50%</FONT>
<BR><B><FONT class=smalltext>
<IMG height=8 src="/images/list_bullet.gif" width=8>
</FONT></B>
<FONT color=#ff5a31>бесплатную копиию</FONT></TD></TR>
<TR>
<TD></TD>
<TD height=5></TD></TR>
<TR>
<TD></TD>
<TD>
<DIV align=right>
<A class=bottomlinks
 href="/ru/partners/partnership.php">Подробнее</A>
 <IMG height=7 src="/images/main_button_more_3.gif" width=7>
 </DIV></TD></TR></TABLE>
    [CODE_TYPE] => html
    [STAT_EVENT_1] =>
    [STAT_EVENT_2] =>
    [STAT_EVENT_3] =>
    [FOR_NEW_GUEST] =>
    [COMMENTS] =>
    [CREATED_BY] => 2
    [MODIFIED_BY] => 2
    [CTR] => 3.92
    [DATE_LAST_SHOW] => 24.06.2004 17:39:50
    [DATE_LAST_CLICK] => 24.06.2004 14:47:53
    [DATE_SHOW_FROM] => 10.06.2004
    [DATE_SHOW_TO] => 07.07.2007
    [DATE_CREATE] => 10.06.2004 11:25:59
    [DATE_MODIFY] => 24.06.2004 14:33:56
    [CONTRACT_NAME] => Default
    [TYPE_NAME] => Top banner
)
?>


GetHTML

Реклама, баннеры>Классы>CAdvBanner>GetHTML (3.3.4)

CAdvBanner::GetHTML

text
CAdvBanner::GetHTML(
array arrBanner
bNoIndex=false
);

Метод возвращает готовый HTML баннера. Метод нестатический.

Параметры метода

Параметры | Описание | С версии
arrBanner Массив, описывающий параметры баннера; в массиве достаточно и необходимо иметь наличие следующих индексов и соответствующих значений:
  • IMAGE_ID - ID изображения баннера (если оно используется)
  • IMAGE_ALT - всплывающая подсказка на изображении (если оно используется)
  • URL - ссылка на изображении
  • URL_TARGET - значение параметра target для тэга <a>, влияет на поведение браузера при клике на изображение баннера
  • CODE - код баннера (если используется)
  • CODE_TYPE - тип кода баннера [text | html]
bNoIndex | Необязательный параметр. | 8.6.0


GetKeywords

Реклама, баннеры>Классы>CAdvBanner>GetKeywords (3.3.16)

CAdvBanner::GetKeywords

Описание и параметры

array
CAdvBanner::GetKeywords(
    varchar(255) TYPE_SID="",
    varchar(255) LOGIC="",
    char(1) EXACT_MATCH=""
);

Описание

Метод возвращает весь или часть массива, хранящего ключевые слова, заданные для данной страницы с помощью методов CAdvBanner::SetDesiredKeywords и CAdvBanner::SetRequiredKeywords. Метод нестатический.

Параметры метода

Параметр | Описание
TYPE_SID | Символьный идентификатор типа рекламы. Если задан, то возвращаются все ключевые слова, заданные для данного типа. Необязательный параметр.
LOGIC | Идентификатор обязательности наличия ключевых слов в баннере. Возможные значения: "DESIRED" либо "REQUIRED". Если задан тип рекламы и данный параметр, то метод возвратит массив ключевых слов, заданных для соответствующего типа и работающих по логике "ПРИСУТСТВИЕ ЖЕЛАТЕЛЬНО" либо "ПРИСУТСТВИЕ ОБЯЗАТЕЛЬНО". Необязательный параметр.
EXACT_MATCH | Идентификатор типа поиска (прямое совпадение либо вхождение части слова). Возможные значения: "Y" либо "N". Если задан тип рекламы, идентификатор логики и данный параметр, то метод возвратит массив ключевых слов, заданных для соответствующего типа, работающих по соответствующей логике, при этом слова в массиве будут заданы для поиска вхождения (EXACT_MATCH=N), либо для поиска прямого совпадения (EXACT_MATCH=Y). Необязательный параметр.

Примеры использования

Array
(
    [LEFT] => Array
    (
        [REQUIRED] => Array
        (
            [Y] => Array
            (
                [0] => GeForce
                [1] => Radion
                [2] => AverTV
                [3] => Sony
            )
        )
    )

    [TOP] => Array
    (
        [DESIRED] => Array
        (
            [N] => Array
            (
                [0] => BMW
                [1] => top soft
                [2] => печать
            )
        )
    )
)

Слова, заданные в вышеописанном массиве, обеспечат следующую логику при выборке баннеров для показа на данной странице:

  1. Для типа "LEFT" с наивысшим приоритетом будут показаны только те баннеры, у которых будут найдены точные совпадения со всеми ключевыми словами "GeForce", "Radion", "AverTV", "Sony".
  2. Для типа "TOP" будут показаны с наивысшим приоритетом только те баннеры, у которых хотя бы одно ключевое слово или его часть будет найдено в списке "BMW", "top soft", "печать".

Если на странице заданы ключевые слова, то возможны две ситуации, когда:

  1. Не будет найден ни один баннер, подходящий под условия ключевых фраз. В этом случае будут показываться все баннеры, у которых список ключевых фраз пуст, в соответствии с приоритетом, указанным в их настройках.
  2. Будет найдено несколько баннеров, удовлетворяющих условию ключевых фраз. В этом случае, среди этих баннеров будет выбран один в соответствии с приоритетом, указанным в его настройках, а также в соответствии с приоритетом, указанным в настройках контракта, к которому принадлежит этот баннер.

Помимо этого, необходимо иметь в виду, что под массивом ключевых фраз баннера понимается сумма массива ключевых фраз заданного в настройках баннера и массива ключевых фраз заданного в настройках контракта, к которому принадлежит баннер.


GetList

Реклама, баннеры>Классы>CAdvBanner>GetList (3.3.4)

CAdvBanner::GetList

Описание и параметры

record set
CAdvBanner::GetList(
 varchar &by,
 varchar &order,
 array arFilter=array(),
 boolean &is_filtered,
 char(1) CHECK_RIGHTS="Y"
);

Метод предназначен для получения списка баннеров. Метод нестатический.

Параметры метода

Параметры | Описание
by Идентификатор, позволяющий задать имя поля для сортировки. Допустимы следующие значения:
  • s_id - по ID
  • s_lamp - по индикатору
  • s_name - по имени баннера
  • s_type_sid - по типу баннера
  • s_contract_id - по ID контракта
  • s_group_sid - по имени группы
  • s_show_count - по количеству показов
  • s_max_show_count - по максимальному количеству показов
  • s_date_last_show - по дате последнего показа
  • s_click_count - по количеству кликов на баннер
  • s_max_click_count - по максимальному количеству кликов
  • s_date_last_click - по дате последнего клика
  • s_active - по флагу активности
  • s_weight - по весу баннера
  • s_status_sid - по статусу баннера
  • s_date_show_from - по дате начала показов
  • s_date_show_to - по дате окончания показов
  • s_ctr - по CTR баннера
order Порядок сортировки. Допустимы следующие значения:
  • desc - по убыванию (значение по умолчанию)
  • asc - по возрастанию
arFilter Массив для фильтрации значений. Необязательный параметр. В массиве допустимы следующие индексы:
  • * ID - ID баннера
  • ID_EXACT_MATCH - "Y" - при фильтрации по ID баннера будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • ACTIVE - активность, значения Y/N
  • LAMP - значение индикатора: "red", "green"
  • LANG - двухсимвольный идентификатор языковой части сайта в которой будет показываться баннер
  • SHOW_COUNT_1 - левая часть интервала для числа показов
  • SHOW_COUNT_2 - правая часть интервала для числа показов
  • CLICK_COUNT_1 - левая часть интервала для числа кликов
  • CLICK_COUNT_2 - правая часть интервала для числа кликов
  • CTR_1 - левая часть интервала для CTR баннера
  • CTR_2 - правая часть интервала для CTR баннера
  • * GROUP - имя группы баннера
  • GROUP_EXACT_MATCH - "Y" - при фильтрации по имени группы будет искаться точное совпадение; "N" - в противном случае будет искаться вхождение (по умолчанию)
  • * STATUS_SID - символьный код статуса; символьный код статуса может принимать следующие значения:
    • PUBLISHED - баннер подтвержден и опубликован
    • READY - баннер на рассмотрении
    • REJECTED - баннер отклонен
  • * CONTRACT_ID - ID контракта
  • CONTRACT_ID_EXACT_MATCH - "Y" - при фильтрации по ID контракта будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • * CONTRACT - ID, имя, описание контракта
  • CONTRACT_EXACT_MATCH - "Y" - при фильтрации по ID, имени, описанию контракта будет искаться точное совпадение; "N" - в противном случае будет искаться вхождение (по умолчанию)
  • * TYPE_SID - символьный код типа баннера
  • TYPE_SID_EXACT_MATCH - "Y" - при фильтрации по символьному коду типа баннера будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • * NAME - имя баннера
  • NAME_EXACT_MATCH - "Y" - при фильтрации по имени баннера будет искаться точное совпадение; "N" - в противном случае будет искаться вхождение (по умолчанию)
  • * CODE - код баннера
  • CODE_EXACT_MATCH - "Y" - при фильтрации по коду баннера будет искаться точное совпадение; "N" - в противном случае будет искаться вхождение (по умолчанию)
  • * COMMENTS - комментарий к баннеру
  • COMMENTS_EXACT_MATCH - "Y" - при фильтрации по комментарию к баннеру будет искаться точное совпадение; "N" - в противном случае будет искаться вхождение (по умолчанию)
  • SITE - для фильтрации по сайтам.
is_filtered | Переменная, возвращающая true в том случае, если список баннеров отфильтрован по какому-либо критерию; либо false в противном случае.
CHECK_RIGHTS | Параметр проверяет уровень доступа к модулю Реклама (администратор рекламы, рекламодатель и т.д.). Если параметр определён как "N", то считается, что текущий пользователь обладает административными правами доступа к модулю Реклама. Если параметр пропущен либо равен "Y", то функция проверяет уровень доступа к модулю. Необязательный параметр.

* - допускается сложная логика и использование [ds]логических операторов[/ds][di]Облегчайте поиск информации вместе с логическими операторами. Система допускает использование пяти видов логических операторов. Давайте их рассмотрим.

Подробнее ... в курсе Администратор.Базовый.[/di]

Примеры использования

<?
$FilterArr = Array(
    "find_id",
    "find_id_exact_match",
    "find_lamp",
    "find_lang",
    "find_show_count_1",
    "find_show_count_2",
    "find_click_count_1",
    "find_click_count_2",
    "find_ctr_1",
    "find_ctr_2",
    "find_contract_id",
    "find_contract",
    "find_contract_exact_match",
    "find_group",
    "find_group_exact_match",
    "find_status_sid",
    "find_type_sid",
    "find_type",
    "find_type_exact_match",
    "find_name",
    "find_name_exact_match",
    "find_code",
    "find_code_exact_match",
    "find_comments",
    "find_comments_exact_match"
    );
if (strlen($set_filter)>0) InitFilterEx($FilterArr,"ADV_BANNER_LIST","set");
else InitFilterEx($FilterArr,"ADV_BANNER_LIST","get");
if (strlen($del_filter)>0) DelFilterEx($FilterArr,"ADV_BANNER_LIST");
InitBVar($find_id_exact_match);
InitBVar($find_status_exact_match);
InitBVar($find_group_exact_match);
InitBVar($find_contract_exact_match);
InitBVar($find_type_exact_match);
InitBVar($find_name_exact_match);
InitBVar($find_code_exact_match);
InitBVar($find_comments_exact_match);
$arFilter = Array(
    "ID"					=> $find_id,
    "ID_EXACT_MATCH"		=> $find_id_exact_match,
    "LAMP"				  => $find_lamp,
    "LANG"				  => $find_lang,
    "SHOW_COUNT_1"		  => $find_show_count_1,
    "SHOW_COUNT_2"		  => $find_show_count_2,
    "CLICK_COUNT_1"		 => $find_click_count_1,
    "CLICK_COUNT_2"		 => $find_click_count_2,
    "CTR_1"				 => $find_ctr_1,
    "CTR_2"				 => $find_ctr_2,
    "GROUP"				 => $find_group,
    "GROUP_EXACT_MATCH"	 => $find_group_exact_match,
    "STATUS_SID"			=> $find_status_sid,
    "CONTRACT_ID"		   => $find_contract_id,
    "CONTRACT"			  => $find_contract,
    "CONTRACT_EXACT_MATCH"  => $find_contract_exact_match,
    "TYPE_SID"			  => $find_type_sid,
    "TYPE"				  => $find_type,
    "TYPE_EXACT_MATCH"	  => $find_type_exact_match,
    "NAME"				  => $find_name,
    "NAME_EXACT_MATCH"	  => $find_name_exact_match,
    "CODE"				  => $find_code,
    "CODE_EXACT_MATCH"	  => $find_code_exact_match,
    "COMMENTS"			  => $find_comments,
    "COMMENTS_EXACT_MATCH"  => $find_comments_exact_match
    );
$rsBanners = CAdvBanner::GetList($by, $order, $arFilter, $is_filtered, "N");
$rsBanners->NavStart(20);
$rsBanners->NavPrint("Баннеры");
while($arBanner = $rsBanners->NavNext(true, "f_"))
{
    echo "<pre>"; print_r($arBanner); echo "</pre>";
}
?>

Пример массива, получаемого после Fetch одной строки выборки данного метода

<?
Array
(
    [LAMP] => green
    [ID] => 88
    [CONTRACT_ID] => 1
    [TYPE_SID] => TOP
    [GROUP_SID] =>
    [STATUS_SID] => PUBLISHED
    [STATUS_COMMENTS] =>
    [NAME] =>
    [ACTIVE] => Y
    [LID] =>
    [WEIGHT] => 100
    [MAX_SHOW_COUNT] => 300
    [MAX_CLICK_COUNT] => 100
    [SHOW_COUNT] => 102
    [CLICK_COUNT] => 4
    [IMAGE_ID] => 1032
    [IMAGE_ALT] =>
    [URL] => http://www.1c-bitrix.ru?banner_param=<code>#EVENT_GID#</code>
    [URL_TARGET] => _parent
    [CODE] => <TABLE class=smalltext cellSpacing=0 cellPadding=0 width=145>
<TR>
<TD></TD>
<TD>
<DIV align=center>
<A class=righthead href="/ru/partners/partnership.php">Партнёрская программа</A>
</DIV>
</TD></TR>
<TR>
<TD></TD>
<TD height=8></TD></TR>
<TR>
<TD width=5></TD>
<TD vAlign=bottom>
<DIV align=center>
<A href="/ru/partners/partnership.php">
<IMG height=95 src="/images/advert/free.gif" width=100 border=0></A>
</DIV></TD></TR>
<TR>
<TD></TD>
<TD height=5></TD></TR>
<TR>
<TD></TD>
<TD>Разработчики сайтов и интеграторы получают:<BR>
<B><FONT class=smalltext>
<IMG height=8 src="/images/list_bullet.gif" width=8>
</FONT></B>
<FONT color=#ff5a31>скидки до 50%</FONT> <BR>
<B><FONT class=smalltext>
<IMG height=8 src="/images/list_bullet.gif" width=8>
</FONT></B>
<FONT color=#ff5a31>бесплатную копиию</FONT>
</TD></TR>
<TR>
<TD></TD>
<TD height=5></TD></TR>
<TR>
<TD></TD>
<TD>
<DIV align=right>
<A class=bottomlinks href="/ru/partners/partnership.php">Подробнее</A>
<IMG height=7 src="/images/main_button_more_3.gif" width=7>
</DIV></TD></TR></TABLE>
    [CODE_TYPE] => html
    [STAT_EVENT_1] =>
    [STAT_EVENT_2] =>
    [STAT_EVENT_3] =>
    [FOR_NEW_GUEST] =>
    [COMMENTS] =>
    [CREATED_BY] => 2
    [MODIFIED_BY] => 2
    [CTR] => 3.92
    [DATE_LAST_SHOW] => 24.06.2004 17:39:50
    [DATE_LAST_CLICK] => 24.06.2004 14:47:53
    [DATE_SHOW_FROM] => 10.06.2004
    [DATE_SHOW_TO] => 07.07.2007
    [DATE_CREATE] => 10.06.2004 11:25:59
    [DATE_MODIFY] => 24.06.2004 14:33:56
    [CONTRACT_NAME] => Default
    [TYPE_NAME] => Top banner
)
?>


GetRandom

Реклама, баннеры>Классы>CAdvBanner>GetRandom (3.3.4)

CAdvBanner::GetRandom

Описание и параметры

array
CAdvBanner::GetRandom(
 varchar(255) TYPE_SID
);

Метод выбирает в соответствии с весами (приоритетами) произвольный баннер по указанному типу и возвращает массив, частично его описывающий. Метод нестатический.

Параметры метода

Параметры | Описание
TYPE_SID | Символьный идентификатор типа.

Пример

Пример массива, возвращаемого методом

Array
(
    [ID] => 94
    [CONTRACT_ID] => 3
    [TYPE_SID] => LEFT2
    [STATUS_SID] => PUBLISHED
    [STATUS_COMMENTS] =>
    [NAME] => Баннер
    [GROUP_SID] => группа 1
    [ACTIVE] => Y
    [LID] =>
    [WEIGHT] => 2000
    [MAX_SHOW_COUNT] => 1000
    [MAX_CLICK_COUNT] => 50
    [SHOW_COUNT] => 67
    [CLICK_COUNT] => 4
    [DATE_LAST_SHOW] => 2004-06-24 14:47:47
    [DATE_LAST_CLICK] => 2004-06-22 11:33:18
    [DATE_SHOW_FROM] => 2004-01-07 00:00:00
    [DATE_SHOW_TO] => 2004-07-07 23:59:59
    [IMAGE_ID] => 1028
    [IMAGE_ALT] => текст подсказки
    [URL] => http://www.1c-bitrix.ru
    [URL_TARGET] => _parent
    [CODE] => <TABLE class=smalltext cellSpacing=0 cellPadding=0 width=145>
<TR>
<TD></TD>
<TD>
<DIV align=center>
<A class=righthead href="/ru/partners/partnership.php">Партнёрская программа</A>
</DIV></TD></TR>
<TR>
<TD></TD>
<TD height=8></TD></TR>
<TR>
<TD width=5></TD>
<TD vAlign=bottom>
<DIV align=center><A href="/ru/partners/partnership.php">
<IMG height=95 src="/images/advert/free.gif" width=100 border=0>
</A></DIV></TD></TR>
<TR>
<TD></TD>
<TD height=5></TD></TR>
<TR>
<TD></TD>
<TD>Разработчики сайтов и интеграторы получают:<BR><B>
<FONT class=smalltext><IMG height=8 src="/images/list_bullet.gif" width=8></FONT></B>
<FONT color=#ff5a31>скидки до 50%</FONT> <BR><B>
<FONT class=smalltext><IMG height=8 src="/images/list_bullet.gif" width=8></FONT></B>
<FONT color=#ff5a31>бесплатную копиию</FONT></TD></TR>
<TR>
<TD></TD>
<TD height=5></TD></TR>
<TR>
<TD></TD>
<TD>
<DIV align=right>
<A class=bottomlinks href="/ru/partners/partnership.php">Подробнее</A>
<IMG height=7 src="/images/main_button_more_3.gif" width=7>
</DIV></TD></TR></TABLE>
    [CODE_TYPE] => html
    [STAT_EVENT_1] =>
    [STAT_EVENT_2] =>
    [STAT_EVENT_3] =>
    [FOR_NEW_GUEST] =>
    [COMMENTS] =>
    [DATE_CREATE] => 2004-06-15 15:13:41
    [CREATED_BY] => 342
    [DATE_MODIFY] => 2004-06-22 19:31:50
    [MODIFIED_BY] => 343
)


ResetKeywords

Реклама, баннеры>Классы>CAdvBanner>ResetKeywords (3.3.16)

CAdvBanner::ResetKeywords

Описание и параметры

array
CAdvBanner::ResetKeywords(
    varchar(255) TYPE_SID="",
    varchar(255) LOGIC="",
    char(1) EXACT_MATCH=""
);

Описание

Метод обнуляет массив (либо его части) ключевых слов баннеров, заданных для страницы. Метод нестатический.

Параметры метода

Параметр | Описание
TYPE_SID | Символьный идентификатор типа рекламы. Если задан, то обнуляется массив ключевых слов, заданных для данного типа. Необязательный параметр.
LOGIC | Идентификатор обязательности наличия ключевых слов в баннере. Возможные значения: "DESIRED" либо "REQUIRED". Если задан тип рекламы и данный параметр, то метод обнулит массив ключевых слов, заданных для соответствующего типа и работающих по логике "ПРИСУТСТВИЕ ЖЕЛАТЕЛЬНО" либо "ПРИСУТСТВИЕ ОБЯЗАТЕЛЬНО". Необязательный параметр.
EXACT_MATCH | Идентификатор типа поиска (прямое совпадение либо вхождение части слова). Возможные значения: "Y" либо "N". Если задан тип рекламы, идентификатор логики поиска баннеров и данный параметр, то обнуляется массив данного параметра, данной логики поиска и данного типа рекламы. Необязательный параметр.

Примеры использования

Пример массива ключевых слов баннеров

Array
(
    [LEFT] => Array
    (
        [REQUIRED] => Array
        (
            [Y] => Array
            (
                [0] => GeForce
                [1] => Radion
            )
            [N] => Array
            (
                [0] => video
                [1] => directx
            )
        )

        [DESIRED] => Array
        (
            [N] => Array
            (
                [0] => game
                [1] => 3D
            )
        )
    )

    [] => Array
    (
        [DESIRED] => Array
        (
            [N] => Array
            (
                [0] => GeForce
                [1] => Radion
                [2] => Sony
            )
        )
    )

    [TOP] => Array
    (
        [DESIRED] => Array
        (
            [N] => Array
            (
                [0] => BMW
                [1] => top soft
                [2] => печать
            )
        )
    )
)

Если для вышеописанного массива вызвать метод CAdvBanner::ResetKeywords("LEFT","REQUIRED","N"), то массив ключевых слов будет выглядеть следующим образом:

Array
(
    [LEFT] => Array
    (
        [REQUIRED] => Array
        (
            [Y] => Array
            (
                [0] => GeForce
                [1] => Radion
            )
        )

        [DESIRED] => Array
        (
            [N] => Array
            (
                [0] => game
                [1] => 3D
            )
        )
    )

    [] => Array
    (
        [DESIRED] => Array
        (
            [N] => Array
            (
                [0] => GeForce
                [1] => Radion
                [2] => Sony
            )
        )
    )

    [TOP] => Array
    (
        [DESIRED] => Array
        (
            [N] => Array
            (
                [0] => BMW
                [1] => top soft
                [2] => печать
            )
        )
    )
)


Set

Реклама, баннеры>Классы>CAdvBanner>Set (3.3.4)

CAdvBanner::Set

Описание и параметры

int
CAdvBanner::Set(
 array arFields,
 int BANNER_ID="",
 char(1) CHECK_RIGHTS="Y"

);

Метод создает новый баннер, либо модифицирует существующий в случае указания во втором параметре ID баннера. Возвращает ID созданного баннера, либо ID модифицированного баннера. Метод нестатический.

Параметры метода

Параметры | Описание
arFields Массив параметров баннера. В массиве допустимы следующие индексы:
  • CONTRACT_ID - ID контракта (обязательный параметр для нового баннера)
  • TYPE_SID - символьный идентификатор типа баннера (обязательный параметр для нового баннера)
  • STATUS_SID - символьный идентификатор статуса баннера, допустимы следующие значения:
    • PUBLISHED - баннер подтвержден и опубликован
    • READY - баннер на рассмотрении
    • REJECTED - баннер отклонен
  • STATUS_COMMENTS - комментарий к статусу
  • NAME - имя баннера
  • GROUP_SID - имя группы баннера
  • ACTIVE - флаг активности: "Y" - баннер активен; "N" - баннер не активен;
  • arrSITE - код языковой части сайта, в которой будет показываться баннер
  • WEIGHT - вес (приоритет) баннера
  • MAX_SHOW_COUNT - максимальное количество показов баннера
  • RESET_SHOW_COUNT - флаг необходимости сбросить счетчик показов у баннера (автоматически будет уменьшен счетчик показов у всего контракта)
  • MAX_CLICK_COUNT - максимальное количество кликов на баннер
  • RESET_CLICK_COUNT - флаг необходимости сбросить счетчик кликов на баннер (автоматически будет уменьшен счетчик кликов у всего контракта)
  • DATE_SHOW_FROM - дата начала показов баннера
  • DATE_SHOW_TO - дата окончания показов баннера
  • arrIMAGE_ID - массив, описывающий загружаемое изображение; в массиве допустимые следующие индексы:
    • name - исходное имя загружаемого файла
    • type - тип загружаемого файла (например: "image/gif")
    • tmp_name - имя временного файла на сервере
    • error - код ошибки ("0" - нет ошибок)
    • size - размер загружаемого файла
    • MODULE_ID - идентификатор модуля ("advertising")
  • IMAGE_ALT - текст всплывающей подсказки к изображению
  • URL - ссылка на изображение. В данном поле можно использовать шаблон #EVENT_GID#, который при клике на баннер будет заменен на идентификатор посетителя, который используется в модуле статистики при загрузке событий.
  • URL_TARGET - в данном поле вы можете задать строку, влияющую на поведение браузера при нажатии на ссылку-изображение:
    • _self - открыть в текущем окне
    • _blank - открыть в новом окне
    • _parent - открыть в своем фреймсете
    • _top - во всем текущем окне браузера
  • CODE - код баннера
  • CODE_TYPE - тип кода баннера: "text" - код баннера будет выведен как текст; "html" - код баннера будет выведен как HTML;
  • STAT_EVENT_1 - идентификатор типа события - " event1" (события регистрируются в модуле статистики)
  • STAT_EVENT_2 - идентификатор типа события - " event2"
  • STAT_EVENT_3 - дополнительный параметр события - " event3". В коде баннера, event1, event2, event3 можно использовать следующие шаблоны:
    • #BANNER_NAME# - имя баннера
    • #BANNER_ID# - ID баннера
    • #CONTRACT_ID# - ID контракта
    • #TYPE_SID# - тип баннера
  • FOR_NEW_GUEST - "Y" - показывать баннер только для новых посетителей; "N" - показывать баннер только для посетителей уже посещавших сайт
  • COMMENTS - комментарий к баннеру
  • arrSHOW_PAGE - массив страниц и разделов сайта, на которых должен показываться баннер
  • arrNOT_SHOW_PAGE - массив страниц и разделов сайта, на которых не должен показываться баннер
  • arrCOUNTRY - массив двухсимвольных кодов стран, посетителям которых необходимо показывать баннер
  • arrSTAT_ADV - массив идентификаторов рекламных кампаний, посетителям которых необходимо показывать баннер (как на прямых заходах, так и на возвратах)
  • arrWEEKDAY - массив, описывающий время и дни недели для показа баннера; в массиве допустимы следующие индексы:
    • SUNDAY - массив часов в которые надо показывать баннер в воскресенье (0-23)
    • MONDAY - -||- в понедельник
    • TUESDAY - -||- во вторник
    • WEDNESDAY - -||- в среду
    • THURSDAY - -||- в четверг
    • FRIDAY - -||- в пятницу
    • SATURDAY - -||- в субботу
  • SEND_EMAIL - флаг необходимости отослать EMail владельцам контракта при смене статуса баннера; письмо отсылается по шаблону "Изменился статус баннера"
BANNER_ID | ID баннера, если не указывать - создаётся новый баннер.
CHECK_RIGHTS | Флаг необходимости проверки прав текущего пользователя: "Y" - необходимо проверить права текущего пользователя; "N" - баннер создавать и модифицировать независимо от прав текущего пользователя. Необязательный параметр.

Примеры использования

Пример кода, добавляющего новый баннер, либо модифицирующего существующий:

<?
if ((strlen($save)>0 || strlen($apply)>0) && $REQUEST_METHOD=="POST")
{
    InitBVar($SEND_EMAIL);
    $arrIMAGE_ID = $HTTP_POST_FILES["IMAGE_ID"];
    $arrIMAGE_ID["MODULE_ID"] = "advertising";
    $arrIMAGE_ID["del"] = ${"IMAGE_ID_del"};
    $arrWEEKDAY = array(
        "SUNDAY"	=> $arrSUNDAY,
        "MONDAY"	=> $arrMONDAY,
        "TUESDAY"   => $arrTUESDAY,
        "WEDNESDAY" => $arrWEDNESDAY,
        "THURSDAY"  => $arrTHURSDAY,
        "FRIDAY"	=> $arrFRIDAY,
        "SATURDAY"  => $arrSATURDAY
        );
    if ($action=="view" && $isAbsAdmin)
    {
         $arFields = array(
            "STATUS_SID"		=> $STATUS_SID,
            "STATUS_COMMENTS"   => $STATUS_COMMENTS
            );
    }
    else
    {
         $arFields = array(
            "CONTRACT_ID"	   => $CONTRACT_ID,
            "TYPE_SID"		  => $TYPE_SID,
            "STATUS_SID"		=> $STATUS_SID,
            "STATUS_COMMENTS"   => $STATUS_COMMENTS,
            "NAME"			  => $NAME,
            "GROUP_SID"		 => $GROUP_SID,
            "ACTIVE"		=> $ACTIVE,
            "arrSITE"		=> $arrSITE,
            "WEIGHT"		=> $WEIGHT,
            "MAX_SHOW_COUNT"	=> $MAX_SHOW_COUNT,
            "RESET_SHOW_COUNT"  => $RESET_SHOW_COUNT,
            "MAX_CLICK_COUNT"   => $MAX_CLICK_COUNT,
            "RESET_CLICK_COUNT" => $RESET_CLICK_COUNT,
            "DATE_SHOW_FROM"	=> $DATE_SHOW_FROM,
            "DATE_SHOW_TO"	  => $DATE_SHOW_TO,
            "arrIMAGE_ID"	   => $arrIMAGE_ID,
            "IMAGE_ALT"		 => $IMAGE_ALT,
            "URL"			   => $URL,
            "URL_TARGET"		=> $URL_TARGET,
            "CODE"			  => $CODE,
            "CODE_TYPE"		 => $CODE_TYPE,
            "STAT_EVENT_1"	  => $STAT_EVENT_1,
            "STAT_EVENT_2"	  => $STAT_EVENT_2,
            "STAT_EVENT_3"	  => $STAT_EVENT_3,
            "FOR_NEW_GUEST"	 => $FOR_NEW_GUEST,
            "COMMENTS"		  => $COMMENTS,
            "arrSHOW_PAGE"	  => split("[\n\r]",$SHOW_PAGE),
            "arrNOT_SHOW_PAGE"  => split("[\n\r]",$NOT_SHOW_PAGE),
            "arrCOUNTRY"		=> $arrCOUNTRY,
            "arrSTAT_ADV"	   => $arrSTAT_ADV,
            "arrWEEKDAY"		=> $arrWEEKDAY,
            "SEND_EMAIL"		=> $SEND_EMAIL
            );
    }
    if ($ID = CAdvBanner::Set($arFields, $ID))
    {
        if (strlen($strError) <= 0)
        {
             if (strlen($save) > 0)
                 LocalRedirect("adv_banner_list.php?lang=".LANG);
             else
                 LocalRedirect("adv_banner_edit.php?ID=".$ID."&CONTRACT_ID=".$CONTRACT_ID."&lang=".LANG."&action=".$action);
        }
    }
    $DB->PrepareFields("b_adv_banner");
}
?>


SetDesiredKeywords

Реклама, баннеры>Классы>CAdvBanner>SetDesiredKeywords (3.3.16)

CAdvBanner::SetDesiredKeywords

Описание и параметры

CAdvBanner::SetDesiredKeywords(
    mixed keywords,
    varchar(255) TYPE_SID=""
);

Описание

Метод задает массив желательных ключевых слов для данной страницы. Если одно из ключевых слов баннера (либо контракта, к которому принадлежит баннер) будет найдено в данном массиве, то этот баннер будет показываться на данной странице с более высоким приоритетом. В случае, если не будет найден ни один баннер, отвечающий установленным ключевым словам, то баннер для показа будет выбран из тех, для которых вообще не установлено ни одно ключевое слово. Метод нестатический.

Параметры метода

Параметр | Описание
keywords | Ключевые слова. Конструкции, которые можно передавать в этом параметре, описаны в примечаниях ниже.
TYPE_SID | Идентификатор типа. В данном параметре вы можете указать тип рекламы для которой будут заданы ключевые слова. Если данный параметр оставить пустым, то ключевые слова будут заданы для всех типов. Необязательный параметр.

Примеры использования

Пример использования на конкретной странице:

<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if (CModule::IncludeModule("advertising"))
{
     // желательные ключевые слова с точным совпадением
     $arrKeywords = array();
     $arrKeywords[] = array("EXACT_MATCH" => "Y", "KEYWORD" => "GeForce");
     $arrKeywords[] = array("EXACT_MATCH" => "Y", "KEYWORD" => "video");
     CAdvBanner::SetDesiredKeywords($arrKeywords, "LEFT");

     // желательные ключевые слова с вхождением
     CAdvBanner::SetDesiredKeywords(array("Ford", "BMW", "Lada"), "RIGHT");
}

$APPLICATION->SetTitle("Заголовок страницы");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");

// тело страницы
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog.php");
?>

Пример использования для всего сайта, в prolog_after.php:

<?
if (CModule::IncludeModule("advertising"))
{
    CAdvBanner::SetDesiredKeywords($APPLICATION->GetPageProperty("keywords"));
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
...
Примечания

Конструкции, которые можно передавать в параметре keywords, включают.

  1. Массив, состоящий из массивов, каждый из которых имеет ключи:
    • EXACT_MATCH - указывает как искать слово - точное совпадение (Y), либо вхождение (N).
    • KEYWORDS - ключевое слово.
    Пример:

    Array
(
    [0] => Array
    (
        [EXACT_MATCH] => Y
        [KEYWORD] => GeForce
    )

    [1] => Array
    (
        [EXACT_MATCH] => Y
        [KEYWORD] => Radeon
    )
)
  2. Массив, элементами которого будут являться сами ключевые слова.

    Пример:

    Array
(
    [0] => GeForce
    [1] => Radion
    [2] => Sony
)
    В этом варианте по умолчанию в дальнейшем будет искаться вхождение ключевых слов баннера в данные ключевые слова (либо наоборот).

  3. Список ключевых слов, разделенных запятой.

    Пример:

    "GeForce, Radion, Sony"
    В этом варианте по умолчанию в дальнейшем будет также искаться вхождение ключевых слов баннера в данные ключевые слова (либо наоборот).


SetRequiredKeywords

Реклама, баннеры>Классы>CAdvBanner>SetRequiredKeywords (3.3.16)

CAdvBanner::SetRequiredKeywords

Описание и параметры

CAdvBanner::SetRequiredKeywords(
    mixed keywords,
    varchar(255) TYPE_SID=""
);

Описание

Метод задает массив обязательных ключевых слов для данной страницы. Баннер будет показан на данной странице с наивысшим приоритетом только в том случае, если все слова из заданного с помощью данного метода массива, будут найдены в ключевых словах баннера (либо контракта к которому принадлежит баннер). В случае, если не будет найден ни один баннер, отвечающий установленным ключевым словам, то баннер для показа будет выбран из тех, для которых вообще не установлено ни одно ключевое слово. Метод нестатический.

Параметры метода

Параметр | Описание
keywords | Ключевые слова. Конструкции, которые можно передавать в этом параметре, описаны в примечаниях ниже.
TYPE_SID | Идентификатор типа. В данном параметре можно указать тип рекламы, для которой будут заданы ключевые слова. Если данный параметр оставить пустым, то ключевые слова будут заданы для всех типов. Необязательный параметр.

Примеры использования

Пример использования на конкретной странице:

<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if (CModule::IncludeModule("advertising"))
{
    // обязательные ключевые слова с точным совпадением
    $arrKeywords = array();
    $arrKeywords[] = array("EXACT_MATCH" => "Y", "KEYWORD" => "GeForce");
    $arrKeywords[] = array("EXACT_MATCH" => "Y", "KEYWORD" => "video");
    CAdvBanner::SetRequiredKeywords($arrKeywords, "LEFT");

    // обязательные ключевые слова с вхождением
    CAdvBanner::SetRequiredKeywords(array("Ford", "BMW", "Lada"), "RIGHT");
}

$APPLICATION->SetTitle("Заголовок страницы");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_after.php");

// тело страницы
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog.php");
?>

Пример использования для всего сайта, в prolog_after.php:

<?
if (CModule::IncludeModule("advertising"))
{
    CAdvBanner::SetRequiredKeywords($APPLICATION->GetProperty("keywords"));
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
...

Если на странице заданы ключевые слова, то возможны две ситуация:

  1. Не будет найден ни один баннер, подходящий под условия ключевых фраз. В этом случае будут показываться все баннеры, у которых список ключевых фраз пуст, в соответствии с приоритетом, указанным в их настройках.
  2. Будет найдено несколько баннеров, удовлетворяющих условию ключевых фраз. В этом случае среди этих баннеров будет выбран один в соответствии с приоритетом, указанным в его настройках, а также в соответствии с приоритетом, указанным в настройках контракта, к которому принадлежит этот баннер.

Помимо этого, необходимо иметь в виду что под массивом ключевых фраз баннера понимается сумма массива ключевых фраз, заданного в настройках баннера, и массива ключевых фраз, заданного в настройках контракта, к которому принадлежит баннер.

Примечания

Конструкции, которые можно передавать в параметре keywords, включают в себя:

  1. Массив, состоящий из массивов, каждый из которых имеет ключи:
    • EXACT_MATCH - указывает как искать слово - точное совпадение (Y), либо вхождение (N).
    • KEYWORDS - ключевое слово.
    Пример:

    Array
(
    [0] => Array
    (
        [EXACT_MATCH] => Y
        [KEYWORD] => GeForce
    )

    [1] => Array
    (
        [EXACT_MATCH] => Y
        [KEYWORD] => Radeon
    )
)
  2. Массив, элементами которого будут являться сами ключевые слова.

    Пример:

    Array
(
    [0] => GeForce
    [1] => Radion
    [2] => Sony
)
    В этом варианте по умолчанию в дальнейшем будет искаться вхождение ключевых слов баннера в данные ключевые слова (либо наоборот).

  3. Список ключевых слов, разделенных запятой.

    Пример:

    "GeForce, Radion, Sony"
    В этом варианте по умолчанию в дальнейшем будет также искаться вхождение ключевых слов баннера в данные ключевые слова (либо наоборот).


Show

Реклама, баннеры>Классы>CAdvBanner>Show (3.3.4)

CAdvBanner::Show

Описание и параметры

text

   CAdvBanner::Show(
varchar(255)  TYPE_SID,
text HTML_BEFORE=false,
text HTML_AFTER=false,
);

Метод выбирает в соответствии с весами (приоритетами) произвольный баннер по указанному типу, фиксирует факт показа баннера в базе данных и возвращает готовый HTML баннера (используется в шаблоне сайта для вывода баннеров). Метод нестатический.

Параметры метода

Параметры | Описание | С версии
TYPE_SID | Символьный идентификатор типа. |
HTML_BEFORE | Необязательный параметр. | 4.0.0
HTML_AFTER | Необязательный параметр. | 4.0.0

Примеры использования

<!-- Пример кода, который может быть использован
в HTML шаблоне сайта для вывода баннера типа "TOP": -->

<?
if (CModule::IncludeModule("advertising")) :
    $s = CAdvBanner::Show("TOP");
    if (strlen($s)>0) :
        // выводим HTML баннера
        ?>
        <table width="0%" border="0" cellspacing="0" cellpadding="0">
            <tr>
                <td align=center><?=$s?></td>
            </tr>
        </table>
        <?
    endif;
endif;
?>


Класс CAdvContract

CAdvContract

Класс для работы с рекламными контрактами.

Методы класса

Метод | Описание | С версии
Set | Создает новый рекламный контракт, либо обновляет существующий. |
GetList | Возвращает список контрактов с использованием фильтра. |
GetByID | Возвращает один контракт по его ID. |
Delete | Удаляет контракт и все баннеру, к нему привязанные. |
GetUserPermissions | Возвращает массив прав заданного пользователя по всем контрактам. | 3.3.14
GetContractPermissions | Возвращает массив прав всех пользователей по заданному контракту. | 3.3.14
IsModuleAccess | Возвращает true, если текущий пользователь отвечает правам, переданным в качестве параметров, иначе false. |


Delete

Реклама, баннеры>Классы>CAdvContract>Delete (3.3.4)

CAdvContract::Delete

boolean
CAdvContract::Delete(
 int CONTRACT_ID,
 char(1) CHECK_RIGHTS="Y"

);

Метод удаляет контракт и все баннеры, к нему привязанные. Метод нестатический.

Параметры метода

Параметры | Описание
CONTRACT_ID | ID контракта.
CHECK_RIGHTS | "Y" - необходимо проверить право на удаление у текущего пользователя; "N" - прав проверять не надо. Необязательный параметр.


GetByID

Реклама, баннеры>Классы>CAdvContract>GetByID (3.3.4)

CAdvContract::GetByID

Описание и параметры

record set
CAdvContract::GetByID(

 int CONTRACT_ID,

 char(1) CHECK_RIGHTS="Y"

);

Метод возвращает контракт по его ID. Метод нестатический.

Параметры метода

Параметры | Описание
CONTRACT_ID | ID контракта.
CHECK_RIGHTS | Параметр проверяет уровень доступа к модулю Реклама (администратор рекламы, рекламодатель и т.д.). Если параметр определён как "N", то считается, что текущий пользователь обладает административными правами доступа к модулю Реклама. Если параметр пропущен либо равен "Y", то метод проверяет уровень доступа к контракту, которому принадлежит баннер. Необязательный параметр.

Пример

Пример массива, получаемого после Fetch результата, возвращенного данному методу

<?
Array
(
    [LAMP] => green
    [ID] => 3
    [ACTIVE] => Y
    [NAME] => заголовок контракта
    [DESCRIPTION] => описание контракта
    [ADMIN_COMMENTS] => административный комментарий
    [WEIGHT] => 1000
    [SORT] => 200
    [MAX_SHOW_COUNT] => 1000
    [SHOW_COUNT] => 312
    [MAX_CLICK_COUNT] => 100
    [CLICK_COUNT] => 64
    [EMAIL_COUNT] => 0
    [CREATED_BY] => 2
    [MODIFIED_BY] => 2
    [DEFAULT_STATUS_SID] => READY
    [CTR] => 20.51
    [DATE_SHOW_FROM] => 15.06.2004
    [DATE_SHOW_TO] => 07.07.2009
    [DATE_CREATE] => 07.06.2004 19:04:55
    [DATE_MODIFY] => 24.06.2004 10:56:08
    [BANNER_COUNT] => 12
)
?>


GetContractPermissions

Реклама, баннеры>Классы>CAdvContract>GetContractPermissions (3.3.14)

CAdvContract::GetContractPermissions

Описание и параметры

text
CAdvContract::GetContractPermissions(
 int CONTRACT_ID
);

Метод возвращает права всех пользователей по заданному контракту. Метод нестатический.

Параметры метода

Параметры | Описание
CONTRACT_ID | ID контракта.

Пример

Пример массива, возвращаемого методом

Array
(
    [VIEW] => Array
        (
            [0] => Array
                (
                    [USER_ID] => 341
                    [USER_LOGIN] => view
                    [USER_NAME] => Сергей
                    [USER_LAST_NAME] => Рыжиков
                    [USER_EMAIL] => mail@server.com
                )

            [1] => Array
                (
                    [USER_ID] => 340
                    [USER_LOGIN] => edit
                    [USER_NAME] => Анна
                    [USER_LAST_NAME] => Долгова
                    [USER_EMAIL] => mail@server.com
                )

            [2] => Array
                (
                    [USER_ID] => 2
                    [USER_LOGIN] => nessy
                    [USER_NAME] => Vitaly
                    [USER_LAST_NAME] => Kaplich
                    [USER_EMAIL] => nessy@bitrix.bx
                )

        )

    [ADD] => Array
        (
            [0] => Array
                (
                    [USER_ID] => 342
                    [USER_LOGIN] => add
                    [USER_NAME] => Андрей
                    [USER_LAST_NAME] =>
                    [USER_EMAIL] => mail@server.com
                )

            [1] => Array
                (
                    [USER_ID] => 340
                    [USER_LOGIN] => edit
                    [USER_NAME] => Анна
                    [USER_LAST_NAME] => Долгова
                    [USER_EMAIL] => mail@server.com
                )

            [2] => Array
                (
                    [USER_ID] => 2
                    [USER_LOGIN] => nessy
                    [USER_NAME] => Vitaly
                    [USER_LAST_NAME] => Kaplich
                    [USER_EMAIL] => nessy@bitrix.bx
                )

        )

    [EDIT] => Array
        (
            [0] => Array
                (
                    [USER_ID] => 340
                    [USER_LOGIN] => edit
                    [USER_NAME] => Анна
                    [USER_LAST_NAME] => Долгова
                    [USER_EMAIL] => mail@server.com
                )

            [1] => Array
                (
                    [USER_ID] => 2
                    [USER_LOGIN] => nessy
                    [USER_NAME] => Vitaly
                    [USER_LAST_NAME] => Kaplich
                    [USER_EMAIL] => nessy@bitrix.bx
                )

        )

)


GetList

Реклама, баннеры>Классы>CAdvContract>GetList (3.3.4)

CAdvContract::GetList

Описание и параметры

record set
CAdvContract::GetList(
 varchar &by,
 varchar &order,
 array arFilter=array(),
 boolean &is_filtered,

 char(1) CHECK_RIGHTS="Y"
);

Метод предназначен для получения списка контрактов. Метод нестатический.

Параметры метода

Параметры | Описание
by Идентификатор, позволяющий задать имя поля для сортировки. Допустимы следующие значения:
  • s_id - по ID
  • s_lamp - по индикатору контракта
  • s_name - по заголовку контракта
  • s_description - по описанию контракта
  • s_active - по флагу активности
  • s_weight - по весу
  • s_sort - по сортировке
  • s_date_modify - по дате модификации
  • s_modified_by - по ID пользователя, изменившего контракт
  • s_banner_count - по числу баннеров, приписанных к контракту
  • s_ctr - по отклику (CTR) контракта
  • s_show_count - по суммарному числу показов баннеров контракта
  • s_max_show_count - по максимальному суммарному числу всех показов баннеров контракта
  • s_click_count - по суммарному числу кликов на баннеры контракта
  • s_max_click_count - по максимальному суммарному числу кликов на баннеры контракта
arFilter Массив для фильтрации значений. Необязательный параметр. В массиве допустимы следующие индексы:
  • ID - ID контракта (допускается сложная логика)
  • - "Y" - при фильтрации по ID контракта будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • LAMP - значение индикатора: "red", "green"
  • DATE_MODIFY_1 - левая часть интервала для даты модификации контракта
  • DATE_MODIFY_2 - правая часть интервала для даты модификации контракта
  • NAME - имя контракта (допускается сложная логика)
  • NAME_EXACT_MATCH - "Y" - при фильтрации по имени контракта будет искаться точное совпадение; "N" - в противном случае будет искаться вхождение (по умолчанию)
  • DESCRIPTION - описание контракта (допускается сложная логика)
  • DESCRIPTION_EXACT_MATCH - "Y" - при фильтрации по описанию контракта будет искаться точное совпадение; "N" - в противном случае будет искаться вхождение (по умолчанию)
  • OWNER - ID, ФИО, логин владельца контракта (допускается сложная логика)
  • OWNER_EXACT_MATCH - "Y" - при фильтрации по ID, ФИО, логину владельца контракта будет искаться точное совпадение; "N" - в противном случае будет искаться вхождение (по умолчанию)
  • BANNER_COUNT_1 - левая часть интервала для числа баннеров контракта
  • BANNER_COUNT_2 - правая часть интервала для числа баннеров контракта
  • SHOW_COUNT_1 - левая часть интервала для суммарного числа показов баннеров контракта
  • SHOW_COUNT_2 - правая часть интервала для суммарного числа показов баннеров контракта
  • CLICK_COUNT_1 - левая часть интервала для суммарного числа кликов по баннерам контракта
  • CLICK_COUNT_2 - правая часть интервала для суммарного числа кликов по баннерам контракта
  • CTR_1 - левая часть интервала для CTR контракта
  • CTR_2 - правая часть интервала для CTR контракта
  • ADMIN_COMMENTS - административный комментарий к контракту (допускается сложная логика)
  • ADMIN_COMMENTS_EXACT_MATCH - "Y" - при фильтрации по административному комментарию к контракту будет искаться точное совпадение; "N" - в противном случае будет искаться вхождение (по умолчанию)
CHECK_RIGHTS | Параметр проверяет уровень доступа к модулю Реклама (администратор рекламы, рекламодатель и т.д.) Если параметр определён как "N", то считается, что текущий пользователь обладает административными правами доступа к модулю Реклама. Если параметр пропущен либо равен "Y", то метод проверяет уровень доступа к контракту, которому принадлежит баннер. Необязательный параметр.

Примеры использования

<?
// фильтр
$FilterArr = Array(
    "find_id",
    "find_id_exact_match",
    "find_date_modify_1",
    "find_date_modify_2",
    "find_name",
    "find_name_exact_match",
    "find_description",
    "find_description_exact_match",
    "find_lamp",
    "find_owner",
    "find_owner_exact_match",
    "find_banner_count_1",
    "find_banner_count_2",
    "find_show_count_1",
    "find_show_count_2",
    "find_click_count_1",
    "find_click_count_2",
    "find_ctr_1",
    "find_ctr_2",
    "find_admin_comments",
    "find_admin_comments_exact_match"
    );
if (strlen($set_filter)>0) InitFilterEx($FilterArr,"ADV_CONTRACT_LIST","set");
else InitFilterEx($FilterArr,"ADV_CONTRACT_LIST","get");
if (strlen($del_filter)>0) DelFilterEx($FilterArr,"ADV_CONTRACT_LIST");
InitBVar($find_id_exact_match);
InitBVar($find_name_exact_match);
InitBVar($find_description_exact_match);
InitBVar($find_owner_exact_match);
InitBVar($find_admin_comments_exact_match);
$arFilter = Array(
    "ID"							=> $find_id,
    "ID_EXACT_MATCH"				=> $find_id_exact_match,
    "DATE_MODIFY_1"				 => $find_date_modify_1,
    "DATE_MODIFY_2"				 => $find_date_modify_2,
    "NAME"						  => $find_name,
    "NAME_EXACT_MATCH"			  => $find_name_exact_match,
    "DESCRIPTION"				   => $find_description,
    "DESCRIPTION_EXACT_MATCH"	   => $find_description_exact_match,
    "LAMP"						  => $find_lamp,
    "OWNER"						 => $find_owner,
    "OWNER_EXACT_MATCH"			 => $find_owner_exact_match,
    "BANNER_COUNT_1"				=> $find_banner_count_1,
    "BANNER_COUNT_2"				=> $find_banner_count_2,
    "SHOW_COUNT_1"				  => $find_show_count_1,
    "SHOW_COUNT_2"				  => $find_show_count_2,
    "CLICK_COUNT_1"				 => $find_click_count_1,
    "CLICK_COUNT_2"				 => $find_click_count_2,
    "CTR_1"						 => $find_ctr_1,
    "CTR_2"						 => $find_ctr_2,
    "ADMIN_COMMENTS"				=> $find_admin_comments,
    "ADMIN_COMMENTS_EXACT_MATCH"	=> $find_admin_comments_exact_match
    );
$rsAdvContract = CAdvContract::GetList($by, $order, $arFilter, $is_filtered, "N");
?>

Пример массива, получаемого после Fetch одной строки выборки данного метода

<?
Array
(
    [LAMP] => green
    [ID] => 3
    [ACTIVE] => Y
    [NAME] => заголовок контракта
    [DESCRIPTION] => описание контракта
    [ADMIN_COMMENTS] => административный комментарий
    [WEIGHT] => 1000
    [SORT] => 200
    [MAX_SHOW_COUNT] => 1000
    [SHOW_COUNT] => 312
    [MAX_CLICK_COUNT] => 100
    [CLICK_COUNT] => 64
    [EMAIL_COUNT] => 0
    [CREATED_BY] => 2
    [MODIFIED_BY] => 2
    [DEFAULT_STATUS_SID] => READY
    [CTR] => 20.51
    [DATE_SHOW_FROM] => 15.06.2004
    [DATE_SHOW_TO] => 07.07.2009
    [DATE_CREATE] => 07.06.2004 19:04:55
    [DATE_MODIFY] => 24.06.2004 10:56:08
    [BANNER_COUNT] => 12
)
?>


GetUserPermissions

Реклама, баннеры>Классы>CAdvContract>GetUserPermissions (3.3.14)

CAdvContract::GetUserPermissions

text
CAdvContract::GetUserPermissions(
 int USER_ID=false
 CONTRACT_ID=0);

Метод возвращает массив прав заданного пользователя по всем контрактам. Метод нестатический.

Параметры метода

Параметры | Описание
USER_ID | ID пользователя; если не определён - используется ID текущего пользователя. Необязательный параметр.
CONTRACT_ID | Необязательный параметр.

Пример массива, возвращаемого методом

Array
(
    [34] => Array
        (
            [0] => ADD
            [1] => VIEW
            [2] => EDIT
        )
    [52] => Array
        (
            [0] => ADD
            [1] => VIEW
        )
)

Индексом массива является ID контракта. Значением - массив прав на данный контракт.


IsModuleAccess

Реклама, баннеры>Классы>CAdvContract>IsModuleAccess (3.3.4 Удален с версии 8.0.0)

CAdvContract::IsModuleAccess

boolean
CAdvContract::IsModuleAccess(
 char(1) permission
);

Метод возвращает true, если текущий пользователь имеет право, переданное в качестве параметра, иначе false.

Параметры метода

Параметры Описание
permission Символ, отвечающий за то или иное право на модуль рекламы. Возможны следующие значения:
  • D - доступ закрыт
  • K - работа с контрактами (рекламодатель)
  • R - просмотр всего без права изменения
  • T - управление баннерами
  • W - полный административный доступ


Set

Реклама, баннеры>Классы>CAdvContract>Set (3.3.4)

CAdvContract::Set

Описание и параметры

int
CAdvContract::Set(
 array arFields,
 int CONTRACT_ID="",
 char(1) CHECK_RIGHTS="Y"

);

Метод создает новый контракт, либо модифицирует существующий в случае указания во втором параметре ID контракта. Возвращает ID созданного контракта, либо ID модифицированного контракта. Метод нестатический.

Параметры метода

Параметры | Описание
arFields Массив параметров контракта. В массиве допустимы следующие индексы:
  • ACTIVE - флаг активности: "Y" - контракт активен; "N" - контракт не активен;
  • NAME - заголовок контракта
  • DESCRIPTION - описание контракта
  • ADMIN_COMMENTS - административный комментарий
  • WEIGHT - вес (приоритет) контракта
  • SORT - порядок сортировки
  • MAX_SHOW_COUNT - максимальное суммарное число показов всех баннеров контракта
  • MAX_CLICK_COUNT - максимальное суммарное число кликов на все баннеры контракта
  • DATE_SHOW_FROM - дата начала показов баннеров
  • DATE_SHOW_TO - дата окончания показов баннеров
  • DEFAULT_STATUS_SID - статус по умолчанию для новых баннеров или при модификации отображаемой части существующих, допустимы следующие значения:
    • PUBLISHED - баннер подтвержден и опубликован
    • READY - баннер на рассмотрении
    • REJECTED - баннер отклонен
  • arrSHOW_PAGE - массив страниц и разделов сайта, на которых должны показываться баннеры контракта
  • arrNOT_SHOW_PAGE - массив страниц и разделов сайта, на которых не могут показываться баннеры контракта
  • arrTYPE - массив доступных типов баннеров
  • arrWEEKDAY - массив, описывающий время и дни недели для показа баннера; в массиве допустимы следующие индексы:
    • SUNDAY - массив часов, в которые надо показывать баннер в воскресенье (0-23)
    • MONDAY - -||- в понедельник
    • TUESDAY - -||- во вторник
    • WEDNESDAY - -||- в среду
    • THURSDAY - -||- в четверг
    • FRIDAY - -||- в пятницу
    • SATURDAY - -||- в субботу
  • arrUSER_VIEW - массив ID пользователей, для которых доступен просмотр параметров контракта и баннеров и их графики
  • arrUSER_ADD - массив ID пользователей, для которых доступен просмотр параметров контракта и управление баннерами
  • arrUSER_EDIT - массив ID пользователей, для которых доступно редактирование заголовка и описания контракта, а также возможность назначения прав для просмотра и управления баннерами
CONTRACT_ID | ID контракта, если не указывать - создаётся новый контракт.
CHECK_RIGHTS | Флаг необходимости проверки прав текущего пользователя: "Y" - необходимо проверить права текущего пользователя; "N" - контракт создавать и модифицировать независимо от прав текущего пользователя. Необязательный параметр.

Примеры использования

Пример кода, добавляющего новый контракт, либо модифицирующего существующий:

<?
if ((strlen($save)>0 || strlen($apply)>0) && $REQUEST_METHOD=="POST")
{
    $arrWEEKDAY = array(
        "SUNDAY"	=> $arrSUNDAY,
        "MONDAY"	=> $arrMONDAY,
        "TUESDAY"	=> $arrTUESDAY,
        "WEDNESDAY"	=> $arrWEDNESDAY,
        "THURSDAY"	=> $arrTHURSDAY,
        "FRIDAY"	=> $arrFRIDAY,
        "SATURDAY"	=> $arrSATURDAY
        );
    $arFields = array(
        "ACTIVE"				=> $ACTIVE,
        "NAME"				  => $NAME,
        "DESCRIPTION"		   => $DESCRIPTION,
        "ADMIN_COMMENTS"		=> $ADMIN_COMMENTS,
        "WEIGHT"				=> $WEIGHT,
        "SORT"				  => $SORT,
        "MAX_SHOW_COUNT"		=> $MAX_SHOW_COUNT,
        "MAX_CLICK_COUNT"	   => $MAX_CLICK_COUNT,
        "DATE_SHOW_FROM"		=> $DATE_SHOW_FROM,
        "DATE_SHOW_TO"		  => $DATE_SHOW_TO,
        "DEFAULT_STATUS_SID"	=> $DEFAULT_STATUS_SID,
        "arrSHOW_PAGE"		  => split("[\n\r]",$SHOW_PAGE),
        "arrNOT_SHOW_PAGE"	  => split("[\n\r]",$NOT_SHOW_PAGE),
        "arrTYPE"			   => $arrTYPE,
        "arrWEEKDAY"			=> $arrWEEKDAY,
        "arrUSER_VIEW"		  => $arrUSER_VIEW,
        "arrUSER_ADD"		   => $arrUSER_ADD,
        "arrUSER_EDIT"		  => $arrUSER_EDIT
        );
    if ($ID = CAdvContract::Set($arFields, $ID))
    {
        if (strlen($strError)<=0)
        {
            if (strlen($save) > 0)
                LocalRedirect("adv_contract_list.php?lang=".LANG);
            else
                LocalRedirect("adv_contract_edit.php?ID=".$ID."&lang=".LANG);
        }
    }
    $DB->PrepareFields("b_adv_contract");
}
?>


Класс CAdvType

CAdvType

Класс для работы с типами баннеров.

Методы класса

Метод | Описание
Set | Создает новый тип баннера, либо обновляет существующий.
GetList | Возвращает список типов с использованием фильтра.
GetByID | Возвращает один тип по заданному ID.
Delete | Удаляет тип и все баннеры, к нему привязанные.


Delete

Реклама, баннеры>Классы>CAdvType>Delete (3.3.4)

CAdvType::Delete

boolean
CAdvType::Delete(
 varchar(255) TYPE_SID,
 char(1) CHECK_RIGHTS="Y"
);

Метод удаляет тип баннеров и все баннеры, к нему привязанные. Метод нестатический.

Параметры метода

Параметры | Описание
TYPE_SID | Символьный идентификатор типа.
CHECK_RIGHTS | "Y" - необходимо проверить право на удаление у текущего пользователя; "N" - прав проверять не надо. Необязательный параметр.


GetByID

Реклама, баннеры>Классы>CAdvType>GetByID (3.3.4)

CAdvType::GetByID

record set
CAdvType::GetByID(
 varchar(255) TYPE_SID
);

Метод возвращает тип баннера по его символьному ID. Метод нестатический.

Параметры метода

Параметры | Описание
TYPE_SID | Символьный ID типа.

Пример массива, получаемого после Fetch результата, возвращенного данным методом

<?
Array
(
    [SID] => TOP
    [ACTIVE] => Y
    [SORT] => 10
    [NAME] => Top banner
    [DESCRIPTION] => описание типа
    [DATE_CREATE] => 03.06.2004 17:27:00
    [DATE_MODIFY] => 03.06.2004 17:27:00
    [CREATED_BY] => 2
    [MODIFIED_BY] => 2
    [BANNER_COUNT] => 63
)
?>


GetList

Реклама, баннеры>Классы>CAdvType>GetList (3.3.4)

CAdvType::GetList

Описание и параметры

record set
CAdvType::GetList(
 varchar &by,
 varchar &order,
 array arFilter=array(),
 boolean &is_filtered,

 char(1) CHECK_RIGHTS="Y"
);

Метод предназначен для получения списка типов баннеров. Метод нестатический.

Параметры метода

Параметры | Описание | С версии
by Идентификатор, позволяющий задать имя поля для сортировки. Допустимы следующие значения:
  • s_sid - по символьному ID типа
  • s_date_modify - по дате модификации
  • s_modified_by - по ID пользователя, изменившего тип
  • s_date_create - по дате создания
  • s_created_by - по ID пользователя, создавшего тип
  • s_active - по флагу активности
  • s_name - по имени
  • s_banners - по количеству баннеров данного типа
  • s_description - по описанию
order Порядок сортировки. Допустимы следующие значения:
  • desc - по убыванию (значение по умолчанию)
  • asc - по возрастанию
arFilter Массив для фильтрации значений. Необязательный параметр. В массиве допустимы следующие индексы:
  • SID - символьный ID типа (допускается сложная логика)
  • SID_EXACT_MATCH - "Y" - при фильтрации по символьному ID типа будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • DATE_MODIFY_1 - левая часть интервала для даты модификации типа
  • DATE_MODIFY_2 - правая часть интервала для даты модификации типа
  • ACTIVE - флаг активности типа ("Y" - активен; "N" - не активен)
  • NAME - имя типа (допускается сложная логика)
  • NAME_EXACT_MATCH - "Y" - при фильтрации по имени типа будет искаться точное совпадение; "N" - в противном случае будет искаться вхождение (по умолчанию)
  • DESCRIPTION - описание типа (допускается сложная логика)
  • DESCRIPTION_EXACT_MATCH - "Y" - при фильтрации по описанию типа будет искаться точное совпадение; "N" - в противном случае будет искаться вхождение (по умолчанию)
is_filtered | Переменная, возвращающая true в том случае, если список типов отфильтрован по какому либо критерию; либо false в противном случае.
CHECK_RIGHTS | Параметр проверяет уровень доступа к модулю Реклама (администратор рекламы, рекламодатель и т.д.) Если параметр определён как "N", то считается, что текущий пользователь обладает административными правами доступа к модулю Реклама. Если параметр пропущен либо равен "Y", то метод проверяет уровень доступа к контракту, которому принадлежит баннер. Необязательный параметр. | 3.3.14

Примеры использования

<?
$FilterArr = Array(
    "find_sid",
    "find_sid_exact_match",
    "find_date_modify_1",
    "find_date_modify_2",
    "find_active",
    "find_name",
    "find_name_exact_match",
    "find_description",
    "find_description_exact_match"
    );
if (strlen($set_filter)>0) InitFilterEx($FilterArr,"ADV_TYPE_LIST","set");
else InitFilterEx($FilterArr,"ADV_TYPE_LIST","get");
if (strlen($del_filter)>0) DelFilterEx($FilterArr,"ADV_TYPE_LIST");
InitBVar($find_sid_exact_match);
InitBVar($find_name_exact_match);
InitBVar($find_description_exact_match);
$arFilter = Array(
    "SID"					   => $find_sid,
    "SID_EXACT_MATCH"		   => $find_sid_exact_match,
    "DATE_MODIFY_1"			 => $find_date_modify_1,
    "DATE_MODIFY_2"			 => $find_date_modify_2,
    "ACTIVE"					=> $find_active,
    "NAME"					  => $find_name,
    "NAME_EXACT_MATCH"		  => $find_name_exact_match,
    "DESCRIPTION"			   => $find_description,
    "DESCRIPTION_EXACT_MATCH"   => $find_description_exact_match,
    );
$rsAdvType = CAdvType::GetList($by, $order, $arFilter, $is_filtered, "Y");
?>

Пример массива, получаемого после Fetch одной строки выборки данного метода

<?
Array
(
    [SID] => TOP
    [ACTIVE] => Y
    [SORT] => 10
    [NAME] => Top banner
    [DESCRIPTION] => описание типа
    [DATE_CREATE] => 03.06.2004 17:27:00
    [DATE_MODIFY] => 03.06.2004 17:27:00
    [CREATED_BY] => 2
    [MODIFIED_BY] => 2
    [BANNER_COUNT] => 63
)
?>


Set

Реклама, баннеры>Классы>CAdvType>Set (3.3.4)

CAdvType::Set

Описание и параметры

varchar(255)
CAdvType::Set(
 array arFields,
 varchar(255) TYPE_SID="",
 char(1) CHECK_RIGHTS="Y"
);

Метод создает новый тип баннеров, либо модифицирует существующий в случае указания во втором параметре символьного ID типа. Возвращает ID созданного типа, либо ID модифицированного типа. Метод нестатический.

Параметры метода

Параметры | Описание
arFields Массив параметров контракта. В массиве допустимы следующие индексы:
  • SID - символьный ID типа (используется в публичной части при выводе баннеров по типу)
  • ACTIVE - флаг активности: "Y" - тип активен; "N" - тип не активен;
  • NAME - имя типа
  • DESCRIPTION - описание типа
  • SORT - порядок сортировки типа в списках
TYPE_SID | ID типа, если не указывать - создаётся новый тип.
CHECK_RIGHTS | Флаг необходимости проверки прав текущего пользователя: "Y" - необходимо проверить права текущего пользователя; "N" - тип создавать и модифицировать независимо от прав текущего пользователя. Необязательный параметр.

Примеры использования

<!-- Пример кода, добавляющего новый контракт
либо модифицирующего существующий: -->
<?
if ((strlen($save)>0 || strlen($apply)>0) && $REQUEST_METHOD=="POST")
{
    $arFields = array(
        "SID"			   => $SID,
        "ACTIVE"			=> $ACTIVE,
        "SORT"			  => $SORT,
        "NAME"			  => $NAME,
        "DESCRIPTION"	   => $DESCRIPTION
        );
    if ($SID = CAdvType::Set($arFields, $OLD_SID))
    {
        if (strlen($strError)<=0)
        {
            if (strlen($save) > 0)
                LocalRedirect("adv_type_list.php?lang=".LANG);
            else
                LocalRedirect("adv_type_edit.php?SID=".$SID."&lang=".LANG);
        }
    }
    $DB->PrepareFields("b_adv_type");
}
?>


Для разработчиков

Описание

Модуль Социальная сеть предоставляет следующие возможности:

- создание персонального профайла пользователя с возможностью его редактирования;
- настройка прав на доступ к содержимому личной страницы;
- создание произвольного числа рабочих групп;
- настройка прав на доступ к группе и содержимому ее страницы;
- форумы, блоги, календари, фотогалереи и файлы сотрудников и рабочих групп;
- классификация и поиск групп.

Классы модуля
События модуля

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("socialnetwork")){
//здесь можно использовать функции и классы модуля
}
?>

Компоненты 2.0

Модуль включает в себя следующие Компоненты 2.0:
Компоненты
Название | Имя в пространстве имен bitrix | Описание
Социальная сеть (комплексный компонент) | socialnetwork | Создает полноценный публичный интерфейс социальной сети.
Социальная сеть - группы (комплексный компонент) | socialnetwork_group | Служит для создания раздела рабочих групп социальной сети.
Социальная сеть - пользователь (комплексный компонент) | socialnetwork_user | Служит для создания личного раздела пользователя социальной сети.
Меню сообщений | socialnetwork.blog.menu | Выводит меню сообщений социальной сети.
Список последних тем | socialnetwork.forum.topic.last | Выводит список последних тем форума пользователя или рабочей группы социальной сети.
Тема (создание) | socialnetwork.forum.topic.new | Служит для сохранения новой темы форума социальной сети..
Тема (чтение) | socialnetwork.forum.topic.read | Выводит список сообщений темы форума социальной сети.
Темы (список) | socialnetwork.forum.topic.list | Выводит список всех тем форума социальной сети.
Форма ввода пользователей | socialnetwork.user_search_input | Выводит форму, с помощью которой осуществляется ввод пользователей социальной сети.
Форма создания сообщения | socialnetwork.user_search_input | Выводит форму создания сообщения (или темы) форума социальной сети.
Сообщения | socialnetwork.blog.blog | Выводит сообщения блога социальной сети с возможностью их фильтрации по категории и дате.
Сообщения - модерация | socialnetwork.blog.moderation | Выводит сообщения, требующие модерации.
Черновики сообщений | socialnetwork.blog.draft | Выводит черновики сообщений.
Сообщение детально | socialnetwork.blog.post | Выводит подробно сообщение.
Комментарии к сообщению | socialnetwork.blog.post.comment | Выводит комментарии к сообщению с возможностью добавления.
Изменение профиля пользователя | socialnetwork.user_profile_edit | Позволяет изменить данные профиля пользователя социальной сети.
Просмотр профиля пользователя | socialnetwork.user_profile | Позволяет просмотреть и изменить профиль пользователя социальной сети.
Профиль группы | socialnetwork.group | Для просмотра и изменения профиля группы социальной сети.
Top групп | socialnetwork.group_top | Показывает Top групп социальной сети.
Бизнес-процессы | socialnetwork.bizproc | Выводит задания и историю по бизнес-процессам.
Входящие сообщения | socialnetwork.messages_input | Показывает входящие сообщения социальной сети.
Выход из группы | socialnetwork.user_leave_group | Позволяет выйти из группы социальной сети.
Группы пользователя | socialnetwork.user_groups | Позволяет просмотреть и изменить группы пользователя социальной сети.
Запрос пользователя на вступление в группу | socialnetwork.user_request_group | Позволяет пользователю отправить запрос на вступление в группу социальной сети.
Запросы на вступление в группу (ex) | socialnetwork.group_requests.ex | Позволяет показать приглашения и запросы пользователя.
Запросы на вступление в группу | socialnetwork.group_requests | Позволяет просмотреть и изменить запросы на вступление в группу социальной сети.
Запросы пользователю | socialnetwork.messages_requests | Показывает запросы пользователю социальной сети.
Исходящие сообщения | socialnetwork.messages_output | Показывает исходящие сообщения социальной сети.
Лог активности пользователя | socialnetwork.activity | Выводит лог активности пользователя социальной сети.
Лог изменений (ex) | socialnetwork.log.ex | Выводит запись вместе с комментариями.
Лог изменений (entry) | socialnetwork.log.entry | Получает cписок комментариев к каждой из записей социальной сети.
Меню профайла группы | socialnetwork.group_menu | Показывает меню профайла группы социальной сети.
Меню профайла пользователя | socialnetwork.user_menu | Показывает меню профайла пользователя социальной сети.
Меню сообщений пользователя | socialnetwork.messages_menu | Показывает меню сообщений пользователя социальной сети.
Модераторы группы | socialnetwork.group_mods | Служит для просмотра и изменения модераторов группы социальной сети.
Настройка разрешений пользователя | socialnetwork.user_settings_edit | Позволяет настраивать разрешения пользователя (приватность) социальной сети.
Настройка функционала | socialnetwork.features | Позволяет настраивать функционал пользователей и рабочих групп социальной сети.
Обработка задания Бизнес-процесса | socialnetwork.bizproc_edit | Позволяет обработать задание бизнес-процесса.
Переписка в виде чата | socialnetwork.messages_chat | Показывает переписку в виде чата социальной сети.
Переписка с пользователем | socialnetwork.messages_users_messages | Показывает переписку с пользователем социальной сети.
Переписка с пользователями | socialnetwork.messages_users | Показывает переписку с пользователями социальной сети.
Подписка | socialnetwork.subscribe | Служит для настройки подписки социальной сети.
Поиск групп | socialnetwork.group_search | Создает страницу поиска рабочих групп.
Поиск пользователей | socialnetwork.user_search | Позволяет искать пользователей социальной сети.
Показ событий | socialnetwork.events | Показывает события: новое сообщение, запрос на добавление в список друзей и пр. социальной сети.
Показ событий (ajax) | socialnetwork.events_dyn | Показывает события с помощью AJAX: новое сообщение, запрос на добавление в список друзей и пр. социальной сети.
Пользователи группы | socialnetwork.group_users | Служит для просмотра и изменения пользователей группы социальной сети.
Пользователи группы (расширенный) | socialnetwork.group_users.ex | Служит для просмотра и изменения пользователей группы социальной сети.
Пользователи группы (расширенный) | socialnetwork.user_friends.ex | Служит для просмотра и изменения пользователей группы социальной сети.
Приглашение пользователей в группу | socialnetwork.group_request_search | Служит для приглашения пользователей в группу социальной сети.
Приглашения на вступление в группу | socialnetwork.group_requests_out | Позволяет просмотреть и изменить приглашения на вступление в группу социальной сети.
Создание группы | socialnetwork.group_create | Позволяет создать новую (редактировать уже существующую) группу социальной сети.
Создание группы в попап-диалоге | socialnetwork.group.iframe.popup | Позволяет создать новую группу в попап-диалоге.
Создание группы в попап-диалоге (ex) | socialnetwork.group_create.ex | Позволяет создать новую группу в попап-диалоге.
Список подписки пользователя | socialnetwork.subscribe_list | Позволяет показать список подписки пользователя социальной сети.
Удаление группы | socialnetwork.group_delete | Служит для удаления группы социальной сети.
Форма отправки сообщения | socialnetwork.message_form | Позволяет отправить сообщение пользователю социальной сети.
Форма приглашения пользователя вступить в группу | socialnetwork.group_request_user | Создает форму приглашения пользователю вступить в группу социальной сети.
Черный список группы | socialnetwork.group_ban | Служит для просмотра и изменения черного списка группы социальной сети.
Редактирование сообщения | socialnetwork.blog.post.edit | Позволяет редактировать/создавать сообщения.
RSS блогов | socialnetwork.blog.rss | Выводит RSS блогов группы или сайта в заданном формате.
Используются только в БУС
Друзья пользователя | socialnetwork.user_friends | Позволяет просмотреть и изменить друзей пользователя социальной сети.
Дни рождения друзей | socialnetwork.user_birthday | Выводит ближайшие дни рождения друзей пользователя социальной сети.
Добавление друга | socialnetwork.user_friends_add | Позволяет отправить запрос на добавление друга социальной сети.
Удаление друга | socialnetwork.user_friends_delete | Позволяет удалить друга социальной сети.
Черный список пользователя | socialnetwork.user_ban | Служит для просмотра и изменения черного списка пользователя социальной сети.
Используются только на КП
Живая лента (мобильная, ex) | mobile.socialnetwork.log.ex | Отображает Живую ленту в формате для мобильных устройств.
Живая лента (мобильная) | mobile.socialnetwork.log | Отображает Живую ленту в формате для мобильных устройств.
Сообщение Живой ленты (мобильной) | mobile.socialnetwork.log.entry | Отображает сообщение Живой ленты в формате для мобильных устройств.


Константы

Константы модуля:

  • SONET_RELATIONS_FRIEND
  • SONET_RELATIONS_REQUEST
  • SONET_RELATIONS_BAN

  • SONET_ROLES_OWNER
  • SONET_ROLES_MODERATOR
  • SONET_ROLES_USER
  • SONET_ROLES_BAN
  • SONET_ROLES_REQUEST
  • SONET_ROLES_ALL

  • SONET_RELATIONS_TYPE_ALL
  • SONET_RELATIONS_TYPE_FRIENDS2
  • SONET_RELATIONS_TYPE_FRIENDS
  • SONET_RELATIONS_TYPE_NONE

  • SONET_INITIATED_BY_USER
  • SONET_INITIATED_BY_GROUP

  • SONET_MESSAGE_SYSTEM
  • SONET_MESSAGE_PRIVATE

  • SONET_ENTITY_GROUP
  • SONET_ENTITY_USER


Социальная сеть в ядре D7

Список классов модуля Социальная сеть в ядре D7.
Класс, пространство имен | Описание
Item | Пространство имён для работы с сущностями на более высоком уровне, чем непосредственно с записями в таблице.
Ui | Пространство имён пользовательских интерфейсов.
UserToGroupTable | Класс API низкого уровня для работы с отношениями пользователь-группа (роль пользователя в группе).
Util | Класс вспомогательных методов, служащих различным целям в рамках реализации логики социальной сети.
WorkgroupFavoritesTable | Класс для методов работы с избранными рабочими группами.


Классы

Класс | Описание | С версии
CSocNetUserRelations | Класс для работы со связями между пользователями. | 7.1.0
CSocNetUserPerms | Класс для обработки прав на доступ к профайлам пользователей. | 8.0.7
CSocNetUserToGroup | Класс для работы со связями между пользователями и группами. | 7.0.5
CSocNetUser | Вспомогательный класс, содержащий методы поиска и обработки пользователей социальной сети. | 7.0.5
CSocNetSmile | Класс управления смайлами. | 8.0.7
CSocNetMessages | Класс для работы с сообщениями социальной сети. | 7.0.6
CSocNetLogEvents | Класс подписки на события социальной сети. | 7.1.0
CSocNetLog | Класс для управления логом событий социальной сети. | 7.1.0
CSocNetGroupSubject | Класс тем рабочих групп. | 8.0.7
CSocNetFeaturesPerms | Класс обработки прав на доступ к дополнительному функционалу социальной сети. | 7.0.6
CSocNetFeatures | Класс управления дополнительным функционалом социальной сети. | 7.0.6
CSocNetGroup | Класс для работы с рабочими группами. | 7.0.5
CSocNetTools | Вспомогательный класс. | 7.0.6
CSocNetTextParser | Парсер текстов сообщений. | 7.0.6


CSocNetFeatures

CSocNetFeatures - класс для работы с дополнительным функционалом групп и пользователей социальной сети.

Методы класса

Метод | Описание | С версии
Delete | Удаляет функционал группы или пользователя. | 7.0.6
GetByID | Возвращает параметры функционала группы или пользователя. | 7.0.6
Update | Изменяет параметры функционала группы или пользователя. | 7.0.6
Add | Создает новый функционал группы или пользователя. | 7.0.6
GetList | Возвращает список функционалов групп или пользователей. | 7.0.6
SetFeature | Изменяет параметры функционала группы или пользователя, если таковой существует. Иначе создает новый. | 7.0.6
IsActiveFeature | Проверяет, активен ли функционал группы или пользователя. | 7.0.6
GetActiveFeatures | Возвращает список активных функционалов группы или пользователя. | 7.0.6
GetActiveFeaturesNames | Возвращает названия активных функционалов группы или пользователя. | 7.0.6


Add

Социальная сеть>Классы>CSocNetFeatures>Add (доступен с 7.0.6)

CSocNetFeatures::Add

int
CSocNetFeatures::Add(
 array arFields
);

Сохраняет в базу запись о новом дополнительном функционале пользователя или группы. Метод статический.

Параметры

Параметр | Описание | С версии
arFields | Параметры дополнительного функционала. |

Возвращаемое значение

Код записи, если сохранение прошло успешно. False - в противном случае.


Delete

Социальная сеть>Классы>CSocNetFeatures>Delete (доступен с 7.0.6)

CSocNetFeatures::Delete

bool
CSocNetFeatures::Delete(
 int ID
);

Метод удаляет запись дополнительного функционала из базы. Метод статический.

Параметры

Параметр | Описание | С версии
ID | Код записи |

Возвращаемое значение

True в случае успешного удаления и false - в противном случае.


GetActiveFeatures

Социальная сеть>Классы>CSocNetFeatures>GetActiveFeatures (доступен с 7.0.6)

CSocNetFeatures::GetActiveFeatures

array
CSocNetFeatures::GetActiveFeatures(
 char type,
 int id
);

Метод возвращает список активных дополнительных функционалов группы или пользователя. Метод статический.

Параметры

Параметр | Описание | C версии
type | Тип объекта: SONET_ENTITY_GROUP - группа, SONET_ENTITY_USER - пользователь. |
id | Идентификатор объекта (пользователя или группы). |

Возвращаемое значение

Массив названий активных дополнительных функционалов.


GetActiveFeaturesNames

Социальная сеть>Классы>CSocNetFeatures>GetActiveFeaturesNames (доступен с 7.0.6)

CSocNetFeatures::GetActiveFeaturesNames

Описание и параметры

array
CSocNetFeatures::GetActiveFeaturesNames(
 char type,
 int id
);

Пользователь в своем профайле и владелец группы могут задавать пользовательские названия для дополнительного функционала (названия вкладок). Метод служит для получения пользовательских названий дополнительного функционала, если они заданы. Метод статический.

Параметры

Параметр | Описание | C версии
type | Тип объекта: SONET_ENTITY_USER - профиль пользователя, SONET_ENTITY_GROUP - группа. |
id | Код объекта (пользователя или группы). |

Возвращаемое значение

Метод вернет массив пользовательских названий для дополнительного функционала, которые были заданы. Если пользовательские названия не были заданы, то они не будут возвращены.

Примеры использования

<?
// Выберем пользовательские названия для группы $ID
$arRealTabsName = CSocNetFeatures::GetActiveFeaturesNames(SONET_ENTITY_GROUP, $ID);

// Результат будет типа
// array
// (
//    [forum] => Мой форум
//    [photo] => Моя фотогалерея
//    [blog] => Мои записки
// )
?>


GetByID

Социальная сеть>Классы>CSocNetFeatures>GetByID (доступен с 7.0.6)

CSocNetFeatures::GetByID

array
CSocNetFeatures::GetByID(
 int ID
);

Метод возвращает массив параметров дополнительного функционала. Метод статический.

Параметры

Параметр | Описание | C версии
ID | Код записи |

Возвращаемое значение

Массив с ключами:
ID - код записи,
ENTITY_TYPE - тип объекта: SONET_ENTITY_GROUP - группа, SONET_ENTITY_USER - пользователь,
ENTITY_ID - код объекта (группы или пользователя),
FEATURE - внутреннее название дополнительного функционала,
FEATURE_NAME - название дополнительного функционала,
ACTIVE - флаг активности (Y/N),
DATE_CREATE - дата создания записи,
DATE_UPDATE - дата изменения записи.


GetList

Социальная сеть>Классы>CSocNetFeatures>GetList (доступен с 7.0.6)

CSocNetFeatures::GetList

Описание и параметры

CDBResult
CSocNetFeatures::GetList(
 array arOrder = array("ID" => "DESC"),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Выбирает список дополнительного функционала в соответствии с фильтром. Метод статический.

Параметры

Параметр | Описание | C версии
arOrder | Порядок сортировки возвращаемого списка, заданный в виде массива. Ключами в массиве являются поля для сортировки, а значениями - ASC/DESC - порядок сортировки. Допустимые ключи:ID, ENTITY_TYPE, ENTITY_ID, FEATURE, FEATURE_NAME, ACTIVE, DATE_CREATE, DATE_UPDATE. |
arFilter | Массив, задающий фильтр на возвращаемый список. Ключами в массиве являются названия полей, а значениями - их значения. Допустимае поля: ID, ENTITY_TYPE, ENTITY_ID, FEATURE, FEATURE_NAME, ACTIVE, DATE_CREATE, DATE_UPDATE. |
arGroupBy | Массив, задающий группировку результирующего списка. Если параметр содержит массив названий полей, то по этим полям будет произведена группировка. Если параметр содержит пустой массив, то метод вернет количество записей, удовлетворяющих фильтру. По умолчанию параметр равен false - не группировать. |
arNavStartParams | Массив, задающий условия выбора для организации постраничной навигации. |
arSelectFields | Массив, задающий выбираемые поля. Содержит список полей, которые должны быть возвращены методом. Если массив пустой, то выбираются поля ID, ENTITY_TYPE, ENTITY_ID, FEATURE, FEATURE_NAME, ACTIVE, DATE_CREATE, DATE_UPDATE. В массиве допустимы любые поля из списка полей. |

Список полей

ID - код записи,
ENTITY_TYPE - тип объекта: SONET_ENTITY_GROUP - группа, SONET_ENTITY_USER - пользователь,
ENTITY_ID - код объекта (группы или пользователя),
FEATURE - внутреннее название дополнительного функционала,
FEATURE_NAME - название дополнительного функционала,
ACTIVE - флаг активности (Y/N),
DATE_CREATE - дата создания записи,
DATE_UPDATE - дата изменения записи,
GROUP_NAME - название группы.

Возвращаемое значение

Метод возвращает объект типа CDBResult, содержащий записи, удовлетворяющие условию выборки.

Смотрите также

  • CDBResult

Примеры использования

<?
// Выберем в массив весь дополнительный функционал группы с идентификатором $ID
$arFeaturesTmp = array();
$dbResultTmp = CSocNetFeatures::GetList(
   array(),
   array("ENTITY_ID" => $ID, "ENTITY_TYPE" => SONET_ENTITY_GROUP)
);
while ($arResultTmp = $dbResultTmp->GetNext())
   $arFeaturesTmp[$arResultTmp["FEATURE"]] = $arResultTmp;
?>


IsActiveFeature

Социальная сеть>Классы>CSocNetFeatures>IsActiveFeature (доступен с 7.0.6)

CSocNetFeatures::IsActiveFeature

mixed
CSocNetFeatures::IsActiveFeature(
 char type,
 mixed id,
 string feature
);

Метод проверяет, активен ли функционал группы или пользователя. Метод статический.

Параметры

Параметр | Описание | C версии
type | Тип объекта: SONET_ENTITY_GROUP - группа, SONET_ENTITY_USER - пользователь. |
id | Идентификатор объекта (пользователя или группы), либо (с версии 8.6.4) массив идентификаторов объектов. |
feature | Название дополнительного функционала. |

Возвращаемое значение

Если в параметре id передано скалярное значение, true, если дополнительный функционал активен. Иначе - false. Если (с версии 8.6.4) в параметре id передан массив идентификаторов объектов, то возвращается ассоциативный массив, ключами для которого являются идентификаторы, а значениями - true/false по вышеописанной логике.


SetFeature

Социальная сеть>Классы>CSocNetFeatures>SetFeature (доступен с 7.0.6)

CSocNetFeatures::SetFeature

Описание и параметры

int
CSocNetFeatures::SetFeature(
 char type,
 int id,
 string feature,
 bool active,
 string featureName = false
);

Метод устанавливает настройки дополнительного функционала для группы или пользователя. Если запись для функционала существует, то она изменяется. Иначе создается новая запись. Метод статический.

Примечание: новая запись создается методом CSocNetFeatures::Add, обновляется методом CSocNetFeatures::Update.

Параметры

Параметр | Описание | C версии
type | Тип объекта: SONET_ENTITY_GROUP - группа, SONET_ENTITY_USER - пользователь. |
id | Идентификатор объекта (пользователя или группы). |
feature | Внутреннее название дополнительного функционала. |
active | Флаг активности (Y/N). |
featureName | Название дополнительного функционала. |

Возвращаемое значение

Возвращается идентификатор записи дополнительного функционала.

Смотрите также

  • CSocNetFeatures::Add
  • CSocNetFeatures::Update


Update

Социальная сеть>Классы>CSocNetFeatures>Update (доступен с 7.0.6)

CSocNetFeatures::Update

int
CSocNetFeatures::Update(
 int ID,
 array arFields
);

Изменяет параметры сохраненного дополнительного функционала. Метод статический.

Параметры

Параметр | Описание | C версии
id | Код записи |
arFields | Массив новых параметров |

Возвращаемое значение

Код записи в случае успешного изменения и false - в случае ошибки.


CSocNetFeaturesPerms

CSocNetFeaturesPerms - класс для управления правами на доступ к дополнительному функционалу групп и пользователей.

Методы класса

Метод | Описание | С версии
Delete | Удаляет право. | 7.0.6
GetByID | Возвращает параметры права. | 7.0.6
Add | Создает новое право. | 7.0.6
Update | Изменяет параметры права. | 7.0.6
GetList | Возвращает список прав. | 7.0.6
SetPerm | Изменяет параметры права, если такое существует. Иначе добавляет новое. | 7.0.6
CurrentUserCanPerformOperation | Проверяет, имеет ли текущий пользователь право на совершение операции. | 7.1.9
CanPerformOperation | Проверяет, имеет ли пользователь право на совершение операции. | 7.0.6
GetOperationPerm | Возвращает права на операцию. | 7.0.6


Add

Социальная сеть>Классы>CSocNetFeaturesPerms>Add (доступен с 7.0.6)

CSocNetFeaturesPerms::Add

int
CSocNetFeaturesPerms::Add(
 array arFields
);

Создает новое право. Метод статический.

Примечание: для установки параметров права может так же использоваться метод CSocNetFeaturesPerms::SetPerm.

Параметры

Параметр | Описание | C версии
arFields | Массив значений параметров. Допустимые ключи: FEATURE_ID - код дополнительного функционала, OPERATION_ID - код операции, ROLE - роль. |

Возвращаемое значение

Код вставленной записи.

Смотрите также

  • CSocNetFeaturesPerms::SetPerm
  • CSocNetFeaturesPerms::Update


CanPerformOperation

Социальная сеть>Классы>CSocNetFeaturesPerms>CanPerformOperation (доступен с 7.0.6)

CSocNetFeaturesPerms::CanPerformOperation

Описание и параметры

mixed
CSocNetFeaturesPerms::CanPerformOperation(
 int userID,
 char type,
 mixed id,
 string feature,
 string operation,
 bool bUserIsAdmin = false
);

Метод проверяет, может ли указанный пользователь совершать указанное действие над указанным дополнительным функционалом. Например, метод может проверить, может ли указанный пользователь добавлять записи в отчеты указанной рабочей группы. Метод статический.

Параметры

Параметр | Описание | C версии
userID | Код пользователя, права которого проверяются. |
type | Тип объекта: SONET_ENTITY_GROUP - группа, SONET_ENTITY_USER - пользователь. |
id | Код объекта (пользователя или группы), либо (с версии 8.6.4) массив кодов объектов. |
feature | Название дополнительного функционала. |
operation | Название операции. |
UserIsAdmin | Является ли пользователь администратором сайта или модуля социальной сети. |

Возвращаемое значение

Если в параметре id передано скалярное значение, то метод возвращает true если пользователь имеет права на указанную операцию и false - в обратном случае. Если (с версии 8.6.4) в параметре id передан массив кодов объектов, то возвращается ассоциативный массив, ключами для которого являются коды объектов, а значениями - true/false по вышеописанной логике.

Стандартный дополнительный функционал и его операции

  • forum - форум
    • full - полный доступ
    • newtopic - создание новой темы
    • answer - ответ в существующей теме
    • view - просмотр
  • photo - фотогалерея
    • write - полный доступ
    • view - просмотр
  • calendar - календарь
    • write - полный доступ
    • view - просмотр
  • tasks - задачи
    • view_all - просмотр всех задач
    • create_tasks - создание новых задач
    • delete_tasks - удаление новых задач
    • modify_folders - изменение папок задач
  • files - файлы
    • write - полный доступ
    • write_limited - запись с ограничениями
    • view - просмотр
  • blog - блоги
    • view_post - просмотр сообщений
    • write_post - создание сообщений
    • full_post - полный доступ
    • view_comment - просмотр комментариев
    • write_comment - создание комментариев
    • full_comment - полный доступ к комментариям

Примеры использования

<?
if (CSocNetFeaturesPerms::CanPerformOperation($GLOBALS["USER"]->GetID(), SONET_ENTITY_GROUP, $ID, "blog", "write_post"))
{
   // Текущий пользователь может писать сообщения в блог группы $ID
}
?>


CurrentUserCanPerformOperation

Социальная сеть>Классы>CSocNetFeaturesPerms>CurrentUserCanPerformOperation (доступен с 7.1.9)

CSocNetFeaturesPerms::CurrentUserCanPerformOperation

bool
CSocNetFeaturesPerms::CurrentUserCanPerformOperation(
 char type,
 int id,
 string feature,
 string operation,
 bool site_id = SITE_ID
);

Проверяет, имеет ли текущий пользователь право на совершение операции. Метод статический.

Параметры

Параметр | Описание | C версии
type | Тип объекта: SONET_ENTITY_GROUP - группа, SONET_ENTITY_USER - пользователь. |
id | Код объекта (пользователя или группы). |
feature | Название дополнительного функционала. |
operation | Название операции. |
site_id | Код сайта. Необязательный. | 11.0.1

Возвращаемое значение

True, если текущий пользователь имеет право на совершение операции. Иначе - false.


Delete

Социальная сеть>Классы>CSocNetFeaturesPerms>Delete (доступен с 7.0.6)

CSocNetFeaturesPerms::Delete

bool
CSocNetFeaturesPerms::Delete(
 int id
);

Удаляет право. Метод статический.

Параметры

Параметр | Описание | C версии
id | Идентификатор записи. |

Возвращаемое значение

True в случае успешного удаления и false - в противном случае.


GetByID

Социальная сеть>Классы>CSocNetFeaturesPerms>GetByID (доступен с 7.0.6)

CSocNetFeaturesPerms::GetByID

array
CSocNetFeaturesPerms::GetByID(
 int id
);

Возвращает параметры права. Метод статический.

Параметры

Параметр | Описание | C версии
id | Идентификатор записи |

Возвращаемое значение

Возвращается массив с ключами:
ID - код записи,
FEATURE_ID - код дополнительного функционала,
OPERATION_ID - код операции,
ROLE - роль.

Смотрите также

  • CSocNetFeaturesPerms::GetList


GetList

Социальная сеть>Классы>CSocNetFeaturesPerms>GetList (доступен с 7.0.6)

CSocNetFeaturesPerms::GetList

Описание и параметры

CDBResult
CSocNetFeaturesPerms::GetList(
 array arOrder = array("ID" => "DESC"),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Возвращает список прав. Метод статический.

Параметры

Параметр | Описание | C версии
arOrder | Порядок сортировки возвращаемого списка, заданный в виде массива. Ключами в массиве являются поля для сортировки, а значениями - ASC/DESC - порядок сортировки. Допустимые ключи: ID, FEATURE_ID, OPERATION_ID, ROLE, FEATURE_ENTITY_TYPE, FEATURE_ENTITY_ID, FEATURE_FEATURE, FEATURE_FEATURE_NAME, FEATURE_ACTIVE. |
arFilter | Массив, задающий фильтр на возвращаемый список. Ключами в массиве являются названия полей, а значениями - их значения. Допустимые поля:ID, FEATURE_ID, OPERATION_ID, ROLE, FEATURE_ENTITY_TYPE, FEATURE_ENTITY_ID, FEATURE_FEATURE, FEATURE_FEATURE_NAME, FEATURE_ACTIVE. |
arGroupBy | Массив, задающий группировку результирующего списка. Если параметр содержит массив названий полей, то по этим полям будет произведена группировка. Если параметр содержит пустой массив, то метод вернет количество записей, удовлетворяющих фильтру. По умолчанию параметр равен false - не группировать. |
arNavStartParams | Массив, задающий условия выбора для организации постраничной навигации. |
arSelectFields | Массив, задающий выбираемые поля. Содержит список полей, которые должны быть возвращены методом. Если массив пустой, то выбираются поля ID, FEATURE_ID, OPERATION_ID, ROLE. В массиве допустимы любые поля из списка полей. |

Список полей

ID - код записи,
FEATURE_ID - код дополнительного функционала,
OPERATION_ID - код операции,
ROLE - роль,
FEATURE_ENTITY_TYPE - тип объекта: SONET_ENTITY_GROUP - группа, SONET_ENTITY_USER - пользователь,
FEATURE_ENTITY_ID - код объекта (группы или пользователя),
FEATURE_FEATURE - внутреннее название дополнительного функционала,
FEATURE_FEATURE_NAME - название дополнительного функционала,
FEATURE_ACTIVE - флаг активности (Y/N).

Возвращаемое значение

Метод возвращает объект типа CDBResult, содержащий записи, удовлетворяющие условию выборки.

Смотрите также

  • CDBResult
  • CSocNetFeaturesPerms::GetById


GetOperationPerm

Социальная сеть>Классы>CSocNetFeaturesPerms>GetOperationPerm (доступен с 7.0.6)

CSocNetFeaturesPerms::GetOperationPerm

mixed
CSocNetFeaturesPerms::GetOperationPerm(
 char type,
 mixed id,
 string feature,
 string operation
);

Возвращает права на операцию. Метод статический.

Параметры

Параметр | Описание | С версии
type | Тип объекта: SONET_ENTITY_GROUP - группа, SONET_ENTITY_USER - пользователь. |
id | Код объекта (пользователя или группы), либо (с версии 8.6.4) массив кодов объектов. |
feature | Название дополнительного функционала. |
operation | Название операции. |

Возвращаемое значение

Строка, содержащая право на операцию. Если (с версии 8.6.4) в параметре id передан массив кодов объектов, то возвращается ассоциативный массив, ключами для которого являются коды объектов, а значениями - права на операцию по вышеописанной логике.


SetPerm

Социальная сеть>Классы>CSocNetFeaturesPerms>SetPerm (доступен с 7.0.6)

CSocNetFeaturesPerms::SetPerm

Описание и параметры

int
CSocNetFeaturesPerms::SetPerm(
 int featureID,
 string operation,
 string perm
);

Метод устанавливает права для дополнительного функционала. Если запись существует в базе данных, то она изменяется. Если запись не существует, то она добавляется. Метод статический.

Примечание: для добавления записи используется метод CSocNetFeaturesPerms::Add, обновляется методом CSocNetFeaturesPerms::Update.

Параметры

Параметр | Описание | С версии
featureID | Идентификатор дополнительного функционала. |
operation | Название операции. |
perm | Право на операцию. |

Возвращаемое значение

Возвращается идентификатор записи.

Смотрите также

  • CSocNetFeaturesPerms::Add
  • CSocNetFeaturesPerms::Update

Примеры использования

<?
$idTmp = CSocNetFeatures::SetFeature(
    SONET_ENTITY_GROUP,
    $ID,
    "forum",
    true,
    "Обсуждения"
);
if ($idTmp)
{
    $id1Tmp = CSocNetFeaturesPerms::SetPerm(
        $idTmp,
        "forum_answer",
        SONET_ROLES_MODERATOR
    );
    if (!$id1Tmp)
    {
        if ($e = $GLOBALS["APPLICATION"]->GetException())
            $errorMessage .= $e->GetString();
    }
}
else
{
    if ($e = $GLOBALS["APPLICATION"]->GetException())
        $errorMessage .= $e->GetString();
}
?>


Update

Социальная сеть>Классы>CSocNetFeaturesPerms>Update (доступен с 7.0.6)

CSocNetFeaturesPerms::Update

Описание и параметры

int
CSocNetFeaturesPerms::Update(
 int id,
 array arFields
);

Изменяет параметры права. Метод статический.

Примечание: для установки параметров права может так же использоваться метод CSocNetFeaturesPerms::SetPerm.

Параметры

Параметр | Описание | С версии
id | Идентификатор записи |
arFields | Массив новых значений параметров. Допустимые ключи: FEATURE_ID - код дополнительного функционала, OPERATION_ID - код операции, ROLE - роль. |

Возвращаемое значение

Код измененной записи.

Смотрите также

  • CSocNetFeaturesPerms::SetPerm
  • CSocNetFeaturesPerms::Add


CSocNetGroup

CSocNetGroup - класс для работы с рабочими группами социальной сети.

Методы класса

Метод | Описание | C версии
GetByID | Возвращает параметры группы. | 7.0.6
CanUserInitiate | Проверяет, может ли пользователь приглашать в группу других пользователей. | 7.0.6
CanUserViewGroup | Проверяет, может ли пользователь видеть группу в списке групп. | 7.0.6
CanUserReadGroup | Проверяет, может ли пользователь просматривать группу. | 7.0.6
CreateGroup | Создает новую группу для указанного пользователя. | 7.0.6
Update | Изменяет параметры группы. | 7.0.5
GetList | Возвращает список групп. | 7.0.5


CanUserInitiate

Социальная сеть>Классы>CSocNetGroup>CanUserInitiate (доступен с 7.0.6)

CSocNetGroup::CanUserInitiate

bool
CSocNetGroup::CanUserInitiate(
 int userID,
 int groupID
);

Проверяет, может ли пользователь принимать в группу новых членов. Метод статический.

Параметры

Параметр | Описание | C версии
userID | Код пользователя |
groupID | Код группы |

Возвращаемое значение

True, если пользователь может принимать в группу новых членов. Иначе - false.


CanUserReadGroup

Социальная сеть>Классы>CSocNetGroup>CanUserReadGroup (доступен с 7.0.6)

CSocNetGroup::CanUserReadGroup

bool
CSocNetGroup::CanUserReadGroup(
 int userID,
 int groupID
);

Проверяет, может ли пользователь просматривать групу. Пользователь может просматривать группу, если она открытая, либо если этот пользователь является членом группы. Метод статический.

Параметры

Параметр | Описание | C версии
userID | Код пользователя |
groupID | Код группы |

Возвращаемое значение

True, если пользователь может просматривать группу. Иначе - false.


CanUserViewGroup

Социальная сеть>Классы>CSocNetGroup>CanUserViewGroup (доступен с 7.0.6)

CSocNetGroup::CanUserViewGroup

bool
CSocNetGroup::CanUserViewGroup(
 int userID,
 int groupID
);

Проверяет, может ли пользователь видеть группу в списке групп. Пользователь может видеть группу с списке групп, если группа видимая, либо пользователь является ее членом. Метод статический.

Параметры

Параметр | Описание | C версии
userID | Код пользователя |
groupID | Код группы |

Возвращаемое значение

True, если пользователь имеет право видеть группу. Иначе - false.


CreateGroup

Социальная сеть>Классы>CSocNetGroup>CreateGroup (доступен с 7.0.6)

CSocNetGroup::CreateGroup

Описание и параметры

int
CSocNetGroup::CreateGroup(
 int ownerID,
 array arFields,
 bool bAutoSubscribe = true
);

Статический метод создает новую рабочую группу. Для создания группы необходимо задать права пользователей (Параметры INITIATE_PERMS и SPAM_PERMS). Лучше использовать константы (см. ключи массива), но можно использовать и символы:

  • A (Только владелец группы),
  • E (Владелец группы и модераторы группы),
  • K (Все члены группы ).

Примечание: при работе метода вызываются события OnBeforeSocNetGroupAdd и OnSocNetGroupAdd.

Параметры

Параметр | Описание | С версии
ownerID | Код пользователя - владельца новой рабочей группы.
arFields Массив параметров новой группы. Допустимые ключи массива:
SITE_ID - код сайта (обязательное поле),
NAME - название группы (обязательное поле),
DESCRIPTION - описание группы,
VISIBLE - флаг Y/N - видна ли группа в списке групп,
OPENED - флаг Y/N - открыта ли группа для свободного вступления,
SUBJECT_ID - код темы (обязательное поле),
KEYWORDS - ключевые слова,
IMAGE_ID - иконка группы,
INITIATE_PERMS - кто имеет право на приглашение пользователей в группу (обязательное поле): SONET_ROLES_OWNER - только владелец группы, SONET_ROLES_MODERATOR - владелец группы и модераторы группы , SONET_ROLES_USER - все члены группы,
CLOSED - флаг Y/N - является ли группа архивной,
SPAM_PERMS - кто имеет право на отправку сообщений в группу (обязательное поле): SONET_ROLES_OWNER - только владелец группы, SONET_ROLES_MODERATOR - владелец группы и модераторы группы, SONET_ROLES_USER - все члены группы, SONET_ROLES_ALL - все пользователи.
PROJECT Y/N. Является группа проектом или нет. по умолчанию - не является. (С версии 18.0.0)
PROJECT_DATE_FINISH Задаётся окончание проекта. (С версии 18.0.0)
PROJECT_DATE_START Задаётся начало проекта. (С версии 18.0.0)
bAutoSubscribe | Автоподписывание на созданную тему. Необязательный параметр. По умолчанию имеет значение True. | 10.0.0

Возвращаемое значение

Метод возвращает код вновь созданной группы или false в случае ошибки.

Примеры использования

<?
$arImageID = $GLOBALS["HTTP_POST_FILES"]["GROUP_IMAGE_ID"];
if (StrLen($arImageID["tmp_name"]) > 0)
    CFile::ResizeImage($arImageID, array("width" => 300, "height" => 300), BX_RESIZE_IMAGE_PROPORTIONAL);

$arFields = array(
    "SITE_ID" => SITE_ID,
    "NAME" => $_POST["GROUP_NAME"],
    "DESCRIPTION" => $_POST["GROUP_DESCRIPTION"],
    "VISIBLE" => ($_POST["GROUP_VISIBLE"] == "Y" ? "Y" : "N"),
    "OPENED" => ($_POST["GROUP_OPENED"] == "Y" ? "Y" : "N"),
    "CLOSED" => ($_POST["GROUP_CLOSED"] == "Y" ? "Y" : "N"),
    "SUBJECT_ID" => $_POST["GROUP_SUBJECT_ID"],
    "KEYWORDS" => $_POST["GROUP_KEYWORDS"],
    "IMAGE_ID" => $arImageID,
    "INITIATE_PERMS" => $_POST["GROUP_INITIATE_PERMS"],
    "SPAM_PERMS" => $_POST["GROUP_SPAM_PERMS"],
);

$groupId = CSocNetGroup::CreateGroup($GLOBALS["USER"]->GetID(), $arFields);
if (!$groupId)
{
    if ($e = $GLOBALS["APPLICATION"]->GetException())
        $errorMessage .= $e->GetString();
}
?>


GetByID

Социальная сеть>Классы>CSocNetGroup>GetByID (доступен с 7.0.6)

CSocNetGroup::GetByID

Описание и параметры

array
CSocNetGroup::GetByID(
 int ID,
 bool bCheckPermissions = false
);

Метод возвращает параметры рабочей группы с заданным идентификатором. Метод статический.

Примечание: при многократном вызове метода для одного и того же идентификатора рабочей группы в рамках одного хита запрос к базе направляется только один раз. В дальнейшем результат возвращается без запроса к базе.

Параметры

Параметр | Описание | С версии
ID | Идентификатор рабочей группы |
ID | Флаг проверки прав доступа. Необязательный параметр. По умолчанию равен false. | 12.0.2

Метод, помимо значений обычных полей, выбирает и значения всех пользовательских полей рабочей группы.

Возвращаемое значение

Возвращается массив с ключами:
ID - идентификатор рабочей группы,
SITE_ID - код сайта,
NAME - название группы,
DESCRIPTION - описание группы,
DATE_CREATE - дата создания,
DATE_UPDATE - дата последнего изменения параметров группы,
ACTIVE - активность,
VISIBLE - видима ли группа в списках,
OPENED - открыта ли группа для свободного вступления,
CLOSED - является ли группа архивной,
SUBJECT_ID - код темы группы,
OWNER_ID - код пользователя-владельца группы,
KEYWORDS - ключевые слова,
IMAGE_ID - код иконки,
NUMBER_OF_MEMBERS - количество членов группы,
INITIATE_PERMS - кто имеет право на прием в группу новых членов,
SPAM_PERMS - кто имеет право на написание сообщений членам группы,
DATE_ACTIVITY - дата последней активности в группе,
SUBJECT_NAME - название темы группы.

Смотрите также

  • CSocNetGroup::GetList

Примеры использования

<?
$arGroup = CSocNetGroup::GetByID(5);
print_r($arGroup);
?>


GetList

Социальная сеть>Классы>CSocNetGroup>GetList (доступен с 7.0.5)

CSocNetGroup::GetList

Описание и параметры

CDBResult
CSocNetGroup::GetList(
 array arOrder = array("ID" => "DESC"),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Возвращает список групп в соответствии с фильтром. Метод статический.

Параметры

Параметр | Описание | С версии
arOrder | Порядок сортировки возвращаемого списка, заданный в виде массива. Ключами в массиве являются поля для сортировки, а значениями - ASC/DESC - порядок сортировки. Допустимые ключи: ID, SITE_ID, NAME, DATE_CREATE, DATE_UPDATE, DATE_ACTIVITY, ACTIVE, VISIBLE, OPENED, CLOSED, SUBJECT_ID, OWNER_ID, NUMBER_OF_MEMBERS, INITIATE_PERMS, SPAM_PERMS, SUBJECT_NAME, OWNER_NAME, OWNER_LAST_NAME, OWNER_LOGIN. |
arFilter | Массив, задающий фильтр на возвращаемый список. Ключами в массиве являются названия полей, а значениями - их значения. Допустимые поля:ID, SITE_ID, NAME, DATE_CREATE, DATE_UPDATE, DATE_ACTIVITY, ACTIVE, VISIBLE, OPENED, CLOSED, SUBJECT_ID, OWNER_ID, NUMBER_OF_MEMBERS, INITIATE_PERMS, SPAM_PERMS, SUBJECT_NAME, OWNER_NAME, OWNER_LAST_NAME, OWNER_LOGIN, CHECK_PERMISSIONS. |
arGroupBy | Массив, задающий группировку результирующего списка. Если параметр содержит массив названий полей, то по этим полям будет произведена группировка. Если параметр содержит пустой массив, то метод вернет количество записей, удовлетворяющих фильтру. По умолчанию параметр равен false - не группировать. |
arNavStartParams | Массив, задающий условия выбора для организации постраничной навигации. |
arSelectFields | Массив, задающий выбираемые поля. Содержит список полей, которые должны быть возвращены методом. Если массив пустой, то выбираются поля ID, SITE_ID, NAME, DESCRIPTION, DATE_CREATE, DATE_UPDATE, DATE_ACTIVITY, ACTIVE, VISIBLE, OPENED, CLOSED, SUBJECT_ID, OWNER_ID, KEYWORDS, IMAGE_ID, NUMBER_OF_MEMBERS, INITIATE_PERMS, SPAM_PERMS, SUBJECT_NAME. В массиве допустимы любые поля из списка полей. |

Метод поддерживает использование пользовательских полей наравне с остальными полями в параметрах arOrder, arFilter и arSelectFields. При этом в arSelectFields возможно использование значения "UF_*" для выборки значений всех пользовательских полей рабочих групп.

Возвращаемое значение

Метод возвращает объект типа CDBResult, содержащий записи, удовлетворяющие условию выборки.

Список полей

ID - идентификатор рабочей группы,
SITE_ID - код сайта,
NAME - название группы,
DESCRIPTION - описание группы,
DATE_CREATE - дата создания,
DATE_UPDATE - дата последнего изменения параметров группы,
ACTIVE - активность,
VISIBLE - видима ли группа в списках,
OPENED - открыта ли группа для свободного вступления,
CLOSED - является ли группа архивной,
SUBJECT_ID - код темы группы,
OWNER_ID - код пользователя-владельца группы,
KEYWORDS - ключевые слова,
IMAGE_ID - код иконки,
NUMBER_OF_MEMBERS - количество членов группы,
INITIATE_PERMS - кто имеет право на прием в группу новых членов,
SPAM_PERMS - кто имеет право на написание сообщений членам группы,
DATE_ACTIVITY - дата последней активности в группе,
SUBJECT_NAME - название темы группы,
OWNER_NAME - имя владельца группы,
OWNER_LAST_NAME - фамилия владельца группы,
OWNER_LOGIN - логин владельца группы,
CHECK_PERMISSIONS - ID того пользователя, чьи права надо учесть при выводе групп. В частном случае это текущий пользователь. Без проверки прав выведутся вообще все группы.

Смотрите также

  • CDBResult
  • CSocNetGroup::GetById


Update

Социальная сеть>Классы>CSocNetGroup>Update (доступен с 7.0.5)

CSocNetGroup::Update

Описание и параметры

int
CSocNetGroup::Update(
 int ID,
 array arFields,
 bool bAutoSubscribe = true,
 bool bClearCommonTag = true
);

Метод изменяет параметры группы с заданным идентификатором. Метод статический.

Примечание: при работе метода вызываются события OnBeforeSocNetGroupUpdate и OnSocNetGroupUpdate.

Параметры

Параметр | Описание | С версии
ID | Идентификатор группы
arFields Массив параметров группы, которые должны быть изменены. Ключами в массиве являются названия параметров, а значениями - новые значения. Допустимые ключи: SITE_ID - код сайта;
NAME - название группы;
DESCRIPTION - описание группы;
VISIBLE - флаг Y/N - видна ли группа в списке групп;
OPENED - флаг Y/N - открыта ли группа для свободного вступления;
SUBJECT_ID - код темы;
KEYWORDS - ключевые слова;
IMAGE_ID - иконка группы;
INITIATE_PERMS - кто имеет право на приглашение пользователей в группу: SONET_ROLES_OWNER - только владелец группы, SONET_ROLES_MODERATOR - владелец группы и модераторы группы, SONET_ROLES_USER - все члены группы;*
CLOSED - флаг Y/N - является ли группа архивной;
SPAM_PERMS - кто имеет право на отправку сообщений в группу: SONET_ROLES_OWNER - только владелец группы, SONET_ROLES_MODERATOR - владелец группы и модераторы группы, SONET_ROLES_USER - все члены группы.* 		ID
bAutoSubscribe | Флаг автоподписки на уведомления. Необязательный. По умолчанию равен true. | 10.0.0
bClearCommonTag | Необязательный. По умолчанию равен true. | 12.5.1

* - SONET_ROLES_OWNER, SONET_ROLES_MODERATOR, SONET_ROLES_USER - имена констант.

Метод поддерживает пользовательские поля. Значения пользовательских полей передаются так же, как и штатных полей, например: "UF_TEXT_1"=>"xxx".

Возвращаемое значение

Метод возвращает код изменяемой группы или false в случае ошибки.

Примеры использования

<?
$arFields = array(
    "NAME" => $_POST["GROUP_NAME"],
    "DESCRIPTION" => $_POST["GROUP_DESCRIPTION"],
);
if (!CSocNetGroup::Update($ID, $arFields))
{
    if ($e = $GLOBALS["APPLICATION"]->GetException())
        $errorMessage .= $e->GetString();
}
?>


CSocNetGroupSubject

CSocNetGroupSubject - класс для работы с темами рабочих групп социальной сети.

Методы класса

Метод | Описание | С версии
Delete | Удаляет тему. | 8.5.4
GetByID | Возвращает параметры темы. | 8.5.4
Add | Создает новую тему. | 8.0.7
Update | Изменяет параметры темы. | 8.5.4
GetList | Возвращает список тем. | 8.0.7


Add

Социальная сеть>Классы>CSocNetGroupSubject>Add (доступен с 8.0.7)

CSocNetGroupSubject::Add

int
CSocNetGroupSubject::Add(
 array arFields
);

Метод добавляет новую тему. Метод нестатический.

Параметры

Параметр | Описание | С версии
arFields | Массив параметров новой темы. Ключами массива являются названия полей темы, а значениями - их значения. Допустимые ключи: SITE_ID - код сайта, NAME - название. |

Возвращаемое значение

Возвращается код созданной темы или false в случае ошибки.


Delete

Социальная сеть>Классы>CSocNetGroupSubject>Delete (доступен с 8.5.4)

CSocNetGroupSubject::Delete

bool
CSocNetGroupSubject::Delete(
 int id
);

Метод удаляет тему рабочих групп. Если есть группы с этой темой, то тема удалена не будет. Метод нестатический.

Параметры

Параметр | Описание | C версии
id | Код темы. |

Возвращаемое значение

True в случае успешного удаления и false - в противном случае.


GetByID

Социальная сеть>Классы>CSocNetGroupSubject>GetByID (доступен с 8.5.4)

CSocNetGroupSubject::GetByID

array
CSocNetGroupSubject::GetByID(
 int id
);

Возвращает параметры темы. Не порождает запросов к базе данных. Метод статический.

Параметры

Параметр | Описание | С версии
id | Код темы. |

Возвращаемое значение

Массив параметров темы. Массив имеет ключи:
ID - код темы,
SITE_ID - код сайта,
NAME - название.


GetList

Социальная сеть>Классы>CSocNetGroupSubject>GetList (доступен с 8.0.7)

CSocNetGroupSubject::GetList

Описание и параметры

CDBResult
CSocNetGroupSubject::GetList(
 array arOrder = array("SORT" => "ASC", "ID" => "DESC"),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Возвращает список тем в соответствии с фильтром. Метод нестатический.

Параметры

Параметр | Описание | С версии
arOrder | Порядок сортировки возвращаемого списка, заданный в виде массива. Ключами в массиве являются поля для сортировки, а значениями - ASC/DESC - порядок сортировки. Допустимые ключи: ID, SITE_ID, NAME. | 8.5.4
arFilter | Массив, задающий фильтр на возвращаемый список. Ключами в массиве являются названия полей, а значениями - их значения. Допустимые поля: ID, SITE_ID, NAME. |
arGroupBy | Массив, задающий группировку результирующего списка. Если параметр содержит массив названий полей, то по этим полям будет произведена группировка. Если параметр содержит пустой массив, то метод вернет количество записей, удовлетворяющих фильтру. По умолчанию параметр равен false - не группировать. |
arNavStartParams | Массив, задающий условия выбора для организации постраничной навигации. |
arSelectFields | Массив, задающий выбираемые поля. Содержит список полей, которые должны быть возвращены методом. Если массив пустой, то выбираются поля ID, SITE_ID, NAME. |
arSelectFields | Массив, задающий выбираемые поля. Содержит список полей, которые должны быть возвращены методом. Если массив пустой, то выбираются поля ID, SITE_ID, NAME. |

Список полей

ID - код темы,
SITE_ID - код сайта,
NAME - название.

Возвращаемое значение

Возвращается объект типа CDBResult, содержащий список записей, удовлетворяющих фильтру.

Смотрите также

  • CDBResult


Update

Социальная сеть>Классы>CSocNetGroupSubject>Update (доступен с 8.5.4)

CSocNetGroupSubject::Update

int
CSocNetGroupSubject::Update(
 int id,
 array arFields
);

Изменяет параметры темы. Метод нестатический.

Параметры

Параметр | Описание | С версии
id | Код темы. |
arFields | Массив новых параметров темы. Ключами массива являются названия полей темы, а значениями - их значения. Допустимые ключи: SITE_ID - код сайта, NAME - название. |

Возвращаемое значение

Возвращается код измененной темы или false в случае ошибки.


CSocNetMessages

CSocNetMessages - класс для работы с сообщениями социальной сети.

Внимание! Начиная с версии 11.0 класс не рекомендуется использовать. Вместо него используйте модуль Веб-мессенджер.

Методы класса

Метод | Описание | С версии
Delete | Удаляет сообщение из базы. | 7.0.6
DeleteMessage | Выполняет логическое удаление сообщения. | 7.0.6
GetByID | Возвращает параметры сообщения. | 7.0.6
Add | Создает новое сообщение. | 7.0.6
Update | Изменяет параметры сообщения. | 7.0.6
GetList | Возвращает список сообщений. | 7.0.6
MarkMessageRead | Отмечает сообщение как прочтенное. | 7.0.6
CreateMessage | Создает новое сообщение. | 7.0.6
MarkMessageReadMultiple | Отмечает набор сообщений как прочтенные. | 7.0.6
DeleteMessageMultiple | Удаляет набор сообщений. | 7.0.6
SpeedFileExists | Проверяет, есть ли новые сообщения для пользователя. | 7.0.6
GetChatLastDate | Возвращает дату последнего сообщения в переписке между пользователями. | 7.0.6
GetMessagesForChat | Возвращает сообщения переписки между пользователями. | 7.0.6
GetMessagesUsers | Возвращает список сообщений данного пользователя. | 7.0.6


Add

Социальная сеть>Классы>CSocNetMessages>Add (доступен с 7.0.6)

CSocNetMessages::Add

Описание и параметры

int
CSocNetMessages::Add(
 array arFields
);

Метод добавляет новое сообщение пользователю. Сообщение может быть как персональным, так и системным. Метод нестатический.

Примечание: Для добавления нового персонального сообщения рекомендуется использовать метод CSocNetMessages::CreateMessage.
При работе метода вызываются события: OnBeforeSocNetMessagesAdd и OnSocNetMessagesAdd.

Параметры

Параметр | Описание | C версии
arFields | Массив параметров нового сообщения. Может содержать ключи: FROM_USER_ID - от кого (обязательное поле), TO_USER_ID - кому (обязательное поле), MESSAGE - сообщение (обязательное поле), DATE_CREATE - дата создания сообщения (обязательное поле), MESSAGE_TYPE - тип сообщения: P - персональное, S - системное. |

Возвращаемое значение

Метод возвращает ID созданного сообщения в случае успешного завершения или false в случае ошибки.

Примеры использования

<?
$arFields = array(
   "FROM_USER_ID" => 1,
   "TO_USER_ID" => 2,
   "MESSAGE" => "Привет!",
   "=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(),
   "MESSAGE_TYPE" => "P",
);
CSocNetMessages::Add($arFields);
?>


CreateMessage

Социальная сеть>Классы>CSocNetMessages>CreateMessage (доступен с 7.0.6)

CSocNetMessages::CreateMessage

Описание и параметры

bool
CSocNetMessages::CreateMessage(
 int senderUserId,
 int targetUserID,
 string message
);

Вспомогательный метод для отправки персонального сообщения от одного пользователя социальной сети другому. Метод нестатический.

Примечание: для отправки системного сообщения используется метод CSocNetMessages::Add.
При работе метода вызываются события: OnBeforeSocNetMessagesAdd и OnSocNetMessagesAdd.

Параметры

Параметр | Описание | С версии
senderUserId | Код пользователя-отправителя сообщения. |
targetUserID | Код пользователя-получателя сообщения. |
message | Текст сообщения. |

Возвращаемое значение

Метод возвращает true в случае успешного сохранения сообщения и false в противном случае.

Смотрите также

  • CSocNetMessages::Add

Примеры использования

<?
if (!CSocNetMessages::CreateMessage($GLOBALS["USER"]->GetID(), $userId, $message))
{
    if ($e = $GLOBALS["APPLICATION"]->GetException())
        $errorMessage .= $e->GetString();
}
?>


Delete

Социальная сеть>Классы>CSocNetMessages>Delete (доступен с 7.0.6)

CSocNetMessages::Delete

bool
CSocNetMessages::Delete(
 int id
);

Метод удаляет сообщение из базы данных. Используется для физического удаления записи. Для логического удаления согласно алгоритму работы модуля социальной сети следует использовать метод CSocNetMessages::DeleteMessage. Метод нестатический.

Примечание: при удалении записи вызываются события OnBeforeSocNetMessagesDelete и OnSocNetMessagesDelete.

Параметры

Параметр | Описание | C версии
id | Код сообщения |

Возвращаемое значение

True в случае успешного удаления и false - в случае ошибки.


DeleteMessage

Социальная сеть>Классы>CSocNetMessages>DeleteMessage (доступен с 7.0.6)

CSocNetMessages::DeleteMessage

bool
CSocNetMessages::DeleteMessage(
 int id,
 int userId,
 bool bCheckMessages = true
);

Метод для логического удаления сообщения. Метод принимает на вход код пользователя - отправителя или получателя сообщения. Сообщение помечается как удаленное для этого пользователя. Для второго пользователя это сообщение не является удаленным и доступно как обычно. Физическое удаление сообщения происходит после логического удаления сообщения вторым пользователем. Метод нестатический.

Примечание: при физическом удалении используется метод CSocNetMessages::Delete.

Параметры

Параметр | Описание | С версии
id | Код сообщения. |
userId | Код пользователя - отправителя или получателя сообщения, который удаляет сообщение. |
bCheckMessages | Необязательный параметр. По умолчанию равен true. | 9.0.3

Возвращаемое значение

True в случае успешного удаления и false - в случае ошибки.


DeleteMessageMultiple

Социальная сеть>Классы>CSocNetMessages>DeleteMessageMultiple (доступен с 7.0.6)

CSocNetMessages::DeleteMessageMultiple

bool
CSocNetMessages::DeleteMessageMultiple(
 int userId,
 array arIDs
);

Удаляет набор сообщений. Метод нестатический.

Параметры

Параметр | Описание | С версии
userId | Пользователь, удаляющий сообщения. Пользователь должен быть автором или получателем сообщений. |
arIDs | Массив идентификаторов сообщений. |

Возвращаемое значение

True в случае успешного удаления и false - в противном случае.


GetByID

Социальная сеть>Классы>CSocNetMessages>GetByID (доступен с 7.0.6)

CSocNetMessages::GetByID

Описание и параметры

array
CSocNetMessages::GetByID(
 int id
);

Метод возвращает массив с параметрами сообщения. Метод нестатический.

Параметры

Параметр | Описание | С версии
id | Код сообщения. |

Возвращаемое значение

Возвращается массив с ключами:
ID - идентификатор сообщения,
FROM_USER_ID - код пользователя - отправителя сообщения,
TO_USER_ID - код пользователя - получателя сообщения,
MESSAGE - сообщение,
DATE_CREATE - дата создания сообщения,
DATE_VIEW - дата прочтения,
MESSAGE_TYPE - тип сообщения: SONET_MESSAGE_SYSTEM - системное, SONET_MESSAGE_PRIVATE - пользовательское,
FROM_DELETED - флаг (Y/N) удаления сообщения отправителем,
TO_DELETED - флаг (Y/N) удаления сообщения получателем.

Смотрите также

  • CSocNetMessages::GetList


GetChatLastDate

Социальная сеть>Классы>CSocNetMessages>GetChatLastDate (доступен с 7.0.6)

CSocNetMessages::GetChatLastDate

string
CSocNetMessages::GetChatLastDate(
 int userID1,
 int userID2
);

Возвращает дату последнего сообщения в переписке между пользователями. Метод нестатический.

Параметры

Параметр | Описание | C версии
userID1 | Первый пользователь. |
userID2 | Второй пользователь. |

Возвращаемое значение

Строка, содержащая дату последнего сообщения между пользователями в формате YYYY-MM-DD 00:00:00. Если сообщений между пользователями нет, то возвращается текущая дата в указанном формате.


GetList

Социальная сеть>Классы>CSocNetMessages>GetList (доступен с 7.0.6)

CSocNetMessages::GetList

Описание и параметры

CDBResult
CSocNetMessages::GetList(
 array arOrder = array("ID" => "DESC"),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает список сообщений в соответствии с фильтром. Метод статический.

Параметры

Параметр | Описание | С версии
arOrder | Порядок сортировки возвращаемого списка, заданный в виде массива. Ключами в массиве являются поля для сортировки, а значениями - ASC/DESC - порядок сортировки. Допустимые ключи: ID, FROM_USER_ID, TO_USER_ID, DATE_CREATE, DATE_VIEW, MESSAGE_TYPE, FROM_DELETED, TO_DELETED, SEND_MAIL, EMAIL_TEMPLATE, FROM_USER_NAME, FROM_USER_LAST_NAME, FROM_USER_LOGIN, FROM_USER_LID, TO_USER_NAME, TO_USER_LAST_NAME, TO_USER_LOGIN, TO_USER_EMAIL, TO_USER_LID. |
arFilter | Массив, задающий фильтр на возвращаемый список. Ключами в массиве являются названия полей, а значениями - их значения. Допустимые поля: ID, FROM_USER_ID, TO_USER_ID, DATE_CREATE, DATE_VIEW, MESSAGE_TYPE, FROM_DELETED, TO_DELETED, SEND_MAIL, EMAIL_TEMPLATE, FROM_USER_NAME, FROM_USER_LAST_NAME, FROM_USER_LOGIN, FROM_USER_LID, TO_USER_NAME, TO_USER_LAST_NAME, TO_USER_LOGIN, TO_USER_EMAIL, TO_USER_LID. |
arGroupBy | Массив, задающий группировку результирующего списка. Если параметр содержит массив названий полей, то по этим полям будет произведена группировка. Если параметр содержит пустой массив, то метод вернет количество записей, удовлетворяющих фильтру. По умолчанию параметр равен false - не группировать. |
arNavStartParams | Массив, задающий условия выбора для организации постраничной навигации. |
arSelectFields | Массив, задающий выбираемые поля. Содержит список полей, которые должны быть возвращены методом. Если массив пустой, то выбираются поля ID, FROM_USER_ID, TO_USER_ID, MESSAGE, DATE_CREATE, DATE_VIEW, MESSAGE_TYPE, FROM_DELETED, TO_DELETED. В массиве допустимы любые поля из списка полей. |

Список полей

ID - идентификатор сообщения,
FROM_USER_ID - код пользователя - отправителя сообщения,
TO_USER_ID - код пользователя - получателя сообщения,
MESSAGE - сообщение,
DATE_CREATE - дата создания сообщения,
DATE_VIEW - дата прочтения,
MESSAGE_TYPE - тип сообщения: SONET_MESSAGE_SYSTEM - системное, SONET_MESSAGE_PRIVATE - пользовательское,
FROM_DELETED - флаг (Y/N) удаления сообщения отправителем,
TO_DELETED - флаг (Y/N) удаления сообщения получателем,
SEND_MAIL - флаг (Y/N) отправки сообщения почтой,
EMAIL_TEMPLATE - почтовый шаблон при помощи которого это сообщение будет отправляться на почту,
FROM_USER_NAME - имя пользователя - отправителя сообщения,
FROM_USER_LAST_NAME - фамилия пользователя - отправителя сообщения,
FROM_USER_LOGIN - логин пользователя - отправителя сообщения,
FROM_USER_PERSONAL_PHOTO - код фотографии пользователя - отправителя сообщения,
FROM_USER_LID - сайт пользователя - отправителя сообщения,
TO_USER_NAME - имя пользователя - получателя сообщения,
TO_USER_LAST_NAME - фамилия пользователя - получателя сообщения,
TO_USER_LOGIN - логин пользователя - получателя сообщения,
TO_USER_EMAIL - E-Mail пользователя - получателя сообщения,
TO_USER_PERSONAL_PHOTO - код фотографии пользователя - получателя сообщения,
TO_USER_LID - сайт пользователя - получателя сообщения.

Возвращаемое значение

Метод возвращает объект типа CDBResult, содержащий записи, удовлетворяющие условию выборки.

Смотрите также

  • CDBResult
  • CSocNetMessages::GetById


GetMessagesForChat

Социальная сеть>Классы>CSocNetMessages>GetMessagesForChat (доступен с 7.0.6)

CSocNetMessages::GetMessagesForChat

Описание и параметры

CDBResult
CSocNetMessages::GetMessagesForChat(
 int currentUserID,
 int userID,
 string date = false,
 array arNavStartParams = false,
 int replyMessId = false
);

Возвращает сообщения переписки между пользователями. Метод нестатический.

Параметры

Параметр | Описание | С версии
currentUserID | Код текущего пользователя. |
userID | Код второго пользователя. |
date | Дата, начиная с которой выбираются сообщения. Должна иметь формат YYYY-MM-DD HH:II:SS. Если задан параметр replyMessId, то дата не учитывается. |
arNavStartParams | Параметр для организации постраничной навигации. |
replyMessId | Код сообщения, начиная с которого выбираются сообщения. |

Возвращаемое значение

Объект типа CDBResult, содержащий сообщения переписки.
Каждое сообщение имеет поля:
WHO - входящее или исходящее сообщение (IN/OUT),
ID - код сообщения,
USER_ID - код пользователя, с которым ведется переписка,
MESSAGE - сообщение,
DATE_VIEW - дата прочтения,
DATE_CREATE - дата создания,
DATE_CREATE_FMT - дата создания в формате YYYY-MM-DD HH:II:SS.

Смотрите также

  • CDBResult


GetMessagesUsers

Социальная сеть>Классы>CSocNetMessages>GetMessagesUsers (доступен с 7.0.6)

CSocNetMessages::GetMessagesUsers

Описание и параметры

CDBResult
CSocNetMessages::GetMessagesUsers(
 int userID,
 array arNavStartParams = false,
 int online_interval = 120
);

Возвращает список пользователей, имеющих переписку с данным пользователем. Метод нестатический.

Параметры

Параметр | Описание | C версии
userID | Код пользователя. |
arNavStartParams | Параметры постраничной навигации. |
online_interval | Параметр времени опроса сервера в сек. Необязательный параметр. По умолчанию равен 120. | 11.0.1

Возвращаемое значение

Объект типа CDBResult, содержащий список пользователей. Каждое сообщение имеет поля:
ID - код пользователя,
LOGIN - логин пользователя,
NAME - имя пользователя,
LAST_NAME - фамилия пользователя,
PERSONAL_PHOTO - код фотографии пользователя,
TOTAL - всего сообщений в переписке,
MAX_DATE - дата последнего сообщения,
UNREAD - количество непрочитанных сообщений.

Смотрите также

  • CDBResult

Примеры использования

<?
// Выберем пользователей, имеющих переписку с текущим пользователем для постраничной навигации в 20 записей
$arNavParams = array("nPageSize" => 20, "bDescPageNumbering" => false);
$dbMessages = CSocNetMessages::GetMessagesUsers($GLOBALS["USER"]->GetID(), $arNavParams);
while ($arMessages = $dbMessages->GetNext())
{
     . . .
}
?>


MarkMessageRead

Социальная сеть>Классы>CSocNetMessages>MarkMessageRead (доступен с 7.0.6)

CSocNetMessages::MarkMessageRead

bool
CSocNetMessages::MarkMessageRead(
 targetUserID,
 int senderUserID,
 int messageID,
 bool bRead = true
);

Метод отмечает сообщение как прочтенное. Метод нестатический.

Параметры

Параметр | Описание | C версии
targetUserID | Код пользователя-получателя сообщения. |
senderUserID | Код пользователя-отправителя сообщения. |
messageID | Код сообщения. |
bRead | Необязательный параметр. По умолчанию равен true | 9.5.5

Возвращаемое значение

True в случае успешного выполнения и false - в противном случае.


MarkMessageReadMultiple

Социальная сеть>Классы>CSocNetMessages>MarkMessageReadMultiple (доступен с 7.0.6)

CSocNetMessages::MarkMessageReadMultiple

bool
CSocNetMessages::MarkMessageReadMultiple(
 int userID,
 array arIDs
);

Отмечает набор сообщений как прочтенные. Метод нестатический.

Параметры

Параметр | Описание | С версии
userID | Код пользователя, являющегося получателем сообщений. |
arIDs | Массив идентификаторов сообщений. |

Возвращаемое значение

True в случае успешного выполнения и false - в противном случае.


SpeedFileExists

Социальная сеть>Классы>CSocNetMessages>SpeedFileExists (доступен с 7.0.6)

CSocNetMessages::SpeedFileExists

bool
CSocNetMessages::SpeedFileExists(
 int userID
);

Проверяет, есть ли новые сообщения для пользователя. Проверка осуществляется эффективно, без обращения к базе данных. Метод нестатический.

Параметры

Параметр | Описание | C версии
userID | Код пользователя. |

Возвращаемое значение

True, если есть новые сообщения. Иначе - false.


Update

Социальная сеть>Классы>CSocNetMessages>Update (доступен с 7.0.6)

CSocNetMessages::Update

int
CSocNetMessages::Update(
 int ID,
 array arFields
);

Метод изменяет параметры сообщения. Метод нестатический.

Параметры

Параметр | Описание | С версии
ID | Код сообщения. |
arFields | Массив измененных параметров сообщения. Может содержать ключи: FROM_USER_ID - от кого, TO_USER_ID - кому, MESSAGE - сообщение, DATE_CREATE - дата создания сообщения, DATE_VIEW - дата прочтения сообщения, MESSAGE_TYPE - тип сообщения: P - персональное, S - системное, SEND_MAIL - флаг (Y/N) - сообщение было отправлено по почте. |

Возвращаемое значение

Метод возвращает ID сообщения в случае успешного завершения или false в случае ошибки.


CSocNetSmile

CSocNetSmile - класс для работы со смайлами социальной сети.

Методы класса

Метод | Описание | C версии
Delete | Удаляет смайл. | 8.5.4
GetByID | Возвращает языконезависимые параметры смайла. | 8.5.4
Add | Создает новый смайл. | 8.0.7
Update | Изменяет параметры смайла. | 8.0.7
GetList | Возвращает список смайлов. | 8.0.7
GetByIDEx | Возвращает параметры смайла. | 8.5.4
GetLangByID | Возвращает языкозависимые параметры смайла. | 8.5.4


Add

Социальная сеть>Классы>CSocNetSmile>Add (доступен с 8.0.7)

CSocNetSmile::Add

int
CSocNetSmile::Add(
 array arFields
);

Метод добавляет новый смайл. Метод нестатический.

Параметры

Параметр | Описание | C версии
arFields | Массив значений параметров смайла. Может содержать ключи: SORT - индекс сортировки, SMILE_TYPE - тип смайла, TYPING - написание, IMAGE - изображение, IMAGE_WIDTH - ширина изображения, IMAGE_HEIGHT - высота изображения, DESCRIPTION - описание. Кроме того массив может содержать ключ LANG с языкозависимыми параметрами смайла. В этом ключе содержатся массивы с ключами LID - язык и NAME - название. |

Возвращаемое значение

Возвращается код измененной записи или false в случае ошибки.


Delete

Социальная сеть>Классы>CSocNetSmile>Delete (доступен с 8.5.4)

CSocNetSmile::Delete

bool
CSocNetSmile::Delete(
 int id
);

Метод удаляет смайл. Метод нестатический.

Параметры

Параметр | Описание | С версии
id | Код смайла |

Возвращаемое значение

True в случае успешного выполнения и false - в противном случае.


GetByID

Социальная сеть>Классы>CSocNetSmile>GetByID (дотсупен с 8.5.4)

CSocNetSmile::GetByID

array
CSocNetSmile::GetByID(
 int id
);

Возвращает массив языконезависимых параметров смайла. Метод нестатический.

Параметры

Параметр | Описание | C версии
id | Код смайла. |

Возвращаемое значение

Массив с ключами:
ID - код смайла,
SORT - индекс сортировки,
SMILE_TYPE - тип смайла,
TYPING - написание смайла,
IMAGE - изображение,
IMAGE_WIDTH - ширина изображения,
IMAGE_HEIGHT - высота изображения,
DESCRIPTION - описание.


GetByIDEx

Социальная сеть>Классы>CSocNetSmile>GetByIDEx (доступен с 8.5.4)

CSocNetSmile::GetByIDEx

array
CSocNetSmile::GetByIDEx(
 int id,
 string strLang
);

Возвращает параметры смайла. Метод нестатический.

Параметры

Параметр | Описание | С версии
id | Код смайла. |
strLang | Код языка. |

Возвращаемое значение

Массив параметров смайла, содержащий ключи:
ID - код смайла,
SORT - индекс сортировки,
SMILE_TYPE - тип смайла,
TYPING - написание смайла,
IMAGE - изображение смайла,
IMAGE_WIDTH - ширина изображения,
IMAGE_HEIGHT - высота изображения,
NAME - название смайла,
DESCRIPTION - описание смайла.


GetLangByID

Социальная сеть>Классы>CSocNetSmile>GetLangByID (доступен с 8.5.4)

CSocNetSmile::GetLangByID

array
CSocNetSmile::GetLangByID(
 int id,
 string strLang
);

Возвращает языкозависимые параметры смайла. Метод нестатический.

Параметры

Параметр | Описание | С версии
id | Идентификатор смайла. |
strLang | Код языка. |

Возвращаемое значение

Массив языкозависимых параметров смайлов с ключами:
ID - код,
NAME - название.


GetList

Социальная сеть>Классы>CSocNetSmile>GetList (доступен с 8.0.7 )

CSocNetSmile::GetList

Описание и параметры

CDBResult
CSocNetSmile::GetList(
 array arOrder = array("ID" => "DESC"),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Возвращает список смайлов в соответствии с фильтром. Метод нестатический.

Параметры

Параметр | Описание | C версии
arOrder | Порядок сортировки возвращаемого списка, заданный в виде массива. Ключами в массиве являются поля для сортировки, а значениями - ASC/DESC - порядок сортировки. |
arFilter | Массив, задающий фильтр на возвращаемый список. Ключами в массиве являются названия полей, а значениями - их значения. |
arGroupBy | Массив, задающий группировку результирующего списка. Если параметр содержит массив названий полей, то по этим полям будет произведена группировка. Если параметр содержит пустой массив, то метод вернет количество записей, удовлетворяющих фильтру. По умолчанию параметр равен false - не группировать. |
arNavStartParams | Массив, задающий условия выбора для организации постраничной навигации. |
arSelectFields | Массив, задающий выбираемые поля. Содержит список полей, которые должны быть возвращены методом. |

Возвращаемое значение

Метод возвращает объект типа CDBResult, содержащий записи, удовлетворяющие условию выборки.

Список полей

ID - идентификатор смайла,
SMILE_TYPE - тип смайла,
TYPING - написание,
IMAGE - изображение,
IMAGE_WIDTH - ширина изображения,
IMAGE_HEIGHT - высота изображения,
DESCRIPTION - описание,
SORT - индекс сортировки,
LANG_LID - язык (применяется при задании фильтра по LANG_LID),
LANG_NAME - название (применяется при задании фильтра по LANG_LID).

Смотрите также

  • CDBResult


Update

Социальная сеть>Классы>CSocNetSmile>Update (доступен с 8.0.7)

CSocNetSmile::Update

int
CSocNetSmile::Update(
 int id,
 array arFields
);

Изменяет параметры смайла. Метод нестатический.

Параметры

Параметр | Описание | С версии
id | Код смайла. |
arFields | Массив новых значений параметров смайла. Может содержать ключи: SORT - индекс сортировки, SMILE_TYPE - тип смайла, TYPING - написание, IMAGE - изображение, IMAGE_WIDTH - ширина изображения, IMAGE_HEIGHT - высота изображения, DESCRIPTION - описание. Кроме того массив может содержать ключ LANG с языкозависимыми параметрами смайла. В этом ключе содержатся массивы с ключами LID - язык и NAME - название. Если ключ LANG задан, то все старые языкозависимые параметры удаляются. |

Возвращаемое значение

Возвращается код измененной записи или false в случае ошибки.


CSocNetTextParser

CSocNetTextParser - класс, предназначенный для форматирования сообщений социальной сети. Осуществляет замену спецсимволов и заказных тегов на реальные HTML-теги, обработку ссылок, отображение смайлов.

Методы класса

Метод | Описание | С версии
convert | Метод форматирования сообщения. | 7.0.6
convert4mail | Метод форматирования сообщения для электронной почты. | 7.0.6


convert

Социальная сеть>Классы>CSocNetTextParser>convert (доступен с 7.0.6)

CSocNetTextParser::convert

Описание и параметры

string
CSocNetTextParser::convert(
 string text,
 bool bPreview = true,
 array arImages = array(),
 array allow = array(),
 string type = html
);

Метод форматирования сообщения. Метод нестатический.

Параметры

Параметр | Описание | С версии
text | Исходное сообщение.
bPreview | Необязательный параметр. По умолчанию равен true.
arImages | Массив картинок сообщения.
allow Массив параметров для форматирования сообщения, со значениями Y или N:
  • HTML - в тексте могут содержаться любые HTML теги,
  • ANCHOR - разрешен тег <a>,
  • BIU - разрешены теги <b>, <i>, <u>,
  • IMG - разрешен тег <img>,
  • QUOTE - разрешен тег цитирования <quote>,
  • CODE - разрешен тег показа кода <code>,
  • FONT - разрешен тег <font>,
  • LIST - разрешены теги <ul>, <li>,
  • SMILES - показ смайликов в виде картинок,
  • NL2BR - заменять переводы каретки на тег <br> при разрешении принимать любые HTML теги,
  • VIDEO - разрешена вставка видео,
type | Тип сообщения. Необязательный параметр. По умолчанию принимает значение html. | 8.0.1

Возвращаемое значение

Метод возвращает отформатированную строку сообщения.

Примеры использования

<?
$parser = new CSocNetTextParser(LANGUAGE_ID, "/bitrix/images/socialnetwork/smile/");
$parser->MaxStringLen = 20;
$message = $parser->convert($draftMessage);
?>


convert4mail

Социальная сеть>Классы>CSocNetTextParser>convert4mail (доступен с 7.0.6)

CSocNetTextParser::convert4mail

string
CSocNetTextParser::convert4mail(
 string text
);

Метод форматирования сообщения для отправки по электронной почте. Метод нестатический.

Параметры

Параметр | Описание | C версии
text | Текст сообщения. |

Возвращаемое значение

Метод возвращает отформатированную строку сообщения.


CSocNetTools

CSocNetTools - вспомогательный класс модуля социальной сети.

Методы класса

Метод | Описание | С версии
InitImage | Возвращает параметры изображения заданного кодом. В случае необходимости осуществляет масштабирование. | 7.0.6
ResizeImage | Осуществляет масштабирование изображения. | 7.0.6
Birthday | Вспомогательный метод форматирования дня рождения. | 7.0.6


Birthday

Социальная сеть>Классы>CSocNetTools>Birthday (доступен с 7.0.6)

CSocNetTools::Birthday

array
CSocNetTools::Birthday(
 date datetime,
 char gender,
 char showYear = "N"
);

Подготавливает день рождения для вывода. Метод нестатический.

Параметры

Параметр | Описание | C версии
datetime | Дата рождения |
gender | Пол. Допустимые значения: M - мужской, F - женский, X - средний. |
showYear | Показывать ли год рождения. Допустимые значения: Y - показывать, M - показывать только для мужского пола, N - не показывать. |

Возвращаемое значение

Метод возвращает массив с ключами: DATE - отформатированный день рождения, MONTH - месяц рождения, DAY - день в месяце.


InitImage

Социальная сеть>Классы>CSocNetTools>InitImage (доступен с 7.0.6)

CSocNetTools::InitImage

Описание и параметры

array
CSocNetTools::InitImage(
 int imageID,
 int imageSize,
 string defaultImage,
 int defaultImageSize,
 string imageUrl,
 string showImageUrl,
 string urlParams = false
);

Метод возвращает параметры изображения, заданного его идентификатором. При необходимости осуществляется масштабирование изображения. В случае отсутствия изображения возвращается изображение заданное как изображение по-умолчанию. Метод нестатический.

Параметры

Параметр | Описание | C версии
imageID | Идентификатор изображения. |
imageSize | Размер изображения. В случае, если оригинальное изображение хотя бы по одному измерению больше указанного размера, осуществляется автоматическое масштабирование. |
defaultImage | Ссылка на изображение "по-умолчанию". Используется, если изображение не найдено. |
defaultImageSize | Размер изображения "по-умолчанию". |
imageUrl | Ссылка, на которую браузер переходит при клике на изображении. Может быть не задана. |
showImageUrl | Флаг, имеющий значение true, если необходимо показывать ссылку. Иначе - false. |
urlParams | Дополнительные параметры ссылки (тега a). |

Возвращаемое значение

Метод возвращает массив с ключами FILE и IMG. В ключе FILE содержится массив, описывающий изображение (аналогичен массиву, возвращаемому метолом CFile::GetFileArray). В ключе IMG содержится готовая для вывода строка HTML, показывающая изображение.

Примеры использования

<?
$arImage = CSocNetTools::InitImage($personalPhoto, 150, "/bitrix/images/socialnetwork/nopic_user_150.gif", 150, "", false);
?>


ResizeImage

Социальная сеть>Классы>CSocNetTools>ResizeImage (доступен с 7.0.6)

CSocNetTools::ResizeImage

string
CSocNetTools::ResizeImage(
 mixed aFile,
 int sizeX,
 int sizeY
);

Метод осуществляет масштабирование изображения, заданного в виде идентификатора или в виде массива, совпадающего по структуре с массивом, возвращаемым методом CFile::GetByID. Если размеры изображения превышают заданные, то осуществляется масштабирование. Метод нестатический.

Примечание: возможное примечание.

Параметры

Параметр | Описание | С версии
aFile | Идентификатор изображения или в массив, совпадающий по структуре с массивом, возвращаемым методом CFile::GetByID. |
sizeX | Масштабируемый размер по горизонтали. |
sizeY | Масштабируемый размер по вертикали. |

Возвращаемое значение

Метод возвращает путь к масштабируемому изображению относительно корня сайта. В случае ошибки возвращается false.


CSocNetUser

CSocNetUser - класс, содержащий вспомогательные методы для работы с пользователями социальной сети.

Методы класса

Метод | Описание | C версии
IsOnLine | Проверяет, находится ли сейчас пользователь на сайте. | 7.0.6
IsFriendsAllowed | Проверяет, разрешен ли функционал друзей. | 7.0.6
IsCurrentUserModuleAdmin | Проверяет, является ли текущий пользователь администратором модуля. | 11.0.1
FormatName | Подготавливает имя пользователя для вывода. | 7.1.0
FormatNameEx | Подготавливает имя пользователя для вывода в расширенном виде. | 7.1.0
SearchUser | Ищет пользователя по его имени. | 7.1.0


FormatName

Социальная сеть>Классы>CSocNetUser>FormatName (доступен с 7.1.0)

CSocNetUser::FormatName

string
CSocNetUser::FormatName(
 string name,
 string lastName,
 string login
);

Метод подготавливает имя пользователя для вывода. Метод статический.

Параметры

Параметр | Описание | С версии
name | Имя пользователя. |
lastName | Фамилия пользователя. |
login | Логин пользователя. |

Возвращаемое значение

Возвращается строка, содержащая отформатированное имя пользователя.


FormatNameEx

Социальная сеть>Классы>CSocNetUser>FormatNameEx (доступен с 7.1.0)

CSocNetUser::FormatNameEx

string
CSocNetUser::FormatNameEx(
 string name,
 string secondName,
 string lastName,
 string login,
 string email,
 string id
);

Метод подготавливает имя пользователя для вывода в расширенном виде. Метод статический.

Параметры

Параметр | Описание | С версии
name | Имя пользователя. |
secondName | Отчество пользователя. |
lastName | Фамилия пользователя. |
login | Логин пользователя |
email | E-Mail пользователя. |
id | Код пользователя. |

Возвращаемое значение

Возвращается строка, содержащая отформатированное имя пользователя.


IsCurrentUserModuleAdmin

Социальная сеть>Классы>CSocNetUser>IsCurrentUserModuleAdmin (доступен с 11.0.1)

CSocNetUser::IsCurrentUserModuleAdmin

Описание и параметры

bool
CSocNetUser::IsCurrentUserModuleAdmin();
 string site_id = SITE_ID,
 bool bUseSession = true
);

Метод проверяет, есть ли у текущего пользователя административные права на доступ к модулю социальной сети. Метод статический.

Параметры

Параметр | Описание | C версии
site_id | Идентификатор сайта, необязательный параметр. По умолчанию подставляется текущий сайт. |
bUseSession | Параметр, указывающий использовать текущую сессию авторизации пользователя. Необязательный параметр. По умолчанию равен true. | 11.5.4

Возвращаемое значение

Если пользователь является администратором или имеет права записи на модуль социальной сети, то метод возвращает true, иначе - false.

Примеры использования

<?
if (CSocNetUser::IsCurrentUserModuleAdmin())
{
   // Текущему пользователю можно все
}
?>


IsFriendsAllowed

Социальная сеть>Классы>CSocNetUser>IsFriendsAllowed (доступен с 7.0.6)

CSocNetUser::IsFriendsAllowed

bool
CSocNetUser::IsFriendsAllowed();

Проверяет, разрешен ли функционал друзей. Метод статический.

Возвращаемое значение

True, если функционал друзей включен на сайте. Иначе - false.


IsOnLine

Социальная сеть>Классы>CSocNetUser>IsOnLine (доступен с 7.0.6)

CSocNetUser::IsOnLine

bool
CSocNetUser::IsOnLine(
 int userID
);

Метод проверяет, находится ли сейчас пользователь на сайте. Пользователь находится на сайте, если он совершал на сайте какие-либо действия за последние 2 минуты. Метод статический.

Параметры

Параметр | Описание | С версии
userID | Код пользователя. |

Возвращаемое значение

True, если пользователь сейчас на сайте. Иначе - false.


SearchUser

Социальная сеть>Классы>CSocNetUser>SearchUser (доступен с 7.1.0)

CSocNetUser::SearchUser

array
CSocNetUser::SearchUser(
 string user,
 bool bIntranet = false
);

Метод ищет пользователя по его имени или коду. Метод статический.

Параметры

Параметр | Описание | С версии
user | Имя или код пользователя. Если параметр является числом или строкой, в которой содержится число в квадратных скобках, то это число рассматривается как код пользователя. В противном случае параметр рассматривается как строка, содержащая ФИО пользователя. |
bIntranet | Флаг, определяющий, осуществляется ли работа в рамках решения интранет. Необязательный параметр. По умолчанию равен false. | 7.1.2

Возвращаемое значение

Массив пользователей, удовлетворяющих условию поиска.


CSocNetUserPerms

CSocNetUserPerms - класс для работы с правами на доступ к профилю пользователя.

Методы класса

Метод | Описание | С версии
Delete | Удаляет запись. | 8.5.1
GetByID | Возвращает параметры записи. | 8.5.1
Update | Изменяет параметры записи. | 8.5.1
Add | Создает новую запись. | 8.0.7
GetList | Возвращает список записей. | 8.0.7
GetOperationPerms | Возвращает необходимые права на выполнение заданной операции над профайлом заданного пользователя. | 8.5.1
CanPerformOperation | Проверяет, может ли пользователь совершать указанную операцию над профайлом заданного пользователя. | 8.5.1
InitUserPerms | Инициализирует массив прав пользователя на операции над профайлом заданого пользователя. | 8.5.1
SetPerm | Изменяет право на операцию, если таковое есть. Иначе добавляет новую запись. | 8.5.1


Add

Социальная сеть>Классы>CSocNetUserPerms>Add (доступен с 8.0.7)

CSocNetUserPerms::Add

int
CSocNetUserPerms::Add(
 array arFields
);

Метод добавляет новую запись в таблицу прав на доступ к профайлу пользователя. Метод статический.

Параметры

Параметр | Описание | С версии
arFields | Массив параметров записи с ключами USER_ID - код пользователя, OPERATION_ID - операция, RELATION_TYPE - тип отношений между пользователями. |

Возвращаемое значение

Код добавленной записи или false в случае ошибки.


CanPerformOperation

Социальная сеть>Классы>CSocNetUserPerms>CanPerformOperation (доступен с 8.5.1)

CSocNetUserPerms::CanPerformOperation

bool
CSocNetUserPerms::CanPerformOperation(
 int fromUserID,
 int toUserID,
 string operation,
 bool bCurrentUserIsAdmin = false
);

Метод проверяет, может ли пользователь совершать указанную операцию над профайлом заданного пользователя. Метод статический.

Параметры

Параметр | Описание | С версии
fromUserID | Код пользователя, права которого проверяются. |
toUserID | Код пользователя, к профайлу которого осуществляется доступ. |
operation | Операция. |
bCurrentUserIsAdmin | Является ли администратором пользователь, права которого проверяются. Необязательный парамтер. По умолчанию равен false. |

Возвращаемое значение

True, если права на выполнение операции есть. Иначе - false.


Delete

Социальная сеть>Классы>CSocNetUserPerms>Delete (доступен с 8.5.1)

CSocNetUserPerms::Delete

bool
CSocNetUserPerms::Delete(
 int id
);

Метод удаляет запись из базы данных. Метод статический.

Параметры

Параметр | Описание | С версии
id | Код записи. |

Возвращаемое значение

True в случае успешного удаления и false - в противном случае.


GetByID

Социальная сеть>Классы>CSocNetUserPerms>GetByID (доступен с 8.5.1)

CSocNetUserPerms::GetByID

array
CSocNetUserPerms::GetByID(
 int id
);

Метод возвращает массив параметров записи. Метод статический.

Параметры

Параметр | Описание | C версии
id | Код записи. |

Возвращаемое значение

Массив с ключами:
ID - код записи,
USER_ID - код пользователя,
OPERATION_ID - операция,
RELATION_TYPE - тип отношений между пользователями.


GetList

Социальная сеть>Классы>CSocNetUserPerms>GetList (доступен с 8.0.7)

CSocNetUserPerms::GetList

Описание и параметры

CDBResult
CSocNetUserPerms::GetList(
 array arOrder = array("ID" => "DESC"),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает список прав в соответствии с фильтром. Метод статический.

Параметры

Параметр | Описание | С версии
arOrder | Порядок сортировки возвращаемого списка, заданный в виде массива. Ключами в массиве являются поля для сортировки, а значениями - ASC/DESC - порядок сортировки. |
arFilter | Массив, задающий фильтр на возвращаемый список. Ключами в массиве являются названия полей, а значениями - их значения. |
arGroupBy | Массив, задающий группировку результирующего списка. Если параметр содержит массив названий полей, то по этим полям будет произведена группировка. Если параметр содержит пустой массив, то метод вернет количество записей, удовлетворяющих фильтру. По умолчанию параметр равен false - не группировать. |
arNavStartParams | Массив, задающий условия выбора для организации постраничной навигации. |
arSelectFields | Массив, задающий выбираемые поля. Содержит список полей, которые должны быть возвращены методом. |

Список полей

ID- идентификатор,
USER_ID - код пользователя,
OPERATION_ID - операция,
RELATION_TYPE - тип отношений между пользователями,
USER_NAME - имя пользователя,
USER_LAST_NAME - фамилия пользователя,
USER_LOGIN - логин пользователя.

Возвращаемое значение

Метод возвращает объект типа CDBResult, содержащий записи, удовлетворяющие условию выборки.

Смотрите также

  • CDBResult


GetOperationPerms

Социальная сеть>Классы>CSocNetUserPerms>GetOperationPerms (доступен с 8.5.1)

CSocNetUserPerms::GetOperationPerms

char
CSocNetUserPerms::GetOperationPerms(
 int userID,
 string operation
);

Метод возвращает необходимые права на выполнение заданной операции над профайлом заданного пользователя. Метод статический.

Параметры

Параметр | Описание | C версии
toUserID | Код пользователя, к профайлу которого осуществляется доступ. |
operation | Операция. |

Возвращаемое значение

Права на доступ.


InitUserPerms

Социальная сеть>Классы>CSocNetUserPerms>InitUserPerms (доступен с 8.5.1)

CSocNetUserPerms::InitUserPerms

Описание и параметры

array
CSocNetUserPerms::InitUserPerms(
 int currentUserID,
 int userID,
 bool bCurrentUserIsAdmin
);

Метод инициализирует массив прав пользователя на операции над профайлом заданного пользователя. Метод статический.

Параметры

Параметр | Описание | С версии
currentUserID | Код пользователя, права которого проверяются. |
userID | Код пользователя, к профайлу которого осуществляется доступ. |
bCurrentUserIsAdmin | Флаг, является ли администратором пользователь, права которого проверяются. |

Возвращаемое значение

Массив с ключами:
IsCurrentUser - флаг, осуществляется ли доступ к собственному профайлу,
Relation - отношения между пользователями,
Operations - массив операций:
modifyuser - право на изменение профайла, если в главном модуле разрешено редактировать профиль,
modifyuser_main - право на изменение профайла,
viewcontacts - право на просмотр контактной информации,
invitegroup - приглашение в группу,
message - отправка персонального сообщения,
viewfriends - просмотр друзей,
viewgroups - просмотр групп,
viewprofile - просмотр профиля.

Примеры использования

Array
(
 [Operations] => Array
     (
         [modifyuser] => 1
         [viewcontacts] => 1
         [invitegroup] => 1
         [message] => 1
         [viewfriends] => 1
         [viewgroups] => 1
         [viewprofile] => 1
         [modifyuser_main] =>
     )

 [IsCurrentUser] =>
 [Relation] =>
)


SetPerm

Социальная сеть>Классы>CSocNetUserPerms>SetPerm (доступен с 8.5.1)

CSocNetUserPerms::SetPerm

int
CSocNetUserPerms::SetPerm(
 int userID,
 string feature,
 string perm
);

Изменяет право на операцию, если таковое есть. Иначе добавляет новую запись. Метод статический.

Параметры

Параметр | Описание | C версии
userID | Код пользователя. |
feature | Название функционала. |
perm | Право. |

Возвращаемое значение

Код записи при успешном сохранении и false - в случае ошибки.


Update

Социальная сеть>Классы>CSocNetUserPerms>Update (доступен с 8.5.1)

CSocNetUserPerms::Update

int
CSocNetUserPerms::Update(
 int id,
 array arFields
);

Метод изменяет параметры записи. Метод статический.

Параметры

Параметр | Описание | С версии
id | Код записи. |
arFields | Массив измененных параметров записи с ключами: USER_ID- код пользователя, OPERATION_ID - операция, RELATION_TYPE - тип отношений между пользователями. |

Возвращаемое значение

Код записи в случае успешного выполнения и false - в случае ошибки.


CSocNetUserRelations

CSocNetUserRelations - класс для работы со связями между пользователями.

Методы класса

Метод | Описание | С версии
Delete | Удаляет связь. | 7.1.0
GetByID | Возвращает параметры связи. | 7.1.0
Update | Изменяет параметры записи. | 7.1.0
Add | Создает новую связь. | 7.1.0
GetList | Возвращает список связей. | 7.1.0
GetByUserID | Возвращает параметры связи по кодам пользователей. | 7.1.0
GetRelatedUsers | Возвращает всех пользователей, связанных с данным. | 7.1.0
GetRelation | Возвращает связь между пользователями. | 7.1.0
IsFriends | Проверяет, являются ли указанные пользователи друзьями. | 7.1.0
IsFriends2 | Проверяет, являются ли указанные пользователи друзьями друзей. | 7.1.0
SendRequestToBeFriend | Отправляет запрос пользователю на добавление в друзья. | 7.1.0
ConfirmRequestToBeFriend | Принимает запрос пользователя на добавление в друзья. | 7.1.0
RejectRequestToBeFriend | Отвергает запрос пользователя на добавление в друзья. | 7.1.0
DeleteRelation | Удаляет связь между пользователями. | 7.1.0
BanUser | Включает пользователя в черный список. | 7.1.0
UnBanMember | Исключает пользователя из черного списка. | 7.1.0
SpeedFileExists | Проверяет, есть ли новые запросы на дружбу. | 7.1.0
GetListBirthday | Возвращает список друзей, упорядоченный по дню рождения. | 7.1.0


Add

Социальная сеть>Классы>CSocNetUserRelations>Add (доступен с 7.1.0)

CSocNetUserRelations::Add

Описание и параметры

int
CSocNetUserRelations::Add(
 array arFields
);

Метод создает новую связь между пользователями. Метод нестатический.

Параметры

Параметр | Описание | C версии
arFields | Массив параметров связи. Может иметь ключи: FIRST_USER_ID - код первого пользователя, SECOND_USER_ID - код второго пользователя, RELATION - тип связи: SONET_RELATIONS_FRIEND - пользователи являются друзьями, SONET_RELATIONS_REQUEST - один из пользователей направил другому предложение дружбы, SONET_RELATIONS_BAN - один из пользователей внес другого в черный список, DATE_CREATE - дата создания связи, DATE_UPDATE - дата последнего изменения связи, MESSAGE - сообщение от инициатора связи, INITIATED_BY - флаг, кем инициирована связь: F - первым пользователем, S - вторым. |

Возвращаемое значение

Код связи в случае успешного выполнения или false в случае ошибки.

Примеры использования

В случае успеха возвращает ID пользователя в соцсети.

<?
// Добавление связей
$arFields = array(
    "FIRST_USER_ID" => 11111,
    "SECOND_USER_ID" => 22222,
    "RELATION" => SONET_RELATIONS_FRIEND,
    "=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(),
    "=DATE_UPDATE" => $GLOBALS["DB"]->CurrentTimeFunction(),
    "MESSAGE" => 'Test',
    "INITIATED_BY" => "S",
);
$userAdd = CSocNetUserRelations::Add($arFields);
echo '=<pre>'; print_r($userAdd); echo '</pre>=';
?>


BanUser

Социальная сеть>Классы>CSocNetUserRelations>BanUser (доступен с 7.1.0)

CSocNetUserRelations::BanUser

bool
CSocNetUserRelations::BanUser(
 int senderUserID,
 int targetUserID
);

Метод заносит пользователя в черный список другого пользователя. Метод нестатический.

Параметры

Параметр | Описание | С версии
senderUserID | Пользователь, который заносит в черный список. |
targetUserID | Пользователь, которого заносят в черный список. |

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


ConfirmRequestToBeFriend

Социальная сеть>Классы>CSocNetUserRelations>ConfirmRequestToBeFriend (доступен с 7.1.0)

CSocNetUserRelations::ConfirmRequestToBeFriend

bool
CSocNetUserRelations::ConfirmRequestToBeFriend(
 int userID,
 int relationID,
 bool bAutoSubscribe = true
);

Метод для принятия предложения дружбы. Метод нестатический.

Параметры

Параметр | Описание | С версии
userID | Код пользователя, которому было направлено предложение дружбы и который принимает это предложение. |
relationID | Код отношения между пользователями. |
bAutoSubscribe | Флаг автоподписки на события пользователя. Необязательный парамтер. По умолчанию равен true. | 10.0.0

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


Delete

Социальная сеть>Классы>CSocNetUserRelations>Delete (доступен с 7.1.0)

CSocNetUserRelations::Delete

bool
CSocNetUserRelations::Delete(
 int id
);

Метод удаляет связь между пользователями. Метод нестатический.

Параметры

Параметр | Описание | С версии
id | Код связи. |

Возвращаемое значение

True в случае успешного удаления и false - в противном случае.


DeleteRelation

Социальная сеть>Классы>CSocNetUserRelations>DeleteRelation (доступен с 7.1.0)

CSocNetUserRelations::DeleteRelation

bool
CSocNetUserRelations::DeleteRelation(
 int senderUserID,
 int targetUserID
);

Метод удаляет отношение между пользователями. Метод нестатический.

Параметры

Параметр | Описание | C версии
senderUserID | Пользователь, удаляющий отношение. |
targetUserID | Пользователь, отношение с котором удаляется. |

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


GetByID

Социальная сеть>Классы>CSocNetUserRelations>GetByID (доступен с 7.1.0)

CSocNetUserRelations::GetByID

array
CSocNetUserRelations::GetByID(
 int id
);

Метод возвращает параметры связи. Метод нестатический.

Параметры

Параметр | Описание | C версии
id | Код связи. |

Возвращаемое значение

Массив с ключами:
ID- код связи,
FIRST_USER_ID - код первого пользователя,
SECOND_USER_ID - код второго пользователя,
RELATION - тип связи: SONET_RELATIONS_FRIEND - пользователи являются друзьями, SONET_RELATIONS_REQUEST - один из пользователей направил другому предложение дружбы, SONET_RELATIONS_BAN - один из пользователей внес другого в черный список,
DATE_CREATE - дата создания связи,
DATE_UPDATE - дата последнего изменения связи,
MESSAGE - сообщение от инициатора связи,
INITIATED_BY - флаг, кем инициирована связь: F - первым пользователем, S - вторым.


GetByUserID

Социальная сеть>Классы>CSocNetUserRelations>GetByUserID (доступен с 7.1.0)

CSocNetUserRelations::GetByUserID

array
CSocNetUserRelations::GetByUserID(
 int user1ID,
 int user2ID
);

Метод возвращает связь между пользователями на основании их идентификаторов. Метод нестатический.

Параметры

Параметр | Описание | С версии
user1ID | Код первого пользователя. |
user2ID | Код второго пользователя. |

Возвращаемое значение

В случае отсутствия связи возвращается false. В случае наличия связи возвращается массив с ключами:
ID - код связи,
FIRST_USER_ID - код первого пользователя,
SECOND_USER_ID - код второго пользователя,
RELATION - тип связи: SONET_RELATIONS_FRIEND - пользователи являются друзьями, SONET_RELATIONS_REQUEST - один из пользователей направил другому предложение дружбы, SONET_RELATIONS_BAN - один из пользователей внес другого в черный список,
DATE_CREATE - дата создания связи,
DATE_UPDATE - дата последнего изменения связи,
MESSAGE - сообщение от инициатора при установке связи,
INITIATED_BY - флаг: F - связь инициирована первым пользователем, S - вторым.


GetList

Социальная сеть>Классы>CSocNetUserRelations>GetList (доступен с 7.1.0)

CSocNetUserRelations::GetList

Описание и параметры

CDBResult
CSocNetUserRelations::GetList(
 array arOrder = array("ID" => "DESC"),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает список связей между пользователями в соответствии с фильтром. Метод статический.

Параметры

Параметр | Описание | С версии
arOrder | Порядок сортировки возвращаемого списка, заданный в виде массива. Ключами в массиве являются поля для сортировки, а значениями - ASC/DESC - порядок сортировки. |
arFilter | Массив, задающий фильтр на возвращаемый список. Ключами в массиве являются названия полей, а значениями - их значения. |
arGroupBy | Массив, задающий группировку результирующего списка. Если параметр содержит массив названий полей, то по этим полям будет произведена группировка. Если параметр содержит пустой массив, то метод вернет количество записей, удовлетворяющих фильтру. По умолчанию параметр равен false - не группировать. |
arNavStartParams | Массив, задающий условия выбора для организации постраничной навигации. |
arSelectFields | Массив, задающий выбираемые поля. Содержит список полей, которые должны быть возвращены методом. Если массив пустой, то выбираются поля ID, FIRST_USER_ID, SECOND_USER_ID, RELATION, DATE_CREATE, DATE_UPDATE, MESSAGE, INITIATED_BY. В массиве допустимы любые поля из списка полей. |

Возвращаемое значение

Метод возвращает объект типа CDBResult, содержащий записи, удовлетворяющие условию выборки.

Список полей

ID - код связи,
FIRST_USER_ID - код первого пользователя,
SECOND_USER_ID - код второго пользователя,
RELATION - тип связи: SONET_RELATIONS_FRIEND - пользователи являются друзьями, SONET_RELATIONS_REQUEST - один из пользователей направил другому предложение дружбы, SONET_RELATIONS_BAN - один из пользователей внес другого в черный список,
DATE_CREATE - дата создания связи,
DATE_UPDATE - дата последнего изменения связи,
MESSAGE - сообщение от инициатора связи,
INITIATED_BY - флаг, кем инициирована связь: F - первым пользователем, S - вторым,
FIRST_USER_NAME - имя первого пользователя,
FIRST_USER_LAST_NAME - фамилия первого пользователя,
FIRST_USER_SECOND_NAME - отчество первого пользователя,
FIRST_USER_LOGIN - логин первого пользователя,
FIRST_USER_EMAIL - E-Mail первого пользователя,
FIRST_USER_PERSONAL_PHOTO - код фотографии первого пользователя,
FIRST_USER_LID - сайт первого пользователя,
SECOND_USER_NAME - имя второго пользователя,
SECOND_USER_LAST_NAME - фамилия второго пользователя,
SECOND_USER_SECOND_NAME - отчество второго пользователя,
SECOND_USER_LOGIN - логин второго пользователя,
SECOND_USER_EMAIL - E-Mail второго пользователя,
SECOND_USER_PERSONAL_PHOTO - код фотографии второго пользователя,
SECOND_USER_LID - сайт второго пользователя,
RAND - случайное число.

Смотрите также

  • CDBResult


GetListBirthday

Социальная сеть>Классы>CSocNetUserRelations>GetListBirthday (доступен с 7.1.0)

CSocNetUserRelations::GetListBirthday

Описание и параметры

CDBResult
CSocNetUserRelations::GetListBirthday(
 int userID,
 int number = 5,
 int online_interval = 120
);

Метод возвращает список друзей, упорядоченный по дню рождения. Метод нестатический.

Параметры

Параметр | Описание | C версии
userID | Код пользователя, друзья которого выбираются. |
number | Количество возвращаемых записей. |
online_interval | Параметр времени опроса сервера в сек. Необязательный параметр. По умолчанию равен 120. | 11.0.1

Возвращаемое значение

Возвращается объект типа CDBResult, содержащий записи с полями:
ID - код пользователя,
NAME - имя пользователя,
LAST_NAME - фамилия пользователя,
SECOND_NAME - отчество пользователя,
LOGIN - логин пользователя,
EMAIL - E-Mail пользователя,
PERSONAL_PHOTO - код фотографии пользователя,
PB - день рождения.

Смотрите также

  • CDBResult


GetRelatedUsers

Социальная сеть>Классы>CSocNetUserRelations>GetRelatedUsers (доступен с 7.1.0)

CSocNetUserRelations::GetRelatedUsers

Описание и параметры

CDBResult
CSocNetUserRelations::GetRelatedUsers(
 int userID,
 char relation,
 array arNavStartParams = false,
 bool bActiveOnly = N
);

Метод возвращает список пользователей, связанных с указанным пользователем связью указанного типа. Метод статический.

Параметры

Параметр | Описание | С версии
userID | Код пользователя. |
relation | Тип связи: SONET_RELATIONS_FRIEND - друзья, SONET_RELATIONS_REQUEST - запрос на дружбу, SONET_RELATIONS_BAN - черный список. |
arNavStartParams | Массив, определяющий список возвращаемых значений для постраничной навигации. |
bActiveOnly | Флаг активности. Необязательный параметр. По умолчанию равен N. | 11.5.4

Возвращаемое значение

Метод возвращает объект типа CDBResult, содержащий список связей указанного типа.

Смотрите также

  • CDBResult

Примеры использования

<?
// Сформируем массив друзей текущего пользователя числом не больше 20.
$arrFriends = array();
$currentUserId = intval($GLOBALS["USER"]->GetID());

$arNavParams = array("nPageSize" => 20, "bDescPageNumbering" => false);
$dbFriends = CSocNetUserRelations::GetRelatedUsers($currentUserId, SONET_RELATIONS_FRIEND, $arNavParams);
while ($arFriends = $dbFriends->GetNext())
{
    $pref = (($currentUserId == $arFriends["FIRST_USER_ID"]) ? "SECOND" : "FIRST");
    $arrFriends[$arFriends[$pref."_USER_ID"]] = $arFriends[$pref."_USER_NAME"]." ".$arFriends[$pref."_USER_LAST_NAME"];
}
?>


GetRelation

Социальная сеть>Классы>CSocNetUserRelations>GetRelation (доступен с 7.1.0)

CSocNetUserRelations::GetRelation

char
CSocNetUserRelations::GetRelation(
 int firstUserID,
 int secondUserID
);

Метод возвращает тип связи между пользователями. Метод нестатический.

Параметры

Параметр | Описание | С версии
firstUserID | Первый пользователь. |
secondUserID | Второй пользователь. |

Возвращаемое значение

"Возвращается одна из перечисленных констант:
SONET_RELATIONS_FRIEND - пользователи являются друзьями,
SONET_RELATIONS_REQUEST - один из пользователей направил другому предложение дружбы,
SONET_RELATIONS_BAN - один из пользователей внес другого в черный список,
false - связи между пользователями нет.


IsFriends

Социальная сеть>Классы>CSocNetUserRelations>IsFriends (доступен с 7.1.0)

CSocNetUserRelations::IsFriends

bool
CSocNetUserRelations::IsFriends(
 int firstUserID,
 int secondUserID
);

Проверяет, являются ли указанные пользователи друзьями. Метод нестатический.

Параметры

Параметр | Описание | С версии
firstUserID | Первый пользователь. |
secondUserID | Второй пользователь. |

Возвращаемое значение

True, если пользователи являются друзьями. Иначе - false.


IsFriends2

Социальная сеть>Классы>CSocNetUserRelations>IsFriends2 (доступен с 7.1.0)

CSocNetUserRelations::IsFriends2

bool
CSocNetUserRelations::IsFriends2(
 int firstUserID,
 int secondUserID
);

Метод проверяет, являются ли указанные пользователи друзьями друзей, т.е. есть ли у них хотя бы один общий друг. Метод нестатический.

Параметры

Параметр | Описание | С версии
firstUserID | Код первого пользователя. |
secondUserID | Код второго пользователя. |

Возвращаемое значение

True, если пользователи имеют общего друга. Иначе - false.


RejectRequestToBeFriend

Социальная сеть>Классы>CSocNetUserRelations>RejectRequestToBeFriend (доступен с 7.1.0)

CSocNetUserRelations::RejectRequestToBeFriend

bool
CSocNetUserRelations::RejectRequestToBeFriend(
 int userID,
 int relationID
);

Метод служит для отклонения запроса на дружбу. Метод нестатический.

Параметры

Параметр | Описание | C версии
userId | Код пользователя, которому был направлен запрос и который его отклоняет. |
relationID | Код связи. |

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


SendRequestToBeFriend

Социальная сеть>Классы>CSocNetUserRelations>SendRequestToBeFriend (доступен с 7.1.0.)

CSocNetUserRelations::SendRequestToBeFriend

bool
CSocNetUserRelations::SendRequestToBeFriend(
 int senderUserID,
 int targetUserID,
 string message
);

Метод отправляет запрос на дружбу от одного пользователя другому. Метод нестатический.

Параметры

Параметр | Описание | С версии
senderUserID | Код пользователя, который направляет предложение дружбы. |
targetUserID | Код пользователя, которому направляют предложение дружбы. |

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


SpeedFileExists

Социальная сеть>Классы>CSocNetUserRelations>SpeedFileExists (доступен с 7.1.0)

CSocNetUserRelations::SpeedFileExists

bool
CSocNetUserRelations::SpeedFileExists(
 int userID
);

Метод проверяет, есть ли новые изменения отношений у заданного пользователя. Проверка осуществляется без обращения к базе данных. Метод нестатический.

Параметры

Параметр | Описание | С версии
userID | Код пользователя. |

Возвращаемое значение

True, если у пользователя есть новые изменения отношений. Иначе - false.


UnBanMember

Социальная сеть>Классы>CSocNetUserRelations>UnBanMember (доступен с 7.1.0)

CSocNetUserRelations::UnBanMember

bool
CSocNetUserRelations::UnBanMember(
 int senderUserID,
 int relationID
);

Метод исключает пользователя из черного списка другого пользователя. Метод нестатический.

Параметры

Параметр | Описание | С версии
senderUserID | Пользователь, который управляет черным списком. |
relationID | Код отношения между пользователем, который управляет черным списком, и пользователем, находящимся в черном списке. |

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


Update

Социальная сеть>Классы>CSocNetUserRelations>Update (доступен с 7.1.0)

CSocNetUserRelations::Update

int
CSocNetUserRelations::Update(
 int id,
 array arFields
);

Метод изменяет связь между пользователями. Метод нестатический.

Параметры

Параметр | Описание | С версии
id | Код связи. |
arFields | Массив параметров связи. Может иметь ключи: FIRST_USER_ID - код первого пользователя, SECOND_USER_ID - код второго пользователя, RELATION - тип связи: SONET_RELATIONS_FRIEND - пользователи являются друзьями, SONET_RELATIONS_REQUEST - один из пользователей направил другому предложение дружбы, SONET_RELATIONS_BAN - один из пользователей внес другого в черный список, DATE_CREATE - дата создания связи, DATE_UPDATE - дата последнего изменения связи, MESSAGE - сообщение от инициатора связи, INITIATED_BY - флаг, кем инициирована связь: F - первым пользователем, S - вторым. |

Возвращаемое значение

Код связи в случае успешного выполнения или false в случае ошибки.


CSocNetUserToGroup

CSocNetUserToGroup - класс для работы с членством пользователей в группах социальной сети.

Методы класса

Метод | Описание | С версии
Delete | Удаляет связь между пользователем и группой. | 7.0.5
GetByID | Возвращает параметры связи между пользователем и группой. | 7.0.5
Update | Изменяет параметры связи между пользователем и группой. | 7.0.6
Add | Создает новую связь между пользователем и группой. | 7.0.6
GetList | Возвращает список связей между пользователями и группами. | 7.0.6
GetUserRole | Возвращает роль пользователя в группе. | 7.0.5
SendRequestToBeMember | Отправляет от пользователя запрос на вступление в групп. | 7.0.5
SendRequestToJoinGroup | Отправляет пользователю запрос от группы на вступление. | 7.0.5
ConfirmRequestToBeMember | Одобряет запросы от пользователей на вступление в группу. | 7.0.5
RejectRequestToBeMember | Отклоняет запросы от пользователей на вступление в группу. | 7.0.5
UserConfirmRequestToBeMember | Отправляет запрос пользователю от группы на вступление. | 7.0.5
UserRejectRequestToBeMember | Отклоняет запрос пользователю от группы на вступление. | 7.0.5
TransferModerator2Member | Снимает пользователей с должности модераторов группы. | 7.0.5
TransferMember2Moderator | Назначает пользователей на должность модераторов группы. | 7.0.5
BanMember | Включает пользователя в черный список группы. | 7.0.5
UnBanMember | Исключает пользователя из черного списка группы. | 7.0.5
DeleteRelation | Удаляет пользователя из группы. | 7.0.5
InitUserPerms | Инициализирует массив прав пользователя на действия в рамках заданной группы. | 7.0.5
SpeedFileExists | Проверяет, есть ли для пользователя новые сообщения. | 7.0.5


Add

Социальная сеть>Классы>CSocNetUserToGroup>Add (доступен с 7.0.6)

CSocNetUserToGroup::Add

Описание и параметры

int
CSocNetUserToGroup::Add(
 array arFields
);

Метод добавляет новую связь между пользователем и группой. Метод нестатический.

Параметры

Параметр | Описание | C версии
arFields | Массив параметров связи, в котором ключами являются названия параметров, а значениями - их значения. Может содержать следующие ключи: USER_ID - код пользователя, GROUP_ID - код группы, ROLE - роль пользователя в группе: SONET_ROLES_MODERATOR - модератор, SONET_ROLES_USER - пользователь, SONET_ROLES_BAN - черный список, SONET_ROLES_REQUEST - запрос на вступление, DATE_CREATE - дата создания записи, DATE_UPDATE - дата изменения записи, INITIATED_BY_TYPE - кем инициализирована связь: SONET_INITIATED_BY_USER - пользователем, SONET_INITIATED_BY_GROUP - группой, INITIATED_BY_USER_ID - код пользователя, инициализировавшего связь, MESSAGE - сообщение при запросе на создание связи. |

Возвращаемое значение

Код связи в случае успешного выполнения и false - в противном случае.

Примеры использования

CSocNetUserToGroup::Add(
      array(
      "USER_ID" => $GLOBALS["USER"]->GetID(),
      "GROUP_ID" => 1,
      "ROLE" => SONET_ROLES_USER,
      "=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(),
      "=DATE_UPDATE" => $GLOBALS["DB"]->CurrentTimeFunction(),
      "INITIATED_BY_TYPE" => SONET_INITIATED_BY_USER,
      "INITIATED_BY_USER_ID" => CUser::GetID(),
      "MESSAGE" => false,
      )
);


BanMember

Социальная сеть>Классы>CSocNetUserToGroup>BanMember (доступен с 7.0.5)

CSocNetUserToGroup::BanMember

bool
CSocNetUserToGroup::BanMember(
 int userID,
 int groupID,
 array arRelationID,
 bool currentUserIsAdmin
);

Метод заносит пользователя в черный список группы. Метод нестатический.

Параметры

Параметр | Описание | С версии
userID | Код пользователя, осуществляющего действие. |
groupID | Код рабочей группы. |
arRelationID | Массив кодов связей между группой и пользователями. |
currentUserIsAdmin | Флаг, является ли администратором пользователь, осуществляющий действие. |

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


ConfirmRequestToBeMember

Социальная сеть>Классы>CSocNetUserToGroup>ConfirmRequestToBeMember (доступен с 7.0.5)

CSocNetUserToGroup::ConfirmRequestToBeMember

bool
CSocNetUserToGroup::ConfirmRequestToBeMember(
 int userID,
 int groupID,
 array arRelationID,
 bool bAutoSubscribe = true
);

Метод служит для принятия запросов на вступление в группу. Метод статический.

Примечание: возможное примечание.

Параметры

Параметр | Описание | С версии
userID | Код пользователя, осуществляющего действие. |
groupID | Код рабочей группы. |
arRelationID | Массив кодов связей между рабочей группой и пользователями. |
bAutoSubscribe | Флаг автоподписки на события пользователя. Необязательный параметр. По умолчанию равен true. |

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


Delete

Социальная сеть>Классы>CSocNetUserToGroup>Delete (доступен с 7.0.5)

CSocNetUserToGroup::Delete

bool
CSocNetUserToGroup::Delete(
 int id
);

Метод удаляет связь между пользователем и рабочей группой. Метод нестатический.

Параметры

Параметр | Описание | С версии
id | Код связи. |

Возвращаемое значение

True в случае успешного выполнения и false - в противном случае.


DeleteRelation

Социальная сеть>Классы>CSocNetUserToGroup>DeleteRelation (доступен с 7.0.5 )

CSocNetUserToGroup::DeleteRelation

bool
CSocNetUserToGroup::DeleteRelation(
 int userID,
 int groupID
);

Удаляет связь между пользователем и рабочей группой. Метод нестатический.

Параметры

Параметр | Описание | С версии
userID | Код пользователя. |
groupID | Код рабочей группы. |

Возвращаемое значение

True в случае успешного удаления и false - в противном случае.


GetByID

Социальная сеть>Классы>CSocNetUserToGroup>GetByID (доступен с 7.0.5)

CSocNetUserToGroup::GetByID

array
CSocNetUserToGroup::GetByID(
 int id
);

Метод возвращает параметры связи между пользователем и группой. Метод статический.

Параметры

Параметр | Описание | С версии
id | Код связи. |

Возвращаемое значение

Массив параметров связи с ключами:
ID - код записи,
USER_ID - код пользователя,
GROUP_ID - код группы,
ROLE - роль пользователя в группе: SONET_ROLES_MODERATOR - модератор, SONET_ROLES_USER - пользователь, SONET_ROLES_BAN - черный список, SONET_ROLES_REQUEST - запрос на вступление,
DATE_CREATE - дата создания записи,
DATE_UPDATE - дата изменения записи,
INITIATED_BY_TYPE - кем инициализирована связь: SONET_INITIATED_BY_USER - пользователем, SONET_INITIATED_BY_GROUP - группой,
INITIATED_BY_USER_ID - код пользователя, инициализировавшего связь,
MESSAGE - сообщение при запросе на создание связи.


GetList

Социальная сеть>Классы>CSocNetUserToGroup>GetList

CSocNetUserToGroup::GetList

Описание и параметры

CDBResult
CSocNetUserToGroup::GetList(
 array arOrder = array("ID" => "DESC"),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод выбирает список отношений между пользователями и группами в соответствии с фильтром. Метод статический.

Параметры

Параметр | Описание
arOrder | Порядок сортировки возвращаемого списка, заданный в виде массива. Ключами в массиве являются поля для сортировки, а значениями - ASC/DESC - порядок сортировки. Допустимые ключи: ID, USER_ID, GROUP_ID, ROLE, DATE_CREATE, DATE_UPDATE, INITIATED_BY_TYPE, INITIATED_BY_USER_ID, GROUP_NAME, GROUP_SITE_ID, GROUP_VISIBLE, GROUP_OWNER_ID, GROUP_OPENED, GROUP_NUMBER_OF_MEMBERS, GROUP_DATE_ACTIVITY, USER_NAME, USER_LAST_NAME, USER_LOGIN, USER_EMAIL, USER_PERSONAL_PHOTO, USER_LID, INITIATED_BY_USER_NAME, INITIATED_BY_USER_LAST_NAME, INITIATED_BY_USER_LOGIN, INITIATED_BY_USER_EMAIL, RAND.
arFilter | Массив, задающий фильтр на возвращаемый список. Ключами в массиве являются названия полей, а значениями - их значения. Допустимые поля: ID, USER_ID, GROUP_ID, ROLE, DATE_CREATE, DATE_UPDATE, INITIATED_BY_TYPE, INITIATED_BY_USER_ID, GROUP_NAME, GROUP_SITE_ID, GROUP_ACTIVE, GROUP_VISIBLE, GROUP_OWNER_ID, GROUP_INITIATE_PERMS, GROUP_OPENED, GROUP_NUMBER_OF_MEMBERS, GROUP_DATE_ACTIVITY, USER_ACTIVE, USER_NAME, USER_LAST_NAME, USER_LOGIN, USER_EMAIL, USER_LID, INITIATED_BY_USER_NAME, INITIATED_BY_USER_LAST_NAME, INITIATED_BY_USER_LOGIN, INITIATED_BY_USER_EMAIL.
arGroupBy | Массив, задающий группировку результирующего списка. Если параметр содержит массив названий полей, то по этим полям будет произведена группировка. Если параметр содержит пустой массив, то метод вернет количество записей, удовлетворяющих фильтру. По умолчанию параметр равен false - не группировать.
arNavStartParams | Массив, задающий условия выбора для организации постраничной навигации.
arSelectFields | Массив, задающий выбираемые поля. Содержит список полей, которые должны быть возвращены методом. Если массив пустой, то выбираются поля: ID, USER_ID, GROUP_ID, ROLE, DATE_CREATE, DATE_UPDATE, INITIATED_BY_TYPE, INITIATED_BY_USER_ID, MESSAGE. В массиве допустимы любые поля из списка полей.

Возвращаемое значение

Метод возвращает объект типа CDBResult, содержащий записи, удовлетворяющие условию выборки.

Список полей

ID - код записи;
USER_ID - код пользователя;
GROUP_ID - код группы;
ROLE - роль пользователя в группе, значения констант: SONET_ROLES_MODERATOR - модератор, SONET_ROLES_USER - пользователь, SONET_ROLES_BAN - черный список, SONET_ROLES_REQUEST - запрос на вступление, SONET_ROLES_OWNER - владелец;
DATE_CREATE - дата создания записи;
DATE_UPDATE - дата изменения записи;
INITIATED_BY_TYPE - кем инициализирована связь: SONET_INITIATED_BY_USER - пользователем, SONET_INITIATED_BY_GROUP - группой;
INITIATED_BY_USER_ID - код пользователя, инициализировавшего связь;
MESSAGE - сообщение при запросе на создание связи;
GROUP_NAME - название группы;
GROUP_SITE_ID - сайт группы;
GROUP_DESCRIPTION - описание группы;
GROUP_ACTIVE - активность группы;
GROUP_IMAGE_ID - код иконки группы;
GROUP_VISIBLE - видимость группы;
GROUP_OWNER_ID - код пользователя - владельца группы;
GROUP_INITIATE_PERMS - кто может принимать в группу;
GROUP_OPENED - открытость группы;
GROUP_NUMBER_OF_MEMBERS - количество членов группы;
GROUP_DATE_ACTIVITY - дата последней активности в группе;
USER_ACTIVE - активность пользователя;
USER_NAME - имя пользователя;
USER_LAST_NAME - фамилия пользователя;
USER_LOGIN - логин пользователя;
USER_EMAIL - E-Mail пользователя;
USER_PERSONAL_PHOTO - код фотографии пользователя;
USER_LID - сайт пользователя;
INITIATED_BY_USER_NAME - имя пользователя, инициализировавшего связь;
INITIATED_BY_USER_LAST_NAME - фамилия пользователя, инициализировавшего связь;
INITIATED_BY_USER_LOGIN - логин пользователя, инициализировавшего связь;
INITIATED_BY_USER_EMAIL - E-Mail пользователя, инициализировавшего связь;
INITIATED_BY_USER_PHOTO => код фотографии пользователя, инициализировавшего связь;
RAND - случайное число.

Смотрите также

  • CDBResult

Примеры использования

<?
$dbRequests = CSocNetUserToGroup::GetList(
    array("USER_LAST_NAME" => "ASC", "USER_NAME" => "ASC"),
    array(
        "GROUP_ID" => $groupId,
        "<=ROLE" => SONET_ROLES_MODERATOR,
        "USER_ACTIVE" => "Y"
    ),
    false,
    $arNavParams,
    array("ID", "USER_ID", "DATE_CREATE", "DATE_UPDATE", "USER_NAME", "USER_LAST_NAME", "USER_PERSONAL_PHOTO")
);
while ($arRequests = $dbRequests->GetNext())
{
    . . .
}
?>


GetUserRole

Социальная сеть>Классы>CSocNetUserToGroup>GetUserRole (доступен с 7.0.5)

CSocNetUserToGroup::GetUserRole

Описание и параметры

mixed
CSocNetUserToGroup::GetUserRole(
 int userID,
 mixed groupID
);

Метод возвращает роль пользователя в группе. В случае повторных вызовов метод не порождает дополнительных запросов к базе данных. Метод статический.

Параметры

Параметр | Описание | С версии
userID | Код пользователя. |
groupID | Код группы, либо (с версии 8.6.4) массив кодов групп. |

Возвращаемое значение

Если в параметре groupID передано скалярное значение, то возвращается одно из следующих значений:
SONET_ROLES_MODERATOR - пользователь является модератором группы (E),
SONET_ROLES_USER - пользователь является членом группы(K),
SONET_ROLES_BAN - пользователь в черном списке группы (T),
SONET_ROLES_REQUEST - направлен запрос на вступление в группу (Z),
SONET_ROLES_OWNER - пользователь является владельцем группы (A),
false - пользователь не связан с данной группой.

Если (с версии 8.6.4) в параметре groupID передан массив кодов групп, то возвращается ассоциативный массив, ключами для которого являются коды групп, а значения соответствуют вышеописанной логике.

Примеры использования

Возвращает значение констант - $Role вернет "E", т.е. значение SONET_ROLES_MODERATOR.

<?
    // $UserID - модератор группы $GroupID
    $Role=CSocNetUserToGroup::GetUserRole($UserID,$GroupID);
    echo $Role;
?>


InitUserPerms

Социальная сеть>Классы>CSocNetUserToGroup>InitUserPerms (доступен с 7.0.5)

CSocNetUserToGroup::InitUserPerms

Описание и параметры

array
CSocNetUserToGroup::InitUserPerms(
 int userID,
 array arGroup,
 bool bCurrentUserIsAdmin
);

Метод возвращает массив прав пользователя на действия в рамках текущей группы. Метод статический.

Параметры

Параметр | Описание | С версии
userID | Код пользователя. |
arGroup | Массив, содержащий параметры группы. Этот массив возвращается методом CSocNetGroup::GetByID или может быть получен с помощью метода CSocNetGroup::GetList. |
bCurrentUserIsAdmin | Флаг, является ли пользователь администратором модуля социальной сети или администратором сайта. |

Возвращаемое значение

Возвращается массив вида:
array
(
[UserRole] => A // роль пользователя в группе
[UserIsMember] => true // является ли пользователь членом группы
[UserIsOwner] => false // является ли пользователь владельцем группы
[UserCanInitiate] => false // может ли пользователь принимать новых членов в группу
[UserCanViewGroup] => true // может ли пользователь видеть группу
[UserCanAutoJoinGroup] => true // может ли пользователь вступить в группу без одобрения
[UserCanModifyGroup] => false // может ли пользователь изменять параметры группы
[UserCanModerateGroup] => true // является ли пользователь модератором группы
[UserCanSpamGroup] => true // может ли пользователь отправлять сообщения в чат всем участникам
)

Смотрите также

  • CSocNetUser::IsCurrentUserModuleAdmin

Примеры использования

<?
// Получим массив прав текущего пользователя на группу $ID
$arGroup = CSocNetGroup::GetByID($ID);
$arCurrentUserPerms = CSocNetUserToGroup::InitUserPerms(
    $GLOBALS["USER"]->GetID(),
    $arGroup,
    CSocNetUser::IsCurrentUserModuleAdmin()
);
?>


RejectRequestToBeMember

Социальная сеть>Классы>CSocNetUserToGroup>RejectRequestToBeMember (доступен с 7.0.5)

CSocNetUserToGroup::RejectRequestToBeMember

bool
CSocNetUserToGroup::RejectRequestToBeMember(
 int userID,
 int groupID,
 array arRelationID
);

Метод служит для отклонения запросов на вступление в группу. Метод нестатический.

Параметры

Параметр | Описание | С версии
userID | Код пользователя, осуществляющего действие. |
groupID | Код рабочей группы. |
arRelationID | Массив кодов связей между рабочей группой и пользователями. |

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


SendRequestToBeMember

Социальная сеть>Классы>CSocNetUserToGroup>SendRequestToBeMember (доступен с 7.0.5)

CSocNetUserToGroup::SendRequestToBeMember

bool
CSocNetUserToGroup::SendRequestToBeMember(
 int userID,
 int groupID,
 string message,
 text RequestConfirmUrl = "",
 bool bAutoSubscribe = true
);

Метод отправляет запрос от пользователя на вступление в рабочую группу. Метод статический.

Параметры

Параметр | Описание | С версии
userID | Код пользователя, отправляющего запрос. |
groupID | Код рабочей группы. |
message | Дополнительный текст запроса. |
RequestConfirmUrl | Ссылка на подтверждение вступления в группу. | 8.5.4
bAutoSubscribe | Флаг автоподписки на пользователя. Необязательный параметр. По умолчанию равен true. | 10.0.0

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


SendRequestToJoinGroup

Социальная сеть>Классы>CSocNetUserToGroup>SendRequestToJoinGroup (доступен с 7.0.5)

CSocNetUserToGroup::SendRequestToJoinGroup

bool
CSocNetUserToGroup::SendRequestToJoinGroup(
 int senderID,
 int userID,
 int groupID,
 string message,
 bool bMail = true
);

Отправляет пользователю предложение присоединиться к рабочей группе. Метод статический.

Параметры

Параметр | Описание | С версии
senderID | Код пользователя, осуществляющего действие. |
userID | Код пользователя, которому направляется предложение. |
groupID | Код рабочей группы. |
message | Дополнительный текст предложения. |
bMail | Флаг отправки на e-mail. Необязательный параметр. По умолчанию равен true . | 10.0.2

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


SpeedFileExists

Социальная сеть>Классы>CSocNetUserToGroup>SpeedFileExists (доступен с 7.0.5, устарел с 11.0.3)

CSocNetUserToGroup::SpeedFileExists

bool
CSocNetUserToGroup::SpeedFileExists(
 int userID
);

Метод проверяет, существуют ли приглашения данного пользователя в группы. Метод нестатический.

Параметры

Параметр | Описание | С версии
userID | Код пользователя. |

Возвращаемое значение

True, если есть приглашения пользователя к рабочим группам. Иначе - False.


TransferMember2Moderator

Социальная сеть>Классы>CSocNetUserToGroup>TransferMember2Moderator (доступен с 7.0.5)

CSocNetUserToGroup::TransferMember2Moderator

bool
CSocNetUserToGroup::TransferMember2Moderator(
 int userID,
 int groupID,
 array arRelationID,
 bool currentUserIsAdmin
);

Метод назначает пользователей группы на должность модераторов. Метод нестатический.

Параметры

Параметр | Описание | С версии
userID | Код пользователя, осуществляющего действие. |
groupID | Код рабочей группы. |
arRelationID | Массив кодов связей между группой и пользователями. |
currentUserIsAdmin | Флаг, является ли администратором пользователь, осуществляющий действие. | [dw]Устарел с 22.100.0[/dw][di]Права внутри метода теперь не проверяются, нужно снаружи проверять[/di]

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


TransferModerator2Member

Социальная сеть>Классы>CSocNetUserToGroup>TransferModerator2Member (доступен с 7.0.5)

CSocNetUserToGroup::TransferModerator2Member

bool
CSocNetUserToGroup::TransferModerator2Member(
 int userID,
 int groupID,
 array arRelationID,
 bool currentUserIsAdmin
);

Метод снимает пользователей с должности модераторов группы. Метод нестатический.

Параметры

Параметр | Описание | C версии
userID | Код пользователя, осуществляющего действие. |
groupID | Код рабочей группы. |
arRelationID | Массив кодов связей между группой и пользователями. |
currentUserIsAdmin | Флаг, является ли администратором пользователь, осуществляющий действие. | [dw]Устарел с 22.100.0[/dw][di]Права внутри метода теперь не проверяются, нужно снаружи проверять[/di]

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


UnBanMember

Социальная сеть>Классы>CSocNetUserToGroup>UnBanMember (доступен с 7.0.5)

CSocNetUserToGroup::UnBanMember

bool
CSocNetUserToGroup::UnBanMember(
 int userID,
 int groupID,
 array arRelationID,
 bool currentUserIsAdmin
);

Метод исключает пользователя из черного списка группы. Метод нестатический.

Параметры

Параметр | Описание | С версии
userID | Код пользователя, осуществляющего действие. |
groupID | Код рабочей группы. |
arRelationID | Массив кодов связей между группой и пользователями. |
currentUserIsAdmin | Флаг, является ли администратором пользователь, осуществляющий действие. |

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


Update

Социальная сеть>Классы>CSocNetUserToGroup>Update (доступен с 7.0.6)

CSocNetUserToGroup::Update

int
CSocNetUserToGroup::Update(
 int id,
 array arFields
);

Метод изменяет параметры связи между пользователем и группой. Метод нестатический.

Параметры

Параметр | Описание | C версии
id | Код связи. |
arFields | Массив параметров связи, в котором ключами являются названия параметров, а значениями - их значения. Может содержать следующие ключи: USER_ID - код пользователя, GROUP_ID - код группы, ROLE - роль пользователя в группе: SONET_ROLES_MODERATOR - модератор, SONET_ROLES_USER - пользователь, SONET_ROLES_BAN - черный список, SONET_ROLES_REQUEST - запрос на вступление, DATE_CREATE - дата создания записи, DATE_UPDATE - дата изменения записи, INITIATED_BY_TYPE - кем инициализирована связь: SONET_INITIATED_BY_USER - пользователем, SONET_INITIATED_BY_GROUP - группой, INITIATED_BY_USER_ID - код пользователя, инициализировавшего связь, MESSAGE - сообщение при запросе на создание связи. |

Возвращаемое значение

Код связи в случае успешного выполнения и false - в противном случае.


UserConfirmRequestToBeMember

Социальная сеть>Классы>CSocNetUserToGroup>UserConfirmRequestToBeMember (доступен с 7.0.5)

CSocNetUserToGroup::UserConfirmRequestToBeMember

bool
CSocNetUserToGroup::UserConfirmRequestToBeMember(
 int targetUserID,
 int relationID,
 bool bAutoSubscribe = true
);

Метод служит для принятия предложения вступить в группу. Метод статический.

Параметры

Параметр | Описание | С версии
senderUserID | Код пользователя, которому было направлено предложение на вступление в группу и который принимает это предложение. До версии 11.5.4. |
targetUserID | Код пользователя, которому было направлено предложение на вступление в группу и который принимает это предложение. | 11.5.4
relationID | Код связи между группой и пользователем. |
bAutoSubscribe | Флаг автоподписки на пользователя. Необязательный параметр. По умолчанию равен true. | 10.0.0

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


UserRejectRequestToBeMember

Социальная сеть>Классы>CSocNetUserToGroup>UserRejectRequestToBeMember (доступен с 7.0.5)

CSocNetUserToGroup::UserRejectRequestToBeMember

bool
CSocNetUserToGroup::UserRejectRequestToBeMember(
 int targetUserID,
 int relationID
);

Метод служит для отклонения предложения вступить в группу. Метод нестатический.

Параметры

Параметр | Описание | С версии
senderUserID | Код пользователя, которому было направлено предложение на вступление в группу и который отклоняет это предложение. До версии 11.5.4. |
targetUserID | Код пользователя, которому было направлено предложение на вступление в группу и который отклоняет это предложение. | 11.5.4
relationID | Код связи между группой и пользователем. |

Возвращаемое значение

True в случае успешного выполнения метода и false - в противном случае.


События

Событие | Вызывается | Метод | С версии
OnBeforeSocNetUserToGroupDelete | перед удалением связи между пользователем и рабочей группой. | CSocNetUserToGroup::Delete | 7.0.5
OnSocNetUserToGroupDelete | в момент удаления связи между пользователем и рабочей группой. | CSocNetUserToGroup::Delete | 7.0.5
OnBeforeSocNetGroupAdd | перед созданием рабочей группы. | CSocNetGroup::Add | 7.0.5
OnSocNetGroupAdd | после добавления новой рабочей группы. | CSocNetGroup::Add | 7.0.5
OnBeforeSocNetGroupUpdate | перед изменением параметров рабочей группы. | CSocNetGroup::Update | 7.0.5
OnSocNetGroupUpdate | после изменения рабочей группы. | CSocNetGroup::Update | 7.0.5
OnFillSocNetFeaturesList | при инициализации модуля социальной сети после заполнения массива дополнительного функционала. | CSocNetAllowed::RunEventForAllowedFeature | 7.0.6
OnBeforeSocNetGroupDelete | перед удалением рабочей группы. | CSocNetGroup::Delete | 7.0.6
OnSocNetGroupDelete | в момент удаления рабочей группы. | CSocNetGroup::Delete | 7.0.6
OnBeforeSocNetFeatures | перед удалением дополнительного функционала. | CSocNetFeatures::Delete | 7.0.6
OnSocNetFeatures | в момент удаления дополнительного функционала. | CSocNetFeatures::Delete | 7.0.6
OnBeforeSocNetFeaturesUpdate | перед изменением параметров дополнительного функционала. | CSocNetFeatures::Update | 7.0.6
OnSocNetFeaturesUpdate | после изменения записи дополнительного функционала. | CSocNetFeatures::Update | 7.0.6
OnBeforeSocNetFeaturesPermsDelete | перед удалением прав на дополнительный функционал. | CSocNetFeaturesPerms::Delete | 7.0.6
OnSocNetFeaturesPermsDelete | в момент удаления права на дополнительный функционал. | CSocNetFeaturesPerms::Delete | 7.0.6
OnBeforeSocNetFeaturesPermsUpdate | в методе изменения параметров права на доступ к дополнительному функционалу до изменения. | CSocNetFeaturesPerms::Update | 7.0.6
OnSocNetFeaturesPermsUpdate | после изменения права на дополнительный функционал. | CSocNetFeaturesPerms::Update | 7.0.6
OnBeforeSocNetMessagesDelete | перед удалением сообщения. | CSocNetMessages::Delete | 7.0.6
OnSocNetMessagesDelete | в момент удаления сообщения. | CSocNetMessages::Delete | 7.0.6
OnBeforeSocNetFeaturesAdd | перед созданием новой записи дополнительного функционала. | CSocNetFeatures::Add | 7.0.6
OnSocNetFeaturesAdd | после добавления нового дополнительного функционала. | CSocNetFeatures::Add | 7.0.6
OnBeforeSocNetFeaturesPermsAdd | перед созданием записи права на дополнительный функционал. | CSocNetFeaturesPerms::Add | 7.0.6
OnSocNetFeaturesPermsAdd | после добавления новой записи права на дополнительный функционал. | CSocNetFeaturesPerms::Add | 7.0.6
OnBeforeSocNetMessagesAdd | перед созданием сообщения. | CSocNetMessages::Add | 7.0.6
OnSocNetMessagesAdd | после добавления нового сообщения. | CSocNetMessages::Add | 7.0.6
OnBeforeSocNetMessagesUpdate | перед изменением параметров сообщения. | CSocNetMessages::Update | 7.0.6
OnSocNetMessagesUpdate | после изменения сообщения. | CSocNetMessages::Update | 7.0.6
OnBeforeSocNetUserToGroupAdd | перед созданием связи между пользователем и рабочей группой. | CSocNetUserToGroup::Add | 7.0.6
OnSocNetUserToGroupAdd | после добавления новой связи между пользователем и рабочей группой. | CSocNetUserToGroup::Add | 7.0.6
OnBeforeSocNetUserToGroupUpdate | перед изменением параметров связи между пользователем и рабочей группой. | CSocNetUserToGroup::Update | 7.0.6
OnSocNetUserToGroupUpdate | после изменения связи между пользователем и рабочей группой. | CSocNetUserToGroup::Update | 7.0.6
OnBeforeSocNetUserRelationsAdd | перед созданием связи между пользователями. | CSocNetUserRelations::Add | 7.1.0
OnSocNetUserRelationsAdd | после добавления новой связи между пользователями. | CSocNetUserRelations::Add | 7.1.0
OnBeforeSocNetUserRelationsUpdate | перед изменением параметров связи между пользователями. | CSocNetUserRelations::Update | 7.1.0
OnSocNetUserRelationsUpdate | после изменения связи между пользователями. | CSocNetUserRelations::Update | 7.1.0
OnSocNetUserRelationsDelete | в момент удаления связи между пользователями. | CSocNetUserRelations::Delete | 7.1.0
OnBeforeSocNetUserRelationsDelete | перед удалением связи между пользователями. | CSocNetUserRelations::Delete | 7.1.0
OnParseSocNetComponentPath при включенной поддержке ЧПУ компонента социальной сети в самом начале работы компонента. Позволяет подключить свои пути для ЧПУ в комплексном компоненте соцсети.
OnParseSocNetComponentPathHandler (&$arDefaultUrlTemplates404, &$arCustomPagesPath, $arParams) {
}
OnFillSocNetAllowedSubscribeEntityTypes | добавляет тип сущности Живой ленты. | CSocNetAllowed::RunEventForAllowedEntityType | 10.0.0
OnBeforeSocNetLogRightsAdd | при добавлении прав на запись Живой ленты. | CSocNetLogRights::Add | 11.0.11
OnBeforeSocNetLogRightsUpdate | при изменении прав на запись Живой ленты. | CSocNetLogRights::Update | 11.0.11
OnSocNetSendRequestToJoinGroup | при отправке запроса на вступление в группу соцсети | CSocNetUserToGroup::SendRequestToJoinGroup | 11.0.15
OnSocNetUserConfirmRequestToBeMember | при получении подтверждения запроса о членстве в группе соцсети | CSocNetUserToGroup::UserConfirmRequestToBeMember | 11.0.15
OnSocNetUserRejectRequestToBeMember | при получении отклонении запроса о членстве в группе соцсети | CSocNetUserToGroup::UserRejectRequestToBeMember | 11.0.15
OnBeforeSocNetLogCommentAdd | перед добавлением комментария в Живую ленту. | CSocNetLogComments::Add | 11.0.16
OnAfterSocNetLogCommentAdd | после добавления комментария в Живую ленту. | CSocNetLogComments::Add | 11.0.16
OnAfterSocNetLogUpdate | после изменения записи Живой ленты. | CSocNetLog::Update | 16.5.5
OnAfterSocNetLogAdd | после добавлении записи Живой ленты. | CSocNetLog::Add | 16.5.5
OnSocNetGroupSubjectAdd | после создания темы рабочих групп. | CSocNetGroupSubject::Add
OnSocNetGroupSubjectDelete | перед удалением темы рабочих групп. | CSocNetGroupSubject::Delete
OnSocNetGroupSubjectUpdate | вызывается после изменения темы рабочих групп. | CSocNetGroupSubject::Update


OnAfterSocNetLogAdd

функция-обработчик(
   array $arFields
);
Событие вызывается после добавлении записи Живой ленты.

Параметры

Параметр | Описание
arFields | Массив полей добавляемой записи.


OnAfterSocNetLogCommentAdd

функция-обработчик(
   array $arFields
);
Событие вызывается после добавления комментария в Живую ленту.

Параметры

Параметр | Описание
arFields | Массив полей добавляемого комментария.


OnAfterSocNetLogUpdate

функция-обработчик(
   $ID
   array arFields
);
Событие вызывается после изменения записи Живой ленты.

Параметры

Параметр | Описание
ID | Идентификатор записи.
arFields | Массив полей изменяемой записи.


OnBeforeSocNetFeatures

bool
функция-обработчик(
   int ID
);

Вызывается перед удалением дополнительного функционала.

Параметры

Параметр | Описание
ID | ID записи.

Возвращаемое значение

Обработчик должен вернуть false в случае если необходимо отменить удаление.


OnBeforeSocNetFeaturesAdd

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе создания новой записи дополнительного функционала до вставки, и может быть использовано для отмены вставки или переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей новой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены добавления и прекращении выполнения метода создания необходимо в функции-обработчике вернуть false.


OnBeforeSocNetFeaturesPermsAdd

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе создания записи права на дополнительный функционал до вставки, и может быть использовано для отмены вставки или переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей новой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены добавления и прекращении выполнения метода создания записи необходимо в функции-обработчике вернуть false.


OnBeforeSocNetFeaturesPermsDelete

bool
функция-обработчик(
   int ID
);

Вызывается перед удалением прав на дополнительный функционал.

Параметры

Параметр | Описание
ID | ID записи.

Возвращаемое значение

Обработчик должен вернуть false в случае если необходимо отменить удаление записи.


OnBeforeSocNetFeaturesPermsUpdate

bool функция-обработчик(
   $ID
   array &arParams
);
Событие вызывается в методе изменения параметров права на доступ к дополнительному функционалу до изменения, и может быть использовано для отмены изменения или переопределения некоторых полей.

Параметры

Параметр | Описание
ID | Идентификатор записи
arParams | Массив полей изменяемой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены изменения и прекращении выполнения метода изменения необходимо в функции-обработчике вернуть false.


OnBeforeSocNetFeaturesUpdate

bool функция-обработчик(
   $ID
   array &arParams
);
Событие вызывается в методе изменения параметров дополнительного функционала до изменения, и может быть использовано для отмены изменения или переопределения некоторых полей.

Параметры

Параметр | Описание
ID | ID записи.
arParams | Массив полей изменяемой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены изменения и прекращении выполнения метода изменения необходимо в функции-обработчике вернуть false.


OnBeforeSocNetGroupAdd

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе создания новой рабочей группы до вставки, и может быть использовано для отмены вставки или переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей новой рабочей группы.

Примечание. Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены добавления и прекращении выполнения метода создания рабочей группы необходимо в функции-обработчике вернуть false.


OnBeforeSocNetGroupDelete

bool
функция-обработчик(
   int ID
);

Вызывается перед удалением рабочей группы.

Параметры

Параметр | Описание
ID | ID рабочей группы.

Возвращаемое значение

Обработчик должен вернуть false в случае если необходимо отменить удаление рабочей группы.


OnBeforeSocNetGroupUpdate

bool функция-обработчик(
   $ID,
   array &arParams
);
Событие вызывается в методе изменения параметров рабочей группы до изменения, и может быть использовано для отмены изменения или переопределения некоторых полей.

Параметры

Параметр | Описание
ID | Идентификатор группы
arParams | Массив полей изменяемой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены изменения и прекращении выполнения метода изменения необходимо в функции-обработчике вернуть false.


OnBeforeSocNetLogCommentAdd

функция-обработчик(
   $ID
   array &arFields
);
Событие вызывается перед добавлением комментария в Живую ленту..

Параметры

Параметр | Описание
ID | Идентификатор добавленного комментария.
arFields | Массив полей добавляемого комментария.

Примечание: Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому, если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной, поступившей на вход функции-обработчика.


OnBeforeSocNetMessagesAdd

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе создания сообщения до вставки, и может быть использовано для отмены вставки или переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей новой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены добавления и прекращении выполнения метода создания записи необходимо в функции-обработчике вернуть false.


OnBeforeSocNetMessagesDelete

bool
функция-обработчик(
   int ID
);

Вызывается перед удалением сообщения.

Параметры

Параметр | Описание
ID | ID сообщения.

Возвращаемое значение

Обработчик должен вернуть false в случае если необходимо отменить удаление сообщения.


OnBeforeSocNetMessagesUpdate

bool функция-обработчик(
   $ID
   array &arParams
);
Событие вызывается в методе изменения параметров сообщения до изменения, и может быть использовано для отмены изменения или переопределения некоторых полей.

Параметры

Параметр | Описание
ID | идентификатор группы
arParams | Массив полей изменяемой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены изменения и прекращении выполнения метода изменения необходимо в функции-обработчике вернуть false.


OnBeforeSocNetUserRelationsAdd

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе создания связи между пользователями до вставки, и может быть использовано для отмены вставки или переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей новой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены добавления и прекращении выполнения метода создания записи необходимо в функции-обработчике вернуть false.


OnBeforeSocNetUserRelationsDelete

bool
функция-обработчик(
   int ID
);

Вызывается перед удалением связи между пользователями.

Параметры

Параметр | Описание
ID | ID связи.

Возвращаемое значение

Обработчик должен вернуть false в случае если необходимо отменить удаление связи.


OnBeforeSocNetUserRelationsUpdate

bool функция-обработчик(
   $ID
   array &arParams
);
Событие вызывается в методе изменения параметров связи между пользователями до изменения, и может быть использовано для отмены изменения или переопределения некоторых полей.

Параметры

Параметр | Описание
ID | идентификатор группы
arParams | Массив полей изменяемой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены изменения и прекращении выполнения метода изменения необходимо в функции-обработчике вернуть false.


OnBeforeSocNetUserToGroupAdd

bool функция-обработчик(
   array &arParams
);
Событие вызывается в методе создания связи между пользователем и рабочей группой до вставки, и может быть использовано для отмены вставки или переопределения некоторых полей.

Параметры

Параметр | Описание
arParams | Массив полей новой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены добавления и прекращении выполнения метода создания записи необходимо в функции-обработчике вернуть false.


OnBeforeSocNetUserToGroupDelete

bool
функция-обработчик(
   int ID
);

Вызывается перед удалением связи между пользователем и рабочей группой.

Параметры

Параметр | Описание
ID | ID записи.

Возвращаемое значение

Обработчик должен вернуть false в случае если необходимо отменить удаление связи.


OnBeforeSocNetUserToGroupUpdate

bool функция-обработчик(
   $ID
   array &arParams
);
Событие вызывается в методе изменения параметров связи между пользователем и рабочей группой до изменения, и может быть использовано для отмены изменения или переопределения некоторых полей.

Параметры

Параметр | Описание
ID | идентификатор группы
arParams | Массив полей изменяемой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.

Возвращаемое значение

Для отмены изменения и прекращении выполнения метода изменения необходимо в функции-обработчике вернуть false.


OnFillSocNetFeaturesList

bool функция-обработчик(
   array &arSocNetFeaturesSettings
);
Событие вызывается при инициализации модуля социальной сети после заполнения массива дополнительного функционала. Оно может быть использовано для изменения массива дополнительного функционала.

Параметры

Параметр | Описание
arSocNetFeaturesSettings | Массив с описанием дополнительного функционала.


OnSocNetFeatures

функция-обработчик(
   int ID
);

Вызывается в момент удаления дополнительного функционала.

Параметры

Параметр | Описание
ID | ID записи.


OnSocNetFeaturesAdd

функция-обработчик(
 array &arFields
);
Событие вызывается после добавления нового дополнительного функционала.

Параметры

Параметр | Описание
arFields | Массив полей новой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.


OnSocNetFeaturesPermsAdd

функция-обработчик(
 array &arFields
);
Событие вызывается после добавления новой записи права на дополнительный функционал.

Параметры

Параметр | Описание
arFields | Массив полей новой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.


OnSocNetFeaturesPermsDelete

функция-обработчик(
   int ID
);

Вызывается в момент удаления права на дополнительный функционал.

Параметры

Параметр | Описание
ID | ID записи.


OnSocNetFeaturesPermsUpdate

функция-обработчик(
   $ID
 array &arFields
);
Событие вызывается после изменения права на дополнительный функционал.

Параметры

Параметр | Описание
ID | Идентификатор записи.
arParams | Массив полей изменяемой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.


OnSocNetFeaturesUpdate

функция-обработчик(
   $ID
 array &arFields
);
Событие вызывается после изменения записи дополнительного функционала.

Параметры

Параметр | Описание
ID | Идентификатор записи
arParams | Массив полей изменяемой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.


onSocNetGroupAdd

функция-обработчик(
 int $ID,
 array &arFields
);
Событие вызывается после добавления новой рабочей группы.

Параметры

Параметр | Описание
$ID | ID добавленной группы.
arFields | Поля группы, по ссылке.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.


onSocNetGroupDelete

функция-обработчик(
   int ID
);

Вызывается в момент удаления рабочей группы.

Параметры

Параметр | Описание
ID | ID рабочей группы.


OnSocNetGroupSubjectAdd

Событие вызывается после создания темы рабочих групп

Параметры

Параметр | Описание
ID | Идентификатор темы
arFields | Массив полей созданной темы (ссылка на исходную переменную)

Примеры использования

© «Битрикс», 2001-2008, «1C-Битрикс», 2008-2022 1С-Битрикс: Управление сайтом


OnSocNetGroupSubjectDelete

Вызывается перед удалением темы рабочих групп.

Параметры

Параметр | Описание
ID | Идентификатор темы

Примеры использования

© «Битрикс», 2001-2008, «1C-Битрикс», 2008-2022 1С-Битрикс: Управление сайтом


OnSocNetGroupSubjectUpdate

Событие вызывается после изменения темы рабочих групп.

Параметры

Параметр | Описание
ID | Идентификатор темы
arFields | Массив полей, переданный для изменения записи (ссылка на исходную переменную)

Примеры использования

© «Битрикс», 2001-2008, «1C-Битрикс», 2008-2022 1С-Битрикс: Управление сайтом


OnSocNetGroupUpdate

функция-обработчик(
   $ID
 array &arFields
);
Событие вызывается после изменения рабочей группы.

Параметры

Параметр | Описание
ID | Идентификатор группы
arParams | Массив полей изменяемой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.


OnSocNetLogDelete

функция-обработчик(
);(
  $ID
);

Развернутое описание функции.

Параметры функции

Параметр | Описание
ID | Идентификатор записи.


OnSocNetMessagesAdd

функция-обработчик(
int ID,
 array &arFields
);
Событие вызывается после добавления нового сообщения.

Параметры

Параметр | Описание
arFields | Массив полей новой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.


OnSocNetMessagesDelete

функция-обработчик(
   int ID
);

Вызывается в момент удаления сообщения.

Параметры

Параметр | Описание
ID | ID сообщения.


OnSocNetMessagesUpdate

функция-обработчик(
   $ID
 array &arFields
);
Событие вызывается после изменения сообщения.

Параметры

Параметр | Описание
ID | Идентификатор группы
arParams | Массив полей изменяемой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.


OnSocNetUserRelationsAdd

функция-обработчик(
 array &arFields
);
Событие вызывается после добавления новой связи между пользователями.

Параметры

Параметр | Описание
arFields | Массив полей новой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.


OnSocNetUserRelationsDelete

функция-обработчик(
   int ID
);

Вызывается в момент удаления связи между пользователями.

Параметры

Параметр | Описание
ID | ID связи.


OnSocNetUserRelationsUpdate

функция-обработчик(
   $ID
   array &arFields
);
Событие вызывается после изменения связи между пользователями.

Параметры

Параметр | Описание
ID | Идентификатор группы
arFields | Массив полей изменяемой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.


OnSocNetUserToGroupAdd

функция-обработчик(
 int $id,
 array &arFields
);
Событие вызывается после добавления новой связи между пользователем и рабочей группой.

Параметры

Параметр | Описание
int $id | ID связи.
arFields | Массив полей новой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.


OnSocNetUserToGroupDelete

функция-обработчик(
   int ID
   array &fields
);

Вызывается в момент удаления связи между пользователем и рабочей группой.

Параметры

Параметр | Описание
ID | ID связи.
array &fields | Поля, соответствующие результату выполнения метода GetByID.


OnSocNetUserToGroupUpdate

функция-обработчик(
   $ID
   array &arFields
);
Событие вызывается после изменения связи между пользователем и рабочей группой.

Параметры

Параметр | Описание
ID | Идентификатор группы
arParams | Массив полей изменяемой записи.

Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.


Социальные сервисы

Модуль предоставляет аутентификацию посетителей сайта на внешних сервисах авторизации. Внешняя авторизация облегчает посетителям регистрацию на сайте: не нужно заводить еще один логин/пароль, можно воспользоваться уже имеющимся на одном из известных сервисов.


События

Модуль Веб-сервисы частично перешел на ядро D7, для основных сервисов можно использовать события таблета \Bitrix\Socialservices\UserTable.

Событие | Вызывается | Метод | C версии
OnAfterSocServUserAdd | после добавления пользователя через соцсервис | CSocServAuthDB::Add | 12.0.2
OnAfterSocServUserUpdate | после обновления данных пользователя | CSocServAuth::Update | 12.0.2
OnAuthServicesBuildList | при построении списка сервисов авторизации | CSocServAuthManager::__construct | 9.0.0
OnBeforeOpenIDAuthFinalRedirect | перед редиректом на сайт авторизованного через соцсервис пользователя | COpenIDClient::Authorize | 11.0.0
OnBeforeOpenIDUserAdd | перед добавлением пользователя через OpenID авторизацию | COpenIDClient::Authorize | 11.0.0
OnBeforeSocServUserDelete | перед удалением пользователя | CSocServAuth::Delete | 12.0.2
OnPublishSocServMessage | при публикации сообщения соцсервиса | CSocServAuthManager::PostIntoBuzz | 12.0.4
OnFindSocialservicesUser | при поиске пользователя, событие авторизации | CSocServAuthManager::AuthorizeUser | 17.1.0


Телефония

Работа с Телефонией (scope telephony).


Телефония в ядре D7

Классы

Список классов модуля Телефония в ядре D7

Класс | Описание | С версии
BlacklistTable | Класс для работы с таблицей Черный список. | 15.1.1
QueueTable | Класс для работы с таблицей Очереди звонков. |
SipTable | Класс для работы с таблицей Настройки подключения к sip-серверу. |
AddressVerification | Класс для работы с верификацией адреса. | 16.0.8
Security | Классы для управления правами доступа телефонии. | 16.5.1
Tts | Параметры произнесения речи. | 16.5.0


Справочник кодов и типов

Таблица кодов вызова

(CALL_FAILED_CODE)

Код | Описание
200 | Успешный звонок.
304 | Пропущенный звонок.
603 | Отклонено.
603-S | Вызов отменен.
404 | Неверный номер.
486 | Занято.
484 | Данное направление не доступно.
503 | Данное направление не доступно.
480 | Временно не доступен.
480 | Недостаточно средств на счете.
402 | Заблокировано.
Остальные | Не определен.

Таблица типов звонка

(CALL_TYPE)

Тип | Описание
1 | Исходящий.
2 | Входящий.
3 | Входящий с перенаправлением (на мобильный или стационарный телефон).
4 | Обратный звонок.

Таблица типов АТС

Тип | Описание
cloud | Облачная АТС.
office | Офисная АТС.

Таблица состояний SIP-регистрации

Состояние | Описание
success | Успешная регистрация.
error | Неудачная регистрация.
in_progress | В процессе регистрации.
wait | Ожидает начала регистрации.


События

Событие | Вызывается
onCallInit | при инициализации звонка (о поступлении или начале исходящего звонка).
onCallStart | при начале разговора (ответе оператора при входящем и ответе абонента при исходящем).
onCallEnd | при окончании разговора (запись в историю).


onCallInit

Событие вызывается при инициализации звонка (о поступлении или начале исходящего звонка).

В событие поступает массив с данными:

Параметр | Описание
CALL_ID | Идентификатор звонка.
CALL_TYPE | Тип вызова (см. описание типов вызова).
ACCOUNT_SEARCH_ID | Идентификатор линии - цифровой для арендованных, regXXX - для Облачных АТС, sipXXX - для Офисных АТС.
PHONE_NUMBER | Номер, которому звонит оператор (если тип звонка: 1 - Исходящий) или номер, на который звонит абонент (если тип звонка: 2 - Входящий).
CALLER_ID | Идентификатор линии (если тип звонка: 1 - Исходящий) или номер телефона, который позвонил на портал (если тип звонка: 2 - Входящий).


onCallStart

Событие вызывается при начале разговора (ответе оператора при входящем и ответе абонента при исходящем).

В событие поступает массив с данными:

Параметр | Описание
CALL_ID | Идентификатор звонка.
USER_ID | Идентификатор пользователя, который ответил.


onCallEnd

Событие вызывается при окончании разговора (запись в историю).

В событие поступает массив с данными:

Параметр | Описание
CALL_ID | Идентификатор звонка.
CALL_TYPE | Тип вызова (см. описание типов вызова).
PHONE_NUMBER | Номер, с которого звонит абонент (если тип звонка 2 - Входящий) или номер, которому звонит оператор (если тип звонка 1 - Исходящий).
PORTAL_NUMBER | Номер на который поступил звонок (если тип звонка 2 - Входящий) или номер, с которого был совершен звонок (если тип звонка 1 - Исходящий).
PORTAL_USER_ID | Идентификатор ответившего оператора (если тип звонка 2 - Входящий) или идентификатор позвонившего оператора (если тип звонка 1 - Исходящий).
CALL_DURATION | Длительность звонка.
CALL_START_DATE | Объект Bitrix\Main\Type\DateTime.
COST | Стоимость звонка.
COST_CURRENCY | Валюта звонка (RUR, USD, EUR).
CALL_FAILED_CODE | Код вызова (см. таблицу кодов вызова).
CALL_FAILED_REASON | Текстовое описание кода вызова (латиница).


Для разработчиков

Информация, представленная в данном разделе, содержит сведения о классах и методах классов модуля Техподдержка, а также об этапах инсталляции модуля.

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("support")){
//здесь можно использовать функции и классы модуля
}
?>

Модуль включает в себя следующие Компоненты 2.0:
Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Мастер создания обращения | iblock.wizard | Формирует разделы мастера на основе секций инфоблока и вопросы на основе элементов инфоблока.
FAQ (комплексный компонент) | support.faq | Выводит FAQ категории и вопросы из инфоблока.
Вопрос FAQ | support.faq.element.detail | Выводит один вопрос FAQ из инфоблока конкретной категории.
Список вопросов FAQ из секции | support.faq.element.list | Выводит вопросы FAQ из инфоблока.
Список категорий FAQ | support.faq.section.list | Выводит список категории FAQ из инфоблока.
Техподдержка (комплексный компонент) | support.ticket | Создает полноценную систему техподдержки, с помощью которой можно просмотреть список обращений, добавить своё сообщение или написать новое обращение в техподдержку.
Создание нового, либо редактирование существующего обращения | support.ticket.edit | Предназначен для вывода формы редактирования существующего обращения либо создания нового.
Список обращений | support.ticket.list | Предназначен для вывода формы фильтра и списка обращений в техподдержку.
Техподдержка с мастером (комплексный компонент) | support.wizard | Служит для организации полноценного публичного интерфейса технической поддержки, создание обращения в котором выполняется с помощью специального мастера.


Классы модуля поддержки

Класс | Описание | С версии
CTicket | Kласс для работы с обращениями. | 3.0.1
CTicketDictionary | Kласс для работы со справочником техподдержки. | 3.0.1


CTicket

CTicket - класс для работы с обращениями.

Методы класса

Метод | Описание | С версии
Set | Создает новое обращение, либо обновляет существующее. | 3.3.5
GetList | Возвращает список обращений с использованием фильтра. | 3.0.1
GetByID | Возвращает одно обращение по его ID. | 3.0.1
GetMessageList | Возвращает сообщений в одном обращении. | 3.3.5
GetMessageByID | Возвращает одно сообщение по его ID. | 3.0.2
Delete | Удаляет обращение. | 3.3.7
DeleteMessage | Удаляет сообщение. | 3.2.1


Set

Техподдержка>Классы>CTicket>Set (3.3.5)

CTicket::Set

Описание и параметры

int
CTicket::Set(
 array arFields,
 int &MESSAGE_ID,
 int TICKET_ID="",
 char(1) CHECK_RIGHTS="Y"

);

Метод создает новое обращение, либо модифицирует существующее в случае указания во втором параметре ID сообщения. Возвращает ID созданного обращения, либо ID модифицированного обращения. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
arFields Массив параметров обращения. В массиве допустимы следующие индексы:
  • *TITLE - заголовок обращения (обязательное поле при создании нового обращения)
  • MESSAGE - тело сообщения (обязательное поле при создании нового обращения)
  • IMAGE - массив описывающий загружаемое изображение; в массиве допустимые следующие индексы:
    • name - исходное имя загружаемого файла
    • type - тип загружаемого файла (например: "image/gif")
    • tmp_name - имя временного файла на сервере
    • error - код ошибки ("0" - нет ошибок)
    • size - размер загружаемого файла
    • MODULE_ID - идентификатор модуля ("support")
  • *OWNER_SID - символьный код автора обращения; можно указать любое значение идентифицирующее автора обращения - email, телефон, адрес и т.п.
  • *OWNER_USER_ID - ID автора обращения (по умолчанию - ID текущего пользователя)
  • *SOURCE_SID - символьный код источника обращения (по умолчанию - "web")
  • *CREATED_MODULE_NAME - идентификатор модуля из которого создаётся обращение (по умолчанию - "support")
  • **MESSAGE_AUTHOR_SID - символьный код автора сообщения (можно указать любое значение идентифицирующее автора сообщения - email, телефон, адрес и т.п.)
  • **MESSAGE_AUTHOR_USER_ID - ID пользователя - автора сообщения (по умолчанию - ID текущего пользователя)
  • **MESSAGE_SOURCE_SID - символьный код источника сообщения (по умолчанию - "web")
  • **MODIFIED_MODULE_NAME - идентификатор модуля из которого обращение модифицируется (по умолчанию - "support")
  • **HIDDEN - "Y" - сообщение будет добавлено как скрытое и будет видимо только сотрудникам техподдержки; "N" - сообщение будет добавлено видимым как для автора обращения так и для сотрудников техподдержки (по умолчанию)
  • CATEGORY_SID - символьный код категории
  • CATEGORY_ID - ID категории.
  • CRITICALITY_SID - символьный код критичности
  • STATUS_SID - символьный код статуса
  • MARK_ID - ID оценки ответов
  • RESPONSIBLE_USER_ID - ID пользователя ответственного за обращение
  • SUPPORT_COMMENTS - комментарий видимый только пользователям входящим в группу техподдержки
  • CLOSE - "Y" - обращение закрыть; "N" - обращение открыть
  • AUTO_CLOSE_DAYS - количество дней по истечении которых автоматически закрыть обращение если за это время от автора не поступило сообщения
* - данное поле может быть использовано для создания новых обращений
** - данное поле используется только при модификации существующих обращений.
MESSAGE_ID | ID добавленного сообщения. Необязательный параметр.
TICKET_ID | ID модифицируемого обращения.
CHECK_RIGHTS | Флаг необходимости проверки прав текущего пользователя: "Y" - необходимо проверить права текущего пользователя под которым создаётся обращение либо модифицируется; "N" - обращения создавать и модифицировать независимо от прав текущего пользователя. Необязательный параметр. Значение по умолчанию - "Y".
MID | При редактировании обращения в переменной необходимо передать ID сообщения; в случае добавления сообщения в переменную будет записано ID созданного обращения | 3.3.7
EMAIL_NOTIFY | Необязательный параметр. Значение по умолчанию- "Y". Удален с 3.3.11 | 3.3.8
SEND_EMAIL_TO_AUTHOR | Необязательный параметр. Значение по умолчанию- "Y". | 3.3.11
SEND_EMAIL_TO_TECHSUPPORT | Необязательный параметр. Значение по умолчанию- "Y". | 3.3.11

Примеры использования

Пример кода добавляющего новое обращение в техподдержку приходящего по EMail,
либо добавляющего новое сообщение в обращение если задан $TICKET_ID:
<?
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("support");
$arFields = array(
    "CREATED_MODULE_NAME"       => "mail",
    "MODIFIED_MODULE_NAME"      => "mail",
    "OWNER_SID"                 => "user@mail.ru",
    "SOURCE_SID"                => "email",
    "MESSAGE_AUTHOR_SID"        => "user@mail.ru",
    "MESSAGE_SOURCE_SID"        => "email",
    "TITLE"                     => "title",
    "MESSAGE"                   => "message"
    );
//$TICKET_ID = 866;
$NEW_TICKET_ID = CTicket::Set($arFields, $MESSAGE_ID, $TICKET_ID, "N");
echo "MESSAGE_ID = ".$MESSAGE_ID;
?>


GetList

Техподдержка>Классы>CTicket>GetList (3.0.1)

CTicket::GetList

Описание и параметры

record set

  CTicket::GetList(
   varchar &by,
   varchar &order,
   array arFilter=array(),
   boolean &is_filtered,
   char(1) checkRights="Y",
   char(1) getUserName="Y",
);

Метод предназначен для получения списка обращений в техподдержку. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
by Идентификатор, позволяющий задать имя поля для сортировки. Допустимы следующие значения:
  • s_id - по ID
  • s_lid - по сайту, для которого было создано обращение
  • s_lamp - по индикатору
  • s_date_create - по дате создания
  • s_timestamp - по дате изменения
  • s_date_close - по дате закрытия
  • s_owner - по автору
  • s_modified_by - по ID пользователя - изменившего обращение
  • s_title - по заголовку
  • s_responsible - по ID ответственного
  • s_messages - по количеству сообщений
  • s_category - по ID категории
  • s_criticality - по ID критичности
  • s_status - по ID статуса
  • s_mark - по ID оценки
  • s_online - по количеству пользователей
order Порядок сортировки. Допустимы следующие значения:
  • desc - по убыванию (значение по умолчанию)
  • asc - по возрастанию
arFilter Массив для фильтрации значений. Необязательный параметр. В массиве допустимы следующие индексы:
  • ID - ID обращения (допускается сложная логика)
  • ID_EXACT_MATCH - "Y" - при фильтрации по ID обращения будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • LID - ID сайта
  • LID_EXACT_MATCH - "Y" - при фильтрации по ID языка будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • LAMP - массив индикаторов: "red", "yellow", "green", "green_s", "grey"
  • DATE_CREATE_1 - левая часть интервала для даты создания обращения
  • DATE_CREATE_2 - правая часть интервала для даты создания обращения
  • DATE_TIMESTAMP_1 - левая часть интервала для даты модификации обращения
  • DATE_TIMESTAMP_2 - правая часть интервала для даты модификации обращения
  • DATE_CLOSE_1 - левая часть интервала для даты закрытия обращения
  • DATE_CLOSE_2 - правая часть интервала для даты закрытия обращения
  • AUTO_CLOSE_DAYS1 - левая часть интервала для количества дней по истечении которых обращение будет автоматически закрыто при отсутствии ответа от автора
  • AUTO_CLOSE_DAYS2 - правая часть интервала для количества дней по истечении которых обращение будет автоматически закрыто при отсутствии ответа от автора
  • TICKET_TIME_1 - левая часть интервала для количества дней прошедших с даты создания до даты закрытия обращения
  • TICKET_TIME_2 - правая часть интервала для количества дней прошедших с даты создания до даты закрытия обращения
  • TITLE - заголовок обращения (допускается сложная логика)
  • TITLE_EXACT_MATCH - "Y" - при фильтрации по заголовку обращения будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • MESSAGES1 - левая часть интервала для количества сообщений в обращении
  • MESSAGES2 - правая часть интервала для количества сообщений в обращении
  • OWNER - автор обращения, поиск осуществляется по ID пользователя, логину, имени, фамилии, символному коду (допускается сложная логика)
  • OWNER_EXACT_MATCH - "Y" - при фильтрации по автору обращения будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • CREATED_BY - кем было создано обращение, поиск осуществляется по ID пользователя, логину, имени, фамилии, названии модуля из которого было создано обращение (допускается сложная логика)
  • CREATED_BY_EXACT_MATCH - "Y" - при фильтрации по создателю обращения будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • MODIFIED_BY - изменивший обращение, поиск осуществляется по ID пользователя, логину, имени, фамилии, названии модуля из которого было изменено обращение (допускается сложная логика)
  • MODIFIED_BY_EXACT_MATCH - "Y" - при фильтрации по символьному коду статуса будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • RESPONSIBLE - ответственный за обращение, поиск осуществляется по ID пользователя, логину, имени, фамилии (допускается сложная логика)
  • RESPONSIBLE_EXACT_MATCH - "Y" - при фильтрации по ответственному за обращение будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • RESPONSIBLE_ID - ID пользователя ответственного за обращение, при задании "0" будут выбраны только те обращения у которых нет ответственного
  • CATEGORY - ID категории обращения (0 - без категории)
  • CATEGORY_SID - символьный код категории обращения (допускается сложная логика)
  • CATEGORY_SID_EXACT_MATCH - "Y" - при фильтрации по символьному коду категории будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • CRITICALITY - ID критичности обращения (0 - без критичности)
  • CRITICALITY_SID - символьный код критичности обращения (допускается сложная логика)
  • CRITICALITY_SID_EXACT_MATCH - "Y" - при фильтрации по символьному коду критичности будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • STATUS - ID статуса обращения (0 - без статуса)
  • STATUS_SID - символьный код статуса обращения (допускается сложная логика)
  • STATUS_SID_EXACT_MATCH - "Y" - при фильтрации по символьному коду статуса будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • MARK_SID_EXACT_MATCH - "Y" - при фильтрации по символьному коду оценки ответа будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • MARK - ID оценки ответов (0 - без оценки)
  • MARK_SID - символьный код оценки ответов (допускается сложная логика)
  • SOURCE - ID источника (0 - источник "web")
  • SOURCE_SID - символьный код источника (допускается сложная логика)
  • SOURCE_SID_EXACT_MATCH - "Y" - при фильтрации по символьному коду источника будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • MESSAGE - текст сообщения (допускается сложная логика)
  • MESSAGE_EXACT_MATCH - "Y" - при фильтрации по сообщению будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • LAST_MESSAGE_USER_ID - ID пользователя написавшего последнее сообщение в обращении (допускается сложная логика)
  • LAST_MESSAGE_USER_ID_EXACT_MATCH - "Y" - при фильтрации по ID пользователя написавшего последнее сообщение в обращении будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • LAST_MESSAGE_SID - символьный идентификатор написавшего последнее сообщение в обращении (если источник "email", то это может быть email, если источник "телефон", то это может быть номер телефона) (допускается сложная логика)
  • LAST_MESSAGE_SID_EXACT_MATCH - "Y" - при фильтрации по символьному идентификатору пользователя написавшего последнее сообщение в обращении будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • SUPPORT_COMMENTS - комментарий техподдержки, видимый в стандартных формах только для пользователей входящих в группу техподдержки
  • SUPPORT_COMMENTS_EXACT_MATCH - "Y" - при фильтрации по ID пользователя написавшего последнее сообщение в обращении будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • SITE_ID - идентификатор сайта
  • CLOSE - Y\N - закрыт тикет, или нет
  • S_SPAM - Y\N - флаг, является ли тикет спамом
  • IS_OVERDUE - Y\N - флаг, просрочен ли тикет.
  • SLA_ID - по ID уровня техподдержки (допускается сложная логика).
  • SUPPORTTEAM_GROUP_ID - по ID группы техподдержки (число или массив чисел).
  • CLIENT_GROUP_ID - Y\N - по ID группы клиентов (число или массив чисел).
is_filtered | Переменная возвращающая true в том случае если список результатов отфильтрован по какому либо критерию; либо false в противном случае. Изменен на isFiltered c 12.0.0
checkRights | Необязательный параметр. "Y" - будут выбраны только те обращения которые текущий пользователь может просматривать (по умолчанию); "N" - выбирать все обращения независимо от прав текущего пользователя. До версии 12.0.0 назывался check_rights. | 3.3.9
getUserName | Необязательный параметр. "Y" - при выборке обращений будут также выбраны такие поля как OWNER_LOGIN, OWNER_NAME, RESPONSIBLE_LOGIN, RESPONSIBLE_NAME, MODIFIED_LOGIN, MODIFIED_NAME, LAST_MESSAGE_LOGIN, LAST_MESSAGE_NAME, CREATED_LOGIN, CREATED_EMAIL, CREATED_NAME, описывающие параметры пользователей имевших отношение к данному обращению (по умолчанию); "N" - вышеперечисленные поля не будут выбраны, но зато это ускорит работу метода. До версии 12.0.0 назывался get_user_name. | 3.3.15
get_dictionary_name | Необязательный параметр. "Y" - при выборке обращений будут также выбраны такие поля как CATEGORY_NAME, CATEGORY_SID, CRITICALITY_NAME, CRITICALITY_SID, STATUS_NAME, STATUS_SID, MARK_NAME, MARK_SID, SOURCE_NAME, SOURCE_SID, описывающие поля из справочника техподдержки (по умолчанию); "N" - вышеперечисленные поля не будут выбраны, но зато это ускорит работу метода. Удален с 4.0.6 | 3.3.15
lang | Двухсимвольный код языка в формате которого необходимо выбрать временные параметры обращения (время создания, изменения, закрытия); необязательный параметр, по умолчанию - код текущего сайта. Удален с 4.0.0 | 3.3.15
siteID | Необязательный параметр. Значение по умолчанию - "false". До версии 12.0.0 назывался site_id. | 4.0.0
getExtraNames | Необязательный параметр. Значение по умолчанию - "Y". | 4.0.6
arParams | Необязательный параметр. | 12.0.0

Примеры использования

<?
$FilterArr = Array(
    "find_id",
    "find_lid",
    "find_lamp",
    "find_date_create1",
    "find_date_create2",
    "find_date_timestamp1",
    "find_date_timestamp2",
    "find_date_close1",
    "find_date_close2",
    "find_close",
    "find_ticket_time_1",
    "find_ticket_time_2",
    "find_title",
    "find_messages1",
    "find_messages2",
    "find_owner",
    "find_created_by",
    "find_responsible",
    "find_responsible_id",
    "find_category_id",
    "find_criticality_id",
    "find_status_id",
    "find_mark_id",
    "find_source_id",
    "find_modified_by",
    "find_message"
    );
if (strlen($set_filter)>0) InitFilterEx($FilterArr,"TICKET_LIST","set",true); else InitFilterEx($FilterArr,"TICKET_LIST","get",true);
if (strlen($del_filter)>0) DelFilterEx($FilterArr,"TICKET_LIST",true);
if (CheckFilter())
{
    $arFilter = Array(
        "ID"                => $find_id,
        "LID"               => $find_lid,
        "LAMP"              => $find_lamp,
        "DATE_CREATE_1"     => $find_date_create1,
        "DATE_CREATE_2"     => $find_date_create2,
        "DATE_TIMESTAMP_1"  => $find_date_timestamp1,
        "DATE_TIMESTAMP_2"  => $find_date_timestamp2,
        "DATE_CLOSE_1"      => $find_date_close1,
        "DATE_CLOSE_2"      => $find_date_close2,
        "CLOSE"             => $find_close,
        "TICKET_TIME_1"     => $find_ticket_time_1,
        "TICKET_TIME_2"     => $find_ticket_time_2,
        "TITLE"             => $find_title,
        "MESSAGES1"         => $find_messages1,
        "MESSAGES2"         => $find_messages2,
        "OWNER"             => $find_owner,
        "CREATED_BY"        => $find_created_by,
        "RESPONSIBLE"       => $find_responsible,
        "RESPONSIBLE_ID"    => $find_responsible_id,
        "CATEGORY"          => $find_category_id,
        "CRITICALITY"       => $find_criticality_id,
        "STATUS"            => $find_status_id,
        "MARK"              => $find_mark_id,
        "SOURCE"            => $find_source_id,
        "MODIFIED_BY"       => $find_modified_by,
        "MESSAGE"           => $find_message
        );
}
$tickets = CTicket::GetList($by, $order, $arFilter, $is_filtered);
?>


GetByID

Техподдержка>Классы>CTicket>GetByID (3.0.1)

CTicket::GetByID

Описание и параметры

record set
CTicket::GetByID(
 int ID,
 char(2) lang=LANG,
 char(1) CHECK_RIGHTS="Y",
 char(1) get_user_name="Y",
 char(1) get_dictionary_name="Y"
);

Метод возвращает данные по одному обращению. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
ID | ID обращения. |
lang | Двухсимвольный код языка в формате которого необходимо выбрать временные параметры обращения (время создания, изменения, закрытия); необязательный параметр, по умолчанию - код текущего сайта. |
CHECK_RIGHTS | Необязательный параметр. "Y" - будут выбраны только те обращения которые текущий пользователь может просматривать (по умолчанию); "N" - выбирать все обращения независимо от прав текущего пользователя. Изменен на checkRights c 12.0.0 | 3.3.9
get_user_name | Необязательный параметр. "Y" - при выборке обращений будут также выбраны такие поля как OWNER_LOGIN, OWNER_NAME, RESPONSIBLE_LOGIN, RESPONSIBLE_NAME, MODIFIED_LOGIN, MODIFIED_NAME, LAST_MESSAGE_LOGIN, LAST_MESSAGE_NAME, CREATED_LOGIN, CREATED_EMAIL, CREATED_NAME, описывающие параметры пользователей имевших отношение к данному обращению (по умолчанию); "N" - вышеперечисленные поля не будут выбраны, но зато это ускорит работу метода. | 3.3.15
get_dictionary_name | Необязательный параметр. "Y" - при выборке обращений будут также выбраны такие поля как CATEGORY_NAME, CATEGORY_SID, CRITICALITY_NAME, CRITICALITY_SID, STATUS_NAME, STATUS_SID, MARK_NAME, MARK_SID, SOURCE_NAME, SOURCE_SID, описывающие поля из справочника техподдержки (по умолчанию); "N" - вышеперечисленные поля не будут выбраны, но зато это ускорит работу метода. Удален с 4.0.6 | 3.3.15
bAdmin | Необязательный параметр. Значение по умолчанию - "N". |
get_extra_names | Необязательный параметр. Значение по умолчанию - "Y". | 4.0.6
arParams | Необязательный параметр. | 12.0.0

Пример

Пример массива одной строки выборки, возвращаемой методом CTicket::GetByID

Array
(
    [ID] => 647
    [LID] => ru
    [DATE_CREATE] => 17.03.2004 15:27:05
    [TIMESTAMP_X] => 19.04.2004 13:37:30
    [DATE_CLOSE] =>
    [AUTO_CLOSED] =>
    [AUTO_CLOSE_DAYS] =>
    [CATEGORY_ID] => 27
    [CRITICALITY_ID] => 8
    [STATUS_ID] => 14
    [MARK_ID] => 21
    [SOURCE_ID] =>
    [TITLE] => Импорт-экспорт в торговый каталог
    [MESSAGES] => 30
    [OWNER_USER_ID] => 166
    [OWNER_GUEST_ID] => 14649
    [OWNER_SID] =>
    [CREATED_USER_ID] => 166
    [CREATED_GUEST_ID] => 14649
    [CREATED_MODULE_NAME] => support
    [RESPONSIBLE_USER_ID] => 12
    [MODIFIED_USER_ID] => 166
    [MODIFIED_GUEST_ID] => 16218
    [MODIFIED_MODULE_NAME] => support
    [LAST_MESSAGE_USER_ID] => 166
    [LAST_MESSAGE_GUEST_ID] => 16218
    [LAST_MESSAGE_SID] =>
    [SUPPORT_COMMENTS] =>
    [OWNER_LOGIN] => ant
    [OWNER_EMAIL] => mail@server.com
    [OWNER_NAME] => Поручик Лукаш
    [RESPONSIBLE_LOGIN] => wizard
    [RESPONSIBLE_EMAIL] => mail@server.com
    [RESPONSIBLE_NAME] => Фельдкурат Кац
    [MODIFIED_LOGIN] => ant
    [MODIFIED_EMAIL] => mail@server.com
    [MODIFIED_NAME] => Поручик Лукаш
    [LAST_MESSAGE_LOGIN] => ant
    [LAST_MESSAGE_EMAIL] => mail@server.com
    [LAST_MESSAGE_NAME] => Поручик Лукаш
    [CREATED_LOGIN] => ant
    [CREATED_EMAIL] => mail@server.com
    [CREATED_NAME] => Поручик Лукаш
    [CATEGORY_NAME] => Установка и настройка
    [CATEGORY_DESC] =>
    [CATEGORY_SID] =>
    [CRITICALITY_NAME] => Средняя
    [CRITICALITY_DESC] =>
    [CRITICALITY_SID] => middle
    [STATUS_NAME] => В стадии решения
    [STATUS_DESC] =>
    [STATUS_SID] =>
    [MARK_NAME] => Ответ устраивает
    [MARK_DESC] =>
    [MARK_SID] =>
    [SOURCE_NAME] =>
    [SOURCE_DESC] =>
    [SOURCE_SID] =>
    [LAMP] => yellow
)


GetMessageList

Техподдержка>Классы>CTicket>GetMessageList (3.3.5)

CTicket::GetMessageList

Описание и параметры

record set
CTicket::GetMessageList(
 varchar &by,
 varchar &order,
 array arFilter=array(),
 boolean &is_filtered,
 char(1) CHECK_RIGHTS="Y",
 char(1) get_user_name="Y"

);

Метод предназначен для получения списка сообщений в одном обращении. Метод нестатический.

Параметры метода

Параметр | Описание | С версии | Удалён с версии
TICKET_ID | 3.3.16
by Идентификатор позволяющий задать имя поля для сортировки. Допустимы следующие значения:
  • s_id - по ID
  • s_number - по порядковому номеру
3.3.16
order Порядок сортировки. Допустимы следующие значения:
  • desc - по убыванию
  • asc - по возрастанию (значение по умолчанию)
3.3.16
arFilter Массив для фильтрации значений. В массиве допустимы следующие индексы:
  • ID - ID сообщения (допускается сложная логика);
  • TICKET_ID - ID обращения;
  • TICKET - (допускается сложная логика);
  • IS_MESSAGE - Позволяет получить список именно сообщений. В противном случае в списке сообщений будет много мусора, например, сообщения об изменении статуса.
  • IS_HIDDEN - "Y" - будут выбраны только скрытые сообщения; "N" - будут выбраны все не скрытые сообщения;
  • IS_LOG - "Y" - будут выбраны только лог-записи (записи изменений); "N" - будут выбраны не лог-записи;
  • IS_OVERDUE - "Y" - будут выбраны только просроченные сообщения; "N" - будут выбраны не просроченные сообщения;
  • NOT_CHANGE_STATUS - "Y" - будут выбраны только неизменённые сообщения; "N" - будут выбраны изменённые сообщения;
  • MESSAGE_BY_SUPPORT_TEAM - "Y" - будут выбраны сообщения от сотрудников техподдержки; "N" - будут выбраны все сообщения;
  • EXTERNAL_FIELD_1 - (допускается сложная логика)
Необязательный параметр. 		3.3.11
is_filtered | Переменная возвращающая true в том случае если список результатов отфильтрован по какому либо критерию; либо false в противном случае. Изменен на isFiltered с версии 12.0.0 | 3.3.16
CHECK_RIGHTS Флаг необходимости проверки прав текущего пользователя:
  • Y - будут выбраны только те сообщения которые данные пользователь может просматривать (по умолчанию)
  • N - выбирать все сообщения независимо от прав текущего пользователя
Необязательный параметр. Изменен на checkRights с версии 12.0.0 		3.3.11
get_user_name | Необязательный параметр. "Y" - при выборке сообщения будут также выбраны такие поля, как OWNER_EMAIL, OWNER_LOGIN, OWNER_NAME, CREATED_EMAIL, CREATED_LOGIN, CREATED_NAME, MODIFIED_EMAIL, MODIFIED_LOGIN, MODIFIED_NAME, описывающие параметры пользователей имевших отношение к данному сообщению (по умолчанию); "N" - вышеперечисленные поля не будут выбраны, но зато это ускорит работу метода. Изменен на getUserName с версии 12.0.0 | 3.3.16
old_call | Необязательный параметр. Значение по умолчанию - "N". | 3.3.15 | 3.3.16

Примеры использования

<?
$mess = CTicket::GetMessageList($a, $b, array("TICKET_ID" => $ID, "TICKET_ID_EXACT_MATCH" => "Y"), $c, $CHECK_RIGHTS);
$mess->NavStart(50);
$messages = $mess->SelectedRowsCount();
?>


GetMessageByID

Техподдержка>Классы>CTicket>GetMessageByID (3.0.2)

CTicket::GetMessageByID

Описание и параметры

record set
CTicket::GetMessageByID(
 int ID,
 char(1) CHECK_RIGHTS="Y",
 char(1) get_user_name="Y"

);

Метод возвращает данные по одному сообщению. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
ID | ID сообщения. |
CHECK_RIGHTS | "Y" - сообщение будет выбрано только в том случае если у пользователя есть права на это сообщение (по умолчанию); "N" - сообщение будет выбрано независимо от прав текущего пользователя. Необязательный параметр. Изменен на checkRights с версии 12.0.0 | 3.3.16
get_user_name | "Y" - при выборке сообщения будут также выбраны такие поля как OWNER_EMAIL, OWNER_LOGIN, OWNER_NAME, CREATED_EMAIL, CREATED_LOGIN, CREATED_NAME, MODIFIED_EMAIL, MODIFIED_LOGIN, MODIFIED_NAME, описывающие параметры пользователей имевших отношение к данному сообщению (по умолчанию); "N" - вышеперечисленные поля не будут выбраны, но зато это ускорит работу метода. Необязательный параметр. | 3.3.16

Пример

Пример массива одной строки выборки, возвращаемой методом CTicket::GetMessageByID

Array
(
    [ID] => 3585
    [TIMESTAMP_X] => 27.04.2004 12:46:02
    [DATE_CREATE] => 13.04.2004 11:57:04
    [C_NUMBER] => 22
    [TICKET_ID] => 647
    [MESSAGE] => Хорошо, тогда как насчет такой мысли: если группа указана в загружаемом файле, то она активируется (данное поведение можно регулировать при создании схемы загрузки).
Цитирую себя же. Вспомнил вот что: деактивировать рубрику при загрузке возможность есть (соответствующая галочка при создании схемы), а активировать- нет.
Разное получается поведение. А хотелось бы одинакового
    [MESSAGE_SEARCH] => ХОРОШО, ТОГДА КАК НАСЧЕТ ТАКОЙ МЫСЛИ: ЕСЛИ ГРУППА УКАЗАНА В ЗАГРУЖАЕМОМ ФАЙЛЕ, ТО ОНА АКТИВИРУЕТСЯ (ДАННОЕ ПОВЕДЕНИЕ МОЖНО РЕГУЛИРОВАТЬ ПРИ СОЗДАНИИ СХЕМЫ ЗАГРУЗКИ).
ЦИТИРУЮ СЕБЯ ЖЕ. ВСПОМНИЛ ВОТ ЧТО: ДЕАКТИВИРОВАТЬ РУБРИКУ ПРИ ЗАГРУЗКЕ ВОЗМОЖНОСТЬ ЕСТЬ (СООТВЕТСВУЮЩАЯ ГАЛОЧКА ПРИ СОЗДАНИИ СХЕМЫ), А АКТИВИРОВАТЬ- НЕТ.
РАЗНОЕ ПОЛУЧАЕТСЯ ПОВЕДЕНИЕ. А ХОТЕЛОСЬ БЫ ОДИНАКОВОГО
    [IMAGE] => 996
    [OWNER_USER_ID] => 166
    [OWNER_GUEST_ID] => 16218
    [OWNER_SID] =>
    [SOURCE_ID] => 0
    [CREATED_USER_ID] => 166
    [CREATED_GUEST_ID] => 16218
    [CREATED_MODULE_NAME] => support
    [MODIFIED_USER_ID] => 2
    [MODIFIED_GUEST_ID] => 6221
    [OWNER_EMAIL] => mail@server.com
    [OWNER_LOGIN] => ant
    [OWNER_NAME] => Поручик Лукаш
    [CREATED_EMAIL] => mail@server.com
    [CREATED_LOGIN] => ant
    [CREATED_NAME] => Поручик Лукаш
    [MODIFIED_EMAIL] => mail@server.com
    [MODIFIED_LOGIN] => nessy
    [MODIFIED_NAME] => Vitaly Kaplich
)


Delete

Техподдержка>Классы>CTicket>Delete (3.3.7)

CTicket::Delete

record set
CTicket::Delete(
 int TICKET_ID,
 char(1) CHECK_RIGHTS="Y"

);

Метод удаляет обращение. Метод нестатический.

Параметры метода

Параметр | Описание
TICKET_ID | ID обращения. С версии 12.0.0 изменен на ticketID.
CHECK_RIGHTS | "Y" - необходимо проверить право на удаление у текущего пользователя (по умолчанию); "N" - прав проверять не надо. Необязательный параметр. С версии 12.0.0 изменен на checkRights.


DeleteMessage

Техподдержка>Классы>CTicket>DeleteMessage (3.2.1)

CTicket::DeleteMessage

record set
CTicket::DeleteMessage(
 int MESSAGE_ID,
 char(1) CHECK_RIGHTS="Y"
);

Метод удаляет сообщение. Метод нестатический.

Параметры метода

Параметр | Описание | С версии
MESSAGE_ID | ID сообщения. |
CHECK_RIGHTS | "Y" - необходимо проверить право на удаление у текущего пользователя (по умолчанию); "N" - прав проверять не надо. Необязательный параметр. С версии 12.0.0 изменен на checkRights. | 3.3.7


CTicketDictionary

CTicketDictionary - класс для работы со справочником обращений.

Методы класса

Метод | Описание | С версии
GetList | Возвращает список записей справочника с использованием фильтра. |
GetByID | Возвращает одну запись справочника по ее ID. |


GetList

Техподдержка>Классы>CTicketDictionary>GetList (3.0.1)

CTicketDictionary::GetList

Описание и параметры

record set
CTicketDictionary::GetList(
 varchar &by,
 varchar &order,
 array arFilter=array(),
 boolean &is_filtered

);

Метод предназначен для получения списка записей справочника. Метод нестатический.

Параметры метода

Параметр | Описание
by Идентификатор позволяющий задать имя поля для сортировки. Допустимы следующие значения:
  • s_id - по ID
  • s_c_sort - по указанному порядку сортировки
  • s_sid - по символьному коду
  • s_lis - по языку
  • s_name - по имени
  • s_responsible - по ID ответственного
  • s_dropdown - по указанному порядку сортировки и по имени
order Порядок сортировки. Допустимы следующие значения:
  • desc - по убыванию (значение по умолчанию)
  • asc - по возрастанию
arFilter Массив для фильтрации значений. В массиве допустимы следующие индексы:
  • ID - ID записи (допускается сложная логика)
  • SID - символьный код (допускается сложная логика)
  • LID - ID сайта
  • TYPE - тип записи: "C" - категория, "K" - критичность, "S" - статус, "M" - оценка ответов, "F" - часто используемые ответы, "SR" - источник
  • NAME - имя (допускается сложная логика)
  • RESPONSIBLE_ID - ID ответственного
  • RESPONSIBLE - ответственный, поиск осуществляется по ID пользователя, логину, имени, фамилии (допускается сложная логика)
  • DEFAULT - флаг "Выбирать по умолчанию"; "Y" - да, "N" - нет
Необязательный параметр.
is_filtered | Переменная возвращающая true в том случае если список результатов отфильтрован по какому либо критерию; либо false в противном случае. С версии 12.0.0 изменен на isFiltered.

Возвращаемое значение

Возвращается объект CDBResult.

Примеры использования

<?
$FilterArr = Array(
    "find_id",
    "find_lid",
    "find_type",
    "find_name",
    "find_sid",
    "find_responsible",
    "find_responsible_id",
    "find_default"
    );
if (strlen($set_filter)>0) InitFilterEx($FilterArr,"TICKET_DICTIONARY_LIST","set"); else InitFilterEx($FilterArr,"TICKET_DICTIONARY_LIST","get");
if (strlen($del_filter)>0) DelFilterEx($FilterArr,"TICKET_DICTIONARY_LIST");
$arFilter = Array(
    "ID"				=> $find_id,
    "LID"				=> $find_lid,
    "TYPE"				=> $find_type,
    "NAME"				=> $find_name,
    "SID"				=> $find_sid,
    "RESPONSIBLE_ID"	=> $find_responsible_id,
    "RESPONSIBLE"		=> $find_responsible,
    "DEFAULT"			=> $find_default
    );
$tdic = CTicketDictionary::GetList($by, $order, $arFilter, $is_filtered);
?>

//получим список статусов для текущего сайта $arFilter = Array(
    "LID" => SITE_ID,
    "TYPE" => "S",
);

//сортировка задется через переменные
$by = "s_c_sort";
$sort = "asc";

//отбор и вывод
$rsStatus = CTicketDictionary::GetList($by, $sort, $arFilter, $is_filtered); while($arRes = $rsStatus->GetNext()) {
    echo $arRes["NAME"], "";
}


GetByID

Техподдержка>Классы>CTicketDictionary>GetByID (3.0.1)

CTicketDictionary::GetByID

record set
CTicketDictionary::GetByID(
 int ID

);

Метод возвращает данные по одной записи справочника. Метод нестатический.

Параметры метода

Параметр | Описание
ID | ID записи.

Пример массива одной строки выборки возвращаемой методом CTicketDictionary::GetByID

Array
(
    [ID] => 3
    [LID] => ru
    [C_TYPE] => C
    [SID] =>
    [SET_AS_DEFAULT] => N
    [C_SORT] => 500
    [NAME] => Доставка программного продукта и обновлений
    [DESCR] =>
    [RESPONSIBLE_USER_ID] => 2
    [ EVENT1] => ticket
    [ EVENT2] =>
    [ EVENT3] =>
)


События

  • События
  • OnBeforeSendMailToAuthor
  • OnBeforeSendMailToSupport


События

Событие | Вызывается | Метод | С версии
OnBeforeTicketNotify | перед отсылкой уведомления о необходимости ответа на обращение. | CTicketReminder::SupportDeadlineNotify | 12.5.1
OnBeforeTicketExpire | перед установкой статуса "Просрочен" у обращений. | CTicketReminder::SupportDeadline | 12.5.1
OnAfterUseCoupon | после использования купона. | CSupportSuperCoupon::UseCoupon | 7.0.5
OnBeforeSendCouponEMail | перед пересылкой купона по e-mail. | CSupportSuperCoupon::UseCoupon | 7.0.5
OnBeforeTicketAdd | перед добавлением тикета. | CTicket::Set | 9.1.0
OnBeforeTicketDelete | перед удалением тикета. | CTicket::Delete | 9.1.0
OnBeforeTicketUpdate | перед изменением тикета. | CTicket::Set | 9.1.0
OnTicketDelete | при удалении тикета. | CTicket::Delete | 9.1.0
OnAfterTicketAdd | после добавления тикета. | CTicket::Set | 8.0.1
OnAfterTicketUpdate | после изменения тикета. | CTicket::Set | 8.0.1
OnBeforeSendMailToAuthor | перед отправкой письма клиенту модуля Тех. поддержка. | CTicket::Set_sendMails | 7.0.0
OnBeforeSendMailToSupport | перед отправкой письма сотруднику модуля Тех. поддержка. | CTicket::Set_sendMails | 7.0.0
OnAfterSendCouponEMail | после пересылки купона по e-mail. | CSupportSuperCoupon::UseCoupon | 7.0.4
OnBeforeUseCoupon | перед использованием купона. | CSupportSuperCoupon::UseCoupon | 7.0.4


OnBeforeSendMailToAuthor

Описание и параметры

функция-обработчик(
 array $arFields,
 bool $is_new
)
Событие "OnBeforeSendMailToAuthor" вызывается непосредственно перед отправкой письма клиенту модуля "Тех. поддержка". Как правило задачи обработчика данного события - выполнить ту или иную операцию, перед отправкой письма.

Параметры

Параметр | Описание
$arFields

В массиве находятся параметры события, переданные в обработчик события.

Пример массива:
Array
(
    [ID] => 1
    [LANGUAGE] => ru
    [LANGUAGE_ID] => ru
    [WHAT_CHANGE] => < добавлено сообщение >
< изменилась категория >
< изменилась критичность >
< изменился статус >

    [DATE_CREATE] => 24.07.2011 19:22:38
    [TIMESTAMP] => 24.07.2011 19:29:38
    [DATE_CLOSE] =>
    [TITLE] => Моё первое обращение
    [STATUS] => В стадии решения
    [DIFFICULTY] => Средний
    [CATEGORY] => Общие вопросы
    [CRITICALITY] => Высокая
    [RATE] =>
    [SLA] => По умолчанию
    [SOURCE] =>
    [MESSAGES_AMOUNT] => 4
    [SPAM_MARK] =>
    [ADMIN_EDIT_URL] => /bitrix/admin/ticket_edit.php
    [PUBLIC_EDIT_URL] => /support/ticket_edit.php
    [OWNER_EMAIL] => mifd@dfdf.ru
    [OWNER_USER_ID] => 2
    [OWNER_USER_NAME] => Василий Петров
    [OWNER_USER_LOGIN] => bx_test
    [OWNER_USER_EMAIL] => mifd@dfdf.ru
    [OWNER_TEXT] => [2] (bx_test) Василий Петров
    [OWNER_SID] =>
    [SUPPORT_EMAIL] => my@email.com
    [RESPONSIBLE_USER_ID] =>
    [RESPONSIBLE_USER_NAME] =>
    [RESPONSIBLE_USER_LOGIN] =>
    [RESPONSIBLE_USER_EMAIL] =>
    [RESPONSIBLE_TEXT] =>
    [SUPPORT_ADMIN_EMAIL] =>
    [CREATED_USER_ID] => 2
    [CREATED_USER_LOGIN] => bx_test
    [CREATED_USER_EMAIL] => mifd@dfdf.ru
    [CREATED_USER_NAME] => Василий Петров
    [CREATED_MODULE_NAME] =>
    [CREATED_TEXT] => [2] (bx_test) Василий Петров
    [MODIFIED_USER_ID] => 1
    [MODIFIED_USER_LOGIN] => admin
    [MODIFIED_USER_EMAIL] => my@email.com
    [MODIFIED_USER_NAME] => Иван Иванов
    [MODIFIED_MODULE_NAME] =>
    [MODIFIED_TEXT] => [1] (admin) Иван Иванов [техподдержка]
    [MESSAGE_AUTHOR_USER_ID] => 1
    [MESSAGE_AUTHOR_USER_NAME] => Иван Иванов
    [MESSAGE_AUTHOR_USER_LOGIN] => admin
    [MESSAGE_AUTHOR_USER_EMAIL] => my@email.com
    [MESSAGE_AUTHOR_TEXT] => [1] (admin) Иван Иванов [техподдержка]
    [MESSAGE_AUTHOR_SID] =>
    [MESSAGE_SOURCE] =>
    [MESSAGE_HEADER] => ======================= СООБЩЕНИЕ ==================================
    [MESSAGE_BODY] =>

Есть ли решение по моей проблеме?

    [MESSAGE_FOOTER] => ====================================================================
    [FILES_LINKS] =>
    [IMAGE_LINK] =>
    [SUPPORT_COMMENTS] =>
)
$is_new | Содержит true в случае если это сообщение первое в обращении, иначе возвращается false

Возвращаемое значение

Нет

Смотрите также

  • OnBeforeSendMailToSupport

Пример функции-обработчика

//Дублируем письмо сообщением в соц. сеть
//Обработчик в файле /bitrix/php_interface/init.php
AddEventHandler("support", "OnBeforeSendMailToAuthor", array("MyClass", "OnBeforeSendMailToAuthorHandler"));
class MyClass
{
    function OnBeforeSendMailToAuthorHandler($arFields, $is_new)
    {
        if (CModule::IncludeModule("socialnetwork"))
        {
            $servername = "site.ru";
            $message = "";
            $message .= "Тема: ".$arFields["TITLE"]."[".$arFields["ID"]."] (Изменения в обращении)\r\n";
            $message .= $arFields["WHAT_CHANGE"]."\r\n";
            $message .= "От кого: ".$arFields["MESSAGE_SOURCE"]." ".$arFields["MESSAGE_AUTHOR_SID"]." ".$arFields["MESSAGE_AUTHOR_TEXT"]."\r\n";
            $message .= $arFields["MESSAGE_HEADER"];
            $message .= $arFields["MESSAGE_BODY"];
            $message .= $arFields["MESSAGE_FOOTER"]."\r\n";
            $message .= "Для просмотра и редактирования обращения воспользуйтесь ссылкой:\r\n";
            $message .= "http://".$servername.$arFields["ADMIN_EDIT_URL"]."?ID=".$arFields["ID"]."\r\n";

            $arPamams = array(
                "FROM_USER_ID" => 1,
                "TO_USER_ID" => 1,
                "MESSAGE" => $message,
                "=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(),
                "MESSAGE_TYPE" => "P",
            );
            CSocNetMessages::Add($arPamams);
        }
    }
}


OnBeforeSendMailToSupport

Описание и параметры

функция-обработчик(
 array $arFields,
 bool $is_new
)
Событие "OnBeforeSendMailToSupport" вызывается непосредственно перед отправкой письма сотруднику модуля "Тех. поддержка". Как правило задачи обработчика данного события - выполнить ту или иную операцию, перед отправкой письма.

Параметры

Параметр | Описание
$arFields

В массиве находятся параметры события, переданные в обработчик события.

Пример массива:
Array
(
    [ID] => 1
    [LANGUAGE] => ru
    [LANGUAGE_ID] => ru
    [WHAT_CHANGE] => < добавлено сообщение >

    [DATE_CREATE] => 24.07.2011 19:22:38
    [TIMESTAMP] => 24.07.2011 20:19:57
    [DATE_CLOSE] =>
    [TITLE] => Моё первое сообщение
    [STATUS] => В стадии решения
    [DIFFICULTY] => Средний
    [CATEGORY] => Общие вопросы
    [CRITICALITY] => Высокая
    [RATE] =>
    [SLA] => По умолчанию
    [SOURCE] =>
    [MESSAGES_AMOUNT] => 10
    [SPAM_MARK] =>
    [ADMIN_EDIT_URL] => /bitrix/admin/ticket_edit.php
    [PUBLIC_EDIT_URL] => /communication/support/
    [OWNER_EMAIL] => mifd@dfdf.ru
    [OWNER_USER_ID] => 2
    [OWNER_USER_NAME] => Василий Петров
    [OWNER_USER_LOGIN] => bx_test
    [OWNER_USER_EMAIL] => mifd@dfdf.ru
    [OWNER_TEXT] => [2] (bx_test) Василий Петров
    [OWNER_SID] =>
    [SUPPORT_EMAIL] => my@email.com
    [RESPONSIBLE_USER_ID] =>
    [RESPONSIBLE_USER_NAME] =>
    [RESPONSIBLE_USER_LOGIN] =>
    [RESPONSIBLE_USER_EMAIL] =>
    [RESPONSIBLE_TEXT] =>
    [SUPPORT_ADMIN_EMAIL] =>
    [CREATED_USER_ID] => 2
    [CREATED_USER_LOGIN] => bx_test
    [CREATED_USER_EMAIL] => mifd@dfdf.ru
    [CREATED_USER_NAME] => Василий Петров
    [CREATED_MODULE_NAME] =>
    [CREATED_TEXT] => [2] (bx_test) Василий Петров
    [MODIFIED_USER_ID] => 2
    [MODIFIED_USER_LOGIN] => bx_test
    [MODIFIED_USER_EMAIL] => mifd@dfdf.ru
    [MODIFIED_USER_NAME] => Василий Петров
    [MODIFIED_MODULE_NAME] =>
    [MODIFIED_TEXT] => [2] (bx_test) Василий Петров
    [MESSAGE_AUTHOR_USER_ID] => 2
    [MESSAGE_AUTHOR_USER_NAME] => Василий Петров
    [MESSAGE_AUTHOR_USER_LOGIN] => bx_test
    [MESSAGE_AUTHOR_USER_EMAIL] => mifd@dfdf.ru
    [MESSAGE_AUTHOR_TEXT] => [2] (bx_test) Василий Петров
    [MESSAGE_AUTHOR_SID] =>
    [MESSAGE_SOURCE] =>
    [MESSAGE_HEADER] => ======================= СООБЩЕНИЕ ==================================
    [MESSAGE_BODY] =>

Ваше обращение успешно решили.

    [MESSAGE_FOOTER] => ====================================================================
    [FILES_LINKS] =>
    [IMAGE_LINK] =>
    [SUPPORT_COMMENTS] =>
)
$is_new | Содержит true в случае если это сообщение первое в обращении, иначе возвращается false

Возвращаемое значение

Возвращает набор полей письма

Смотрите также

  • OnBeforeSendMailToAuthor

Пример функции-обработчика

<?
//Обработчик в файле /bitrix/php_interface/init.php
//Дублируем письмо в сообщение соц. сети
AddEventHandler("support", "OnBeforeSendMailToSupport", array("MyClass", "OnBeforeSendMailToSupportHandler"));
class MyClass
{
    function OnBeforeSendMailToSupportHandler($arFields, $is_new)
    {
        if (CModule::IncludeModule("socialnetwork"))
        {
            $servername = "site.ru";
            $message = "";
            $message .= "Тема: ".$arFields["TITLE"]."[".$arFields["ID"]."] (Изменения в обращении)\r\n";
            $message .= $arFields["WHAT_CHANGE"]."\r\n";
            $message .= "От кого: ".$arFields["MESSAGE_SOURCE"]." ".$arFields["MESSAGE_AUTHOR_SID"]." ".$arFields["MESSAGE_AUTHOR_TEXT"]."\r\n";
            $message .= $arFields["MESSAGE_HEADER"];
            $message .= $arFields["MESSAGE_BODY"];
            $message .= $arFields["MESSAGE_FOOTER"]."\r\n";
            $message .= "Для просмотра и редактирования обращения воспользуйтесь ссылкой:\r\n";
            $message .= "http://".$servername.$arFields["ADMIN_EDIT_URL"]."?ID=".$arFields["ID"]."\r\n";

            $arPamams = array(
                "FROM_USER_ID" => 1,
                "TO_USER_ID" => 1,
                "MESSAGE" => $message,
                "=DATE_CREATE" => $GLOBALS["DB"]->CurrentTimeFunction(),
                "MESSAGE_TYPE" => "P",
            );
            CSocNetMessages::Add($arPamams);
        }
    }
}

?>


Информация для разработчиков

Описание

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?
if (CModule::IncludeModule("catalog"))
{
   //здесь можно использовать функции модуля
}
?>

Перед использованием какого-либо информационного блока в качестве торгового каталога необходимо проверить является ли этот информационный блок каталогом (т.е. подключен ли он к модулю торгового каталога) при помощи конструкции:

<?
if (CCatalog::GetByID($IBLOCK_ID))
{
   //здесь можно работать с информационым блоком
   //как с торговым каталогом
}
?>

Обе эти конструкции можно объединить в одну, которая проверяет, установлен ли модуль торгового каталога (и подключает его), и можно ли использовать текущий информационный блок с кодом $IBLOCK_ID в качестве торгового каталога:

<?
if (CModule::IncludeModule("catalog")
   && CCatalog::GetByID($IBLOCK_ID))
{
   //здесь можно работать с информационым блоком
   //как с торговым каталогом
}
?>

Смотрите также

Показ цен - показ цен торгового каталога.
Занесение в корзину - занесение товаров торгового каталога в корзину модуля продаж.

Компоненты 2.0

Модуль включает в себя следующие компоненты 2.0:
Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Импорт каталога из 1С | catalog.import.1c | Выполняет импорт данных из 1С в формате CommerceML v2.
Экспорт каталога в 1С | catalog.export.1c | Компонент выполняет экспорт данных в 1С в формате CommerceML v2


Торговый каталог в ядре D7

Классы

Список классов модуля Торговый каталог в ядре D7

Класс, пространство имен | Описание
CatalogIblockTable | Класс для работы с таблицей инфоблоков, являющимися торговыми каталогами.
CatalogViewedProductTable | Класс для работы с таблицей просмотренных на сайте товаров.
Discount | Пространство имен содержит классы для работы со скидками на товары.
DiscountCouponTable | Класс для работы с таблицей купонов скидок.
DiscountModuleTable | Класс для работы с таблицей модулей, необходимых для скидки.
DiscountRestrictionTable | Класс для работы с таблицей ограничений на применение скидок.
DiscountTable | Класс для работы с таблицей скидок на товары.
Ebay | Пространство содержит классы для интеграции с Ebay.
ExtraTable | Класс для работы с таблицей наценок.
GroupAccessTable | Класс для работы с таблицей прав доступа групп пользователей на просмотр и покупку товаров по имеющимся в системе типам цен.
GroupLangTable | Класс для работы с таблицей языкозависимых параметров типов цен.
GroupTable | Класс для работы с таблицей типов цен.
Helpers | Пространство вспомогательных классов.
MeasureRatioTable | Класс для работы с таблицей единиц измерения товаров.
MeasureTable | Класс, описывающий таблицу единиц измерений.
PriceTable | Класс для работы с таблицей ценовых предложений товаров.
Product | Пространство содержит классы для работы с товарами и их торговыми предложениями.
ProductGroupAccessTable | Класс для работы с таблицей продажи прав доступа к контенту.
ProductTable | Класс для работы с таблицей товаров торговых каталогов.
RoundingTable | Класс для работы с таблицей правил округления цен.
StoreBarcodeTable | Класс для работы с таблицей штрихкодов.
StoreProductTable | Класс для работы с таблицей хранящихся на складах товаров.
StoreTable | Класс для работы с таблицей складов.
SubscribeAccessTable | Класс для работы с таблицей данных для аутентификации подписавшихся на товары без регистрации пользователей.
SubscribeTable | Класс для работы с таблицей подписок на отсутствующие товары.
VatTable | Класс для работы с таблицей ставок НДС.


Взаимодействие торгового каталога и магазина

До версии 12.5 взаимодействие интернет-магазина и торгового каталога строилось на функциях обратного вызова. Теперь взаимодействие осуществляется через новый интерфейс IBXSaleProductProvider. В корзину добавлено одно новое поле PRODUCT_PROVIDER_CLASS, каталог записывает в это поле имя класса CCatalogProductProvider.

После выхода версии 12.5 функции обратного вызова задействуются только в том случае, если не задан провайдер (поле PRODUCT_PROVIDER_CLASS пусто).

Функции обратного вызова:

Для поддержки актуальности корзины

Функция обратного вызова вызывается (если установлена) при каждом чтении корзины для обновления параметров содержащихся в корзине товаров. Например, если после добавления товара в корзину изменилась его цена или товар сняли с продажи, то использование функции обратного вызова позволяет соответственно обновить данные в корзине. В поле CALLBACK_FUNC записывается только имя функции обратного вызова. Для некоторых модулей функции обратного вызова уже написаны (например, для модуля catalog функция обратного вызова называется CatalogBasketCallback($PRODUCT_ID, $QUANTITY = 0, $renewal = "N", $intUserID = 0, $strSiteID = false))

array CALLBACK_FUNC(
 int PRODUCT_ID [,
 int QUANTITY,
 char renewal,
 int $intUserID,
 string $strSiteID]
);

Функция обратного вызова должна возвращать массив той же структуры, что и входной массив метода CSaleBasket::Add(array arFields). Если функция возвращает пустой массив, то это означает, что данный товар не доступен для покупки.

Параметры функции обратного вызова

Название | Описание
PRODUCT_ID | Код товара, находящегося в корзине.
QUANTITY | Количество товаров в корзине.
renewal | Равен "Y", если функция вызывается для продления подписки, и "N" в остальных случаях.
$intUserID* | ID пользователя. Если не задан, то берется текущий.
$strSiteID* | Сайт, для которого идет работа с корзиной. Если параметр равен false, то берется текущий сайт.

* - параметры доступны, начиная с версии 12.0.

Пример создания функции обратного вызова
<?
function MyBasketCallback($PRODUCT_ID, $QUANTITY = 0)
{
  $arResult = array();

  $iProductQuantity = GetProductQuantity($PRODUCT_ID);
  if ($iProductQuantity<=0)
    return $arResult;    // товар кончился, возвращаем пустой массив

  $arResult = array(
    "PRODUCT_PRICE_ID" => 0,
    "PRICE" => 125.2,
    "CURRENCY" => "RUB",
    "WEIGHT" => 530,
    "NAME" => "Чемодан кожаный",
    "CAN_BUY" => "Y"
  );

  if (IntVal($QUANTITY)>0 && ($iProductQuantity-$QUANTITY)<0)
    $arResult["QUANTITY"] = $iProductQuantity;    // товара осталось
                     // меньше, чем в корзине, поэтому уменьшаем
                     // количество товара в корзине

  return $arResult;
}
?>

Для оформления заказа

Функция обратного вызова для оформления заказа вызывается (если установлена) в момент оформления заказа на данный товар. Например, если отслеживается количество оставшихся в магазине единиц товара, то использование функции обратного вызова заказа позволяет соответственно уменьшить количество оставшихся в магазине единиц товара. В поле ORDER_CALLBACK_FUNC записывается только имя функции обратного вызова заказа. Для некоторых модулей функции обратного вызова заказа уже написаны (например, для модуля catalog функция обратного вызова заказа называется CatalogBasketOrderCallback($PRODUCT_ID, $QUANTITY, $renewal = "N", $intUserID = 0, $strSiteID = false))

void ORDER_CALLBACK_FUNC(
 int PRODUCT_ID,
 int QUANTITY,
 char renewal,
 int $intUserID ,
 string $strSiteID]

);

Функция вызывается на каждый товар в заказе. В случае если функция возвращает не пустой массив считается, что товар можно купить он попадает в заказ, если возвращает пустой массив, товар в заказ не попадает. Если функция ничего не возвращает или возвращает не массив, товар также попадает в заказ.

Параметры функции обратного вызова заказа

Название | Описание
PRODUCT_ID | Код товара, находящегося в корзине.
QUANTITY | Количество товаров в корзине.
renewal | Равен "Y", если функция вызывается для продления подписки, и "N" в остальных случаях.
$intUserID* | ID пользователя. Если не задан, то берется текущий.
$strSiteID* | Сайт, для которого идет работа с корзиной. Если параметр равен false, то берется текущий сайт.

* - параметры доступны, начиная с версии 12.0.

Пример создания функции обратного вызова заказа

<?
function MyBasketOrderCallback($PRODUCT_ID, $QUANTITY)
{
   UpdateProductQuantity($PRODUCT_ID, $QUANTITY);
}
?>

Для отмены заказа

Функция обратного вызова для отмены заказа вызывается при отмене или удалении заказа. Она служит как правило для возвращения в продажу зарезервированого для заказа количества товара. В поле CANCEL_CALLBACK_FUNC записывается только имя функции обратного вызова заказа. Для некоторых модулей функции обратного вызова заказа уже написаны (например, для модуля catalog функция обратного вызова заказа называется CatalogBasketCancelCallback($PRODUCT_ID, $QUANTITY, $bCancel))

void CANCEL_CALLBACK_FUNC(
   int PRODUCT_ID,
int QUANTITY,
bool bCancel
);

Функция не возвращает значений.

Параметры функции обратного вызова заказа.

PRODUCT_ID равен true, если отменяется заказ, и false, если отменяется.

Название | Описание
PRODUCT_ID | Код товара, находящегося в корзине.
QUANTITY | Количество товаров в корзине.
bCancel | true, если отменяется заказ, и false, если отменяется.
Пример создания функции обратного вызова заказа

function MyBasketCancelCallback($PRODUCT_ID, $QUANTITY, $bCancel)
{
    $PRODUCT_ID = IntVal($PRODUCT_ID);
    $QUANTITY = IntVal($QUANTITY);
    $bCancel = ($bCancel ? True : False);

    if ($bCancel)
        UpdateProductQuantity($PRODUCT_ID, -$QUANTITY);
    else
        UpdateProductQuantity($PRODUCT_ID, $QUANTITY);
}

При разрешении доставки

Функция обратного вызова при разрешении доставки вызывается при разрешении доставки заказа. Она может служить для привязки пользователя к каким-либо группам пользователей, для начисления на счет пользователя каких-либо сумм и для других действий, которые должны произойти в момент выполнения заказа. В поле PAY_CALLBACK_FUNC записывается только имя функции обратного вызова. Для некоторых модулей функции обратного вызова заказа уже написаны (например, для модуля catalog функция обратного вызова заказа называется CatalogPayOrderCallback($productID, $userID, $bPaid, $orderID))

array PAY_CALLBACK_FUNC(
    int productID,
 int userID,
 bool bPaid,
 int orderID
);

Функция может вернуть одно из следующих значений:

  • массив для вставки в продление заказа;
  • true, если функция отработала успешно, но вставлять в продление ничего не надо;
  • false, если функция во время работы функции произошли ошибки.

Параметры функции обратного вызова при разрешении доставки

Название | Описание
productID | Код товара, находящегося в корзине.
userID | Код пользователя, осуществившего заказ.
bPaid | true, если доставка заказа разрешена, и false, если запрещена.
orderID | Код заказа.
Пример создания функции обратного вызова

function MyBasketPayOrderCallback($productID, $userID, $bPaid, $orderID)
{
    global $DB;

    $productID = IntVal($productID);
    $userID = IntVal($userID);
    $bPaid = ($bPaid ? True : False);
    $orderID = IntVal($orderID);

    if ($userID <= 0)
        return False;

    if ($orderID <= 0)
        return False;

    if (!array_key_exists($productID, $GLOBALS["arMP3Sums"]))
        return False;

    if (!($arOrder = CSaleOrder::GetByID($orderID)))
        return False;

    $currentPrice = 10;
    $currentCurrency = "USD";

    if (!CSaleUserAccount::UpdateAccount($userID,
                                         ($bPaid ? $currentPrice : -$currentPrice),
                                         $currentCurrency, "MANUAL", $orderID))
        return False;

    return True;
}


Добавление в корзину

Внимание! Для работы с корзиной рекомендуется использовать методы ядра D7 [image].

Модуль торгового каталога включает в себя функции-оболочки для работы с модулем продаж:

Add2Basket

int Add2Basket(  int PRICE_ID[,
 int QUANTITY = 1[,
 array arRewriteFields = array()[,
 array arProductParams = array()]]]
);

Функция добавляет в корзину товар с кодом цены PRICE_ID в количестве QUANTITY единиц (по умолчанию одну штуку) и возвращает код позиции товара в корзине. Функция является оберткой над CSaleBasket::Add, но при этом размещена в модуле Торгового каталога.

Параметры функции

Параметр | Описание
PRICE_ID | Код цены товара.
QUANTITY | Количество добавляемых единиц товара (по умолчанию - одна штука)
arRewriteFields | Массив ключей для класса корзины соответствует одноимённому массиву класса CSaleBasket, за исключением ключа module_id.
arProductParams Массив, содержащий перечень свойств товара, добавленного в корзину. Ключи:
  • NAME - название свойства;
  • CODE - символьный код свойства;
  • VALUE - значение свойства;
  • SORT - сортировка.

Примечание: до версии 11.0.2 элементы массива пронумерованы непрерывно, начиная с нуля.

Возвращаемое значение

Код вставленной в корзину записи или False в случае ошибки.

Возможные ошибки:

  • не установлен модуль Интернет-магазин;
  • попытка поискового бота добавить товар в корзину (только при наличии модуля Веб-аналитика и вычисления бота на основе UserAgent);
  • для указанного количества отсутствует цена либо нет типов цен, по которым пользователь может покупать;
  • нет прав на чтение элемента инфоблока, цена которого добавляется в корзину.

Пример использования

<?
if (CModule::IncludeModule("catalog"))
{
    if (($action == "ADD2BASKET" || $action == "BUY") && IntVal($PRICE_ID)>0)
    {
        Add2Basket(
                $PRICE_ID,
                2,
                array(),
                array(
                        array("NAME" => "Цвет", "CODE" => "CLR", "VALUE" => "красный"),
                        array("NAME" => "Размер", "VALUE" => "25")
                    )
            );
        if ($action == "BUY")
            LocalRedirect("basket.php");
    }
}
?>

Add2BasketByProductID

int Add2BasketByProductID( int PRODUCT_ID[, int QUANTITY = 1[, array arProductParams = array()]]
);

После версии 11.5.7 доступен новый вариант вызова (старый вызов сохраняет свою работоспособность):

int Add2BasketByProductID( $PRODUCT_ID, $QUANTITY = 1, $arRewriteFields = array(), $arProductParams = false);

Функция добавляет в корзину товар с кодом PRODUCT_ID в количестве QUANTITY единиц (по умолчанию одну штуку) и возвращает код позиции товара в корзине. Функция является оберткой над CSaleBasket::Add, но при этом размещена в модуле Торгового каталога.

Параметры функции

Параметр | Описание | С версии
PRODUCT_ID | Код товара.
QUANTITY | Количество добавляемых единиц товара (по умолчанию - одна штука)
arRewriteFields | Массив ключей для класса корзины соответствует одноимённому массиву класса CSaleBasket. | 11.5.7
arProductParams Массив, содержащий перечень свойств товара, добавленного в корзину. Ключи:
  • NAME - название свойства;
  • CODE - символьный код свойства;
  • VALUE - значение свойства;
  • SORT - сортировка.

Примечание: до версии 11.0.2 элементы массива пронумерованы непрерывно, начиная с нуля.

 11.5.7

Примечание: если при использовании функции необходимо передать массив arRewriteFields, но при этом массив arProductParams передавать не нужно, то массив свойств товара следует передать пустым, например:
Add2BasketByProductID(
  $PRODUCT_ID,
  $QUANTITY,
  array('ORDER_ID' => intval($arItems['ORDER_ID'])),
  array()
);

Возвращаемое значение

Код вставленной в корзину записи или False в случае ошибки.

Возможные ошибки:

  • не установлен модуль Интернет-магазин;
  • попытка поискового бота добавить товар в корзину (только при наличии модуля Веб-аналитика и вычисления бота на основе UserAgent);
  • отсутствующая цена или невозможность покупать по данному типу цен для пользователя;
  • нет прав на чтение элемента инфоблока, цена которого добавляется в корзину.

Пример использования

<?
if (CModule::IncludeModule("catalog"))
{
    if (($action == "ADD2BASKET" || $action == "BUY") && IntVal($PRODUCT_ID)>0)
    {
        Add2BasketByProductID(
                $PRODUCT_ID,
                2,
                array(
                        array("NAME" => "Цвет", "CODE" => "CLR", "VALUE" => "красный"),
                        array("NAME" => "Размер", "VALUE" => "25")
                    )
            );
        if ($action == "BUY")
            LocalRedirect("basket.php");
    }
}
?>

Примечание: пример создан для старого формата записи. Совместимость с новым сохранена.

Смотрите также

  • Взаимодействие торгового каталога и магазина


Показ цен

Описание и список функций

Для того чтобы показать информацию модуля торгового каталога в публичной части сайта, необходимо воспользоваться функциями для работы с модулем торгового каталога. Обратите внимание, что в модуле торгового каталога товаром называется элемент информационного блока, т.е. когда указывается, что функция принимает на вход код товара, то в терминах информационных блоков этой функции нужно передать код элемента информационного блока.

Функция | Описание | Устарела с версии
CDBResult GetCatalogGroups(string by, string order) | Возвращает список типов цен, отсортированный по полю by в порядке order. | 11.0.0
array GetCatalogGroup(int CATALOG_GROUP_ID) | Возвращает тип цены кодом CATALOG_GROUP_ID. | 11.0.0
array GetCatalogProductPrice(int PRODUCT_ID, int CATALOG_GROUP_ID) | Возвращает цену типа CATALOG_GROUP_ID для товара с кодом PRODUCT_ID. | 11.0.0
array GetCatalogProductPriceList(int PRODUCT_ID, string by, string order) | Возвращает массив цен для товара PRODUCT_ID, отсортированный по полю by в порядке order. | 11.0.0
array GetCatalogProduct(int PRODUCT_ID) | Возвращает товар с кодом PRODUCT_ID. | 11.0.0
string FormatCurrency(double PRICE, string CURRENCY) | Форматирует число (цену) PRICE в соответствии с форматом, заданным для валюты CURRENCY. | 9.0.0

GetCatalogGroups

CDBResult
GetCatalogGroups(
 string by,
 string order
);

Функция возвращает список типов цен, отсортированный по полю by в порядке order.

Важно! Функция является устаревшей, начиная с версии 11.0.0.

Параметры функции

Параметр | Описание
by | Поле для сортировки, может принимать одно из следующих значений SORT - по полю "Сортировка" (по умолчанию); NAME - по полю "Название"; ID - по полю "Код"
order | Поле для направления сортировки, может принимать одно из следующих значений ASC - в порядке увеличения величины (по умолчанию); DESC - в порядке уменьшения величины.

Возвращаемые значения

Упорядоченный набор записей типа CDBResult, каждая из которых имеет следующую структуру:

Параметр | Описание
ID | Код типа цен.
NAME | Внутреннее название типа цен.
BASE | Y - для базового типа цен, N - для всех остальных.
SORT | Поле "Сортировка" типа цен.
NAME_LANG | Название типа цен для текущего сайта.
CAN_ACCESS | Y - текущий пользователь может просматривать цены этого типа, N - цены этого типа должны быть скрыты от текущего пользователя.
CAN_BUY | Y - текущий пользователь может покупать товары по ценам этого типа, N - текущий пользователь не может покупать товары по ценам этого типа.

GetCatalogGroup

array
GetCatalogGroup(
 int CATALOG_GROUP_ID
);

Функция возвращает тип цены кодом CATALOG_GROUP_ID.

Важно! Функция является устаревшей, начиная с версии 11.0.0.

Параметры функции

Параметр | Описание
CATALOG_GROUP_ID | Код типа цены.

Возвращаемые значения

Массив той же структуры, что и каждая запись набора, возвращаемого функцией CDBResult GetCatalogGroups(string by, string order).

GetCatalogProductPrice

array
GetCatalogProductPrice(
 int PRODUCT_ID,
 int CATALOG_GROUP_ID
);

Функция возвращает цену типа CATALOG_GROUP_ID для товара с кодом PRODUCT_ID.

Важно! Функция является устаревшей, начиная с версии 11.0.0.

Параметры функции

Параметр | Описание
PRODUCT_ID | Код продукта.
CATALOG_GROUP_ID | Тип цены.

Возвращаемые значения

Массив следующей структуры:

Параметр | Описание
ID | Код цены.
PRODUCT_ID | Код продукта.
EXTRA_ID | Код наценки.
CATALOG_GROUP_ID | Код типа цены.
PRICE | Цена.
CURRENCY | Валюта.
CATALOG_GROUP_NAME | Название типа цены для текущего сайта.
CAN_ACCESS | Y - текущий пользователь может просматривать эту цену, N - эта цена должна быть скрыта от текущего пользователя.
CAN_BUY | Y - текущий пользователь может купить товар по этой цене, N - текущий пользователь не может купить товар по этой цене.

GetCatalogProductPriceList

array
GetCatalogProductPriceList(
 int PRODUCT_ID,
 string by,
 string order
);

Функция возвращает массив цен для товара PRODUCT_ID, отсортированый по полю by в порядке order.

Важно! Функция является устаревшей, начиная с версии 11.0.0.

Параметры функции

Параметр | Описание
PRODUCT_ID | Код товара.
by Поле для сортировки, может принимать одно из следующих значений
ID - по полю "Код" (по умолчанию);
SORT - по полю "Сортировка" типа цены;
CURRENCY - по полю "Валюта";
PRICE - по полю "Цена";
CATALOG_GROUP_ID - по полю "Код типа цены"
order Поле для направления сортировки, может принимать одно из следующих значений
ASC - в порядке увеличения величины (по умолчанию);
DESC - в порядке уменьшения величины.

Возвращаемые значения

Массив, каждый элемент которого является массивом той же структуры, что и массив, возвращаемый функцией array GetCatalogProductPrice(int PRODUCT_ID,
int CATALOG_GROUP_ID)

GetCatalogProduct

array
GetCatalogProduct(
 int PRODUCT_ID
);

Функция возвращает товар с кодом PRODUCT_ID.

Важно! Функция является устаревшей, начиная с версии 11.0.0.

Параметры функции

Параметр | Описание
PRODUCT_ID | Код товара.

Возвращаемые значения

Массив следующей структуры:

Параметр | Описание
ID | Код товара.
QUANTITY | Количество товара.
QUANTITY_TRACE | До версии 12.5.0 параметр назывался "уменьшать ли количество при заказе" (Y - да, N - нет). С версии 12.5.0 параметр называется "включить количественный учет" (Y - да, N - нет, D - значение берется из настроек модуля).
WEIGHT | Вес товара.

FormatCurrency

string
FormatCurrency(
 double PRICE,
 string CURRENCY
);

Функция форматирует число (цену) PRICE в соответствии с форматом, заданным для валюты CURRENCY.

Важно! Функция является устаревшей, начиная с версии 9.0.0.

Параметры функции

Параметр | Описание
PRICE | Число, цена.
CURRENCY | Валюта.

Возвращаемое значение

Строка с числом (ценой), отформатированным в соответствии с форматом валюты.

Примеры использования функций торгового каталога

<?
// Вывод типов цен, доступных для просмотра
// для данного посетителя
$db_res = GetCatalogGroups(($b="SORT"), ($o="ASC"));
while ($res = $db_res->Fetch())
{
  if ($res["CAN_ACCESS"]=="Y")
  {
    echo $res["NAME_LANG"];
  }
}
?>

<?
// Вывод цены типа $TYPE_ID для товара $PRODUCT_ID
$arProduct = GetCatalogProduct($PRODUCT_ID);
if ($res = GetCatalogProductPrice($PRODUCT_ID, $TYPE_ID))
{
  if ($res["CAN_ACCESS"]=="Y")
  {
    echo FormatCurrency($res["PRICE"], $res["CURRENCY"]);
    echo " (цена типа ".$res["CATALOG_GROUP_NAME"].") ";
    // Если данному посетителю товар $PRODUCT_ID доступен
    // для покупки по цене типа $TYPE_ID и либо товар ещё
    // есть, либо его количество не отслеживается, то
    // можно вывести приглашение к покупке
    if ($res["CAN_BUY"]=="Y" && (IntVal($arProduct["QUANTITY"])>0 || $arProduct["QUANTITY_TRACE"]!="Y"))
    {
      echo "Можно купить";
    }
  }
}
?>

<?
// Вывод списка доступных для просмотра цен товара $PRODUCT_ID
$arProduct = GetCatalogProduct($PRODUCT_ID);
$arPrice = GetCatalogProductPriceList($PRODUCT_ID, "SORT", "ASC");
$bCanBuy = False;
for ($i = 0; $i<count($arPrice); $i++)
{
  if ($arPrice[$i]["CAN_ACCESS"]=="Y")
  {
    if ($arPrice[$i]["CAN_BUY"]=="Y" && (IntVal($arProduct["QUANTITY"])>0 || $arProduct["QUANTITY_TRACE"]!="Y"))
      $bCanBuy = True;
    echo $arPrice[$i]["CATALOG_GROUP_NAME"].": ";
    echo FormatCurrency($arPrice[$i]["PRICE"], $arPrice[$i]["CURRENCY"])."<br>";
  }
}
// Если среди цен данного товара были цены, которые доступны
// данному посетителю для покупки и либо товар ещё
// есть, либо его количество не отслеживается, то
// можно вывести приглашение к покупке
if ($bCanBuy)
{
  echo "Можно купить";
}
?>


Шаблоны экспорта (для разработчиков)

Информация, содержащаяся в этом разделе, является дополнительной к описанию шаблонов экспорта в разделе Экспорт. Детальное описание [image].

Шаблоны экспорта

Шаблоны должны быть расположены в каталоге /bitrix/php_interface/include/catalog_export/. Предустановленные шаблоны содержат только подключение реальных скриптов. Пользовательские шаблоны должны содержать весь код, который необходим для экспорта. В качестве шаблонов система предлагает все файлы этого каталога, оканчивающиеся на _run.php. Если в этом каталоге находится файл с таким же именем, но оканчивающийся на _setup.php, то система считает этот файл файлом дополнительных настроек (мастером экспорта) для соответствующего шаблона экспорта.

Если в начале шаблона экспорта находится тег <title> (возможно, в PHP комментариях), то содержимое этого тега принимается за название шаблона экспорта. В противном случае названием шаблона становится имя его файла.

Вы можете добавить в каталог /bitrix/php_interface/include/catalog_export/ любое количество произвольных шаблонов экспорта.

Шаблон экспорта

Шаблон экспорта представляет собой обычный PHP скрипт, в котором нет вывода данных. В этом скрипте доступны все стандартные переменные, а так же все переменные, которые установлены в мастере экспорта.

Шаблон экспорта может установить переменную $strExportErrorMessage, содержащую текстовое описание ошибок, которые произошли при выполнении экспорта. В этом случае система будет интерпретировать экспорт как неудачный и выведет содержимое переменной $strExportErrorMessage на экран.

Если после выполнения экспорта системе будет доступна переменная $SETUP_FILE_NAME, то система будет интерпретировать содержимое этой переменной как путь к файлу данных, в который был произведен экспорт. Путь может быть относительным или абсолютным. Система по окончании экспорта отобразит полный путь к файлу данных на экране.

Пример простейшего шаблона экспорта

<?
//<title>Простейший</title>
// Выведем в файл данных название выбраного инфоблока
$strName = "";

// Переменная $IBLOCK_ID должна быть установлена
// мастером экспорта или из профиля
// Переменная $SETUP_FILE_NAME должна быть установлена
// мастером экспорта или из профиля
$IBLOCK_ID = IntVal($IBLOCK_ID);

// Модули каталога и инфоблоков уже подключены
$db_res = CIBlock::GetList(Array(),
                           Array("ID"=>IntVal($IBLOCK_ID))
                           );
if ($ar_res = $db_res->Fetch())
{
    $strName = $ar_res["NAME"];
}

if (strlen($strName)>0)
{
    if ($fp = @fopen($_SERVER["DOCUMENT_ROOT"].$SETUP_FILE_NAME,
                     'wb'))
    {
        @fwrite($fp, $strName);
        @fclose($fp);
    }
    else
    {
        $strExportErrorMessage = "Ошибка открытия файла данных на запись";
    }
}
else
{
    $strExportErrorMessage = "Информационный блок не найден";
}
?>

Мастер экспорта

Мастер экспорта служит для задания дополнительных параметров экспорта (выбор экспортируемых каталогов и групп, указание пути к файлу данных и т.п.). Если дополнительные параметры шаблону экспорта не нужны, то мастер экспорта создавать не обязательно.

Мастер экспорта может быть многошаговым. В этом случае следует использовать переменную $STEP, содержащую текущий шаг мастера. На следующий шаг переменная $STEP должна переходить с увеличенным соответственно значением.

На последнем шаге переменная $FINITE должна быть установлена в значение True. Система воспринимает эту ситуацию как конец мастера экспорта и передает управление на шаблон экспорта или на сохранение профиля.

После окончания мастера экспорта должна быть доступна переменная $SETUP_FIELDS_LIST, содержащая список имен переменных, устанавливаемых мастером экспорта. Имена переменных должны быть разделены запятыми.

Если в качестве действия было вызвано создание профиля экспорта (т.е. переменная $ACTION равна EXPORT_SETUP), то после окончания мастера экспорта должна быть доступна переменная $SETUP_PROFILE_NAME, содержащая имя создаваемого профиля.

В качестве переменной, содержащей путь к файлу данных, в который производится экспорт, рекомендуется использовать переменную $SETUP_FILE_NAME. В этом случае после окончания экспорта система подскажет пользователю полный путь к файлу данных.

Пример простейшего мастера экспорта

<?
$strMyError = "";

if ($STEP>1)
{
    $IBLOCK_ID = IntVal($IBLOCK_ID);
    if ($IBLOCK_ID <= 0)
    {
        $strMyError .= "Инфоблок не выбран.<br>";
    }

    if (strlen($SETUP_FILE_NAME) <= 0)
        $strMyError .= "Не указан файл данных.<br>";

    if ($ACTION=="EXPORT_SETUP" && strlen($SETUP_PROFILE_NAME)<=0)
        $strMyError .= "Не указано имя профиля<br>";

    if (strlen($strMyError) > 0)
    {
        $STEP = 1;
    }
}

echo ShowError($strMyError);

if ($STEP==1)
{
    ?>
    <form method="post" action="<?echo $APPLICATION->GetCurPage() ?>">
<? echo bitrix_sessid_post(); ?>
        Выберите инфоблок:
        <select name="IBLOCK_ID">
        <?
        $db_res = CIBlock::GetList(Array("iblock_type"=>"asc",
                                   "name"=>"asc"));
        while ($res = $db_res->Fetch())
        {
            ?>
            <option value="<?echo $res["ID"] ?>"
            <?if (IntVal($res["ID"]) == $IBLOCK_ID)
                  echo " selected";?>><?echo $res["NAME"];?></option>
            <?
        }
        ?>
        </select><br>

        Укажите имя файла данных:
        <input type="text" name="SETUP_FILE_NAME"
         value="<?echo (strlen($SETUP_FILE_NAME)>0) ?
                        htmlspecialchars($SETUP_FILE_NAME) :
                        "/upload/file.csv" ?>" size="50">
        <br>

        <?if ($ACTION=="EXPORT_SETUP"):?>
            Имя профиля:
            <input type="text" name="SETUP_PROFILE_NAME"
             value="<?echo htmlspecialchars($SETUP_PROFILE_NAME)?>"
             size="30">
            <br>
        <?endif;?>

        <?//Следующие переменные должны быть обязательно установлены?>
        <input type="hidden" name="lang" value="<?echo $lang ?>">
        <input type="hidden" name="ACT_FILE"
         value="<?echo htmlspecialchars($_REQUEST["ACT_FILE"]) ?>">
        <input type="hidden" name="ACTION" value="<?echo $ACTION ?>">
        <input type="hidden" name="STEP" value="<?echo $STEP + 1 ?>">
        <input type="hidden" name="SETUP_FIELDS_LIST"
         value="IBLOCK_ID,SETUP_FILE_NAME">
        <input type="submit"
         value="<?echo ($ACTION=="EXPORT") ?
                        "Экспортировать" :
                        "Сохранить";?>">
    </form>
    <?
}
elseif ($STEP==2)
{
    // Второй шаг не нужен, говорим "передать управление дальше"
    $FINITE = True;
}
?>


Шаблоны импорта (для разработчиков)

Шаблоны импорта

Шаблоны должны быть расположены в каталоге /bitrix/php_interface/include/catalog_import/. Предустановленные шаблоны содержат только подключение реальных скриптов. Пользовательские шаблоны должны содержать весь код, который необходим для импорта. В качестве шаблонов система предлагает все файлы этого каталога, оканчивающиеся на _run.php. Если в этом каталоге находится файл с таким же именем, но оканчивающийся на _setup.php, то система считает этот файл файлом дополнительных настроек (мастером импорта) для соответствующего шаблона импорта.

Если в начале шаблона импорта находится тег <title> (возможно, в PHP комментариях), то содержимое этого тега принимается за название шаблона импорта. В противном случае названием шаблона становится имя его файла.

Вы можете добавить в каталог /bitrix/php_interface/include/catalog_import/ любое количество произвольных шаблонов импорта.

Шаблон импорта

Шаблон импорта представляет собой обычный PHP скрипт, в котором нет вывода данных. В этом скрипте доступны все стандартные переменные, а так же все переменные, которые установлены в мастере импорта.

С помощью переменной $URL_DATA_FILE определяется путь к файлу с данными для импорта.

Шаблон импорта может установить переменную $strImportErrorMessage, содержащую текстовое описание ошибок, которые произошли при выполнении импорта. В этом случае система будет интерпретировать импорт как неудачный и выведет содержимое переменной $strImportErrorMessage на экран.

Пример шаблона импорта

В качестве примера шаблона импорта вы можете ознакомиться с шаблоном импорта Import CSV (new) [image] [image], который доступен в файле/bitrix/modules/catalog/load_import/csv_new_run.php.

Важно! Изменять код этого файла нельзя, вы можете его скопировать в собственный файл с шаблоном импорта.

Мастер импорта

Мастер импорта служит для задания дополнительных параметров импорта (выбор типа инфоблока, указание действия с отсутствующими товарами в файле и т.п.). Если дополнительные параметры шаблону импорта не нужны, то мастер импорта создавать не обязательно.

Мастер импорта может быть многошаговым. В этом случае следует использовать переменную $STEP, содержащую текущий шаг мастера. На следующий шаг переменная $STEP должна переходить с увеличенным соответственно значением.

На последнем шаге переменная $FINITE должна быть установлена в значение true. Система воспринимает эту ситуацию как конец мастера импорта и передает управление на шаблон импорта или на сохранение профиля.

После окончания мастера импорта должна быть доступна переменная $SETUP_FIELDS_LIST, содержащая список имен переменных, устанавливаемых мастером импорта. Имена переменных должны быть разделены запятыми.

Если в качестве действия было вызвано создание профиля импорта (т.е. переменная $ACTION равна IMPORT_SETUP), то после окончания мастера импорта должна быть доступна переменная $SETUP_PROFILE_NAME, содержащая имя создаваемого профиля.

Пример мастера импорта

Аналогично, в качестве примера мастера импорта вы можете ознакомиться с мастером импорта Import CSV (new) [image] [image], который доступен в файле /bitrix/modules/catalog/load_import/csv_new_setup.php.

Важно! Изменять код этого файла нельзя, вы можете его скопировать в собственный файл с мастером импорта.


Кастомизация импорта из CommerceML, каталог

Описание

Формат обмена коммерческой информацией CommerceML имеет строго определённую структуру. Поэтому импорт данных из этого формата на сайт производится без дополнительных вопросов и настроек. Между тем при использовании 7-й версии 1с есть потребность несколько изменить логику импорта и/или физический смысл некоторых полей файла CommerceML. В этом случае для изменения логики загрузки данных можно воспользоваться специальным механизмом "мутации" данных.

Примечание. Подробно структура CommerceML описана на официальном сайте стандарта http://www.commerceml.ru

Допускается мутация свойств товаров, параметров и свойств элемента инфоблока, который является товаром, а так же параметров товара как такового. Мутация каждого из элементов осуществляется независимо с помощью специальных функций, которые должны быть реализованы в файле
/bitrix/php_interface/include/1c_mutator.php
(файл необходимо создать, если его ещё нет).

Мутация свойств

function catalog_property_mutator_1c();

Для мутации свойств необходимо создать функцию с таким именем и реализовать в ней логику изменения свойств товаров. Эта функция будет вызвана непосредственно после создания (обновления) всех свойств из файла CommerceML.
В функции можно получить доступ к следующим переменным, которые могут / должны быть использованы и / или изменены:
$IBLOCK_ID - код инфоблока,
$tmpid - код текущего импорта,
$strError - строка для оповещения об ошибке,
$STT_PROP_ERROR - счетчик ошибок при создании свойств,
$STT_PROP_ADD - счетчик успешно созданных свойств,
$STT_PROP_UPDATE - счетчик успешно обновленных свойств,
$arProperties - массив соответствий между внешним и внутренним кодами свойства, ключами в котором являются внешние коды свойств, а значениями - соответствующие внутренние; этот массив должен быть соответствующим образом изменен при изменении набора свойств.

Пример использования

<?
// Создадим функцию, которая будет добавлять или обновлять свойство
// "Оригинальный номер", которого нет в CommerceML файле
function catalog_property_mutator_1c()
{
   global $IBLOCK_ID, $tmpid, $strError, $STT_PROP_ERROR, $STT_PROP_ADD, $STT_PROP_UPDATE, $arProperties;

   $ibp = new CIBlockProperty;
   $PROP_XML_ID = "ORIGINOMER";
   $PROP_NAME = "Оригинальный номер";
   $PROP_MULTIPLE = "N";
   $PROP_DEF = "";

   $res = CIBlock::GetProperties($IBLOCK_ID, Array(), Array("XML_ID"=>$PROP_XML_ID, "IBLOCK_ID"=>$IBLOCK_ID));
   $bNewRecord_tmp = False;
   if ($res_arr = $res->Fetch())
   {
      $PROP_ID = $res_arr["ID"];
      $res = $ibp->Update($PROP_ID,
         Array(
            "NAME" => $PROP_NAME,
            "MULTIPLE" => $PROP_MULTIPLE,
            "DEFAULT_VALUE" => $PROP_DEF,
            "TMP_ID" => $tmpid
            )
         );
   }
   else
   {
      $bNewRecord_tmp = True;
      $arFields = Array(
         "NAME" => $PROP_NAME,
         "ACTIVE" => "Y",
         "SORT" => "500",
         "DEFAULT_VALUE" => $PROP_DEF,
         "XML_ID" => $PROP_XML_ID,
         "TMP_ID" => $tmpid,
         "MULTIPLE" => $PROP_MULTIPLE,
         "IBLOCK_ID" => $IBLOCK_ID
      );

      $PROP_ID = $ibp->Add($arFields);
      $res = (IntVal($PROP_ID)>0);
   }

   if (!$res)
   {
      $strError .= "Ошибка загрузки свойства [".$PROP_ID."] \"".$PROP_NAME."\" (".$PROP_XML_ID."): ".$ibp->LAST_ERROR.".<br>";
      $STT_PROP_ERROR++;
   }
   else
   {
      if ($bNewRecord_tmp) $STT_PROP_ADD++;
      else $STT_PROP_UPDATE++;

      $arProperties[$PROP_XML_ID] = $PROP_ID;
   }
}
?>

Мутация параметров и свойств товара

array
function  catalog_product_mutator_1c( array &arLoadProduct, object &xProductNode, bool bInsert );

Для мутации параметров и свойств товара необходимо создать функцию с таким именем и реализовать в ней логику изменения параметров товаров. Эта функция будет вызываться для каждого товара непосредственно перед его сохранением.
В функции можно получить доступ к следующим переменным:
$arProperties - массив соответствий между внешним и внутренним кодами свойства, ключами в котором являются внешние коды свойств, а значениями - соответствующие внутренние.

Параметры функции

Параметр | Описание
arLoadProduct Массив параметров товара, которые были бы сохранены, если бы не было функции мутации. Типичный массив имеет структуру
Array(
"MODIFIED_BY" => код текущего пользователя,
"IBLOCK_SECTION" => массив групп, в которых лежит товар,
"IBLOCK_ID" => код информационного блока,
"NAME" => "название товара",
"XML_ID" => "внешний код товара",
"TMP_ID" => "код текущего импорта",
"PROPERTY_VALUES" => массив свойств товара
);
Структура совпадает со структурой массива, который используется для сохранения элемента информационного блока. Для более подробного описания смотрите соответствующую статью из API модуля инфоблоков.
xProductNode | Объект класса XMLNode, указывающий на элемент CommerceML файла, который соответствует текущему товару.
bInsert | Флаг, который имеет значение True, если это новый товар, и False - в противном случае.

Возвращаемое значение

Функция должна вернуть новый массив параметров для сохранения товара

Пример использования

<?
// Создадим функцию, которая будет обновлять нестандартное свойство
// "Оригинальный номер", значения которого идут как атрибуты элемента
// Товар в CommerceML файле, и делать товар активным
// Кроме того запишем "Оригинальный номер" без пробелов в поле описания
// товара для предварительного просмотра
function catalog_product_mutator_1c(&$arLoadProduct, &$xProductNode, $bInsert)
{
   global $arProperties;

   $sOriginomer = $xProductNode->GetAttribute("ОригинальныйНомер");
   $sOriginomer1 = preg_replace("/\s/i", "", $sOriginomer);

   $arLoadProduct["PREVIEW_TEXT"] = $sOriginomer1;
   $arLoadProduct["PROPERTY_VALUES"][$arProperties["ORIGINOMER"]][] = $sOriginomer;
   return $arLoadProduct;
}
?>

Мутация параметров товара как такового

Пример функции

 array function catalog_offer_mutator_1c(
 array &arLoadOffer,
object &xOfferNode
    );

Для мутации параметров товара как такового необходимо создать функцию с таким именем и реализовать в ней логику изменения параметров товара. Эта функция будет вызываться для каждого товара непосредственно перед сохранением параметров.

Параметры функции

Параметр | Описание
arLoadOffer | Массив параметров товара как такового, которые были бы сохранены, если бы не было функции мутации. Типичный массив имеет структуру array( "ID" => код товара, которому принадлежит предложение, "QUANTITY" => количество товара на складе ) Структура совпадает со структурой массива, который используется для сохранения параметров товара в каталоге. Для более подробного описания смотрите соответствующую статью из API модуля Торгового каталога.
xOfferNode | Объект класса XMLNode, указывающий на элемент CommerceML файла, который соответствует текущему предложению.

Возвращаемое значение

Функция должна вернуть новый массив параметров для сохранения свойств товара как такового

Пример использования

<?
// Установим флаг "Уменьшать количество товаров при заказе"
function catalog_offer_mutator_1c(&$arLoadOffer, &$xOfferNode)
{
   $arLoadOffer["QUANTITY_TRACE"] = "Y";
   return $arLoadOffer;
}
?>


Структура таблиц модуля торгового каталога

Поля таблиц

Инфоблоки, привязанные к модулю Торговый каталог

Поле | Описание | Тип | Обяз. | Умолч. | Комментарии
IBLOCK_ID | Код (ID) информационного блока | Int | да | - | поле уникальное, попытка добавить больше одной записи с одинаковым IBLOCK_ID вызовет ошибку базы данных
YANDEX_EXPORT | Флаг (Y/N) экспорта в Яндекс.Товары с помощью агента | Char(1) | нет | N |
SUBSCRIPTION | Флаг (Y/N) продажи контента | Char(1) | нет | N |
VAT_ID | Код (ID) ставки НДС | Int | нет | 0 |
PRODUCT_IBLOCK_ID | Для инфоблока торговых предложений (SKU) содержит код (ID) инфоблока товаров | Int | нет | 0 | Может быть задано только вместе с SKU_PROPERTY_ID
SKU_PROPERTY_ID | Для инфоблока торговых предложений (SKU) содержит код (ID) свойства привязки торговых предложений к товарам | Int | нет | 0 | Свойство должно отвечать следующим требованиям: одиночное, тип - Привязка к товарам (SKU), привязано к инфоблоку PRODUCT_IBLOCK_ID. Может быть задано только вместе с PRODUCT_IBLOCK_ID.

Параметры товаров

Поле | Описание | Тип | Обяз. | Умолч. | Комментарии
ID Код (ID) продукта. int да - Совпадает с ID элемента из инфоблока - торгового каталога. При удалении записи из инфоблока удаляется и запись о параметрах товара.
QUANTITY Количество товара на складе double да - Поле хранит количество товара на складе. В совокупности с полем QUANTITY_TRACE позволяет вести учет количества для разрешения/запрещения покупки.
QUANTITY_TRACE | Флаг "уменьшать ли количество при заказе" (Y/N) | char(1) | да | N | Если поле содержит Y, при оформлении заказа поле QUANTITY уменьшается на количество товара в заказе.
AVAILABLE | Доступность товара к покупке | char(1) | нет | N | Обновляется автоматически.
TYPE Тип товара char(1) нет - Значения по умолчанию зависят от вида торгового каталога.
QUANTITY_RESERVED | Зарезервированное количество | double | нет | 0 | Значения по умолчанию зависят от вида торгового каталога.
BUNDLE Признак наличия набора char(1) нет - Обновляется автоматически.
WEIGHT | Вес единицы товара | double | да | 0
TIMESTAMP_X | Дата и время модификации записи | datetime | да | текущее
PRICE_TYPE Тип цены char(1) да S Используется для организации подписок. Варианты значений:
  • S - одноразовый платеж,
  • R - регулярные платежи,
  • T - пробная подписка
RECUR_SCHEME_TYPE Тип периода подписки char(1) да M Варианты значений:
  • "H" - час,
  • "D" - сутки,
  • "W" - неделя,
  • "M" - месяц,
  • "Q" - квартал,
  • "S" - полугодие,
  • "Y" - год
RECUR_SCHEME_LENGTH Длина периода подписки int нет - Продолжительность периода подписки. Единица продолжительности указана в RECUR_SCHEME_TYPE
TRIAL_PRICE_ID Код (ID) товара, для которого данный товар является пробным int нет - Используется для пробных товаров
WITHOUT_ORDER | Флаг "Продление подписки без оформления заказа" (Y/N) | char(1) | да | N | Используется для подписок
VAT_ID | Идентификатор ставки НДС, привязанной к товару | int | нет | 0
VAT_INCLUDED | Флаг "включен ли НДС в цену или нет" (Y/N) | char(1) | нет | Y

Типы цен

Поле | Описание | Тип | Обяз. | Умолч. | Комментарии
ID | Код (ID) типа цены | int | да | - |
NAME | Внутреннее (языконезависимое) название типа цены | char(100) | да | - | Название, не зависящее от языка сайта (админки)
BASE | Флаг "базовый тип цены" (Y/N) | char(1) | да | N | Значение Y может быть только у одного типа цен. Базовый тип необходим для использования функционала наценок.
SORT | Индекс сортировки в списке типов цен | int | да | 100 |

Языковые параметры типов цен

Поле | Описание | Тип | Обяз. | Умолч. | Комментарии
ID | Код (ID) записи в таблице | int | да | - |
CATALOG_GROUP_ID | Код (ID) типа цен | int | да |  |
LID | Код языка | char(3) | да |  |
NAME | Языкозависимое название | char(100) | нет |  |

Доступ к типам цен

Поле | Описание | Тип | Обяз. | Умолч. | Комментарии
ID | Код (ID) записи в таблице | int | да |  |
CATALOG_GROUP_ID | Код (ID) типа цен | int | да |  |
GROUP_ID | Код (ID) группы пользователей сайта | int | да |  | Группа пользователей, которая имеет право просматривать цены указанного типа либо покупать по ним. Уровень прав (просмотр/покупка) определяется значением поля BUY.
BUY | Флаг "покупка/просмотр" (Y/N) | char(1) | да | Y |

Цены (ценовые предложения)

Поле | Описание | Тип | Обяз. | Умолч. | Комментарии
ID | Код (ID) ценового предложения | int | да |  |
PRODUCT_ID | Код товара или торгового предложения (ID элемента инфоблока) | int | да |  |
EXTRA_ID | Код (ID) типа наценки | int | нет |  |
CATALOG_GROUP_ID | Код (ID) типа цен | int | да |  |
PRICE | Величина цены | decimal(18,2) | да |  |
CURRENCY | Код валюты цены | char(3) | да |  |
TIMESTAMP_X | Время модификации записи | datetime | да | текущее |
QUANTITY_FROM | Минимальное количество товара, на которое распространяется предложение | int | нет |  |
QUANTITY_TO | Максимальное количество товара, на которое распространяется предложение | int | нет |  |

Наценки

Поле | Описание | Тип | Обяз. | Умолч. | Комментарии
ID | Код (ID) наценки | int | да |  |
NAME | Название наценки | char(50) | да |  |
PERCENTAGE | Величина наценки в процентах | decimal(18,2) | да |  |

Скидки

Поле | Описание | Тип | Обяз. | Умолч. | Комментарии
ID | Код (ID) скидки | int | да
SITE_ID | Сайт, к которому привязана скидка | char(2) | да
ACTIVE | Флаг активности скидки (Y/N) | char(1) | да | Y
ACTIVE_FROM | Дата, с которой действует скидка | datetime | нет
ACTIVE_TO | Дата, до которой действует скидка | datetime | нет
RENEWAL | Флаг "Скидка на продление" (Y/N) | char(1) | да | N
NAME | Название скидки | char(255) | да
COUPON | char(20) | да
SORT | int | да | 100
VALUE_TYPE char(1) да P Варианты значений:
  • P - в процентах,
  • F - фиксированная величина
  • S - фиксированная цена
VALUE | decimal(18,4) | да | 0
CURRENCY | char(3) | да
TIMESTAMP_X | datetime | да | текущее
NOTES | char(255) | нет

Купоны скидок

Поле | Описание | Тип | Обяз. | Умолч. | Комментарии
ID | Код (ID) купона | Int | да | - | поле уникальное, попытка добавить больше одной записи с одинаковым ID вызовет ошибку базы данных
DISCOUNT_ID | Код (ID) скидки | Int | да | - |
ACTIVE | Флаг (Y/N) активности купона | Char(1) | да | Y | Если купон активен, то он может быть использован при покупке товара. Одноразовый купон после использования становится неактивным
COUPON | Сгенерированная последовательность символов, составляющая купон | Char(32) | да |  |
DATE_APPLY | Дата и время, когда купон был использован | DateTime | нет |  | Автоматически устанавливается после применения одноразового купона
ONE_TIME | Флаг (Y/N) одноразовости купона | Char(1) | да | Y | Одноразовый купон может быть использован лишь единожды
DESCRIPTION | Текстовый комментарий | Text | нет |  |


Доступность товара и возможность его покупки

До выхода обновления catalog 16.0.3 доступность товара рассчитывалась «на лету» при выборке из базы. Вследствие этого нельзя было получить доступность товара с торговыми предложениями. Сейчас доступность рассчитывается в момент изменения характеристик товара и сохраняется в базе.

Простой товар, комплект или торговое предложение считаются недоступным, если:

  • для него включен количественный учет
  • запрещена покупка при отсутствии
  • количество меньше либо равно нулю

Во всех остальных случаях товар доступен.

Товар с торговыми предложениями считается недоступным, если все его предложения недоступны (алгоритм расчета см. выше).

Для комплекта параметры, участвующие в расчете доступности, выставляются автоматически и не могут быть изменены.

Доступность не означает, что товар может быть куплен. Полный перечень условий для покупки:

  • Товар доступен
  • Элемент инфоблока активен
  • Даты активности элемента отсутствуют, либо текущая дата попадает в диапазон активности
  • Условия, завязанные на конкретного покупателя:
    • минимальные права доступа – чтение
    • у товара есть цены тех типов, по которым клиент может покупать

Доступность товара пересчитывается при вызове следующих методов:

  • CIBlockElement::Add
  • CIBlockElement::Update
  • CIBlockElement:: Delete
  • CIBlockElement::SetPropertyValues (при передаче свойства привязки торгового предложения к головному товару)
  • CIBlockElement::SetPropertyValuesEx (при передаче свойства привязки торгового предложения к головному товару) - с версии iblock 17.6.5 + catalog 17.6.
  • CCatalogProduct::Add
  • CCatalogProduct::Update
  • CCatalogProduct:: Delete
  • \Bitrix\Catalog\Model\Product::add (catalog 17.6.0 и выше)
  • \Bitrix\Catalog\Model\Product::update (catalog 17.6.0 и выше)
  • \Bitrix\Catalog\Model\Product::delete (catalog 17.6.0 и выше)


Классы модуля каталога

Важно! Модуль торгового каталога является надстройкой к модулю информационных блоков и не работает самостоятельно.

В каталоге товаров дерево групп и товары с набираемыми свойствами формируются средствами модуля информационных блоков. С помощью методов класса CCatalogProduct к товару (элементу каталога) пристегивается дополнительная запись, задающая значения свойств, специфичных для товара (вес, количество на складе и т.п.).

Следующие PHP классы используются в модуле каталога.

Классы

Класс | Описание | С версии
CCatalog | Содержит методы для подключения/отключения информационного блока к модулю торгового каталога (т.е. для указания, что информационный блок является каталогом). | 3.2.1
CCatalogDiscount | Класс для управления скидками. | 4.0.4
CCatalogDiscountCoupon | Класс для работы с купонами скидок. | 5.1.0
CCatalogExport | Класс для работы с профилями экспорта. | 3.3.3
CCatalogGroup | Класс для управления типами цен торгового каталога. | 3.3.5
CCatalogIBlockParameters | Класс используется в файле .parameters.php компонентов модулей Информационные блоки и Торговый каталог. | 12.5.4
CCatalogImport | Класс для работы с профилями импорта. | 4.0.8
CCatalogProduct | Класс для управления свойствами (параметрами) товара, которые относятся к товару как к таковому (вес, количество на складе и т.п.). | 3.3.5
CCatalogProductGroups | Используется функционалом продажи доступа к контенту. Управляет информацией о том, к каким группам и на какой срок получит доступ клиент после покупки доступа. | 4.0.4
CCatalogProductProvider | Класс провайдер. Устарел с версии 17.5.0 модуля catalog. | 12.5.0
CCatalogProductSet | Класс для работы с наборами и комплектами. | 14.0.0
CCatalogSKU | Служебный класс для получения информации об инфоблоках, работающих в режиме SKU. | 11.0.2
CCatalogStore | Класс для работы со складами. | 12.0.0
CCatalogStoreProduct | Класс для работы со остатками товара на складах. | 12.0.0
CCatalogVat | Класс для работы со ставками НДС. | 7.0.0
CExtra | Класс для управления величинам наценок, которые могут быть использованы для генерации цен различных типов из базовой. | 3.1.1
CPrice | Класс для работы с ценами товаров (т.е. с предложениями). | 3.2.1


CCatalog

Методы класса

Метод | Описание | С версии
CheckFields | Метод проверяет параметры, переданные в методы Add и Update. | 4.0.4
GetList | Метод возвращает результат выборки записей из каталога в соответствии со своими параметрами. | 3.2.1
Update | Метод изменяет параметры записи с кодом ID в таблице привязывания информационного блока к модулю Торгового Каталога. | 3.2.1
Add | Метод служит для добавления новой записи в таблицу привязывания информационного блока к модулю Торгового Каталога. | 3.2.1
Delete | Метод удаляет привязку информационного блока с кодом ID к торговому каталогу. При этом удаляются так же параметры товаров и предложения, относящиеся к этому каталогу. Описания товаров, относящиеся к элементу информационного блока, остаются неизменными. | 3.2.1
GetByID | Возвращает массив параметров каталога, включая некоторые параметры, относящиеся к информационному блоку. | 3.2.1


Add

Торговый каталог>Классы>CCatalog>Add (доступен с 3.2.1)

CCatalog::Add

Описание и параметры

bool
CCatalog::Add(
 array arFields
);

Метод служит для добавления новой записи в таблицу привязывания информационного блока к модулю торгового каталога. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Массив параметров привязки, который может содержать следующие ключи:
  • IBLOCK_ID - код (ID) инфоблока (обязательный);
  • SUBSCRIPTION - флаг "Продажа контента" (Y/N) (необязательный), по умолчанию - N;
  • YANDEX_EXPORT - флаг "Экспортировать в Яндекс.Товары" (Y/N) (необязательный), по умолчанию - N;
  • VAT_ID - код (ID) типа НДС (необязательный), по умолчанию - 0;
  • PRODUCT_IBLOCK_ID - код (ID) инфоблока товаров (для инфоблока торговых предложений) (необязательный, только вместе с SKU_PROPERTY_ID), по умолчанию - 0;
  • SKU_PROPERTY_ID - код (ID) свойства привязки к инфоблоку товаров (для инфоблока торговых предложений), (необязательный, только вместе с PRODUCT_IBLOCK_ID), по умолчанию - 0;
Необязательные ключи, отсутствующие в массиве, получат значения по умолчанию.

Возвращаемые значения

Возвращает true, если запись успешно добавлена и false - если произошла ошибка. Текстовое сообщение об ошибках можно получить через $APPLICATION->GetException().

Перед добавлением записи в таблицу осуществляется проверка параметров привязки методом CCatalog::CheckFields (условия корректности параметров изложены в нем). Если проверка прошла успешно, производится запись в базу. Попытка добавить больше одной записи с одинаковым IBLOCK_ID вызовет ошибку базы данных.

Смотрите также

  • Структура таблицы
  • CCatalog::CheckFields
  • CCatalog::Update

Примеры использования

Привязка инфоблока к модулю Торгового каталога

$arFields = array(
    'IBLOCK_ID' => 2,			// код (ID) инфоблока товаров
    'YANDEX_EXPORT' => 'Y',		// экспортировать в Яндекс.Товары с помощью агента
);
$boolResult = CCatalog::Add($arFields);
if ($boolResult == false)
{
    if ($ex = $APPLICATION->GetException())
    {
        $strError = $ex->GetString();
        ShowError($strError);
    }
}

Привязка инфоблока к модулю Торговых предложений как инфоблока торговых предложений

$arFields = array(
    'IBLOCK_ID' => 2,			// код (ID) инфоблока торговых предложений
    'VAT_ID' => 2,				// код (ID) типа НДС
    'PRODUCT_IBLOCK_ID' => 10,	// код (ID) инфоблока товаров (может быть привязан или не привязан к модулю торгового каталога)
    'SKU_PROPERTY_ID' => 14		// код (ID) свойства привязки инфоблока с ID=2 к инфоблоку с ID=10 (тип свойства - SKU)
);
$boolResult = CCatalog::Add($arFields);
if ($boolResult == false)
{
    if ($ex = $APPLICATION->GetException())
    {
        $strError = $ex->GetString();
        ShowError($strError);
    }
}


CheckFields

Торговый каталог>Классы>CCatalog>CheckFields (доступен с 4.0.4)

CCatalog::CheckFields

Описание и параметры

bool
CCatalog::CheckFields(
 string $ACTION,
 array &$arFields[,
 int $ID = 0]
);

Метод служит для проверки (и корректировки, если это возможно) параметров, переданных в методы CCatalog::Add и CCatalog::Update. Нестатический метод.

Параметры вызова

Параметр | Описание
ACTION Указывает, для какого метода идет проверка. Возможные значения:
  • ADD - для метода CCatalog::Add;
  • UPDATE - для метода CCatalog::Update.
arFields Ассоциативный массив параметров привязки инфоблока к модулю Торгового каталога. Массив передается по ссылке и его значения могут быть изменены методом.
Допустимые ключи:
  • IBLOCK_ID - код (ID) инфоблока;
  • SUBSCRIPTION - флаг "Продажа контента" (Y/N);
  • YANDEX_EXPORT - флаг "Экспортировать в Яндекс.Товары" (Y/N);
  • VAT_ID - код (ID) типа НДС;
  • PRODUCT_IBLOCK_ID - код (ID) инфоблока товаров (для инфоблока торговых предложений);
  • SKU_PROPERTY_ID - код (ID) свойства привязки к инфоблоку товаров (для инфоблока торговых предложений);
ID | Код (ID) инфоблока.

Возвращаемое значение

В случае корректности переданных параметров возвращает true, иначе - false. Если метод вернул false, с помощью $APPLICATION->GetException() можно получить текст ошибок.

Обязательные проверки

  • для CCatalog::Add
    • ключ IBLOCK_ID присутствует и содержит код (ID) существующего инфоблока;
    • если ключ SUBSCRIPTION не существует или не равен Y, ему присваивается значение N;
    • если ключ YANDEX_EXPORT не существует или не равен Y, ему присваивается значение N;
    • если ключ VAT_ID не существует или меньше 0, ему присваивается значение 0;
    • PRODUCT_IBLOCK_ID и SKU_PROPERTY_ID оба отсутствуют, оба равны нулю, либо отвечают правилу:
      • PRODUCT_IBLOCK_ID - код (ID) существующего инфоблока;
      • SKU_PROPERTY_ID - код (ID) существующего свойства инфоблока IBLOCK_ID. Тип свойства - "SKU", свойство одиночное, поле LINK_IBLOCK_ID свойства = PRODUCT_IBLOCK_ID.

  • для CCatalog::Update
    • инфоблок с кодом ID должен являться торговым каталогом;
    • если ключ SUBSCRIPTION существует и не равен Y, ему присваивается значение N;
    • если ключ YANDEX_EXPORT существует и не равен Y, ему присваивается значение N;
    • если ключ VAT_ID существует и меньше 0, ему присваивается значение 0;
    • PRODUCT_IBLOCK_ID и SKU_PROPERTY_ID оба отсутствуют либо оба заданы;

Смотрите также

  • Структура таблицы
  • CCatalog::Add
  • CCatalog::Update

Примеры использования

<?
$arFields = array(
   'IBLOCK_ID' => 2,
   'YANDEX_EXPORT' => 'Y'
);
$boolResult = CCatalog::CheckFields('ADD',$arFields);
if ($boolResult == false)
{
    if ($ex = $APPLICATION->GetException())
    {
        $strError = $ex->GetString();
        ShowError($strError);
    }
}
?>


Delete

Торговый каталог>Классы>CCatalog>Delete (доступен с 3.2.1)

CCatalog::Delete

bool
CCatalog::Delete(
 int ID
);

Метод удаляет привязку информационного блока с кодом ID к торговому каталогу. При этом удаляются также параметры товаров и ценовые предложения, относящиеся к этому каталогу. Описания товаров, относящиеся к элементу информационного блока, остаются неизменными. Нестатический метод.

Перед удалением происходит вызов обработчиков события OnBeforeCatalogDelete.

Параметры метода

Параметр | Описание
ID | Код информационного блока - каталога.

Возвращаемые значения

Возвращает true в случае успешного удаления записи и false - в противном случае.


GetByID

Торговый каталог>Классы>CCatalog>GetByID (доступен с 3.2.1)

CCatalog::GetByID

Описание и параметры

array
CCatalog::GetByID(
 int ID
);

Возвращает массив параметров каталога, включая некоторые параметры, относящиеся к информационному блоку. Если инфоблок с кодом $ID не существует или не является торговым каталогом, вернет false. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код каталога - инфоблока.

Возвращаемые значения

Если инфоблок с кодом $ID не существует или не является торговым каталогом, вернет false. Иначе возвращает ассоциативный массив с ключами:

Ключ | Описание
IBLOCK_ID | Код (ID) информационного блока.
ID | Код (ID) информационного блока.
IBLOCK_TYPE_ID | Тип информационного блока.
LID | Код сайта инфоблока.
NAME | Название информационного блока.
SUBSCRIPTION | Флаг "Продажа контента" (Y/N).
YANDEX_EXPORT | Флаг "экспортировать в Яндекс.Товары" (Y/N).
VAT_ID | Код (ID) типа НДС.
PRODUCT_IBLOCK_ID | Код (ID) инфоблока товаров (для инфоблока торговых предложений). Для обычного каталога содержит 0.
SKU_PROPERTY_ID | Код (ID) свойства привязки к инфоблоку товаров (для инфоблока торговых предложений). Для обычного каталога содержит 0.
OFFERS_IBLOCK_ID | Код (ID) инфоблока торговых предложений (для ситуации, когда торговым каталогом являются как инфоблок товаров, так и инфоблок торговых предложений). Во всех остальных случаях содержит NULL. Ключ используется для совместимости, для получения полной информации о связке "инфоблок товаров - инфоблок торговых предложений" рекомендуется использовать метод CCatalog::GetByIDExt().
OFFERS_PROPERTY_ID | код (ID) свойства привязки торговых предложений к товарам для ситуации, когда торговым каталогом являются как инфоблок товаров, так и инфоблок торговых предложений). Во всех остальных случаях содержит NULL. Ключ используется для совместимости, для получения полной информации о связке "инфоблок товаров - инфоблок торговых предложений" рекомендуется использовать метод Catalog::GetByIDExt().
OFFERS | Флаг наличия инфоблока торговых предложений (Y/N).

Смотрите также

  • Структура таблицы


GetList

Торговый каталог>Классы>CCatalog>GetList (доступен с 3.2.1)

CCatalog::GetList

Описание и параметры

CDBResult
CCatalog::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из каталога в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле каталога, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи каталога. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле каталога.

Пример фильтра:
array("SUBSCRIPTION" => "Y")
Этот фильтр означает "выбрать все записи, в которых значение в поле SUBSCRIPTION (флаг "Продажа контента") равно Y".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи каталога. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле каталога.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращает объект класса CDBResult, содержащий коллекцию ассоциативных массивов с ключами:

Ключ | Описание
ID | Код каталога. Совпадает с кодом информационного блока.
IBLOCK_ID | Код информационного блока.
IBLOCK_TYPE_ID | Тип информационного блока.
SUBSCRIPTION | Флаг "Продажа контента".
NAME | Название информационного блока.
YANDEX_EXPORT | флаг "экспортировать в Яндекс.Товары"

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.


Update

Торговый каталог>Классы>CCatalog>Update (доступен с 3.2.1)

CCatalog::Update

Описание и параметры

bool
CCatalog::Update(
 int ID,
 array arFields
);

Метод изменяет параметры записи с кодом ID в таблице привязывания информационного блока к модулю Торговый каталог. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код записи для изменения.
arFields Ассоциативный массив новых параметров записи, ключами с котором являются названия параметров, а значениями - новые значения.
Допустимые ключи:
  • SUBSCRIPTION - флаг "Продажа контента" (Y/N);
  • YANDEX_EXPORT - флаг "Экспортировать в Яндекс.Товары" (Y/N);
  • VAT_ID - код (ID) типа НДС;
  • PRODUCT_IBLOCK_ID - код (ID) инфоблока товаров (для инфоблока торговых предложений, только вместе с SKU_PROPERTY_ID);
  • SKU_PROPERTY_ID - код (ID) свойства привязки к инфоблоку товаров (для инфоблока торговых предложений, только вместе с PRODUCT_IBLOCK_ID);

Возвращаемые значения

Возвращает true в случае успешного изменения записи и false - в противном случае.

Смотрите также

  • Структура таблицы
  • CCatalog::CheckFields
  • CCatalog::Add


CCatalogDiscount

Методы класса

Метод | Описание | С версии | До версии
Add | Метод добавляет новую скидку в соответствии с данными из массива arFields. | 4.0.4 |
Delete | Метод удаляет скидку с кодом ID. | 4.0.4 |
SetCoupon | Метод добавляет код купона coupon в массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов. | 4.0.4 | 12.0.0
GetCoupons | Метод возвращает массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов. | 4.0.4 | 12.0.0
ClearCoupon | Метод очищает возвращает массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов. | 4.0.4 | 12.0.0
GetDiscountByPrice | Метод вычисляет скидку на цену с кодом productPriceID товара для пользователя, принадлежащего группам пользователей arUserGroups. | 4.0.4 |
GetDiscountByProduct | Метод вычисляет скидку на товар с кодом productID для пользователя, принадлежащего группам пользователей arUserGroups. | 4.0.5 |
GetByID | Метод выбирает параметры скидки по ее коду ID. | 4.0.4 |
GetList | Метод возвращает результат выборки записей скидок в соответствии со своими параметрами. | 4.0.4 |
GetDiscountGroupsList | Метод возвращает результат выборки записей с информацией о привязке скидок к группам пользователей в соответствии со своими параметрами. | 4.0.4 |
GetDiscountCatsList | Метод возвращает результат выборки записей с информацией о привязке скидок к типам цен в соответствии со своими параметрами. | 4.0.4 |
GetDiscountProductsList | Метод возвращает результат выборки записей с информацией о привязке скидок к товарам в соответствии со своими параметрами. | 4.0.4 | 12.0.0
GetDiscountSectionsList | Метод возвращает результат выборки записей с информацией о привязке скидок к группам товаров в соответствии со своими параметрами. | 4.0.4 | 12.0.0
Update | Метод изменяет параметры скидки с кодом ID в соответствии с данными из массива arFields. | 4.0.4 |

Примечание:

С версии 12.0.0 в связи с изменением логики работы модуля считаются устаревшими следующие методы:

  • GetDiscountIBlockList
  • GetDiscountSectionsList
  • GetDiscountProductsList

До выхода версии 12.0.0 все вышеперечисленные методы являлись служебными и позволяли получить явно заданные привязки скидки к инфоблоку, разделу, элементу. То есть данные, которые можно было увидеть в форме редактирования скидки.

Использование этих методов для получения ID элементов, на которые могла подействовать скидка, было и является некорректным. Например, для скидки, у которой задано ограничение на раздел, вызов GetDiscountProductsList вернет пустой массив.

С выходом 12.0 эти методы оставлены лишь для сохранения совместимости. Они могут вернуть привязки лишь к тем инфоблокам, разделам, элементам, которые явно заданы в ограничениях. Т.е. если скидка действует на название элемента, все перечисленные методы вернут пустые массивы.


Add

Торговый каталог>Классы>CCatalogDiscount>Add (доступен с 4.0.4)

CCatalogDiscount::Add

Описание и параметры

bool
CCatalogDiscount::Add(
 array arFields );

Метод добавляет новую скидку в соответствии с данными из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров новой скидки, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • SITE_ID - сайт, обязательное поле;
  • ACTIVE - флаг активности;
  • NAME - название скидки, обязательное поле;
  • COUPON - код купона;
  • SORT - индекс сортировки;
  • MAX_DISCOUNT - максимальная величина скидки;
  • LAST_DISCOUNT - если равно N, то отменяет опцию Прекратить дальнейшее применение скидок;
  • VALUE_TYPE - тип скидки (P - в процентах, F - фиксированная величина, S - фиксированная цена);
  • VALUE - величина скидки;
  • CURRENCY - валюта, обязательное поле;
  • RENEWAL - флаг "Скидка на продление";
  • ACTIVE_FROM - дата начала действия скидки;
  • ACTIVE_TO - дата окончания действия скидки;
  • IBLOCK_IDS - массив кодов инфоблоков, на которые действует скидка (если скидка действует не на все инфоблоки). Ключ является устаревшим с версии 12.0.0;
  • PRODUCT_IDS - массив кодов товаров, на которые действует скидка (если скидка действует не на все товары). Ключ является устаревшим с версии 12.0.0;
  • SECTION_IDS - массив кодов групп товаров, на которые действует скидка (если скидка действует не на все группы товары). Ключ является устаревшим с версии 12.0.0;
  • GROUP_IDS - массив кодов групп пользователей, на которые действует скидка (если скидка действует не на все группы пользователей);
  • CATALOG_GROUP_IDS - массив кодов типов цен, на которые действует скидка (если скидка действует не на все типы цен).
  • CATALOG_COUPONS - массив купонов скидки.
  • USE_COUPONS - [Y/N] - есть купоны или нет, обновляется автоматически.
  • PRIORITY - приоритет применимости;
  • CONDITIONS - массив для создания условий использования скидки. Ключ доступен с версии 12.0.0.

    Если он задан и не пуст, то массивы PRODUCT_IDS, SECTION_IDS и IBLOCK_IDS использоваться не будут. Чтобы задать параметры скидки через эти 3 ключа, то CONDITIONS в массиве arFields должен отсутствовать.

    Каждое условие массива CONDITIONS описывается массивом следующей структуры:
    • CLASS_ID - идентификатор (строка);
    • DATA => array() - массив параметров условий;
    • CHILDREN => array() - массив подусловий, каждое из которых является массивом аналогичной структуры, где ключами являются значения 0,1,2,3,..

    Возможные логические условия:
    • Equal - равно;
    • Not - не равно;
    • Great - больше;
    • Less - меньше;
    • EqGr - больше либо равно;
    • EqLs - меньше либо равно.

    Наименования условий:
    • CondIBElement - товар;
    • CondIBIBlock - инфоблок;
    • CondIBSection - раздел;
    • CondIBCode - символьный код;
    • CondIBXmlID - внешний код;
    • CondIBName - название;
    • CondIBActive - активность;
    • CondIBDateActiveFrom - начало активности;
    • CondIBDateActiveTo - окончание активности;
    • CondIBSort - сортировка;
    • CondIBPreviewText - описание для анонса;
    • CondIBDetailText - детальное описание;
    • CondIBDateCreate - дата создания;
    • CondIBCreatedBy - автор;
    • CondIBTimestampX - дата изменения;
    • CondIBModifiedBy - изменивший;
    • CondIBTags - теги;
    • CondCatQuantity - количество товара на складе;
    • CondCatWeight - вес товара;
    • CondCatVatID - НДС;
    • CondCatVatIncluded - НДС включен в цену.

    Кроме того, возможна привязка условий к свойствам товара.

    Верхний элемент массива CONDITIONS всегда один и тот же (для скидок каталога может быть получен методом CCatalogCondTree::GetDefaultConditions()):
    array(
         'CLASS_ID' => 'CondGroup',
         'DATA' => array('All' => 'AND', 'True' => 'True'),
         'CHILDREN' => array()
);

Возвращаемые значения

Метод возвращает код вставленной записи или false в случае ошибки.

Примеры использования

Получить детальную информацию об ошибке при сохранении можно следующим образом:

$ID = CCatalogDiscount::Add($arFields);
$res = $ID>0;
if (!$res) {
    $ex = $APPLICATION->GetException();
    $ex->GetString();
}


ClearCoupon

Торговый каталог>Классы>CCatalogDiscount>ClearCoupon (доступен с 4.0.4, устарел с 12.0.0)

CCatalogDiscount::ClearCoupon

void CCatalogDiscount::ClearCoupon();

Метод очищает массив купонов, введенных текущим покупателем. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов. Нестатический метод.

Параметры вызова

Без параметров.

Возвращаемые значения

Метод не возвращает значений.

Примечание: с версии 12.0 метод считается устаревшим. Оставлен для совместимости. Рекомендуется использовать аналогичный метод класса CCatalogDiscountCoupon.


Delete

Торговый каталог>Классы>CCatalogDiscount>Delete (доступен с 4.0.4)

CCatalogDiscount::Delete

bool
CCatalogDiscount::Delete(
 int ID
);

Метод удаляет скидку с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код удаляемой записи.

Возвращаемые значения

Метод возвращает true в случае успешного удаления и false в случае ошибки.


GetByID

Торговый каталог>Классы>CCatalogDiscount>GetByID (доступен с 4.0.4)

CCatalogDiscount::GetByID

array
CCatalogDiscount::GetByID(
 int ID
);

Метод выбирает параметры скидки по ее коду ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код записи.

Возвращаемые значения

Метод возвращает ассоциативный массив параметров скидки с ключами:

  • ID - код записи;
  • SITE_ID - сайт;
  • ACTIVE - флаг активности;
  • NAME - название скидки;
  • COUPON - код купона;
  • SORT - индекс сортировки;
  • MAX_DISCOUNT - максимальная величина скидки;
  • TIMESTAMP_X - дата последнего изменения записи;
  • VALUE_TYPE - тип скидки (P - в процентах, F - фиксированная величина);
  • VALUE - величина скидки;
  • CURRENCY - валюта;
  • RENEWAL - флаг "Скидка на продление";
  • ACTIVE_FROM - дата начала действия скидки;
  • ACTIVE_TO - дата окончания действия скидки.


GetCoupons

Торговый каталог>Классы>CCatalogDiscount>GetCoupons (доступен с 4.0.4, устарел с 12.0.0)

CCatalogDiscount::GetCoupons

array CCatalogDiscount::GetCoupons();

Метод возвращает массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов. Нестатический метод.

Параметры вызова

Без параметров.

Возвращаемые значения

Метод возвращает массив купонов текущего пользователя.

Примечание: с версии 12.0 метод считается устаревшим. Оставлен для совместимости. Рекомендуется использовать аналогичный метод класса CCatalogDiscountCoupon.


GetDiscount

Торговый каталог>Классы>CCatalogDiscount>GetDiscount (доступен с 5.1.0)

CCatalogDiscount::GetDiscount

array
CCatalogDiscount::GetDiscount(
 int intProductID,
 int intIBlockID,
 array arCatalogGroups = array(),
 array arUserGroups = array(),
 string strRenewall = "N",
 string siteID = false,
 array arDiscountCoupons = false,
 boolean boolSKU = true,
 boolean boolGetIDS = false
);

Метод возвращает перечень скидок, которые могут быть применены к товару, для показа в публичном разделе сайта.

Возвращаемый результат (перечень скидок) зависит от настройки опции Использовать только правила корзины в модуле Интернет-магазин:

  • Если опция не отмечена, то возвращается перечень скидок модуля Торговый каталог.
  • Если опция отмечена, то метод возвращает список правил корзины, которые могут быть показаны в каталоге товаров и в корзине покупателя. То есть, возвращаются правила, не завязанные на конкретного пользователя и сущности корзины/заказа.

Метод статический.

Параметры вызова

Параметр | Описание | С версии | До версии
intProductID | Идентификатор товара.
intIBlockID | Идентификатор инфоблока.
arCatalogGroups Массив идентификаторов типов цен. Необязательный, по умолчанию array().

Если передан пустой массив, то внутри метода будут взяты типы цен, доступные к показу и/или покупке для переданного массива arUserGroups.

Если значение параметра - отрока, то в обработчике события в этом случае необходимо привести строку к массиву:
if (!is_array($arCatalogGroups))
            $arCatalogGroups = array($arCatalogGroups);
arUserGroups Массив групп, которым принадлежит пользователь. Необязательный, по умолчанию array().

Если передать пустой массив, будет использоваться группа с кодом 2 (все пользователи, в том числе неавторизованные).

Если значение параметра - отрока, то в обработчике события в этом случае необходимо привести строку к массиву:
if (!is_array($arCatalogGroups))
            $arUserGroups = array($arCatalogGroups);
strRenewal (Y|N) Флаг получения скидок для продления подписки (Y) или для товара (N). Необязательный, по умолчанию N.
siteID Идентификатор сайта. Необязательный, по умолчанию false.

arDiscountCoupons Массив купонов, которые будут использованы для выборки скидок. Необязательный, по умолчанию false.

Если передать false, то будут взяты текущие купоны из менеджера купонов. Если нужен выбор скидок без купонов (для каталога товаров), то следует передавать в этом параметре array().
boolSKU Флаг проверки наличия скидок не только для торгового предложения, но и для его основного товара. Необязательный, по умолчанию true. Параметр устарел. Рекомендуется использовать значение по умолчанию.

Для простого товара смысла не имеет. Для торгового предложения можно выбрать либо только те скидки, что действуют на само предложение, либо и те, что действуют и на его основной товар. 		11.0.2 14.5.9
boolGetIDS Флаг возврата только идентификаторов скидок (идентификаторы накопительных скидок не возвращаются). По умолчанию false.

Имеет смысл лишь для скидок торгового каталога (флаг с опции Использовать только правила корзины снят).

Примечание: параметр устарел. Рекомендуется использовать только значение по умолчанию. В противном случае корректная работа не гарантируется.
11.0.2 14.5.9

Возвращаемые значения

Метод возвращает массив скидок или false в случае ошибки. Скидки возвращаются с учетом дат их активности. Если возвращаемый массив пустой, то это означает, что скидки отсутствуют.


GetDiscountByPrice

Торговый каталог>Классы>CCatalogDiscount>GetDiscountByPrice (доступен с 4.0.4)

CCatalogDiscount::GetDiscountByPrice

Описание и параметры

bool
CCatalogDiscount::GetDiscountByPrice(
 int productPriceID[,
 array arUserGroups = array()[,
 string renewal = "N"[,
 string siteID = false[,
 array arDiscountCoupons = false]]]]
);

Метод вычисляет скидку на цену с кодом productPriceID товара для пользователя, принадлежащего группам пользователей arUserGroups. Нестатический метод.

Параметры вызова

Параметр | Описание | С версии
productPriceID | Код цены. |
arUserGroups | Массив групп, которым принадлежит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray() |
renewal | Флаг "Продление подписки". |
siteID | Сайт (по умолчанию текущий). | 4.0.6
arDiscountCoupons | Массив купонов, которые влияют на выборку скидок. Если задано значение false, то массив купонов будет взят из CCatalogDiscountCoupon::GetCoupons | 5.1.0

Возвращаемые значения

Метод возвращает массив ассоциативных массивов скидок или false в случае ошибки. В массиве содержится ассоциативный массив параметров максимальной процентной скидки (если есть) и ассоциативный массив параметров максимальной фиксированной скидки (если есть).

Примеры использования

<?
$dbPrice = CPrice::GetList(
    array("QUANTITY_FROM" => "ASC", "QUANTITY_TO" => "ASC",
          "SORT" => "ASC"),
    array("PRODUCT_ID" => $ID),
    false,
    false,
    array("ID", "CATALOG_GROUP_ID", "PRICE", "CURRENCY",
          "QUANTITY_FROM", "QUANTITY_TO")
);
while ($arPrice = $dbPrice->Fetch())
{
    $arDiscounts = CCatalogDiscount::GetDiscountByPrice(
            $arPrice["ID"],
            $USER->GetUserGroupArray(),
            "N",
            SITE_ID
        );
    $discountPrice = CCatalogProduct::CountPriceWithDiscount(
            $arPrice["PRICE"],
            $arPrice["CURRENCY"],
            $arDiscounts
        );
    $arPrice["DISCOUNT_PRICE"] = $discountPrice;

    echo "<pre>&quot;;
    print_r($arPrice);
    echo &quot;</pre>";
}
?>


GetDiscountByProduct

Торговый каталог>Классы>CCatalogDiscount>GetDiscountByProduct (доступен с 4.0.5)

CCatalogDiscount::GetDiscountByProduct

Описание и параметры

mixed
CCatalogDiscount::GetDiscountByProduct(
 int productID = 0[,
 array arUserGroups = array()[,
 string renewal = "N"[,
 array arCatalogGroups = array()[,
 string siteID = false[,
 array arDiscountCoupons = false]]]]
);

Метод вычисляет скидку на товар с кодом productID для пользователя, принадлежащего группам пользователей arUserGroups. Нестатический метод.

Параметры вызова

Параметр | Описание | С версии
productID | Код товара. |
arUserGroups | Массив групп, которым принадлежит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray() |
renewal | Флаг "Продление подписки" |
arCatalogGroups | Массив типов цен, для которых искать скидку. |
siteID | Сайт (по умолчанию текущий) | 4.0.6
arDiscountCoupons | Массив купонов, которые влияют на выборку скидок. Если задано значение false, то массив купонов будет взят из CCatalogDiscountCoupon::GetCoupons | 5.1.0

Возвращаемые значения

Метод возвращает массив ассоциативных массивов скидок или false в случае ошибки. В массиве содержится ассоциативный массив параметров максимальной процентной скидки (если есть) и ассоциативный массив параметров максимальной фиксированной скидки (если есть).

Примеры использования

<?
$arDiscounts = CCatalogDiscount::GetDiscountByProduct(
        150,
        $USER->GetUserGroupArray(),
        "N",
        2,
        SITE_ID
    );
?>


GetDiscountCatsList

Торговый каталог>Классы>CCatalogDiscount>GetDiscountCatsList (доступен с 4.0.4)

CCatalogDiscount::GetDiscountCatsList

Описание и параметры

CDBResult
CCatalogDiscount::GetDiscountCatsList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей с информацией о привязке скидок к типам цен в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле записи, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • >= - значение поля меньше или равно передаваемой в фильтр величины;
  • >= - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле записи.

Пример фильтра:
array("!DISCOUNT_ID" => 15)
Этот фильтр означает "выбрать все записи, в которых значение в поле DISCOUNT_ID (код скидки) не равно 15".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле записи.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

  • ID - код записи;
  • DISCOUNT_ID - код скидки;
  • CATALOG_GROUP_ID - код типа цены.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.


GetDiscountGroupsList

Торговый каталог>Классы>CCatalogDiscount>GetDiscountGroupsList (доступен с 4.0.4)

CCatalogDiscount::GetDiscountGroupsList

Описание и параметры

CDBResult
CCatalogDiscount::GetDiscountGroupsList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей с информацией о привязке скидок к группам пользователей в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле записи, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • >= - значение поля меньше или равно передаваемой в фильтр величины;
  • >= - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле записи.

Пример фильтра:
array("!GROUP_ID" => 5)
Этот фильтр означает "выбрать все записи, в которых значение в поле GROUP_ID (код группы пользователей) не равно 5".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле записи.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

  • ID - код записи;
  • DISCOUNT_ID - код скидки;
  • GROUP_ID - код группы пользователей.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.


GetDiscountProductsList

Торговый каталог>Классы>CCatalogDiscount>GetDiscountProductsList (доступен с 4.0.4, устарел с 12.0.0)

CCatalogDiscount::GetDiscountProductsList

Описание и параметры

CDBResult
CCatalogDiscount::GetDiscountProductsList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей с информацией о привязке скидок к товарам в соответствии со своими параметрами. Нестатический метод.

Важно! Метод не может быть использован для выборки товаров, на которые действуют скидки.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле записи, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • >= - значение поля меньше или равно передаваемой в фильтр величины;
  • >= - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле записи.

Пример фильтра:
array("!DISCOUNT_ID" => 15)
Этот фильтр означает "выбрать все записи, в которых значение в поле DISCOUNT_ID (код скидки) не равно 15".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле записи.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

  • ID - код записи;
  • DISCOUNT_ID - код скидки;
  • PRODUCT_ID - код товара.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.


GetDiscountSectionsList

Торговый каталог>Классы>CCatalogDiscount>GetDiscountSectionsList (доступен с 4.0.4, устарел с 12.0.0)

CCatalogDiscount::GetDiscountSectionsList

Описание и параметры

CDBResult
CCatalogDiscount::GetDiscountSectionsList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей с информацией о привязке скидок к группам товаров в соответствии со своими параметрами. Нестатический метод.

Важно! Метод не может быть использован для выборки товаров, на которые действуют скидки.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле записи, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • >= - значение поля меньше или равно передаваемой в фильтр величины;
  • >= - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле записи.

Пример фильтра:
array("!DISCOUNT_ID" => 15)
Этот фильтр означает "выбрать все записи, в которых значение в поле DISCOUNT_ID (код скидки) не равно 15".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле записи.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

  • ID - код записи;
  • DISCOUNT_ID - код скидки;
  • SECTION_ID - код секции.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.


GetList

Торговый каталог>Классы>CCatalogDiscount>GetList (доступен с 4.0.4)

CCatalogDiscount::GetList

Описание и параметры

CDBResult
CCatalogDiscount::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей скидок в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле скидки, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле скидки.

Пример фильтра:
array("ID" => 15)
Этот фильтр означает "выбрать все записи, в которых значение в поле DISCOUNT_ID (код скидки) равно 15".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются скидки. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле скидки.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

  • ID - код записи;
  • SITE_ID - сайт;
  • ACTIVE - флаг активности;
  • NAME - название скидки;
  • COUPON - код купона;
  • USE_COUPONS - [Y/N] - есть купоны или нет, обновляется автоматически.
  • SORT - индекс сортировки;
  • MAX_DISCOUNT - максимальная величина скидки;
  • TIMESTAMP_X - дата последнего изменения записи;
  • VALUE_TYPE - тип скидки (P - в процентах, F - фиксированая величина);
  • VALUE - величина скидки;
  • CURRENCY - валюта;
  • RENEWAL - флаг "Скидка на продление";
  • ACTIVE_FROM - дата начала действия скидки;
  • ACTIVE_TO - дата окончания действия скидки;
  • PRODUCT_ID - код товара, на который дается скидка;
  • SECTION_ID - код группы товаров, на которую дается скидка;
  • GROUP_ID - код группы пользователей, на которую дается скидка;
  • CATALOG_GROUP_ID - код типа цен, на который дается скидка.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Примеры использования

<?
// Выберем все скидки для данного товара

$dbProductDiscounts = CCatalogDiscount::GetList(
    array("SORT" => "ASC"),
    array(
            "+PRODUCT_ID" => $PRODUCT_ID,
            "ACTIVE" => "Y",
            "!>ACTIVE_FROM" => $DB->FormatDate(date("Y-m-d H:i:s"),
                                               "YYYY-MM-DD HH:MI:SS",
                                               CSite::GetDateFormat("FULL")),
            "!<ACTIVE_TO" => $DB->FormatDate(date("Y-m-d H:i:s"),
                                             "YYYY-MM-DD HH:MI:SS",
                                             CSite::GetDateFormat("FULL")),
            "COUPON" => ""
        ),
    false,
    false,
    array(
            "ID", "SITE_ID", "ACTIVE", "ACTIVE_FROM", "ACTIVE_TO",
            "RENEWAL", "NAME", "SORT", "MAX_DISCOUNT", "VALUE_TYPE",
    "VALUE", "CURRENCY", "PRODUCT_ID"
        )
    );
while ($arProductDiscounts = $dbProductDiscounts->Fetch())
{
    * * *
}
?>


SetCoupon

Торговый каталог>Классы>CCatalogDiscount>SetCoupon (доступен с 4.0.4, устарел с 12.0.0)

CCatalogDiscount::SetCoupon

bool CCatalogDiscount::SetCoupon(
 string coupon );

Метод добавляет код купона coupon в массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов. Нестатический метод.

Параметры вызова

Параметр | Описание
coupon | Код купона.

Возвращаемые значения

Метод возвращает true в случае успешного добавления кода купона и false в случае ошибки.

Примечание: с версии 12.0 считаются устаревшим. Оставлен для совместимости. Рекомендуется использовать аналогичный метод класса CCatalogDiscountCoupon.


Update

Торговый каталог>Классы>CCatalogDiscount>Update (доступен с 4.0.4)

CCatalogDiscount::Update

Описание и параметры

bool
CCatalogDiscount::Update(
 int ID,
 array arFields
);

Метод изменяет параметры скидки с кодом ID в соответствии с данными из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код скидки.
arFields Ассоциативный массив параметров новой скидки, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • SITE_ID - сайт;
  • ACTIVE - флаг активности;
  • NAME - название скидки;
  • COUPON - код купона;
  • USE_COUPONS - [Y/N] - есть купоны или нет, обновляется автоматически.
  • SORT - индекс сортировки;
  • MAX_DISCOUNT - максимальная величина скидки;
  • VALUE_TYPE - тип скидки (P - в процентах, F - фиксированная величина, S - Установить цену на товар);
  • VALUE - величина скидки;
  • CURRENCY - валюта;
  • RENEWAL - флаг "Скидка на продление";
  • ACTIVE_FROM - дата начала действия скидки;
  • ACTIVE_TO - дата окончания действия скидки;
  • IBLOCK_IDS - массив кодов инфоблоков, на которые действует скидка (если скидка действует не на все инфоблоки). Ключ является устаревшим с версии 12.0.0;
  • PRODUCT_IDS - массив кодов товаров, на которые действует скидка (если скидка действует не на все товары). Ключ является устаревшим с версии 12.0.0;
  • SECTION_IDS - массив кодов групп товаров, на которые действует скидка (если скидка действует не на все группы товары). Ключ является устаревшим с версии 12.0.0;
  • GROUP_IDS - массив кодов групп пользователей, на которые действует скидка (если скидка действует не на все группы пользователей);
  • CATALOG_GROUP_IDS - массив кодов типов цен, на которые действует скидка (если скидка действует не на все типы цен);
  • CONDITIONS - массив для изменения условий использования скидки. Массив перезаписывается, поэтому при обновлении скидки следует добавлять в массив все необходимые данные. Ключ доступен с версии 12.0.0.

    Если он задан и не пуст, то массивы PRODUCT_IDS, SECTION_IDS и IBLOCK_IDS использоваться не будут. Чтобы задать параметры скидки через эти 3 ключа, то CONDITIONS в массиве arFields должен отсутствовать, а старые данные будут изменены в соответствии PRODUCT_IDS, SECTION_IDS и IBLOCK_IDS.

    Каждое условие массива CONDITIONS описывается массивом следующей структуры:
    • CLASS_ID - идентификатор (строка);
    • DATA => array() - массив параметров условий;
    • CHILDREN => array() - массив подусловий, каждое из которых является массивом аналогичной структуры, где ключами являются значения 0,1,2,3,..

    Возможные логические условия:
    • Equal - равно;
    • Not - не равно;
    • Great - больше;
    • Less - меньше;
    • EqGr - больше либо равно;
    • EqLs - меньше либо равно.

    Наименования условий:
    • CondIBElement - товар;
    • CondIBIBlock - инфоблок;
    • CondIBSection - раздел;
    • CondIBCode - символьный код;
    • CondIBXmlID - внешний код;
    • CondIBName - название;
    • CondIBActive - активность;
    • CondIBDateActiveFrom - начало активности;
    • CondIBDateActiveTo - окончание активности;
    • CondIBSort - сортировка;
    • CondIBPreviewText - описание для анонса;
    • CondIBDetailText - детальное описание;
    • CondIBDateCreate - дата создания;
    • CondIBCreatedBy - автор;
    • CondIBTimestampX - дата изменения;
    • CondIBModifiedBy - изменивший;
    • CondIBTags - теги;
    • CondCatQuantity - количество товара на складе;
    • CondCatWeight - вес товара;
    • CondCatVatID - НДС;
    • CondCatVatIncluded - НДС включен в цену.

    Кроме того, возможна привязка условий к свойствам товара.

    Верхний элемент массива CONDITIONS всегда один и тот же (для скидок каталога может быть получен методом CCatalogCondTree::GetDefaultConditions()):
    array(
         'CLASS_ID' => 'CondGroup',
         'DATA' => array('All' => 'AND', 'True' => 'True'),
         'CHILDREN' => array()
);

Возвращаемые значения

Метод возвращает код измененной записи или false в случае ошибки.

Примеры использования

Получить детальную информацию об ошибке при изменении можно следующим образом:

$res = CCatalogDiscount::Update($ID, $arFields);
if (!$res) {
    $ex = $APPLICATION->GetException();
    $ex->GetString();
}

Пример массива arFields:

$arFields = array(
   "SITE_ID" => "s1",
   "MAX_DISCOUNT" => 0,
   "VALUE" => 15,
   "ACTIVE" => "Y",
   "CONDITIONS" =>  array (
      'CLASS_ID' => 'CondGroup',
      'DATA' =>
      array (
         'All' => 'AND',
         'True' => 'True',
      ),
      'CHILDREN' =>
      array (
         0 =>
         array (
            'CLASS_ID' => 'CondIBElement',
            'DATA' =>
            array (
               'logic' => 'Equal',
               'value' => 2975, //товар с ID=2975
            ),
         ),
         1 =>
         array (
            'CLASS_ID' => 'CondCatQuantity',
            'DATA' =>
            array (
               'logic' => 'Equal',
               'value' => 10, //остаток на складе равен 10
            ),
         ),
      ),
   )
);


CCatalogDiscountCoupon

CCatalogDiscountCoupon - класс для работы с купонами скидок.

Методы класса

Метод | Описание | С версии
Add | добавляет купон для выбранной скидки. | 5.1.0
CheckFields | проверяет информацию о купоне перед добавлением или обновлением. | 5.1.0
ClearCoupon | очищает массив купонов, введенных текущим покупателем. | 12.0.0
Delete | удаляет купон. | 5.1.0
DeleteByDiscountID | удаляет все купоны для выбранной скидки. | 5.1.0
GetByID | возвращает информацию о купоне по его коду (ID). | 5.1.0
GetList | выбирает купоны, соответствующие условиям. | 5.1.0
IsExistCoupon | проверяет существование купона. | 14.0.0
GetCoupons | возвращает массив доступных для получения скидки купонов текущего покупателя. | 12.0.0
GetCoupontTypes | возвращает массив имеющихся на сайте типов купонов. | 12.5.1
SetCoupon | добавляет код купона coupon в массив доступных для получения скидки купонов текущего покупателя. | 12.0.0
Update | обновляет информацию о купоне. | 5.1.0

Константы класса

Константа | Значение | Описание | С версии
TYPE_ONE_TIME | Y | Купон на одну позицию заказа. | 12.5.0
TYPE_ONE_ORDER | O | Купон на один заказ. | 12.5.0
TYPE_NO_LIMIT | N | Многоразовый купон. | 12.5.0


Add

Торговый каталог>Классы>CCatalogDiscountCoupon>Add (доступен с 5.1.0)

CCatalogDiscountCoupon::Add

Описание и параметры

mixed
CCatalogDiscountCoupon::Add (
array arFields
boolean $bAffectDataFile = True
);

Метод добавляет купон для выбранной скидки. Нестатический метод.

Параметры вызова

Параметр Описание С версии До версии
arFields Ассоциативный массив параметров нового купона, ключами в котором являются названия параметров, а значениями - соответствующие значения:
  • DISCOUNT_ID - код (ID) скидки (обязательный)
  • ACTIVE - активность купона (Y|N) (необязательный), по умолчанию - Y
  • ONE_TIME - флаг одноразовости купона (необязательный). Может принимать одно из трёх значений: Y - на одну позицию заказа, O - на весь заказ, N - многоразовый, по умолчанию - Y.
  • COUPON - код купона (обязательный)
  • DATE_APPLY - дата применения купона (необязательный), если указать - одноразовый купон будет считаться использованным
  • DESCRIPTION - комментарий (необязательный)
Необязательные ключи, отсутствующие в массиве, получат значения по умолчанию.
bAffectDataFile Необязательный параметр, указывающий на необходимость перегенерировать файл скидок и купонов. Эти действия осуществляет метод CCatalogDiscount::GenerateDataFile().

Примечание: начиная с версии 12.0 параметр не требуется, т.к. с этой версии больше не используется файловый кеш скидок.
5.1.1 12.0.0

Возвращаемое значение

Метод возвращает код (ID) купона в случае успешного создания и false, если произошла ошибка. Для получения детальной информации об ошибке следует вызвать $APPLICATION->GetException().

Перед добавлением записи в таблицу осуществляется проверка параметров привязки методом CCatalogDiscountCoupon::CheckFields. Если проверка прошла успешно, производится запись в базу.

Смотрите также

  • Структура таблицы
  • CCatalogDiscountCoupon::CheckFields
  • CCatalogDiscountCoupon::Update

Перед использованием метода необходимо сгенерировать код купона функцией CatalogGenerateCoupon().

Примеры использования

if (CModule::IncludeModule("catalog"))
{
    $COUPON = CatalogGenerateCoupon();

    $arCouponFields = array(
        "DISCOUNT_ID" => "4",
        "ACTIVE" => "Y",
        "ONE_TIME" => "Y",
        "COUPON" => $COUPON,
        "DATE_APPLY" => false
    );

    $CID = CCatalogDiscountCoupon::Add($arCouponFields);
    $CID = IntVal($CID);
    if ($CID <= 0)
    {
        $ex = $APPLICATION->GetException();
        $errorMessage = $ex->GetString();
        echo $errorMessage;
    }
}


CheckFields

Торговый каталог>Классы>CCatalogDiscountCoupon>CheckFields (доступен с 5.1.0)

CCatalogDiscountCoupon::CheckFields

Описание и параметры

boolean
CCatalogDiscountCoupon::CheckFields (
string $ACTION,
array &$arFields,
int $ID = 0
);

Метод служит для проверки (и корректировки, если это возможно) параметров, переданных в методы CCatalogDiscountCoupon::Add и CCatalogDiscountCoupon::Update. Нестатический метод.

Параметры вызова

Параметр | Описание
ACTION указывает, для какого метода идет проверка. Возможные значения:
  • ADD - для метода CCatalogDiscountCoupon::Add;
  • UPDATE - для метода CCatalogDiscountCoupon::Update.
arFields Ассоциативный массив параметров купона. Массив передается по ссылке и его значения могут быть изменены методом.
Допустимые ключи:
  • DISCOUNT_ID - код (ID) скидки;
  • ACTIVE - флаг активности купона (Y/N);
  • ONE_TIME - флаг однократного использования купона (Y|N);
  • COUPON - код купона;
  • DATE_APPLY - дата применения купона;
  • DESCRIPTION - комментарий.
ID | код (ID) купона (только для CCatalogDiscountCoupon::Update).

Возвращаемое значение

В случае корректности переданных параметров возвращает true, иначе - false. Если метод вернул false, с помощью $APPLICATION->GetException() можно получить текст ошибок.

Обязательные проверки

  • для CCatalogDiscountCoupon::Add
    • поле DISCOUNT_ID присутствует и содержит код (ID) существующей скидки;
    • если поле ACTIVE не существует или не равно N, ему присваивается значение Y;
    • если поле ONE_TIME не существует или не равно N, ему присваивается значение Y;
    • поле COUPON существует и содержит уникальный код, отсутствующий в списке купонов;
    • если поле DATE_APPLY не существует или не содержит корректную дату, ему присваивается значение false.

  • для CCatalogDiscountCoupon::Update
    • если поле DISCOUNT_ID присутствует, оно должно содержать код (ID) существующей скидки;
    • если поле ACTIVE существует и не равно N, ему присваивается значение Y;
    • если поле ONE_TIME существует и не равно N, ему присваивается значение Y;
    • если поле COUPON существует, оно содержит уникальный код, заданный только для этого купона (с таким ID);
    • если поле DATE_APPLY существует и содержит некорректную дату, ему присваивается значение false.

Смотрите также

  • Структура таблицы
  • CCatalogDiscountCoupon::Add
  • CCatalogDiscountCoupon::Update


ClearCoupon

Торговый каталог>Классы>CCatalogDiscountCoupon>ClearCoupon (доступен с 12.0.0, устарел с 15.0.4)

CCatalogDiscountCoupon::ClearCoupon

void CCatalogDiscountCoupon::ClearCoupon();

Метод очищает массив купонов, введенных текущим покупателем. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов. Нестатический метод.

Внимание! Метод устарел, используйте его замену: \Bitrix\Sale\DiscountCouponsManager::clear [image].

Параметры вызова

Без параметров.

Возвращаемые значения

Метод не возвращает значений.


Delete

Торговый каталог>Классы>CCatalogDiscountCoupon>Delete (доступен с 5.1.0)

CCatalogDiscountCoupon::Delete

mixed
CCatalogDiscountCoupon::Delete (
int $ID,
boolean $bAffectDataFile = True
);

Метод удаляет купон. Нестатический метод.

Параметры вызова

Параметр | Описание | С версии | До версии
ID | Код (ID) купона. |  |
bAffectDataFile | Необязательный параметр, указывающий на необходимость перегенерировать файл скидок и купонов. Эти действия осуществляет метод CCatalogDiscount::GenerateDataFile(). Начиная с версии 12.0 параметр не требуется, т.к. с этой версии больше не используется файловый кеш скидок. | 5.1.1 | 12.0.0

Возвращаемое значение

Метод возвращает true в случае успешного удаления и false, если произошла ошибка.


DeleteByDiscountID

Торговый каталог>Классы>CCatalogDiscountCoupon>DeleteByDiscountID (доступен с 5.1.0)

CCatalogDiscountCoupon::DeleteByDiscountID

boolean
CCatalogDiscountCoupon::CheckFields (
int $ID,
boolean $bAffectDataFile = true
);

Метод удаляет все купоны для выбранной скидки и перегенерирует файл скидок и купонов. Нестатический метод.

Параметры вызова

Параметр | Описание | С версии | До версии
ID | Код (ID) скидки. |  |
bAffectDataFile | Необязательный параметр, указывающий на необходимость перегенерировать файл скидок и купонов. Эти действия осуществляются методами CCatalogDiscount::ClearFile() и CCatalogDiscount::GenerateDataFile(). Примечание: начиная с версии 12.0 параметр не требуется, т.к. с этой версии больше не используется файловый кеш скидок. | 5.1.1 | 12.0.0

Возвращаемое значение

Возвращает true в случае успеха и false, если произошла ошибка.


GetByID

Торговый каталог>Классы>CCatalogDiscountCoupon>GetByID (доступен с 5.1.0)

CCatalogDiscountCoupon::GetByID

Описание и параметры

mixed
CCatalogDiscountCoupon::GetByID (
int $ID
);

Метод возвращает информацию о купоне с заданным ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код (ID) купона.

Возвращаемое значение

Метод возвращает массив параметров купона либо false, если купон с таким ID не найден.

Смотрите также

  • Структура таблицы
  • CCatalogDiscountCoupon::GetList

Примеры использования

Выбор купона

$ID = 40;
$arCoupon = CCatalogDiscountCoupon::GetByID($ID);
if (empty($arCoupon))
{
    ShowError('Купон не найден');
}
else
{
    echo 'Код купона: '.$arCoupon['COUPON'];
}


GetCoupons

Торговый каталог>Классы>CCatalogDiscountCoupon>GetCoupons (доступен с 12.0.0, устарел с 15.0.4)

CCatalogDiscountCoupon::GetCoupons

array
CCatalogDiscountCoupon::GetCoupons();

Метод возвращает массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов. Нестатический метод.

Внимание! Метод устарел, используйте его замену: \Bitrix\Sale\DiscountCouponsManager::get [image].

Параметры вызова

Без параметров.

Возвращаемые значения

Метод возвращает массив купонов текущего пользователя.


GetCoupontTypes

Торговый каталог>Классы>CCatalogDiscountCoupon>GetCoupontTypes (доступен с 12.5.1, устарел с версии 15.0.7)

CCatalogDiscountCoupon::GetCoupontTypes

array
CCatalogDiscountCoupon::GetCoupontTypes(
 boolean boolFull = false
);

Возвращает массив имеющихся на сайте типов купонов. Нестатический метод.

Внимание! Метод устарел, используйте его замену: \Bitrix\Catalog\DiscountCouponTable::getCouponTypes [image].

Параметры вызова

Параметр | Описание
boolFull | Параметр определяет в каком виде возвращать массив типов купонов: в кратком (false) или в развернутом (true).

Возвращаемое значение

Возвращает массив типов купонов:

  • если $boolFull == false, то вернется массив, содержащий типы купонов в качестве элементов массива;

  • если $boolFull == true, типы купонов будут ключами массива, а значениями - названия типов:
      [Y] => Купон на одну позицию заказа
      [O] => Купон на один заказ
      [N] => Многоразовый купон


GetList

Торговый каталог>Классы>CCatalogDiscountCoupon>GetList (доступен с 5.1.0)

CCatalogDiscountCoupon::GetList

Описание и параметры

CDBResult
CCatalogDiscountCoupon::GetList (
array $arOrder = array(),
array $arFilter = array(),
mixed $arGroupBy = false,
mixed $arNavStartParams = false,
array $arSelectFields = array()
);

Метод выбирает купоны, соответствующие условиям. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив вида array(by1=>order1[, by2=>order2 [, ..]]), где by - поле для сортировки, может принимать значения:
  • ID - код (ID) купона;
  • DISCOUNT_ID - код (ID) скидки;
  • ACTIVE - активность купона;
  • ONE_TIME - флаг однократного использования купона;
  • COUPON - код купона;
  • DATE_APPLY - дата применения купона;
поле order - направление сортировки, может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию.
Необязательный. По умолчанию купоны не сортируются.
arFilter Массив параметров, по которым строится фильтр выборки. Имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.
Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
"название поля" может принимать значения:
  • ID - код (ID) купона (число);
  • DISCOUNT_ID - код (ID) скидки (число);
  • ACTIVE - фильтр по активности (Y|N); передача пустого значения ("ACTIVE"=>"") выводит купоны без учета их состояния (строка);
  • ONE_TIME - флаг однократного использования купона (Y|N); передача пустого значения ("ONE_TIME"=>"") выводит купоны без учета их типа (строка);
  • COUPON - код купона (маска);
  • DATE_APPLY - дата применения купона (дата);
  • DESCRIPTION - комментарий (маска);
Значения фильтра - одиночное значение или массив значений.
Необязательное. По умолчанию купоны не фильтруются.
arGroupBy Массив полей для группировки купонов. имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле каталога.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.
Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Необязательный. По умолчанию false - купоны не ограничиваются.
arSelectedFields Массив полей записей, которые будут возвращены методом. Можно указать следующие поля ID, DISCOUNT_ID, ACTIVE, ONE_TIME, COUPON, DATE_APPLY, DISCOUNT_NAME и DESCRIPTION.
Если в массиве присутствует значение "*", то будут возвращены все доступные поля.
Необязательный. По умолчанию выводятся все поля.

Возвращаемое значение

Метод возвращает объект класса CDBResult.

Смотрите также

  • Структура таблицы
  • CCatalogDiscountCoupon::GetByID

Примеры использования

Пример проверки получения купона по "Коду купона":

if (CModule::IncludeModule("catalog"))
{
   $arFilter = array('COUPON' => 'CP-R8RFW-5YGGPZJ');
   $dbCoupon = CCatalogDiscountCoupon::GetList (array(), $arFilter);
   if($arCoupon = $dbCoupon->Fetch())
   {
       echo "<pre>";
       print_r($arCoupon);
       echo "</pre>";
   }
   else
   {
       echo "купона нет";
   }
}


IsExistCoupon

Торговый каталог>Классы>CCatalogDiscountCoupon>IsExistCoupon (доступен с 14.0.0, устарел с 15.0.4)

CCatalogDiscountCoupon::IsExistCoupon

bool
CCatalogDiscountCoupon::IsExistCoupon(
  string strCoupon
);

Метод проверяет существование купона. Нестатический метод.

Внимание! Метод устарел, используйте его замену: \Bitrix\Sale\DiscountCouponsManager::isExist [image].

Параметры вызова

Параметр | Описание
strCoupon | Код купона.

Возвращаемое значение

В случае наличия купона возвращает true, иначе - false.


SetCoupon

Торговый каталог>Классы>CCatalogDiscountCoupon>SetCoupon (доступен с 12.0.0, устарел с версии 15.0.4)

CCatalogDiscountCoupon::SetCoupon

bool
CCatalogDiscountCoupon::SetCoupon(
 string coupon
);

Метод добавляет код купона coupon в массив доступных для получения скидки купонов текущего покупателя. Система вычисляет минимальную для данного покупателя цену товара с учётом всех его скидок и купонов. Нестатический метод.

Внимание! Метод устарел, используйте его замену: \Bitrix\Sale\DiscountCouponsManager::add [image].

Параметры вызова

Параметр | Описание
coupon | Код купона.

Возвращаемые значения

Метод возвращает true в случае успешного добавления кода купона и false в случае ошибки.


Update

Торговый каталог>Классы>CCatalogDiscountCoupon>Update (доступен с 5.1.0)

CCatalogDiscountCoupon::Update

Описание и параметры

mixed
CCatalogDiscountCoupon::Update (
int $ID,
array arFields
);

Метод обновляет информацию о купоне. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код (ID) купона.
arFields Ассоциативный массив параметров купона. Может содержать следующие ключи:
  • DISCOUNT_ID - код (ID) скидки;
  • ACTIVE - активность купона (Y|N);
  • ONE_TIME - флаг одноразовости купона (Y|N);
  • COUPON - код купона;
  • DATE_APPLY - дата применения купона;
  • DESCRIPTION - комментарий.
Ключи, не указанные в массиве, изменяться не будут.
Если массив пустой, обращения к базе не будет.

Возвращаемое значение

Метод возвращает код (ID) купона, если запись существует, была успешно изменена либо не изменялась (пустой массив) и false - если произошла ошибка. Для получения детальной информации об ошибке следует вызвать $APPLICATION->GetException().

Перед изменением записи в таблице осуществляется проверка параметров привязки методом CCatalogDiscountCoupon::CheckFields. Если проверка прошла успешно и массив не пуст, запись изменяется.

Смотрите также

  • Структура таблицы
  • CCatalogDiscountCoupon::CheckFields
  • CCatalogDiscountCoupon::Add


CCatalogExport

Методы класса

Метод | Описание | С версии
Add | Метод добавляет новый профиль экспорта. | 3.3.3
CheckFields | Метод служит для проверки параметров, переданных в методы CCatalogExport::Add и CCatalogExport::Update. | 3.3.3
Delete | Метод удаляет профиль экспорта с кодом ID. | 3.3.3
GetByID | Метод возвращает информацию о профиле экспорта с заданным ID. | 3.3.3
GetList | Возвращает список профилей экспорта по фильтру arFilter, отсортированый в соответствии с arOrder. | 3.3.3
PreGenerateExport | Метод выполняет профиль profile_id на агенте. | 3.3.3
Update | Метод изменяет параметры профиля экспорта с кодом ID на значения из массива arFields. | 3.3.3


Add

Торговый каталог>Классы>CCatalogExport>Add (доступен с 3.3.3)

CCatalogExport::Add

mixed
CCatalogExport::Add(
   array arFields
);

Метод добавляет новый профиль экспорта. Нестатический метод.

Примечание: в данном методе отключена возможность заносить значения в обход CheckFields, кроме одного исключения:
"=LAST_USE" => $DB->GetNowFunction()

Параметры вызова

Параметр Описание
arFields Доступные поля:
  • CREATED_BY - ID создавшего профиль. Если значение данного поля не передается, то оно будет взято из параметра CUser при наличии $USER и авторизованности. В противном случае значение данного поля будет выставлено в NULL;
  • MODIFIED_BY - ID изменившего профиль. Если значение данного поля не передается, то оно будет взято из параметра CUser при наличии $USER и авторизованности. В противном случае значение данного поля будет выставлено в NULL;
  • TIMESTAMP_X - время последнего изменения профиля в формате сайта. Значение данного поля невозможно задать вручную;
  • DATE_CREATE - дата создания профиля в формате сайта. Значение данного поля невозможно задать вручную;
  • FILE_NAME - имя файла профиля со скриптом, осуществляющего экспорт;
  • NAME - название профиля экспорта;
  • IN_MENU - [Y|N] флаг отображения профиля в административном меню;
  • DEFAULT_PROFILE - [Y|N] признак использования профиля по умолчанию;
  • IN_AGENT - [Y|N] флаг наличия агента, осуществляющего автоматическое выполнение профиля экспорта;
  • IN_CRON - [Y|N] флаг привязки профиля к утилите cron для автоматической периодической выгрузки (только для Unix-систем);
  • SETUP_VARS - параметры настройки профиля в виде url-строки;
  • NEED_EDIT - [Y|N] флаг означает неполную настройку профиля (до тех пор, пока профиль не будет отредактирован, он выполняться не будет).

Возвращаемое значение

Метод возвращает код вставленной записи или false в случае ошибки.


CheckFields

Торговый каталог>Классы>CCatalogExport>CheckFields (доступен с 3.3.3)

CCatalogExport::CheckFields

Описание и параметры

bool
CCatalogExport::CheckFields(
  string ACTION,
  array &arFields
);

Метод служит для проверки параметров, переданных в методы CCatalogExport::Add и CCatalogExport::Update. Нестатический метод.

Параметры вызова

Параметр Описание
ACTION Указывает, для какого метода идет проверка. Возможные значения:
  • ADD - для метода CCatalogExport::Add;
  • UPDATE - для метода CCatalogExport::Update.
arFields Ассоциативный массив параметров профиля экспорта. Допустимые ключи:
  • CREATED_BY - ID пользователя, создавшего профиль;
  • MODIFIED_BY - ID пользователя, изменившего профиль;
  • TIMESTAMP_X - время последнего изменения профиля в формате сайта;
  • DATE_CREATE - дата создания профиля в формате сайта;
  • FILE_NAME - имя файла профиля со скриптом, осуществляющего экспорт. Ключ является обязательным, если $ACTION = 'ADD';
  • NAME - название профиля экспорта. Ключ является обязательным, если $ACTION = 'ADD';
  • IN_MENU - [Y|N] флаг отображения профиля в административном меню;
  • DEFAULT_PROFILE - [Y|N] признак использования профиля по умолчанию;
  • IN_AGENT - [Y|N] флаг наличия агента, осуществляющего автоматическое выполнение профиля экспорта;
  • IN_CRON - [Y|N] флаг привязки профиля к утилите cron для автоматической периодической выгрузки (только для Unix-систем);
  • NEED_EDIT - [Y|N] флаг означает неполную настройку профиля (до тех пор, пока профиль не будет отредактирован, он выполняться не будет).

Возвращаемое значение

В случае корректности переданных параметров возвращает true, иначе - false.

Смотрите также

  • CCatalogExport::Add
  • CCatalogExport::Update


Delete

Торговый каталог>Классы>CCatalogExport>Delete (доступен с 3.3.3)

CCatalogExport::Delete

bool
CCatalogExport::Delete(
  int ID
);

Метод удаляет профиль экспорта с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код удаляемого профиля экспорта.

Возвращаемое значение

Возвращает true в случае успешного удаления и false - в противном случае.


GetByID

Торговый каталог>Классы>CCatalogExport>GetByID (доступен с 3.3.3)

CCatalogExport::GetByID

array
CCatalogExport::GetByID(
   int ID
);

Метод возвращает информацию о профиле экспорта с заданным ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код записи.

Возвращаемое значение

Метод возвращает ассоциативный массив параметров профиля с ключами:

  • ID - код записи;
  • FILE_NAME - имя файла профиля со скриптом, осуществляющего экспорт;
  • NAME - название профиля экспорта;
  • IN_MENU - [Y|N] флаг отображения профиля в административном меню;
  • IN_AGENT -[Y|N] флаг наличия агента, осуществляющего автоматическое выполнение профиля экспорта;
  • IN_CRON - [Y|N] флаг привязки профиля к утилите cron для автоматической периодической выгрузки;
  • SETUP_VARS - параметры настройки профиля в виде url-строки;
  • DEFAULT_PROFILE - [Y|N] флаг использования профиля по умолчанию;
  • LAST_USE - дата и время последнего выполнения профиля в формате базы;
  • NEED_EDIT - [Y|N] флаг означает неполную настройку профиля (до тех пор, пока профиль не будет отредактирован, он выполняться не будет);
  • LAST_USE_FORMAT - дата и время последнего использования профиля в формате сайта;
  • CREATED_BY - ID пользователя, создавшего профиль;
  • MODIFIED_BY - ID пользователя, изменившего профиль;
  • TIMESTAMP_X - дата и время последнего изменения профиля в формате сайта;
  • DATE_CREATE - дата и время создания профиля в формате сайта.


GetList

Торговый каталог>Классы>CCatalogExport>GetList (доступен с 3.3.3)

CCatalogExport::GetList

Описание и параметры

CDBResult
CCatalogExport::GetList(
  array arOrder = array("ID"=>"ASC"),
  array arFilter = array(),
  bool bCount = false
);

Возвращает список профилей экспорта по фильтру arFilter, отсортированый в соответствии с arOrder. Нестатический метод.

Параметры вызова

Параметр | Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" могут использоваться:
  • NAME - название профиля экспорта;
  • FILE_NAME - имя файла профиля со скриптом, осуществляющего экспорт;
  • DEFAULT_PROFILE - Y|N] флаг использования профиля по умолчанию;
  • IN_MENU - [Y|N] флаг отображения профиля в административном меню;
  • LAST_USE - дата и время последнего выполнения профиля в формате базы;
  • IN_AGENT -[Y|N] флаг наличия агента, осуществляющего автоматическое выполнение профиля экспорта;
  • IN_CRON - [Y|N] флаг привязки профиля к утилите cron для автоматической периодической выгрузки;
  • NEED_EDIT - [Y|N] флаг означает неполную настройку профиля (до тех пор, пока профиль не будет отредактирован, он выполняться не будет).
Попытка сортировки по остальным полям профиля приведет к сортировке по ID.

В качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).
arFilter Массив, в соответствии с которым фильтруются записи профилей экспорта. Массив имеет вид:
array(
"[модификатор]название_поля1" => "значение1",
"[модификатор]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимым является следующий модификатор:
  • ! - отрицание;
В качестве "название_поляX" может стоять любое поле профиля экспорта, кроме SETUP_VARS, TIMESTAMP_X и DATE_CREATE.
bCount | Если параметр равен true, то возвращается только количество профилей, которое соответствует установленному фильтру. Необязательный. По умолчанию равен false.

Возвращаемое значение

Возвращается объект класса CDBResult, содержащий коллекцию ассоциативных массивов с ключами:

  • ID - код записи;
  • FILE_NAME - имя файла профиля со скриптом, осуществляющего экспорт;
  • NAME - название профиля экспорта;
  • IN_MENU - [Y|N] флаг отображения профиля в административном меню;
  • IN_AGENT -[Y|N] флаг наличия агента, осуществляющего автоматическое выполнение профиля экспорта;
  • IN_CRON - [Y|N] флаг привязки профиля к утилите cron для автоматической периодической выгрузки;
  • SETUP_VARS - параметры настройки профиля в виде url-строки;
  • DEFAULT_PROFILE - [Y|N] флаг использования профиля по умолчанию;
  • LAST_USE - дата и время последнего выполнения профиля в формате базы;
  • NEED_EDIT - [Y|N] флаг означает неполную настройку профиля (до тех пор, пока профиль не будет отредактирован, он выполняться не будет);
  • LAST_USE_FORMAT - дата и время последнего использования профиля в формате сайта;
  • CREATED_BY - ID пользователя, создавшего профиль;
  • MODIFIED_BY - ID пользователя, изменившего профиль;
  • TIMESTAMP_X - дата и время последнего изменения профиля в формате сайта;
  • DATE_CREATE - дата и время создания профиля в формате сайта.


PreGenerateExport

Торговый каталог>Классы>CCatalogExport>PreGenerateExport (доступен с 3.3.3)

CCatalogExport::PreGenerateExport

mixed
CCatalogExport::PreGenerateExport(
  int profile_id
);

Метод выполняет профиль profile_id на агенте. Нестатический метод.

Параметры вызова

Параметр | Описание
profile_id | Код выполняемого профиля.

Возвращаемое значение

В случае успешного выполнения профиля экспорта метод возвращает строку для следующего вызова агента. В противном случае метод вернет false.


Update

Торговый каталог>Классы>CCatalogExport>Update (доступен с 3.3.3)

CCatalogExport::Update

bool
CCatalogExport::Update(
  int ID,
  array arFields
);

Метод изменяет параметры профиля экспорта с кодом ID на значения из массива arFields. Нестатический метод.

Примечание: в данном методе отключена возможность заносить значения в обход CheckFields, кроме одного исключения:
"=LAST_USE" => $DB->GetNowFunction()

Параметры вызова

Параметр | Описание
ID | Код изменяемого профиля экспорта.
arFields Ассоциативный массив параметров профиля экспорта, ключами которого являются названия параметров, а значениями - новые значения. Допустимые параметры:
  • MODIFIED_BY - ID пользователя, изменившего профиль;
  • FILE_NAME - имя файла профиля со скриптом, осуществляющего экспорт;
  • NAME - название профиля экспорта;
  • IN_MENU - [Y|N] флаг отображения профиля в административном меню;
  • DEFAULT_PROFILE - [Y|N] признак использования профиля по умолчанию;
  • IN_AGENT - [Y|N] флаг наличия агента, осуществляющего автоматическое выполнение профиля экспорта;
  • IN_CRON - [Y|N] флаг привязки профиля к утилите cron для автоматической периодической выгрузки (только для Unix-систем);
  • SETUP_VARS - параметры настройки профиля в виде url-строки;
  • NEED_EDIT - [Y|N] флаг означает неполную настройку профиля (до тех пор, пока профиль не будет отредактирован, он выполняться не будет).

Возвращаемое значение

Возвращает true в случае успешного изменения параметров профиля экспорта и false - в случае ошибки.


CCatalogGroup

Методы класса

Метод | Описание | С версии
Add | Метод добавляет новый тип цен. При этом сохраняются как языкозависимые параметры типа, так и параметры, которые не зависят от языка. Так же есть возможность указать группы пользователей, члены которых могут просматривать и покупать товары по ценам этого типа. | 3.3.5
CheckFields | Метод служит для проверки параметров, переданных в методы CCatalogGroup::Add и CCatalogGroup::Update. | 4.0.4
Delete | Метод удаляет тип цены с кодом ID. При этом цены этого типа так же удаляются. Базовый тип цен удалить невозможно. | 3.3.5
GetBaseGroup | Метод возвращает код и внутреннее название базового типа цен. Результат работы метода кешируется, поэтому повторные вызовы этого метода в рамках одной страницы не приводят к дополнительным запросам базы данных. | 3.3.5
GetByID | Метод возвращает параметры типа цен с кодом ID, включая языкозависимые параметры для языка lang. | 3.3.5
GetGroupsList | Метод возвращает записи из таблицы связей между типами цен и группами пользователей сайта по фильтру arFilter. | 3.3.5
GetLangList | Метод возвращает языкозависимые названия типов цен. | 12.0.9
GetList | Метод возвращает результат выборки записей из типов цен каталога в соответствии со своими параметрами. | 3.3.5
Update | Метод изменяет параметры типа цены с кодом ID на значения из массива arFields. При этом сохраняются как языкозависимые параметры типа, так и параметры, которые не зависят от языка. Так же есть возможность указать группы пользователей, члены которых могут просматривать и покупать товары по ценам этого типа. | 3.3.5


Add

Торговый каталог>Классы>CCatalogGroup>Add (доступен с 3.3.5)

CCatalogGroup::Add

Описание и параметры

int
CCatalogGroup::Add(
 array arFields
);

Метод добавляет новый тип цен. При этом сохраняются как языкозависимые параметры типа, так и параметры, которые не зависят от языка. Так же есть возможность указать группы пользователей, члены которых могут просматривать и покупать товары по ценам этого типа. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров типа цены, ключами которого являются названия параметров, а значениями - новые значения.
Допустимые параметры:
  • BASE - флаг (Y/N) является ли тип базовым (если для добавляемого типа цен указано Y и в системе уже есть некоторый базовый тип цен, то флаг с существующего типа будет снят);
  • NAME - внутреннее название типа цены;
  • SORT - индекс сортировки;
  • XML_ID - внешний код;
  • CREATED_BY - ID создателя типа цен;
  • MODIFIED_BY - ID последнего изменившего тип цен;
  • USER_GROUP - массив кодов групп пользователей, члены которых могут видеть цены этого типа;
  • USER_GROUP_BUY - массив кодов групп пользователей, члены которых могут покупать товары по ценам этого типа;
  • USER_LANG - ассоциативный массив языкозависимых параметров типа цены, ключами которого являются коды языков, а значениями - названия этого типа цены на соответствующем языке.

Возвращаемые значения

Возвращает код добавленного типа цены или false в случае ошибки

Примеры использования

<?
$arFields = array(
   "NAME" => "retail",
   "SORT" => 100,
   "USER_GROUP" => array(2, 4),   // видят цены члены групп 2 и 4
   "USER_GROUP_BUY" => array(2),  // покупают по этой цене
                                  // только члены группы 2
   "USER_LANG" => array(
      "ru" => "Розничная",
      "en" => "Retail"
      )
);

$ID = CCatalogGroup::Add($arFields);
if ($ID<=0)
   echo "Ошибка добавления типа цены";
?>


CheckFields

Торговый каталог>Классы>CCatalogGroup>CheckFields (доступен с 4.0.4)

CCatalogGroup::CheckFields

Описание и параметры

bool
CCatalogGroup::CheckFields(
 string ACTION,
 array &arFields,
 int ID = 0
);

Метод служит для проверки параметров, переданных в методы CCatalogGroup::Add и CCatalogGroup::Update. Нестатический метод.

Параметры вызова

Параметр | Описание
ACTION Указывает, для какого метода идет проверка. Возможные значения:
  • ADD - для метода CCatalogGroup::Add;
  • UPDATE - для метода CCatalogGroup::Update.
arFields Ассоциативный массив параметров типа цены. Допустимые ключи:
  • BASE - Флаг (Y/N) является ли тип базовым.
  • NAME - Внутреннее название типа цены. Ключ является обязательным, если $ACTION = 'ADD'.
  • SORT - Индекс сортировки.
  • XML_ID - Внешний код.
  • CREATED_BY - ID создателя типа цен.
  • MODIFIED_BY - ID последнего изменившего тип цен.
  • USER_GROUP - Массив кодов групп пользователей, члены которых могут видеть цены этого типа. Ключ является обязательным, если $ACTION = 'ADD'.
  • USER_GROUP_BUY - Массив кодов групп пользователей, члены которых могут покупать товары по ценам этого типа. Ключ является обязательным, если $ACTION = 'ADD'.
  • USER_LANG - Ассоциативный массив языкозависимых параметров типа цены, ключами которого являются коды языков, а значениями - названия этого типа цены на соответствующем языке.
ID | Код типа цен. Параметр является необязательным и имеет смысл только для $ACTION = 'UPDATE'.

Возвращаемое значение

В случае корректности переданных параметров возвращает true, иначе - false. Если метод вернул false, с помощью $APPLICATION->GetException() можно получить текст ошибок.

Смотрите также

  • Структура таблицы
  • CCatalogGroup::Add
  • CCatalogGroup::Update


Delete

Торговый каталог>Классы>CCatalogGroup>Delete (доступен с 3.3.5)

CCatalogGroup::Delete

bool
CCatalogGroup::Delete(
 int ID
);

Метод удаляет тип цены с кодом ID. При этом цены этого типа так же удаляются. Базовый тип цен удалить невозможно. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код удаляемого типа цены.

Возвращаемые значения

Возвращает true в случае успешного удаления и false - в противном случае


GetBaseGroup

Торговый каталог>Классы>CCatalogGroup>GetBaseGroup (доступен с 3.3.5)

CCatalogGroup::GetBaseGroup

array CCatalogGroup::GetBaseGroup();

Метод возвращает код и внутреннее название базового типа цен. Результат работы метода кешируется, поэтому повторные вызовы этого метода в рамках одной страницы не приводят к дополнительным запросам базы данных. Нестатический метод.

От цены базового типа расчитываются цены других типов, если они указаны с использованием системы наценок. Понятие базового типа цены используется только в административной части и не оказывает влияния на публичную часть.

Возвращаемые значения

Метод возвращает ассоциативный массив с ключами:

Ключ | Описание
ID | Код базового типа цен.
NAME | Внутреннее название базового типа цен.
NAME_LANG | Базовая цена.
XML_ID | XML ID базовой цены.


GetByID

Торговый каталог>Классы>CCatalogGroup>GetByID (доступен с 3.3.5)

CCatalogGroup::GetByID

Описание и параметры

array
CCatalogGroup::GetByID(
 int ID,
 string lang = LANGUAGE_ID
);

Метод возвращает параметры типа цен с кодом ID, включая языкозависимые параметры для языка lang. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код типа цены.
lang | Код языка, по умолчанию равен текущему языку.

Возвращаемые значения

Возвращает ассоциативный массив со следующими ключами:

Ключ | Описание | С версии
ID | Код типа цены. |
NAME | Внутреннее название типа цены. |
BASE | Флаг (Y/N) является ли тип базовым. |
SORT | Индекс сортировки. |
XML_ID | Внешний код. | 12.0.9
CAN_ACCESS | Флаг (Y/N) имеет ли текущий пользователь право на видеть цены этого типа. |
CAN_BUY | Флаг (Y/N) имеет ли текущий пользователь право покупать товары по ценам этого типа. |
NAME_LANG | Название типа цены на языке lang. |
CREATED_BY | Код пользователя, создавшего тип цен. | 12.5.5
MODIFIED_BY | Код последнего пользователя, изменившего тип цен. | 12.5.5
TIMESTAMP_X | Дата последнего изменения типа цен. | 12.5.5
DATE_CREATE | Дата создания типа цен. | 12.5.5

Примеры использования

<?
$rn = CCatalogGroup::GetByID($ID);
if ($rn["CAN_ACCESS"]=="Y")
   echo "Вы можете видеть цены типа ".$rn["NAME_LANG"]."<br>";
if ($rn["CAN_BUY"]=="Y")
   echo "Вы можете покупать товары по ценам типа ".$rn["NAME_LANG"]."<br>";
?>


GetGroupsList

Торговый каталог>Классы>CCatalogGroup>GetGroupsList (доступен с 3.3.5)

CCatalogGroup::GetGroupsList

Описание и параметры

CDBResult
CCatalogGroup::GetGroupsList(
 array arFilter = Array()
);

Метод возвращает записи из таблицы связей между типами цен и группами пользователей сайта по фильтру arFilter. Нестатический метод.

Параметры вызова

Параметр Описание
arFilter Фильтр задается в виде ассоциативного массива, ключами в котором являются названия полей, а значениями - условия на значения.
Допустимые ключи:
  • CATALOG_GROUP_ID - код типа цен;
  • GROUP_ID - код группы пользователей;
  • BUY - флаг со значениями: Y - запись о разрешении пользователям данной группы покупать товары по ценам данного типа, N - запись о разрешении пользователям данной группы видеть цены данного типа;
  • ID - код записи

Возвращаемые значения

Объект класса CDBResult, содержащий набор ассоциативных массивов с ключами

Ключ | Описание
ID | Код записи.
CATALOG_GROUP_ID | Код типа цен.
GROUP_ID | Код группы пользователей.
BUY | Флаг со значениями: Y - запись о разрешении пользователям данной группы покупать товары по ценам данного типа, N - запись о разрешении пользователям данной группы видеть цены данного типа.

Примеры использования

<?
// Выберем коды типов цен, по которым все пользователи
// (т.е. группа 2) могут покупать товары
$db_res = CCatalogGroup::GetGroupsList(array("GROUP_ID"=>2, "BUY"=>"Y"));
while ($ar_res = $db_res->Fetch())
{
   echo $ar_res["CATALOG_GROUP_ID"].", ";
}
?>


GetLangList

Торговый каталог>Классы>CCatalogGroup>GetLangList (доступен с 12.0.9)

CCatalogGroup::GetLangList

CDBResult
CCatalogGroup::GetLangList(
 array arFilter = Array()
);

Метод возвращает языкозависимые названия типов цен. Нестатический метод.

Параметры вызова

Параметр Описание
arFilter Фильтр задается в виде ассоциативного массива, ключами в котором являются названия полей, а значениями - условия на значения.
Допустимые ключи:
  • ID - код записи;
  • CATALOG_GROUP_ID - код типа цен;
  • LID - код языка;
  • NAME - название типа цен в зависимости от языка интерфейса.

Возвращаемые значения

Объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Ключ | Описание
ID | Код записи.
CATALOG_GROUP_ID | Код типа цен.
LID | Код языка.
NAME | Название типа цен в зависимости от языка интерфейса.


GetList

Торговый каталог>Классы>CCatalogGroup>GetList (доступен с 3.3.5)

CCatalogGroup::GetList

Описание и параметры

CDBResult
CCatalogGroup::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из типов цен каталога в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле цен каталога, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи типов цен каталога. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле цен каталога.

Пример фильтра:
array("SUBSCRIPTION" => "Y")
Этот фильтр означает "выбрать все записи, в которых значение в поле SUBSCRIPTION (флаг "Продажа контента") равно Y".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи типов цен каталога. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле типов цен каталога.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Ключ | Описание | С версии
ID | Код типа цены. |
NAME | Внутреннее название типа цены. |
BASE | Флаг (Y/N) является ли тип базовым. |
SORT | Индекс сортировки. |
CAN_ACCESS | Флаг (Y/N) имеет ли текущий пользователь право видеть цены этого типа. |
CAN_BUY | Флаг (Y/N) имеет ли текущий пользователь право покупать товары по ценам этого типа. |
NAME_LANG | Название типа цены на языке lang. |
XML_ID | Внешний код. | 12.0.9
CREATED_BY | Код пользователя, создавшего тип цен. | 12.5.5
MODIFIED_BY | Код последнего пользователя, изменившего тип цен. | 12.5.5
TIMESTAMP_X | Дата последнего изменения типа цен. | 12.5.5
DATE_CREATE | Дата создания типа цен. | 12.5.5

Примеры использования

<?
// Выберем типы цен с внутренним именем retail
$dbPriceType = CCatalogGroup::GetList(
        array("SORT" => "ASC"),
        array("NAME" => "retail")
    );
while ($arPriceType = $dbPriceType->Fetch())
{
    echo $arPriceType["NAME_LANG"]." - ".$arPriceType["CAN_ACCESS"]."<br>";
}
?>


GetListArray

Торговый каталог>Классы>CCatalogGroup>GetListArray (доступен с 5.1.1)

CCatalogGroup::GetListArray

array
CCatalogGroup::GetListArray();

Метод возвращает массив типов цен с названием (при наличии) на текущем языке. Работает с управляемым кешем. Метод статический.

Возвращаемые значения

Возвращает массив, где ключом является идентификатор типа цены, а значением - массив следующей структуры:

  • ID - идентификатор типа цены;
  • NAME - код типа цены;
  • BASE - признак того, что тип является базовым или нет (Y/N);
  • SORT - индекс сортировки;
  • XML_ID - внешний код;
  • NAME_LANG - языкозависимое название типа цены.


Update

Торговый каталог>Классы>CCatalogGroup>Update (доступен с 3.3.5)

CCatalogGroup::Update

Описание и параметры

bool
CCatalogGroup::Update(
 int ID,
 array arFields
);

Метод изменяет параметры типа цены с кодом ID на значения из массива arFields. При этом сохраняются как языкозависимые параметры типа, так и параметры, которые не зависят от языка. Так же есть возможность указать группы пользователей, члены которых могут просматривать и покупать товары по ценам этого типа. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код изменяемого типа цены.
arFields Ассоциативный массив параметров типа цены, ключами которого являются названия параметров, а значениями - новые значения. Допустимые параметры:
  • BASE - флаг (Y/N) является ли тип базовым;
  • NAME - внутреннее название типа цены;
  • SORT - индекс сортировки;
  • XML_ID - внешний код;
  • MODIFIED_BY - ID последнего изменившего тип цен;
  • USER_GROUP - массив кодов групп пользователей, члены которых могут видеть цены этого типа;
  • USER_GROUP_BUY - массив кодов групп пользователей, члены которых могут покупать товары по ценам этого типа;
  • USER_LANG - ассоциативный массив языкозависимых параметров типа цены, ключами которого являются коды языков, а значениями - названия этого типа цены на соответствующем языке.

Возвращаемые значения

Возвращает true в случае успешного изменения параметров типа цени и false - в случае ошибки.

Примеры использования

<?
$arFields = array(
   "NAME" => "retail",
   "SORT" => 100,
   "USER_GROUP" => array(2, 4),   // видят цены члены групп 2 и 4
   "USER_GROUP_BUY" => array(2),  // покупают по этой цене
                                  // только члены группы 2
   "USER_LANG" => array(
      "ru" => "Розничная",
      "en" => "Retail"
      )
);

if (!CCatalogGroup::Update($ID, $arFields))
   echo "Ошибка добавления типа цены";
?>


CCatalogIBlockParameters

Данный класс используется в файле .parameters.php компонентов модулей Информационные блоки и Торговый каталог.

Методы класса

Метод | Описание | С версии
CCatalogIBlockParameters | Возвращает перечень полей каталога, по которым можно сортировать. | 12.5.4


GetCatalogSortFields

Торговый каталог>Классы>CCatalogIBlockParameters>GetCatalogSortFields (доступен с 12.5.4)

CCatalogIBlockParameters::GetCatalogSortFields

array
CCatalogIBlockParameters::GetCatalogSortFields();

Метод возвращает массив полей каталога, по которым можно сортировать. Метод статический.

Параметры вызова

Входных параметров нет.

Возвращаемое значение

Возвращаемым значением является массив, где ключи - это поля для сортировки, а значения - названия полей.


CCatalogImport

Методы класса

Метод | Описание | С версии
Add | Метод добавляет новый профиль импорта. | 4.0.8
CheckFields | Метод служит для проверки параметров, переданных в методы CCatalogImport::Add и CCatalogImport::Update. | 4.0.8
Delete | Метод удаляет профиль импорта с кодом ID. | 4.0.8
GetByID | Метод возвращает информацию о профиле импорта с заданным ID. | 4.0.8
GetList | Возвращает список профилей импорта по фильтру arFilter, отсортированый в соответствии с arOrder. | 4.0.8
PreGenerateExport | Метод выполняет профиль profile_id на агенте. | 4.0.8
Update | Метод изменяет параметры профиля импорта с кодом ID на значения из массива arFields. | 4.0.8


Add

Торговый каталог>Классы>CCatalogImport>Add (доступен с 4.0.8)

CCatalogImport::Add

Описание и параметры

mixed
CCatalogImport::Add(
   array arFields
);

Метод добавляет новый профиль импорта. Нестатический метод.

Примечание: в данном методе отключена возможность заносить значения в обход CheckFields, кроме одного исключения:
"=LAST_USE" => $DB->GetNowFunction()

Параметры вызова

Параметр Описание
arFields Доступные поля:
  • CREATED_BY - ID создавшего профиль. Если значение данного поля не передается, то оно будет взято из параметра CUser при наличии $USER и авторизованности. В противном случае значение данного поля будет выставлено в NULL;
  • MODIFIED_BY - ID изменившего профиль. Если значение данного поля не передается, то оно будет взято из параметра CUser при наличии $USER и авторизованности. В противном случае значение данного поля будет выставлено в NULL;
  • TIMESTAMP_X - время последнего изменения профиля в формате сайта. Значение данного поля невозможно задать вручную;
  • DATE_CREATE - дата создания профиля в формате сайта. Значение данного поля невозможно задать вручную;
  • FILE_NAME - имя файла профиля со скриптом, осуществляющего импорт;
  • NAME - название профиля импорта;
  • IN_MENU - [Y|N] флаг отображения профиля в административном меню;
  • DEFAULT_PROFILE - [Y|N] признак использования профиля по умолчанию;
  • IN_AGENT - [Y|N] флаг наличия агента, осуществляющего автоматическое выполнение профиля импорта;
  • IN_CRON - [Y|N] флаг привязки профиля к утилите cron для автоматической периодической выгрузки (только для Unix-систем);
  • SETUP_VARS - параметры настройки профиля в виде url-строки;
  • NEED_EDIT - [Y|N] флаг означает неполную настройку профиля (до тех пор, пока профиль не будет отредактирован, он выполняться не будет).

Возвращаемое значение

Метод возвращает код вставленной записи или false в случае ошибки.

Примеры использования

Добавление предустановленного профиля csv-импорта, требующего настройки:

$arFields = array(
   "FILE_NAME" => "csv_new",
   "NAME" => "Мой импорт",
   "NEED_EDIT" => "Y",
   "SETUP_VARS"    => false
);
CCatalogImport::Add($arFields);

Добавление профиля с указанием времени последнего использования (время может быть только текущим) и занесением в левое меню:

$arFields = array(
   "FILE_NAME" => "csv_new",
   "NAME" => "Мой второй импорт",
   "=LAST_USE" => $DB->GetNowFunction,
        "IN_MENU" => "Y",
   "SETUP_VARS" => "IBLOCK_ID=15&FILE_DATE=export.csv" //  набор параметров довольно условный
);
CCatalogImport::Add($arFields);

Добавление профиля с явным указанием создавшего профиль:

$arFields = array(
   "FILE_NAME" => "csv_new",
   "NAME" => "Мой второй импорт",
   "=LAST_USE" => $DB->GetNowFunction,
        "IN_MENU" => "Y",
   "SETUP_VARS" => "IBLOCK_ID=15&FILE_DATE=export.csv", //  набор параметров довольно условный
   "CREATED_BY" => 15, // пользователь с ID = 15
   "MODIFIED_BY" => 15 // должен совпадать с CREATED_BY
);
CCatalogImport::Add($arFields);


CheckFields

Торговый каталог>Классы>CCatalogImport>CheckFields (доступен с 4.0.8)

CCatalogImport::CheckFields

Описание и параметры

bool
CCatalogImport::CheckFields(
  string ACTION,
  array &arFields
);

Метод служит для проверки параметров, переданных в методы CCatalogImport::Add и CCatalogImport::Update. Нестатический метод.

Параметры вызова

Параметр Описание
ACTION Указывает, для какого метода идет проверка. Возможные значения:
  • ADD - для метода CCatalogImport::Add;
  • UPDATE - для метода CCatalogImport::Update.
arFields Ассоциативный массив параметров профиля импорта. Допустимые ключи:
  • CREATED_BY - ID пользователя, создавшего профиль;
  • MODIFIED_BY - ID пользователя, изменившего профиль;
  • TIMESTAMP_X - время последнего изменения профиля в формате сайта;
  • DATE_CREATE - дата создания профиля в формате сайта;
  • FILE_NAME - имя файла профиля со скриптом, осуществляющего импорт. Ключ является обязательным, если $ACTION = 'ADD';
  • NAME - название профиля импорта. Ключ является обязательным, если $ACTION = 'ADD';
  • IN_MENU - [Y|N] флаг отображения профиля в административном меню;
  • DEFAULT_PROFILE - [Y|N] признак использования профиля по умолчанию;
  • IN_AGENT - [Y|N] флаг наличия агента, осуществляющего автоматическое выполнение профиля импорта;
  • IN_CRON - [Y|N] флаг привязки профиля к утилите cron для автоматической периодической выгрузки (только для Unix-систем);
  • NEED_EDIT - [Y|N] флаг означает неполную настройку профиля (до тех пор, пока профиль не будет отредактирован, он выполняться не будет).

Возвращаемое значение

В случае корректности переданных параметров возвращает true, иначе - false.

Смотрите также

  • CCatalogImport::Add
  • CCatalogImport::Update


Delete

Торговый каталог>Классы>CCatalogImport>Delete (доступен с 4.0.8)

CCatalogImport::Delete

bool
CCatalogImport::Delete(
  int ID
);

Метод удаляет профиль импорта с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код удаляемого профиля импорта.

Возвращаемое значение

Возвращает true в случае успешного удаления и false - в противном случае.


GetByID

Торговый каталог>Классы>CCatalogImport>GetByID (доступен с 4.0.8)

CCatalogImport::GetByID

array
CCatalogImport::GetByID(
   int ID
);

Метод возвращает информацию о профиле импорта с заданным ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код записи.

Возвращаемое значение

Метод возвращает ассоциативный массив параметров профиля с ключами:

  • ID - код записи;
  • FILE_NAME - имя файла профиля со скриптом, осуществляющего импорт;
  • NAME - название профиля импортп;
  • IN_MENU - [Y|N] флаг отображения профиля в административном меню;
  • IN_AGENT -[Y|N] флаг наличия агента, осуществляющего автоматическое выполнение профиля импорта;
  • IN_CRON - [Y|N] флаг привязки профиля к утилите cron для автоматической периодической выгрузки;
  • SETUP_VARS - параметры настройки профиля в виде url-строки;
  • DEFAULT_PROFILE - [Y|N] флаг использования профиля по умолчанию;
  • LAST_USE - дата и время последнего выполнения профиля в формате базы;
  • NEED_EDIT - [Y|N] флаг означает неполную настройку профиля (до тех пор, пока профиль не будет отредактирован, он выполняться не будет);
  • LAST_USE_FORMAT - дата и время последнего использования профиля в формате сайта;
  • CREATED_BY - ID пользователя, создавшего профиль;
  • MODIFIED_BY - ID пользователя, изменившего профиль;
  • TIMESTAMP_X - дата и время последнего изменения профиля в формате сайта;
  • DATE_CREATE - дата и время создания профиля в формате сайта.


GetList

Торговый каталог>Классы>CCatalogImport>GetList (доступен с 4.0.8)

CCatalogImport::GetList

Описание и параметры

CDBResult
СCatalogImport::GetList(
  array arOrder = array("ID"=>"ASC"),
  array arFilter = array(),
  bool bCount = false
);

Возвращает список профилей импорта по фильтру arFilter, отсортированый в соответствии с arOrder. Нестатический метод.

Параметры вызова

Параметр | Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" могут использоваться:
  • NAME - название профиля импорта;
  • FILE_NAME - имя файла профиля со скриптом, осуществляющего импорт;
  • DEFAULT_PROFILE - Y|N] флаг использования профиля по умолчанию;
  • IN_MENU - [Y|N] флаг отображения профиля в административном меню;
  • LAST_USE - дата и время последнего выполнения профиля в формате базы;
  • IN_AGENT -[Y|N] флаг наличия агента, осуществляющего автоматическое выполнение профиля импорта;
  • IN_CRON - [Y|N] флаг привязки профиля к утилите cron для автоматической периодической выгрузки;
  • NEED_EDIT - [Y|N] флаг означает неполную настройку профиля (до тех пор, пока профиль не будет отредактирован, он выполняться не будет).
Попытка сортировки по остальным полям профиля приведет к сортировке по ID.

В качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).
arFilter Массив, в соответствии с которым фильтруются записи профилей импорта. Массив имеет вид:
array(
"[модификатор]название_поля1" => "значение1",
"[модификатор]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимым является следующий модификатор:
  • ! - отрицание;
В качестве "название_поляX" может стоять любое поле профиля импорта, кроме SETUP_VARS, TIMESTAMP_X и DATE_CREATE.
bCount | Если параметр равен true, то возвращается только количество профилей, которое соответствует установленному фильтру. Необязательный. По умолчанию равен false.

Возвращаемое значение

Возвращается объект класса CDBResult, содержащий коллекцию ассоциативных массивов с ключами:

  • ID - код записи;
  • FILE_NAME - имя файла профиля со скриптом, осуществляющего импорт;
  • NAME - название профиля импорта;
  • IN_MENU - [Y|N] флаг отображения профиля в административном меню;
  • IN_AGENT -[Y|N] флаг наличия агента, осуществляющего автоматическое выполнение профиля импорта;
  • IN_CRON - [Y|N] флаг привязки профиля к утилите cron для автоматической периодической выгрузки;
  • SETUP_VARS - параметры настройки профиля в виде url-строки;
  • DEFAULT_PROFILE - [Y|N] флаг использования профиля по умолчанию;
  • LAST_USE - дата и время последнего выполнения профиля в формате базы;
  • NEED_EDIT - [Y|N] флаг означает неполную настройку профиля (до тех пор, пока профиль не будет отредактирован, он выполняться не будет);
  • LAST_USE_FORMAT - дата и время последнего использования профиля в формате сайта;
  • CREATED_BY - ID пользователя, создавшего профиль;
  • MODIFIED_BY - ID пользователя, изменившего профиль;
  • TIMESTAMP_X - дата и время последнего изменения профиля в формате сайта;
  • DATE_CREATE - дата и время создания профиля в формате сайта.


PreGenerateImport

Торговый каталог>Классы>CCatalogImport>PreGenerateImport (доступен с 4.0.8)

CCatalogImport::PreGenerateImport

mixed
CCatalogImport::PreGenerateImport(
  int profile_id
);

Метод выполняет профиль profile_id на агенте. Нестатический метод.

Параметры вызова

Параметр | Описание
profile_id | Код выполняемого профиля.

Возвращаемое значение

В случае успешного выполнения профиля импорта метод возвращает строку для следующего вызова агента. В противном случае метод вернет false.


Update

Торговый каталог>Классы>CCatalogImport>Update (доступен с 4.0.8)

CCatalogImport::Update

bool
CCatalogImport::Update(
  int ID,
  array arFields
);

Метод изменяет параметры профиля импорта с кодом ID на значения из массива arFields. Нестатический метод.

Примечание: в данном методе отключена возможность заносить значения в обход CheckFields, кроме одного исключения:
"=LAST_USE" => $DB->GetNowFunction()

Параметры вызова

Параметр | Описание
ID | Код изменяемого профиля импорта.
arFields Ассоциативный массив параметров профиля импорта, ключами которого являются названия параметров, а значениями - новые значения. Допустимые параметры:
  • MODIFIED_BY - ID пользователя, изменившего профиль;
  • FILE_NAME - имя файла профиля со скриптом, осуществляющего импорт;
  • NAME - название профиля импорта;
  • IN_MENU - [Y|N] флаг отображения профиля в административном меню;
  • DEFAULT_PROFILE - [Y|N] признак использования профиля по умолчанию;
  • IN_AGENT - [Y|N] флаг наличия агента, осуществляющего автоматическое выполнение профиля импорта;
  • IN_CRON - [Y|N] флаг привязки профиля к утилите cron для автоматической периодической выгрузки (только для Unix-систем);
  • SETUP_VARS - параметры настройки профиля в виде url-строки;
  • NEED_EDIT - [Y|N] флаг означает неполную настройку профиля (до тех пор, пока профиль не будет отредактирован, он выполняться не будет).

Возвращаемое значение

Возвращает true в случае успешного изменения параметров профиля импорта и false - в случае ошибки.


CCatalogProduct

Методы класса

Метод | Описание | С версии
Add | Метод добавляет (или обновляет) параметры товара к элементу каталога. | 3.3.5 (устарел с 17.6.0)
clearUsedCurrency | Метод указывает, что для расчета наименьшей цены в методе CCatalogProduct::GetOptimalPrice необходимо использовать базовую валюту. | 15.0.2
CountPriceWithDiscount | Метод применяет к цене price в валюте currency наибольшую скидку из массива arDiscounts. | 4.0.4
Delete | Метод удаляет из элемента каталога свойства, относящиеся к товару. | 3.3.5 (устарел с 17.6.0)
GetList | Метод возвращает результат выборки записей товаров в соответствии со своими параметрами. | 3.3.5 (устарел с 17.6.0)
GetByIDEx | Метод по коду товара ID возвращает все параметры этого товара, включая относящиеся к товару как к элементу информационного блока. | 3.3.5
GetByID | Метод по коду товара ID возвращает массив параметров товара (которые относятся к товару как к таковому). | 3.3.5
GetNearestQuantityPrice | Метод по коду товара ID возвращает количество товара, доступное для покупки. | 4.0.4
GetOptimalPrice | Метод возвращает параметры наименьшей цены товара productID в количестве quantity для посетителя, входящего в группы пользователей arUserGroups. | 4.0.4
getUsedCurrency | Метод возвращает текущую валюту, в которой считается наименьшая цена в методе CCatalogProduct::GetOptimalPrice. | 15.0.2
IsExistProduct | Метод проверяет наличие информации о товаре с кодом intID. | 14.0.1
QuantityTracer | Уменьшает количество на складе товара с кодом PRODUCT_ID на величину DELTA_QUANTITY, если указанное количество есть на складе и у товара установлен флаг "уменьшать количество товара при заказе". | 3.3.5
Update | Метод обновляет параметры товара, относящиеся к товару как к таковому. | 3.3.5 (устарел с 17.6.0)


Add

Торговый каталог>Классы>CCatalogProduct>Add (доступен с 3.3.5, устарел с 17.6.0)

CCatalogProduct::Add

Описание и параметры

bool
CCatalogProduct::Add(
 array arFields,
 boolean boolCheck = true
);

Метод добавляет (или обновляет) параметры товара к элементу каталога. Нестатический метод.

Метод устарел, вместо него используйте \Bitrix\Catalog\Model\Product::add.

Параметры вызова

Параметр Описание С версии
arFields Ассоциативный массив, ключами которого являются названия параметров товара, а значениями - новые значения параметров. Допустимые ключи:

ключи, независящие от вида товаров:
  • ID - код товара (элемента каталога - обязательный);
  • AVAILABLE - доступность товара к покупке (Y/N, поле обновляется автоматически);
  • TYPE - тип товара (значения по умолчанию зависят от вида торгового каталога);

ключи для обычных товаров и торговых предложений:
  • VAT_ID - код НДС;
  • VAT_INCLUDED - флаг (Y/N) включен ли НДС в цену;
  • QUANTITY - количество товара на складе;
  • QUANTITY_RESERVED - зарезервированное количество;
  • QUANTITY_TRACE - флаг (Y/N/D)* "включить количественный учет" (до версии 12.5.0 параметр назывался "уменьшать ли количество при заказе");
  • CAN_BUY_ZERO - флаг (Y/N/D)* "разрешить покупку при отсутствии товара";
  • SUBSCRIBE - флаг (Y/N/D)* "разрешить подписку при отсутствии товара";
  • BUNDLE - признак наличия набора (Y/N, поле обновляется автоматически);

  • PURCHASING_PRICE - закупочная цена. При указании в массиве этого ключа необходимо обязательно указать и валюту PURCHASING_CURRENCY, иначе метод возвратит false.
  • PURCHASING_CURRENCY - валюта закупочной цены;

  • WEIGHT - вес единицы товара;

  • WIDTH - ширина товара (в мм);
  • LENGTH - длина товара (в мм);
  • HEIGHT - высота товара (в мм);
  • MEASURE - ID единицы измерения;

  • BARCODE_MULTI - (Y/N) определяет каждый ли экземпляр товара имеет собственный штрихкод;

ключи для продажи контента:
  • PRICE_TYPE - тип цены (S - одноразовый платеж, R - регулярные платежи, T - пробная подписка);
  • RECUR_SCHEME_TYPE - тип периода подписки ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год);
  • RECUR_SCHEME_LENGTH - длина периода подписки;
  • TRIAL_PRICE_ID - код товара, для которого данный товар является пробным;
  • WITHOUT_ORDER - флаг "Продление подписки без оформления заказа".
boolCheck Параметр, указывающий, проверять ли наличие в базе информации о товаре или нет, перед добавлением.
По умолчанию - проверять. 		11.0.5
*D - значение берется из настроек модуля.

Возвращаемые значения

Возвращает true в случае успешного обновления параметров и false в противном случае.

Типы товаров

Основные | Описание | С версии
\Bitrix\Catalog\ProductTable::TYPE_PRODUCT | Простой товар | 14.0.0
\Bitrix\Catalog\ProductTable::TYPE_SET | Комплект | 14.0.0
\Bitrix\Catalog\ProductTable::TYPE_SKU | Товар с торговыми предложениями | 16.0.3
\Bitrix\Catalog\ProductTable::TYPE_OFFER | Торговое предложение | 16.0.3
Дополнительные | Описание | С версии
\Bitrix\Catalog\ProductTable::TYPE_FREE_OFFER | Торговое предложение, у которого нет товара (не указан или удален). | 16.0.3
\Bitrix\Catalog\ProductTable::TYPE_EMPTY_SKU | Специфический тип, означает невалидный товар с торговыми предложениями. | 16.0.3
Добавляемые в корзину | Описание | С версии
\Bitrix\Catalog\ProductTable::TYPE_PRODUCT | Простой товар | 14.0.0
\Bitrix\Catalog\ProductTable::TYPE_SET | Комплект | 14.0.0
\Bitrix\Catalog\ProductTable::TYPE_OFFER | Торговое предложение | 16.0.3

Примеры использования

$arFields = array(
                  "ID" => $PRODUCT_ID,
                  "VAT_ID" => 1, //выставляем тип ндс (задается в админке)
                  "VAT_INCLUDED" => "Y" //НДС входит в стоимость
                  );
if(CCatalogProduct::Add($arFields))
    echo "Добавили параметры товара к элементу каталога ".$PRODUCT_ID.'<br>';
else
    echo 'Ошибка добавления параметров<br>';


clearUsedCurrency

Торговый каталог>Классы>CCatalogProduct>clearUsedCurrency (доступен с 15.0.2)

CCatalogProduct::clearUsedCurrency

CCatalogProduct::clearUsedCurrency()

Для расчета наименьшей цены в методе CCatalogProduct::GetOptimalPrice необходимо использовать базовую валюту. Метод сбрасывает заданную валюту (т.е. после его вызова все расчеты ведутся в базовой валюте). Метод статический.

Примечание: метод действует в пределах одного хита.

Параметры вызова

Нет.

Возвращаемое значение

Нет.


CountPriceWithDiscount

Торговый каталог>Классы>CCatalogProduct>CountPriceWithDiscount (доступен с 4.0.4)

CCatalogProduct::CountPriceWithDiscount

Описание и параметры

array
CCatalogProduct::CountPriceWithDiscount(
 double price,
 string currency,
 array arDiscounts
);

Метод применяет к цене price в валюте currency цепочку скидок из массива arDiscounts. Нестатический метод.

Примечание: до версии модуля 12.0 метод применял к цене price в валюте currency наибольшую скидку из массива arDiscounts.

Параметры вызова

Параметр | Описание
price | Цена.
currency | Валюта цены.
arDiscounts массив ассоциативных массивов скидок. Имеет вид:
array(
        array(
                "VALUE_TYPE" => "тип скидки
                                (P - в процентах,
                                 F - фиксированная сумма)",
                "VALUE" => "величина скидки",
                "CURRENCY" => "валюта",
                "MAX_DISCOUNT" => "максимальный размер скидки"
            ),
        array(
                "VALUE_TYPE" => "тип скидки
                                (P - в процентах,
                                 F - фиксированная сумма)",
                "VALUE" => "величина скидки",
                "CURRENCY" => "валюта",
                "MAX_DISCOUNT" => "максимальный размер скидки"
            ),
        * * *
    )

Возвращаемые значения

Метод возвращает цену, получившуюся после применения цепочки скидок.

Примечание: до версии модуля 12.0.0 метод возвращал наименьшую цену, которую можно было получить с помощью наибольшей скидки.

Примеры использования

<?
// Для товара с кодом $ID выведем различные цены (по типу и количеству), по
// которым данный товар может быть куплен текущим пользователем

$dbPrice = CPrice::GetList(
        array("QUANTITY_FROM" => "ASC", "QUANTITY_TO" => "ASC", "SORT" => "ASC"),
        array("PRODUCT_ID" => $ID),
        false,
        false,
        array("ID", "CATALOG_GROUP_ID", "PRICE", "CURRENCY", "QUANTITY_FROM", "QUANTITY_TO")
    );
while ($arPrice = $dbPrice->Fetch())
{
    $arDiscounts = CCatalogDiscount::GetDiscountByPrice(
            $arPrice["ID"],
            $USER->GetUserGroupArray(),
            "N",
            SITE_ID
        );
    $discountPrice = CCatalogProduct::CountPriceWithDiscount(
            $arPrice["PRICE"],
            $arPrice["CURRENCY"],
            $arDiscounts
        );
    $arPrice["DISCOUNT_PRICE"] = $discountPrice;

    echo "<pre>";
    print_r($arPrice);
    echo "</pre>";
}
?>


Delete

Торговый каталог>Классы>CCatalogProduct>Delete (доступен с 3.3.5, устарел с 17.6.0)

CCatalogProduct::Delete

bool
CCatalogProduct::Delete(
 int ID
);

Метод удаляет из элемента каталога свойства, относящиеся к товару. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код товара (элемента каталога).

Возвращаемые значения

Возвращает true в случае успешного удаления и false в противном случае.


GetByID

Торговый каталог>Классы>CCatalogProduct>GetByID (доступен с 3.3.5)

CCatalogProduct::GetByID

Описание и параметры

array
CCatalogProduct::GetByID(
 int ID
);

Метод по коду товара ID возвращает массив параметров товара (которые относятся к товару как к таковому) или false, если код товара задан некорректно или отсутствует запись базе. Статический метод.

Параметры вызова

Параметр | Описание
ID | Код товара.

Возвращаемые значения

Ассоциативный массив параметров товара с ключами

Ключ | Описание | С версии
ID | Код товара. |
QUANTITY | Количество на складе. |
QUANTITY_RESERVED | Зарезервированное количество. | 12.5.0
QUANTITY_TRACE | Определяет ведется ли количественный учет (Y/N). До версии 12.5.0 параметр назывался "уменьшать количество при оформлении заказа". Оригинальное значение доступно в ключе QUANTITY_TRACE_ORIG. |
QUANTITY_TRACE_ORIG | Флаг (Y/N/D*) "включить количественный учет". | 12.0.0
WEIGHT | Вес единицы товара в граммах. |
WIDTH | Ширина товара (в мм). | 14.0.0
LENGTH | Длина товара (в мм). | 14.0.0
HEIGHT | Высота товара (в мм). | 14.0.0
MEASURE | ID единицы измерения. | 14.0.0
PRICE_TYPE | Тип цены (S - одноразовый платеж, R - регулярные платежи, T - пробная подписка). |
RECUR_SCHEME_TYPE | Тип периода подписки ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год). |
RECUR_SCHEME_LENGTH | Длина периода подписки. |
VAT_ID | Идентификатор ставки НДС, привязанной к товару. |
VAT_INCLUDED | Включен ли НДС в цену или нет. |
TRIAL_PRICE_ID | Код товара, для которого данный товар является пробным. |
WITHOUT_ORDER | Флаг "Продление подписки без оформления заказа". |
TIMESTAMP_X | Дата последнего изменения записи. Задается в формате сайта. |
CAN_BUY_ZERO | Разрешена ли покупка при отсутствии товара (Y/N). Оригинальное значение доступно в ключе CAN_BUY_ZERO_ORIG. | 12.0.0
CAN_BUY_ZERO_ORIG | Флаг (Y/N/D*) "разрешить покупку при отсутствии товара". | 12.0.0
NEGATIVE_AMOUNT_TRACE | Разрешено ли отрицательное количество товара (Y/N). Оригинальное значение доступно в ключе NEGATIVE_AMOUNT_TRACE_ORIG. | 12.0.0
NEGATIVE_AMOUNT_TRACE_ORIG | Флаг (Y/N/D*) "разрешить отрицательное количество товара". | 12.0.0
PURCHASING_PRICE | Величина закупочной цены. | 12.5.0
PURCHASING_CURRENCY | Валюта закупочной цены. | 12.5.0
SUBSCRIBE | Разрешение/запрет подписки при отсутствии товара (Y/N/D*). | 14.0.0
TYPE | Тип товара. Возможные значения: "1" - "простой товар", "2" - "комплект", "3" - "товар с торговыми предложениями", "4" - "торговое предложение". До версии 16.0.3 для типа товара "комплект" значение равно "2", во всех других случаях - "1". | 14.0.0
TMP_ID | Временный строковый идентификатор, используемый для служебных целей. |
BARCODE_MULTI | (Y/N) Определяет каждый ли экземпляр товара имеет собственный штрихкод. | 12.5.0
* - значение берется из настроек модуля.

Примеры использования

<?
$ID = 5;
$ar_res = CCatalogProduct::GetByID($ID);
echo "<br>Товар с кодом ".$ID." имеет следующие параметры:<pre>";
print_r($ar_res);
echo "</pre>";
?>


GetByIDEx

Торговый каталог>Классы>CCatalogProduct>GetByIDEx (доступен с 3.3.5)

CCatalogProduct::GetByIDEx

Описание и параметры

array
CCatalogProduct::GetByIDEx(
 int ID,
 boolean boolAllValues = false
);

Метод по коду товара ID возвращает все параметры этого товара, включая относящиеся к товару как к элементу информационного блока. Нестатический метод.

Важно! Метод нежелателен к использованию в связи с избыточностью данных и низкой производительностью.

Параметры вызова

Параметр | Описание | С версии
ID | Код товара. |
boolAllValues | Параметр определяет возвращать ли все значения множественных свойств (true) или нет (false). Необязательный параметр. | 12.0.0

Возвращаемые значения

Возвращает ассоциативный массив параметров товара или false в случае ошибки. Для просмотра всех доступных параметров воспользуйтесь кодом из приведенного ниже примера.

Примеры использования

<?
$ID = 5;
$ar_res = CCatalogProduct::GetByIDEx($ID);
echo "<br>Товар с кодом ".$ID." имеет следующие параметры:<br><pre>";
print_r($ar_res);
echo "</pre>";
?>

Примечание: до версии модуля 12.5.6 на агенте этот метод выдает ошибку, т.к. использует объект $USER, который еще не определен (см. учебный курс [image]).


GetList

Торговый каталог>Классы>CCatalogProduct>GetList (доступен с 3.3.5, устарел с 17.6.0)

CCatalogProduct::GetList

Описание и параметры

CDBResult
CCatalogProduct::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей товаров в соответствии со своими параметрами. Нестатический метод.

Метод устарел, рекомендуется вместо него использовать метод \Bitrix\Catalog\ProductTable::getList.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле товара, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи товара. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле товара.

Пример фильтра:
array("QUANTITY_TRACE" => "Y")
Этот фильтр означает "выбрать все записи, в которых значение в поле QUANTITY_TRACE (т.е. ведется количественный учет) равно Y".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи типов товара. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле типов товара.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Объект класса CDBResult, содержащий записи в виде ассоциативных массивов параметров товара с ключами:

Ключ | Описание | С версии
ID | Код товара. |
QUANTITY | Количество на складе. |
QUANTITY_RESERVED | Зарезервированное количество. | 12.5.0
QUANTITY_TRACE | Определяет ведется ли количественный учет (Y/N). До версии 12.5.0 параметр назывался "уменьшать количество при оформлении заказа". Оригинальное значение доступно в ключе QUANTITY_TRACE_ORIG. |
QUANTITY_TRACE_ORIG | Флаг (Y/N/D*) "включить количественный учет". | 12.0.0
SUBSCRIBE | Разрешение/запрет подписки при отсутствии товара (Y/N/D*). | 14.0.0
WEIGHT | Вес единицы товара. | 14.0.0
WIDTH | Ширина товара (в мм). | 14.0.0
LENGTH | Длина товара (в мм). | 14.0.0
HEIGHT | Высота товара (в мм). | 14.0.0
PRICE_TYPE | Тип цены (S - одноразовый платеж, R - регулярные платежи, T - пробная подписка) |
RECUR_SCHEME_TYPE | Тип периода подписки ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год) |
RECUR_SCHEME_LENGTH | Длина периода подписки. |
TRIAL_PRICE_ID | Код товара, для которого данный товар является пробным. |
WITHOUT_ORDER | Флаг "Продление подписки без оформления заказа" |
TIMESTAMP_X | Дата последнего изменения записи. Задается в формате сайта. |
VAT_ID | Идентификатор ставки НДС. |
VAT_INCLUDED | Признак включённости НДС в цену (Y/N). |
PURCHASING_PRICE | Величина закупочной цены. | 12.5.0
PURCHASING_CURRENCY | Валюта закупочной цены. | 12.5.0
AVAILABLE | Флаг доступности товара (Y/N). |
CAN_BUY_ZERO | Разрешена ли покупка при отсутствии товара (Y/N). Оригинальное значение доступно в ключе CAN_BUY_ZERO_ORIG. | 12.0.0
CAN_BUY_ZERO_ORIG | Флаг (Y/N/D*) "разрешить покупку при отсутствии товара". | 12.0.0
NEGATIVE_AMOUNT_TRACE_ORIG | Флаг (Y/N/D*) "разрешить отрицательное количество товара". | 12.0.0
TMP_ID | Временный строковый идентификатор, используемый для служебных целей. |
BARCODE_MULTI | (Y/N) Определяет каждый ли экземпляр товара имеет собственный штрихкод. | 12.5.0
MEASURE | ID единицы измерения. | 14.0.0
TYPE | Тип товара. Возможные значения: "1" - "простой товар", "2" - "комплект", "3" - "товар с торговыми предложениями", "4" - "торговое предложение". До версии 16.0.3 для типа товара "комплект" значение равно "2", во всех других случаях - "1". | 14.0.0
ELEMENT_IBLOCK_ID | Код инфоблока товара. |
ELEMENT_XML_ID | Внешний код товара. |
ELEMENT_NAME | Название товара. |
* - значение берется из настроек модуля.

Примеры использования

<?
// Выведем коды 10 товаров с самым большим количеством на складе
// из тех, количество которых при заказе должно уменьшаться
$ind = 0;
$db_res = CCatalogProduct::GetList(
        array("QUANTITY" => "DESC"),
        array("QUANTITY_TRACE" => "Y"),
        false,
        array("nTopCount" => 10)
    );
while (($ar_res = $db_res->Fetch()) && ($ind < 10))
{
    echo $ar_res["ID"].", ";
    $ind++;
}
?>


GetNearestQuantityPrice

Торговый каталог>Классы>CCatalogProduct>GetNearestQuantityPrice (доступен с 4.0.4)

CCatalogProduct::GetNearestQuantityPrice

Описание и параметры

int
CCatalogProduct::GetNearestQuantityPrice(
 int productID[,
 int quantity = 1[,
 array arUserGroups = array()]]
);

Метод по коду товара ID возвращает количество товара, доступное для покупки. Нестатический метод.

Параметры вызова

Параметр | Описание
productID | Код товара.
quantity | Количество, ближайшее продаваемое количество к которому необходимо найти.
arUserGroups | массив групп, которым принадлежит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()

Возвращаемые значения

Метод возвращает false или ближайшее к заданному количество товара, которое можно положить в корзину. Метод имеет смысл при работе с диапазонами цен.

Примеры использования

<?
$arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $USER->GetUserGroupArray(), $renewal);
if (!$arPrice || count($arPrice) <= 0)
{
    if ($nearestQuantity = CCatalogProduct::GetNearestQuantityPrice($productID, $quantity, $USER->GetUserGroupArray()))
    {
        $quantity = $nearestQuantity;
        $arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $USER->GetUserGroupArray(), $renewal);
    }
}
?>


GetOptimalPrice

Торговый каталог>Классы>CCatalogProduct>GetOptimalPrice (доступен с 4.0.4)

CCatalogProduct::GetOptimalPrice

Описание и параметры

array
CCatalogProduct::GetOptimalPrice(
 int intProductID[,
 int quantity = 1[,
 array arUserGroups = array()[,
 string renewal = "N"[,
 array arPrices = array()[,
 string siteID = false[,
 array arDiscountCoupons = false]]]]]]
);

Метод возвращает параметры наименьшей цены товара productID с учетом скидок в количестве quantity для посетителя, входящего в группы пользователей arUserGroups. Метод статический.

Примечание: начиная с версии 16.6.3 модуля Торговый каталог, при включенном режиме объединенных скидок результат зависит от дополнительных условий:
  • перед вызовом метода CCatalogProduct::GetOptimalPrice либо не было вызова CCatalogProduct::setUseDiscount, либо он был вызван со значением true - будет возвращена цена с учетом правил корзины, которые можно показать в каталоге;
  • если был вызов метода CCatalogProduct::setUseDiscount(false), тогда:
    • если в системе отсутствуют скидки, зависящие от типа цен, то метод возвращает минимальную цену товара среди всех типов;
    • если же имеются скидки, зависящие от типа цен, то метод возвращает ту цену товара, которая будет наименьшей среди всех цен после применения всех тех скидок, которые могут быть показаны в контексте каталога товаров.

Параметры вызова

Параметр | Описание | С версии
intProductID Код товара.

До версии 12.0.0 параметр назывался productID.
quantity | Приобретаемое количество.
arUserGroups Массив групп пользователей. Если он пуст, то будут взяты группы текущего пользователя (при условии существования глобальной переменной $USER класса CUser, в случае отсутствия будет использована группа с кодом 2).

Если группы пользователей передаются в вызове, к ним будет принудительно добавлена группа с кодом 2 (Все пользователи) в случае ее отсутствия.
renewal | "N" - для товара (в т.ч. продажи контента), "Y" - для продления подписки (только продажа контента). Значение "Y" - служебное и может быть использовано только при реализации собственных административных страниц работы с заказами.
arPrices Массив цен. Если он не пуст, то пересчет идет не по ценам из базы данных, а по ценам из этого массива. Представляет собой массив ассоциативных массивов с ключами:
  • ID - код цены;
  • PRICE - цена;
  • CURRENCY - валюта;
  • CATALOG_GROUP_ID - код типа цен.
4.0.5
siteID | Сайт, для которого производится вычисление. Если параметр не указан либо равен false, то берется текущий сайт (константа SITE_ID). При вызове в агентах, обработчиках событий или вне контекста текущего сайта явное указание обязательно, в противном случае возвращаемый результат непредсказуем. | 4.0.6
arDiscountCoupons Массив купонов, которые влияют на выборку скидок. Если задано значение false, то массив купонов будет взят из CCatalogDiscountCoupon::GetCoupons. Если следует исключить использование купонов, необходимо явно передать пустой массив (array()).

Примечание: с версии 15.0.4 купоны берутся из менеджера купонов \Bitrix\Sale\DiscountCouponsManager [image] модуля Интернет-магазин, а при его отсутствии - по-старому из CCatalogDiscountCoupon::GetCoupons.
5.1.0

Возвращаемые значения

Массив вида:

array(
"PRICE" => массив параметров цены, из которой была получена минимальная. Устарел, не используется с версии 15.0.2 (необходимо использовать ключ RESULT_PRICE). Содержит ключи
    "ID" - ID ценового предложения,
    "CATALOG_GROUP_ID" - ID типа цены,
    "PRICE" - величина исходной цены,
    "CURRENCY" - валюта исходной цены,
    "ELEMENT_IBLOCK_ID" - ID инфоблока товара, которому принадлежит ценовое предложение,
    "VAT_INCLUDED" - включен ли НДС в цену (Y/N),
    "VAT_RATE" - величина ставки НДС в процентах,
"DISCOUNT_PRICE" => минимальная цена в базовой_валюте,
"DISCOUNT" => самая первая скидка из DISCOUNT_LIST. Устарел, не используется с версии 12.5.0,
"DISCOUNT_LIST" => список скидок, примененных к товару. Инкрементный массив, скидки идут в порядке применения. Каждая запись описывает скидку,
>array(
    "ID" => ID скидки
    "TYPE" => тип (накопительная или нет),
    "SITE_ID" => сайт,
    "ACTIVE" => активность,
    "ACTIVE_FROM", "ACTIVE_TO" => даты активности скидки,
    "RENEWAL" => применяется к товару или к продлению подписки,
    "NAME" =>название,
    "SORT" => сортировка,
    "MAX_DISCOUNT" => максимальная величина скидки в валюте,
    "VALUE_TYPE" => процентная, абсолютная скидка либо фиксированная цена,
    "VALUE" => величина скидки,
    "CURRENCY" => валюта скидки,
    "PRIORITY" => приоритет,
    "LAST_DISCOUNT" => прекратить или нет применения скидок,
    "COUPON" => купон (если есть),
    "COUPON_ONE_TIME" => тип купона,
    "COUPON_ACTIVE" => активность купона,
    "MODULE_ID" => модуль, к которому относится скидка
    "HANDLERS" => массив модулей, требуемых для условий скидки
   )
 "PRODUCT_ID" => ID товара,
 "RESULT_PRICE" => array(
   "PRICE_TYPE_ID" => ID типа цены
   "BASE_PRICE" => исходная цена
   "DISCOUNT_PRICE" => цена со скидкой
   "CURRENCY" => валюта результата
   "DISCOUNT" => величина скидки
   "PERCENT" => процент скидки
   "VAT_RATE" => величина ставки НДС в процентах
   "VAT_INCLUDED" => включен ли НДС в цену (Y/N) (в магазин всегда отдаются цены с включенным НДС)
    )
)

Примечание. С версии 15.0.6 ключ RESULT_PRICE заполняется данными и в том случае, когда использованы обработчики события OnGetOptimalPrice. Параметры заданные методами CCatalogProduct::setUsedCurrency и CCatalogProduct::setPriceVatIncludeMode при этом учитываются, параметры заданные методом CCatalogProduct::setUseDiscount - нет.

Обратите внимание, что DISCOUNT_PRICE - это минимальная цена в валюте, заданной вызовом метода CCatalogProduct::setUsedCurrency, либо это минимальная цена (если CCatalogProduct::setUsedCurrency не использовался) в базовой валюте системы.

Примеры использования

<?
$arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $USER->GetUserGroupArray(), $renewal);
if (!$arPrice || count($arPrice) <= 0)
{
    if ($nearestQuantity = CCatalogProduct::GetNearestQuantityPrice($productID, $quantity, $USER->GetUserGroupArray()))
    {
        $quantity = $nearestQuantity;
        $arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $USER->GetUserGroupArray(), $renewal);
    }
}
echo "<pre>";
print_r($arPrice);
echo "</pre>";
?>


getPriceVatIncludeMode

Торговый каталог>Классы>CCatalogProduct>getPriceVatIncludeMode (с версии 15.0.2)

CCatalogProduct::getPriceVatIncludeMode

result_type
CCatalogProduct::getPriceVatIncludeMode(
);

Метод возвращает в текущее состояние включение (или нет) НДС в значения полей ключа RESULT_PRICE метода CCatalogProduct::GetOptimalPrice после изменения этого значения методом CCatalogProduct::setUsedCurrency. Метод статический.

Примечание: метод действует в пределах одного хита.

Параметры функции

Без параметров

Возвращаемое значение

нет


getUsedCurrency

Торговый каталог>Классы>CCatalogProduct>getUsedCurrency (доступен с 15.0.2)

CCatalogProduct::getUsedCurrency

string
CCatalogProduct::getUsedCurrency()

Метод возвращает текущую валюту, в которой считается наименьшая цена в методе CCatalogProduct::GetOptimalPrice. Используется в штатном провайдере (CCatalogProvider) в паре с CCatalogProduct::setUsedCurrency для проведения всех расчетов в валюте магазина. Метод статический.

Примечание: метод действует в пределах одного хита.

Параметры вызова

Нет.

Возвращаемое значение

Код валюты либо null, тогда в этом случае для расчетов берется базовая валюта сайта.


getUseDiscount

Торговый каталог>Классы>CCatalogProduct>getUseDiscount (с версии 15.0.2)

CCatalogProduct::getUseDiscount

 CCatalogProduct::getUseDiscount(
);

Метод возвращает в текущее разрешение на использование скидок торгового каталога при вычислении минимальной цены товара методом CCatalogProduct::GetOptimalPrice после изменения этого значения методом CCatalogProduct::setUseDiscount. Метод статический.

Примечание: метод действует в пределах одного хита.

Параметры функции

Без параметров

Возвращаемое значение

Нет.


IsExistProduct

Торговый каталог>Классы>CCatalogProduct>IsExistProduct (доступен с 14.0.1, устарел с 15.5.2)

CCatalogProduct::IsExistProduct

Примечание: метод устарел с версии 15.5.2, смотрите метод \Bitrix\Catalog\ProductTable::isExistProduct [image].

bool
CCatalogProduct::IsExistProduct(
  int intID
);

Метод проверяет наличие записи в таблице b_catalog_product с информацией (доступное количество, разрешена ли покупка при отсутствии товара и т.д.) для товара с кодом intID. Метод статический.

Параметры вызова

Параметр | Описание
intID | Код товара.

Возвращаемое значение

В случае наличия информации о товаре возвращает true, иначе - false.


QuantityTracer

Торговый каталог>Классы>CCatalogProduct>QuantityTracer (доступен с 3.3.5, устарел)

CCatalogProduct::QuantityTracer

Описание и параметры

bool
CCatalogProduct::QuantityTracer(
 int ProductID,
 int DeltaQuantity
);

Уменьшает количество на складе товара с кодом ProductID на величину DeltaQuantity, если указанное количество есть на складе и у товара установлен флаг "Включить количественный учет". Метод работает и в обратную сторону: увеличивает количество товара, если значение отрицательное. Метод статический.

Дополнительно имеется событие OnProductQuantityTrace, которое для совместимости вызывается в провайдере и при проведении документов складского учета.

Параметры вызова

Параметр | Описание
ProductID | Код товара.
DeltaQuantity | Число, на которое нужно уменьшить (увеличить) количество товара на складе.

Возвращаемые значения

Возвращает true в случае успешного уменьшения и false - в противном случае.

Примеры использования

<?
// Уменьшим количество на складе товара 5 на 12 штук
CCatalogProduct::QuantityTracer(5, 12);
?>


setPriceVatIncludeMode

Торговый каталог>Классы>CCatalogProduct>setPriceVatIncludeMode (с версии 15.0.2)

CCatalogProduct::setPriceVatIncludeMode

result_type
CCatalogProduct::setPriceVatIncludeMode(
 $mode
);

Позволяет указать включать или нет НДС в значения полей ключа RESULT_PRICE метода CCatalogProduct::GetOptimalPrice. Метод статический.

Примечание: метод действует в пределах одного хита.

Параметры функции

Параметр | Описание
mode | true - включать, false - выключать. По умолчанию - true (НДС включен в результат).

Возвращаемое значение

Нет.


setUsedCurrency

Торговый каталог>Классы>CCatalogProduct>setUsedCurrency (доступен с 15.0.2)

CCatalogProduct::setUsedCurrency

CCatalogProduct::setUsedCurrency(
 string currency
)

Метод позволяет указать, в какой валюте считать наименьшую цену в методе CCatalogProduct::GetOptimalPrice. По умолчанию считается в базовой валюте. Если указана несуществующая валюта - она будет проигнорирована. Используется в штатном провайдере (CCatalogProvider) в паре с CCatalogProduct::getUsedCurrency для проведения всех расчетов в валюте магазина. Метод статический.

Примечание: метод действует в пределах одного хита.

Параметры вызова

Параметр | Описание
currency | Код валюты.

Возвращаемое значение

Нет.

Внутри метода выполняется проверка на существование указанной валюты.


setUseDiscount

Торговый каталог>Классы>CCatalogProduct>setUseDiscount (с версии 15.0.2)

CCatalogProduct::setUseDiscount

CCatalogProduct::setUseDiscount(
 $mode
);

Метод позволяет запретить или разрешить использование скидок торгового каталога при вычислении минимальной цены товара. Действует на все данные, возвращаемые CCatalogProduct::GetOptimalPrice. Метод статический.

Примечание: метод действует в пределах одного хита.

Параметры функции

Параметр | Описание
mode | true - разрешить, false - запретить. По умолчанию - разрешено.

Возвращаемое значение

Нет.


Update

Торговый каталог>Классы>CCatalogProduct>Update (доступен с 3.3.5, устарел с 17.6.0)

CCatalogProduct::Update

Описание и параметры

bool
CCatalogProduct::Update(
 int ID,
 array arFields
);

Метод обновляет параметры товара, относящиеся к товару как к таковому. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код товара.
arFields Ассоциативный массив, ключами которого являются названия параметров товара, а значениями - новые значения параметров. Допустимые ключи:

ключи, независящие от типа товаров:
  • QUANTITY - доступное количество товара;
  • QUANTITY_RESERVED - зарезервированное количество;
  • QUANTITY_TRACE - флаг (Y/N/D)* "включить количественный учет" (до версии 12.5.0 параметр назывался "уменьшать ли количество при заказе");

ключи для обычных товаров:
  • CAN_BUY_ZERO - флаг (Y/N/D)* "разрешить покупку при отсутствии товара";
  • NEGATIVE_AMOUNT_TRACE - флаг (Y/N/D)* "разрешить отрицательное количество товара";
  • SUBSCRIBE - флаг (Y/N/D)* "разрешить подписку при отсутствии товара";

  • PURCHASING_PRICE - закупочная цена;
  • PURCHASING_CURRENCY - валюта закупочной цены;

  • WEIGHT - вес единицы товара;

  • WIDTH - ширина товара (в мм);
  • LENGTH - длина товара (в мм);
  • HEIGHT - высота товара (в мм);
  • MEASURE - ID единицы измерения;

  • BARCODE_MULTI - (Y/N) определяет каждый ли экземпляр товара имеет собственный штрихкод;

ключи для продажи контента:
  • PRICE_TYPE - тип цены (S - одноразовый платеж, R - регулярные платежи, T - пробная подписка);
  • RECUR_SCHEME_TYPE - тип периода подписки ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год);
  • RECUR_SCHEME_LENGTH - длина периода подписки;
  • TRIAL_PRICE_ID - код товара, для которого данный товар является пробным;
  • WITHOUT_ORDER - флаг "Продление подписки без оформления заказа".
*D - значение берется из настроек модуля.

Возвращаемые значения

Возвращает true в случае успешного обновления параметров и false в противном случае.

Примеры использования

Обновление зарезервированного количества товара

Cmodule::IncludeModule('catalog');
$PRODUCT_ID = 51; // id товара
$arFields = array('QUANTITY_RESERVED' => 11);// зарезервированное количество
CCatalogProduct::Update($PRODUCT_ID, $arFields);


CCatalogProductGroups

Методы класса

Метод | Описание | С версии
Add | Метод добавляет новую запись с информацией о связи товара и группы пользователей, к которой пользователь привязывается при покупке товара, в соответствии с данными из массива arFields. | 4.0.4
CheckFields | Метод проверяет параметры, переданные в методы Add и Update. | 4.0.4
Delete | Метод удаляет информацию о связи товаров и группы пользователей, к которой пользователь привязывается при покупке товара. | 4.0.4
DeleteByGroup | Метод удаляет привязку к группе пользователей с кодом ID из всех товаров-подписок (продажа прав). | 4.0.4
GetByID | Метод выбирает параметры информации о связи между товаром и группами пользователей по коду информации ID. | 4.0.4
GetList | Метод возвращает результат выборки записей информации о связи товаров и групп пользователей, к которым пользователь привязывается при покупке товара, в соответствии со своими параметрами. | 4.0.4
Update | Метод изменяет параметры записи с кодом ID информации о связи товаров и групп пользователей, к которым пользователь привязывается при покупке товара, в соответствии с данными из массива arFields. | 4.0.4
OnGroupDelete | Функция-обработчик события удаления группы пользователей. | 4.0.4


Add

Торговый каталог>Классы>CCatalogProductGroups>Add (доступен с 4.0.4)

CCatalogProductGroups::Add

bool
CCatalogProductGroups::Add(
 array arFields
);

Метод добавляет новую запись с информацией о связи товара и группы пользователей, к которой пользователь привязывается при покупке товара, в соответствии с данными из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров новой информации о связи товаров и групп пользователей, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • PRODUCT_ID - код товара;
  • GROUP_ID - код группы пользователей;
  • ACCESS_LENGTH - длина периода, на который пользователь привязывается к группе пользователей при покупке товара (0 - навсегда);
  • ACCESS_LENGTH_TYPE - тип периода, на который пользователь привязывается к группе пользователей при покупке товара ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год).

Возвращаемые значения

Метод возвращает код вставленной записи или false в случае ошибки.


CheckFields

Торговый каталог>Классы>CCatalogProductGroups>CheckFields (доступен с 4.0.4)

CCatalogProductGroups::CheckFields

Описание и параметры

bool
CCatalogProductGroups::CheckFields(
 string ACTION,
 array &arFields,
 int ID = 0
);

Метод служит для проверки параметров, переданных в методы CCatalogProductGroups::Add и CCatalogProductGroups::Update. Нестатический метод.

Параметры вызова

Параметр | Описание
ACTION Указывает, для какого метода идет проверка. Возможные значения:
  • ADD - для метода CCatalogProductGroups::Add;
  • UPDATE - для метода CCatalogProductGroups::Update.
arFields Ассоциативный массив параметров информации о связи товаров и групп пользователей. Допустимые ключи:
  • PRODUCT_ID - код товара;
  • GROUP_ID - код группы пользователей;
  • ACCESS_LENGTH - длина периода, на который пользователь привязывается к группе пользователей при покупке товара (0 - навсегда);
  • ACCESS_LENGTH_TYPE - тип периода, на который пользователь привязывается к группе пользователей при покупке товара ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год).
ID | Код записи с информацией о связи товаров и групп пользователей, к которым пользователь привязывается при покупке товаров. Параметр является необязательным и имеет смысл только для $ACTION = 'UPDATE'.

Возвращаемое значение

В случае корректности переданных параметров возвращает true, иначе - false. Если метод вернул false, с помощью $APPLICATION->GetException() можно получить текст ошибок.

Смотрите также

  • Структура таблицы
  • CCatalogProductGroups::Add
  • CCatalogProductGroups::Update


Delete

Торговый каталог>Классы>CCatalogProductGroups>Delete (доступен с 4.0.4)

CCatalogProductGroups::Delete

bool
CCatalogProductGroups::Delete(
 int ID
);

Метод удаляет информацию о связи товаров и группы пользователей, к которой пользователь привязывается при покупке товара. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код удаляемой записи.

Возвращаемые значения

Метод возвращает true в случае успешного удаления и false в случае ошибки.


DeleteByGroup

Торговый каталог>Классы>CCatalogProductGroups>DeleteByGroup (доступен с 4.0.4)

CCatalogProductGroups::DeleteByGroup

bool
CCatalogProductGroups::DeleteByGroup(
 int $ID
);

Метод удаляет привязку к группе пользователей с кодом ID из всех карточек товаров-подписок (продажа прав). Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код группы.

Возвращаемые значения

Метод возвращает true в случае успешного удаления и false в случае ошибки.


GetByID

Торговый каталог>Классы>CCatalogProductGroups>GetByID (доступен с 4.0.4)

CCatalogProductGroups::GetByID

array
CCatalogProductGroups::GetByID(
 int ID
);

Метод выбирает параметры информации о связи между товаром и группами пользователей по коду информации ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код записи.

Возвращаемые значения

Метод возвращает ассоциативный массив параметров информации о временном доступе с ключами:

  • ID - код записи;
  • PRODUCT_ID - код товара;
  • GROUP_ID - код группы пользователей;
  • ACCESS_LENGTH - длина периода, на который пользователь привязывается к группе пользователей при покупке товара (0 - навсегда);
  • ACCESS_LENGTH_TYPE - тип периода, на который пользователь привязывается к группе пользователей при покупке товара ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год).


GetList

Торговый каталог>Классы>CCatalogProductGroups>GetList (доступен с 4.0.4)

CCatalogProductGroups::GetList

Описание и параметры

CDBResult
CCatalogProductGroups::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей информации о связи товаров и групп пользователей, к которым пользователь привязывается при покупке товара, в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле записи, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле заказов.

Пример фильтра:
array("PRODUCT_ID" => 150)
Этот фильтр означает "выбрать все записи, в которых значение в поле PRODUCT_ID (код товара) равно 150".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле записи.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

  • ID - код записи;
  • PRODUCT_ID - код товара;
  • GROUP_ID - код группы пользователей;
  • ACCESS_LENGTH - длина периода, на который пользователь привязывается к группе пользователей при покупке товара (0 - навсегда);
  • ACCESS_LENGTH_TYPE - тип периода, на который пользователь привязывается к группе пользователей при покупке товара ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год);
  • GROUP_ACTIVE - флаг активности группы пользователей;
  • GROUP_NAME - название группы пользователей.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.


Update

Торговый каталог>Классы>CCatalogProductGroups>Update (доступен с 4.0.4)

CCatalogProductGroups::Update

bool
CCatalogProductGroups::Update(
 int ID,
 array arFields
);

Метод изменяет параметры записи с кодом ID информации о связи товаров и групп пользователей, к которым пользователь привязывается при покупке товара, в соответствии с данными из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | код записи
arFields Ассоциативный массив параметров новой информации о связи товаров и групп пользователей, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • PRODUCT_ID - код товара;
  • GROUP_ID - код группы пользователей;
  • ACCESS_LENGTH - длина периода, на который пользователь привязывается к группе пользователей при покупке товара (0 - навсегда);
  • ACCESS_LENGTH_TYPE - тип периода, на который пользователь привязывается к группе пользователей при покупке товара ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год).

Возвращаемые значения

Метод возвращает код измененной записи или false в случае ошибки.


CCatalogProductProvider

Класс CCatalogProductProvider устарел с версии 17.5.0 модуля catalog. Используйте \Bitrix\Catalog\Product\CatalogProvider.

Методы класса

Метод | Описание | С версии
CheckProductBarcode | Метод осуществляет проверку валидности штрихкода для отгрузки товара. | 12.5.0
DeductProduct | Метод осуществляет отгрузку или отмену отгрузки товара. | 12.5.0
DeliverProduct | Метод возвращает массив информации о товаре для создания/продления подписки. | 12.5.0
GetProductData | Метод возвращает информацию о товаре из каталога. | 12.5.0
GetProductStores | Метод возвращает информацию о количестве складов, с которых возможно списание товара. | 12.5.0
GetSetItems | Метод возвращает состав комплекта для добавления в корзину. | 14.0.0
GetStoresCount | Метод возвращает количество складов. | 12.5.0
OrderProduct | Метод метод возвращает информацию о товаре из каталоге, вызывается после создания заказа. | 12.5.0
RecurringOrderProduct | Метод получает данные товара для продления подписки. | 12.5.0
ReserveProduct | Метод осуществляет резервирование или отмену резервирования товара. | 12.5.0
ViewProduct | Метод возвращает информацию о просмотренном товаре для сохранения ее в магазине. | 12.5.0


CheckProductBarcode

Торговый каталог>Классы>CCatalogProductProvider>CheckProductBarcode (доступен с 12.5.0)

CCatalogProductProvider::CheckProductBarcode

Класс CCatalogProductProvider устарел с версии 17.5.0 модуля catalog. Используйте \Bitrix\Catalog\Product\CatalogProvider.

bool CCatalogProductProvider::CheckProductBarcode(
    array arParams
);

Метод осуществляет проверку валидности штрихкода для отгрузки товара. Метод статический.

Параметры вызова

Параметр Описание
arParams Ассоциативный массив параметров с ключами:
  • PRODUCT_ID - идентификатор товара;
  • BARCODE - штрихкод;
  • STORE_ID - идентификатор склада. Необязательный, нужен только для товаров с множественными штрихкодами.

Возвращаемое значение

В случае успешной проверки штрихкода метод возвращает true, иначе - false.


DeductProduct

Торговый каталог>Классы>CCatalogProductProvider>DeductProduct (доступен с 12.5.0)

CCatalogProductProvider::DeductProduct

Описание и параметры

Класс CCatalogProductProvider устарел с версии 17.5.0 модуля catalog. Используйте \Bitrix\Catalog\Product\CatalogProvider.

mixed CCatalogProductProvider::DeductProduct(
    array arParams
);

Метод осуществляет отгрузку или отмену отгрузки товара. Метод статический.

Параметры вызова

Параметр Описание
arParams Ассоциативный массив параметров с ключами:
  • PRODUCT_ID - идентификатор товара;
  • QUANTITY - количество товара;
  • EMULATE - (Y|N) флаг вызова метода в режиме эмуляции (проверяется только наличие товара, без проверок количества, складов и т.п.). Используется перед действительной отгрузкой;
  • UNDO_DEDUCTION - (Y|N) указывает осуществлять отгрузку или отмену отгрузки товара;
  • PRODUCT_RESERVED - (Y|N) признак резервирования отгружаемого товара;
  • STORE_DATA - массив с данными о складах (может быть один или несколько), также содержит информацию об отгружаемом с каждого склада количестве и штрихкодах для отгружаемых экземпляров товара (если каждый экземпляр товара имеет собственный штрихкод).

Возвращаемое значение

Возвращается ассоциативный массив с ключами:

  • RESULT - успешное (true) или неуспешное (false) завершение операции;
  • STORES - массив с указанием идентификаторов складов и сколько товаров с каждого из них было отгружено (например, array("1" => 5, "2" => 3)). Данный массив присутствует только при отгрузке со складов.

В случае ошибки срабатывает исключение и выводится его причина.


DeliverProduct

Торговый каталог>Классы>CCatalogProductProvider>DeliverProduct (доступен с 12.5.0)

CCatalogProductProvider::DeliverProduct

Описание и параметры

Класс CCatalogProductProvider устарел с версии 17.5.0 модуля catalog. Используйте \Bitrix\Catalog\Product\CatalogProvider.

mixed CCatalogProductProvider::DeliverProduct(
    array arParams
);

Метод возвращает массив информации о товаре для создания/продления подписки. Вызывается после разрешения доставки. Метод статический.

Параметры вызова

Параметр Описание
arParams Ассоциативный массив параметров с ключами:
  • PRODUCT_ID - идентификатор товара;
  • USER_ID - идентификатор пользователя;
  • PAID - (Y|N) флаг оплаты заказа;
  • ORDER_ID - идентификатор заказа.

Возвращаемое значение

Возвращается ассоциативный массив с ключами:

  • USER_ID - идентификатор пользователя;
  • MODULE - название модуля, право на доступ к контенту которого продлевается;
  • PRODUCT_ID - идентификатор товара;
  • PRODUCT_NAME - название товара;
  • PRODUCT_URL - ссылка на страницу с информацией о товаре;
  • PRODUCT_PRICE_ID - идентификатор цены товара;
  • PRICE_TYPE - тип цены;
  • RECUR_SCHEME_TYPE - тип периода подписки ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год);
  • RECUR_SCHEME_LENGTH - длина периода подписки;
  • PRICE - цена;
  • CURRENCY - валюта, в которой задана цена;
  • CANCELED - (Y|N) флаг отмены продления подписки;
  • CANCELED_REASON - причина отмены продления подписки;
  • PRODUCT_PROVIDER_CLASS - класс-провайдер модуля, предоставляющего товар;
  • DESCRIPTION - описание подписки;
  • PRIOR_DATE - дата последнего продления;
  • NEXT_DATE - дата очередного продления.


GetProductData

Торговый каталог>Классы>CCatalogProductProvider>GetProductData (доступен с 12.5.0)

CCatalogProductProvider::GetProductData

Описание и параметры

Класс CCatalogProductProvider устарел с версии 17.5.0 модуля catalog. Используйте \Bitrix\Catalog\Product\CatalogProvider.

array CCatalogProductProvider::GetProductData(
    array arParams
);

Метод возвращает информацию о товаре из каталога. Метод статический.

Параметры вызова

Параметр Описание
arParams Ассоциативный массив параметров товара, ключами в котором являются названия параметров, а значениями - соответствующие значения:
  • PRODUCT_ID - идентификатор товара;
  • QUANTITY - количество товара;
  • USER_ID - идентификатор пользователя (значение по умолчанию - текущий пользователь);
  • SITE_ID - код сайта (значение по умолчанию - текущий сайт; если не задан при вызове из административной части, то неопределен);
  • CHECK_QUANTITY - (Y|N) флаг выполнения проверки доступности для покупки указанного количества товара (значение по умолчанию - Y);
  • CHECK_PRICE - (Y|N) флаг возвращения информации о цене товара (флаг использовать не нужно, если для товара установлена особая цена, значение по умолчанию - Y);
  • CHECK_COUPONS - (Y|N) флаг обработки купонов (значение по умолчанию - Y);
  • RENEWAL - (Y|N) флаг продления подписки на товар;
  • BASKET_ID - идентификатор записи в корзине.

Возвращаемое значение

Метод возвращает ассоциативный массив параметров товара с ключами:

  • NAME - название товара;
  • CAN_BUY - (Y|N) флаг возможности купить товар;
  • DETAIL_PAGE_URL - ссылка на страницу с информацией о товаре;
  • BARCODE_MULTI - Y|N) определяет каждый ли экземпляр товара имеет собственный штрихкод;
  • WEIGHT - вес товара;
  • DIMENSIONS - размеры товара (ширина, высота и длина);
  • TYPE - код, обозначающий принадлежность товара к комплектам. Может быть пустым;
  • QUANTITY - количество товара;
  • PRODUCT_XML_ID - внешний код товара;
  • CATALOG_XML_ID - внешний код каталога.

Если в массиве arParams указан "CHECK_PRICE" => "Y", то дополнительно будут возвращены следующие ключи:

  • PRICE - цена;
  • PRODUCT_PRICE_ID - идентификатор цены товара;
  • CURRENCY - валюта, в которой задана цена;
  • DISCOUNT_PRICE - величина скидки;
  • NOTES - особые заметки, например, тип цены;
  • VAT_RATE - величина налога на товар.


GetProductStores

Торговый каталог>Классы>CCatalogProductProvider>GetProductStores (доступен с 12.5.0)

CCatalogProductProvider::GetProductStores

Класс CCatalogProductProvider устарел с версии 17.5.0 модуля catalog. Используйте \Bitrix\Catalog\Product\CatalogProvider.

array CCatalogProductProvider::GetProductStores(
    array arParams
);

Метод возвращает информацию о количестве складов, с которых возможно списание товара с кодом PRODUCT_ID. Метод статический.

Параметры вызова

Параметр Описание
arParams Ассоциативный массив параметров товара с ключами:
  • PRODUCT_ID - идентификатор товара;
  • SITE_ID - код сайта (необязательный).

Возвращаемое значение

Метод возвращает ассоциативный массив с информацией о складах:

  • STORE_NAME - название склада;
  • STORE_ID - идентификатор склада;
  • AMOUNT - доступное количество на складе товара.


GetSetItems

Торговый каталог>Классы>CCatalogProductProvider>GetSetItems (доступен с 14.0.0)

CCatalogProductProvider::GetSetItems

Описание и параметры

Класс CCatalogProductProvider устарел с версии 17.5.0 модуля catalog. Используйте \Bitrix\Catalog\Product\CatalogProvider.

array
CCatalogProductProvider::GetSetItems(
   int productID,
   int intType,
   array arProducInfo = array()
);

Метод возвращает состав комплекта для добавления в корзину. Для выбора наборов не рекомендуется использовать, несмотря на то, что параметры позволяют это сделать. Метод статический.

Параметры вызова

Параметр | Описание
productID | Идентификатор основного товара, являющегося набором или комплектом.
intType | Тип товара: "1" - комплект, "2" - набор.

Возвращаемое значение

Ассоциативный массив параметров комплекта/набора с ключами:

  • TYPE - тип товара ("1" - комплект, "2" - набор);
  • SET_ID - идентификатор комплекта как сущности;
  • ACTIVE - признак активности товара, являющегося комплектом/набором;
  • ITEM_ID - идентификатор записи в таблице комплектов/наборов;
  • SORT - индекс сортировки;
  • ITEMS - ассоциативный массив параметров товаров, входящих в комплект/набор:
    • ID - идентификатор товара;
    • ITEM_ID - идентификатор записи части комплекта/набора в таблице комплектов;
    • SORT - индекс сортировки;
    • NAME - название товара;
    • CAN_BUY - (Y|N) флаг возможности купить товар;
    • DETAIL_PAGE_URL - ссылка на страницу с информацией о товаре;
    • BARCODE_MULTI - Y|N) определяет каждый ли экземпляр товара имеет собственный штрихкод;
    • WEIGHT - вес товара;
    • DIMENSIONS - размеры товара (ширина, высота и длина);
    • TYPE - код, обозначающий принадлежность товара к комплектам (может быть пустым);
    • VAT_RATE - величина налога на товар;
    • PRODUCT_ID - идентификатор товара;
    • MODULE - название модуля, предоставляющего товар;
    • PRODUCT_PROVIDER_CLASS - класс-провайдер модуля, предоставляющего товар;
    • PROPS - набор свойств для добавления в корзину;
    • IBLOCK_ID - идентификатор информационного блока;
    • IBLOCK_SECTION_ID - идентификатор раздела инфоблока;
    • PREVIEW_PICTURE - идентификатор картинки анонса;
    • DETAIL_PICTURE - идентификатор детального изображения.
    Для комплекта данный массив дополнительно содержит следующие ключи:
    • QUANTITY - количество товара;
    • MEASURE - ID единицы измерения;
    • DISCOUNT_PERCENT - величина скидки.

Для комплекта дополнительно возвращаются также ключи:

  • QUANTITY - количество товара;
  • MEASURE - ID единицы измерения;
  • DISCOUNT_PERCENT - величина скидки.


GetStoresCount

Торговый каталог>Классы>CCatalogProductProvider>GetStoresCount (доступен с 12.5.0)

CCatalogProductProvider::GetStoresCount

Класс CCatalogProductProvider устарел с версии 17.5.0 модуля catalog. Используйте \Bitrix\Catalog\Product\CatalogProvider.

mixed CCatalogProductProvider::GetStoresCount(
    array arParams = array()
);

Метод возвращает количество складов, если в провайдере товаров поддерживается складской учет, или же -1, если складской учет не используется. Метод статический.

Параметры вызова

Параметр Описание
arParams Ассоциативный массив параметров складов с ключом:
  • SITE_ID - код сайта (необязательный).

Возвращаемое значение

Возвращает количество складов, если в провайдере товаров поддерживается складской учет, или же -1, если складской учет не используется.


OrderProduct

Торговый каталог>Классы>CCatalogProductProvider>OrderProduct (доступен с 12.5.0)

CCatalogProductProvider::OrderProduct

Описание и параметры

Класс CCatalogProductProvider устарел с версии 17.5.0 модуля catalog. Используйте \Bitrix\Catalog\Product\CatalogProvider.

array CCatalogProductProvider::OrderProduct(
    array arParams
);

Метод метод возвращает информацию о товаре из каталоге, вызывается после создания заказа. В отличие от GetProductData по-другому обрабатывает информацию о купонах. Метод статический.

Параметры вызова

Параметр Описание
arParams Ассоциативный массив параметров товара, ключами в котором являются названия параметров, а значениями - соответствующие значения:
  • PRODUCT_ID - идентификатор товара;
  • QUANTITY - количество товара;
  • USER_ID - идентификатор пользователя;
  • SITE_ID - код сайта;
  • CHECK_QUANTITY - (Y|N) флаг выполнения проверки доступности для покупки указанного количества товара;
  • RENEWAL - (Y|N) флаг продления подписки на товар.

Возвращаемое значение

Метод возвращает ассоциативный массив параметров товара с ключами:

  • NAME - название товара;
  • CAN_BUY - (Y|N) флаг возможности купить товар;
  • DETAIL_PAGE_URL - ссылка на страницу с информацией о товаре;
  • BARCODE_MULTI - Y|N) определяет каждый ли экземпляр товара имеет собственный штрихкод;
  • WEIGHT - вес товара;
  • DIMENSIONS - размеры товара (ширина, высота и длина);
  • TYPE - код, обозначающий принадлежность товара к комплектам. Может быть пустым;;
  • QUANTITY - количество товара;
  • PRICE - цена;
  • PRODUCT_PRICE_ID - идентификатор цены товара;
  • CURRENCY - валюта, в которой задана цена;
  • DISCOUNT_PRICE - величина скидки;
  • NOTES - особые заметки, например, тип цены;
  • VAT_RATE - величина налога на товар.


RecurringOrderProduct

Торговый каталог>Классы>CCatalogProductProvider>RecurringOrderProduct (доступен с 12.5.0)

CCatalogProductProvider::RecurringOrderProduct

Описание и параметры

Класс CCatalogProductProvider устарел с версии 17.5.0 модуля catalog. Используйте \Bitrix\Catalog\Product\CatalogProvider.

mixed CCatalogProductProvider::RecurringOrderProduct(
    array arParams
);

Метод получает данные товара для продления подписки. Метод статический.

Параметры вызова

Параметр Описание
arParams Ассоциативный массив параметров с ключами:
  • PRODUCT_ID - идентификатор товара;
  • USER_ID - идентификатор пользователя.

Возвращаемое значение

Возвращается ассоциативный массив с ключами:

  • WEIGHT - вес товара;
  • DIMENSIONS - размеры товара (ширина, высота и длина);
  • VAT_RATE - величина налога на товар;
  • QUANTITY - количество товара;
  • PRICE - цена;
  • WITHOUT_ORDER - (Y|N) флаг продления подписки без оформления заказа;
  • PRODUCT_ID - идентификатор товара;
  • PRODUCT_NAME - название товара;
  • PRODUCT_URL - ссылка на страницу с информацией о товаре;
  • PRODUCT_PRICE_ID - идентификатор цены товара;
  • CURRENCY - валюта, в которой задана цена;
  • NAME - название товара;
  • MODULE - название модуля, право на доступ к контенту которого продлевается;
  • PRODUCT_PROVIDER_CLASS - класс-провайдер модуля, предоставляющего товар;
  • CATALOG_GROUP_NAME - название группы цен на текущем языке;
  • DETAIL_PAGE_URL - ссылка на страницу с информацией о товаре;
  • PRICE_TYPE - тип цены;
  • RECUR_SCHEME_TYPE - тип периода подписки ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год);
  • RECUR_SCHEME_LENGTH - длина периода подписки;
  • PRODUCT_XML_ID - внешний код товара;
  • TYPE - код, обозначающий принадлежность товара к комплектам. Может быть пустым;
  • NEXT_DATE - дата очередного продления.


ReserveProduct

Торговый каталог>Классы>CCatalogProductProvider>ReserveProduct (доступен с 12.5.0)

CCatalogProductProvider::ReserveProduct

Класс CCatalogProductProvider устарел с версии 17.5.0 модуля catalog. Используйте \Bitrix\Catalog\Product\CatalogProvider.

array CCatalogProductProvider::ReserveProduct(
    array arParams
);

Метод осуществляет резервирование или отмену резервирования товара. Метод статический.

Параметры вызова

Параметр Описание
arParams Ассоциативный массив параметров с ключами:
  • PRODUCT_ID - идентификатор товара;
  • QUANTITY_ADD - резервируемое количество;
  • UNDO_RESERVATION - (Y|N) флаг определяет выполнять резервирование или снимать товар с резервов.

Возвращаемое значение

Метод возвращает ассоциативный массив с ключами:

  • RESULT - успешно (true) или неуспешно (false) завершилась операция;
  • QUANTITY_RESERVED - зарезервированное количество.


ViewProduct

Торговый каталог>Классы>CCatalogProductProvider>ViewProduct (доступен с 12.5.0)

CCatalogProductProvider::ViewProduct

Описание и параметры

Класс CCatalogProductProvider устарел с версии 17.5.0 модуля catalog. Используйте \Bitrix\Catalog\Product\CatalogProvider.

array CCatalogProductProvider::ViewProduct(
    array arParams
);

Метод возвращает информацию о просмотренном товаре для сохранения ее в магазине. Метод статический.

Параметры вызова

Параметр Описание
arParams Ассоциативный массив параметров товара, ключами в котором являются названия параметров, а значениями - соответствующие значения:
  • PRODUCT_ID - идентификатор товара;
  • USER_ID - идентификатор пользователя;
  • SITE_ID - код сайта.

Возвращаемое значение

Метод возвращает ассоциативный массив параметров товара с ключами:

  • PREVIEW_PICTURE - ID файла картинки анонса товара;
  • DETAIL_PICTURE - ID файла с детальной картинкой товара;
  • PRODUCT_PRICE_ID - идентификатор цены товара;
  • PRICE - величина цены товара;
  • VAT_RATE - величина налога на товар;
  • CURRENCY - валюта, в которой задана цена товара;
  • DISCOUNT_PRICE - величина скидки на товар;
  • NAME - название товара;
  • DETAIL_PAGE_URL - путь к странице с детальной информацией о товаре;
  • NOTES - особые заметки, например, тип цены.


CCatalogProductSet

Методы класса

Метод | Описание | С версии
add | Метод добавляет набор или комплект. | 14.0.0
delete | Метод удаляет комплект/набор. | 14.0.0
getAllSetsByProduct | Метод получает состав комплекта или набора(ов), принадлежащих товару. | 14.0.0
getSetByID | Метод получает комплект/набор по его ID. | 14.0.0
isProductHaveSet | Метод проверяет, является ли товар комплектом или имеет набор(ы). | 14.0.0
isProductInSet | Метод проверяет, входит ли товар $intProductID в комплект или набор. | 14.0.0
recalculateSetsByProduct | Метод пересчитывает все комплекты, в которые входит товар. | 14.5.13
update | Метод изменяет набор или комплект. | 14.0.0

Константы класса

Константа | Описание | С версии
TYPE_SET | Комплект. | 14.0.0
TYPE_GROUP | Набор. | 14.0.0


add

Торговый каталог>Классы>CCatalogProductSet>add (доступен с 14.0.0)

CCatalogProductSet::add

public static function
add(
    $arFields
);

Метод добавляет набор или комплект. На момент добавления комплекта товар-владелец обязательно должен иметь тип Простой. Статический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров с ключами:
  • ITEM_ID - идентификатор товара-владельца
  • TYPE - комплект/набор
  • ITEMS - массив элементов. Для каждого элемента массив:
    • ITEM_ID - идентификатор товара входящего в комплект/набор
    • QUANTITY - множитель единицы измерения товара,
    • SORT - сортировка внутри сущности

Возвращаемые значения

Вернет false или ID созданной сущности.


delete

Торговый каталог>Классы>CCatalogProductSet>delete (доступен с 14.0.0)

CCatalogProductSet::delete

public static function
delete(
    $intID
);

Метод удаляет комплект/набор. Статический метод.

Параметры вызова

Параметр | Описание
ID | Идентификатор сущности (комплекта/набора).

Возвращаемые значения

При удалении комплекта будет изменен тип товара-владельца, при удалении набора - произойдет смена флага BUNDLE у товара-владельца.


getAllSetsByProduct

Торговый каталог>Классы>CCatalogProductSet>getAllSetsByProduct (доступен с 14.0.0)

CCatalogProductSet::getAllSetsByProduct

Описание и параметры

public static function
getAllSetsByProduct(
    $intProductID,
    $intSetType
);

Метод получает состав комплекта или набора(ов), принадлежащих товару. Статический метод.

Параметры вызова

Параметр | Описание
ProductID | Код товара.
SetType | Тип сущности (комплект/набор).

Возвращаемые значения

Метод возвращает: false в случае ошибочных параметров, пусто - если ничего не найдено. Если найдено, то возвращает ассоциативный массив параметров с ключами со следующей структурой:

Для комплекта (ключ - идентификатор комплекта):

  • TYPE - константа CCatalogProductSet::TYPE_SET (комплект),
  • SET_ID - идентификатор комплекта,
  • ITEM_ID - идентификатор товара-комплекта,
  • ACTIVE - (Y|N) активность,
  • QUANTITY - количество,
  • MEASURE - идентификатор единицы измерения,
  • DISCOUNT_PERCENT - false,
  • SORT - индекс сортировки,
  • ITEMS - массив (список элементов комплекта.) Для каждого идентификатора записи комплекта массив:
    • ITEM_ID - идентификатор товара входящего в комплект,
    • QUANTITY - множитель единицы измерения товара,
    • MEASURE - идентификатор единицы измерения,
    • DISCOUNT_PERCENT - false (не используется),
    • SORT - индекс сортировки в комплекте.

Для наборов (ключ - идентификатор набора)

  • TYPE - константа CCatalogProductSet::TYPE_GROUP (набор),
  • SET_ID - идентификатор набора,
  • ITEM_ID - идентификатор товара, которому принадлежит набор,
  • ACTIVE'' - (Y|N) активность,
  • QUANTITY - количество,
  • MEASURE - идентификатор единицы измерения,
  • SORT - индекс сортировки,
  • ITEMS - массив (список элементов набора). Для каждого идентификатора записи набора массив:
    • ITEM_ID - идентификатор товара входящего в набор,
    • QUANTITY - множитель единицы измерения товара,
    • MEASURE - идентификатор единицы измерения,
    • SORT - индекс сортировки в наборе.

Примеры использования

$ownerId = 17; // ID товара-владельца, для которого нужно получить набор(ы)
$result = CCatalogProductSet::getAllSetsByProduct($ownerId, CCatalogProductSet::TYPE_GROUP);
if (!empty($result))
{
      foreach ($result as $bundleId => $bundle)
      {
              echo 'ID набора: '.$bundleId;
              print_r($bundle); // описание и состав набора
      }
}
$ownerId = 45; // ID товара-комплекта
$result = CCatalogProductSet::getAllSetsByProduct($ownerId, CCatalogProductSet::TYPE_SET);
if (!empty($result))
{
      $set = reset($result);
      $setId = key($result);

      echo 'ID комплекта: '.$setId;
      print_r($set); // описание и состав комплекта
}


getSetByID

Торговый каталог>Классы>CCatalogProductSet>getSetByID

CCatalogProductSet::getSetByID

Описание и параметры

public static function
getSetByID(
    $intID
);

Метод получает комплект/набор по его ID. Статический метод.

Параметры вызова

Параметр | Описание
ID | Идентификатор комплекта/набора.

Возвращаемые значения

Метод возвращает: false - если ошибочный параметр, пустой массив - если ничего не нашли. Если нашли, то возвращает ассоциативный массив параметров с ключами такой структуры:
  • TYPE - константы CCatalogProductSet::TYPE_SET / CCatalogProductSet::TYPE_GROUP,
  • SET_ID - ID идентификатор комплекта/набора,
  • ITEM_ID - идентификатор основного товара,
  • OWNER_ID - идентификатор основного товара,
  • ACTIVE - (Y|N) активность,
  • QUANTITY - количество,
  • MEASURE - идентификатор единицы измерения,
  • DISCOUNT_PERCENT - false (не используется),
  • SORT - индекс сортировки,
  • ITEMS - массив (список элементов). Для каждого идентификатора записи массив:
    • ID - идентификатор записи,
    • SET_ID - ID идентификатор комплекта/набора,
    • OWNER_ID - идентификатор основного товара,
    • ITEM_ID - идентификатор товара, входящего в комплект/набор,
    • QUANTITY - множитель единицы измерения товара,
    • MEASURE - идентификатор единицы измерения,
    • DISCOUNT_PERCENT - false (не используется),
    • SORT - индекс сортировки в комплекте.

Примеры использования

$entityId = 17; // ID комплекта или набора
$result = CCatalogProductSet::getSetByID(
    $entityId
);
if (!empty($result))
{
    print_r($result); // состав набора или комплекта
}


isProductHaveSet

Торговый каталог>Классы>CCatalogProductSet>isProductHaveSet (доступен с 14.0.0)

CCatalogProductSet::isProductHaveSet

public static function
isProductHaveSet(
    $arProductID,
    $intSetType = 0
);

Метод проверяет, является ли товар комплектом или имеет набор(ы). Статический метод.

Параметры вызова

Параметр | Описание
ProductID | Код товара.
SetType | Тип сущности (комплект/набор). Необязательный параметр.

Возвращаемые значения

Метод возвращает true или false.

Примеры использования

CCatalogProductSet::isProductHaveSet($arProductID, CCatalogProductSet::TYPE_SET); // проверка, является ли товар комплектом - устарело, не использовать, проверять тип товара
CCatalogProductSet::isProductHaveSet($arProductID, CCatalogProductSet::TYPE_GROUP); // проверка, имеет ли товар набор(ы)
CCatalogProductSet::isProductHaveSet($arProductID); // проверка, товар-комплект или имеет набор(ы)


isProductInSet

Торговый каталог>Классы>CCatalogProductSet>isProductInSet (доступен с 14.0.0)

CCatalogProductSet::isProductInSet

public static function
isProductInSet(
    $intProductID,
    $intSetType = 0
);

Метод проверяет, входит ли товар с ProductID в комплект или набор. Статический метод.

Параметры вызова

Параметр | Описание
ProductID | Код товара.
SetType | Тип сущности (комплект/набор). Необязательный параметр.

Возвращаемые значения

Метод возвращает true или false.

Примеры использования

CCatalogProductSet::isProductInSet($intProductID, CCatalogProductSet::TYPE_SET); // проверка, входит ли товар в комплект
CCatalogProductSet::isProductInSet($intProductID, CCatalogProductSet::TYPE_GROUP); // проверка, входит ли товар в набор(ы)
CCatalogProductSet::isProductInSet($intProductID); // входит ли товар в комплект ИЛИ набор(ы)


recalculateSetsByProduct

Торговый каталог>Классы>CCatalogProductSet>recalculateSetsByProduct (доступен с 14.5.13)

CCatalogProductSet::recalculateSetsByProduct

public static function
recalculateSetsByProduct(
    $product
);

Метод пересчитывает все комплекты, в которые входит товар. Статический метод.

Параметры вызова

Параметр | Описание
product | идентификатор товара.

Возвращаемые значения

Возвращаемого значения нет.

Примеры использования

$productId = 141; // ID товара, который входит в комплект(ы)
CCatalogProductSet::recalculateSetsByProduct(
    $productId
);


update

Торговый каталог>Классы>CCatalogProductSet>update (доступен с 14.0.0)

CCatalogProductSet::update

public static function
update(
    $intID,
    $arFields
);

Метод изменяет набор или комплект. Статический метод.

Параметры вызова

Параметр | Описание
ID | Идентификатор сущности.
arFileds Ассоциативный массив параметров описания сущности:
  • ITEM_ID - идентификатор товара-владельца,
  • TYPE - тип комплект/набор,
  • ITEMS - массив элементов. Для каждого элемента массив:
    • ITEM_ID - идентификатор товара входящего в комплект/набор,
    • QUANTITY - множитель единицы измерения товара,
    • SORT - сортировка внутри сущности.


CCatalogSKU

Это вспомогательный класс для получения информации об инфоблоках, свойствах и элементах инфоблоков, относящихся к SKU.

Методы класса

Метод | Описание | С версии | До версии
ClearCache | Метод сбрасывает кеш, созданный методами GetInfoByOfferIBlock, GetInfoByProductIBlock и GetInfoByLinkProperty. | 12.5.6 |
GetInfoByIBlock | Метод возвращает информацию о том, какие типы товаров доступны в Торговом каталоге. | 16.0.3 |
GetInfoByLinkProperty | Метод возвращает информацию о том, является ли свойство инфоблока свойством привязки торговых предложений к товарам. | 11.0.2 |
GetInfoByOfferIBlock | Метод возвращает информацию о том, является ли инфоблок инфоблоком торговых предложений. | 11.0.2 |
GetInfoByProductIBlock | Метод возвращает информацию о том, является ли инфоблок инфоблоком товаров. | 11.0.2 |
GetProductInfo | Метод позволяет получить по ID торгового предложения ID товара. | 11.0.2 |
IsExistOffers | Метод определяет имеются ли у товара торговые предложения. | 12.5.6 | 15.0.2
getExistOffers | Метод возвращает признак наличия торговых предложений для массива товаров из одного или нескольких инфоблоков. | 15.0.2 |
getOffersList | Метод возвращает торговые предложения для массива товаров из одного или нескольких инфоблоков. | 15.0.2 |
getProductList | Метод возвращает товары для массива торговых предложений из одного или нескольких инфоблоков. | 15.0.2 |


ClearCache

Торговый каталог>Классы>CCatalogSKU>ClearCache (доступен с 12.5.6)

CCatalogSKU::ClearCache

CCatalogSKU::ClearCache()

Метод автоматически вызывается после изменения данных в CCatalog и сбрасывает кеш, созданный методами CCatalogSKU::GetInfoByOfferIBlock, CCatalogSKU::GetInfoByProductIBlock и CCatalogSKU::GetInfoByLinkProperty. Метод статический.

Параметры вызова

Без параметров.

Смотрите также

  • CCatalog


getExistOffers

Торговый каталог>Классы>CCatalogSKU>getExistOffers (доступен с 15.0.2)

CCatalogSKU::getExistOffers

Описание и параметры

mixed
CCatalogSKU::getExistOffers(
 array productID,
 int iblockID = 0
)

Метод возвращает признак наличия торговых предложений для массива товаров из одного или нескольких инфоблоков. Метод статический.

Параметры вызова

Параметр | Описание
productID | Массив идентификаторов товаров.
iblockID | ID инфоблока. Необязательный параметр, указывается только в случае, когда все товары относятся к одному инфоблоку. Во всех остальных случаях его не указывать, либо указывать равным нулю. При несоблюдении этого условия возвращенный результат не может считаться корректным.

Возвращаемое значение

В случае ошибки (некорректных параметров) метод возвращает false, а в случае успешного выполнения - массив, где ключами являются идентификаторы переданных товаров, а значениями - true/false (товар имеет или нет торговые предложения).

Примеры использования

$productList = array(100, 12, 45);
$offersExist = CCatalogSKU::getExistOffers($productList);
var_dump($offersExist);


GetInfoByIBlock

Торговый каталог>Классы>CCatalogSKU>GetInfoByIBlock (доступен с 16.0.3)

CCatalogSKU::GetInfoByIBlock

Описание и параметры

mixed
CCatalogSku::GetInfoByIBlock(
 $intIBlockID
)

Метод статический.

Параметры вызова

Параметр | Описание
$intIBlockID | ID инфоблока.

Возвращаемое значение

Возвращает информацию о том, является ли инфоблок Торговым каталогом:

  • false - не является;
  • Если является, то возвращается массив, в котором необходимо проверять значение ключа CATALOG_TYPE:
    if (\Bitrix\Main\Loader::includeModule('catalog'))
{
       $catalog = CCatalogSku::GetInfoByIBlock(ID_инфоблока);
       if (empty($catalog))
       {
           echo 'Инфоблок не найден или не имеет отношения к торговому каталогу';
       }
       else
       {
           switch ($catalog['CATALOG_TYPE'] )
              {
               case CCatalogSku::TYPE_CATALOG:
                     echo 'Простой торговый каталог';
                     break;
               case CCatalogSku::TYPE_FULL:
                     echo 'Расширенный торговый каталог';
                     break;
               case CCatalogSku::TYPE_PRODUCT:
                     echo 'Инфоблок товаров с торговыми предложениями';
                     break;
               case CCatalogSku::TYPE_OFFERS:
                     echo 'Торговый каталог предложений';
           }
       }
}

Важное примечание: до версии catalog 16.0.3, если инфоблок переставал быть торговым каталогом, у всех элементов этого инфоблока немедленно удалялись характеристики товара и цены. Сейчас эта информация стирается только при удалении самого элемента.

Возможные значения ключа CATALOG_TYPE

  • CCatalogSku::TYPE_CATALOG - простой торговый каталог. Может содержать следующие [dw]типы товаров[/dw][di] [image] [/di]:

    • \Bitrix\Catalog\ProductTable::TYPE_PRODUCT – простой товар
    • \Bitrix\Catalog\ProductTable::TYPE_SET – комплект

    При создании других типов товаров можно выбрать - [dw]комплект или набор[/dw][di] [image] [/di].

  • CCatalogSku::TYPE_FULL - расширенный торговый каталог. Может содержать все типы товаров простого торгового каталога плюс товары с торговыми предложениями:
    • \Bitrix\Catalog\ProductTable::TYPE_PRODUCT – простой товар
    • \Bitrix\Catalog\ProductTable::TYPE_SET – комплект
    • \Bitrix\Catalog\ProductTable::TYPE_SKU – товар с торговыми предложениями

    При выборе других типов товаров можно создать [dw]товар с торговыми предложениями, комплект или набор[/dw][di] [image] [/di].

  • CCatalogSku::TYPE_PRODUCT - инфоблок товаров с торговыми предложениями. Не является торговым каталогом. Содержит лишь [dw]один основной тип товара и один дополнительный[/dw][di] [image] [/di]:
    • \Bitrix\Catalog\ProductTable::TYPE_SKU – товар с торговыми предложениями
    • \Bitrix\Catalog\ProductTable::TYPE_EMPTY_SKU – товар, у которого отсутствуют торговые предложения (удалены либо не создавались)

    При выборе других типов товаров можно создать [dw]набор[/dw][di] [image] [/di].

  • CCatalogSku::TYPE_OFFERS - торговый каталог предложений. Его [dw]типы товаров[/dw][di] [image] [/di]:
    • \Bitrix\Catalog\ProductTable::TYPE_OFFER – торговое предложение
    • \Bitrix\Catalog\ProductTable::TYPE_FREE_OFFER – торговое предложение, у которого нет товара (не указан)

    При выборе других типов товаров можно создать [dw]набор[/dw][di] [image] [/di].


GetInfoByLinkProperty

Торговый каталог>Классы>CCatalogSKU>GetInfoByLinkProperty (доступен с 11.0.2)

CCatalogSKU::GetInfoByLinkProperty

mixed
CCatalogSKU::GetInfoByLinkProperty(
 $intPropertyID
)

Метод статический.

Параметры вызова

Параметр | Описание
$intPropertyID | ID свойства инфоблока.

Возвращаемое значение

Возвращает информацию о том, является ли свойство инфоблока свойством привязки торговых предложений к товарам:

  • false - не является;
  • Если является, то возвращается массив следующего вида: IBLOCK_ID (ID инфоблока торговых предложений), PRODUCT_IBLOCK_ID (ID инфоблока товаров), SKU_PROPERTY_ID (ID свойства привязки торговых предложений к товарам).

Примечание: начиная с версии модуля 12.5.6, возвращаемое значение метода кешируется в течение хита.


GetInfoByOfferIBlock

Торговый каталог>Классы>CCatalogSKU>GetInfoByOfferIBlock (доступен с 11.0.2)

CCatalogSKU::GetInfoByOfferIBlock

Описание и параметры

mixed
CCatalogSKU::GetInfoByOfferIBlock(
 $intIBlockID
)

Метод статический.

Параметры вызова

Параметр | Описание
$intIBlockID | ID инфоблока торговых предложений.

Возвращаемое значение

Возвращает информацию о том, является ли инфоблок инфоблоком торговых предложений:

  • false - не является;
  • Если является, то возвращается массив следующего вида: IBLOCK_ID (ID инфоблока торговых предложений), PRODUCT_IBLOCK_ID (ID инфоблока товаров), SKU_PROPERTY_ID (ID свойства привязки торговых предложений к товарам).

Примечание: начиная с версии модуля 12.5.6, возвращаемое значение метода кешируется в течение хита.

Примеры использования

Проверяем, хранит ли инфоблок торговые предложения:

$intIBlockID = 11;
$mxResult = CCatalogSKU::GetInfoByOfferIBlock(
 $intIBlockID
);
if (is_array($mxResult))
{
    echo 'ID инфоблока товаров = '.$mxResult['PRODUCT_IBLOCK_ID'];
}
else
{
    ShowError('Этот инфоблок не хранит торговых предложений');
}

Проверяем, является ли свойство привязкой торговых предложений к товару:

$intPropertyID = 53;
$mxResult = CCatalogSKU::GetInfoByLinkProperty(
 $intPropertyID
);
if (is_array($mxResult))
{
    echo 'Свойство связывает инфоблоки '.$mxResult['PRODUCT_IBLOCK_ID'].' и 	'.$mxResult['IBLOCK_ID'];
}
else
{
    ShowError('Свойство не является привязкой торговых предложений');
}


GetInfoByProductIBlock

Торговый каталог>Классы>CCatalogSKU>GetInfoByProductIBlock (доступен с 11.0.2)

CCatalogSKU::GetInfoByProductIBlock

Описание и параметры

mixed
CCatalogSKU::GetInfoByProductIBlock(
 $intIBlockID
)

Метод статический.

Параметры вызова

Параметр | Описание
$intIBlockID | ID инфоблока.

Возвращаемое значение

Возвращает информацию о том, является ли инфоблок инфоблоком товаров.

  • false - не является;
  • Если является, то возвращается массив следующего вида: IBLOCK_ID (ID инфоблока торговых предложений), PRODUCT_IBLOCK_ID (ID инфоблока товаров), SKU_PROPERTY_ID (ID свойства привязки торговых предложений к товарам).

Примечание: начиная с версии модуля 12.5.6, возвращаемое значение метода кешируется в течение хита.

Примеры использования

$intIBlockID = 7;
$mxResult = CCatalogSKU::GetInfoByProductIBlock(
 $intIBlockID
);
if (is_array($mxResult))
{
    echo 'ID инфоблока торговых предложений = '.$mxResult['IBLOCK_ID'];
}
else
{
    ShowError('У этого инфоблока нет SKU');
}


getOffersList

Торговый каталог>Классы>CCatalogSKU>getOffersList (доступен с 15.0.2)

CCatalogSKU::getOffersList

Описание и параметры

mixed
CCatalogSKU::getOffersList(
 array productID,
 int iblockID = 0,
 array skuFilter = array(),
 array fields = array(),
 array propertyFilter = array()
)

Метод возвращает торговые предложения для массива товаров из одного или нескольких инфоблоков. Метод статический.

Параметры вызова

Параметр | Описание
productID | Массив идентификаторов товаров.
iblockID | ID инфоблока. Необязательный параметр, задается только если все товары принадлежат одному инфоблоку. В противном случае должен быть равен нулю.
skuFilter | Массив для фильтрации торговых предложений - выбираются только те предложения, которые удовлетворяют фильтру. Если второй параметр не нулевой, то можно фильтровать и по свойствам предложений. В противном случае фильтрация возможна только по полям торговых предложений), так как фильтр является общим для всех инфоблоков. По умолчанию пуст.
fields | Массив с перечнем возвращаемых полей торговых предложений. Если не задать, то будут возвращены только ID и IBLOCK_ID предложения.
propertyFilter Массив с перечнем возвращаемых свойств торговых предложений. Может содержать один из ключей:
  • ID - содержит ID необходимых свойств (общий список для всех инфоблоков);
  • CODE - содержит символьные коды необходимых свойств (общий список для всех инфоблоков).
При наличии обоих ключей информация берется из ключа ID.

Возвращаемое значение

В случае ошибки (некорректных параметров) метод возвращает false, а в случае успешного выполнения - массив, где ключами являются идентификаторы товаров, у которых есть предложения, а значениями - массивы предложений (ключи - ID предложений).

Примеры использования

$res = CCatalogSKU::getOffersList(
        $productID, // массив ID товаров
        $iblockID = 0, // указываете ID инфоблока только в том случае, когда ВЕСЬ массив товаров из одного инфоблока и он известен
        $skuFilter = array(), // дополнительный фильтр предложений. по умолчанию пуст.
        $fields = array(),  // массив полей предложений. даже если пуст - вернет ID и IBLOCK_ID
        $propertyFilter = array() /* свойства предложений. имеет 2 ключа:
                               ID - массив ID свойств предложений
                                      либо
                               CODE - массив символьных кодов свойств предложений
                                     если указаны оба ключа, приоритет имеет ID*/
 );


GetProductInfo

Торговый каталог>Классы>CCatalogSKU>GetProductInfo (доступен с 11.0.2)

CCatalogSKU::GetProductInfo

Описание и параметры

mixed
CCatalogSku::GetProductInfo(
    $intOfferID,
    $intIBlockID = 0
)

Метод позволяет получить по ID торгового предложения ID товара. Метод статический.

Параметры вызова

Параметр | Описание
$intOfferID | ID торгового предложения.
$intIBlockID | ID инфоблока торговых предложений. Необязательный параметр.

Возвращаемое значение

  • false - в случае ошибки;
  • в противном случае массив следующей структуры: ID (ID товара), IBLOCK_ID (ID инфоблока товаров).

Примеры использования

$intElementID = 100; // ID предложения
$mxResult = CCatalogSku::GetProductInfo(
$intElementID
);
if (is_array($mxResult))
{
    echo 'ID товара = '.$mxResult['ID'];
}
else
{
    ShowError('Это не торговое предложение');
}


getProductList

Торговый каталог>Классы>CCatalogSKU>getProductList (доступен с 15.0.2)

CCatalogSKU::getProductList

mixed
CCatalogSKU::getProductList(
 array offerID,
 int iblockID = 0
)

Метод возвращает товары для массива торговых предложений из одного или нескольких инфоблоков. Метод статический.

Параметры вызова

Параметр | Описание
offerID | Массив идентификаторов торговых предложений.
iblockID | ID инфоблока предложений. Задается только если все предложения относятся к одному инфоблоку.

Возвращаемое значение

В случае ошибки (некорректных параметров) метод возвращает false, а в случае успешного выполнения - массив, где ключами являются идентификаторы торговых предложений, а значениями - массивы следующей структуры:

  • ID - ID товара;
  • IBLOCK_ID - ID инфоблока товара;
  • OFFER_IBLOCK_ID - ID инфоблока предложения;
  • SKU_PROPERTY_ID - ID свойства привязки предложения к товару.


IsExistOffers

Торговый каталог>Классы>CCatalogSKU>IsExistOffers (доступен с 12.5.6, устарел с 15.0.2)

CCatalogSKU::IsExistOffers

boolean
CCatalogSKU::IsExistOffers(
 int intProductID,
 int intIBlockID = 0
)

Метод определяет имеются ли у товара торговые предложения. Метод статический.

Важно! Метод объявлен устаревшим с версии 15.0.2, рекомендуется использовать метод CCatalogSKU::getExistOffers.

Параметры вызова

Параметр | Описание
intProductID | ID товара.
intIBlockID | ID инфоблока товаров (может отсутствовать, в этом случае будет лишний запрос к базе) .

Возвращаемое значение

Метод возвращает true в случае наличия торговых предложений и false в случае отсутствия или ошибки (некорректных параметров).


CCatalogStore

CCatalogStore - класс для работы со складами.

Методы класса

Метод | Описание | С версии
Add | Метод добавляет новый склад, в соответствии с данными из массива arFields. | 12.0.0
CheckFields | Метод проверяет параметры, переданные в методы Add и Update. | 12.0.0
Delete | Метод удаляет склад с кодом ID. | 12.0.0
GetList | Метод возвращает результат выборки записей из таблицы складов в соответствии со своими параметрами. | 12.0.0
Update | Метод изменяет параметры склада с кодом ID, в соответствии с данными из массива arFields. | 12.0.0


Add

Торговый каталог>Классы>CCatalogStore>Add (доступен с 12.0.0)

CCatalogStore::Add

Описание и параметры

int CCatalogStore::Add( array arFields);

Метод добавляет новый склад, в соответствии с данными из массива arFields. Метод статический.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров нового склада, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • TITLE - название склада;
  • ACTIVE - активность склада('Y' - активен, 'N' - не активен);
  • ADDRESS - адрес склада;
  • DESCRIPTION - описание склада;
  • GPS_N - GPS координата(широта);
  • GPS_S - GPS координата(долгота);
  • IMAGE_ID - ID картинки склада;
  • PHONE - телефон;
  • SCHEDULE - расписание работы склада (максимальный размер поля 255 символов);
  • XML_ID - XML_ID склада для экспорта\импорта из 1С;
  • ISSUING_CENTER - пункт выдачи (Y/N);
  • SHIPPING_CENTER - для отгрузки (Y/N).
  • SITE_ID - сайт.

Возвращаемое значение

Возвращает ID вновь созданного склада, если добавление совершено, в противном случае - false.

Примеры использования

$arFields = Array(
        "TITLE" => $TITLE,
        "ACTIVE" => $ACTIVE,
        "ADDRESS" => $ADDRESS,
        "DESCRIPTION" => $DESCRIPTION,
        "IMAGE_ID" => $fid,
        "GPS_N" => $GPS_N,
        "GPS_S" => $GPS_S,
        "PHONE" => $PHONE,
        "SCHEDULE" => $SCHEDULE,
        "XML_ID" => $XML_ID,
    );

    $ID = CCatalogStore::Add($arFields);


CheckFields

Торговый каталог>Классы>CCatalogStore>CheckFields (доступен с 12.0.0)

CCatalogStore::CheckFields

Описание и параметры

bool
CCatalogStore::CheckFields(
 string action,
 array &arFields
);

Метод служит для проверки параметров, переданных в методы CCatalogStore::Add и CCatalogStore::Update. Нестатический метод.

Параметры вызова

Параметр Описание
action Указывает, для какого метода идет проверка. Возможные значения:
  • ADD - для метода CCatalogStore::Add;
  • UPDATE - для метода CCatalogStore::Update.
arFields Ассоциативный массив параметров склада. Допустимые ключи:
  • TITLE - название склада;
  • ACTIVE - активность склада('Y' - активен, 'N' - не активен);
  • ADDRESS - адрес склада;
  • DESCRIPTION - описание склада;
  • GPS_N - GPS координата(широта);
  • GPS_S - GPS координата(долгота);
  • IMAGE_ID - ID картинки склада;
  • PHONE - телефон;
  • SCHEDULE - расписание работы склада;
  • XML_ID - XML_ID склада для экспорта\импорта из 1С;
  • ISSUING_CENTER - пункт выдачи (Y/N);
  • SHIPPING_CENTER - для отгрузки (Y/N).

Возвращаемое значение

В случае корректности переданных параметров возвращает true, иначе - false. Если функция вернула false, с помощью $APPLICATION->GetException() можно получить текст ошибок.

Смотрите также

  • Структура таблицы
  • CCatalogStore::Add
  • CCatalogStore::Update


Delete

Торговый каталог>Классы>CCatalogStore>Delete (доступен с 12.0.0)

CCatalogStore::Delete

bool CCatalogStore::Delete(int Id);

Метод удаляет склад с кодом ID. При этом удаляются так же все остатки товаров, относящиеся к этому складу. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код склада для удаления.

Возвращаемое значение

Возвращает true, если операция прошла успешно, в противном случае - false.

Примеры использования

 $result = CCatalogStore::Delete($id);


GetList

Торговый каталог>Классы>CCatalogStore>GetList (доступен с 12.0.0)

CCatalogStore::GetList

CCatalogStore::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из таблицы складов в соответствии со своими параметрами. Метод статический.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(

"название_поля1" => "направление_сортировки1",

"название_поля2" => "направление_сортировки2",

. . .

)
В качестве "название_поляN" может стоять любое поле, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",

"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле.

Пример фильтра:
array("ACTIVE" => "Y")
Этот фильтр означает "выбрать все записи, в которых значение в поле ACTIVE (флаг "Активность склада") равно Y".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращает объект класса CDBResult, содержащий коллекцию ассоциативных массивов с ключами.


Update

Торговый каталог>Классы>CCatalogStore>Update (доступен с 12.0.0)

CCatalogStore::Update

Описание и параметры

int CCatalogStore::Update(
   int Id,
   array arFields
);

Метод изменяет параметры склада с кодом ID, в соответствии с данными из массива arFields. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код склада для изменения.
arFields Ассоциативный массив параметров склада, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • TITLE - название склада;
  • ACTIVE - активность склада('Y' - активен, 'N' - не активен);
  • ADDRESS - адрес склада;
  • DESCRIPTION - описание склада;
  • GPS_N - GPS координата(широта);
  • GPS_S - GPS координата(долгота);
  • IMAGE_ID - ID картинки склада;
  • PHONE - телефон;
  • SCHEDULE - расписание работы склада;
  • XML_ID - XML_ID склада для экспорта\импорта из 1С;
  • ISSUING_CENTER - пункт выдачи (Y/N);
  • SHIPPING_CENTER - для отгрузки (Y/N).
  • SITE_ID - сайт.

Возвращаемое значение

Возвращает ID измененного склада, если операция прошла успешно, в противном случае - false.

Примеры использования

$arFields = Array(
        "TITLE" => $TITLE,
        "ACTIVE" => $ACTIVE,
        "ADDRESS" => $ADDRESS,
        "DESCRIPTION" => $DESCRIPTION,
        "IMAGE_ID" => $fid,
        "GPS_N" => $GPS_N,
        "GPS_S" => $GPS_S,
        "PHONE" => $PHONE,
        "SCHEDULE" => $SCHEDULE,
        "XML_ID" => $XML_ID,
    );

    $ID = CCatalogStore::Update(1, $arFields);


CCatalogStoreProduct

CCatalogStoreProduct - класс для работы со остатками товара на складах.

Методы класса

Метод | Описание | С версии
Add | Метод добавляет остаток товара, в соответствии с данными из массива arFields. | 12.0.0
Delete | Метод удаляет запись из таблицы остатков товара с кодом ID. | 12.0.0
GetList | Метод возвращает результат выборки записей из таблицы остатков товара в соответствии со своими параметрами. | 12.0.0
Update | Метод изменяет параметры записи с кодом ID, в соответствии с данными из массива arFields. | 12.0.0
UpdateFromForm | Метод изменяет параметры записи. | 12.0.0


Add

Торговый каталог>Классы>CCatalogStoreProduct>Add (доступен с 12.0.0)

CCatalogStoreProduct::Add

Описание и параметры

bool|int CCatalogStoreProduct::Add( array arFields);

Метод добавляет остаток товара, в соответствии с данными из массива arFields. Метод статический.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • PRODUCT_ID - ID товара;
  • STORE_ID - ID склада;
  • AMOUNT - количество товара;

Возвращаемое значение

Возвращает ID записи, если добавление совершено, в противном случае - false.

Примеры использования

$arFields = Array(
        "PRODUCT_ID" => 71,
        "STORE_ID" => 1,
        "AMOUNT" => 50,
    );

    $ID = CCatalogStoreProduct::Add($arFields);


Delete

Торговый каталог>Классы>CCatalogStoreProduct>Delete (доступен с 12.0.0)

CCatalogStoreProduct::Delete

bool CCatalogStoreProduct::Delete( int Id);

Метод удаляет запись из таблицы остатков товара с кодом ID. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код записи для удаления.

Возвращаемое значение

Возвращает true, если операция прошла успешно, в противном случае - false.

Примеры использования

    $id = 18;
    $result = CCatalogStoreProduct::Delete($id);


GetList

Торговый каталог>Классы>CCatalogStoreProduct>GetList (доступен с 12.0.0)

CCatalogStoreProduct::GetList

Описание и параметры

CCatalogStoreProduct::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей из таблицы остатков товара в соответствии со своими параметрами. Метод статический.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(

"название_поля1" => "направление_сортировки1",

"название_поля2" => "направление_сортировки2",

. . .

)
В качестве "название_поляN" может стоять любое поле, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",

"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле.

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращает объект класса CDBResult, содержащий коллекцию ассоциативных массивов с ключами.

Список возможных полей

Поля | Описание
ID | ID записи
PRODUCT_ID | ID элемента
AMOUNT | количество
STORE_ID | ID склада
STORE_NAME | название склада
STORE_ADDR | адрес склада
STORE_DESCR | описание склада
STORE_GPS_N | широта
STORE_GPS_S | долгота
STORE_IMAGE | картинка склада


Update

Торговый каталог>Классы>CCatalogStoreProduct>Update (доступен с 12.0.0)

CCatalogStoreProduct::Update

Описание и параметры

int CCatalogStoreProduct::Update(
   int Id,
   array arFields
);

Метод изменяет параметры записи с кодом ID, в соответствии с данными из массива arFields. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код записи для изменения.
arFields Ассоциативный массив параметров, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • PRODUCT_ID - ID товара;
  • STORE_ID - ID склада;
  • AMOUNT - количество товара;

Возвращаемое значение

Возвращает ID измененной записи, если операция прошла успешно, в противном случае - false.

Примеры использования

$arFields = Array(
        "PRODUCT_ID" => 25,
        "STORE_ID" => 3,
        "AMOUNT" => 4,
    );

    $ID = CCatalogStoreProduct::Update(1, $arFields);


UpdateFromForm

Торговый каталог>Классы>CCatalogStoreProduct>UpdateFromForm (доступен с 12.0.0)

CCatalogStoreProduct::UpdateFromForm

Описание и параметры

int CCatalogStoreProduct::UpdateFromForm( array arFields);

Метод изменяет параметры записи с кодом склада arFields["STORE_ID"] и кодом товара arFields["PRODUCT_ID"], если таковые уже существуют, в противном случае создает новую запись в таблице остатков товара. Метод статический.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
  • PRODUCT_ID - ID товара;
  • STORE_ID - ID склада;
  • AMOUNT - количество товара;

Возвращаемое значение

Если операция прошла успешно, то для новой записи возвращает ее ID, а для измененной записи - true. Если же операция прошла с ошибками, то возвращается false.

Примеры использования

$arFields = Array(
        "PRODUCT_ID" => 25,
        "STORE_ID" => 3,
        "AMOUNT" => 4,
    );

    $ID = CCatalogStoreProduct::UpdateFromForm($arFields);


CCatalogVat

CCatalogVat - класс для работы со ставками НДС.

Методы класса

Метод | Описание | С версии | До версии
Add | Метод добавляет новую ставку НДС в соответствии с данными из массива arFields. | 12.5.6 |
CheckFields | Метод служит для проверки параметров, переданных в методы CCatalogVat::Add и CCatalogVat::Update. | 7.0.0 |
Delete | Метод удаляет ставку НДС с кодом ID. | 7.0.0 |
GetByID | Метод возвращает ставку НДС по ее коду ID. | 7.0.0 |
GetList | Метод возвращает результат выборки записей из таблицы ставок НДС в соответствии со своими параметрами. | 7.0.0 | 12.5.6
GetListEx | Метод возвращает результат выборки записей из таблицы ставок НДС в соответствии со своими параметрами. | 12.5.6 |
Set | Метод добавляет новую ставку НДС или обновляет существующую в зависимости от передаваемых данных в массиве arFields. | 7.0.0 | 12.5.6
Update | Метод изменяет параметры ставки НДС с кодом ID в соответствии с данными из массива arFields. | 12.5.6 |


Add

Торговый каталог>Классы>CCatalogVat>Add (доступен с 12.5.6)

CCatalogVat::Add

int
CCatalogVat::Add(
 array arFields
);

Метод добавляет новую ставку НДС в соответствии с данными из массива arFields. Нестатический метод.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров новой ставки НДС. Допустимые ключи:
  • ACTIVE - активность ставки НДС ('Y' - активна, 'N' - неактивна);
  • SORT - индекс сортировки (до версии 12.5.6 использовалось поле C_SORT);
  • NAME - название ставки НДС (обязательное поле);
  • RATE - величина ставки НДС (обязательное поле).

Возвращаемое значение

Возвращает ID созданной ставки НДС или false в случае ошибки.


CheckFields

Торговый каталог>Классы>CCatalogVat>CheckFields (доступен с 7.0.0)

CCatalogVat::CheckFields

Описание и параметры

bool
CCatalogVat::CheckFields(
 string ACTION,
 array &arFields,
 int ID = 0
);

Метод служит для проверки параметров, переданных в методы CCatalogVat::Add и CCatalogVat::Update. Нестатический метод.

Параметры вызова

Параметр | Описание | С версии
ACTION Указывает, для какого метода идет проверка. Возможные значения:
  • ADD - для метода CCatalogVat::Add;
  • UPDATE - для метода CCatalogVat::Update.
arFields Ассоциативный массив параметров ставки НДС. Допустимые ключи:
  • ACTIVE - активность ставки НДС ('Y' - активна, 'N' - неактивна);
  • SORT - индекс сортировки (до версии 12.5.6 использовалось поле C_SORT);
  • NAME - название ставки НДС;
  • RATE - величина ставки НДС.
ID | Код ставки НДС. Параметр является необязательным и имеет смысл только для $ACTION = 'UPDATE'. | 12.5.6

Возвращаемое значение

В случае корректности переданных параметров возвращает true, иначе - false. Если метод вернула false, с помощью $APPLICATION->GetException() можно получить текст ошибок.

Смотрите также

  • CCatalogVat::Add
  • CCatalogVat::Update


Delete

Торговый каталог>Классы>CCatalogVat>Delete (доступен с 7.0.0)

CCatalogVat::Delete

bool
CCatalogVat::Delete(
 int ID
);

Метод удаляет ставку НДС с кодом ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код ставки НДС.

Возвращаемое значение

Возвращает true в случае успешного удаления и false - в противном случае.


GetByID

Торговый каталог>Классы>CCatalogVat>GetByID (доступен с 7.0.0)

CCatalogVat::GetByID

CDBResult
CCatalogVat::GetByID(
 int ID
);

Метод возвращает ставку НДС по ее коду ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код ставки НДС.

Возвращаемое значение

Возвращается объект CDBResult.

Смотрите также

  • CDBResult


GetList

Торговый каталог>Классы>CCatalogVat>GetList (доступен с 7.0.0, устарел с 12.5.6)

CCatalogVat::GetList

CDBResult
CCatalogVat::GetList(
  array arOrder = array('CSORT' => 'ASC'),
  array arFilter = array(),
  array arFields = array()
);

Метод возвращает результат выборки записей из таблицы ставок НДС в соответствии со своими параметрами. Нестатический метод.

Примечание: начиная с версии модуля 12.5.6, метод считается устаревшим. Вместо него рекомендуется использовать CCatalogVat::GetListEx.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле, кроме TIMESTAMP_X. В качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).
arFilter Массив, в соответствии с которым фильтруются записи. Массив имеет вид:
array(
"[оператор1]название_поля1" => "значение1",
"[оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое из следующих полей: ID, ACTIVE, NAME или RATE.

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arFields Массив полей записей, которые будут возвращены методом.

Возможные поля выборки: ID, TIMESTAMP_X, ACTIVE, C_SORT, NAME и RATE.

Возвращаемые значения

Возвращает объект класса CDBResult, содержащий коллекцию ассоциативных массивов с ключами.


GetListEx

Торговый каталог>Классы>CCatalogVat>GetListEx (доступен с 12.5.6)

CCatalogVat::GetListEx

CDBResult
CCatalogVat::GetListEx(
  array arOrder = array(),
  array arFilter = array(),
  array arGroupBy = false,
  array arNavStartParams = false,
  array arSelectFields = array()
);

Метод возвращает результат выборки записей из таблицы ставок НДС в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле.

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле. Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращает объект класса CDBResult, содержащий коллекцию ассоциативных массивов с ключами.


Set

Торговый каталог>Классы>CCatalogVat>Set (доступен с 7.0.0, устарел с 12.5.6)

CCatalogVat::Set

mixed
CCatalogVat::Set(
 array arFields
);

Метод добавляет новую ставку НДС или обновляет существующую в зависимости от передаваемых данных в массиве arFields. Нестатический метод.

Примечание: метод устарел, вместо него рекомендуется использоваться CCatalogVat::Add и CCatalogVat::Update соответственно.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров ставки НДС. Допустимые ключи:
  • ID - код ставки НДС (задается только для существующей ставки);
  • ACTIVE - активность ставки НДС ('Y' - активна, 'N' - неактивна);
  • C_SORT - индекс сортировки;
  • NAME - название ставки НДС;
  • RATE - величина ставки НДС.

Возвращаемое значение

Метод возвращает ID созданной или измененной ставки НДС, либо false в случае ошибки.


Update

Торговый каталог>Классы>CCatalogVat>Update (доступен с 12.5.6)

CCatalogVat::Update

mixed
CCatalogVat::Update(
 int ID,
 array arFields
);

Метод изменяет параметры ставки НДС с кодом ID в соответствии с данными из массива arFields. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код ставки НДС.
arFields Ассоциативный массив параметров ставки НДС. Допустимые ключи:
  • ACTIVE - активность ставки НДС ('Y' - активна, 'N' - неактивна);
  • SORT - индекс сортировки (до версии 12.5.6 использовалось поле C_SORT);
  • NAME - название ставки НДС;
  • RATE - величина ставки НДС.

Возвращаемое значение

Метод возвращает код измененной записи или false в случае ошибки.


CExtra

Методы класса

Метод | Описание | С версии
Add | Добавляет новую запись в таблицу наценок. | 3.1.1
CheckFields | Метод проверяет параметры, переданные в методы Add и Update. | 11.0.0
Delete | Удаляет запись наценки из базы. Цены, которые были заданы в виде наценки от базовой цены, становятся заданными абсолютным значением. Сама величина цены не меняется. | 3.1.1
GetByID | Метод возвращает параметры наценки по ее коду ID. | 3.1.1
GetList | Метод возвращает список наценок в соответствии с фильтром и условиями сортировки. | 3.1.1
SelectBox | Метод возвращает HTML код для отображения выпадающего списка (select) наценок. Метод кеширует список наценок, поэтому ее повторный вызов на одной странице не приводит к дополнительным запросам базы данных. | 3.1.1
Update | Метод обновляет параметры наценки с кодом ID на значения из массива arFields. | 3.1.1


Add

Торговый каталог>Классы>CExtra>Add (доступен с 3.1.1)

CExtra::Add

bool
CExtra::Add(
 array arFields
);

Добавляет новую запись в таблицу наценок. Метод статический.

Параметры вызова

Параметр Описание
arFields Ассоциативный массив параметров записи с ключами:
  • NAME - название наценки;
  • PERCENTAGE - процент наценки (может быть как положительным, так и отрицательным)

Возвращаемые значения

Возвращает true в случае успешного сохранения и false - в противном случае


CheckFields

Торговый каталог>Классы>CExtra>CheckFields (доступен с 11.0.0)

CExtra::CheckFields

Описание и параметры

bool
CExtra::CheckFields(
 string strAction,
 array &arFields,
 int ID
);

Метод служит для проверки параметров, переданных в методы CExtra::Add и CExtra::Update. Метод статический.

Параметры вызова

Параметр | Описание
strAction Указывает, для какого метода идет проверка. Возможные значения:
  • ADD - для метода CExtra::Add;
  • UPDATE - для метода CExtra::Update.
arFields Ассоциативный массив параметров наценки. Допустимые ключи:
  • NAME - название наценки;
  • PERCENTAGE - процент наценки (может быть как положительным, так и отрицательным).
ID | Код наценки.

Возвращаемое значение

В случае корректности переданных параметров возвращает true, иначе - false. Если метод вернул false, с помощью $APPLICATION->GetException() можно получить текст ошибок.

Смотрите также

  • Структура таблицы
  • CExtra::Add
  • CExtra::Update


Delete

Торговый каталог>Классы>CExtra>Delete (доступен с 3.1.1)

CExtra::Delete

bool
CExtra::Delete(
 int ID
);

Удаляет запись наценки из базы. Цены, которые были заданы в виде наценки от базовой цены, становятся заданными абсолютным значением. Сама величина цены не меняется. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код наценки.

Возвращаемые значения

Возвращается true в случае успешного удаления и false - в противном случае


GetByID

Торговый каталог>Классы>CExtra>GetByID (доступен с 3.1.1)

CExtra::GetByID

array
CExtra::GetByID(
 int ID
);

Метод возвращает параметры наценки по ее коду ID. Если указанной наценки не найдено, вернет false. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код наценки.

Возвращаемые значения

Возвращается ассоциативный массив с ключами

Ключ | Описание
ID | Код наценки.
NAME | Название наценки.
PERCENTAGE | Процент наценки.


GetList

Торговый каталог>Классы>CExtra>GetList (доступен с 3.1.1)

CExtra::GetList

Описание и параметры

CDBResult CExtra::GetList(
array $arOrder = array(),
array $arFilter = array(),
mixed $arGroupBy = false,
mixed $arNavStartParams = false,
array $arSelectFields = array()
);

Метод возвращает список наценок в соответствии с фильтром и условиями сортировки. Метод статический.

Примечание: в таком виде метод работает с версии 11.0.0. До этой версии использовалась устаревшая форма вызова метода (см. ниже).

Параметры вызова

Параметр Описание
arOrder Массив вида array(by1=>order1[, by2=>order2 [, ..]]), где by - поле для сортировки, может принимать значения:
  • ID - код (ID) наценки
  • NAME - название наценки
  • PERCENTAGE - величина наценки
поле order - направление сортировки, может принимать значения:
  • asc - по возрастанию
  • desc - по убыванию
Необязательный. По умолчанию данные не сортируются.
arFilter Массив параметров, по которым строится фильтр выборки. Имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.
Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
"название поля" может принимать значения:
  • ID - код (ID) наценки (число)
  • NAME - название наценки (строка)
  • PERCENTAGE - величина наценки (число)
Значения фильтра - одиночное значение или массив значений.
Необязательное. По умолчанию наценки не фильтруются.
arGroupBy Массив полей для группировки наценок. Имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле каталога.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.
Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Необязательный. По умолчанию false - наценки не ограничиваются.
arSelectedFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.
Необязательный. По умолчанию выводятся все поля.

Возвращаемые значения

Объект класса Класс CDBResult, содержащий ассоциативные массивы с ключами:

Ключ | Описание
ID | Код наценки.
NAME | Название наценки.
PERCENTAGE | Величина наценки.

Примечания

Сохранен старый способ вызова:

CDBResult CExtra::GetList(
 string by,
 string order
);

где by - поле сортировки, а order - направление.


SelectBox

Торговый каталог>Классы>CExtra>SelectBox (доступен с 3.1.1)

CExtra::SelectBox

Описание и параметры

string
CExtra::SelectBox(
 string sFieldName,
 string sValue,
 string sDefaultValue = "",
 string JavaChangeFunc = "",
 string sAdditionalParams = ""
);

Метод возвращает HTML код для отображения выпадающего списка (select) наценок. Метод кеширует список наценок, поэтому ее повторный вызов на одной странице не приводит к дополнительным запросам базы данных. Метод статический.

Параметры вызова

Параметр | Описание
sFieldName | Название выпадающего списка (атрибут name)
sValue | Начальное значение.
sDefaultValue | Название особого значения, относящееся к пустому значению наценки (например, "Все" или "Нет")
JavaChangeFunc | JavaScript обработчик события OnChange списка. Если указана пустая строка, то событие OnChange не обрабатывается.
sAdditionalParams | Дополнительные атрибуты тега <select>

Возвращаемые значения

Возвращает HTML код для вывода выпадающего списка наценок

Примеры использования

<?
echo CExtra::SelectBox("CAT_EXTRA",
                       2,
                       "Не установлено",
                       "ChangeExtra()",
                       "class='typeselect'");
?>


Update

Торговый каталог>Классы>CExtra>Update (доступен с 3.1.1)

CExtra::Update

bool
CExtra::Update(
 int ID,
 array arFields
);

Метод обновляет параметры наценки с кодом ID на значения из массива arFields. Метод статический.

Параметры вызова

Параметр | Описание
ID | Код.
arFields Ассоциативный массив новых параметров наценки с ключами:
  • NAME - название наценки;
  • PERCENTAGE - процент наценки (может быть как положительным, так и отрицательным);
  • RECALCULATE - если имеет значение Y, то будут автоматически пересчитаны все цены, которые заданы этой наценкой

Возвращаемые значения

Возвращает значение true в случае успешного сохранения наценки и false - в противном случае


CPrice

Методы класса

Метод | Описание | С версии
Add | Метод добавляет новое ценовое предложение (новую цену) для товара. | 3.3.5 (устарел с 17.6.0)
CheckFields | Метод проверяет (и модифицирует) массив данных цены перед его записью в таблицу или обновлением. | 4.0.4
Delete | Метод удаляет ценовое предложение с кодом ID | 3.3.5 (устарел с 17.6.0)
DeleteByProduct | Метод удаляет ценовые предложения для товара | 4.0.4
GetBasePrice | Метод возвращает базовую цену товара с кодом PRODUCT_ID. Базовая цена - это цена базового типа цен. | 3.3.5
SetBasePrice | Метод устанавливает базовую цену товара с кодом PRODUCT_ID. Базовая цена - это цена базового типа цен. | 3.3.5
GetByID | Метод возвращает ценовое предложение по его коду ID | 3.2.1
GetList | Метод возвращает результат выборки записей цен в соответствии со своими параметрами. | 3.2.1 (устарел с 17.6.0)
GetListEx | Метод возвращает результат выборки записей цен в соответствии со своими параметрами. | 4.0.4
ReCalculate | Метод выполняет пересчет всех цен товара или пересчет всех цен, имеющих определенный ID наценки. | 3.3.5
CPrice::ReCountForBase | Метод позволяет пересчитать цены товара, заданные как наценка к базовой. | 11.0.0
CPrice::ReCountFromBase | Метод позволяет пересчитать цену с наценкой на основе базовой. | 11.0.0
Update | Метод изменяет параметры ценового предложения (цены) для товара с кодом ID на значения из массива arFields. | 3.3.5 (устарел с 17.6.0)


Add

Торговый каталог>Классы>CPrice>Add (доступен с 3.3.5, устарел с 17.6.0)

CPrice::Add

Описание и параметры

mixed CPrice::Add(
 array arFields,
boolean $boolRecalc = false
);

Метод добавляет новое ценовое предложение (новую цену) для товара. Нестатический метод.

Метод работоспособен, но устарел. Вместо него рекомендуется использовать \Bitrix\Catalog\Model\Price::add.

Параметры вызова

Параметр Описание С версии
arFields Ассоциативный массив параметров ценового предложения. Допустимые параметры:
  • PRODUCT_ID - код товара или торгового предложения (ID элемента инфоблока).;
  • EXTRA_ID - код наценки;
  • CATALOG_GROUP_ID - код типа цены;
  • PRICE - цена;
  • CURRENCY - валюта цены (обязательный параметр);
  • QUANTITY_FROM - количество товара, начиная с приобретения которого действует эта цена;
  • QUANTITY_TO - количество товара, при приобретении которого заканчивает действие эта цена.

    Примечание: если необходимо, чтобы значения параметров QUANTITY_FROM и QUANTITY_TO не были заданы, необходимо указать у них в качестве значения false либо не задавать поля QUANTITY_FROM и QUANTITY_TO в Update вообще.

Если установлен код наценки, то появляется возможность автоматически пересчитывать эту цену при изменении базовой цены или процента наценки.
boolRecalc Пересчитать цены. Если передать true, то включается механизм пересчета цен.
Если добавляется базовая цена (в CATALOG_GROUP_ID задан тип цен, являющийся базовым), будут пересчитаны все остальные типы цен для товара, если у них задан код наценки.
Если добавляется иная цена (не базовая), для нее задан код наценки и уже существует базовая - значения PRICE и CURRENCY буду пересчитаны.
Необязательный параметр. По умолчанию - false. 		11.0.0

Возвращаемые значения

Возвращает идентификатор добавленной цены в случае успешного сохранения и false - в противном случае. Для получения детальной информации об ошибке следует вызвать $APPLICATION->GetException().

События

Метод работает с событиями OnBeforePriceAdd и OnPriceAdd.

Примечания:
  • Если параметр $boolRecalc = true, все равно необходимо указывать цену и валюту (в том случае, когда тип цены - не базовый). Если существует базовая цена, значения цены и валюты будут изменены, если нет - код наценки будет изменен на ноль.
  • В обработчиках события OnBeforePriceAdd можно запретить или, наоборот, включить пересчет цены. За это отвечает ключ RECALC массива данных, передаваемых в обработчик.

Смотрите также

  • Структура таблицы
  • CPrice::CheckFields
  • CPrice::Update
  • Событие OnBeforePriceAdd
  • Событие OnPriceAdd

Примеры использования

Добавление цены

<?
// Установим для товара с кодом 15 цену типа 2 в значение 29.95 USD
$PRODUCT_ID = 15;
$PRICE_TYPE_ID = 2;

$arFields = Array(
    "PRODUCT_ID" => $PRODUCT_ID,
    "CATALOG_GROUP_ID" => $PRICE_TYPE_ID,
    "PRICE" => 29.95,
    "CURRENCY" => "USD",
    "QUANTITY_FROM" => 1,
    "QUANTITY_TO" => 10
);

$res = CPrice::GetList(
        array(),
        array(
                "PRODUCT_ID" => $PRODUCT_ID,
                "CATALOG_GROUP_ID" => $PRICE_TYPE_ID
            )
    );

if ($arr = $res->Fetch())
{
    CPrice::Update($arr["ID"], $arFields);
}
else
{
    CPrice::Add($arFields);
}
?>

Добавление цены с пересчетом (базовая существует)

$PRODUCT_ID = 15;
$PRICE_TYPE_ID = 2;
$arFields = array(
    "PRODUCT_ID" => $PRODUCT_ID,
    "CATALOG_GROUP_ID" => $PRICE_TYPE_ID,
    "PRICE" => 0,
    "CURRENCY" => "RUB",
    "EXTRA_ID" => 4,
    "QUANTITY_FROM" => 1,
    "QUANTITY_TO" => 10
);

$obPrice = new CPrice();
$obPrice->Add($arFields,true);

Величина и валюта цены будет расчитана исходя из наценки и базовой цены.


CheckFields

Торговый каталог>Классы>CPrice>CheckFields (доступен с 4.0.4)

CPrice::CheckFields

Описание и параметры

bool CPrice::CheckFields(
 string ACTION,
 array &arFields,
 int ID = 0
);

Метод проверяет (и модифицирует) массив данных цены перед его записью в таблицу или обновлением. Вызывается в методах CPrice::Add и CPrice::Update. Нестатический метод.

Параметры вызова

Параметр | Описание
ACTION Указывает, для какого метода идет проверка. Возможные значения (регистр важен):
  • ADD - для метода CPrice::Add;
  • UPDATE - для метода CPrice::Update.
arFields Ассоциативный массив параметров ценового предложения. Передается по ссылке, после вызова метода содержимое массива может измениться. Допустимые ключи:
  • PRODUCT_ID - код товара;
  • CATALOG_GROUP_ID - код типа цены;
  • CURRENCY - валюта цены.
ID | Идентификатор ценового предложения. Параметр является необязательным и имеет смысл только для $ACTION = 'UPDATE'.

Возвращаемые значения

В случае корректности переданных параметров возвращает true, иначе - false. Если метод вернул false, то запись не будет добавлена/сохранена и с помощью $APPLICATION->GetException() можно получить текст ошибок.

Смотрите также

  • CPrice::Add
  • CPrice::Update


Delete

Торговый каталог>Классы>CPrice>Delete (доступен с 3.3.5, устарел с 17.6.0)

CPrice::Delete

Описание и параметры

bool
  CPrice::Delete(
 int ID
);

Метод удаляет ценовое предложение с кодом ID. Нестатический метод.

Примечание: метод работает с двумя событиями: OnBeforePriceDelete и OnPriceDelete. Событие OnBeforePriceDelete позволяет отменить удаление ценового предложения. Событие OnPriceDelete дает возможность провести какие-то операции одновременно с удалением цены.

Параметры метода

Параметр | Описание
ID | Код ценового предложения.

Возвращаемые значения

Возвращает значение true в случае успешного удаления и false - в противном случае.

Смотрите также

Методы

  • CPrice::DeleteByProduct

События

  • OnProductPriceDelete
  • OnPriceDelete

Примеры использования

<?
// Удалим цену с кодом 11
CPrice::Delete(11);
?>


DeleteByProduct

Торговый каталог>Классы>CPrice>DeleteByProduct (доступен с 4.0.4)

CPrice::DeleteByProduct

Описание и параметры

boolean
CPrice::DeleteByProduct(
 int ProductID,
 array arExceptionIDs = array()
);

Метод удаляет цены для товара. В качестве аргументов методу передаются код (ID) товара и, опционально, массив кодов (ID) цен, которые необходимо оставить. Если второй аргумент - пустой, удаляются все цены. Нестатический метод.

Примечание: метод работает с двумя событиями: OnBeforeProductPriceDelete и OnProductPriceDelete. Событие OnBeforeProductPriceDelete позволяет отменить удаление либо изменить перечень цен, которые будут оставлены. Событие OnProductPriceDelete дает возможность провести какие-то операции одновременно с удалением цен.

Параметры метода

Параметр | Описание
ProductID | Код товара или торгового предложения (ID элемента инфоблока), у которого необходимо удалить цены
arExceptionIDs | Массив кодов (ID) цен, которые будут оставлены. Если массив пуст, будут удалены все цены товара.

Возвращаемое значение

  • true в случае успеха
  • false, если произошла ошибка или удаление было отменено.

Смотрите также

Методы

  • CPrice::Delete

События

  • OnBeforeProductPriceDelete
  • OnProductPriceDelete

Примеры использования

Удаление всех цен товара

$boolResult = CPrice::DeleteByProduct(241);

Удаление всех цен товара, кроме двух

$boolResult = CPrice::DeleteByProduct(241,array(426,456));


GetBasePrice

Торговый каталог>Классы>CPrice>GetBasePrice (доступен с 3.3.5)

CPrice::GetBasePrice

Описание и параметры

array
CPrice::GetBasePrice(
 int productID[,
 int quantityFrom = false[,
 int quantityTo = false]]
);

Метод возвращает базовую цену товара с кодом PRODUCT_ID. Базовая цена - это цена базового типа цен. Нестатический метод.

Параметры вызова

Параметр | Описание | С версии
productID | Код товара или торгового предложения (ID элемента инфоблока). До версии 4.0.4 параметр назывался PRODUCT_ID. |
quantityFrom | Количество товара, начиная с приобретения которого действует эта цена. | 4.0.4
quantityTo | Количество товара, при приобретении которого заканчивает действие эта цена. | 4.0.4

Возвращаемые значения

Возвращает ассоциативный массив с ключами:

Код | Описание
ID | Код ценового предложения.
PRODUCT_ID | Код товара или торгового предложения (ID элемента инфоблока).
EXTRA_ID | Код наценки.
CATALOG_GROUP_ID | Код типа цены.
PRICE | Базовая цена.
CURRENCY | Валюта базовой цены.
QUANTITY_FROM | Количество товара, начиная с приобретения которого действует эта цена.
QUANTITY_TO | Количество товара, при приобретении которого заканчивает действие эта цена.

Примеры использования

<?
$ar_res = CPrice::GetBasePrice(11, 1, 10);
echo "Базовая цена товара с кодом 11 (при приобретении от ".
      $ar_res["QUANTITY_FROM"]." до ".
      $ar_res["QUANTITY_TO"]." единиц товара) равна ".
      $ar_res["PRICE"]." ".$ar_res["CURRENCY"]."<br>";
echo "Отформатированая базовая цена: ".
      CurrencyFormat($ar_res["PRICE"], $ar_res["CURRENCY"]);
?>


GetByID

Торговый каталог>Классы>CPrice>GetByID (доступен с 3.2.1)

CPrice::GetByID

Описание и параметры

array
CPrice::GetByID(
 int ID
);

Метод возвращает ценовое предложение по его коду ID. Нестатический метод.

Параметры вызова

Параметр | Описание
ID | Код ценового предложения.

Возвращаемые значения

Возвращается ассоциативный массив с ключами

Ключ | Описание
ID | Код ценового предложения.
PRODUCT_ID | Код товара или торгового предложения (ID элемента инфоблока)
EXTRA_ID | Код наценки.
CATALOG_GROUP_ID | Код типа цены.
PRICE | Цена.
CURRENCY | Валюта.
CAN_ACCESS | Флаг (Y/N), может ли текущий пользователь видеть эту цену.
CAN_BUY | Флаг (Y/N), может ли текущий пользователь покупать по этой цене.
CATALOG_GROUP_NAME | Название группы цен на текущем языке.
TIMESTAMP_X | Дата последнего изменения записи.
QUANTITY_FROM | Количество товара, начиная с приобретения которого действует эта цена.
QUANTITY_TO | Количество товара, при приобретении которого заканчивает действие эта цена.

Примеры использования

<?
$ID = 11;
$arPrice = CPrice::GetByID($ID);
echo "Цена типа ".$arPrice["CATALOG_GROUP_NAME"].
     " на товар с кодом ".$ID.": ";
echo CurrencyFormat($arPrice["PRICE"],
                    $arPrice["CURRENCY"])."<br>";
echo "Вы ".(($arPrice["CAN_ACCESS"]=="Y") ?
            "можете" :
            "не можете")." видеть эту цену";
?>


GetList

Торговый каталог>Классы>CPrice>GetList (доступен с 3.2.1, устарел с 17.6.0)

CPrice::GetList

Описание и параметры

CDBResult
CPrice::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей цен в соответствии со своими параметрами. Нестатический метод.

Метод устарел, вместо него используйте метод \Bitrix\Catalog\PriceTable ::getList

Примечание: Если выборку нужно произвести без учёта прав доступа, то лучше использовать метод GetListEx.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле цены, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи типов цены. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле типов цены.

Пример фильтра:
array("PRODUCT_ID" => 150)
Этот фильтр означает "выбрать все записи, в которых значение в поле PRODUCT_ID (код товара) равно 150".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи типов цены. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле типов цены.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Ключ | Описание
ID | Код ценового предложения.
PRODUCT_ID | Код товара или торгового предложения (ID элемента инфоблока).
EXTRA_ID | Код наценки.
CATALOG_GROUP_ID | Код типа цены.
PRICE | Цена.
CURRENCY | Валюта.
CAN_ACCESS | Флаг (Y/N), может ли текущий пользователь видеть эту цену.
CAN_BUY | Флаг (Y/N), может ли текущий пользователь покупать по этой цене.
CATALOG_GROUP_NAME | Название группы цен на текущем языке.
TIMESTAMP_X | Дата последнего изменения записи.
QUANTITY_FROM | Количество товара, начиная с приобретения которого действует эта цена.
QUANTITY_TO | Количество товара, при приобретении которого заканчивает действие эта цена.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Примеры использования

<?
// Выведем цену типа $PRICE_TYPE_ID товара с кодом $PRODUCT_ID

$db_res = CPrice::GetList(
        array(),
        array(
                "PRODUCT_ID" => $PRODUCT_ID,
                "CATALOG_GROUP_ID" => $PRICE_TYPE_ID
            )
    );
if ($ar_res = $db_res->Fetch())
{
    echo CurrencyFormat($ar_res["PRICE"], $ar_res["CURRENCY"]);
}
else
{
    echo "Цена не найдена!";
}
?>


GetListEx

Торговый каталог>Классы>CPrice>GetListEx (доступен с 4.0.4)

CPrice::GetListEx

Описание и параметры

CDBResult
CPrice::GetListEx(
 array arOrder = array(),
 array arFilter = array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array()
);

Метод возвращает результат выборки записей цен в соответствии со своими параметрами. Отличается от обычного GetList отсутствием безусловной проверкой прав на типы цен для групп текущего пользователя. Метод необходимо использовать везде, где эта проверка не требуется (будет гораздо производительнее). Нестатический метод.

Параметры вызова

Параметр Описание
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле цены, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).

Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет.
arFilter Массив, в соответствии с которым фильтруются записи типов цены. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • @ - оператор может использоваться для целочисленных и вещественных данных при передаче набора значений (массива). В этом случае при генерации sql-запроса будет использован sql-оператор IN, дающий компактную форму записи;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле типов цены.

Пример фильтра:
array("PRODUCT_ID" => 150)
Этот фильтр означает "выбрать все записи, в которых значение в поле PRODUCT_ID (код товара) равно 150".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.
arGroupBy Массив полей, по которым группируются записи типов цены. Массив имеет вид:
array("название_поля1", "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле типов цены.

Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов с ключами:

Ключ | Описание
ID | Код ценового предложения.
PRODUCT_ID | код товара или торгового предложения (ID элемента инфоблока)
EXTRA_ID | Код наценки.
CATALOG_GROUP_ID | Код типа цены.
PRICE | Цена.
CURRENCY | Валюта.
TIMESTAMP_X | Дата последнего изменения записи.
QUANTITY_FROM | Количество товара, начиная с приобретения которого действует эта цена.
QUANTITY_TO | Количество товара, при приобретении которого заканчивает действие эта цена.
CATALOG_GROUP_BASE | Флаг "Базовая" типа цены.
CATALOG_GROUP_NAME | Название группы цен на текущем языке.
CATALOG_GROUP_SORT | Индекс сортировки типа цены.
GROUP_BUY | Флаг "Разрешена покупка по этой цене"

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Примеры использования

<?
$dbProductPrice = CPrice::GetListEx(
        array(),
        array("PRODUCT_ID" => $ID),
        false,
        false,
        array("ID", "CATALOG_GROUP_ID", "PRICE", "CURRENCY", "QUANTITY_FROM", "QUANTITY_TO")
    );
?>


OnCurrencyDelete

Торговый каталог>Классы>CPrice>OnCurrencyDelete (доступен с 3.3.5)

CPrice::OnCurrencyDelete

mixed CPrice::OnCurrencyDelete(
 string Currency
);

Метод удаляет все цены в валюте Currency. Является обработчиком события OnCurrencyDelete модуля Валюты. Нестатический метод.

Параметры вызова

Параметр | Описание
Currency | Идентификатор удаляемой валюты.

Возвращаемые значения

В случае успешного удаления возвращает результат метода CDatabase::Query, а в случае ошибки - false.

Смотрите также

  • Событие OnCurrencyDelete


OnIBlockElementDelete

Торговый каталог>Классы>CPrice>OnIBlockElementDelete (доступен с 3.3.5)

CPrice::OnIBlockElementDelete

mixed CPrice::OnIBlockElementDelete(
 int ProductID
);

Метод удаляет все цены для элемента с идентификатором ProductID. Нестатический метод. Является обработчиком события OnIBlockElementDelete модуля Информационные блоки.

Параметры вызова

Параметр | Описание
ProductID | Идентификатор удаляемого элемента.

Возвращаемые значения

В случае успешного удаления возвращает результат метода CDatabase::Query, а в случае ошибки - false.

Смотрите также

  • Событие OnIBlockElementDelete


ReCalculate

Торговый каталог>Классы>CPrice>ReCalculate (доступен с 3.3.5)

CPrice::ReCalculate

CPrice::ReCalculate(
 string TYPE,
 int ID,
 int VAL
);

Метод выполняет пересчет всех цен товара или пересчет всех цен, имеющих определенный ID наценки. Нестатический метод.

Параметры метода

Параметр | Описание
TYPE | Параметр определяет, что передается в параметре ID: идентификатор товара или идентификатор наценки. Если принимает значение EXTRA (регистр важен), то будет выполняться пересчет всех цен с определенной наценкой. При любом другом значении будет выполняться пересчет всех цен конкретного товара.
ID | Идентификатор товара или идентификатор наценки.
VAL | Новое значение процента наценки, если параметр TYPE принимает значение EXTRA. В противном случае - новая базовая цена, от которой будут рассчитываться наценки.

Возвращаемое значение

Нет.


ReCountForBase

Торговый каталог>Классы>CPrice>ReCountForBase (доступен с 11.0.0)

CPrice::ReCountForBase

CPrice::ReCountForBase(
 array &arFields
);

Метод позволяет пересчитать цены товара, заданные как наценка к базовой. Метод внутренний, используется в методах CPrice::Add (со вторым параметром, равным true) и CPrice::Update (с третьим параметром, равным true).

Параметры метода

Параметр Описание
arFields Ассоциативный массив параметров цены. Передается по ссылке, после вызова метода содержимое массива может измениться. Допустимые ключи:
  • PRODUCT_ID - идентификатор товара;
  • CATALOG_GROUP_ID - идентификатор базового типа цены;
  • PRICE - значение базовой цены;
  • CURRENCY - валюта базовой цены;
  • QUANTITY_FROM - количество товара, начиная с приобретения которого действует цена (указывается в случае, когда используется расширенный режим управления ценами);
  • QUANTITY_TO - количество товара, при приобретении которого заканчивает действие цена (указывается в случае, когда используется расширенный режим управления ценами).

Возвращаемое значение

Нет.


ReCountFromBase

Торговый каталог>Классы>CPrice>ReCountFromBase (доступен с 11.0.0)

CPrice::ReCountFromBase

CPrice::ReCountFromBase(
 array &arFields,
 bool &boolBase
);

Метод позволяет пересчитать цену с наценкой на основе базовой.

Параметры метода

Параметр | Описание
arFields Ассоциативный массив параметров цены. Передается по ссылке, после вызова метода содержимое массива может измениться. Допустимые ключи:
  • PRODUCT_ID - идентификатор товара;
  • CATALOG_GROUP_ID - идентификатор типа цены;
  • EXTRA_ID - идентификатор наценки (ключ обнуляется в случае неудачи при пересчете цены);
  • PRICE - новое значение цены (ключ появляется в массиве в случае успешного пересчета цены);
  • CURRENCY - валюта новой цены (ключ появляется в массиве в случае успешного пересчета цены);
  • QUANTITY_FROM - количество товара, начиная с приобретения которого действует цена. Указывается в случае, когда используется расширенный режим управления ценами.
  • QUANTITY_TO - количество товара, при приобретении которого заканчивает действие цена. Указывается в случае, когда используется расширенный режим управления ценами.
boolBase | Передается по ссылке. Принимает значение true, если передана цена базового типа, в противном случае - false.

Возвращаемое значение

Нет.


SetBasePrice

Торговый каталог>Классы>CPrice>SetBasePrice (доступен с 3.3.5)

CPrice::SetBasePrice

bool
CPrice::SetBasePrice(
 int ProductID,
 float Price,
 string Currency[,
 int|boolean quantityFrom = false[,
 int|boolean quantityTo = false[,
 boolean bGetID = false]]]
);

Метод устанавливает базовую цену товара с кодом ProductID. Базовая цена - это цена базового типа цен. Нестатический метод. Перед использованием убедитесь, что сохранены характеристики товара - класс CCatalogProduct.

Важно! Рекомендуется использовать метод CPrice::Add взамен данного.

Параметры вызова

Параметр | Описание | С версии
ProductID | Код товара или торгового предложения (ID элемента инфоблока). До версии 4.0.4 параметр назывался PRODUCT_ID. |
Price | Новая базовая цена. До версии 4.0.4 параметр назывался PRICE. |
Currency | Валюта новой базовой цены. До версии 4.0.4 параметр назывался CURRENCY. |
quantityFrom | Количество товара, начиная с приобретения которого действует эта цена. Значение по умолчанию, начиная с версии 14.5.0, равно false. До версии 14.5.0 значение по умолчанию было равно 0, но его использование приводило к ошибке. Поэтому при использовании функции на установках, где версия модуля ниже 14.5.0, необходимо явно указывать значение false. Цифровое значение (любое) можно ставить только в том случае, если базовая цена создается в расширенном режиме цен (зависимости цены от количества). | 4.0.4
quantityTo | Количество товара, при приобретении которого заканчивает действие эта цена. Значение по умолчанию, начиная с версии 14.5.0, равно false. До версии 14.5.0 значение по умолчанию было равно 0, но его использование приводило к ошибке. Поэтому при использовании функции на установках, где версия модуля ниже 14.5.0, необходимо явно указывать значение false. Цифровое значение (любое) можно ставить только в том случае, если базовая цена создается в расширенном режиме цен (зависимости цены от количества). | 4.0.4
bGetID | Если задано значение false, то будет возвращено true после установки цены. Иначе задается код записи в таблице. | 10.0.4

Возвращаемые значения

Возвращает значение true в случае успешного сохранения цены и false - в противном случае.


Update

Торговый каталог>Классы>CPrice>Update (доступен с 3.3.5, устарел с 17.6.0)

CPrice::Update

Описание и параметры

bool CPrice::Update(
 int ID,
 array arFields,
 boolean $boolRecalc = false,
);

Метод изменяет параметры ценового предложения (цены) для товара с кодом ID на значения из массива arFields. Нестатический метод.

Важно! С версии 16.0.3 модуля Торговый каталог при передаче ключа PRICE настоятельно рекомендуется передавать также ключ CURRENCY. Это позволит исключить дополнительный запрос к базе внутри метода.

Метод работоспособен, но устарел. Вместо него рекомендуется использовать \Bitrix\Catalog\Model\Price::update.

Параметры вызова

Параметр | Описание | С версии
ID | Код ценового предложения.
arFields Ассоциативный массив новых параметров ценового предложения, ключами в котором являются названия полей предложения, а значениями - новые значения.
Допустимые ключи:
  • PRODUCT_ID - код товара или торгового предложения (ID элемента инфоблока);
  • EXTRA_ID - код наценки;
  • CATALOG_GROUP_ID - код типа цены;
  • PRICE - цена;
  • CURRENCY - валюта цены
  • QUANTITY_FROM - количество товара, начиная с приобретения которого действует эта цена.
  • QUANTITY_TO - количество товара, при приобретении которого заканчивает действие эта цена.

    Примечание: если необходимо, чтобы значения параметров QUANTITY_FROM и QUANTITY_TO не были заданы, необходимо указать у них в качестве значения false либо не задавать поля QUANTITY_FROM и QUANTITY_TO в Update вообще.

Если установлен код наценки, то появляется возможность автоматически пересчитывать эту цену при изменении базовой цены или процента наценки.
boolRecalc Пересчитать цены. Если передать true, то включается механизм пересчета цен.
Если обновляется базовая цена (в CATALOG_GROUP_ID задан тип цен, являющийся базовым), будут пересчитаны все остальные типы цен для товара, если у них задан код наценки.
Если обновляется иная цена (не базовая), для нее задан код наценки и уже существует базовая - значения PRICE и CURRENCY буду пересчитаны.
Необязательный параметр. По умолчанию - false. 		11.0.0

Возвращаемые значения

Возвращает ID обновляемой цены в случае успешного сохранения цены и false - в противном случае. Для получения детальной информации об ошибке следует вызвать $APPLICATION->GetException().

События

Метод работает с событиями OnBeforePriceUpdate и OnPriceUpdate.

Примечания:
  • Если параметр $boolRecalc = true, все равно необходимо указывать цену и валюту (в том случае, когда тип цены - не базовый). Если существует базовая цена, значения цены и валюты будут изменены, если нет - код наценки будет изменен на ноль.
  • В обработчиках события OnBeforePriceUpdate можно запретить или, наоборот, включить пересчет цены. За это отвечает ключ RECALC массива данных, передаваемых в обработчик.

Смотрите также

  • Структура таблицы
  • CPrice::CheckFields
  • CPrice::Add
  • Событие OnBeforePriceUpdate
  • Событие OnPriceUpdate

Примеры использования

<?
// Установим для товара с кодом 15 цену типа 2 в значение 29.95 USD
$PRODUCT_ID = 15;
$PRICE_TYPE_ID = 2;

$arFields = Array(
    "PRODUCT_ID" => $PRODUCT_ID,
    "CATALOG_GROUP_ID" => $PRICE_TYPE_ID,
    "PRICE" => 29.95,
    "CURRENCY" => "USD",
    "QUANTITY_FROM" => 1,
    "QUANTITY_TO" => 10
);

$res = CPrice::GetList(
        array(),
        array(
                "PRODUCT_ID" => $PRODUCT_ID,
                "CATALOG_GROUP_ID" => $PRICE_TYPE_ID
            )
    );

if ($arr = $res->Fetch())
{
    CPrice::Update($arr["ID"], $arFields);
}
else
{
    CPrice::Add($arFields);
}
?>


События

Событие | Вызывается | Метод | С версии
OnBeforeDiscountAdd | перед добавлением новой скидки. | CCatalogDiscount::Add | 14.0.4
OnBeforeDiscountUpdate | перед обновлением существующей скидки. | CCatalogDiscount::Update | 14.0.4
OnBeforeCouponAdd | перед добавлением купона. | CCatalogDiscountCoupon::Add | 12.0.0
OnBeforeCouponDelete | перед удалением купона. | CCatalogDiscountCoupon::Delete | 12.0.0
OnBeforeCouponUpdate | перед изменением купона. | CCatalogDiscountCoupon::Update | 12.0.0
OnBeforeDiscountDelete | перед удалением скидки. | CCatalogDiscount::Delete | 12.5.0
OnBeforeDocumentDelete | перед удалением документа. | CCatalogDocs::delete | 12.5.1
OnBeforeIBlockElementDelete | перед удалением элемента. | CCatalog::OnBeforeIBlockElementDelete | 10.0.2
OnCouponAdd | при добавлении купона. | CCatalogDiscountCoupon::Add | 12.0.0
OnCouponDelete | при удалении купона. | CCatalogDiscountCoupon::Delete | 12.0.0
OnCouponUpdate | при изменении купона. | CCatalogDiscountCoupon::Update | 12.0.0
OnDiscountAdd | в случае успешного добавления скидки. | CCatalogDiscount::Add | 11.0.5
OnDiscountDelete | при удалении скидки. | CCatalogDiscount::Delete | 11.0.5
OnDiscountUpdate | случае успешного изменения параметров скидки. | CCatalogDiscount::Update | 11.0.5
OnDocumentBarcodeDelete | после OnBeforeDocumentDelete в методе CCatalogStoreDocsBarcodeAll::OnBeforeDocumentDelete. | CCatalogStoreDocsBarcodeAll::OnBeforeDocumentDelete | 12.5.1, [dw]устарел с 22.0[/dw][di]Вместо него необходимо использовать OnDocumentDelete. Формат параметров обработчика тот же: function ($id) - где $id содержит идентификатор документа[/di]
OnDocumentElementDelete | после OnDocumentBarcodeDelete в методе CCatalogStoreDocsElementAll::OnDocumentBarcodeDelete. | CCatalogStoreDocsElementAll::OnDocumentBarcodeDelete | 12.5.1, [dw]устарел с 22.0[/dw][di]Вместо него необходимо использовать OnDocumentDelete. Формат параметров обработчика тот же: function ($id) - где $id содержит идентификатор документа[/di]
OnGenerateCoupon | при генерации купона. | CatalogGenerateCoupon | 11.0.5
OnGetDiscountResult | в конце метода CCatalogProduct::GetDiscount. | CCatalogDiscount::GetDiscount | 11.5.2
OnGetDiscountSave | в начале метода CCatalogDiscSave::GetDiscount. | CCatalogDiscountSave::GetDiscount | 11.5.2
OnGetNearestQuantityPrice | в начале метода CCatalogProduct::GetNearestQuantityPrice. | CCatalogProduct::GetNearestQuantityPrice | 11.0.5
OnGetNearestQuantityPriceResult | перед окончанием работы метода CCatalogProduct::GetNearestQuantityPrice. | CCatalogProduct::GetNearestQuantityPrice | 11.0.5
OnGetOptimalPrice | при поиске оптимальной цены товара. | CCatalogProduct::GetOptimalPrice | 11.0.5
OnGetOptimalPriceResult | перед окончанием работы метода CCatalogProduct::GetOptimalPrice. | CCatalogProduct::GetOptimalPrice | 11.0.5
OnCountPriceWithDiscount | при пересчете цены, к которой применена скидка. | CCatalogProduct::CountPriceWithDiscount | 11.0.5
OnCountPriceWithDiscountResult | перед окончанием работы метода CCatalogProduct::CountPriceWithDiscount. | CCatalogProduct::CountPriceWithDiscount | 11.0.5
OnSaleOrderSumm | при вычислении накопительной скидки. | CCatalogDiscountSave::__SaleOrderSumm | 11.5.2
OnBeforePriceAdd | перед добавлением новой цены товара. | CPrice::Add | 8.0.4
OnBeforePriceUpdate | перед изменением существующей цены. | CPrice::Update | 5.1.1
OnBeforePriceDelete | перед удалением существующей цены. | CPrice::Delete | 10.0.5
OnPriceDelete | в процессе удаления существующей цены. | CPrice::Delete | 10.0.5
OnBeforeProductPriceDelete | перед удалением цен в методе CPrice::DeleteByProduct(). | CPrice::DeleteByProduct | 10.0.5
OnProductPriceDelete | в процессе удаления цен в методе CPrice::DeleteByProduct(). | CPrice::DeleteByProduct | 10.0.5
OnBeforeProductAdd | перед добавлением товара. | CCatalogProduct::Add | 11.0.5
OnBeforeCatalogDelete | перед удалением записи о том, что инфоблок является торговым каталогом. | CCatalog::Delete | 3.2.1
OnBeforeGroupAdd | перед добавлением типа цены. | CCatalogGroup::Add | 4.0.4
OnBeforeGroupDelete | перед удалением типа цены. | CCatalogGroup::Delete | 4.0.4
OnBeforeGroupUpdate | перед изменением типа цены. | CCatalogGroup::Update | 4.0.4
OnBeforeProductUpdate | перед изменением свойств товара. | CCatalogProduct::Update | 5.1.1
OnCatalogDelete | при удалении записи о том, что инфоблок является торговым каталогом. | CCatalog::Delete | 3.2.1
OnGetDiscount | при получении скидки. | CCatalogDiscount::GetDiscount | 5.1.0
OnGroupAdd | при добавлении нового типа цены. | CCatalogGroup::Add | 12.5.5
OnGroupDelete | при удалении типа цены. | CCatalogGroup::Delete | 4.0.4
OnGroupUpdate | при изменении типа цены. | CCatalogGroup::Update | 4.0.4
OnPriceAdd | при добавлении нового ценового предложения. | CPrice::Add | 5.9.0
OnPriceUpdate | при изменении существующего ценового предложения. | CPrice::Update | 5.1.1
OnProductAdd | при добавлении товара. | CCatalogProduct::Add | 5.9.0
OnProductUpdate | в процессе изменения свойств товара. | CCatalogProduct::Update | 5.1.1
OnGetDiscountByPrice | для изменения логики метода GetDiscountByPrice. | CCatalogDiscount::GetDiscountByPrice | 5.1.0
OnGetDiscountByProduct | для изменения логики метода GetDiscountByProduct. | CCatalogDiscount::GetDiscountByProduct | 5.1.0
OnBeforeCatalogImport1C | событие, вызываемое перед началом процедуры обмена с 1С. Событие компонента catalog.import.1c |  | 11.5.4
OnSuccessCatalogImport1C | после успешного импорта товаров из 1С. Событие компонента catalog.import.1c |  | 11.5.4
OnBeforeStoreProductAdd | перед созданием новой записи о добавлении товара на склад. | CCatalogStoreProduct::Add | 12.5.4
OnBeforeStoreProductDelete | перед удалением записи из таблицы остатков товара. | CCatalogStoreProductAll::Delete | 12.5.4
OnBeforeStoreProductUpdate | перед изменением записи в таблице остатков товара. | CCatalogStoreProductAll::Update | 12.5.4
OnStoreProductAdd | в случае успешного создания новой записи о добавлении товара на склад. | CCatalogStoreProduct::Add | 12.5.4
OnStoreProductDelete | в случае успешного удаления записи из таблицы остатков товара на складе. | CCatalogStoreProductAll::Delete | 12.5.4
OnStoreProductUpdate | в случае успешного изменения записи в таблице остатков товара. | CCatalogStoreProductAll::Update | 12.5.4
OnBeforeCatalogStoreUpdate | перед обновлением параметров склада. | CCatalogStore::Update | 12.5.6
OnCatalogStoreUpdate | в случае успешного изменения параметров склада. | CCatalogStore::Update | 12.5.6
OnBeforeCatalogStoreDelete | перед удалением склада. | CCatalogStore::Delete | 12.5.6
OnCatalogStoreDelete | при удалении существующего склада. | CCatalogStore::Delete | 12.5.3
OnBeforeCatalogStoreAdd | перед добавлением нового склада. | CCatalogStore::Add | 12.5.6
OnCatalogStoreAdd | в случае успешного добавления нового склада. | CCatalogStore::Add | 12.5.6


OnBeforeCatalogDelete

bool
функция-обработчик(
   int ID
);

OnBeforeCatalogDelete - событие, вызываемое перед удалением записи о том, что инфоблок является торговым каталогом. Вызывается в методе CCatalog::Delete.

Параметры

Параметр | Описание
ID | Код информационного блока - каталога.

Возвращаемое значение

  • true - удаление разрешено;
  • false - удаление отменено.

Смотрите также

  • CCatalog::Delete


OnBeforeCatalogImport1C

string функция-обработчик(
   array arParams,
   string ABS_FILE_NAME
);

OnBeforeCatalogImport1C - событие, вызываемое перед началом процедуры обмена: перед загрузкой XML в базу данных после загрузки файла на сервер.

Параметры

Параметр | Описание
arParams | Параметры подключения компонента обмена.
ABS_FILE_NAME | Полный путь к XML-файлу обмена.

Возвращаемое значение

Если возвращает непустую строку, то обмен завершается с сообщением об ошибке равным этой строке.


OnBeforeCatalogStoreAdd

bool
функция-обработчик(
   array &arFields
);

OnBeforeCatalogStoreAdd - событие, вызываемое перед добавлением нового склада в методе CCatalogStore::Add. Позволяет изменить данные до вызова CCatalogStore::CheckFields или отменить создание.

Параметры

Параметр | Описание
arFields | Ассоциативный массив параметров склада. Перечень допустимых ключей массива смотрите в CCatalogStore::Add.

Возвращаемое значение

Возвращает false при отказе, возвращает true при успешном разрешении на добавление.

Смотрите также

  • CCatalogStore::Add


OnBeforeCatalogStoreDelete

bool
функция-обработчик(
   int id
);

OnBeforeCatalogStoreDelete - событие, вызываемое перед удалением склада в методе CCatalogStore::Delete.

Параметры

Параметр | Описание
id | Идентификатор удаляемого склада.

Возвращаемое значение

  • true - удаление разрешено;
  • false - удаление отменено.

Смотрите также

  • CCatalogStore::Delete


OnBeforeCatalogStoreUpdate

bool
функция-обработчик(
   int id,
   array &arFields
);

OnBeforeCatalogStoreUpdate - событие, вызываемое в методе CCatalogStore::Update перед обновлением параметров склада. Позволяет изменить данные до вызова CCatalogStore::CheckFields или отменить обновление.

Параметры

Параметр | Описание
id | Идентификатор изменяемого склада.
arFields | Ассоциативный массив параметров склада. Перечень допустимых ключей массива смотрите в CCatalogStore::Update.

Возвращаемое значение

Может вернуть false, если нужно воспрепятствовать обновлению. В противном случае нужно вернуть значение true.

Смотрите также

  • CCatalogStore::Update


OnBeforeCouponAdd

bool
функция-обработчик(
   array &arFields,
   bool &bAffectDataFile
);

OnBeforeCouponAdd - событие, вызываемое перед добавлением нового купона в методе CCatalogDiscountCoupon::Add. Позволяет изменить данные до вызова CCatalogDiscountCoupon::CheckFields или отменить запись.

Параметры

Параметр | Описание
arFields | Ассоциативный массив параметров купона. Перечень допустимых ключей массива смотрите в CCatalogDiscountCoupon::Add.
bAffectDataFile | Параметр метода CCatalogDiscountCoupon::Add, указывающий на необходимость перегенерировать файл скидок и купонов (эти действия осуществляет метод CCatalogDiscount::GenerateDataFile). Параметр может принимать значения true/false. Параметр является устаревшим с версии 12.0 и передается только для совместимости.

Возвращаемое значение

Возвращает false при отказе, возвращает true при успешном разрешении на добавление.

Смотрите также

  • CCatalogDiscountCoupon::Add


OnBeforeCouponDelete

bool
функция-обработчик(
   int ID,
   bool &bAffectDataFile
);

OnBeforeCouponDelete - событие, вызываемое перед удалением купона в методе CCatalogDiscountCoupon::Delete.

Параметры

Параметр | Описание
ID | Идентификатор удаляемого купона.
bAffectDataFile | Параметр метода CCatalogDiscountCoupon::Add, указывающий на необходимость перегенерировать файл скидок и купонов (эти действия осуществляет метод CCatalogDiscount::GenerateDataFile). Параметр может принимать значения true/false. Параметр является устаревшим с версии 12.0 и передается только для совместимости.

Возвращаемое значение

  • true - удаление разрешено;
  • false - удаление отменено.

Смотрите также

  • CCatalogDiscountCoupon::Delete


OnBeforeCouponUpdate

bool
функция-обработчик(
   int ID,
   array &arFields
);

OnBeforeCouponUpdate - событие, вызываемое в методе CCatalogStore::Update перед обновлением параметров купона. Позволяет изменить данные до вызова CCatalogDiscountCoupon::CheckFields или отменить обновление.

Параметры

Параметр | Описание
ID | Идентификатор изменяемого купона.
arFields | Ассоциативный массив параметров купона. Перечень допустимых ключей массива смотрите в CCatalogDiscountCoupon::Update.

Возвращаемое значение

Может вернуть false, если нужно воспрепятствовать обновлению. В противном случае нужно вернуть значение true.

Смотрите также

  • CCatalogDiscountCoupon::Update


OnBeforeDiscountAdd

bool функция-обработчик(
    array &arFields
  );

OnBeforeDiscountAdd - событие, вызываемое в методе CCatalogDiscount::Add перед добавлением новой скидки. Позволяет изменить данные до вызова CCatalogDiscount::CheckFields или вообще отменить запись.

Параметры

Параметр | Описание
arFields | Ассоциативный массив параметров. Перечень допустимых ключей массива смотрите в CCatalogDiscount::Add.

Возвращаемое значение

Возвращает false при отказе, возвращает true при успешном разрешении на добавление.

Смотрите также

  • CCatalogDiscount::Add


OnBeforeDiscountDelete

bool
функция-обработчик(
   int ID
);

OnBeforeDiscountDelete - событие, вызываемое перед удалением скидки в методе CCatalogDiscount::Delete.

Параметры

Параметр | Описание
ID | Идентификатор удаляемой скидки.

Возвращаемое значение

  • true - удаление разрешено;
  • false - удаление отменено.

Смотрите также

  • CCatalogDiscount::Delete


OnBeforeDiscountUpdate

bool функция-обработчик(
    int ID,
    array &arFields
  );

OnBeforeDiscountUpdate - событие, вызываемое в методе CCatalogDiscount::Update перед обновлением существующей скидки. Позволяет изменить данные до вызова CCatalogDiscount::CheckFields или отменить обновление.

Параметры

Параметр | Описание
ID | Код скидки.
arFields | Ассоциативный массив параметров. Перечень допустимых ключей массива смотрите в CCatalogDiscount::Update.

Возвращаемое значение

Может вернуть false, если нужно воспрепятствовать обновлению. В противном случае нужно вернуть значение true.

Смотрите также

  • CCatalogDiscount::Update


OnBeforeGroupAdd

bool
функция-обработчик(
   array &arFields
);

OnBeforeGroupAdd - событие, вызываемое перед добавлением нового типа цены в методе CCatalogGroup::Add. Позволяет изменить данные до вызова CCatalogGroup::CheckFields или отменить создание.

Параметры

Параметр | Описание
arFields | Ассоциативный массив параметров типа цены. Перечень допустимых ключей массива смотрите в CCatalogGroup::Add.

Возвращаемое значение

Возвращает false при отказе, возвращает true при успешном разрешении на добавление.

Смотрите также

  • CCatalogGroup::Add


OnBeforeGroupDelete

bool
функция-обработчик(
   int ID
);

OnBeforeGroupDelete - событие, вызываемое перед удалением типа цены в методе CCatalogGroup::Delete. Событие будет вызвано только в том случае, если тип цены реально существует и не является базовым.

Параметры

Параметр | Описание
ID | Код удаляемого типа цены.

Возвращаемое значение

  • true - удаление разрешено;
  • false - удаление отменено.

Смотрите также

  • CCatalogGroup::Delete


OnBeforeGroupUpdate

Описание и параметры

bool
функция-обработчик(
   int ID,
   array &arFields
);

OnBeforeGroupUpdate - событие, вызываемое в методе CCatalogGroup::Update перед обновлением типа цены. Позволяет изменить данные до вызова CCatalogGroup::CheckFields или отменить обновление.

Параметры

Параметр | Описание
ID | Код изменяемого типа цены.
arFields | Ассоциативный массив параметров типа цены. Перечень допустимых ключей массива смотрите в CCatalogGroup::Update.

Возвращаемое значение

Может вернуть false, если нужно воспрепятствовать обновлению. В противном случае нужно вернуть значение true.

Смотрите также

  • CCatalogGroup::Update

Примеры использования

AddEventHandler("catalog", "OnBeforeGroupUpdate", Array("My_Class", "OnBeforeGroupUpdate"));

class My_Class
{
//запрещает редактировать базовый тип цен
    function OnBeforeGroupUpdate($ID, &$arFields)
    {
        $base = (string)(isset($arFields['BASE']) ? $arFields['BASE'] : '');
        if ($base == '')
        {
            $groupIterator = CCatalogGroup::GetListEx(
                array(),
                array('ID' => $ID),
                false,
                false,
                array('ID', 'BASE')
            );
            if ($group = $groupIterator->Fetch())
            {
                $base = $group['BASE'];
                unset($group);
            }
            unset($groupIterator);
        }
        return ($base != 'Y');
    }
}


OnBeforePriceAdd

Описание и параметры

функция-обработчик(
  array &arFields
);
OnBeforePriceAdd - событие, вызываемое перед добавлением новой цены товара. На вход получает ID цены и ссылку на массив полей цены (см. CPrice::Add ).

Событие устарело. Будет работать только если в настройках модуля Каталог включена опция Включить поддержку устаревших событий.

Параметры

Параметр Описание
arFields Ассоциативный массив параметров ценового предложения. Допустимые параметры:
  • PRODUCT_ID - код товара;
  • EXTRA_ID - код наценки;
  • CATALOG_GROUP_ID - код типа цены;
  • PRICE - цена;
  • CURRENCY - валюта цены;
  • QUANTITY_FROM - количество товара, начиная с приобретения которого действует эта цена;
  • QUANTITY_TO - количество товара, при приобретении которого заканчивает действие эта цена.

    Примечание: если необходимо, чтобы значения параметров QUANTITY_FROM и QUANTITY_TO не были заданы, необходимо указать у них в качестве значения false либо не задавать поля QUANTITY_FROM и QUANTITY_TO в измененном массиве.

Если установлен код наценки, то появляется возможность автоматически пересчитывать эту цену при изменении базовой цены или процента наценки.

Возвращаемое значение

Нет.

Смотрите также

  • CPrice::Add


OnBeforePriceDelete

Описание и параметры

OnBeforePriceDelete
(
  int $ID
)

OnBeforePriceDelete - событие, вызываемое перед удалением существующей цены товара в методе CPrice::Delete(). На вход получает ID цены товара (см. CPrice::Delete ). Если обработчик возвращает false, удаление будет отменено.

Событие устарело. Будет работать только если в настройках модуля Каталог включена опция Включить поддержку устаревших событий.

Параметры

Параметр | Описание
ID | код цены товара (ценового предложения)

Возвращаемое значение (обработчиком)

  • true, если удаление разрешено
  • false, если удаление запрещено

Смотрите также

  • CPrice::Delete

Примеры использования

В процессе выгрузки после обновления цены товара все ценовые предложения, которых нет в файле выгрузки, удаляются. Для предотвращения удаления цены можно использовать обработчик (пример рабочий, но замедляющий работу системы):

AddEventHandler("catalog", "OnBeforePriceDelete", "BXOnBeforePriceDelete");

function BXOnBeforePriceDelete($ID) {
    $arPrice = CPrice::GetByID($ID);
    if ($arPrice["CATALOG_GROUP_ID"] == 12){
        return false;
    }
}


OnBeforePriceUpdate

Описание и параметры

bool функция-обработчик(
 int ID,
 array &arFields
)

OnBeforePriceUpdate - событие, вызываемое перед обновлением существующей цены. На входе получает ID цены и ссылку на массив полей.

Событие устарело. Будет работать только если в настройках модуля Каталог включена опция Включить поддержку устаревших событий.

Параметры

Параметр | Описание
ID | Идентификатор цены.
arFields Ассоциативный массив параметров ценового предложения. Допустимые параметры:
  • PRODUCT_ID - код товара;
  • EXTRA_ID - код наценки;
  • CATALOG_GROUP_ID - код типа цены;
  • PRICE - цена;
  • CURRENCY - валюта цены;
  • QUANTITY_FROM - количество товара, начиная с приобретения которого действует эта цена;
  • QUANTITY_TO - количество товара, при приобретении которого заканчивает действие эта цена.

    Примечание: если необходимо, чтобы значения параметров QUANTITY_FROM и QUANTITY_TO не были заданы, необходимо указать у них в качестве значения false либо не задавать поля QUANTITY_FROM и QUANTITY_TO в измененном массиве.

Если установлен код наценки, то появляется возможность автоматически пересчитывать эту цену при изменении базовой цены или процента наценки.

Возвращаемое значение

Может вернуть false, если нужно воспрепятствовать обновлению. В противном случае нужно вернуть значение true.

Смотрите также

  • CPrice::Update

Примеры использования

//Обработчик запрещает менять валюту цен на любую, кроме рублей
function NationalCurrency(ID, &arFields)
{
   if (array_key_exists('CURRENCY', $arFields) && $arFields['CURRENCY'] != 'RUB')
{
      return false;
   }

   else
   {
      return true;
   }
}


OnBeforeProductAdd

Описание и параметры

bool функция-обработчик(
  array &$arFields
)

Событие вызывается в методе CCatalogProduct::Add перед добавлением товара. Позволяет изменить вносимые данные до вызова CCatalogProduct::CheckFields либо вообще отменить запись.

Событие устарело. Будет работать только если в настройках модуля Каталог включена опция Включить поддержку устаревших событий.

Параметры

Параметр Описание
arFields Ассоциативный массив, ключами которого являются названия параметров товара, а значениями - новые значения параметров.
Допустимые ключи:
  • ID - код товара (элемента каталога - обязательный);
  • QUANTITY - количество товара на складе;
  • QUANTITY_TRACE - флаг (Y/N) "уменьшать ли количество при заказе";
  • WEIGHT - вес единицы товара;
  • PRICE_TYPE - тип цены (S - одноразовый платеж, R - регулярные платежи, T - пробная подписка;)
  • RECUR_SCHEME_TYPE - тип периода подписки ("H" - час, "D" - сутки, "W" - неделя, "M" - месяц, "Q" - квартал, "S" - полугодие, "Y" - год);
  • RECUR_SCHEME_LENGTH - длина периода подписки;
  • TRIAL_PRICE_ID - код товара, для которого данный товар является пробным;
  • WITHOUT_ORDER - флаг "Продление подписки без оформления заказа";
  • VAT_ID - код НДС;
  • VAT_INCLUDED - флаг (Y/N) включен ли НДС в цену.

Возвращаемое значение

Возвращает false при отказе, возвращает true при успешном разрешении на добавление.

Примеры использования

AddEventHandler("catalog", "OnBeforeProductAdd", Array("My_Class", "OnBeforeProductAdd"));

class My_Class
{
  function OnBeforeProductAdd(&$arFields)
  {
    $arFields["QUANTITY_TRACE"] = "Y";
    return true;
  }
}


OnBeforeProductPriceDelete

Описание и параметры

функция-обработчик(
   int $ProductID,
   array &$arExceptionIDs
)
OnBeforeProductPriceDelete - событие, вызываемое перед удалением существующих цен товара в методе CPrice::DeleteByProduct(). На вход получает ID товара и массив ID цен, не подлежащих удалению. Если обработчик возвращает false, удаление будет отменено.

Параметры

Параметр | Описание
ProductID | код товара
arExceptionIDs | Массив, содержащий ID цен, которые необходимо оставить (не удалять)

Возвращаемое значение (обработчиком)

  • true, если удаление разрешено
  • false, если удаление запрещено

Смотрите также

Методы

  • CPrice::DeleteByProduct
  • CPrice::Delete

События

  • OnProductPriceDelete

Примеры использования

Запрет на удаление цен для товаров (обработчик в файле /bitrix/php_interface/init.php)

function DeleteProductPriceStop ($intID,&$arExceptionIDs)
{
   return false;
}
AddEventHandler("catalog", "OnBeforeProductPriceDelete", "DeleteProductPriceStop");

Запрет на удаление рублевых цен для товаров

function DeleteProductPriceStopRub ($intID,&$arExceptionIDs)
{
   if (CModule::IncludeModule('catalog'))
   {
      $rsPrices = CPrice::GetList(array(),array('PRODUCT_ID' => $intID,'CURRENCY' => 'RUB'));
      while ($arPrice = $rsPrices->Fetch())
      {
         $arExceptionIDs[] = $arPrice['ID'];
      }
   }
   return true;
}
AddEventHandler("catalog", "OnBeforeProductPriceDelete", "DeleteProductPriceStopRub");


OnBeforeProductUpdate

bool
функция-обработчик(
   int ID,
   array &arFields
);

OnBeforeProductUpdate - событие, вызываемое в методе CCatalogProduct::Update перед обновлением параметров товара. Позволяет изменить данные до вызова CCatalogProduct::CheckFields либо отменить обновление.

Событие устарело. Будет работать только если в настройках модуля Каталог включена опция Включить поддержку устаревших событий.

Параметры

Параметр | Описание
ID | Идентификатор товара.
arFields | Ассоциативный массив параметров товара. Перечень допустимых ключей массива смотрите в CCatalogProduct::Update.

Возвращаемое значение

Может вернуть false, если нужно воспрепятствовать обновлению. В противном случае нужно вернуть значение true.

Смотрите также

  • CCatalogGroup::Update


OnBeforeStoreProductAdd

функция-обработчик(
  array $arFields
);

OnBeforeStoreProductAdd - событие, вызываемое перед созданием новой записи о добавлении товара на склад. Позволяет изменить данные до вызова CCatalogStoreProduct::CheckFields или отменить запись.

Параметры

Параметр Описание
arFields Ассоциативный массив параметров. Допустимые ключи:
  • PRODUCT_ID - ID товара;
  • STORE_ID - ID склада;
  • AMOUNT - количество товара.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogStoreProduct::Add


OnBeforeStoreProductDelete

функция-обработчик(
  int ID
);

OnBeforeStoreProductDelete - событие, вызываемое перед удалением записи из таблицы остатков товара на конкретном складе с кодом ID в методе CCatalogStoreProductAll::Delete. Если обработчик возвращает false, то удаление будет отменено.

Параметры

Параметр | Описание
ID | Код записи для удаления.

Возвращаемое значение

  • true - удаление разрешено;
  • false - удаление отменено.


OnBeforeStoreProductUpdate

функция-обработчик(
    intID,
    array arFields
  );

OnBeforeStoreProductUpdate - событие, вызываемое перед изменением записи в таблице остатков товара на конкретном складе. Позволяет изменить данные до вызова CCatalogStoreProduct::CheckFields или отменить обновление.

Параметры

Параметр Описание
intID
arFields Ассоциативный массив параметров. Допустимые ключи:
  • PRODUCT_ID - ID товара;
  • STORE_ID - ID склада;
  • AMOUNT - количество товара.
Важно! Слово допустимые ключи не означает их обязательного наличия при передаче в обработчик. То, какие будут ключи, зависит исключительно от передаваемых в вызов метода данных.

Возвращаемое значение

Нет.


OnCatalogDelete

функция-обработчик(
   int ID
);

OnCatalogDelete - событие, вызываемое при удалении записи о том, что инфоблок является торговым каталогом. Вызывается в методе CCatalog::Delete и может быть использовано для выполнения каких-либо действий при удалении.

Параметры

Параметр | Описание
ID | Идентификатор информационного блока - каталога.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalog::Delete


OnCatalogStoreAdd

функция-обработчик(
   int lastId,
   array arFields
);

OnCatalogStoreAdd - событие, вызываемое в случае успешного добавления нового склада.

Параметры

Параметр | Описание
lastId | Идентификатор добавленного склада.
arFields | Ассоциативный массив параметров склада. Перечень допустимых ключей массива смотрите в CCatalogStore::Add.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogStore::Add


OnCatalogStoreDelete

функция-обработчик(
   int id
);

OnCatalogStoreDelete - событие, вызываемое при удалении существующего склада в методе CCatalogStore::Delete. Может быть использовано для выполнения каких-либо действий при удалении склада.

Параметры

Параметр | Описание
id | Идентификатор склада.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogStore::Delete


OnCatalogStoreUpdate

функция-обработчик(
   int id,
   array arFields
);

OnCatalogStoreUpdate - событие, вызываемое в случае успешного изменения параметров склада.

Параметры

Параметр | Описание
id | Идентификатор изменяемого склада.
arFields | Ассоциативный массив параметров склада. Перечень допустимых ключей массива смотрите в CCatalogStore::Update.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogStore::Update


OnCountPriceWithDiscount

mixed
функция-обработчик(
   double price,
   string currency,
   array arDiscounts
);

OnCountPriceWithDiscount - событие, вызываемое в методе CCatalogProduct::CountPriceWithDiscount. Позволяет заменить стандартный метод вычисления цены, получающейся после применения цепочки скидок.

Параметры

Параметр | Описание
price | Цена.
currency | Валюта цены.
arDiscounts | Массив ассоциативных массивов скидок. Вид массива смотрите в CCatalogProduct::CountPriceWithDiscount.

Возвращаемое значение

В результате работы обработчика могут быть возвращены следующие значения:

  • true - обработчик ничего не сделал, будет выполнена работа метода CCatalogProduct::CountPriceWithDiscount;
  • false - возникла ошибка, работа метода прерывается;
  • величина цены.

Смотрите также

  • CCatalogProduct::CountPriceWithDiscount


OnCountPriceWithDiscountResult

функция-обработчик(
   double &currentPrice_min
);

OnCountPriceWithDiscountResult - событие, вызываемое перед окончанием работы метода CCatalogProduct::CountPriceWithDiscount. Позволяет выполнить некоторые действия над полученным результатом работы этого метода.

Параметры

Параметр | Описание
currentPrice_min | Цена после применения цепочки скидок.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogProduct::CountPriceWithDiscount


OnCouponAdd

функция-обработчик(
   int ID,
   array arFields
);

OnCouponAdd - событие, вызываемое в случае успешного добавления купона.

Параметры

Параметр | Описание
ID | Идентификатор добавленного купона.
arFields | Ассоциативный массив параметров купона. Перечень допустимых ключей массива смотрите в CCatalogDiscountCoupon::Add.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogDiscountCoupon::Add


OnCouponDelete

функция-обработчик(
   int ID
);

OnCouponDelete - событие, вызываемое при удалении существующего купона в методе CCatalogDiscountCoupon::Delete. Может быть использовано для выполнения каких-либо действий при удалении купона.

Параметры

Параметр | Описание
ID | Идентификатор купона.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogDiscountCoupon::Delete


OnCouponUpdate

функция-обработчик(
   int ID,
   array arFields
);

OnCouponUpdate - событие, вызываемое в случае успешного изменения информации о купоне.

Параметры

Параметр | Описание
ID | Идентификатор изменяемого купона.
arFields | Ассоциативный массив параметров купона. Перечень допустимых ключей массива смотрите в CCatalogDiscountCoupon::Update.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogDiscountCoupon::Update


OnDiscountAdd

функция-обработчик(
   int ID,
   array arFields
);

OnDiscountAdd - событие, вызываемое в случае успешного добавления скидки.

Параметры

Параметр | Описание
ID | Идентификатор добавленной скидки.
arFields | Ассоциативный массив параметров скидки. Перечень допустимых ключей массива смотрите в CCatalogDiscount::Add.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogDiscount::Add


OnDiscountDelete

функция-обработчик(
   int ID
);

OnDiscountDelete - событие, вызываемое при удалении существующей скидки в методе CCatalogDiscount::Delete. Может быть использовано для выполнения каких-либо действий при удалении скидки.

Параметры

Параметр | Описание
ID | Идентификатор скидки.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogDiscount::Delete


OnDiscountUpdate

функция-обработчик(
   int ID,
   array arFields
);

OnDiscountUpdate - событие, вызываемое в случае успешного изменения параметров скидки.

Параметры

Параметр | Описание
ID | Идентификатор изменяемой скидки.
arFields | Ассоциативный массив параметров скидки. Перечень допустимых ключей массива смотрите в CCatalogDiscount::Update.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogDiscount::Update


OnGenerateCoupon

string
функция-обработчик(
);

OnGenerateCoupon - событие, вызываемое в функции CatalogGenerateCoupon(). Позволяет заменить стандартный метод генерации кода купона.

Примечание: длина купона не может быть больше 32 символов.

Параметры

Нет.

Возвращаемое значение

Сгенерированный код купона.

Пример

\Bitrix\Main\EventManager::getInstance()->addEventHandler('sale', 'onGenerateCoupon', 'myFunction');
myFunction(\Bitrix\Main\Event $event)
{
     $check = $event->getParameter('CHECK');

    $myCoupon = ''; // тут генеришь код купона
        if ($check)
       {
        проверяешь. что такого купона не существует в системе
    }

    $result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $myCoupon);

return $result;
}


OnGetDiscount

Описание и параметры

mixed
функция-обработчик(
   int intProductID,
   int intIBlockID,
   array arCatalogGroups,
   array arUserGroups,
   string strRenewal,
   string siteID,
   array arDiscountCoupons,
   bool boolSKU,
   bool boolGetIDS
);

OnGetDiscount - событие, вызываемое в методе CCatalogDiscount::GetDiscount. Позволяет заменить стандартный метод выбора скидок.

Параметры

Параметр | Описание
intProductID | Идентификатор товара.
intIBlockID | Идентификатор инфоблока.
arCatalogGroups Массив идентификаторов типов цен, для которых необходимо вернуть скидки.

Если значение параметра - отрока, то в обработчике события в этом случае необходимо привести строку к массиву:
if (!is_array($arCatalogGroups))
            $arCatalogGroups = array($arCatalogGroups);
arUserGroups Массив групп, к которым принадлежит пользователь.

Если значение параметра - отрока, то в обработчике события в этом случае необходимо привести строку к массиву:
if (!is_array($arCatalogGroups))
            $arUserGroups = array($arCatalogGroups);
strRenewal | Флаг "Продление подписки".
siteID | Идентификатор сайта.
arDiscountCoupons | Массив купонов, которые влияют на выборку скидок. Если задано значение false, то массив купонов будет взят из CCatalogDiscountCoupon::GetCoupons. Если будет передан пустой массив купонов, то купонные скидки учитываться не будут вообще.
boolSKU Определяет нужно ли выполнять проверку (true), что товар является торговым предложением, или проверку не проводить (false).

Если параметр принимает значение true и товар является торговым предложением, то выборка скидок будет сделана и для основного товара.
boolGetIDS | Параметр определяет возвращать только идентификаторы скидок (true) или полную информацию по скидкам (false).

Возвращаемое значение

В результате работы обработчика могут быть возвращены следующие значения:

  • true - обработчик ничего не сделал, будет выполнена работа метода CCatalogDiscount::GetDiscount;
  • false - возникла ошибка, работа метода прерывается;
  • массив, где каждый элемент - это идентификатор скидки (если boolGetIDS равен true) или ассоциативный массив (boolGetIDS принимает значение false) с ключами:
    • ID - код записи;
    • TYPE - тип записи;
    • SITE_ID - сайт;
    • ACTIVE - флаг активности;
    • ACTIVE_FROM - дата начала действия скидки;
    • ACTIVE_TO - дата окончания действия скидки;
    • RENEWAL - флаг "Скидка на продление";
    • NAME - название скидки;
    • SORT - индекс сортировки;
    • MAX_DISCOUNT - максимальная величина скидки;
    • VALUE_TYPE - тип скидки (P - в процентах, F - фиксированая величина);
    • VALUE - величина скидки;
    • CURRENCY - валюта;
    • PRIORITY - приоритет применимости;
    • LAST_DISCOUNT - флаг "Прекратить дальнейшее применение скидок";
    • COUPON - код купона;
    • COUPON_ONE_TIME - тип купона (Y - купон на 1 позицию заказа, O - купон на 1 заказ, N - многоразовый купон);
    • COUPON_ACTIVE - флаг активности купона;
    • UNPACK - строка фильтра, который проверяет попадание товара под скидку.


OnGetDiscountByPrice

Описание и параметры

mixed
функция-обработчик(
   int productPriceID,
   array arUserGroups,
   string renewal,
   string siteID,
   array arDiscountCoupons
);

OnGetDiscountByPrice - событие, вызываемое при вычислении скидки на цену с кодом productPriceID товара для пользователя, принадлежащего к группам пользователей arUserGroups. Позволяет изменить логику работы метода CCatalogDiscount::GetDiscountByPrice.

Параметры

Параметр | Описание
productPriceID | Код цены.
arUserGroups | Массив групп, которым принадлежит пользователь.
renewal | Флаг "Продление подписки".
siteID | Идентификатор сайта.
arDiscountCoupons | Массив купонов, которые влияют на выборку скидок. Если задано значение false, то массив купонов будет взят из CCatalogDiscountCoupon::GetCoupons. Если будет передан пустой массив купонов, то купонные скидки учитываться не будут вообще.

Возвращаемое значение

Если обработчик возвращает значение, отличное от true, то это значение будет возвращено и как результат работы метода CCatalogDiscount::GetDiscountByPrice.

Смотрите также

  • CCatalogDiscount::GetDiscountByPrice


OnGetDiscountByProduct

Описание и параметры

mixed
функция-обработчик(
   int productID,
   array arUserGroups,
   string renewal,
   array arCatalogGroups,
   string siteID,
   array arDiscountCoupons
);

OnGetDiscountByProduct - событие, вызываемое при вычислении скидки на товар с кодом productID для пользователя, принадлежащего к группам пользователей arUserGroups.

Параметры

Параметр | Описание
productID | Код товара.
arUserGroups | Массив групп, которым принадлежит пользователь.
renewal | Флаг "Продление подписки".
arCatalogGroups | Массив типов цен, для которых искать скидку.
siteID | Идентификатор сайта.
arDiscountCoupons | Массив купонов, которые влияют на выборку скидок. Если задано значение false, то массив купонов будет взят из CCatalogDiscountCoupon::GetCoupons. Если будет передан пустой массив купонов, то купонные скидки учитываться не будут вообще.

Возвращаемое значение

Если обработчик возвращает значение, отличное от true, то это значение будет возвращено и как результат работы метода CCatalogDiscount::GetDiscountByProduct.

Смотрите также

  • CCatalogDiscount::GetDiscountByProduct


OnGetDiscountResult

функция-обработчик(
   array &arResult
);

OnGetDiscountResult - событие, вызываемое перед окончанием работы метода CCatalogDiscount::GetDiscount. Позволяет выполнить некоторые действия над полученными результатами работы этого метода.

Параметры

Параметр | Описание
arResult | Массив выбранных скидок.

Возвращаемое значение

Нет.


OnGetNearestQuantityPrice

Описание и параметры

mixed
функция-обработчик(
   int intProductID,
   int quantity,
   array arUserGroups
);

OnGetNearestQuantityPrice - событие, вызываемое в методе CCatalogProduct::GetNearestQuantityPrice. Позволяет заменить стандартный метод поиска количества товара, доступного для покупки.

Параметры

Параметр | Описание
intProductID | Идентификатор товара.
quantity | Количество товара, ближайшее продаваемое количество к которому необходимо найти.
arUserGroups | Массив групп, которым принадлежит пользователь.

Возвращаемое значение

В результате работы обработчика могут быть возвращены следующие значения:

  • true - обработчик ничего не сделал, будет выполнена работа метода CCatalogProduct::GetNearestQuantityPrice;
  • false - доступное для покупки количество найдено не было, работа метода прерывается;
  • ближайшее к заданному количество товара, которое можно положить в корзину.

Смотрите также

  • CCatalogProduct::GetNearestQuantityPrice


OnGetNearestQuantityPriceResult

функция-обработчик(
   int &nearestQuantity
);

OnGetNearestQuantityPriceResult - событие, вызываемое перед окончанием работы метода CCatalogProduct::GetNearestQuantityPrice. Позволяет выполнить некоторые действия над полученным результатом работы этого метода.

Параметры

Параметр | Описание
nearestQuantity | Количество товара (результат работы метода CCatalogProduct::GetNearestQuantityPrice).

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogProduct::GetNearestQuantityPrice


OnGetOptimalPrice

Описание и параметры

mixed
функция-обработчик(
   int intProductID,
   int quantity,
   array arUserGroups,
   string renewal,
   array arPrices,
   string siteID,
   array arDiscountCoupons
);

OnGetOptimalPrice - событие, вызываемое в методе CCatalogProduct::GetOptimalPrice. Позволяет заменить стандартный метод выборки наименьшей цены для товара (использование этого обработчика для реализации алгоритмов, требующих информации о корзине, невозможно).

Параметры

Параметр | Описание
intProductID | Идентификатор товара.
quantity | Количество товара.
arUserGroups | Массив групп, которым принадлежит пользователь.
renewal | (Y|N) Флаг продления подписки.
arPrices | Массив цен.
siteID | Идентификатор сайта, для которого производится вычисление.
arDiscountCoupons | Массив купонов, которые влияют на выборку скидок. Если задано значение false, то массив купонов будет взят из CCatalogDiscountCoupon::GetCoupons. Если будет передан пустой массив купонов, то купонные скидки учитываться не будут вообще.

Возвращаемое значение

В результате работы обработчика могут быть возвращены следующие значения:

  • true - обработчик ничего не сделал, будет выполнена работа метода CCatalogProduct::GetOptimalPrice;
  • false - возникла ошибка, работа метода прерывается;
  • массив, описывающий наименьшую цену для товара.

Смотрите также

  • CCatalogProduct::GetOptimalPrice


OnGetOptimalPriceResult

функция-обработчик(
   array &arResult
);

OnGetOptimalPriceResult - событие, вызываемое перед окончанием работы метода CCatalogProduct::GetOptimalPrice. Позволяет выполнить некоторые действия над полученным результатом работы этого метода.

Параметры

Параметр | Описание
arResult | Массив, описывающий наименьшую цену для товара.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogProduct::GetOptimalPrice


OnGroupAdd

функция-обработчик(
   int groupID,
   array arFields
);

OnGroupAdd - событие, вызываемое в случае успешного создания нового типа цены.

Параметры

Параметр | Описание
groupID | Идентификатор типа цены.
arFields | Ассоциативный массив параметров типа цены. Перечень допустимых ключей массива смотрите в CCatalogGroup::Add.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogGroup::Add


OnGroupDelete

функция-обработчик(
   int ID
);

OnGroupDelete - событие, вызываемое при удалении существующего типа цены в методе CCatalogGroup::Delete. Может быть использовано для выполнения каких-либо действий при удалении типа цены.

Примечание: событие может быть вызвано, если тип цены не является базовым.

Параметры

Параметр | Описание
ID | Идентификатор типа цены.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogGroup::Delete


OnGroupUpdate

функция-обработчик(
   int ID,
   array arFields
);

OnGroupUpdate - событие, вызываемое в случае успешного изменения типа цены.

Параметры

Параметр | Описание
ID | Код изменяемого типа цены.
arFields | Ассоциативный массив параметров типа цены. Перечень допустимых ключей массива смотрите в CCatalogGroup::Update.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogGroup::Update


OnPriceAdd

функция-обработчик(
   int ID,
   array arFields
);

OnPriceAdd - событие, вызываемое в случае успешного создания нового ценового предложения (новой цены) для товара.

Событие устарело. Будет работать только если в настройках модуля Каталог включена опция Включить поддержку устаревших событий.

Параметры

Параметр | Описание
ID | Идентификатор добавленного ценового предложения.
arFields | Ассоциативный массив параметров ценового предложения. Перечень допустимых ключей массива смотрите в CPrice::Add.

Возвращаемое значение

Нет.

Смотрите также

  • CPrice::Add


OnPriceDelete

функция-обработчик(
   int $ID
)

OnPriceDelete - событие, вызываемое при удалении существующей цены товара в методе CPrice::Delete(). На вход получает ID цены товара (см. CPrice::Delete ). Может быть использовано для выполнения каких-либо действий при удалении цены. Возвращаемое значение обработчика игнорируется.

Событие устарело. Будет работать только если в настройках модуля Каталог включена опция Включить поддержку устаревших событий.

Параметры

Параметр | Описание
ID | код цены товара (ценового предложения)

Возвращаемое значение

нет.

Смотрите также

  • CPrice::Delete


OnPriceUpdate

функция-обработчик(
   int ID,
   array arFields
);

OnPriceUpdate - событие, вызываемое в случае успешного изменения ценового предложения (цены) товара.

Событие устарело. Будет работать только если в настройках модуля Каталог включена опция Включить поддержку устаревших событий.

Параметры

Параметр | Описание
ID | Код изменяемого ценового предложения.
arFields | Ассоциативный массив параметров ценового предложения. Перечень допустимых ключей массива смотрите в CPrice::Update.

Возвращаемое значение

Нет.

Смотрите также

  • CPrice::Update


OnProductAdd

функция-обработчик(
   int ID,
   array arFields
);

OnProductAdd - событие, вызываемое в случае успешного добавления параметров товара к элементу каталога.

Событие устарело. Будет работать только если в настройках модуля Каталог включена опция Включить поддержку устаревших событий.

Параметры

Параметр | Описание
ID | Идентификатор товара.
arFields | Ассоциативный массив параметров товара. Перечень допустимых ключей массива смотрите в CCatalogProduct::Add.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogProduct::Add


OnProductPriceDelete

функция-обработчик(
   int $ProductID,
   array $arExceptionIDs
)
OnProductPriceDelete - событие, вызываемое в процессе удаления существующих цен товара в методе CPrice::DeleteByProduct(). На вход получает ID товара и массив ID цен, не подлежащих удалению.

Параметры

Параметр | Описание
ProductID | Код товара.
arExceptionIDs | Массив, содержащий ID цен, которые необходимо оставить (не удалять)

Возвращаемое значение (обработчиком)

нет

Смотрите также

Методы

  • CPrice::DeleteByProduct
  • CPrice::Delete

События

  • OnBeforeProductPriceDelete


OnProductUpdate

функция-обработчик(
   int ID,
   array arFields
);

OnProductUpdate - событие, вызываемое в случае успешного изменения параметров товара.

Событие устарело. Будет работать только если в настройках модуля Каталог включена опция Включить поддержку устаревших событий.

Параметры

Параметр | Описание
ID | Идентификатор товара.
arFields | Ассоциативный массив параметров товара. Перечень допустимых ключей массива смотрите в CCatalogProduct::Update.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogProduct::Update


OnStoreProductAdd

функция-обработчик(
    int ID,
    array arFields
  );

OnStoreProductAdd - событие, вызываемое в случае успешного создания новой записи о добавлении товара на склад.

Параметры

Параметр | Описание
ID | Код записи.
arFields Ассоциативный массив параметров. Допустимые ключи:
  • PRODUCT_ID - ID товара;
  • STORE_ID - ID склада;
  • AMOUNT - количество товара.

Возвращаемое значение

Нет.

Смотрите также

  • CCatalogStoreProduct::Add


OnStoreProductDelete

функция-обработчик();

OnStoreProductDelete - событие, вызываемое в случае успешного удаления записи из таблицы остатков товара на складе (метод CCatalogStoreProductAll::Delete).

Параметры

Нет.

Возвращаемое значение

Нет.


OnStoreProductUpdate

функция-обработчик(
    int ID,
    array arFields
  );

OnStoreProductUpdate - событие, вызываемое в случае успешного изменения записи в таблице остатков товара с кодом ID в методе CCatalogStoreProductAll::Update.

Параметры

Параметр | Описание
ID | Код записи для изменения.
arFields Ассоциативный массив параметров. Допустимые ключи:
  • PRODUCT_ID - ID товара;
  • STORE_ID - ID склада;
  • AMOUNT - количество товара.
Важно! Слово допустимые ключи не означает их обязательного наличия при передаче в обработчик. То, какие будут ключи, зависит исключительно от передаваемых в вызов метода данных.

Возвращаемое значение

Нет.


OnSuccessCatalogImport1C

void функция-обработчик(
   array arParams,
   string ABS_FILE_NAME
);

OnSuccessCatalogImport1C - событие, вызываемое после окончания обмена одним XML-файлом.

Параметры

Параметр | Описание
arParams | Параметры подключения компонента обмена.
arFields | Полный путь к XML-файлу обмена.

Возвращаемое значение

Нет.


Функции

  • CatalogGetPriceTableEx


CatalogGetPriceTableEx

CatalogGetPriceTableEx(
$ID,
$filterQauntity = 0,
$arFilterType = array(),
$VAT_INCLUDE = 'Y',
$arCurrencyParams = array()
)

Параметры функции

Параметр | Описание | С версии
id | Код товара. (ID элемента инфоблока, для которого запрашиваются цены.) |
filterQuantity | Если значение больше 0, то выводится диапазон цен, соответствующий этому количеству. Имеет смысл только при расширенном режиме управления ценами. |
arFilterType | Массив ID типов цен. Если не задан, то выбираются все типы цен, которые может просматривать пользователь. |
VAT_INCLUDE | (Y/N) НДС включён. | 7.0.0
arCurrencyParams | Массив параметров для показа цен в одной валюте. Если в переданном массиве заполнено поле CURRENCY_ID, то произойдет конвертация цен в валюту CURRENCY_ID по текущему курсу. Необязательный параметр. | 11.5.4


Управление структурой

  • Визуальный редактор
  • События
  • Управление структурой в ядре D7


Управление структурой в ядре D7

Список классов модуля Управление структурой в ядре D7

Класс | Описание | С версии
Block | Набор классов блочного визуального редактора. |


Визуальный редактор

Визуальный редактор, входящий в состав модуля "Управление структурой" предоставляет API, использование которого позволяет добавлять в редактор функциональные элементы, определённые пользователем, а также настраивать и изменять функционал редактора. Рассматриваемые методы могут использоваться на страницах, где подключается визуальный редактор, после его непосредственного подключения.

Предоставляемое API функционирует на уровне JavaScript, поэтому вызовы функций должны осуществляться внутри тегов <script></script>.
Ошибки, допущенные при использовании API, могут привести к нарушению нормальной работы визуального редактора.

  • Добавление панелей задач
  • Добавление парсеров
  • Глобальный объект oBXEditorUtils


Добавление панелей задач

API визуального редактора предусматривает возможность добавления пользовательских панелей задач в визуальный редактор. Данная возможность позволяет подключить к редактору практически произвольный функционал. Подключение панели задач происходит в два этапа:

Объявление класса панели задач

Для объявления класса панели задач необходимо придерживаться стандартных правил описания классов в JavaScript. Учитывая тот факт, что в синтаксисе языка JavaScript не предусмотренно специального синтаксиса для описания классов, для этих целей используются функции.
В теле описываемой функции, используя синтаксис объявления функциональных литералов, определяются методы класса, как свойства объекта prototype.

Для обеспечения взаимодействия с API визуального редактора, при обявлении класса можно использовать:

  • обработчики стандартных событий
  • свойства класса-родителя
  • методы класса-родителя

Объявление обработчики стандартных событий, возникающих при взаимодействии пользователя с визуальным редактором и определяемой панелью задач, позволяет соответствующим образом реагировать на действия пользователя и системные события.

Обработчики стандартных событий

Обработчик | Описание
OnTaskbarCreate() | Выполняется при создании панели задач. Позволяет сформировать визуальное представление панели а также выполнить все подготовительные действия
OnTaskbarRemove() | Выполняется при удалении панели задач. Может применяться для очистки памяти от созданных объектов, обявленных событий, для предотвращения утечек памяти
OnElementDragEnd(object oElement) | Выполняется при перетаскивании элемента из списка, сформированного методами формирования стандартных панелей задач (ряд методов класса родителя). Параметр oElement является экземпляром объекта BXNodeElement, наследующим свойства объекта node DOM, кроме того обладающим рядом специальных свойств, позволяющих его однозначно идентифицировать.
UnParseElement(object oElement) Выполняется при переключении визуального редактора из визуального режима в режим редактирования кода или смешанный режим. Параметр oElement является объектом BXNodeElement, наследующим ряд свойств объекта node DOM, кроме того обладающим рядом специальных свойств, позволяющих его однозначно идентифицировать.
Возвращает код, на который следует заменить искомый элемент, или false, если замена не требуется.
ВАЖНО! Данный обработчик вызывается для каждого нестандартного визуального элемента, поэтому для нахождения нужного элемента необходимо реализовывать проверку атрибута __bxtagname элемента. Например:
CustomTaskbar.prototype.UnParseElement = function(node)
{
    if (node.arAttributes["__bxtagname"] == '__customtag1')
        return '<?MyPHPFunction(0)?>'
    if (node.arAttributes["__bxtagname"] == '__customtag1')
        return '<?MyPHPFunction(1)?>'
    if (node.arAttributes["__bxtagname"] == '__customtag2')
        return '<?MyPHPFunction(2)?>'

    return false;
}

Свойства и методы класса-родителя

Для использования свойств и методов класса-родителя в теле функции, описывающей класс панели задач, необходимо объявить переменную уровня функции и присвоить ей значение this. В дальнейшем, для обращения к предопределённым методам и свойствам нужно использовать эту переменную.

Например:
function CustomTaskbar()
{
    var oTaskbar = this;
    CustomTaskbar.prototype.OnTaskbarCreate = function ()
    {
        var pDataCell = oTaskbar.CreateScrollableArea(oTaskbar.pDataCell);
        //......
    }
    //....
}

Свойства класса-родителя

Свойство | Описание
pDataCell | Область панели задач, доступная для формирования интерфейса.

Методы класса-родителя

Метод Описание
object
CreateScrollableArea(
object nodeElement
); 		Метод, создающий прокручиваемую область внутри элемента nodeElement, являющегося объектом node DOM и возвращает ее в виде ссылки на объект node DOM.
bool
DisplayElementList(
array arElements,
object oCont
); 		Метод создает стандартный список элементов на основе передаваемого ему массива, и прикрепляет его к контейнеру oCont, который является объектом node DOM. Возвращает true в случае успешного завершения операции, false - в противном случае. oCont не должен содержать других элементов кроме списка.
Передаваемый в качестве параметра массив arElements является индексным, каждый его элемент является ассоциативным массивом и имеет следующую структуру:
Индекс | Описание
string name | Имя элемента
string title | Название элемента, отображается в списке
string tagname | Имя тега. Используется для отображения данных в панели свойств а также для обработки элемента при переключении в режим просмотра кода
string icon | Путь к файлу иконке, которая будет отображаться в списке
bool isGroup true - если элемент является группой;
false - если элемент не является группой;
array params | Массив параметров. Поддерживаются также ассоциативные и вложенные массивы.
array childElements | Массив, указывается для элементов, являющихся группами. Каждый элемент этого массива также является массивом со структурой, идентичной структуре элемента, описанной в этой таблице.
Пример создания списка элементов приведен ниже.
*На текущем этапе поддерживаются структуры описания элементов с двухуровневой вложенностью.
bool
RemoveElementList(
object oCont
); 		Метод, удаляет список элементов из контейнера oCont. Возвращает true в случае успешного завершения операции, false - в противном случае.
bool
AddElement(
array oElement,
object oCont,
[string sPath],
[int orderInd]
); 		Добавляет элемент в список элементов. Используется для добавления элементов в список. oElement - массив имеющий структуру элемента списка(см. метод DisplayElementList()).
oCont - контейнер, в котором находится список элементов.
sPath - необязательный параметр,определяет глубину вложенности добавляемого элемента путём указания пути, состоящего из перечисленных через запятую имен элементов-групп.Если он не указан или в качестве параметра передана пустая строка, используется самый верхний уровень вложенности.
orderInd определяет, каким по порядку будет добавлен элемент на заданый уровень вложенности. Если orderInd равен -1 или не задан, элемент вставляется в конец списка.
Возвращает true в случае успешного завершения операции, false - в противном случае.
bool
RemoveElement(
string elName,
object oCont,
[string sPath]
); 		Удаляет элемент c именем elName из списка элементов, находящегося в контейнере oCont.
sPath - необязательный параметр,определяет глубину вложенности удаляемого элемента путём указания пути, состоящего из перечисленных через запятую имен элементов-групп.Если он не указан или в качестве параметра передана пустая строка, используется самый верхний уровень вложенности.
Возвращает true в случае успешного завершения операции, false - в противном случае.

Использование других методов и средств API

Кроме описанных выше методов класса-родителя, при описании класса панели задач можно использовать определённые методы API визуального редактора, для упрощения решения стандартных задач.

Добавление обработчика элементов для панели свойств

Средствами API можно добавить обработчик для панели свойств визуального редактора, реализуя, таким образом, возможность отображения и редактирование свойств произвольных элементов.
Для добавления обработчика для панели свойств необходимо воспользоваться методом addPropertyBarHandler() глобального объекта oBXEditorUtils:

Добавление панели задач

Для добавления обявленной панели задач в визуальный редактор необходимо вызвать метод addTaskBar глобального объекта oBXEditorUtils:

Описание:

void
oBXEditorUtils.addTaskBar(
 string className,
 int taskbarSetPos,
 string taskbarTitle,
 array params
);

Более подробное описание метода приведено в его описании. Параметры:
Параметр | Описание
className | Имя класса панели задач.
taskbarSetPos Параметр, определяющий положение панели задач, относительно области редактирования:
0 | Вверху, над областью редактирования
1 | Слева от области редактирования
2 | Справа от области редактирования
3 | Внизу, под областью редактирования
taskbarTitle | Название панели задач, отображается в заголовке.
params | Дополнительные параметры

Пример добавления панели задач в редактор

<script>

function CustomTaskbar()
{
    var pDataCell;
    var oTaskbar = this;

    CustomTaskbar.prototype.OnTaskbarCreate = function ()
    {
        //Создание прокручиваемой области
        pDataCell = oTaskbar.CreateScrollableArea(oTaskbar.pDataCell);
        //Добавление обработчика панели свойств для элемента "_customtag2"
        oBXEditorUtils.addPropertyBarHandler('_customtag2',this.ShowProperties);
        //Отображение списка элементов
        this.DisplayTree();
    }

    CustomTaskbar.prototype.DisplayTree = function()
    {
        //Создание массива элементов
        var arElements = [];
        var _arElement = [];
        _arElement['name'] = 'group1';
        _arElement['title'] = 'Group 1';
        _arElement['tagname'] = '';
        _arElement['icon'] = '';
        _arElement['isGroup'] = true;
        _arElement['params'] = [];
        _arElement['childElements'] = [];
            var __arElement = [];
            __arElement['name'] = 'el_1_1';
            __arElement['title'] = 'Element 1.1';
            __arElement['tagname'] = '_customtag';
            __arElement['icon'] = '/images/icon1.gif';
            __arElement['isGroup'] = false;
            __arElement['params'] = [];
            __arElement['childElements'] = [];
            _arElement['childElements'].push(__arElement);

            __arElement = [];
            __arElement['name'] = 'el_1_2';
            __arElement['title'] = 'Element 1.2';
            __arElement['tagname'] = '_customtag2';
            __arElement['icon'] = '/images/icon2.gif';
            __arElement['isGroup'] = false;

                ___arPar = [];
                ___arPar[0] = {name:'param0',title:'Параметр0',value:'value0'};
                ___arPar[1] = {name:'param1',title:'Параметр1',value:'value1'};
                ___arPar[2] = {name:'param2',title:'Параметр2',value:'value2'};
            __arElement['params'] = ___arPar;
            __arElement['childElements'] = [];

            _arElement['childElements'].push(__arElement);

        arElements.push(_arElement);

        _arElement = [];
        _arElement['name'] = 'el_2';
        _arElement['title'] = 'Element 2';
        _arElement['tagname'] = '_customtag';
        _arElement['icon'] = '/images/icon3.gif';
        _arElement['params'] = [];
        _arElement['isGroup'] = false;
        _arElement['childElements'] = [];
        arElements.push(_arElement);

        //Добавление списка элементов к прокручиваемой области
        oTaskbar.DisplayElementList(arElements,pDataCell);
    }

    //Обработчик панели свойств для элемента _customtag2
    CustomTaskbar.prototype.ShowProperties = function(_bNew, _pTaskbar, _pElement)
    {
        // _pTaskbar.pCellProps - прокручиваемая область панели свойств
        var arParams = oBXEditorUtils.getCustomNodeParams(_pElement);
        var _input,_div;
        var __saveParams = function(e)
        {
            for (var _i=0; _i<arParams.length;_i++)
            {
                _input = document.getElementById('__param_'+arParams[_i].name);
                arParams[_i].value = _input.value;
            }

            //oBXEditorUtils.setCustomNodeParams(_pElement,arParams);
        }

        if (_bNew)
        {
            oBXEditorUtils.BXRemoveAllChild(_pTaskbar.pCellProps);
            for (var _i=0;_i<arParams.length;_i++)
            {
                _input = document.createElement('INPUT');
                _input.type = 'text';
                _input.id = '__param_'+arParams[_i].name;
                _input.value = arParams[_i].value;
                _input.onblur = __saveParams;

                _div = document.createElement('DIV');
                _div.id = '__vd_'+arParams[_i].name;
                _div.innerHTML = arParams[_i].title;
                _div.appendChild(_input);
                _pTaskbar.pCellProps.appendChild(_div);
            }
        }
        else
        {
            for (var _i=0;_i<arParams.length;_i++)
            {
                _input = document.createElement('INPUT');
                _input.type = 'text';
                _input.id = '__param_'+arParams[_i].name;
                _input.value = arParams[_i].value;
                _input.onblur = __saveParams;

                _div = document.getElementById('__vd_'+arParams[_i].name);
                _div.innerHTML = arParams[_i].title;
                _div.appendChild(_input);
            }
        }
    }

    CustomTaskbar.prototype.UnParseElement = function(node)
    {
        if (node.arAttributes["__bxtagname"] == '_customtag')
            return '<?SomeSuperFunction(3)?>'
        if (node.arAttributes["__bxtagname"] == '_customtag2')
            return '<?SomeSuperFunction(1)?>'

        return false;
    }

    CustomTaskbar.prototype.OnElementDragEnd = function(oEl)
    {
        if (oEl.getAttribute('__bxtagname') == '_customtag')
        {
            oEl.parentNode.removeChild(oEl);
            oTaskbar.insertHTML('snippet');
            alert('Был вставлен произвольный элемент');
        }
        else if(oEl.getAttribute('__bxtagname') == '_customtag2')
            alert('Был вставлен другой произвольный элемент');

    }
}

//Добавление панели задач
oBXEditorUtils.addTaskBar('CustomTaskbar',2,"Help",[]);

</script>


Добавление парсеров

Описание

API визуального редактора предусматривает возможность добавления парсеров в визуальный редактор. Данная возможность позволяет включить свои обработчики в процесс разбора кода редактируемого документа на этапе формирования его визуального представления (в момент загрузки документа и при переключении из режима редактирования кода в визуальный режим).

Средствами API визуального редактора можно подключить парсеры(обработчики) трех видов.
В совокупности они позволяют наиболее эффективно реализовывать пользовательскую обработку документа на этапе формирования визуального отображения документа. Виды:
  • Парсер исходного кода документа (Content Parser)
  • Парсер фрагментов PHP-кода (PHP Parser)
  • Обработчик визуального отображения средствами DOM (DOM Handler)

Content Parser

Позволяет обработать документ на уровне его исходного кода.

Подключения парсера проходит в два этапа:
  1. Объявление функции-обработчика
  2. Добавление парсера, путём вызова метода addContentParser() глобального объекта oBXEditorUtils

Объявление функции-обработчика

Функция-обработчик (собственно сам парсер) должна быть объявлена в области видимости вызова метода addContentParser(). Объявленной функции передается единственный строковый аргумент - код документа. В теле функции происходит обработка кода и возврат измененного значения. Если возвращаемое значение равно false, изменения не вносятся.

Добавление парсера

Осуществляется путём вызова метода addContentParser() глобального объекта oBXEditorUtils

Пример

<script>

function CustomContentParser(str)
{
    //... манипуляции с кодом
    return str;
}

//Добавление парсера
oBXEditorUtils.addContentParser(CustomContentParser);

</script>

PHP Parser

Добавление парсера этого вида позволяет обрабатывать все PHP-фрагменты в коде.
При обработке кода документа все распознанные фрагменты кода последовательно передаются на обработку всем подключенным парсерам. Если парсер возвращает неизмененный фрагмент или false (для проверки используется условие строгого соответствия), то фрагмент передается на обработку следующему парсеру. В качестве второго, необязательного параметра при подключении парсера можно указать его порядок в "очереди" на получение фрагмента кода. Однако встроенные парсеры визуального редактора обрабатывают php в первую очередь.
Подключения парсера проходит в два этапа:
  1. Объявление функции-обработчика
  2. Добавление парсера путём вызова метода addPHPParser() глобального объекта oBXEditorUtils

Объявление функции-обработчика

Функция-обработчик (собственно сам парсер) должна быть объявлена в области видимости вызова метода oBXEditorUtils.addPHPParser(). Объявленной функции передается единственный строковый аргумент - код документа. В теле функции происходит обработка кода и возврат измененного значения. Если возвращаемое значение равно false, изменения не вносятся.
При обработке фрагмента, для упрощения решения стандартных процедур можно использовать методы объекта oBXEditorUtils.PHPParser.

Добавление парсера

Осуществляется путём вызова метода addPHPParser() глобального объекта oBXEditorUtils

Пример

<script>

function CustomPHPParser(str)
{
    //... манипуляции с кодом
    return str;
}

//Добавление парсера
oBXEditorUtils.addPHPParser(CustomPHPParser);

</script>

Примечание: при добавлении парсеров исходного кода документа (Content Parser) и фрагментов PHP-кода (PHP Parser) следует обратить внимание, что вносимые изменения должны быть корректным HTML-кодом, т.к. в случае ошибки визуальный редактор может работать некорректно.

DOM Handler

Добавление обработчика документа на уровне DOM позволяет упростить редактирование свойств элементов, уже после их представления в визуальном режиме.
При объявлении функции-обработчика допускается использование всех стандартных средств работы с DOM.
Подключения обработчика проходит в два этапа:
  1. Объявление функции-обработчика
  2. Добавление парсера путём вызова метода addDOMHandler() глобального объекта oBXEditorUtils

Объявление функции-обработчика

Функция-обработчик должна быть объявлена в области видимости вызова метода oBXEditorUtils.DOMHandler(). Объявленной функции передается единственный аргумент - объект document, соответствующий узлу document согласно структуре DOM. В теле функции происходит обработка документа. Возвращаемые значения не учитываются.

Добавление обработчика

Осуществляется путём вызова метода addDOMHandler() глобального объекта oBXEditorUtils

Пример

<script>

function CustomDOMHandler(oDocument)
{
    //... манипуляции с документом
}

//Добавление парсера
oBXEditorUtils.addDOMHandler(CustomDOMHandler);

</script>


Объект BXNodeElement

Экземпляры объекта BXNodeElement передаются в качестве параметра обработчикам событий при описании пользовательских панелей задач. Класс этого объекта используется для внутреннего представления "искуственных" элементов, используемых для замены некоторых фрагментов кода на иконки в визуальном режиме.

Свойства

Метод Описание
arAttributes Массив, содержит два важных элемента
Индекс | Описание
__bxtagname | Содержит искуственное имя тега, которое задается при создании искуственного элемента
__bxcontainer | Содержит сериализованное представление параметров элемента.

Пример

//....

//pNode - экземпляр объекта BXNodeElement
alert(pNode.arAttributes["__bxtagname"]);

//....
Сведения об остальных свойствах объекта будут предоставлены позднее.


Глобальный объект oBXEditorUtils

Для эффективного решения задач взаимодействия с API визуального редактора предусмотрен глобальный объект oBXEditorUtils. Этот объект и его подобъекты обладают рядом свойств и методов, позволяющих использовать существующий предоставляемый функционал API редактора. Задачи и параметры, привязанные к определённым структурным единицам редактора, могут быть реализованны в виде методов и свойств класса-родителя или методов других глобальных объектов API визуального редактора.

Методы

Метод | Описание
addContentParser | Добавляет функцию-обработчик для обработки содержимого документа в виде исходного кода.
addPHPParser | Добавляет функцию-обработчик для обработки всех фрагментов PHP из исходного кода документа.
addDOMHandler | Добавляет функцию-обработчик для обработки содержимого документа как DOM-структуры.
addPropertyBarHandler | Добавляет обработчик, который вызывается при формировании панели свойств для элемента с определённым именем тега.
addTaskBar | Добавляет панель управления.
BXRemoveAllChild | Удаляет дочерние узлы элемента.
getCustomNodeParams | Возвращает массив параметров "искуственных" элементов, заменяющих определённые фрагменты кода в визуальном режиме.
setCustomNodeParams | Записывает массив параметров "искуственных" элементов, заменяющих определённые фрагменты кода в визуальном режиме.

Подобъекты

Подобъект | Описание
PHPParser | Добавляет функцию-обработчик для обработки содержимого документа в виде исходного кода.


addContentParser

Добавляет функцию-обработчик для обработки содержимого документа в виде исходного кода.
Функция, добавленная таким образом, будет обрабатывать содержимое редактируемого документа при его загрузке, а также при переключении из режима кода, в WYSIWYG.

void
oBXEditorUtils.addContentParser(
   function handler
);

Параметры метода

Параметр | Описание
handler | Функция, объявленная в глобальной области видимости. В качестве единственного параметра принимает строку, содержащую содержимое контента. Должна вернуть строку (контент с внесёнными в него изменениями) или false. В случае если возвращается false, изменения в код не вносятся.


addDOMHandler

Добавляет функцию-обработчик для обработки содержимого документа как DOM-структуры. Функции, добавленные таким образом, могут обращаться к узлам редактируемого документа(в визуальном режиме), при загрузке редактируемого документа, а также при переключении из режима кода, в WYSIWYG.
Обрабатывают документ после его обработки функциями, добавленными при помощи методов addContentParser и addPHPParser.

void
oBXEditorUtils.addDOMHandler(
   function handler[,
   int orderInd]
);

Параметры метода

Параметр | Описание
handler | Функция, объявленная в глобальной области видимости. В качестве единственного параметра принимает ссылку на объект document редактируемого документа. Ничего не возвращает.

Пример

function myDOMHandler(oDocument)
{
    //манипуляции с документом
    var arIMG = oDocument.getElementsByTagName('IMG');
    var iLen = arIMG.length;
    for (var i=0;i>iLen;i++)
        arIMG[i].src = 'my_new_image.jpg';
}
//Добавление обработчика
oBXEditorUtils.addDOMHandler(myDOMHandler);
Данный обработчик позволяет заменить аттрибут src всех рисунков в документе на my_new_image.jpg (оставляя при этом остальные аттрибуты нетронутыми)


addPHPParser

Описание и параметры

Добавляет функцию-обработчик всех фрагментов PHP в исходном коде редактируемого документа. Функции, добавленные таким образом, будут обрабатывать фрагменты PHP кода до замены его на стандартную иконку PHP кода, при загрузке редактируемого документа, а также при переключении из режима кода, в WYSIWYG.

void
oBXEditorUtils.addPHPParser(
   function handler[,
   int orderInd]
);

Параметры метода

Параметр | Описание
handler | Функция, объявленная в глобальной области видимости. В качестве единственного параметра принимает строку (содержимое php-кода). Должна вернуть строку (контент с внесёнными в него изменениями) или false. В случае если возвращается false, изменения в код не вносятся. Кроме того, следует обратить внимание на то, что на обработку функции передается весь код php-фрагмента, включая открывающие и закрывающие теги.
orderInd | Позиция парсера при обработке. Необязательный параметр. По умолчанию, парсеры обрабатывают код в порядке, соответствующему очередности их подключения. Передав в orderInd, например, 0, можно добиться того, что этот обработчик будет обрабатывать код в 1-ю очередь. Но, если в последствии будет зарегестрирован ещё обработчик с orderInd=0, то он будет выполняться раньше.

Пример добавления PHP-парсера

function myPHPParser(str)
{
    //Если фрагмент PHP равен <?MyPHPFunction();?>, он заменяется на иконку
    if (str=='<?MyPHPFunction();?>')
        return '<img src="icon.gif" title="Image Title" __bxtagname="customtag">';
    return false;
}
//Добавление парсера
oBXEditorUtils.addPHPParser(myPHPParser);


addPropertyBarHandler

Описание и параметры

Добавляет обработчик handler, который будет вызываться при формировании панели свойств для элемента с именем тега tagname.
Вызов ("подсветка") панели свойств для элемента происходит автоматически при клике по нему или сразу после вставки элемента, если он вставляется из пользовательской панели задач. В качестве второго параметра методу передается функция или метод, формирующая, при необходимости, информационные параметры элемента, а также реализует возможность их редактирования. Использование в качестве параметра handler анонимных функций нежелательно.

void
oBXEditorUtils.addPropertyBarHandler(
 string tagname,
 function handler
);

Параметры метода

Параметр | Описание
tagname | Имя тега, элемента
handler Функция или метод обработки события инициализации панели свойств.
Данной функции при инициализации передается три параметра:
Параметр | Описание
bool bNew | Равен true, если до этого в панели свойств отображались свойства элемента с таким же именем тега, false, если отображались свойства элемента с другим именем тега. Может использоваться для ускорения процедуры показа свойств: если подряд вызывается процедура показа свойств однотипного элемента, то при повторном показе, элементы управления можно не создавать заново, а только заполнять новыми данными.
object pTaskbar | Ссылка на объект панели свойств. Используется для формирования в ней визуального отображения свойств элемента. Важное свойство, которое может использоваться непосредственно для присоединения элементов управления и отображения: pCellProps - объект node DOM, является контейнером прокручиваемой области панели свойств.
object pElement | Ссылка на выделенный элемент. Для считывания/изменения свойств элемента можно использовать методы getCustomNodeParams() и setCustomNodeParams() глобального объекта oBXEditorUtils.

Пример

Пример добавления обработчика для панели свойств

<script>
function CustomTaskbar()
{
    var oTaskbar = this;

    CustomTaskbar.prototype.OnTaskbarCreate = function ()
    {
        //...
        //Добавление обработчика панели свойств для элемента "_customtag"
        oBXEditorUtils.addPropertyBarHandler('_customtag',this.ShowProperties);
        //...
    }

    //...

    CustomTaskbar.prototype.ShowProperties = function(_bNew, _pTaskbar, _pElement)
    {
        // _pTaskbar.pCellProps - прокручиваемая область панели свойств
        //Считывание свойств элемента
        var arParams = oBXEditorUtils.getCustomNodeParams(_pElement);
        //...
        // операции над свойствами, отображение, изменение
        //...
        //Сохранение свойств элемента
        oBXEditorUtils.setCustomNodeParams(_pElement,arParams);
    }
}
</script>


addTaskBar

Описание и параметры

Используется для добавления пользовательской панели задач в визуальный редактор.
Требует предварительного объявления класса пользовательской панели задач.(см. Добавление панелей задач)

void
oBXEditorUtils.addTaskBar(
 string className,
 int taskbarSetPos,
 string taskbarTitle,
 array params
);

Параметры метода

Параметр | Описание
className | Имя класса панели задач.
taskbarSetPos Параметр, определяющий положение панели задач, относительно области редактирования:
0 | Вверху, над областью редактирования
1 | Слева от области редактирования
2 | Справа от области редактирования
3 | Внизу, под областью редактирования
taskbarTitle | Название панели задач, отображается в заголовке.
params | Дополнительные параметры

Пример добавления панели задач в редактор

<script>

function CustomTaskbar()
{
    var oTaskbar = this;

    CustomTaskbar.prototype.OnTaskbarCreate = function ()
    {
        //...
    }

    CustomTaskbar.prototype.UnParseElement = function(node)
    {
        //...
    }

    CustomTaskbar.prototype.OnElementDragEnd = function(oEl)
    {
        //...
    }
}

//Добавление панели задач
oBXEditorUtils.addTaskBar('CustomTaskbar',2,"Help",[]);

</script>


BXRemoveAllChild

Удаляет все дочерние узлы элемента, передаваемого в качестве единственного параметра pNode.

void
oBXEditorUtils.BXRemoveAllChild(
 object pNode
);

Параметры метода

Параметр | Описание
pNode | Узел DOM структуры документа.

Пример использования

<script>

var oTable = document.getElementById('tableId');
oBXEditorUtils.BXRemoveAllChild(oTable); //Удаляет дочерние узлы таблицы с id='tableId'

</script>


getCustomNodeParams

Описание и параметры

Возвращает параметры "искусственного" элемента* в виде массива, заменяющего некоторый фрагмент кода в документе. Используется при обработке свойств элементов при объявлении класса пользовательской панели задач.(см. Добавление панелей задач).

*В визуальном режиме некоторые фрагменты кода или другие элементы заменяются на их визуальное представление - иконки (пиктограммы). Свойства таких элементов хранятся в сериализованном виде в качестве атрибута этого элемента. Данный метод десериализует свойства и возвращает их в виде массива.
array
oBXEditorUtils.getCustomNodeParams(
 object pNode
);

Параметры метода

Параметр | Описание
pNode | Узел DOM структуры документа или объект BXNodeElement, передаваемый методу UnParseElement() при описании класса пользовательской панели задач (см. Добавление панелей задач).

Возвращаемое значение

Возвращает массив. Структура массива, а также его тип (ассоциативный/неассоциативный) зависит от свойств, заданных элементу при создании или в ходе работы с ним.

Смотрите также

  • oBXEditorUtils.setCustomNodeParams()

Примеры использования

<script>

function CustomTaskbar()
{
    var oTaskbar = this;

    CustomTaskbar.prototype.OnTaskbarCreate = function ()
    {
        //...
    }

    CustomTaskbar.prototype.ShowProperties = function(_bNew, _pTaskbar, _pElement)
    {
        //...
        var arParams = oBXEditorUtils.getCustomNodeParams(_pElement);//Возвращает массив свойств
        //...
    }

    CustomTaskbar.prototype.UnParseElement = function(node)
    {
        //...
        var arParams = oBXEditorUtils.getCustomNodeParams(node);//Возвращает массив свойств
        //...
        return false;
    }
}

</script>


setCustomNodeParams

Описание и параметры

Устанавливает свойства "искуственного" элемента*, переданные в виде массива параметров. Используется при обработке свойств элементов при объявлении класса пользовательской панели задач. (см. Добавление панелей задач).

*В визуальном режиме некоторые фрагменты кода или другие элементы заменяются на их визуальное представление - иконки (пиктограммы). Свойства таких элементов хранятся в сериализованном виде в качестве атрибута этого элемента. Данный метод сериализует массив свойств и сохраняет их.
void
oBXEditorUtils.setCustomNodeParams(
  object pNode
  array arParams
);

Параметры метода

Параметр | Описание
pNode | Узел DOM структуры документа или объект BXNodeElement, передаваемый методу UnParseElement() при описании класса пользовательской панели задач (см. Добавление панелей задач).
arParams | Массив свойств. Допускаются ассоциативные и вложенные массивы.

Возвращаемое значение

Ничего не возвращает.

Смотрите также

  • oBXEditorUtils.getCustomNodeParams()

Примеры использования

<script>

function CustomTaskbar()
{
    var oTaskbar = this;

    CustomTaskbar.prototype.OnTaskbarCreate = function ()
    {
        //...
    }

    CustomTaskbar.prototype.ShowProperties = function(_bNew, _pTaskbar, _pElement)
    {
        //...
        var _arParams = oBXEditorUtils.getCustomNodeParams(_pElement);//Возвращает массив свойств
        _arParams['value'] = 'new value';
        //...
        oBXEditorUtils.setCustomNodeParams(_pElement,_arParams);//Устанавливает массив свойств
        //...
    }

    CustomTaskbar.prototype.UnParseElement = function(node)
    {
        //...
        var arParams = oBXEditorUtils.getCustomNodeParams(node);//Возвращает массив свойств
        //...
        arParams['property'] = 'new property';
        //...
        oBXEditorUtils.setCustomNodeParams(node,arParams);//Устанавливает массив свойств
        //...
        return false;
    }
}

</script>


Вложенный объект oBXEditorUtils.PHPParser

Вложенный объект PHPParser глобального объекта oBXEditorUtils объединяет методы, используемые для облегчения создания PHP-парсера (см. oBXEditorUtils.addPHPParser())

Методы

Метод | Описание
cleanCode | Удаляет из PHP-кода комментарии, переводы новой строки, незначащие пробелы.
getArray | Принимает в качестве аргумента строку, в формате Array([параметры]) Возвращает массив этих параметров или пустой массив при их отсутствии. Обрабатывает также ассоциативные и вложенные массивы.
getParams | Обрабатывает строку с перечисленными через запятую параметрами, и возвращает их в виде массива. НЕ ОБРАБАТЫВАЕТ массивы в качестве параметров.
parseFunction | Обрабатывает строку, содержащую вызов php-функции, и возвращает имя функции и строку с передаваемыми ей параметрами.
parseParameters | Обрабатывает строку с перечисленными через запятую параметрами, и возвращает их в виде массива. Обрабатывает массивы в качестве параметров.
trimPHPTags | Возвращает переданный в качестве параметра фрагмент кода (без php-тегов <?php ... ?> или <? ... ?>).
trimQuotes | Возвращает переданный в качестве параметра фрагмент кода без двойные или одинарных кавычек(или другого символа) с начала и конца.


cleanCode

Удаляет из PHP-кода комментарии, переводы новой строки, незначащие пробелы. Может использоваться для упрощения анализа фрагмента PHP-кода при создании PHP-парсера.

string
oBXEditorUtils.PHPParser.cleanCode(
 string sCode
);

Параметры метода

Параметр | Описание
sCode | Строка, содержащая фрагмент php-кода.

Возвращаемое значение

Возвращает строку.

Пример использования

<script>

var sCode = '$arFields   =   array('+
       '"LID" => "en", //язык'+
       '"TEXT" => "text text text", //текст'+
       '"PAYED" => "N",'+
       '"CANCELED" => "N"'+
       ');'

sCode = oBXEditorUtils.PHPParser.cleanCode(sCode);
//sCode = '$arFields=array("LID"=>"en","TEXT"=>"text text text","PAYED"=>"N","CANCELED"=>"N")';

</script>


getArray

Принимает в качестве аргумента строку, в формате Array([параметры]). Возвращает массив параметров, переданных в строке, или пустой массив, при отсутствии параметров. Корректно обрабатывает вложенные и ассоциативные массивы, возвращая соответсвующую структуру. Может использоваться для упрощения анализа фрагмента PHP-кода при создании PHP-парсера.

array
oBXEditorUtils.PHPParser.getArray(
 string sCode
);

Параметры метода

Параметр | Описание
sCode | Строка, в формате Array([параметры])

Возвращаемое значение

Возвращает массив. Структура массива зависит от входного параметра.

Пример использования

<script>

var sCode = 'array("LID"=>"en","TEXT"=>"text text text","PAYED"=>"N","CANCELED"=>"N")';

arParams = oBXEditorUtils.PHPParser.getArray(sCode);
//arParams["LID"] = "en";
//arParams["TEXT"] = "text text text";
//arParams["PAYED"] = "N";
//arParams["CANCELED"] ="N";

</script>


getParams

Описание и параметры

Принимает в качестве аргумента строку, содержащую параметры (функции, или любые другие данные), перечисленные через запятую, и возвращает массив строковых значений.
НЕ ОБРАБАТЫВАЕТ массивы, т.е. все данные воспринимаются как строки.
Может использоваться для упрощения анализа фрагментов PHP-кода при создании PHP-парсера.

array
oBXEditorUtils.PHPParser.getParams(
 string sCode
);

Параметры метода

Параметр | Описание
sCode | Строка, в формате param1[,param2[,...,paramN]]

Возвращаемое значение

Возвращает массив строковых значений.

Смотрите также

  • parseParameters

Примеры использования

<script>

var sCode1 = '2,"text text text",5,"N"';
var sCode2 = 'array("LID"=>"en","TEXT"=>"text text text","PAYED"=>"N","CANCELED"=>"N")';

arParams1 = oBXEditorUtils.PHPParser.getArray(sCode1);
//arParams[0] = '2';
//arParams[1] = '"text text text"';
//arParams[2] = '5';
//arParams[3] = '"N"';

arParams2 = oBXEditorUtils.PHPParser.getArray(sCode2);
//arParams[0] = 'array("LID"=>"en"';
//arParams[1] = '"TEXT"=>"text text text"';
//arParams[2] = '"PAYED"=>"N"';
//arParams[3] = '"CANCELED"=>"N")';

</script>


parseFunction

Описание и параметры

Принимает в качестве аргумента строку, содержащую вызов php-функции в формате MyFunction([params]), и возвращает имя функции и строку с передаваемыми ей параметрами.
Может использоваться для упрощения анализа фрагментов PHP-кода при создании PHP-парсера.

object
oBXEditorUtils.PHPParser.parseFunction(
 string sCode
);

Параметры метода

Параметр | Описание
sCode | Строка, в формате MyFunction([params])

Возвращаемое значение

Возвращает объект
Свойства:
Свойство | Описание
string name | Имя функции
string params | Строка, содержащая параметры передаваемые функции при вызове
Если строка не соответствует указанному формату, возвращается значение false.

Смотрите также

  • parseParameters

Примеры использования

<script>

var sCode = 'MyPHPFunction("param",$var)';

var oFunc = oBXEditorUtils.PHPParser.parseFunction(sCode);
//oFunc.name = 'MyPHPFunction';
//oFunc.params = '"param",$var';

</script>


parseParameters

Описание и параметры

Принимает в качестве аргумента строку, содержащую параметры (функции), перечисленные через запятую; и возвращает массив, соответствующий по структуре массиву, переданному в качестве параметра.
Корректно обрабатывает массивы, в том числе ассоциативные и вложенные.
Может использоваться для обработки параметров средствами JavaScript при упрощении анализа фрагментов PHP-кода при создании PHP-парсера.

array
oBXEditorUtils.PHPParser.parseParameters(
 string sCode
);

Параметры метода

Параметр | Описание
sCode | Строка, в формате param1[,param2[,...,paramN]]

Возвращаемое значение

Возвращает массив.

Смотрите также

  • getParams
  • parseParameters
  • parseFunction

Примеры использования

<script>

var sCode = '2,"Y",Array(1,2,"string1"),Array("name"=>"SomeName","id"=>$phpVar)';

arParams = oBXEditorUtils.PHPParser.parseParameters(sCode);
//arParams[0] = 2;
//arParams[1] = "Y";
//arParams[2][0] = 1;
//arParams[2][1] = 2;
//arParams[2][2] = "string";
//arParams[3]["name"] = "SomeName";
//arParams[3]["id"] = "$phpVar";

</script>


trimPHPTags

Описание и параметры

Возвращает переданный в качестве параметра фрагмент кода без php-тегов <?php ?> или <? ?> Если фрагмент не содержит PHP-тегов, строка возвращается без изменений.
Может использоваться для упрощения анализа фрагментов PHP-кода при создании PHP-парсера.

string
oBXEditorUtils.PHPParser.trimPHPTags(
 string sCode
);

Параметры метода

Параметр | Описание
sCode | Строка, фрагмент PHP-кода

Возвращаемое значение

Возвращает строку.

Смотрите также

  • trimQuotes

Примеры использования

<script>

var sCode = '<?php MyPHPFunction(); ?>';

sCode = oBXEditorUtils.PHPParser.trimPHPTags(sCode);//sCode = ' MyPHPFunction(); ';

</script>


trimQuotes

Описание и параметры

Возвращает переданный в качестве параметра фрагмент кода без двойных или одинарных кавычек(или другого символа) с начала и конца. Если фрагмент не содержит кавычек, он возвращается без изменений.

Может использоваться для упрощения анализа фрагментов PHP-кода при создании PHP-парсера.

string
oBXEditorUtils.PHPParser.trimQuotes(
 string sCode[,
 string cSym]
);

Параметры метода

Параметр | Описание
sCode | Строка, фрагмент PHP-кода
cSym | Необязательный параметр. Символ, который необходимо удалить. По умолчанию удаляются одинарные или двойные кавычки.

Возвращаемое значение

Возвращает строку.

Смотрите также

  • trimPHPTags

Примеры использования

<script>

var sCode1 = '"My String"';
sCode1 = oBXEditorUtils.PHPParser.trimQuotes(sCode1);//sCode1 = 'My String';

var sCode2 = "'My String'";
sCode2 = oBXEditorUtils.PHPParser.trimQuotes(sCode2);//sCode2 = "My String";

var sCode3 = '-My String-';
sCode3 = oBXEditorUtils.PHPParser.trimQuotes(sCode3,'-');//sCode3 = 'My String';

</script>


Список событий

Описание и события

Ниже представлен список событий модуля "Управления структурой". Для регистрации обработчика укажите в качестве идентификатора модуля - "fileman".

События, связанные с визуальным HTML-редактором

Событие | Вызывается | Метод | С версии
OnBeforeHTMLEditorScriptsGet | непосредственно перед подключением JavaScript-файлов редактора. Позволяет добавить в список подключаемых файлов дополнительный JavaScript файл или файл стилей. | CFileMan::ShowHTMLEditControl | 6.5.6
OnBeforeLightEditorScriptsGet | перед подключением JavaScript-файлов упрощенного редактора. | CLightHTMLEditor::Init | 8.5.3
OnIncludeHTMLEditorScript | непосредственно после подключения редактора, на странице вызова, но до его инициализации. | CFileMan::ShowHTMLEditControl | 5.0.2
OnIncludeLightEditorScript | непосредственно после подключения упрощенного редактора, на странице вызова, но до его инициализации. | CLightHTMLEditor::InitScripts | 9.5.3
OnIframeBeforeGetValue | Событие позволяет модифицировать содержимое получаемое из визредактора. |  | 17.5.1

Прочие события

Событие | Вызывается | Метод | С версии
OnMedialibItemView | происходит перед созданием и выдачей элемента медиабиблиотеки в виде HTML для показа пользователю. | CMedialib::GetItemViewHTML | 9.0.0

Смотрите также

  • События
  • Взаимодействие модулей


OnBeforeHTMLEditorScriptsGet

Описание и параметры

array функция-обработчик(
 string editorName
 array arEditorParams
);

Событие "OnBeforeHTMLEditorScriptsGet" вызывается перед загрузкой JavaScript и CSS файлов редактора и позволяет добавить пользовательские файлы, которые будут подгружаться после файлов визуального редактора. Создание обработчика данного представляет собой простейший способ модифицировать встроенный визуальный редактор путём расширения или переопределения текущего функционала.

Внимание. Событие работает только в рамках старого визуального редактора.

Параметры

Параметр | Описание
editorName | Имя подключаемого редактора.
arEditorParams | Массив параметров подключаемого редактора.

Структура результата

Результатом выполнения функции-обработчика должен быть ассоциативный массив, который может содержать поля "JS" и "CSS" каждое из которых должно являться линейным массивом имен подключаемых файлов c соответствующим расширением.

Файлы, имена которых возвращаются в качестве элементов массивов в полях "JS" и "CSS" должны находиться в папке /bitrix/admin/htmleditor2

Смотрите также

  • Событие "OnIncludeHTMLEditorScript"

Пример функции-обработчика

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("fileman", "OnBeforeHTMLEditorScriptsGet", "addEditorScriptsHandler");
function addEditorScriptsHandler($editorName,$arEditorParams)
{
    // Проверяем, если подключается редактор для редактирования статических страниц
    if ($editor_name == 'filesrc')
        return array(
            "JS" => array('my_scripts.js'),
            "CSS" => array('my_styles.css')
        );

    return array();
}
?>

<?
// файл /bitrix/admin/htmleditor2/my_scripts.js
// Переопределяем стандартную панель инструментов, удаляя из нее кнопки "Настройки", "Выделить все" и "Проверка орфографии"
arToolbars['standart'] = [
    BX_MESS.TBSStandart,
        [
        arButtons['Fullscreen'], 'separator',
        arButtons['Cut'], arButtons['Copy'], arButtons['Paste'], arButtons['pasteword'], arButtons['pastetext'], arButtons['separator'],
        arButtons['Undo'], arButtons['Redo'], arButtons['separator'],
        arButtons['borders'], 'separator',
        arButtons['table'], arButtons['anchor'], arButtons['CreateLink'], arButtons['deletelink'], arButtons['image'], 'separator',
        arButtons['SpecialChar'], arButtons['spellcheck']
        ]
    ];
?>

/* файл /bitrix/admin/htmleditor2/my_styles.css
переопределяем цвет фона редактора (только для Mozilla Firefox) */
.bxedmainframe IFRAME{
    background-color: #CCCCCC;
}


OnIncludeHTMLEditorScript

функция-обработчик();
Событие "OnIncludeHTMLEditorScript" вызывается после подключения файлов визуального редактора. Может использоваться в тех случаях, когда для модификации редактора недостаточно стандартного подключения внешних JavaScript файлов (Событие "OnBeforeHTMLEditorScriptsGet").

Внимание. Событие работает только в рамках старого визуального редактора.

Смотрите также

  • Событие "OnBeforeHTMLEditorScriptsGet"

Пример функции-обработчика:

<?
// файл /bitrix/php_interface/init.php
// регистрируем обработчик
AddEventHandler("fileman", "OnIncludeHTMLEditorScript", "OnIncludeHTMLEditorHandler");
function OnIncludeHTMLEditorHandler()
{
    ?>
    <script>
    //Переопределение функции установки полноэкранного режима редактора
    BXHTMLEditor.prototype.SetFullscreen_ = BXHTMLEditor.prototype.SetFullscreen;
    BXHTMLEditor.prototype.SetFullscreen = function (bFull)
    {
        alert('My alert!');
        this.SetFullscreen_(bFull);
    }
    </script>
    <?
}
?>


Для разработчиков

Перед использованием модуля Форум необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?
   if(CModule::IncludeModule("forum"))
   {
      //здесь можно использовать функции модуля
   }
   ?>

Публичная часть форума строится на высокоуровневых функциях и классах ядра форума.

Модуль включает в себя следующие Компоненты 2.0:
Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Форум (комплексный компонент) | forum | Создает полноценный публичный интерфейс форума.
Помощь | forum.help | Выводит помощь по форуму.
Форумы (список) | forum.index | Выводит список всех форумов.
Шаблоны | forum.interface | Сборник js-библиотек служебных шаблонов.
Меню | forum.menu | Выводит меню форума.
Сообщения (проверка) | forum.message.approve | Выводит неодобренные сообщения форума.
Сообщения (перемещение) | forum.message.move | Служит для перемещения сообщений форума.
Письмо | forum.message.send | Выводит форму отправки письма (сообщения) пользователю.
PM (изменение) | forum.pm.edit | Служит для создания нового или редактирования существующего персонального сообщения.
PM (папки) | forum.pm.folder | Выводит список личных папок пользователя.
PM (список) | forum.pm.list | Выводит список личных сообщений пользователя из указанной папки.
PM (чтение) | forum.pm.read | Создает страницу детального просмотра персонального сообщения.
PM (поиск) | forum.pm.search | Выводит форму поиска пользователя.
Форма создания сообщения | forum.post_form | Выводит форму создания сообщения (или темы) форума.
RSS форума | forum.rss | Служит для экспорта RSS форума в указанном формате.
Правила | forum.rules | Служит для создания страницы с правилами форума.
Поиск | forum.search | Выводит форму поиска по форумам.
Статистика | forum.statistic | Выводит статистику по форуму.
Подписка | forum.subscribe.list | Выводит список подписок пользователя на сообщения и темы форумов.
Темы (новые) | forum.topic.active | Выводит список новых тем форума.
Темы (список внешний) | forum.topic.last | Выводит список тем (для использования вне форума).
Темы (список) | forum.topic.list | Выводит список всех тем форума.
Темы (перемещение) | forum.topic.move | Создает страницу перемещения тем форума.
Темы (создание) | forum.topic.new | Создание новой темы форума.
Темы (чтение) | forum.topic.read | Выводит список сообщений темы форума.
Темы (отзывы) | forum.topic.reviews | Выводит форму для создания отзыва к элементу инфоблока (например, новости, фотографии), а также весь список отзывов.
Темы (поиск) | forum.topic.search | Выводит форму поиска тем форума.
Пользователь (список пользователей) | forum.user.list | Выводит список пользователей форума.
Пользователь (сообщения) | forum.user.post | Выводит список сообщений, тем пользователя форума.
Пользователь (изменение профиля) | forum.user.profile.edit | Выводит форму редактирования профиля пользователя.
Пользователь (профиль) | forum.user.profile.view | Служит для просмотра профиля пользователя форума.


Структура таблиц модуля форумов

Группы форумов

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID группы форумов. Уникален. | Int | Да |
SORT | Индекс сортировки. | Int | Да | 150

Сайтозависимые параметры групп форумов

Поле | Описание | Тип | Обяз. | Умолч.
FORUM_GROUP_ID | ID группы форумов | Int | Да |
LID | Код сайта | Char(2) | Да |
NAME | Название группы форумов | String(255) | Да |
DESCRIPTION | Описание группы форумов | String(255) | Нет |

Форумы

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID форума. Уникален. | Int | Да |
NAME | Название форума | String(128) | Да |
DESCRIPTION | Описание форума | String(255) | Нет |
SORT | Индекс сортировки | Int | Да | 150
ACTIVE | Активность форума (Y|N) | Char(1) | Да | Y
ALLOW_HTML | Разрешить вводить в качестве сообщения произвольный HTML (Y|N) | Char(1) | Да | N
ALLOW_NL2BR | Преобразовывать переводы каретки в тег <br> в режиме HTML (Y|N) | Char(1) | Да | N
ALLOW_ANCHOR | Разрешить использовать в сообщениях тег <a> / [a] (Y|N) | Char(1) | Да | Y
ALLOW_BIU | Разрешить использовать в сообщениях теги <b> / [b], <i> / [i], <u> / [u] (Y|N) | Char(1) | Да | Y
ALLOW_IMG | Разрешить использовать в сообщениях тег <img> / [img] (Y|N) | Char(1) | Да | Y
ALLOW_LIST | Разрешить использовать в сообщениях тег списка <ul> / [list] (Y|N) | Char(1) | Да | Y
ALLOW_QUOTE | Разрешить использовать в сообщениях тег цитирования <quote> / [quote] (Y|N) | Char(1) | Да | Y
ALLOW_CODE | Разрешить использовать в сообщениях тег кода <code> / [code] (Y|N) | Char(1) | Да | Y
ALLOW_FONT | Разрешить использовать в сообщениях тег <font> / [color], [font] (Y|N) | Char(1) | Да | Y
ALLOW_SMILES | Разрешить использовать в сообщениях смайлики в виде изображений (Y|N) | Char(1) | Да | Y
ALLOW_UPLOAD | Разрешить загрузку файлов, привязанных с сообщениям форума. Возможные значения: N - загрузка запрещена, Y - только файлы изображений, F - файлы с заданными в поле ALLOW_UPLOAD_EXT расширениями, A - любые файлы. | Char(1) | Да | N
MODERATION | Премодерируемость форума (Y|N) | Char(1) | Да | N
ORDER_BY | Сортировка "по умолчанию" тем форума в списке тем. Возможные значения: T - заголовок темы, N - количество сообщений в теме, A - автор темы, V - количество просмотров темы, D - дата создания темы, P - дата последнего сообщения в теме. | Char(1) | Да | P
ORDER_DIRECTION | Направление сортировки "по умолчанию" тем форума в списке тем. Возможные значения: ASC - прямой порядок, DESC - обратный порядок. | Char(4) | Да | DESC
TOPICS | Количество опубликованых тем в форуме. | Int | Да | 0
POSTS | Количество опубликованых сообщений в форуме. | Int | Да | 0
LAST_POSTER_ID | Код автора (код пользователя) последнего сообщения на форуме. | Int | Нет |
LAST_POSTER_NAME | Имя автора последнего сообщения на форуме. | varchar(255) | Нет |
LAST_POST_DATE | Дата последнего сообщения на форуме. | DateTime | Нет |
LAST_MESSAGE_ID | ID последнего сообщения на форуме. | Int | Нет |
ALLOW_UPLOAD_EXT | Список разделенных запятой расширений файлов, которые разрешены к загрузке. Применяется, если в поле ALLOW_UPLOAD стоит значение F. | String(255) | Нет |
FORUM_GROUP_ID | Код группы, к которой принадлежит форум. | Int | Нет |
ASK_GUEST_EMAIL | Спрашивать Email у незарегистрированого пользователя при написании сообщения (Y/N) | Char(1) | Нет | N

Связь форума с сайтами

Поле | Описание | Тип | Обяз. | Умолч.
FORUM_ID | ID форума. | Int | Да |
SITE_ID | Код сайта. | Char(2) | Да |
PATH2FORUM_MESSAGE | Шаблон пути к сообщению на форуме. Может содержать подстроки #FORUM_ID#, #TOPIC_ID# и #MESSAGE_ID#, которые должны быть заменены на реальные код форума, код темы и код сообщения. | varchar(250) | Нет |

Темы форума

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID темы форума. Уникален. | Int | Да |
TOPIC_ID | Указатель на тему-ссылку. Используется, если STATE=L. | bigint(20) | Нет |
TITLE | Заголовок темы | String(70) | Да |
TITLE_SEO | Информация для навигации | varchar(255) null | Нет |
DESCRIPTION | Описание темы. | String(70) | Нет |
TAGS | Теги темы. | varchar(255) | Нет |
STATE | Состояние темы: открыта или закрыта (Y|N). | Char(1) | Да | Y
USER_START_ID | Код автора темы. | Int | Нет |
USER_START_NAME | Имя автора темы. | String(64) | Да |
START_DATE | Дата создание темы. | DateTime | Да |
ICON_ID | Код иконки темы. | Int | Нет |
POSTS | Количество ответов на тему. | Int | Да | 0
POSTS_UNAPPROVED | Количество неодобренных сообщений в теме. | int(11) | Нет | 0
VIEWS | Количество просмотров темы. | Int | Да | 0
FORUM_ID | ID форума, которому принадлежит тема. | Int | Да |
APPROVED | Опубликована ли тема (Y|N). Тема опубликована, если опубликовано хотя бы одно сообщение в ней. | Char(1) | Да | Y
SORT | Индекс сортировки темы | Int | Да | 150
LAST_POSTER_ID | Код автора последнего сообщения в теме. | Int | Нет |
LAST_POSTER_NAME | Имя автора последнего сообщения в теме. | varchar(255) | Да |
LAST_POST_DATE | Дата последнего сообщения в теме. | DateTime | Да |
LAST_MESSAGE_ID | ID последнего сообщения в теме | Int | Да |
ABS_* | Четыре последних поля могут иметь указанную приставку. В этом случае их значения видны только модераторам.

Сообщения

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID сообщения. Уникальное. | Int | Да |
AUTHOR_ID | Код автора сообщения. | Int | Нет |
AUTHOR_NAME | Имя автора сообщения. | String(128) | Да |
AUTHOR_IP | IP автора сообщения | String(128) | Нет |
USE_SMILES | Пользователь хочет, чтобы смайлики заменялись графическими изображениями (Y|N). | Char(1) | Да | Y
POST_DATE | Дата создания сообщения. | Datetime | Да |
POST_MESSAGE | Текст сообщения. | Text | Да |
FORUM_ID | ID форума, которому принадлежит сообщение. | Int | Да |
TOPIC_ID | ID темы, которой принадлежит сообщение. | Int | Да |
APPROVED | Сообщение опубликовано (Y|N) | Char(1) | Да | Y
GUEST_ID | Код посетителя | Int | Нет |
AUTHOR_REAL_IP | Реальный IP автора сообщения. | Int | Нет |
ATTACH_IMG | Присоедененный файл. | Int | Нет |

Профайл посетителя форума

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID профайла. Уникален. | Int | Да |
USER_ID | ID пользователя. Уникален. | Int | Да |
DESCRIPTION | Описание посетителя. | String(64) | Нет |
IP_ADDRESS | IP адрес, с которого было отправлено последнее сообщение. | String(128) | Да |
AVATAR | Аватар посетителя. Массив, описывающий файл, полученный, например, через CFile::MakeFileArray | Array | Нет |
NUM_POSTS | Количество сообщений посетителя на форуме. | Int | Да | 0
INTERESTS | Интересы посетителя (произвольная текстовая информация). | Text | Нет |
LAST_POST | Код последнего сообщения постетителя. | Int | Нет |
ALLOW_POST | Посетитель может писать сообщения (т.е. не забанен). | Char(1) | Да | Y
LAST_VISIT | Дата последнего посещения форума | DateTime | Да |
DATE_REG | Дата регистрации на форуме | DateTime | Да |
REAL_IP_ADDRESS | Настоящий IP адрес, с которого было написано последнее сообщение. | String(128) | Нет |
SIGNATURE | Подпись посетителя. | String(255) | Нет |
SHOW_NAME | Показывать имя и фамилию вместо логина (Y|N) | Char(1) | Да | Y
HIDE_FROM_ONLINE | Не показывать пользователя в списке "Кто сейчас на сайте" (Y/N) | Char(1) | Нет | N
POINTS | Текущее количество баллов пользователя | Int | Нет | 0

Звания (статусы) посетителей

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID звания. Уникален. |  | Да |
MIN_POINTS | Количество баллов, которое необходимо иметь для получения этого звания. | Int | Да | 0
CODE | Символьный код звания. | varchar(100) | Нет |
VOTES | Количество голосов, которое пользователь в этом звании может отдать за другого пользователя | Int | Да | 0

Языковые параметры званий

Поле | Описание | Тип | Обяз. | Умолч.
POINTS_ID | ID звания | Int | Да |
LID | Код языка параметров | Char(2) | Да |
NAME | Название звания | String(250) | Да |

Карта соответствий сообщений/баллов

Карта соответствий между количеством сообщений пользователя на форуме и количеством баллов за сообщение.

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID записи. Первичный ключ. | Int | Да |
MIN_NUM_POSTS | Количество сообщений, которое нужно написать для получения этого количества баллов за сообщение. | Int | Да | 0
POINTS_PER_POST | Количество баллов за сообщение. Может быть дробным числом (0.1 - балл дается за 10 сообщений) | decimal(18, 4) | Да | 0

Смайлы и иконки

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID смайла. Уникален. |  | Да |
TYPE | Тип: S - смайл, I - иконка. | Char(2) | Да | S
TYPING | Варианты написания смайлов, перечисленные через пробел. | String(100) | Да |
IMAGE | Название файла изображения. | String(128) | Да |
SORT | Индекс сортировки. | Int | Да | 150
IMAGE_WIDTH | Ширина изображения. | Int | Да | 0
IMAGE_HEIGHT | Высота изображения. | Int | Да | 0

Языковые параметры смайлов

Поле | Описание | Тип | Обяз. | Умолч.
SMILE_ID | ID смайла | Int | Да |
LID | Код языка параметров | Char(2) | Да |
NAME | Название смайла | String(255) | Да |

Подписка

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID подписки | Int | Да |
USER_ID | ID подписанного пользователя | Int | Да |
FORUM_ID | Форум, на сообщения которого подписан | Int | Да |
TOPIC_ID | Тема, на сообщения которой подписан | Int | Нет |
START_DATE | Дата подписки | DateTime | Да |
LAST_SEND | ID последнего отправленного сообщения | Int | Нет |
NEW_TOPIC_ONLY | Подписка только на новые темы (Y/N) | Char(1) | Да | N
SITE_ID | ID сайта, на котором произведена подписка | Char(2) | Да | ru

Приватные сообщения

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID сообщения. Уникален. | Int | Да |
AUTHOR_ID | ID автора сообщения. | Int | Да |
USER_ID | ID получателя сообщения. | Int | Да |
FOLDER_ID | ID папки пользователя. | Int | Да |
IS_READ | Метка о прочтении. | Int | Да |
USE_SMILES | Заменять смайлики графическими изображениями (Y|N). | Int | Да |
POST_DATE | Дата создания сообщения. | DateTime | Да |
POST_SUBJ | Тема сообщения. | String(255) | Нет |
POST_MESSAGE | Текст сообщения. | Text | Нет |

Папки пользователя

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID папки. Уникален. | Int | Да |
TITLE | ID автора сообщения. | String(50) | Да |
USER_ID | ID владельца папки. | Int | Да |

Словари

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID записи. Уникален. | Int | Да |
TITLE | Имя словаря. | String(50) | Да |
TYPE | Тип словаря. | Char | Да |

Словарь букв

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID записи. Уникален. | Int | Да |
DICTIONARY_ID | ID словаря. | Int | Да |
LETTER | Буква. | String(50) | Да |
REPLACEMENT | Замена. | String(50) | Да |

Словарь слов

Поле | Описание | Тип | Обяз. | Умолч.
ID | ID записи. Уникален. | Int | Да |
DICTIONARY_ID | ID словаря. | Int | Да |
WORDS | Слово. | String(255) | Нет |
PATTERN | Шаблон. | String(255) | Нет |
REPLACEMENT | Замена. | String(255) | Нет |
DESCRIPTION | Описание. | Text | Нет |
REPLACEMENT | Замена. | String(50) | Да |
USE_IT | Задействован (Y|N). | Char | Да |


Форум в ядре D7

Список классов модуля Форум в ядре D7.

Класс, пространство имён | Описание
UserTable | Классы для работы с таблицей пользователей форума. Связь с таблицей пользователей - один к одному.
MessageTable | Классы для работы с таблицей сообщений. Связь с таблицей тем форумов - один к одному.
Comments | Классы для работы с форумными данными, как с комментариями.
ForumTable | Классы для работы с таблицей форумов. Связь с таблицей групп форумов - много к одному.
GroupTable | Классы для работы с таблицей групп форумов.
ForumSiteTable | Классы для работы с таблицей, связывающей форум с конкретным сайтом. Привязка форума к сайту по типу многие ко многим.
Replica | Пространство имён для классов репликации модуля Форум.


Классы модуля Форум

Следующие PHP классы используются в модуле форума.

Классы

Класс | Описание | С версии | До версии
CFilterDictionary | Класс для работы cо словарями нецензурных слов. | 5.1.0 |
CFilterLetter | Класс для работы cо словарями букв. | 5.1.0 |
CFilterUnquotableWords | Класс для работы cо словарями cлов. | 5.1.0 |
CForumGroup | Класс для работы с группами форумов. | 3.3.3 |
CForumMessage | Класс для работы с сообщениями форумов. | 3.3.3 |
CForumNew | Класс для работы с форумами. | 3.3.3 |
CForumPMFolder | Класс для работы папками пользователя. | 4.0.3 |
CForumPoints | Класс для работы со званиями (статусами) форума. | 3.3.7 |
CForumPoints2Post | Класс для работы с картой соответствий между количеством сообщений пользователя на форуме и количеством баллов, которое пользователь получает за одно сообщение. | 3.3.7 |
CForumPrivateMessage | Класс для работы с приватными сообщениями. | 4.0.3 |
CForumSubscribe | Класс для работы с подпиской на новые сообщения форума и темы. | 3.3.3 |
CForumTopic | Класс для работы с темами форумов. | 3.3.3 |
CForumUser | Класс для работы с профайлами посетителей форума. | 3.3.3 |
CForumUserPoints | Класс для работы с голосованиями пользователей. | 3.3.7 |
textParser | Класс, предназначенный для форматирования сообщений форума. Осуществляет замену спецсимволов и заказных тегов на реальные HTML-теги, обработку ссылок, отображение смайлов. | 3.0.20 |


Класс CFilterDictionary

CFilterDictionary - класс для работы cо словарями нецензурных слов.

Методы класса

Метод | Описание | С версии
Add | Создание нового словаря. | 5.1.0
Delete | Удаление словаря. | 5.1.0
GetList | Получение списка словарей с возможностью фильтрации и сортировки. | 5.1.0
Update | Изменение параметров словаря. | 5.1.0


Add

Форум>Классы>CFilterDictionary>Add (доступен с 5.1.0)

CFilterDictionary::Add

Описание и параметры

int
CFilterDictionary::Add(
 array arFields
);

Создает новый словарь с параметрами, указанными в массиве arFields. Возвращает код созданного словаря. Метод нестатический.

Параметры

Параметр | Описание | С версии
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Словарь". Обязательные поля должны быть заполнены. |

Возвращаемое значение

Возвращает код созданного словаря. В случае ошибки добавления возвращает False.

Смотрите также

  • поля таблицы "Словарь".

Примеры использования

<?
$arFields = Array(
    TITLE        - > $TITLE,
    TYPE      - > $TYPE,
);
$ID = CFilterDictionary::Add($arFields);
if (IntVal($ID)<=0)
  echo "Error!";
?>


Delete

Форум>Классы>CFilterDictionary>Delete (доступен с 5.1.0)

CFilterDictionary::Delete

bool
CFilterDictionary::Delete(
 int ID
);

Удаляет папку с кодом ID. Метод нестатический.

Параметры

Параметр | Описание | С версии
ID | Код записи, которую необходимо удалить. |

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.


GetList

Форум>Классы>CFilterDictionary>GetList (доступен с 5.1.0)

CFilterDictionary::GetList

Описание и параметры

CDBResult
  GetList(
 [array arOrder [,
 array arFilter [,
 bool bCount ]]]
);

Возвращает список папок по фильтру arFilter, отсортированый в соответствии с arOrder. Метод нестатический.

Параметры

Параметр | Описание | С версии
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
ID - ID сообщения;
TITLE - имя словаря;
TYPE - тип словаря;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("ID"=>"ASC")
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения
ID - ID сообщения;
TITLE - имя словаря;
TYPE - тип словаря;

фильтруемое поле может содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Обязательное.
bCount | Если параметр равен True, то возвращается только количество сообщений, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False.

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • поля таблицы "Словарь"


Update

Форум>Классы>CFilterDictionary>Update (доступен с 5.1.0)

CFilterDictionary::Update

int
 Update(
 int ID,
 array arFields
);

Изменяет параметры существующего словаря с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемого словаря. Метод нестатический.

Параметры

Параметр | Описание | C версии
ID | Код записи, параметры которой необходимо изменить. |
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Словарь". |

Возвращаемое значение

Возвращает код измененного словаря. В случае ошибки изменения возвращает False.

Смотрите также

  • поля таблицы "Словарь"


Класс CFilterLetter

CFilterLetter - класс для работы cо словарями букв.

Методы класса

Метод | Описание | С версии
Add | Создание новой записи. | 5.1.0
Delete | Удаление записи. | 5.1.0
GetList | Получение списка записей с возможностью фильтрации и сортировки. | 5.1.0
Update | Изменение параметров записи. | 5.1.0


Add

Форум>Классы>CFilterLetter>Add (доступен с 5.1.0)

CFilterLetter::Add

int
Add(
  array arFields
);

Создает новую запись с параметрами, указанными в массиве arFields. Возвращает код созданной записи. Метод нестатический.

Параметры функции

Параметр | Описание | С версии
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Словарь транслита". Обязательные поля должны быть заполнены. | 5.1.0

Возвращаемое значение

Возвращает код созданной записи. В случае ошибки добавления возвращает False.

Смотрите также

  • таблица "Словарь транслита"


Delete

Форум>Классы>CFilterLetter>Delete (доступен с 5.1.0)

CFilterLetter::Delete

bool
Delete(
 int ID
);

Удаляет запись с кодом ID. Метод нестатический.

Параметры функции

Параметр | Описание | C версии
ID | Код записи, которую необходимо удалить. | 5.1.0

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.


GetList

Форум>Классы>CFilterLetter>GetList (доступен с 5.1.0)

CFilterLetter::GetList

Описание и параметры

CDBResult
GetList(
 [array arOrder [,
 array arFilter [,
 bool bCount ]]]
);

Возвращает список записей по фильтру arFilter, отсортированый в соответствии с arOrder. Метод нестатический.

Параметры функции

Параметр | Описание | С версии
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
ID - ID сообщения;
LETTER - имя буквы;
DICTIONARY_ID - ID словаря;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("ID"=>"ASC") 		5.1.0
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения
ID - ID сообщения;
LETTER - имя буквы;
DICTIONARY_ID - ID словаря;

фильтруемое поле может содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Обязательное. 		5.1.0
bCount | Если параметр равен True, то возвращается только количество сообщений, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False. | 5.1.0

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • таблица "Словарь"
  • таблица "Словарь транслита"


Update

Форум>Классы>CFilterLetter>Update (доступен с 5.1.0)

CFilterLetter::Update

int
Update(
 int ID,
 array arFields
);

Изменяет параметры существующей записи с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемой записи. Метод нестатический.

Параметры функции

Параметр | Описание | С версии
ID | Код записи, параметры которой необходимо изменить. | 5.1.0
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Словарь транслита". | 5.1.0

Возвращаемое значение

Возвращает код измененной записи. В случае ошибки изменения возвращает False.

Смотрите также

  • таблица "Словарь транслита"


Класс CFilterUnquotableWords

CFilterUnquotableWords - класс для работы cо словарями слов.

Методы класса

Метод | Описание | C версии
Add | Создание новой записи. | 5.1.0
Delete | Удаление записи. | 5.1.0
GetList | Получение списка записей с возможностью фильтрации и сортировки. | 5.1.0
Update | Изменение параметров записи. | 5.1.0


Add

Форум>Классы>CFilterUnquotableWords>Add (доступен с 5.1.0)

CFilterUnquotableWords::Add

int
Add(
 array arFields
);

Создает новую запись с параметрами, указанными в массиве arFields. Возвращает код созданной записи. Метод нестатический.

Параметры функции

Параметр | Описание | C версии
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Словарь слов". Обязательные поля должны быть заполнены. | 5.1.0

Возвращаемое значение

Возвращает код созданной записи. В случае ошибки добавления возвращает False.

Смотрите также

  • таблица "Словарь слов"


Delete

Форум>Классы>CFilterUnquotableWords>Delete (доступен с 5.1.0)

CFilterUnquotableWords::Delete

bool
Delete(
 int ID
);

Удаляет запись с кодом ID. Метод нестатический.

Параметры функции

Параметр | Описание | C версии
ID | Код записи, которую необходимо удалить. | 5.1.0

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.


GetList

Форум>Классы>CFilterUnquotableWords>GetList

CFilterUnquotableWords::GetList

Описание и параметры

CDBResult
GetList(
 [array arOrder [,
 array arFilter [,
 bool bCount ]]]
);

Возвращает список записей по фильтру arFilter, отсортированый в соответствии с arOrder. Метод нестатический.

Параметры функции

Параметр | Описание | C версии
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
ID - ID сообщения;
WORDS - слово;
PATTERN - шаблон;
REPLACEMENT - замена;
DESCRIPTION - описание;
USE_IT - использовать этот шаблон в фильтре;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("ID"=>"ASC") 		5.1.0
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения
ID - ID сообщения;
DICTIONARY_ID - ID словаря;
WORDS - слово;
PATTERN - шаблон;
REPLACEMENT - замена;
DESCRIPTION - описание;
USE_IT - использовать этот шаблон в фильтре;

фильтруемое поле может содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Обязательное. 		5.1.0
bCount | Если параметр равен True, то возвращается только количество сообщений, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False. | 5.1.0

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • таблица "Словарь"
  • таблица "Словарь букв"
  • таблица "Словарь слов"


Update

Форум>Классы>CFilterUnquotableWords>Update (доступен с 5.1.0)

CFilterUnquotableWords::Update

int
  Update(
 int ID,
 array arFields
);

Изменяет параметры существующей записи с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемой записи. Метод нестатический.

Параметры функции

Параметр | Описание | С версии
ID | Код записи, параметры которой необходимо изменить. | 5.1.0
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Словарь слов". | 5.1.0

Возвращаемое значение

Возвращает код измененной записи. В случае ошибки изменения возвращает False.

Смотрите также

  • таблица "Словарь слов"


Класс CForumGroup

CForumGroup - класс для работы с группами форумов.

Методы класса

Метод | Описание | С версии
GetList | Получение списка групп с возможностью фильтрации и сортировки. | 3.3.3
GetByID | Получение параметров группы, не зависящих от языка, по ее коду. | 3.3.3
GetByIDEx | Получение всех параметров группы, включая зависящие от языка, по ее коду и языку. | 3.3.3
GetLangByID | Получение параметров группы, зависящих от языка, по ее коду и языку. | 3.3.3
Add | Добавление новой группы. | 3.3.3
Update | Изменение параметров группы. | 3.3.3
Delete | Удаление группы. | 3.3.3


GetList

Форум>Классы>CForumGroup>GetList (доступен с 3.3.3)

CForumGroup::GetList

Описание и параметры

CDBResult
GetList(
 [array arOrder [,
 array arFilter]]
);

Возвращает список групп по фильтру arFilter, отсортированый в соответствии с arOrder. Метод статический.

Параметры функции

Параметр Описание C версии
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
ID - ID группы;
SORT - индекс сортировки;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("sort"=>"asc") 		3.3.3
arFilter Массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения
ID - по коду;
SORT - индекс сортировки;

фильтруемое поле может иметь содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Необязательное. По умолчанию записи не фильтруются. 		3.3.3

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • Поля элементов


GetByID

Форум>Классы>CForumGroup>GetByID (доступен с 3.3.3)

CForumGroup::GetByID

array
GetByID(
 int ID
);

Возвращает массив не зависящих от языка параметров группы форума по ее коду ID. Метод статический.

Параметры функции

Параметр | Описание | C версии
ID | Код группы форума. | 3.3.3

Возвращаемое значение

Массив параметров группы, не зависящих от языка. Если группа не найдена, то возвращается значение false.

Смотрите также

  • Поля группы


GetByIDEx

Форум>Классы>CForumGroup>GetByIDEx

CForumGroup::GetByIDEx

array
GetByIDEx(
 int ID,
 char(2) LANGUAGE_ID
);

Возвращает массив всех параметров группы по ее коду ID и языку LANGUAGE_ID. Метод статический.

Параметры функции

Параметр | Описание
ID | Код группы.
LANGUAGE_ID | Язык. До версии 8.0.0 параметр назывался strLang.

Возвращаемое значение

Массив всех параметров группы, включая зависящие от языка. Если группа не найдена, то возвращается значение false.

Смотрите также

  • Поля группы


GetLangByID

Форум>Классы>CForumGroup>GetLangByID (доступен с 3.3.3)

CForumGroup::GetLangByID

array
GetLangByID(
 int FORUM_GROUP_ID,
 char(2) strLang
);

Возвращает массив языковых параметров группы по ее коду GROUP_ID и языку LANG. Метод статический.

Параметры функции

Параметр | Описание
FORUM_GROUP_ID | Код группы.
strLang | Язык

Возвращаемое значение

Массив параметров группы, зависящих от языка. Если группа не найдена, то возвращается значение false.

Смотрите также

  • Поля группы


Add

Форум>Классы>CForumGroup>Add (доступен с 3.3.3)

CForumGroup::Add

Описание и параметры

int
Add(
 array arFields
);

Создает новую группу с параметрами, указанными в массиве arFields. Возвращает код созданной группы. На добавление нового звания параметры посетителей форума не пересчитываются. Пересчет будт происходить постепенно по мере общения посетителей на форуме. Метод статический.

Параметры функции

Параметр | Описание
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей групп. В специальное поле "LANG" заносится массив массивов полей языковых параметров групп, которые имеют аналогичную структуру.

Возвращаемое значение

Возвращает код созданной группы. В случае ошибки добавления возвращает False.

Смотрите также

  • Поля группы

Примеры использования

<?
$arFields = array("SORT" => $SORT);
$arSysLangs = array("ru", "en");
for ($i = 0; $i<count($arSysLangs); $i++)
{
  $arFields["LANG"][] = array(
    "LID" => $arSysLangs[$i],
    "NAME" => ${"NAME_".$arSysLangs[$i]},
    "DESCRIPTION" => ${"DESCRIPTION_".$arSysLangs[$i]}
    );
}
$ID = CForumGroup::Add($arFields);
if (IntVal($ID)<=0)
  echo "Error!";
?>


Update

Форум>Классы>CForumGroup>Update (доступен с 3.3.3)

CForumGroup::Update

Описание и параметры

int
Update(
 int ID,
 array arFields
);

Изменяет параметры существующей группы с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемой группы. Метод статический.

Параметры функции

Параметр | Описание
ID | Код группы, параметры которой необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей групп. В специальное поле "LANG" заносится массив массивов полей языковых параметров групп, которые имеют аналогичную структуру.

Возвращаемое значение

Возвращает код измененной группы. В случае ошибки изменения возвращает False.

Смотрите также

  • Поля группы

Примеры использования

<?
$arFields = array("SORT" => $SORT);
$arSysLangs = array("ru", "en");
for ($i = 0; $i<count($arSysLangs); $i++)
{
  $arFields["LANG"][] = array(
    "LID" => $arSysLangs[$i],
    "NAME" => ${"NAME_".$arSysLangs[$i]},
    "DESCRIPTION" => ${"DESCRIPTION_".$arSysLangs[$i]}
    );
}
$ID1 = CForumGroup::Update($ID, $arFields);
if (IntVal($ID1)<=0)
  echo "Error!";
?>


Delete

Форум>Классы>CForumGroup>Delete (доступен с 3.3.3)

CForumGroup::Delete

bool
Delete(
 int ID
);

Удаляет группу с кодом ID. Если к данной группе привязаны форумы, то она удалена не будет. Метод статический.

Параметры функции

Параметр | Описание
ID | Код группы, которую необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.


Класс CForumMessage

CForumMessage - класс для работы с сообщениями форумов.

Методы класса

Метод | Описание | C версии
GetList | Получение списка сообщений с возможностью фильтрации и сортировки. | 3.3.3
GetListEx | Получение списка сообщений (включая связаные данные) с возможностью фильтрации и сортировки. | 3.3.3
GetByID | Получение параметров сообщения по его коду. | 3.3.3
GetByIDEx | Получение параметров сообщения вместе со связаными данными по его коду. | 3.3.3
Add | Добавление нового сообщения. | 3.3.3
Update | Изменение параметров сообщения. | 3.3.3
Delete | Удаление сообщения. | 3.3.3
CanUserAddMessage | Всесторонне проверяет, может ли пользователь добавить новое сообщение. | 3.3.3
CanUserUpdateMessage | Всесторонне проверяет, может ли пользователь изменить сообщение. | 3.3.3
CanUserDeleteMessage | Всесторонне проверяет, может ли пользователь удалить сообщение. | 3.3.3
GetMessagePage | Возвращает страницу, на которой будет находиться заданное сообщение при постраничном показе. | 3.3.3


GetList

Форум>Классы>CForumMessage>GetList (доступен с 3.3.3)

CForumMessage::GetList

Описание и параметры

CDBResult
CForumMessage::GetList(
 array arOrder = Array("ID"=>"ASC"),
 array arFilter = Array(),
 bool bCount  = false,
 int iNum = 0,
 array arAddParams = Array()
);

Возвращает список сообщений по фильтру arFilter, отсортированый в соответствии с arOrder. Метод статический.

Параметры функции

Параметр | Описание | C версии
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • AUTHOR_NAME - имя автора сообщения;
  • POST_DATE - дата создания сообщения;
  • FORUM_ID - ID форума;
  • TOPIC_ID - ID темы;
  • APPROVED - опубликовано;
  • ID - ID сообщения;
Направление сортировки может принимать значения:
  • ASC - по возрастанию;
  • DESC - по убыванию;
Необязательный. По умолчанию равен Array("ID"=>"ASC")
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - ID сообщения;
  • AUTHOR_NAME - имя автора сообщения;
  • AUTHOR_ID - ID автора сообщения;
  • FORUM_ID - ID форума;
  • TOPIC_ID - ID темы;
  • APPROVED - опубликовано;
  • PARAM1 - первый параметр элемента;
  • PARAM2 - второй параметр элемента;
  • AUTHOR_NAME - имя автора сообщения;
  • POST_MESSAGE_CHECK - проверка текста сообщения;
  • APPROVED - опубликовано;
  • NEW_TOPIC - новая тема;
  • ATTACH_IMG - присоединенная картинка;
  • EDIT_DATE - дата редактирования сообщения;
  • POST_DATE - дата создания сообщения;
Перед названием фильтруемого поля может быть указан тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно
Необязательное. По умолчанию записи не фильтруются.
bCount | Если параметр равен True, то возвращается только количество сообщений, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False.
iNum | Ограничение числа возвращаемых записей. Если параметр iNum отличен от нуля, то возвращается не более iNum записей. Поддерживается не для всех баз данных. Если параметр не поддерживается, то его установки игнорируются. Необязательный. По умолчанию равен 0.
arAddParams | Массив добавления параметров. | 4.0.3

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • Поля сообщения

Примеры использования

<?
// выберем все опубликованные сообщения темы с кодом $TID в порядке поступления
$db_res = CForumMessage::GetList(array("ID"=>"ASC"), array("TOPIC_ID"=>$TID));
while ($ar_res = $db_res->Fetch())
{
  echo $ar_res["POST_MESSAGE"]."<br>";
}
?>

<?
//вывести сообщения, не из форумов с ID 12 и 45.

'!@FORUM_ID' => array(12, 45),
?>

<?
// Фильтрация по дате сообщения:

$db_res = CForumMessage::GetList(array("ID"=>"ASC"), array(">=POST_DATE" => "23.12.2010", "<=POST_DATE" => "24.12.2010"));
?>


GetListEx

Форум>Классы>CForumMessage>GetListEx (доступен с 3.3.3)

CForumMessage::GetListEx

Описание и параметры

CDBResult
CForumMessage::GetListEx(
 array arOrder = Array("ID"=>"ASC"),
 array arFilter = Array(),
 bool bCount  = false,
 int iNum = 0,
 array arAddParams = Array()
);

Возвращает список сообщений (включая связанные данные) по фильтру arFilter, отсортированный в соответствии с arOrder. Метод статический.

Параметры функции

Параметр | Описание | C версии
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • AUTHOR_NAME - имя автора сообщения;
  • POST_DATE - дата создания сообщения;
  • FORUM_ID - ID форума;
  • TOPIC_ID - ID темы;
  • ID - ID сообщения;
  • USE_SMILES - разрешено заменять смайлики на их графические изображения;
  • NEW_TOPIC - новая тема;
  • APPROVED - опубликовано;
  • POST_DATE - дата создания сообщения;
  • POST_MESSAGE - сообщение;
  • ATTACH_IMG - присоединенная картинка;
  • PARAM1 - первый параметр элемента;
  • PARAM2 - второй параметр элемента;
  • AUTHOR_ID - ID автора сообщения;
  • AUTHOR_EMAIL - e-mail автора сообщения;
  • AUTHOR_IP - IP-адрес автора сообщения;
  • AUTHOR_REAL_IP - реальный IP-адрес автора сообщения;
  • GUEST_ID - ID посетителя;
  • EDITOR_ID - ID того, кто отредактировал сообщение;
  • EDITOR_NAME - имя того, кто отредактировал сообщение;
  • EDITOR_EMAIL - e-mail того, кто отредактировал сообщение;
  • EDIT_REASON - причина редактирования сообщения;
  • EDIT_DATE - дата редактирования сообщения;
Направление сортировки может принимать значения:
  • ASC - по возрастанию;
  • DESC - по убыванию;
Необязательный. По умолчанию равен Array("ID"=>"ASC")
arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - ID сообщения;
  • AUTHOR_NAME - имя автора сообщения;
  • AUTHOR_ID - ID автора сообщения;
  • FORUM_ID - ID форума;
  • TOPIC_ID - ID темы;
  • APPROVED - опубликовано;
  • PARAM1 - первый параметр элемента;
  • PARAM2 - второй параметр элемента;
  • APPROVED - опубликовано;
  • NEW_TOPIC - новая тема;
  • POST_MESSAGE - сообщение;
  • ATTACH_IMG - присоединенная картинка;
  • POST_DATE - дата создания сообщения;
  • USER_ID - ID пользователя;
  • NEW_MESSAGE - новое сообщение;
  • USER_GROUP - группа пользователя;
  • TOPIC_SOCNET_GROUP_ID - ID группы соцсети;
  • TOPIC_OWNER_ID - ID владельца темы;
  • TOPIC - тема;
  • TOPIC_TITLE - название темы;
  • TITLE - название сообщения;
Перед названием фильтруемого поля может быть указан тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно
Необязательное. По умолчанию записи не фильтруются.
bCount | Если параметр равен True, то возвращается только количество сообщений, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False.
iNum | Ограничение числа возвращаемых записей. Если параметр iNum отличен от нуля, то возвращается не более iNum записей. Поддерживается не для всех баз данных. Если параметр не поддерживается, то его установки игнорируются. Необязательный. По умолчанию равен 0.
arAddParams | Массив параметров. | 4.0.3

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • Поля сообщения

Примеры использования

<?
// выберем все опубликованные сообщения темы с кодом $TID в порядке, обратном поступлению

$db_res = CForumMessage::GetListEx(array("ID"=>"DESC"), array("TOPIC_ID"=>$TID));
while ($ar_res = $db_res->Fetch())
{
  echo "<pre>";
  print_r($ar_res);
  echo "</pre><br>";
}
?>

<?
// Для выборки сообщений из нескольких топиков можно использовать код:

cmodule::includemodule('forum');

$res = CForumMessage::GetListEx(array("POST_DATE"=>"DESC"), array('@TOPIC_ID'=>array(6,7)), false, 2);
while($arMessages = $res->Fetch())
{
  echo "<pre>";
print_r($arMessages["POST_MESSAGE"]);
  echo "</pre>";
}

?>


GetByID

Форум>Классы>CForumMessage>GetByID (доступен с 3.3.3)

CForumMessage::GetByID

Описание и параметры

CForumMessage::GetByID(
 int ID,
 array arAddParams = Array()
);

Возвращает массив параметров сообщения по его коду ID. Метод статический.

Параметры функции

Параметр | Описание | С версии
ID | Код сообщения. |
arAddParams | Массив добавления параметров. | 8.0.16

Возвращаемое значение

Массив параметров сообщения. Если сообщение не найдено, то возвращается значение false.

Смотрите также

  • Поля сообщения

Примеры использования

<?
$arMessage = CForumMessage::GetByID($MID);
if ($arMessage)
{
  $TID = IntVal($arMessage["TOPIC_ID"]);
  $FID = IntVal($arMessage["FORUM_ID"]);
}
?>


GetByIDEx

Форум>Классы>CForumMessage>GetByIDEx (доступен с 3.3.3)

CForumMessage::GetByIDEx

Описание и параметры

CForumMessage::GetByIDEx(
 int ID,
 array arAddParams = Array()
);

Возвращает массив параметров сообщения, а так же сопутствующие параметры, по его коду ID. Метод статический.

Параметры функции

Параметр | Описание | С версии
ID | Код сообщения. |
arAddParams | Массив добавления параметров. | 8.0.16

Возвращаемое значение

Массив параметров сообщения, включая сопутствующие. Если сообщение не найдено, то возвращается значение false.

Смотрите также

  • Поля сообщения

Примеры использования

<?
// Распечатаем на экран все возвращаемые параметры сообщения
$arMessage = CForumMessage::GetByIDEx($MID);
if ($arMessage)
{
  echo "<pre>";
  print_r($arMessage);
  echo "</pre>";
}
?>


Add

Форум>Классы>CForumMessage>Add (доступен с 3.3.3)

CForumMessage::Add

Описание и параметры

int
CForumMessage::Add(
 array arFields = Array(),
 string strUploadDir = false,
 array arParams = Array()
);

Создает новое сообщение с параметрами, указанными в массиве arFields. Возвращает код созданного сообщения. Метод статический.

Параметры функции

Параметр | Описание | C версии
arFields Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где
  • field - название поля;
  • value - значение поля.
Поля перечислены в списке полей сообщения. Обязательные поля должны быть заполнены.

Для первого сообщения в теме форума - обязательно передать параметр "NEW_TOPIC" => "Y".
strUploadDir | Каталог для загрузки файлов. Должен быть задан относительно главного каталога для загрузки. Необязательный. По умолчанию равен "forum".
arParams | Массив параметров. Необязательный. | 7.0.0

Возвращаемое значение

Возвращает код созданного сообщения. В случае ошибки добавления возвращает False.

Примечания

Перед добавлением сообщения следует проверить возможность добавления методом CForumMessage::CanUserAddMessage.

Для добавления и изменения сообщения и темы рекомендуется пользоваться высокоуровневой функцией ForumAddMessage.

Смотрите также

  • Поля сообщения

Примеры использования

Пример 1

<?
$arFields = Array(
  "POST_MESSAGE" => $POST_MESSAGE,
  "USE_SMILES" => ($USE_SMILES=="Y") ? "Y" : "N",
  "APPROVED" => $APPROVED,
  "AUTHOR_NAME" => $AUTHOR_NAME,
  "AUTHOR_ID" => $AUTHOR_ID,
  "FORUM_ID" => $FID,
  "TOPIC_ID" => $TID,
  "AUTHOR_IP" => ($AUTHOR_IP!==False) ? $AUTHOR_IP : "",
  "NEW_TOPIC" => "N"
);
$ID = CForumMessage::Add($arFields);
if (IntVal($ID)<=0)
  echo "Error!";
?>

Пример 2

Если необходимо узнать ошибку:

<?
$arFields = Array(
  "POST_MESSAGE" => $POST_MESSAGE,
  "USE_SMILES" => ($USE_SMILES=="Y") ? "Y" : "N",
  "APPROVED" => $APPROVED,
  "AUTHOR_NAME" => $AUTHOR_NAME,
  "AUTHOR_ID" => $AUTHOR_ID,
  "FORUM_ID" => $FID,
  "TOPIC_ID" => $TID,
  "AUTHOR_IP" => ($AUTHOR_IP!==False) ? $AUTHOR_IP : "",
  "NEW_TOPIC" => "N"
);
$ID = CForumMessage::Add($arFields);
if ($ID<=0 && $ex=$APPLICATION->GetException())
   echo $ex->GetString();
?>

Пример 3

IP адрес проходит дополнительную проверку и, если он отличается от реального IP адреса пользователя, то на форуме вместо:

IP: ###.###.###.###

выводится:

IP / реальный: ###.###.###.### /

Для того, чтобы этого избежать, используем дополнительное поле:

"AUTHOR_IP" => $AUTHOR_IP,
"AUTHOR_REAL_IP"=> $AUTHOR_IP,


Update

Форум>Классы>CForumMessage>Update (доступен с 3.3.3)

CForumMessage::Update

Описание и параметры

int
Update(
 int ID,
 array arFields [,
 bool skip_counts [,
 string strUploadDir]]
);

Изменяет параметры существующего сообщения с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемого сообщения. Метод статический.

Параметры функции

Параметр | Описание
ID | Код сообщения, параметры которого необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей сообщения.
skip_counts | Если этот параметр установлен в значение true, то при изменении сообщения не будут автоматически обсчитаны статистические данные. Это ускоряет работу функции, но создает логические ошибки в данных. Необязательный. По умолчанию равен False.
strUploadDir | Каталог для загрузки файлов. Должен быть задан относительно главного каталога для загрузки. Необязательный. По умолчанию равен "forum".

Возвращаемое значение

Возвращает код измененного сообщения. В случае ошибки изменения возвращает False.

Примечания

Перед изменением сообщения следует проверить возможность изменения методом CForumMessage::CanUserUpdateMessage.

Для добавления и изменения сообщения и темы рекомендуется пользоваться высокоуровневой функцией ForumAddMessage.

Смотрите также

  • Поля сообщения

Примеры использования

// Добавление информации о редактировании на форумах, где есть только логины:
// 1. Не стоит использовать время PHP (время PHP и БД довольно часто различается, а сейчас в форуме, практически, везде используется время БД);
// 2. Нельзя показывать логин пользователя без его разрешения.

<?
$arUser = CForumUser::GetByUSER_ID($USER->GetID());
$arFields = array(
   "POST_MESSAGE" => $_POST["POST_MESSAGE"],
   "EDIT_DATE" => "",
   "EDITOR_ID" => $USER->GetID(),
   "EDITOR_NAME" => trim($arUser["SHOW_NAME"] == "Y" ? $USER->GetFullName() : $USER->GetLogin()));
$arFields["EDITOR_NAME"] = (empty($arFields["EDITOR_NAME"]) ? $USER->GetLogin() : $arFields["EDITOR_NAME"]);
CForumMessage::Update($MID, $arFields);
?>


Delete

Форум>Классы>CForumMessage>Delete (доступен с 3.3.3)

CForumMessage::Delete

bool
Delete(
 int ID
);

Удаляет сообщение с кодом ID.

Примечание. Метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода. Метод статический.

Параметры функции

Параметр | Описание
ID | Код сообщения, которое необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.

Перед удалением вызывает событие onBeforeMessageDelete с параметрами $ID и $arMessage, возвращение false из обработчика отменяет удаление сообщения.

После удаления вызывает событие onAfterMessageDelete с теми же параметрами структура массива $arMessage соответствует результату работы функции CForumMessage::GetByID($ID).

Смотрите также

  • Перед удалением сообщения следует проверить возможность удаления методом CForumMessage::CanUserDeleteMessage


CanUserAddMessage

Форум>Классы>CForumMessage>CanUserAddMessage (доступен с 3.3.3)

CForumMessage::CanUserAddMessage

Описание и параметры

bool
CanUserAddMessage(
 int TID,
 array arUserGroups,
 int iUserID,
 bool ExternalPermission = false
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, добавить новое сообщение в тему TID. Метод статический.

Параметры функции

Параметр | Описание | C версии
TID | Код темы, в которую пользователь хочет добавить сообщение. |
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray() |
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID() |
ExternalPermission | "Приоритетное право доступа", если этот параметр передается, то не проверяются права самого форума, а идет доверие только этому параметру. Необязательный. По умолчанию равен False. | 7.1.4

Возвращаемое значение

Возвращает True, если пользователь имеет все права на добавление сообщения. В противном случае возвращается значение false.

Смотрите также

  • CForumMessage::CanUserUpdateMessage
  • CForumMessage::CanUserDeleteMessage

Примеры использования

<?
if (CForumMessage::CanUserAddMessage($TID, $USER->GetUserGroupArray(), $USER->GetID()))
{
    echo "You can add message!";
}
?>


CanUserUpdateMessage

Форум>Классы>CForumMessage>CanUserUpdateMessage (доступен с 3.3.3)

CForumMessage::CanUserUpdateMessage

Описание и параметры

bool
CanUserUpdateMessage(
 int MID,
 array arUserGroups,
 int iUserID,
 bool ExternalPermission = false
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, изменить сообщение с кодом ID. Метод статический.

Параметры функции

Параметр | Описание | C версии
MID | Код сообщения, которое пользователь хочет изменить. |
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray() |
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID() |
ExternalPermission | "Приоритетное право доступа", если этот параметр передается, то не проверяются права самого форума, а идет доверие только этому параметру. Необязательный. По умолчанию равен False. | 7.1.4

Возвращаемое значение

Возвращает True, если пользователь имеет все права на изменение сообщения. В противном случае возвращается значение false.

Смотрите также

  • CForumMessage::CanUserAddMessage
  • CForumMessage::CanUserDeleteMessage

Примеры использования

<?
if (CForumMessage::CanUserUpdateMessage($MID, $USER->GetUserGroupArray(), $USER->GetID()))
{
    echo "You can modify this message!";
}
?>


CanUserDeleteMessage

Форум>Классы>CForumMessage>CanUserDeleteMessage (доступен с 3.3.3)

CForumMessage::CanUserDeleteMessage

Описание и параметры

bool
CanUserDeleteMessage(
 int MID,
 array arUserGroups,
 int iUserID,
 bool ExternalPermission = false
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, удалить сообщение с кодом ID. Метод статический.

Параметры функции

Параметр | Описание | С версии
MID | Код сообщения, которое пользователь хочет удалить. |
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray() |
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID() |
ExternalPermission | "Приоритетное право доступа", если этот параметр передается, то не проверяются права самого форума, а идет доверие только этому параметру. Необязательный. По умолчанию равен False. | 7.1.4

Возвращаемое значение

Возвращает True, если пользователь имеет все права на удаление сообщения. В противном случае возвращается значение false.

Смотрите также

  • CForumMessage::CanUserAddMessage
  • CForumMessage::CanUserUpdateMessage

Примеры использования

<?
if (CForumMessage::CanUserDeleteMessage($MID, $USER->GetUserGroupArray(), $USER->GetID()))
{
    CForumMessage::Delete($MID);
}
?>


GetMessagePage

Форум>Классы>CForumMessage>GetMessagePage

CForumMessage::GetMessagePage

Описание и параметры

int
GetMessagePage(
 int ID,
 int mess_per_page,
 array arUserGroups,
 bool TID = false,
 array arAddParams
);

Возвращает страницу, на которой будет находиться сообщение с кодом ID для пользователя, входящего в группы arUserGroups, при постраничном показе с mess_per_page сообщениями на странице. Метод статический.

Параметры функции

Параметр | Описание | C версии
ID | Код сообщения.
mess_per_page | Количество сообщений на страницу. Обычно равно переменной $FORUM_MESSAGES_PER_PAGE, которая определяется модулем форума. Эта переменная инициализируется из настроек модуля форума.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray().
TID | Код темы форума. Необязательный. По умолчанию равен False. | 4.0.3
arAddParams Массив параметров, принимает на вход следующие ключи:
  • ORDER_DIRECTION - сортировка (можно сказать, обратная навигация), принимает значения DESC/ASC.
  • FILTER - массив, дополнительный фильтр, который накладывается на получение сообщений темы (например, строго определенного автора).
  • PERMISSION_EXTERNAL - права доступа.
 7.0.2

Возвращаемое значение

Номер страницы, на которой будет показано сообщение. Если сообщение не найдено, то возвращается значение false.

Смотрите также

  • CDBResult::NavStart

Примеры использования

<?
if ($MID>0)
  $db_Message->NavStart($FORUM_MESSAGES_PER_PAGE, true, CForumMessage::GetMessagePage($MID, $FORUM_MESSAGES_PER_PAGE, $USER->GetUserGroupArray()));
else
  $db_Message->NavStart($FORUM_MESSAGES_PER_PAGE);
?>


Класс CForumNew

CForumNew - класс для работы с форумами

Методы класса

Метод | Описание | С версии
Add | Добавление нового форума. | 3.3.3
Delete | Удаление форума. | 3.3.3
CanUserAddForum | Всесторонне проверяет, может ли пользователь добавить новый форум. | 3.3.3
CanUserDeleteForum | Всесторонне проверяет, может ли пользователь удалить форум. | 3.3.3
CanUserUpdateForum | Всесторонне проверяет, может ли пользователь изменить форум. | 3.3.3
GetByID | Получение параметров форума по его коду. | 3.3.3
GetByIDEx | Получение параметров форума вместе со связаными данными по его коду. | 3.3.3
GetList | Получение списка форумов с возможностью фильтрации и сортировки. | 3.3.3
GetListEx | Получение списка форумов (включая связаные данные) с возможностью фильтрации и сортировки. | 3.3.3
GetSites | Получение сайтов, к которым относится форум, а так же шаблонов путей к сообщениям форума на этих сайтах. | 3.3.7
Update | Изменение параметров форума. | 3.3.3


Add

Форум>Классы>CForumNew>Add (доступен с 3.3.3)

CForumNew::Add

Описание и параметры

int
 CForumNew::Add(
 array arFields
);

Создает новый форум с параметрами, указанными в массиве arFields. Возвращает код созданного форума. Метод статический.

Параметры функции

Параметр | Описание
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей форума. Обязательные поля должны быть заполнены.

Возвращаемое значение

Возвращает код созданного форума. В случае ошибки добавления возвращает False.

Параметр GROUP_ID задает права доступа группам пользователей к создаваемому форуму. Ключ массива - ID группы пользователей, значение - один из следующих вариантов:
A - нет доступа
E - чтение
I - ответ
M - новая тема
Q - модерирование
U - редактирование
Y - полный доступ.

Смотрите также

  • Поля форума
  • Перед добавлением форума следует проверить возможность добавления методом CForumNew::CanUserAddForum

Примеры использования

<?
CModule::IncludeModule("forum");
$arFields = Array(
   "NAME" => "Название форума",
   "DESCRIPTION" => "Описание форума (м.б. пустым, м.б. html-код)",
   "FORUM_GROUP_ID" => 0,
   "GROUP_ID" => array(1 => "Y", 2 => "I"),
   "SITES" => array(), // заполняется ниже
   "ACTIVE" => "Y",
   "MODERATION" => "N",
   "INDEXATION" => "Y",
   "SORT" => 150,
   "ASK_GUEST_EMAIL" => "N",
   "USE_CAPTCHA" => "N",
   "ALLOW_HTML" => "N",
   "ALLOW_ANCHOR" => "Y",
   "ALLOW_BIU" => "Y",
   "ALLOW_IMG" => "Y",
   "ALLOW_VIDEO" => "Y",
   "ALLOW_LIST" => "Y",
   "ALLOW_QUOTE" => "Y",
   "ALLOW_CODE" => "Y",
   "ALLOW_FONT" => "Y",
   "ALLOW_SMILES" => "Y",
   "ALLOW_UPLOAD" => "Y",
   "ALLOW_UPLOAD_EXT" => "",
   "ALLOW_TOPIC_TITLED" => "N",
   "EVENT1" => "forum");

$db_res = CSite::GetList($lby="sort", $lorder="asc");
while ($res = $db_res->Fetch()):
   $arFields["SITES"][$res["LID"]] = "/".$res["LID"]."/forum/#FORUM_ID#/#TOPIC_ID#/";
endwhile;

$res = CForumNew::Add($arFields);
if (intVal($res) > 0):
   echo "New Forum ID: ".$res;
else:
   $e = $GLOBALS['APPLICATION']->GetException();
   if ($e && $str = $e->GetString()):
       echo "Error: ".$str;
   else:
       echo "Unknown Error";
   endif;
endif;
?>

Короткий пример добавления форума c обязательными полями:

<?
CModule::IncludeModule("forum");
$arFields = Array(
   "NAME" => "Имя форума",
   "GROUP_ID" => array(1 => "Y", 2 => "I"),
   "SITES" => array(
       "ru" => "/url/"));
$res = CForumNew::Add($arFields);
?>


Delete

Форум>Классы>CForumNew>Delete (доступен с 3.3.3)

CForumNew::Delete

bool
Delete(
 int ID
);

Удаляет форум с кодом ID. Перед удалением проверяет обработчики события OnBeforeForumDelete модуля forum. Если один из обработчиков вернет false, то форум удален не будет. Метод статический.

Примечание. Метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.

Параметры функции

Параметр | Описание
ID | Код форума, который необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.

Смотрите также

  • Перед удалением форума следует проверить возможность удаления методом CForumNew::CanUserDeleteForum


CanUserAddForum

Форум>Классы>CForumNew>CanUserAddForum (доступен с 3.3.3)

CForumNew::CanUserAddForum

bool
CanUserAddForum(
 array arUserGroups,
 int iUserID
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, добавить новый форум. Метод статический.

Параметры функции

Параметр | Описание
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на добавление форума. В противном случае возвращается значение false.

Смотрите также

  • CForumNew::CanUserUpdateForum
  • CForumNew::CanUserDeleteForum


CanUserDeleteForum

Форум>Классы>CForumNew>CanUserDeleteForum (доступен с 3.3.3)

CForumNew::CanUserDeleteForum

bool
CanUserDeleteForum(
 int FID,
 array arUserGroups,
 int iUserID,
 bool ExternalPermission = false
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, удалить форум с кодом ID. Метод статический.

Параметры функции

Параметр | Описание | C версии
FID | Код форума, который пользователь хочет удалить. |
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray() |
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID() |
ExternalPermission | "Приоритетное право доступа", если этот параметр передается, то не проверяются права самого форума, а идет доверие только этому параметру. Необязательный. По умолчанию равен False. | 7.1.4

Возвращаемое значение

Возвращает True, если пользователь имеет все права на удаление форума. В противном случае возвращается значение false.

Смотрите также

  • CForumNew::CanUserAddForum
  • CForumNew::CanUserUpdateForum


CanUserUpdateForum

Форум>Классы>CForumNew>CanUserUpdateForum (доступен с 3.3.3)

CForumNew::CanUserUpdateForum

Описание и параметры

bool
CanUserUpdateForum(
 int FID,
 array arUserGroups,
 int iUserID,
 bool ExternalPermission = false
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, изменить форум с кодом ID. Метод статический.

Параметры функции

Параметр | Описание | C версии
FID | Код форума, который пользователь хочет изменить. |
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray() |
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID() |
ExternalPermission | "Приоритетное право доступа", если этот параметр передается, то не проверяются права самого форума, а идет доверие только этому параметру. Необязательный. По умолчанию равен False. | 7.1.4

Возвращаемое значение

Возвращает True, если пользователь имеет все права на изменение форума. В противном случае возвращается значение false.

Смотрите также

  • CForumNew::CanUserAddForum
  • CForumNew::CanUserDeleteForum

Примеры использования

<?
if (CForumNew::CanUserUpdateForum($FID, $USER->GetUserGroupArray(), $USER->GetID()))
{
    echo "You can modify this forum!";
}
?>


GetByID

Форум>Классы>CForumNew>GetByID (доступен с 5.1.0)

CForumNew::GetByID

array
GetByID(
 int ID
);

Возвращает массив параметров форума по его коду ID. Результаты вызова функции кешируются, поэтому повторные вызовы метода для одного и того же форума не требуют дополнительного обращения к базе данных (при условии, что кеш не сбросился в результате изменения параметров форума). Метод статический.

Параметры функции

Параметр | Описание
ID | Код форума.

Возвращаемое значение

Массив параметров форума. Если форум не найден, то возвращается значение false.

Смотрите также

  • Поля форума

Примеры использования

<?
$arForum = CForumNew::GetByID($FID);
if ($arForum)
{
  echo $arForum["NAME"]."<br>";
}
?>


GetByIDEx

Форум>Классы>CForumNew>GetByIDEx (доступен с 3.3.3)

CForumNew::GetByIDEx

array
GetByIDEx(
 int ID,
 bool SITE_ID = false,
 array arAddParams()
);

Возвращает массив параметров форума, а так же сопутствующие параметры, по его коду ID. Метод статический.

Параметры функции

Параметр | Описание | C версии
ID | Код форума. |
SITE_ID | Код сайта. Необязательный. По умолчанию равен False. | 8.0.0
arAddParams | Массив параметров. | 12.0.0

Возвращаемое значение

Массив параметров форума, включая сопутствующие. Если форум не найден, то возвращается значение false.

Смотрите также

  • Поля форума

Примеры использования

<?
// Распечатаем на экран все возвращаемые параметры форума
$arForum = CForumNew::GetByIDEx($FID);
if ($arForum)
{
  echo "<pre>";
  print_r($arForum);
  echo "</pre>";
}
?>


GetList

Форум>Классы>CForumNew>GetList (доступен с 3.3.3)

CForumNew::GetList

Описание и параметры

CDBResult
 CForumNew::GetList(
 array arOrder = Array("ID"=>"ASC"),
 array arFilter = Array(),
 array arAddParams = Array()
);

Возвращает список форумов по фильтру arFilter, отсортированный в соответствии с arOrder. Метод статический.

Параметры функции

Параметр | Описание | С версии
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
ID - ID форума;
LID - язык форума;
NAME - название форума;
ACTIVE - активность;
MODERATION - модерируемость форума;
FORUM_GROUP_ID - ID группы форума;
TOPICS - количество тем в форуме;
POSTS - количество сообщений в форуме;
LAST_POST_DATE - дата последнего сообщения;
SORT - индекс сортировки;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("SORT"=>"ASC")
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения
LID - язык форума;
ACTIVE - активность форума;
ID - ID форума;
FORUM_GROUP_ID - ID группы форума;
TOPICS - количество тем в форуме;
POSTS - количество сообщений в форуме;
TEXT - подстрока в названии или описании форума;
PERMS - права на доступ к форуму (массив из двух элементов, первый из которых - это список кодов групп, в которые входит пользователь, а второй - это код права на доступ);

фильтруемое поле может иметь содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Необязательное. По умолчанию записи не фильтруются.
arAddParams | Массив параметров. Необязательное. По умолчанию записи не фильтруются. | 12.0.0

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • Поля форума

Примеры использования

<?
// выведем список форумов, к которым текущий посетитель
// имеет доступ по крайней мере на чтение,
// отсортируем список сначала по индексу сортировки, а потом
// по названию форума
$arFilter = array();
if (!$USER->IsAdmin())
{
  $arFilter["PERMS"] = array($USER->GetGroups(), 'A');
  $arFilter["ACTIVE"] = "Y";
}
$arOrder = array("SORT"=>"ASC", "NAME"=>"ASC");
$db_Forum = CForumNew::GetList($arOrder, $arFilter);
while ($ar_Forum = $db_Forum->Fetch())
{
  echo $ar_Forum["NAME"]."<br>";
}
?>


GetListEx

Форум>Классы>CForumNew>GetListEx (доступен с 3.3.3)

CForumNew::GetListEx

Описание и параметры

CDBResult
 CForumNew::GetList(
 array arOrder = Array("ID"=>"ASC"),
 array arFilter = Array(),
 boolbCount = false,
 intiNum = 0,
 array arAddParams = Array()
);

Возвращает список форумов (включая связанные данные) по фильтру arFilter, отсортированный в соответствии с arOrder. Метод статический.

Параметры функции

Параметр | Описание | C версии
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
ID - ID форума;
LID - язык форума;
NAME - название форума;
ACTIVE - активность;
MODERATION - модерируемость форума;
FORUM_GROUP_ID - ID группы форума;
TOPICS - количество тем в форуме;
POSTS - количество сообщений в форуме;
LAST_POST_DATE - дата последнего сообщения;
FORUM_GROUP_SORT - индекс сортировки группы, которой принадлежит форум;
SORT - индекс сортировки;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("SORT"=>"ASC")
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...]).
Подробное описание параметра смотрите в описании функции CForumNew::GetList.
bCount | Если параметр равен True, то возвращается только количество форумов, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False. | 11.5.1
iNum | Ограничение числа возвращаемых записей. Если параметр iNum отличен от нуля, то возвращается не более iNum записей. Поддерживается не для всех баз данных. Если параметр не поддерживается, то его установки игнорируются. Необязательный. По умолчанию равен 0. | 11.5.1
arAddParams | Массив параметров. Необязательное. По умолчанию записи не фильтруются. | 11.5.1

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • Поля форума

Примеры использования

<?
// выведем список форумов, к которым текущий посетитель
// имеет доступ по крайней мере на чтение,
// сгруппируем список по группам форумов,
// отсортируем список сначала по индексу сортировки, а потом
// по названию форума
$arFilter = array();
if (!$USER->IsAdmin())
{
  $arFilter["PERMS"] = array($USER->GetGroups(), 'A');
  $arFilter["ACTIVE"] = "Y";
}
$arOrder = array("SORT"=>"ASC", "NAME"=>"ASC");
$db_Forum = CForumNew::GetListEx($arOrder, $arFilter);
$currentGroupID = -1;
while ($db_Forum->NavNext(true, "f_", false)):
  if ($currentGroupID != IntVal($f_FORUM_GROUP_ID))
  {
    if (IntVal($f_FORUM_GROUP_ID)>0)
    {
      $arCurForumGroup = CForumGroup::GetLangByID($f_FORUM_GROUP_ID, LANG);
      echo "<b>";
      echo htmlspecialcharsex($arCurForumGroup["NAME"]);
      echo "<b><br>";
    }
    $currentGroupID = IntVal($f_FORUM_GROUP_ID);
  }
  echo $f_NAME."<br>";
endwhile;
?>


GetSites

Форум>Классы>CForumNew>GetSites (доступен с 3.3.7)

CForumNew::GetSites

array
CForumNew::GetSites(
 int ID
);

Функция возвращает ассоциативный массив, в котором ключами являются сайты, к которым привязан форум с кодом ID, а значениями - шаблоны пути к сообщению форума в соответствующем сайте. Метод статический.

Параметры функции

Параметр | Описание
ID | Код форума.

Примеры использования

// Для форума с кодом $FID получим массив реальных путей к сообщению
// с кодом $MID из темы с кодом $TID

$arForumPaths = CForumNew::GetSites($FID);
$arForumPathsCodes = array_keys($arForumPaths);
for ($i = 0; $i < count($arForumPathsCodes); $i++)
{
    $arForumPaths[$arForumPathsCodes[$i]] =
        CForumNew::PreparePath2Message($arForumPaths[$arForumPathsCodes[$i]],
                                       array("FORUM_ID"=>$FID,
                                             "TOPIC_ID"=>$TID,
                                             "MESSAGE_ID"=>$MID)
                                       );
}


Update

Форум>Классы>CForumNew>Update (доступен с 3.3.3)

CForumNew::Update

Описание и параметры

int
Update(
 int ID,
 array arFields,
 bool bReindex = true
);

Изменяет параметры существующего форума с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемого форума. Метод статический.

Параметры функции

Параметр | Описание | C версии
ID | Код форума, параметры которого необходимо изменить. |
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей форума. |
bReindex | Необязательный. По умолчанию равен True. | 10.0.2

Возвращаемое значение

Возвращает код измененного форума. В случае ошибки изменения возвращает False.

Смотрите также

  • Поля форума
  • Перед изменением форума следует проверить возможность изменения методом CanUserUpdateForum

Примеры использования

<?
// Этот код привязывает сайт с кодом $site_code к форуму $FORUM_ID и прописывает "Шаблон пути к сообщению на сайте" в виде $FORUM_PATH

$arFields = array("ACTIVE" => "Y", "SITES" => CForumNew::GetSites($FORUM_ID));
$arFields["SITES"][$site_code] = str_replace("#SITE_PATH#", $site_path, $FORUM_PATH);
CForumNew::Update($FORUM_ID, $arFields);

?>


Класс CForumPMFolder

CForumPMFolder - класс для работы папками пользователя.

Методы класса

Метод | Описание | C версии
Add | Создание новой папки пользователя. | 4.0.3
Delete | Удаление папки пользователя. | 4.0.3
GetList | Получение списка папок с возможностью фильтрации и сортировки. | 4.0.3
Update | Изменение параметров папки пользователя. | 4.0.3


Add

Форум>Классы>CForumPMFolder>Add (доступен с 4.0.3)

CForumPMFolder::Add

int Add(
 string Title
);

Создает новую папку с названием, указанным в Title. Возвращает код созданной папки. Метод статический.

Параметры функции

Параметр | Описание
Title | Название папки. Обязательный параметр.

Возвращаемое значение

Возвращает код созданного сообщения. В случае ошибки добавления возвращает False.

Смотрите также

  • таблица "Папка пользователя"

Примеры использования

<?
$ID = CForumPMFolder::Add($TITLE);
if (IntVal($ID)<=0)
  echo "Error!";
?>


Delete

Форум>Классы>CForumPMFolder>Delete (доступен с 4.0.3)

CForumPMFolder::Delete

bool
Delete(
 int ID
);

Удаляет папку пользователя с кодом ID. Метод статический.

Параметры функции

Параметр | Описание
ID | Код папки пользователя, которую необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.


GetList

Форум>Классы>CForumPMFolder>GetList (доступен с 4.0.3)

CForumPMFolder::GetList

Описание и параметры

CDBResult
GetList(
 [array arOrder [,
 array arFilter [,
 bool bCount ]]]
);

Возвращает список сообщений по фильтру arFilter, отсортированый в соответствии с arOrder. Метод статический.

Параметры функции

Параметр | Описание
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где
by - поле для сортировки, может принимать значения
ID - ID сообщения;
USER_ID - ID владельца папки;
TITLE - имя папки пользователя;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("ID"=>"ASC")
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения

ID - ID сообщения;
USER_ID - ID владельца папки;
TITLE - имя папки пользователя;

фильтруемое поле может содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Обязательное.
bCount | Если параметр равен True, то возвращается только количество сообщений, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False.

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • таблица "Папка пользователя"


Update

Форум>Классы>CForumPMFolder>Update (доступен с 4.0.3)

CForumPMFolder::Update

int
Update(
 int ID,
 array arFields
);

Изменяет параметры существующей папки пользователя с кодом ID на параметры, указанные в массиве arFields. Метод статический.

Параметры функции

Параметр | Описание
ID | Код папки пользователя, параметры которой необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Папка пользователя".

Возвращаемое значение

Возвращает код измененного сообщения. В случае ошибки изменения возвращает False.

Смотрите также

  • таблица "Папка пользователя"


Класс CForumPoints

CForumPoints - класс для работы со званиями (статусами пользователей) форума.

Методы класса

Метод | Описание | C версии
GetList | Получение списка званий с возможностью фильтрации и сортировки. | 3.3.7
GetListEx | Получение списка званий (включая языкозависимые параметры звания) с возможностью фильтрации и сортировки. | 3.3.7
GetByID | Получение параметров звания по его коду. | 3.3.7
GetByIDEx | Получение параметров звания вместе с языкозависимыми параметрами по его коду. | 3.3.7
Add | Добавление нового звания. | 3.3.7
Update | Изменение параметров звания. | 3.3.7
Delete | Удаление звания. | 3.3.7
GetLangByID | Получение языкозависимых параметров звания. | 3.3.7


GetList

Форум>Классы>CForumPoints>GetList (доступен с 3.3.7)

CForumPoints::GetList

Описание и параметры

CDBResult
CForumPoints::GetList(
 array arOrder = array("MIN_POINTS"=>"ASC"),
 array arFilter = array()
);

Возвращает звания форума, которые удовлетворяют фильтру arFilter, упорядоченные в соответствии с порядком arOrder. Метод нестатический.

Параметры функции

Параметр Описание
arOrder

Порядок сортировки записей; представляет собой ассоциативный массив, в котором ключами являются названия параметров звания, а значениями - направления сортировки.

Допустимые параметры звания для сортировки:
ID - код звания
CODE - символьный код
VOTES - количество голосов при голосовании
MIN_POINTS - количество баллов, которые нужны для достижения этого звания
arFilter

Фильтр на возвращаемые звания; представляет собой ассоциативный массив, в котором ключами являются названия параметров звания, а значениями - условия на эти параметры.

Допустимые параметры звания для фильтрации:
ID - код звания
CODE - символьный код
MIN_POINTS - количество баллов, которые нужны для достижения этого звания.

Возвращаемые значения

Возвращается объект класса CDBResult, каждая запись которого представляет собой массив с ключами

Ключ | Значение
ID | Код звания.
MIN_POINTS | Количество баллов, необходимое для получения этого звания.
CODE | Символьный код.
VOTES | Количество голосов, которое имеет пользователь с этим званием.

Примеры использования

// Сортировка по количеству голосов по убыванию
// при равном количестве голосов сортировка по ID по возрастанию
$arOrder = array("VOTES"=>"DESC", "ID"=>"ASC");
// Фильтр указывает, что нужно выбирать только те звания
// для получения которых нужно как минимум 50 баллов
$arFilter = array(">=MIN_POINTS"=>50);
$db_res = CForumPoints::GetList($arOrder, $arFilter);
while ($ar_res = $db_res->Fetch())
{
   echo $ar_res["ID"]."-".$ar_res["VOTES"]."<br>";
}


GetListEx

Форум>Классы>CForumPoints>GetListEx (доступен с 3.3.7)

CForumPoints::GetListEx

Описание и параметры

CDBResult
CForumPoints::GetListEx(
 array arOrder = array("MIN_POINTS"=>"ASC"),
 array arFilter = array()
);

Возвращает звания форума, которые удовлетворяют фильтру arFilter, упорядоченные в соответствии с порядком arOrder. Метод нестатический.

Параметры функции

Параметр Описание
arOrder

Порядок сортировки записей; представляет собой ассоциативный массив, в котором ключами являются названия параметров звания, а значениями - направления сортировки.

Допустимые параметры звания для сортировки:
ID - код звания
CODE - символьный код
VOTES - количество голосов при голосовании
MIN_POINTS - количество баллов, которые нужны для достижения этого звания
arFilter

Фильтр на возвращаемые звания; представляет собой ассоциативный массив, в котором ключами являются названия параметров звания, а значениями - условия на эти параметры.

Допустимые параметры звания для фильтрации:
LID - код языка (должен присутствовать в фильтре)
ID - код звания
CODE - символьный код
MIN_POINTS - количество баллов, которые нужны для достижения этого звания.

Возвращаемые значения

Возвращается объект класса CDBResult, каждая запись которого представляет собой массив с ключами

Ключ | Значение
ID | Код звания.
MIN_POINTS | Количество баллов, необходимое для получения этого звания.
CODE | Символьный код.
VOTES | Количество голосов, которое имеет пользователь с этим званием.
LID | Код языка.
NAME | Название звания на языке LID

Примеры использования

// Сортировка по количеству голосов по убыванию
// при равном количестве голосов сортировка по ID по возрастанию
$arOrder = array("VOTES"=>"DESC", "ID"=>"ASC");

// Фильтр указывает, что нужно выбирать только те звания
// для получения которых нужно как минимум 50 баллов
$arFilter = array("LID"=>"ru", ">=MIN_POINTS"=>50);
$db_res = CForumPoints::GetList($arOrder, $arFilter);
while ($ar_res = $db_res->Fetch())
{
    echo $ar_res["NAME"]."-".$ar_res["VOTES"]."<br>";
}


GetByID

Форум>Классы>CForumPoints>GetByID (доступен с 3.3.7)

CForumPoints::GetByID

Описание и параметры

array
CForumPoints::GetByID(
 int ID
);

Возвращает массив параметров звания (рейтинга) форума по его коду. Метод нестатический.

Параметры функции

Параметр | Описание
ID | Код звания.

Возвращаемые значения

Возвращает ассоциативный массив с ключами

Ключ | Значение
ID | Код звания.
MIN_POINTS | Количество баллов, необходимое для получения этого звания.
CODE | Символьный код.
VOTES | Количество голосов, которое имеет пользователь с этим званием.

Примеры использования

<?

$ar_res = CForumPoints::GetByID(3);
echo "Пользователь с этим званием может отдать ".$ar_res["VOTES"]." голос(ов)";
?>


GetByIDEx

Форум>Классы>CForumPoints>GetByIDEx (доступен с 3.3.7)

CForumPoints::GetByIDEx

Описание и параметры

array
CForumPoints::GetByIDEx(
 int ID,
 string strLang
);

Возвращает массив параметров звания (рейтинга) форума по его коду включая языкозависимые параметры. Метод нестатический.

Параметры функции

Параметр | Описание
ID | Код звания.
strLang | Код языка.

Возвращаемые значения

Возвращает ассоциативный массив с ключами

Ключ | Значение
ID | Код звания.
MIN_POINTS | Количество баллов, необходимое для получения этого звания.
CODE | Символьный код.
VOTES | Количество голосов, которое имеет пользователь с этим званием.
LID | Код языка.
NAME | Название звания на языке LID.

Примеры использования

<?
$ar_res = CForumPoints::GetByIDEx(3, "ru");
echo "Пользователи со званием ".$ar_res["NAME"]." могут отдать ".$ar_res["VOTES"]." голосов";
?>


Add

Форум>Классы>CForumPoints>Add (доступен с 3.3.7)

CForumPoints::Add

int
CForumPoints::Add(
 array arFields
);

Функция добавляет новое звание (рейтинг) в систему званий форума. Метод нестатический.

Параметры функции

Параметр | Описание
arFields | Массив атрибутов звания.

Возвращаемые значения

Код добавленного звания или false в случае ошибки.


Update

Форум>Классы>CForumPoints>Update (доступен с 3.3.7)

CForumPoints::Update

int
CForumPoints::Update(
 int ID,
 array arFields
);

Изменяет параметры звания с кодом ID на значения, указанные в массиве arFields. Метод нестатический.

Параметры функции

Параметр | Описание
ID | Код звания.
arFields | Массив новых значений параметров звания.

Возвращаемые значения

Функция возвращает код изменяемого звания или false в случае ошибки.


Delete

Форум>Классы>CForumPoints>Delete (доступен с 3.3.7)

CForumPoints::Delete

bool
CForumPoints::Delete(
 int ID
);

Удаляет звание (рейтинг) с кодом ID из системы званий форума. Метод нестатический.

Параметры функции

Параметр | Описание
ID | Код звания для удаления.

Возвращаемые значения

Возвращает True.


GetLangByID

Форум>Классы>CForumPoints>GetLangByID (доступен с 3.3.7)

CForumPoints::GetLangByID

Описание и параметры

array
CForumPoints::GetLangByID(
 int POINTS_ID,
 string strLang
);

Возвращает массив языкозависимых параметров звания (рейтинга) форума по его коду. Метод нестатический.

Параметры функции

Параметр | Описание
POINTS_ID | Код звания.
strLang | Код языка.

Возвращаемые значения

Возвращает ассоциативный массив с ключами.

Ключ | Значение
POINTS_ID | Код звания.
LID | Код языка.
NAME | Название звания на языке LID.

Примеры использования

<?
$ar_res = CForumPoints::GetLangByID(3, "ru");
echo "Звание с кодом ".$ar_res["POINTS_ID"]." на русском языке называется ".$ar_res["NAME"]."";
?>


Класс CForumPoints2Post

CForumPoints2Post - класс для работы с картой соответствий между количеством сообщений пользователя на форуме и количеством балов, которые пользователь получает за каждое сообщение.

Методы класса

Метод | Описание | С версии
GetList | Получение списка записей в карте соответствий с возможностью фильтрации и сортировки. | 3.3.7
GetByID | Получение параметров записи по ее коду. | 3.3.7
Add | Добавление новой записи. | 3.3.7
Update | Изменение параметров записи. | 3.3.7
Delete | Удаление записи. | 3.3.7


GetList

Форум>Классы>CForumPoints2Post>GetList (доступен с 3.3.7)

CForumPoints2Post::GetList

Описание и параметры

CDBResult
CForumPoints2Post::GetList(
 array arOrder = array("MIN_NUM_POSTS"=>"ASC"),
 array arFilter = array()
);

Возвращает записи в таблице соответствий между количеством сообщений пользователя на форуме и количеством балов за одно сообщение, которые удовлетворяют фильтру arFilter, упорядоченные в соответствии с порядком arOrder. Метод нестатический.

Параметры функции

Параметр Описание
arOrder

Порядок сортировки записей; представляет собой ассоциативный массив, в котором ключами являются названия параметров записи, а значениями - направления сортировки.

Допустимые параметры записи для сортировки:
ID - код записи
MIN_NUM_POSTS - количество сообщений, которое пользователь должен написать на форуме для получения этого количества балов за одно сообщение
POINTS_PER_POST - Количество балов за одно сообщение

arFilter

Фильтр на возвращаемые записи; представляет собой ассоциативный массив, в котором ключами являются названия параметров записи, а значениями - условия на эти параметры.

Допустимые параметры записи для фильтрации:
ID - код записи
MIN_NUM_POSTS - количество сообщений, которое пользователь должен написать на форуме для получения этого количества балов за одно сообщение.

Возвращаемые значения

Возвращяется объект класса CDBResult, каждая запись которого представляет собой массив с ключами.

Ключ | Значение
ID | Код записи.
MIN_NUM_POSTS | количество сообщений, которое пользователь должен написать на форуме для получения этого количества балов за одно сообщение.
POINTS_PER_POST | Количество балов за одно сообщение. Может иметь как целое значение, так и дробное: 2 - два бала за каждое сообщение 0.1 - одна десятая бала за каждое сообщение.


GetByID

Форум>Классы>CForumPoints2Post>GetByID (доступен с 3.3.7)

CForumPoints2Post::GetByID

array
CForumPoints2Post::GetByID(
 int ID
);

Возвращает массив параметров записи в таблицу соответствий между количеством сообщений пользователя на форуме и количеством балов за одно сообщение по ее коду. Метод нестатический.

Параметры функции

Параметр | Описание
ID | Код записи.

Возвращаемые значения

Возвращает ассоциативный массив с ключами.

Ключ | Значение
ID | Код записи.
MIN_NUM_POSTS | Количество сообщений, которое пользователь должен написать на форуме для получения этого количества балов за одно сообщение.
POINTS_PER_POST | Количество балов за одно сообщение. Может иметь как целое значение, так и дробное: 2 - два бала за каждое сообщение 0.1 - одна десятая бала за каждое сообщение.


Add

Форум>Классы>CForumPoints2Post>Add (доступен с 3.3.7)

CForumPoints2Post::Add

int
CForumPoints2Post::Add(
 array arFields
);

Функция добавляет новую запись в таблицу соответствий между количеством сообщений пользователя на форуме и количеством баллов за одно сообщение. Метод нестатический.

Параметры функции

Параметр | Описание
arFields | Массив параметров записи.

Возвращаемые значения

Функция возвращает код вставленной записи или false в случае ошибки.


Update

Форум>Классы>CForumPoints2Post>Update (доступен с 3.3.7)

CForumPoints2Post::Update

int
CForumPoints2Post::Update(
 int ID,
 array arFields
);

Изменяет параметры записи с кодом ID в таблице соответствий между количеством сообщений пользователя на форуме и количеством баллов за одно сообщение на значения, указанные в массиве arFields. Метод нестатический.

Параметры функции

Параметр | Описание
ID | Код изменяемой записи.
arFields | Массив новых значений параметров записи.

Возвращаемые значения

Функция возвращает код записи или false в случае ошибки.


Delete

Форум>Классы>CForumPoints2Post>Delete (доступен с 3.3.7)

CForumPoints2Post::Delete

bool
CForumPoints2Post::Delete(
 int ID
);

Удаляет запись с кодом ID из таблицы соответствий между количеством сообщений пользователя на форуме и количеством баллов за одно сообщение. Метод нестатический.

Параметры функции

Параметр | Описание
ID | Код записи.

Возвращаемые значения

Функция возвращает значение True.


Класс CForumPrivateMessage

CForumPrivateMessage - класс для работы с приватными сообщениями.

Методы класса

Метод | Описание | C версии
Delete | Удаление сообщения. | 4.0.3
GetList | Получение списка сообщений с возможностью фильтрации и сортировки. | 4.0.3
GetByID | Получение параметров сообщения по его коду. | 4.0.3
Send | Добавление (отправка) нового сообщения. | 4.0.3
Update | Изменение параметров сообщения. | 4.0.3
GetNewPM | Получение количества непрочитанных персональных сообщений. | 4.0.3


Delete

Форум>Классы>CForumPrivateMessage>Delete (доступен с 4.0.3)

CForumPrivateMessage::Delete

bool
Delete(
 int ID
);

Удаляет сообщение с кодом ID. Метод статический.

Параметры функции

Параметр | Описание
ID | Код сообщения, которое необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.


GetList

Форум>Классы>CForumPrivateMessage>GetList (доступен с 4.0.3)

CForumPrivateMessage::GetList

Описание и параметры

CDBResult
  GetList(
 [array arOrder [,
 array arFilter [,
 bool bCount ]]]
);

Возвращает список сообщений по фильтру arFilter, отсортированый в соответствии с arOrder. Метод статический.

Параметры функции

Параметр | Описание
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
ID - ID сообщения;
AUTHOR_ID - ID автора сообщения;
POST_DATE - дата создания сообщения;
POST_SUBJ - тема сообщения;
POST_MESSAGE - текст сообщения;
USER_ID - ID получателя сообщения (владельца);
FOLDER_ID - ID папки;
IS_READ - метка о прочтении сообщения;
USE_SMILES - метка о разрешении использования смайликов как рисунков;
AUTHOR_NAME - имя автора сообщения;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("ID"=>"ASC")
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения
ID - ID сообщения;
AUTHOR_ID - ID автора сообщения;
POST_SUBJ - тема сообщения;
POST_MESSAGE - текст сообщения;
USER_ID - ID получателя сообщения (владельца);
FOLDER_ID - ID папки;
IS_READ - метка о прочтении сообщения;

фильтруемое поле может содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Обязательное.
bCount | Если параметр равен True, то возвращается только количество сообщений, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False.

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • таблица "Приватное сообщение"


GetByID

Форум>Классы>CForumPrivateMessage>GetByID (доступен с 4.0.3)

CForumPrivateMessage::GetByID

array
GetByID(
 int ID
);

Возвращает массив параметров сообщения по его коду ID. Метод статический.

Параметры функции

Параметр | Описание
ID | Код сообщения.

Возвращаемое значение

Массив параметров сообщения. Если сообщение не найдено, то возвращается значение false.

Смотрите также

  • таблица "Приватное сообщение"

Примеры использования

<?
$arMessage = CForumPrivateMessage::GetByID($MID);
if ($arMessage)
{
  $AUTHOR_ID = IntVal($arMessage["AUTHOR_ID"]);
  $USER_ID = IntVal($arMessage["USER_ID"]);
}
?>


Send

Форум>Классы>CForumPrivateMessage>Send (доступен с 4.0.3)

CForumPrivateMessage::Send

Описание и параметры

int Send(
 array arFields
);

Создает новое сообщение с параметрами, указанными в массиве arFields. Возвращает код созданного сообщения. Метод статический.

Параметры функции

Параметр | Описание
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Приватное сообщение". Обязательные поля должны быть заполнены.

Возвращаемое значение

Возвращает код созданного сообщения. В случае ошибки добавления возвращает False.

Смотрите также

  • таблица "Приватное сообщение"

Примеры использования

<?
$arFields = Array(
    "AUTHOR_ID"    => $AUTHOR_ID,
    "POST_DATE"    => $POST_DATE,
    "POST_SUBJ"    => $POST_SUBJ,
    "POST_MESSAGE" => $POST_MESSAGE,
    "USER_ID"      => $USER_ID,
    "FOLDER_ID"    => 1,
    "IS_READ"      => "N",
    "USE_SMILES"   => ($USE_SMILES=="Y") ? "Y" : "N",
    "AUTHOR_NAME"  => $AUTHOR_NAME
);
$ID = CForumPrivateMessage::Send($arFields);
if (IntVal($ID)<=0)
  echo "Error!";
?>


GetNewPM

Форум>Классы>CForumPrivateMessage>GetNewPM (доступен с 4.0.3)

CForumPrivateMessage::GetNewPM

array
ClassName::GetNewPM(
 bool FOLDER_ID = false
);

Позволяет получить количество непрочитанных персональных сообщений. Метод статический.

Параметры функции

Параметр | Описание | С версии
FOLDER_ID | Идентификатор папки. Необязательный. По умолчанию равен False. | 8.0.2

Возвращаемое значение

Возвращается массив с единственным ключом UNREAD_PM


Update

Форум>Классы>CForumPrivateMessage>Update (доступен с 4.0.3)

CForumPrivateMessage::Update

int
Update(
 int ID,
 array arFields
);

Изменяет параметры существующего сообщения с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемого сообщения. Метод статический.

Параметры функции

Параметр | Описание
ID | Код сообщения, параметры которого необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей таблицы "Приватное сообщение".

Возвращаемое значение

Возвращает код измененного сообщения. В случае ошибки изменения возвращает False.

Смотрите также

  • таблица "Приватное сообщение"


Класс CForumSmile

CForumSmile - класс для работы со смайлами.

Методы класса

Метод | Описание | C версии
GetList | Получение списка смайлов с возможностью фильтрации и сортировки. | 3.3.3
GetByID | Получение параметров смайла, не зависящих от языка, по его коду. | 3.3.3
GetByIDEx | Получение всех параметров смайла по его коду и языку. | 3.3.3
GetLangByID | Получение языковых параметров смайла по его коду и языку. | 3.3.3
Add | Добавление нового смайла. | 3.3.3
Update | Изменение параметров смайла. | 3.3.3
Delete | Удаление смайла. | 3.3.3


GetList

Форум>Классы>CForumSmile>GetList (доступен с 3.3.3)

CForumSmile::GetList

Описание и параметры

CDBResult
GetList(
 [array arOrder [,
 array arFilter]]
);

Возвращает список смайлов по фильтру arFilter, отсортированый в соответствии с arOrder. Метод статический.

Параметры функции

Параметр Описание
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
ID - ID смайла;
SORT - индекс сортировки;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("SORT"=>"ASC")
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения
ID - ID смайла;
SORT - индекс сортировки;

фильтруемое поле может иметь содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Необязательное. По умолчанию записи не фильтруются.

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • Поля смайла


GetByID

Форум>Классы>CForumSmile>GetByID (доступен с 3.3.3)

CForumSmile::GetByID

array
GetByID(
 int ID
);

Возвращает массив параметров смайла, которые не зависят от языка, по его коду ID. Метод статический.

Параметры функции

Параметр | Описание
ID | Код смайла.

Возвращаемое значение

Массив параметров смайла. Если смайл не найден, то возвращается значение false.

Смотрите также

  • Поля смайла


GetByIDEx

Форум>Классы>CForumSmile>GetByIDEx (доступен с 3.3.3)

CForumSmile::GetByIDEx

array
GetByIDEx(
 int ID,
 char(2) strLang
);

Возвращает массив всех параметров смайла по его коду ID и языку LANG. Метод статический.

Параметры функции

Параметр | Описание
ID | Код смайла.
strLang | Язык сайта.

Возвращаемое значение

Массив всех параметров смайла. Если смайл не найден, то возвращается значение false.

Смотрите также

  • Поля смайла


GetLangByID

Форум>Классы>CForumSmile>GetLangByID (доступен с 3.3.3)

CForumSmile::GetLangByID

array
GetLangByID(
 int SMILE_ID,
 char(2) strLang
);

Возвращает массив языковых параметров смайла по его коду RANK_ID и языку LANG. Метод статический.

Параметры функции

Параметр | Описание
SMILE_ID | Код смайла.
strLang | Язык сайта.

Возвращаемое значение

Массив языковых параметров смайла. Если смайл не найден, то возвращается значение false.

Смотрите также

  • Поля смайла


Add

Форум>Классы>CForumSmile>Add (доступен с 3.3.3)

CForumSmile::Add

int
Add(
 array arFields
);

Создает новый смайл с параметрами, указанными в массиве arFields. Возвращает код созданного смайла. Метод статический.

Параметры функции

Параметр | Описание
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей смайла. В специальное поле "LANG" заносится массив массивов полей языковых параметров смайла, которые имеют аналогичную структуру. Обязательные поля должны быть заполнены.

Возвращаемое значение

Возвращает код созданного смайла. В случае ошибки добавления возвращает False.

Смотрите также

  • Поля смайла


Update

Форум>Классы>CForumSmile>Update (доступен с 3.3.3)

CForumSmile::Update

int
Update(
 int ID,
 array arFields
);

Изменяет параметры существующего смайла с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемого смайла. Метод статический.

Параметры функции

Параметр | Описание
ID | Код смайла, параметры которого необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей смайла. В специальное поле "LANG" заносится массив массивов полей языковых параметров звания, которые имеют аналогичную структуру.

Возвращаемое значение

Возвращает код измененного смайла. В случае ошибки изменения возвращает False.

Смотрите также

  • Поля смайла


Delete

Форум>Классы>CForumSmile>Delete (доступен с 3.3.3)

CForumSmile::Delete

bool
Delete(
 int ID
);

Удаляет смайл с кодом ID. Метод статический.

Параметры функции

Параметр | Описание
ID | Код смайла, который необходимо удалить.

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.


Класс CForumSubscribe

CForumSubscribe - класс для работы с подпиской на новые сообщения форума и темы.

Методы класса

Метод | Описание | C версии
GetList | Получение списка подписки с возможностью фильтрации и сортировки. | 3.3.3
GetListEx | Получение списка подписки с возможностью фильтрации и сортировки. Дополнительно выбирает Email подписчика и имеет дополнительные возможности фильтрации. | 3.3.3
Add | Добавление новой подписки. | 3.3.3
Delete | Удаление подписки. | 3.3.3
CanUserAddSubscribe | Всесторонне проверяет, может ли пользователь добавить новую подписку. | 3.3.3
CanUserDeleteSubscribe | Всесторонне проверяет, может ли пользователь удалить подписку. | 3.3.3


GetList

Форум>Классы>CForumSubscribe>GetList (доступен с 3.3.3)

CForumSubscribe::GetList

Описание и параметры

CDBResult
 CForumSubscribe::GetList(
 array arOrder = Array("ID"=>"ASC"),
 array arFilter = Array(),
 array arAddParams = Array()
);

Возвращает список подписок по фильтру arFilter, отсортированный в соответствии с arOrder. Метод статический.

Параметры функции

Параметр | Описание | С версии
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
ID - ID подписки;
FORUM_ID - ID форума;
USER_ID - ID подписанного пользователя;
TOPIC_ID - ID темы;
START_DATE - дата подписки;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("ID"=>"ASC").
arFilter Массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения
ID - ID подписки;
USER_ID - ID подписанного пользователя;
FORUM_ID - ID форума;
TOPIC_ID - ID темы;
TOPIC_ID_OR_NULL - ID темы или NULL (проверка только на "равно");
LAST_SEND - ID последнего отправленного сообщения;
LAST_SEND_OR_NULL - ID последнего отправленного сообщения или NULL (проверка только на "меньше").

Фильтруемое поле может иметь содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно
Необязательное. По умолчанию записи не фильтруются.
arAddParams | Массив параметров. | 12.5.0

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • Поля подписки


GetListEx

Форум>Классы>CForumSubscribe>GetListEx (доступен с 3.3.3)

CForumSubscribe::GetListEx

Описание и параметры

CDBResult
CForumSubscribe::GetListEx(
 array arOrder = array("ID"=>"ASC"),
 array arFilter = array()
);

Возвращает записи из таблицы подписки на сообщения форума удовлетворяющие фильтру arFilter и упорядоченные в соответствии с сортировкой arOrder. С каждой записью идет email пользователя, которому принадлежит эта запись (т.е. email подписчика). Метод статический.

Параметры функции

Параметр Описание
arOrder

Порядок сортировки записей; представляет собой ассоциативный массив, в котором ключами являются названия параметров записей, а значениями - направления сортировки.

Допустимые параметры записи для сортировки:
ID - код записи
FORUM_ID - код форума, на сообщения которого осуществлена подписка
USER_ID - код пользователя-подписчика
TOPIC_ID - код темы, на сообщения которой осуществлена подписка
START_DATE - дата начала подписки
arFilter

Фильтр на возвращаемые записи; представляет собой ассоциативный массив, в котором ключами являются названия параметров записи, а значениями - условия на эти параметры.

Допустимые параметры записи для фильтрации:
ID - код подписки
USER_ID - код пользователя-подписчика
FORUM_ID - код форума, на сообщения которого осуществлена подписка
TOPIC_ID - код темы, на сообщения которой осуществлена подписка
TOPIC_ID_OR_NULL - код темы, на сообщения которой осуществлена подписка, включая пустые значения
NEW_TOPIC_ONLY - флаг, определяющий подписку только на новые темы (допустимые значения Y/N)
LAST_SEND - код последнего отправленного по данной подписке сообщения
LAST_SEND_OR_NULL - код последнего отправленного по данной подписке сообщения, включая пустые значения
PERMISSION - минимальное право на доступ к форуму, на сообщения которого осуществлена подписка

Возвращаемое значение

Возвращяется объект класса CDBResult, каждая запись которого представляет собой массив с ключами

Ключ | Значение
ID | Код подписки.
USER_ID | Код пользователя-подписчика.
FORUM_ID | Код форума, на сообщения которого осуществлена подписка.
TOPIC_ID | Код темы, на сообщения которой осуществлена подписка.
LAST_SEND | Код последнего отправленного по подписке сообщения.
NEW_TOPIC_ONLY | Флаг, означающий подписку только на новые темы (значения Y/N)
SITE_ID | Код сайта, на котором осуществлена подписка.
START_DATE | Дата подписки.
EMAIL | Email адрес пользователя-подписчика.

Смотрите также

  • CDBResult
  • Поля подписки

    • © «Битрикс», 2001-2008, «1C-Битрикс», 2008-2022 1С-Битрикс: Управление сайтом


Add

Форум>Классы>CForumSubscribe>Add (доступен с 3.3.3)

CForumSubscribe::Add

Описание и параметры

int
Add(
  array arFields
);

Создает новую запись в таблице подписки с параметрами, указанными в массиве arFields. Возвращает код созданной записи. Метод статический.

Параметры функции

Параметр | Описание
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей подписки. Обязательные поля должны быть заполнены.

Возвращаемое значение

Возвращает код созданной записи. В случае ошибки добавления возвращает False.

Смотрите также

  • Поля подписки
  • Перед добавлением подписки следует проверить возможность добавления методом CForumSubscribe::CanUserAddSubscribe

Пример

Пример подписки для текущего авторизованного пользователя

CForumSubscribe::Add(array(
   "USER_ID" => $USER->GetID(),
   "FORUM_ID" => $arParams["FORUM_ID"],
   "TOPIC_ID" => $arResult["TOPIC_ID"],
   "SITE_ID" => SITE_ID));


Delete

Форум>Классы>CForumSubscribe>Delete (доступен с 3.3.3)

CForumSubscribe::Delete

bool
Delete(
 int ID
);

Удаляет подписку с кодом ID. Метод статический.

Параметры функции

Параметр | Описание
ID | Код подписки, которую необходимо удалить.

Возвращаемое значение

Возвращает объект CDBResult.

Смотрите также

  • Перед удалением подписки следует проверить возможность удаления методом CForumSubscribe::CanUserDeleteSubscribe

Пример

if (CModule::IncludeModule("forum"))
{
   $db_res = CForumSubscribe::Delete(1);
   ?><pre><b>$db_res->AffectedRowsCount(): </b><?print_r($db_res->AffectedRowsCount())?></pre><?
}


CanUserAddSubscribe

Форум>Классы>CForumSubscribe>CanUserAddSubscribe (доступен с 3.3.3)

CForumSubscribe::CanUserAddSubscribe

bool
CanUserAddSubscribe(
 int FID,
 array arUserGroups,
);

Всесторонне проверяет, может ли пользователь, входящий в группы arUserGroups, добавить новую подписку на этот форум. Метод нестатический.

Параметры функции

Параметр | Описание
FID | ID форума, на который пользователь хочет добавить новую подписку.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()

Возвращаемое значение

Возвращает True, если пользователь имеет право на добавление подписки. В противном случае возвращается значение False.

Смотрите также

  • CForumSubscribe::CanUserDeleteSubscribe


CanUserDeleteSubscribe

Форум>Классы>CForumSubscribe>CanUserDeleteSubscribe (доступно с 3.3.3)

CForumSubscribe::CanUserDeleteSubscribe

bool
  CanUserDeleteSubscribe(
 int ID,
 array arUserGroups,
 int CurrentUserID = 0
);

Всесторонне проверяет, может ли пользователь с кодом CurrentUserID, входящий в группы arUserGroups, удалить подписку с кодом ID. Метод статический.

Параметры функции

Параметр | Описание
ID | Код подписки, которую пользователь хочет удалить.
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
CurrentUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID()

Возвращаемое значение

Возвращает True, если пользователь имеет все права на удаление подписки. В противном случае возвращается значение false.

Смотрите также

  • CForumSubscribe::CanUserAddSubscribe


Класс CForumTopic

CForumTopic - класс для работы с темами форумов.

Методы класса

Метод | Описание | C версии
GetList | Получение списка тем с возможностью фильтрации и сортировки. | 3.3.3
GetListEx | Получение списка тем (включая связаные данные) с возможностью фильтрации и сортировки. | 3.3.3
GetByID | Получение параметров темы по ее коду. | 3.3.3
GetByIDEx | Получение параметров темы вместе со связаными данными по ее коду. | 3.3.3
Add | Добавление новой темы. | 3.3.3
Update | Изменение параметров темы. | 3.3.3
Delete | Удаление темы. | 3.3.3
CanUserAddTopic | Всесторонне проверяет, может ли пользователь добавить новую тему. | 3.3.3
CanUserUpdateTopic | Всесторонне проверяет, может ли пользователь изменить тему. | 3.3.3
CanUserDeleteTopic | Всесторонне проверяет, может ли пользователь удалить тему. | 3.3.3
GetNeighboringTopics | Возвращает для данной темы коды предыдущей и следующей тем. | 3.3.3
MoveTopic2Forum | Переносит тему в другой форум. | 3.3.3


GetList

Форум>Классы>CForumTopic>GetList (доступно с 3.3.3)

CForumTopic::GetList

Описание и параметры

CDBResult
 CForumTopic::GetList(
 array arOrder = Array("ID"=>"ASC"),
 array arFilter = Array(),
 bool bCount = false,
 int iNum = 0,
 array arAddParams = Array()
);

Возвращает список тем по фильтру arFilter, отсортированый в соответствии с arOrder. Метод статический.

Параметры функции

Параметр | Описание | C версии
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
ID - ID темы;
TITLE - заголовок темы;
STATE - состояние темы;
USER_START_ID - ID пользователя, который создал тему;
USER_START_NAME - имя пользователя, который создал тему;
START_DATE - дата создания темы;
POSTS - количество ответов в теме;
VIEWS - количество просмотров темы;
APPROVED - опубликованность темы;
LAST_POST_DATE - дата последнего сообщения в теме;
SORT - индекс сортировки;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("SORT"=>"ASC")
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения:
    STATE - состояние темы;
    FORUM_ID - ID форума;
    ID - ID темы;
    APPROVED - опубликованность;
    LAST_POST_DATE - дата последнего сообщения в теме;
    USER_START_ID - ID автора темы.
фильтруемое поле может иметь содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

При необходимости фильтрации $key => array() для полей типа:
ID,
USER_START_ID,
SOCNET_GROUP_ID,
OWNER_ID,
FORUM_ID,
SORT,
POSTS,
TOPICS
перед названием тип проверки фильтра необходимо указывать @. Пример:

$topicsDb = CForumTopic::GetList(array("SORT"=>"ASC", "TITLE"=>"NAME";) , array("@FORUM_ID"=>$forumIDs));
while ($arTopic = $topicsDb->Fetch()){
    $arTopicsIds[] = $arTopic["ID"];

Необязательное. По умолчанию записи не фильтруются.
bCount | Если параметр равен True, то возвращается только количество тем, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False.
iNum | Ограничение числа возвращаемых записей. Если параметр iNum отличен от нуля, то возвращается не более iNum записей. Поддерживается не для всех баз данных. Если параметр не поддерживается, то его установки игнорируются. Необязательный. По умолчанию равен 0.
arAddParams | Массив параметров. | 4.0.3

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • Поля темы

Примеры использования

<?
// выберем все опубликованные темы форума с кодом $FID,
// отсортированные сначала по индексу сортировки, а потом
// по дате последнего сообщения в теме
$db_res = CForumTopic::GetList(array("SORT"=>"ASC", "LAST_POST_DATE"=>"DESC"), array("FORUM_ID"=>$FID));
while ($ar_res = $db_res->Fetch())
{
  echo htmlspecialcharsbx($ar_res["TITLE"])."<br>";
}
?>

<?
// Если нужно выбрать темы по массиву их ID, то пишем перед ID символ "@":
$filter = array("@ID"=>array(10,5,23,111),"APPROVED"=>"Y");
$rs = CForumTopic::GetList(array("SORT"=>"ASC","LAST_POST_DATE"=>"DESC"),$filter);
while($topic = $rs->fetch())
{
    $arResult["TOPICS"][] = $topic;
}
?>


GetListEx

Форум>Классы>CForumTopic>GetListEx (доступно с 3.3.3)

CForumTopic::GetListEx

Описание и параметры

CDBResult
 CForumTopic::GetListEx(
 array arOrder = Array("ID"=>"ASC"),
 array arFilter = Array(),
 bool bCount = false,
 int iNum = 0,
 array arAddParams = Array()
);

Возвращает список тем (включая связаные данные) по фильтру arFilter, отсортированый в соответствии с arOrder. Метод статический.

Параметры функции

Параметр | Описание | C версии
arOrder | Массив вида Array(by1=>order1[, by2=>order2 [, ..]]). Подробное описание параметра смотрите в описании функции CForumTopic::GetList.
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...]).
Подробное описание параметра смотрите в описании функции CForumTopic::GetList.
bCount | Если параметр равен True, то возвращается только количество сообщений, которое соответствует установленному фильтру. Необязательный. По умолчанию равен False.
iNum | Ограничение числа возвращаемых записей. Если параметр iNum отличен от нуля, то возвращается не более iNum записей. Поддерживается не для всех баз данных. Если параметр не поддерживается, то его установки игнорируются. Необязательный. По умолчанию равен 0.
arAddParams | Массив параметров. | 4.0.3

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • Поля темы

Примеры использования

<?
// выберем все опубликованные темы форума с кодом $FID,
// отсортированные сначала по индексу сортировки, а потом
// по дате последнего сообщения в теме
$db_res = CForumTopic::GetList(array("SORT"=>"ASC", "LAST_POST_DATE"=>"DESC"), array("FORUM_ID"=>$FID));
while ($ar_res = $db_res->Fetch())
{
  echo "<pre>";
  print_r($ar_res);
  echo "</pre><br>";
}
?>


GetByID

Форум>Классы>CForumTopic>GetByID (доступно с 3.3.3)

CForumTopic::GetByID

Описание и параметры

array
CForumTopic::GetByID(
 int ID,
 array arAddParams = Array()
);

Возвращает массив параметров темы по ее коду ID. Результаты вызова функции кешируются, поэтому повторные вызовы метода для одной и той же темы не требуют дополнительного обращения к базе данных (при условии, что кеш не сбросился в результате изменения параметров темы). Метод статический.

Параметры функции

Параметр | Описание | C версии
ID | Код темы. |
arAddParams | Массив параметров. | 4.0.3

Возвращаемое значение

Массив параметров темы. Если тема не найдена, то возвращается значение false.

Смотрите также

  • Поля темы

Примеры использования

<?
$arTopic = CForumTopic::GetByID($TID);
if ($arTopic)
{
  $FID = IntVal($arTopic["FORUM_ID"]);
}
?>


GetByIDEx

Форум>Классы>CForumTopic>GetByIDEx (доступно с 3.3.3)

CForumTopic::GetByIDEx

Описание и параметры

array
CForumTopic::GetByIDEx(
 int ID,
 array arAddParams = Array()
);

Возвращает массив параметров темы, а так же сопутствующие параметры, по ее коду ID. Метод статический.

Параметры функции

Параметр | Описание | C версии
ID | Код темы. |
arAddParams | Массив параметров. | 4.0.3

Возвращаемое значение

Массив параметров темы, включая сопутствующие. Если тема не найдена, то возвращается значение false.

Смотрите также

  • Поля темы

Примеры использования

<?
// Распечатаем на экран все возвращаемые параметры темы
$arTopic = CForumTopic::GetByIDEx($TID);
if ($arTopic)
{
  echo "<pre>";
  print_r($arTopic);
  echo "</pre>";
}
?>


Add

Форум>Классы>CForumTopic>Add (доступно с 3.3.3)

CForumTopic::Add

Описание и параметры

int
Add(
 array arFields
);

Создает новую тему с параметрами, указанными в массиве arFields. Возвращает код созданной темы. Метод статический.

Параметры функции

Параметр | Описание | C версии
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей темы. Обязательные поля должны быть заполнены. |

Возвращаемое значение

Возвращает код созданной темы. В случае ошибки добавления возвращает False.

Смотрите также

  • Поля темы
  • Перед добавлением темы следует проверить возможность добавления методом CForumTopic::CanUserAddTopic
  • Для добавления и изменения сообщения и темы рекомендуется пользоваться высокоуровневой функцией ForumAddMessage

Примеры использования

<?
// для добавления перемещенной темы:

CForumTopic::Add(array('TITLE'=>$title,
 'STATE'=>"L",
 'USER_START_ID'=>$USER->GetID(),
 'USER_START_NAME'=>$USER->GetLogin(),
 'LAST_POSTER_NAME'=>$USER->GetLogin(),
 'START_DATE'=>date("Y-m-d H:i:s",time()),
 'FORUM_ID'=>intval($val),
 'TOPIC_ID'=>$TID,
  ));
?>


Update

Форум>Классы>CForumTopic>Update (доступно с 3.3.3)

CForumTopic::Update

Описание и параметры

int
Update(
 int ID,
 array arFields [,
 bool skip_counts]
);

Изменяет параметры существующей темы с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемой темы. Метод статический.

Примечание. Метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.

Параметры функции

Параметр | Описание | C версии
ID | Код темы, параметры которой необходимо изменить. |
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей темы. |
skip_counts | Если этот параметр установлен в значение true, то при изменении темы не будут автоматически обсчитаны статистические данные. Это ускоряет работу функции, но создает логические ошибки в данных. Необязательный. По умолчанию равен False. |

Возвращаемое значение

Возвращает код измененной темы. В случае ошибки изменения возвращает False.

Смотрите также

  • Поля темы
  • Перед изменением темы следует проверить возможность изменения методом CanUserUpdateTopic
  • Для добавления и изменения сообщения и темы можно воспользоваться высокоуровневой функцией ForumAddMessage

Примеры использования

<?
// Для того, чтобы прикрепить тему, ставим SORT=100.

CForumTopic::Update($TOPIC_ID,Array("SORT" =>100))
?>


Delete

Форум>Классы>CForumTopic>Delete (доступно с 3.3.3)

CForumTopic::Delete

bool
Delete(
 int ID
);

Удаляет тему с кодом ID. Метод статический.

Примечание. Метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.

Параметры функции

Параметр | Описание | C версии
ID | Код темы, которую необходимо удалить. |

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.

Смотрите также

  • Перед удалением темы следует проверить возможность удаления методом CForumTopic::CanUserDeleteTopic


CanUserAddTopic

Форум>Классы>CForumTopic>CanUserAddTopic (доступно с 3.3.3)

CForumTopic::CanUserAddTopic

Описание и параметры

bool
CForumTopic::CanUserAddTopic(
 int FID,
 array arUserGroups,
 int iUserID = 0,
 bool arForum = false,
 bool ExternalPermission = false
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, добавить новую тему в форум FID. Метод статический.

Параметры функции

Параметр | Описание | C версии
FID | Код форума, в который пользователь хочет добавить тему. |
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray(). |
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID(). |
arForum | Необязательный. По умолчанию равен False. | 4.0.3
ExternalPermission | "Приоритетное право доступа", если этот параметр передается, то не проверяются права самого форума, а идет доверие только этому параметру. Необязательный. По умолчанию равен False. | 7.1.4

Возвращаемое значение

Возвращает True, если пользователь имеет все права на добавление темы. В противном случае возвращается значение false.

Смотрите также

  • CForumTopic::CanUserUpdateTopic
  • CForumTopic::CanUserDeleteTopic

Примеры использования

<?
if (CForumTopic::CanUserAddTopic($FID,
                                 $USER->GetUserGroupArray(),
                                 $USER->GetID()))
{
    echo "You can add topic!";
}
?>


CanUserDeleteTopic

Форум>Классы>CForumTopic>CanUserDeleteTopic (доступно с 3.3.3)

CForumTopic::CanUserDeleteTopic

Описание и параметры

bool
CForumTopic::CanUserDeleteTopic(
 int ID,
 array arUserGroups,
 int iUserID,
 bool ExternalPermission = false
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, удалить тему с кодом ID. Метод статический.

Параметры функции

Параметр | Описание | C версии
ID | Код темы, которую пользователь хочет удалить. |
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray() |
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID() |
ExternalPermission | "Приоритетное право доступа", если этот параметр передается, то не проверяются права самого форума, а идет доверие только этому параметру. Необязательный. По умолчанию равен False. | 7.1.4

Возвращаемое значение

Возвращает True, если пользователь имеет все права на удаление темы. В противном случае возвращается значение false.

Смотрите также

  • CForumTopic::CanUserAddTopic
  • CForumTopic::CanUserUpdateTopic

Примеры использования

<?
if (CForumTopic::CanUserDeleteTopic($ID, $USER->GetUserGroupArray(), $USER->GetID()))
{
    CForumTopic::Delete($ID);
}
?>


CanUserUpdateTopic

Форум>Классы>CForumTopic>CanUserUpdateTopic (доступно с 3.3.3)

CForumTopic::CanUserUpdateTopic

Описание и параметры

bool
CForumTopic::CanUserUpdateTopic(
 int ID,
 array arUserGroups,
 int iUserID,
 bool ExternalPermission = false
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, изменить тему с кодом ID. Метод статический.

Параметры функции

Параметр | Описание | C версии
ID | Код темы, которую пользователь хочет изменить. |
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray(). |
iUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID(). |
ExternalPermission | "Приоритетное право доступа", если этот параметр передается, то не проверяются права самого форума, а идет доверие только этому параметру. Необязательный. По умолчанию равен False. | 7.1.4

Возвращаемое значение

Возвращает True, если пользователь имеет все права на изменение темы. В противном случае возвращается значение false.

Смотрите также

  • CForumTopic::CanUserAddTopic
  • CForumTopic::CanUserDeleteTopic

Примеры использования

<?
if (CForumTopic::CanUserUpdateTopic($ID, $USER->GetUserGroupArray(), $USER->GetID()))
{
    echo "You can modify this topic!";
}
?>


GetNeighboringTopics

Форум>Классы>CForumTopic>GetNeighboringTopics (доступно с 3.3.3)

CForumTopic::GetNeighboringTopics

Описание и параметры

array
CForumTopic::GetNeighboringTopics(
 int TID,
 array arUserGroups
);

Функция для темы с кодом TID возвращает коды предыдущей и следующей тем (соседних тем) форума в сортировке по дате последнего сообщения (стандартная сортировка) с учётом прав на доступ групп пользователей arUserGroups. Метод статический.

Параметры функции

Параметр | Описание
TID | Код темы, соседей которой необходимо получить.
arUserGroups | Массив кодов групп пользователей для учета прав на доступ. Обычно годы групп, которым принадлежит текущий пользователь.

Возвращаемые значения

Функция возвращает массив из двух элементов, первым из которых является код предадущей темы, а вторым - следующей. Если какого-либо из соседей для данной темы не существует, то вместо кода соответствующего соседа возвращается значение 0.

Примеры использования

<?
// Выведем ссылки на соседние темы для темы TID с учётом прав
// текущего пользователя

list($iPREV_TOPIC, $iNEXT_TOPIC) =
    CForumTopic::GetNeighboringTopics($TID,
                                      $USER->GetUserGroupArray());

if ($iPREV_TOPIC > 0)
   echo "<a href=\"read.php?FID=".$FID."&TID=".$iPREV_TOPIC."\">";
echo "Предыдущая тема";

if ($iPREV_TOPIC > 0)
   echo "</a>";
echo " | ";

if ($iNEXT_TOPIC > 0)
   echo "<a href=\"read.php?FID=".$FID."&TID=".$iNEXT_TOPIC."\">";
echo "Следующая тема";

if ($iNEXT_TOPIC > 0)
   echo "</a>";
?>


MoveTopic2Forum

Форум>Классы>CForumTopic>MoveTopic2Forum (доступно с 3.3.3)

CForumTopic::MoveTopic2Forum

Описание и параметры

bool
CForumTopic::MoveTopic2Forum(
 int TID,
 int FID
);

Функция переносит тему с кодом TID в форум с кодом FID. Метод статический.

Примечание. Метод использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до подключения метода.

Параметры функции

Параметр | Описание
TID | Код темы, которую необходимо перенести.
FID | Код форума, в который необходимо перенести тему.

Возвращаемые значения

Функция возвращает True в случае успешного переноса и False - в противном случае

Примеры использования

<?
// Если тема не переносится в другой форум, значит есть какие-либо ошибки, которые можно найти:

$strErrorMessage = "";
if (CForumTopic::MoveTopic2Forum($topics, $arParams["newFID"], $_REQUEST["leaveLink"])):
   print_r("Good!");
elseif ($GLOBALS['APPLICATION']->GetException()):
   $err = $GLOBALS['APPLICATION']->GetException();
   $strErrorMessage = $err->GetString();
   ShowError($strErrorMessage);
endif;
?>


Класс CForumUser

CForumUser - класс для работы с профайлами посетителей форума

Методы класса

Метод | Описание | C версии
GetList | Получение списка профайлов с возможностью фильтрации и сортировки. | 3.3.3
GetByID | Получение параметров профайла по его коду. | 3.3.3
GetByUSER_ID | Получение параметров профайла по коду пользователя, которому профайл принадлежит. | 3.3.3
GetByIDEx | Получение параметров профайла вместе со связаными данными по его коду. | 3.3.3
Add | Добавление нового профайла. | 3.3.3
Update | Изменение параметров профайла. | 3.3.3
Delete | Удаление профайла. | 3.3.3
CanUserAddUser | Всесторонне проверяет, может ли пользователь добавить новый профайл. | 3.3.3
CanUserUpdateUser | Всесторонне проверяет, может ли пользователь изменить профайл. | 3.3.3
CanUserDeleteUser | Всесторонне проверяет, может ли пользователь удалить профайл. | 3.3.3
GetUserRank | Возвращает звание пользователя. | 3.3.7


GetList

Форум>Классы>CForumUser>GetList (доступно с 3.3.3)

CForumUser::GetList

Описание и параметры

CDBResult
CForumUser::GetList(
 array arOrder = array("ID"=>"ASC")
 array arFilter = array(),
arAddParams = array()
);

Возвращает список профайлов по фильтру arFilter, отсортированый в соответствии с arOrder. Метод статический.

Параметры функции

Параметр | Описание | С версии
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где

by - поле для сортировки, может принимать значения
ID - ID профайла;
USER_ID - ID пользователя;
SHOW_NAME - показывать имя вместо логина;
NUM_POSTS - количество сообщений;
LAST_POST - ID последнего сообщения;
NAME - имя пользователя;
LAST_NAME - фамилия пользователя;
LOGIN - логин;
LAST_VISIT - дата последнего посещения;

order - порядок сортировки, может принимать значения
ASC - по возрастанию;
DESC - по убыванию;

Необязательный. По умолчанию равен Array("ID"=>"ASC")
arFilter массив вида array("фильтруемое поле"=>"значения фильтра" [, ...])
"фильтруемое поле" может принимать значения
ID - ID профайла;
USER_ID - ID пользователя;
RANK_ID - ID звания пользователя;
SHOW_NAME - показывать имя вместо логина;
NUM_POSTS - количество сообщений;
ALLOW_POST - разрешено писать сообщения (т.е. не забанен);

фильтруемое поле может иметь содержать перед названием тип проверки фильтра
"!" - не равно
"<" - меньше
"<=" - меньше либо равно
">" - больше
">=" - больше либо равно

Необязательное. По умолчанию записи не фильтруются.
arAddParams | Массив параметров. | 4.0.3

Возвращаемое значение

Возвращается объект CDBResult

Смотрите также

  • CDBResult
  • Поля профайла


GetByID

Форум>Классы>CForumUser>GetByID (доступно с 3.3.3)

CForumUser::GetByID

array
CForumUser::GetByID(
 int ID
);

Возвращает массив параметров профайла по его коду ID. Результаты вызова функции кешируются, поэтому повторные вызовы метода для одного и того же профайла не требуют дополнительного обращения к базе данных (при условии, что кеш не сбросился в результате изменения параметров профайла). Метод статический.

Параметры функции

Параметр | Описание | C версии
ID | Код профайла. |

Возвращаемое значение

Массив параметров профайла. Если профайл не найден, то возвращается значение false.

Смотрите также

  • Поля профайла


GetByUSER_ID

Форум>Классы>CForumUser>GetByUSER_ID (доступно с 3.3.3)

CForumUser::GetByUSER_ID

array
CForumUser::GetByUSER_ID(
 int USER_ID
);

Возвращает массив параметров профайла по коду USER_ID пользователя, которому этот профайл принадлежит. Результаты вызова функции кешируются, поэтому повторные вызовы метода для одного и того же пользователя не требуют дополнительного обращения к базе данных (при условии, что кеш не сбросился в результате изменения параметров профайла). Метод статический.

Параметры функции

Параметр | Описание | C версии
USER_ID | Код пользователя. |

Возвращаемое значение

Массив параметров профайла. Если профайл не найден, то возвращается значение false.

Смотрите также

  • Поля профайла


GetByIDEx

Форум>Классы>CForumUser>GetByIDEx (доступно с 3.3.3)

CForumUser::GetByIDEx

array
CForumUser::GetByIDEx(
 int ID,
 arAddParams = array()
);

Возвращает массив параметров профайла, а так же сопутствующие параметры, по его коду ID. Метод статический.

Параметры функции

Параметр | Описание | C версии
ID | Код профайла. |
arAddParams | Массив параметров. | 12.0.0

Возвращаемое значение

Массив параметров профайла, включая сопутствующие. Если профайл не найден, то возвращается значение false.

Смотрите также

  • Поля профайла


Add

Форум>Классы>CForumUser>Add (доступно с 3.3.3)

CForumUser::Add

int
CForumUser::Add(
 array arFields,
 string strUploadDir = false
);

Создает новый профайл с параметрами, указанными в массиве arFields. Возвращает код созданного профайла. Метод статический.

Параметры функции

Параметр | Описание | C версии
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей профайла пользователя. Обязательные поля должны быть заполнены. |
strUploadDir | Каталог для загрузки файлов. Должен быть задан относительно главного каталога для загрузки. Необязательный. По умолчанию равен "forum". |

Возвращаемое значение

Возвращает код созданного профайла. В случае ошибки добавления возвращает False.

Смотрите также

  • Поля профайла
  • Перед добавлением профайла следует проверить возможность добавления методом CForumUser::CanUserAddUser


Update

Форум>Классы>CForumUser>Update (доступно с 3.3.3)

CForumUser::Update

int
CForumUser::Update(
 int ID,
 array arFields [,
 string strUploadDir = false,
 int UpdateByUserId = false
);

Изменяет параметры существующего профайла с кодом ID на параметры, указанные в массиве arFields. Возвращает код изменяемого профайла. Метод статический.

Параметры функции

Параметр | Описание | С версии
ID | Код профайла, параметры которого необходимо изменить.
arFields | Массив вида Array(field1=>value1[, field2=>value2 [, ..]]), где field - название поля; value - значение поля. Поля перечислены в списке полей профайла. |
strUploadDir | Каталог для загрузки файлов. Должен быть задан относительно главного каталога для загрузки. Необязательный. По умолчанию равен "forum". |
UpdateByUserId | Необязательный. По умолчанию равен "false". | 4.0.3

Возвращаемое значение

Возвращает код измененного профайла. В случае ошибки изменения возвращает False.

Смотрите также

  • Поля профайла
  • Перед изменением профайла следует проверить возможность изменения методом CForumUser::CanUserUpdateUser


Delete

Форум>Классы>CForumUser>Delete (доступно с 3.3.3)

CForumUser::Delete

bool
CForumUser::Delete(
 int ID
);

Удаляет профайл с кодом ID. Метод статический.

Параметры функции

Параметр | Описание | C версии
ID | Код профайла, которую необходимо удалить. |

Возвращаемое значение

Возвращает True в случае успешного удаления, в противном случае возвращает False.

Смотрите также

  • Перед удалением профайла следует проверить возможность удаления методом CForumUser::CanUserDeleteUser


CanUserAddUser

Форум>Классы>CForumUser>CanUserAddUser (доступно с 3.3.3)

CForumUser::CanUserAddUser

bool
CForumUser::CanUserAddUser(
 array arUserGroups
);

Всесторонне проверяет, может ли пользователь, входящий в группы arUserGroups, добавить новый профайл. Метод статический.

Параметры функции

Параметр | Описание | С версии
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray(). |

Возвращаемое значение

Возвращает True, если пользователь имеет все права на добавление профайла. В противном случае возвращается значение false.

Смотрите также

  • CForumUser::CanUserUpdateUser
  • CForumUser::CanUserDeleteUser


CanUserUpdateUser

Форум>Классы>CForumUser>CanUserUpdateUser (доступно с 3.3.3 )

CForumUser::CanUserUpdateUser

bool
CForumUser::CanUserUpdateUser(
 int ID,
 array arUserGroups,
 int CurrentUserID = 0
);

Всесторонне проверяет, может ли пользователь с кодом iUserID, входящий в группы arUserGroups, изменить профайл с кодом ID. Метод статический.

Параметры функции

Параметр | Описание | С версии
ID | Код профайла, который пользователь хочет изменить. |
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray(). |
CurrentUserID | Код пользователя. Для текущего пользователя он возвращается методом $USER->GetID(). |

Возвращаемое значение

Возвращает True, если пользователь имеет все права на изменение профайла. В противном случае возвращается значение false.

Смотрите также

  • CForumUser::CanUserAddUser
  • CForumUser::CanUserDeleteUser


CanUserDeleteUser

Форум>Классы>CForumUser>CanUserDeleteUser (доступно с 3.3.3)

CForumUser::CanUserDeleteUser

bool
CForumUser::CanUserDeleteUser(
 int ID,
 array arUserGroups
);

Всесторонне проверяет, может ли пользователь, входящий в группы arUserGroups, удалить профайл с кодом ID. Метод статический.

Параметры функции

Параметр | Описание | С версии
ID | Код профайла, который пользователь хочет удалить. |
arUserGroups | Массив групп, в которые входит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray() |

Возвращаемое значение

Возвращает True, если пользователь имеет все права на удаление профайла. В противном случае возвращается значение false.

Смотрите также

  • CForumUser::CanUserAddUser
  • CForumUser::CanUserUpdateUser


GetUserRank

Форум>Классы>CForumUser>GetUserRank (доступно с 3.3.7)

CForumUser::GetUserRank

Описание и параметры

array
CForumUser::GetUserRank(
 int USER_ID,
 string strLang = false
);

Функция возвращает параметры звания пользователя по его коду USER_ID. Если Установлено значение второго параметра strLang, то возвращаются в том числе и языкозависимые параметры. Метод статический.

Параметры функции

Параметр | Описание | С версии
USER_ID | Код пользователя. |
strLang | Код языка. Если этот параметр установлен, то возвращаются в том числе и языкозависимые параметры звания на языке с кодом strLang. Если параметр не установлен (равен false), то возвращаются только языконезависимые параметры. |

Возвращаемые значения

Возвращяется ассоциативный массив с ключами

Ключ | Значение
ID | Код звания.
MIN_POINTS | Количество баллов, необходимое для получения этого звания.
CODE | Символьный код.
VOTES | Количество голосов, которое имеет пользователь с этим званием.
LID | Код языка (если установлен параметр strLang)
NAME | Название звания на языке LID (если установлен параметр strLang)

Примеры использования

<?
// Если в глобальных настройках форума разрешено показывать звания
if (COption::GetOptionString("forum", "SHOW_VOTES", "Y")=="Y")
{
   // Выведем название звания текущего пользователя на текущем языке
   $arUserRank = CForumUser::GetUserRank($USER->GetID(), LANGUAGE_ID);
   echo $arUserRank["NAME"];
}
?>


Класс CForumUserPoints

CForumUserPoints - класс для работы с голосованиями пользователей форума за других пользователей форума.

Методы класса

Метод | Описание | С версии
GetList | Получение списка голосования с возможностью фильтрации и сортировки. | 3.3.7
GetByID | Получение параметров голосования по его коду. | 3.3.7
Add | Добавление нового голосования одного из посетителей форума за другого. | 3.3.7
Update | Изменение параметров голосования. | 3.3.7
Delete | Удаление голосования. | 3.3.7


GetList

Форум>Классы>CForumUserPoints>GetList (доступно с 3.3.7)

CForumUserPoints::GetList

Описание и параметры

CDBResult
CForumUserPoints::GetList(
 array arOrder = array("TO_USER_ID"=>"ASC"),
 array arFilter = array()
);

Возвращает голосования за посетителей форума, которые удовлетворяют фильтру arFilter, упорядоченные в соответствии с порядком arOrder. Метод нестатический.

Параметры функции

Параметр Описание С версии
arOrder

Порядок сортировки записей; представляет собой ассоциативный массив, в котором ключами являются названия параметров голосования, а значениями - направления сортировки.

Допустимые параметры голосования для сортировки:
FROM_USER_ID - код голосовавшего посетителя
TO_USER_ID - код посетителя, за которого голосовали
POINTS - количество отданных голосов
DATE_UPDATE - дата последнего изменения записи

arFilter

Фильтр на возвращаемые голосования; представляет собой ассоциативный массив, в котором ключами являются названия параметров голосования, а значениями - условия на эти параметры.

Допустимые параметры голосования для фильтрации:
FROM_USER_ID - код голосовавшего посетителя
TO_USER_ID - код посетителя, за которого голосовали

Возвращаемые значения

Возвращяется объект класса CDBResult, каждая запись которого представляет собой массив с ключами.

Ключ | Значение
FROM_USER_ID | Код пользователя, который отдал голос.
TO_USER_ID | Код пользователя, за которого отдали голос.
POINTS | Количество отданных голосов.
DATE_UPDATE | Дата последнего изменения записи.


GetByID

Форум>Классы>CForumUserPoints>GetByID (доступно с 3.3.7)

CForumUserPoints::GetByID

Описание и параметры

array
CForumUserPoints::GetByID(
 int FROM_USER_ID,
 int TO_USER_ID
);

Функция возвращает массив параметров голосования пользователя с кодом FROM_USER_ID за пользователя с кодом TO_USER_ID. Метод нестатический.

Параметры функции

Параметр | Описание | С версии
FROM_USER_ID | Код пользователя, который отдал голос. |
TO_USER_ID | Код пользователя, за которого отдали голос. |

Возвращаемые значения

Возвращает ассоциативный массив с ключами.

Ключ | Значение
FROM_USER_ID | Код пользователя, который отдал голос.
TO_USER_ID | Код пользователя, за которого отдали голос.
POINTS | Количество отданных голосов.
DATE_UPDATE | Дата последнего изменения записи.

Примеры использования

<?
// Выведем, сколько голосов отдал текущий пользователь
// за пользователя с кодом $AID
$arUserPoints = CForumUserPoints::GetByID($USER->GetID(), $AID);
if ($arUserPoints)
{
   echo "Вы отдали за этого пользователя ".$arUserPoints["POINTS"]. " голосов";
}
?>


Add

Форум>Классы>CForumUserPoints>Add (доступно с 3.3.7)

CForumUserPoints::Add

bool
CForumUserPoints::Add(
 array arFields
);

Функция добавляет новую запись в таблицу голосований за посетителей форума. Метод нестатический.

Параметры функции

Параметр | Описание | С версии
arFields | Ассоциативный массив значений параметров записи. |

Возвращаемые значения

Функция возвращает код добаленной записи или false в случае ошибки.

Пример использования

<?
// Текущий пользователь отдает пользователю с кодом $UID 10 голосов

$arFields = array(
   "POINTS" => 10,
   "FROM_USER_ID" => $USER->GetID(),
   "TO_USER_ID" => $UID
);

if (CForumUserPoints::Add($arFields))
   echo "Голоса успешно отданы";
else
   echo "Ошибка голосования";
?>


Update

Форум>Классы>CForumUserPoints>Update (доступно с 3.3.7)

CForumUserPoints::Update

Описание и параметры

bool
CForumUserPoints::Update(
 int FROM_USER_ID,
 int TO_USER_ID,
 array arFields
);

Изменяет параметры голосования пользователя с кодом FROM_USER_ID за пользователя с кодом TO_USER_ID на значения, указанные в массиве arFields. Метод нестатический.

Параметры функции

Параметр | Описание | С версии
FROM_USER_ID | Пользователь, который голосовал. |
TO_USER_ID | Пользователь, за которого голосовали. |
arFields | Массив новых значений параметров голосования. |

Возвращаемые значения

Возвращает True в случае успешного изменения параметров голосования и False - в противном случае.

Примеры использования

<?
// Изменим количество голосов, отданных текущим пользователем
// за пользователя с кодом $UID на 53
$arFields = array("POINTS" => 53);
if (CForumUserPoints::Update($USER->GetID(), $UID, $arFields))
   echo "Голосования успешно изменено";
else
   echo "Ошибка изменения голосования";
?>


Delete

Форум>Классы>CForumUserPoints>Delete (доступно с 3.3.7)

CForumUserPoints::Delete

bool
CForumUserPoints::Delete(
 int FROM_USER_ID,
 int TO_USER_ID
);

Функция удаляет из голосования голоса, отданные пользователем с кодом FROM_USER_ID пользователю с кодом TO_USER_ID. Метод нестатический.

Параметры функции

Параметр | Описание | С версии
FROM_USER_ID | Код пользователя, отдавшего голос. |
TO_USER_ID | Код пользователя, которому был отдан голос. |

Возвращаемые значения

Функция возвращает True в случае успешного удаления и False - в случае ошибки.


Класс forumTextParser

forumTextParser - класс, предназначенный для форматирования сообщений форума. Этот класс - потомок класса TextParser, с расширениями для парсинга файлов и спойлеров. Осуществляет замену спецсимволов и заказных тегов на реальные HTML- теги, обработку ссылок, отображение смайлов.

Методы класса

Метод | Описание | C версии
convert | Функция форматирования сообщения. | 11.0.0


convert

string
forumTextParser::convert(
 string text,
 array arAllow = array(),
 type = "html",
 arFiles = false
);

Функция форматирования текста. Метод нестатический.

Параметры функции

Параметр | Описание | С версии
text | Исходное сообщение.
arAllow Массив параметров для форматирования сообщения, со значениями Y или N:
  • HTML - в тексте могут содержаться любые HTML теги,
  • ANCHOR - разрешен тег <a>,
  • BIU - разрешены теги <b>, <i>, <u>,
  • IMG - разрешен тег <img>,
  • QUOTE - разрешен тег цитирования <quote>,
  • CODE - разрешен тег показа кода <code>,
  • FONT - разрешен тег <font>,
  • LIST - разрешены теги <ul>, <li>,
  • SMILES - показ смайликов в виде картинок,
  • NL2BR - заменять переводы каретки на тег <br> при разрешении принимать любые HTML теги,
  • VIDEO - разрешена вставка видео,
  • UPLOAD - разрешена загрузка файлов,
  • TABLE - разрешены таблицы,
  • ALIGN - разрешено выравнивание текста.
type | Тип текста. Необязательный. По умолчанию html.
arFiles | массив файлов, которые надо распарсить в тексте. Должно быть либо в виде массива ID файлов array(fileID10, fileID12, fileID14), либо в виде массива array(fileID10 => array about file, ....) для преобразования bb-кодов типа [FILE ID=fileID10] в соответствующее представление файлов, в зависимости от типа текста и файла. | 11.5.4


Класс textParser

textParser - класс, предназначенный для форматирования сообщений форума. Осуществляет замену спецсимволов и заказных тегов на реальные HTML- теги, обработку ссылок, отображение смайлов.

Методы класса

Метод | Описание | C версии
convert | Функция форматирования сообщения. | 3.0.2


convert

Описание и параметры

string
textParser::convert(
 string text,
 array arAllow = array("HTML" => "N", "ANCHOR" => "Y", "BIU" => "Y", "IMG" => "Y", "QUOTE" => "Y", "CODE" => "Y", "FONT" => "Y", "LIST" => "Y", "SMILES" => "Y", "NL2BR" => "N", "VIDEO" => "Y"),
 type = "html"
);

Функция форматирования текста. Метод нестатический.

Параметры функции

Параметр | Описание | С версии
strPost_message | Форматируемое сообщение.
arAllow Массив параметров форматирования сообщения. Имеет структуру, идентичную массиву ALLOW - переменной класса CForum. Содержит следующие параметры, которые могут принимать значения Y и N:
  • HTML - в тексте могут содержаться любые HTML теги,
  • ANCHOR - разрешен тег <a>,
  • BIU - разрешены теги <b>, <i>, <u>,
  • IMG - разрешен тег <img>,
  • QUOTE - разрешен тег цитирования <quote>,
  • CODE - разрешен тег показа кода <code>,
  • FONT - разрешен тег <font>,
  • LIST - разрешены теги <ul>, <li>,
  • SMILES - показ смайликов в виде картинок,
  • NL2BR - заменять переводы каретки на тег <br> при разрешении принимать любые HTML теги.
  • VIDEO - показ видео
type | Тип текста. Необязательный. По умолчанию html. | 7.0.0

Примеры использования

<?
$parser = new textParser();  // создаем экземпляр класса textParser
$arAllow = $Forum->ALLOW;    // заполняем массив параметров форматирования
                             // из массива переменной-члена класса CForum,
                             // эти два массива имеют идентичную структуру
$arAllow["SMILES"] = "N";    // переопределяем (запрещаем) показ смайликов
                             // в виде картинок
echo $parser->convert($strMessage, $arAllow);  // форматируем и выводим сообщение
?>


События модуля Форум

Событие | Вызывается | Метод | С версии
GetAuditTypesForum |  | CEventForum::GetAuditTypes | 11.0.0
OnAfterForumDelete | после удаления форума. | CForumNew::Delete |
onAfterForumAdd | после добавления форума. | CForumNew::Add |
onAfterForumUpdate | после редактирования форума. | CForumNew::Update |
onAfterGroupForumsAdd | после добавления группы форума. | CForumGroup::Add |
onAfterGroupForumsUpdate | после редактирования группы форума. | CForumGroup::Update |
onAfterMessageAdd | после добавления сообщения форума. | CForumMessage::Add |
onAfterMessageDelete | после удаления сообщения форума. | CForumMessage::Delete |
onAfterMessageUpdate | после редактирования сообщения форума. | CForumMessage::Update |
onAfterPMCopy | после копирования персонального сообщения. | CForumPrivateMessage::Copy | 11.5.1
onAfterPMSend | после отправки персонального сообщения. | CForumPrivateMessage::Send | 11.5.1
onAfterTopicAdd | после добавления темы форума. | CForumTopic::Add |
onAfterTopicDelete | после удаления темы форума. | CForumTopic::Delete |
onAfterTopicUpdate | после редактирования темы форума. | CForumTopic::Update |
onAfterUserAdd | после добавления пользователя форума. | CForumUser::Add |
onAfterUserDelete | после удаления пользователя форума. | CForumUser::Delete |
onAfterUserUpdate | после редактирования пользователя форума. | CForumUser::Update |
onBeforeForumAdd | перед добавлением форума. | CForumNew::Add |
OnBeforeForumDelete | перед удалением форума. | CForumNew::Delete |
onBeforeForumUpdate | перед редактированием форума. | CForumNew::Update |
onBeforeGroupForumsAdd | перед созданием группы форумов. | CForumGroup::Add |
onBeforeGroupForumsUpdate | перед редактированием группы форумов. | CForumGroup::Update |
onBeforeMailMessageSend | перед отправкой сообщения на почту. | CForumMessage::SendMailMessage | 12.5.1
onBeforeMessageAdd | перед добавлением сообщения форума. | CForumMessage::Add |
onBeforeMessageDelete | перед удалением сообщения форума. | CForumMessage::Delete |
onBeforeMessageUpdate | перед редактированием сообщения форума. | CForumMessage::Update | 11.5.1
onBeforePMCopy | перед копированием персонального сообщения. | CForumPrivateMessage::Copy | 11.5.1
onBeforePMDelete | перед удалением персонального сообщения. | CForumPrivateMessage::Delete | 11.5.1
onBeforePMMakeRead | перед чтением персонального сообщения. | CForumPrivateMessage::MakeRead | 11.5.1
onBeforePMSend | перед отправкой персонального сообщения. | CForumPrivateMessage::Send | 11.5.1
onBeforePMUpdate | перед редактированием персонального сообщения. | CForumPrivateMessage::Update | 11.5.1
onBeforeTopicAdd | перед добавлением темы форума. | CForumTopic::Add |
onBeforeTopicDelete | перед удалением темы форума. | CForumTopic::Delete |
onBeforeTopicUpdate | перед редактированием темы форума. | CForumTopic::Update |
onBeforeUserAdd | перед добавлением пользователя форума. | CForumUser::Add |
onBeforeUserDelete | перед удалением пользователя форума. | CForumUser::Delete |
onBeforeUserUpdate | перед редактированием пользователя форума. | CForumUser::Update |
OnForumDelete | при удалении форума. | CForumNew::Delete |
onMessageModerate | при модерировании сообщения форума. | ForumModerateMessage | 12.0.2


Функции для использования в публичной части

Эти функции уже содержат проверки на права и корректность входных параметров, поэтому для выполнения необходимого действия достаточно просто вызвать соответствующую функцию.

Функция | Описание
ForumCurrUserPermissions | Возвращает права текущего посетителя на доступ к форуму.
ForumSubscribeNewMessages | Подписка текущего пользователя на новые сообщения заданной темы.
ForumAddMessage | Добавление и изменение нового сообщения и темы.
ForumModerateMessage | Публикация и скрытие сообщения.


ForumAddMessage

int
ForumAddMessage(
 string MESSAGE_TYPE,
 int FID,
 int TID,
 int MID,
 array arFieldsG,
 &string strErrorMessage,
 &string strOKMessage [,
 int iFileSize]
);

Добавляет или изменяет сообщение (и возможно тему) форума. В переменную, передаваемую в параметре strErrorMessage дописывает ошибки, которые произошли при работе функции. В переменную, передаваемую в параметре strOKMessage дописывает сообщения об успехах, которые произошли при работе функции.

Примечание. Функция использует внутреннюю транзакцию. Если у вас используется MySQL и InnoDB, и ранее была открыта транзакция, то ее необходимо закрыть до ее подключения.

Параметры функции

Параметр | Описание
MESSAGE_TYPE | Тип работы функции. Может принимать следующие значения: NEW - создание новой темы и добавление в нее сообщения, EDIT - изменение сообщения (и темы, если на это есть права), REPLY - новое сообщение в существующую тему.
FID | Код форума, в который добавляется новая тема. Актуален для типа работы NEW, в остальных случаях восстанавливается из кода темы.
TID | Код темы, в которую добавляется сообщение. Актуален для типа работы REPLY, в остальных случаях восстанавливается из кода сообщения. Для добавления новой темы должен быть равен 0.
MID | Код сообщения, которое необходимо изменить. Актуален для типа работы EDIT. В остальных случаях должен быть равен 0.
arFieldsG | Массив параметров сообщения и темы. Должен содержать следующие ключи POST_MESSAGE - тело сообщения, TITLE - заголовок темы (если NEW или EDIT и разрешено изменение темы), AUTHOR_NAME - имя автора сообщения, DESCRIPTION - описание темы (если NEW или EDIT и разрешено изменение темы), ICON_ID - иконка темы (если NEW или EDIT и разрешено изменение темы), USE_SMILES - разрешено заменять смайлики на их графические изображения, ATTACH_IMG - присоединенный файл - массив со структурой элементов массива $_FILES
strErrorMessage | Переменная, в которую функция дописывает сообщения об ошибках, которые произошли при ее работе.
strOKMessage | Переменная, в которую функция дописывает сообщения об успехах, которые произошли при ее работе.
iFileSize | Максимальный размер загружаемых файлов в байтах. Не обязательный параметр, по умолчанию равен 50000 (байт).
captcha_word | Слово с капчи.
captcha_sid | Сессия капчи.
captcha_code | Введенное пользователем слово.

Возвращаемое значение

Возвращает ID сообщения, если функция отработала без ошибок. В противном случае возвращает False.

Следует помнить, что внутри функции используется глобальная переменная $USER. То есть, сообщение запишется в базу от текущего авторизованного пользователя.


ForumCurrUserPermissions

char(1)
ForumCurrUserPermissions(
 int FID
);

Возвращает код права текущего посетителя на доступ к форуму по его коду FID.

Параметры функции

Параметр | Описание | C версии
FID | Код форума. |

Возвращаемое значение

Возвращает код права текущего посетителя на доступ к форуму. Список возможных значений:
  • A - нет доступа - текущий пользователь не должен видеть этого форума
  • E - чтение - текущий пользователь может читать этот форум, но не может писать в него
  • I - ответ - текущий пользователь может отвечать на существующие в форуме темы, но не может создавать новые темы
  • M - новая тема - текущий пользователь может как отвечать на существующие темы, так и создавать новые
  • Q - модерирование - текущий пользователь может модерировать форум, т.е. производить те действия, которые не повлекут реальной потери данных. Например, модератор может скрыть или показать сообщение, но не может отредактировать или удалить его. Модераторы получают копии всех сообщений форума по почте
  • U - редактирование - текущий пользователь может в полном объеме управлять чужими сообщениями на форуме
  • Y - полный доступ - текущий пользователь имеет полный доступ к форуму, включая доступ к настройкам форума и прав доступа
Администраторы сайта всегда имеют полный доступ ко всем форумам.

Смотрите также

  • Пользовательская документация, раздел Сервисы > Форум > Создание и редактирование форума.


ForumModerateMessage

bool
ForumModerateMessage(
 int message,
 char(1) TYPE,
 array arAddParams = Array(),
 &string strErrorMessage,
 &string strOKMessage
);

Публикует или скрывает сообщение с кодом MID. В переменную, передаваемую в параметре strErrorMessage дописывает ошибки, которые произошли при работе функции. В переменную, передаваемую в параметре strOKMessage дописывает сообщения об успехах, которые произошли при работе функции.

Параметры функции

Параметр | Описание | С версии
message | Код сообщения для публикации или скрытия. Примечание: До версии 7.0.0 параметр назывался MID. | 7.0.0
TYPE | Возможные значения: "SHOW" - публиковать сообщение, "HIDE" - скрыть сообщение. |
strErrorMessage | Переменная, в которую функция дописывает сообщения об ошибках, которые произошли при подписке. |
strOKMessage | Переменная, в которую функция дописывает сообщения об успехах, которые произошли при подписке. |
arAddParams | Массив добавления параметров. | 7.1.4

Возвращаемое значение

Возвращает True, если работа функции завершена без ошибок. В противном случае возвращает False.


ForumSubscribeNewMessages

bool
ForumSubscribeNewMessages(
 int FID,
 int TID,
 &string strErrorMessage,
 &string strOKMessage
);

Подписывает текущего посетителя на новые сообщения темы TID, если она задана. Иначе подписывает на новые сообщения всего форума FID. В переменную, передаваемую в параметре strErrorMessage дописывает ошибки, которые произошли при подписке. В переменную, передаваемую в параметре strOKMessage дописывает сообщения об успехах, которые произошли при подписке.

Параметры функции

Параметр | Описание | C версии
FID | Код форума, на сообщения которого подписывается текущий пользователь. |
TID | Код темы. Если задан, то происходит подписка только на новые сообщения этой темы. |
strErrorMessage | Переменная, в которую функция дописывает сообщения об ошибках, которые произошли при подписке. |
strOKMessage | Переменная, в которую функция дописывает сообщения об успехах, которые произошли при подписке. |

Возвращаемое значение

Возвращает True, если подписка прошла успешно. В противном случае возвращает False.


Для разработчиков

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("extranet")){
//здесь можно использовать функции и классы модуля
}
?>


События

Событие | Вызывается | Метод
OnUserInitialize | при инициализации пользователя экстранета | Событие вызывается в компоненте bitrix:system.auth.initialize


Экстранет в ядре D7

Список классов модуля Экстранет в ядре D7:

Класс, пространство имён | Описание
Util | Класс вспомогательных методов, служащих различным целям в рамках реализации логики экстранета.


AD/LDAP интеграция

Значение полей форм модуля в административной части смотрите в пользовательской документации [image].

О работе с модулем смотрите в учебном курсе [image].


Список событий

Событие | Вызывается | Параметры | Метод | С версии
OnBeforeUserLogin | перед логином пользователя. | CLDAP::OnUserLogin | 7.0.0
OnLdapBeforeSync перед синхронизацией с сервером LDAP, позволяет добавлять свою логику синхронизации.
$oLdapServer Массив, содержащий экземпляр объекта сервера LDAP (\CLdapServer), с которым происходит синхронизация.
CLdapServer::Sync 9.5.1
OnLdapUserFields при конвертации полей пользователя полученных из каталога LDAP в соответствующие поля пользователя сайта.
&$arFields | Конвертированные поля.
$arLdapUser | Поля LDAP.
 CLDAP::GetUserFields 9.5.1


CRM

Перед использованием модуля необходимо проверить, установлен ли он, и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("crm")){
//здесь можно использовать функции и классы модуля
}
?>

Модуль включает в себя следующие Компоненты 2.0:

Компании

Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Компании (комплексный компонент) | crm.company | Позволяет управлять списком компаний.
Список компаний | crm.company.list | Выводит список компаний.
Редактирование компании | crm.company.edit | Позволяет добавлять новую, или редактировать параметры имеющейся компании.
Просмотр компании | crm.company.show | Осуществляет вывод детального описания компании.
Панель инструментов | crm.company.menu | Позволяет настроить верхнее меню сущности.
Импорт компаний* | crm.company.menu | Позволяет импортировать список компаний.
* отмечены системные компоненты (не описываются)

Контакты

Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Контакты (комплексный компонент) | crm.contact | Позволяет управлять списком контактов.
Список контактов | crm.contact.list | Выводит список контактов.
Редактирование контакта | crm.contact.edit | позволяет добавлять новый, или редактировать параметры имеющегося контакта.
Просмотр контакта | crm.contact.show | Осуществляет вывод детального описания контакта.
Панель инструментов | crm.contact.menu | Позволяет настроить верхнее меню сущности.
Экспорт* | crm.contact.export | Предназначен для экспорта контактов в формате .xml.
Импорт контактов* | crm.contact.import | Предназначен для импорта списка контактов в формате CSV.
Импорт сделок* | crm.deal.import | Предназначен для импорта списка сделок в формате CSV.
Веб сервис* | crm.contact.webservice | Предназначен для создания и экспорта контактов.
* отмечены системные компоненты (не описываются)

Лиды

Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Лиды (комплексный компонент) | crm.lead | Позволяет работать с лидами.
Список лидов | crm.lead.list | Выводит список лидов.
Редактирование лида | crm.lead.edit | Позволяет создать новый, либо редактировать существующий лид.
Просмотр лида | crm.lead.show | Осуществляет вывод детального описания лида.
Туллбар | crm.lead.menu | Позволяет настроить верхнее меню сущности.
Конвертация лида | crm.lead.convert | Позволяет конвертировать лид в контакт, компанию или сделку.
Импорт лидов* | crm.lead.import | Предназначен для импорта списка лидов в формате CSV.
Веб-сервис* | crm.lead.webservice | Сервис для создания лида.
Обработчик REST* | crm.lead.rest | Обработчик REST для создания лида.
* отмечены системные компоненты (не описываются)

Настройки

Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Настройки пользовательских полей (комплексный компонент) | crm.config.fields | Позволяет выполнить настройку пользовательских полей в модуле CRM.
Список пользовательских полей | crm.config.fields.list | Выводит список пользовательских полей модуля CRM.
Список типов пользовательских полей | crm.config.fields.types | Выводит список типов пользовательских полей модуля CRM.
Настройка пользовательского поля | crm.config.fields.edit | Позволяет выполнить настройку пользовательского поля модуля CRM.
Настройки прав доступа (комплексный компонент) | crm.config.perms | Позволяет выполнить настройку прав доступа к модулю CRM.
Настройка Send&Save* | crm.config.sendsave | Настройка интеграции с Send&Save в модуле CRM.
Настройка статусов* | crm.config.status | Позволяет выполнить настройку статусов модуля CRM.
* отмечены системные компоненты (не описываются)

Сделки

Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Сделки (комплексный компонент) | crm.deal | Позволяет работать со сделками.
Воронка продаж | crm.deal.funnel | Выводит количественное соотношение сделок на разных стадиях выполнения.
Список сделок | deal.list | Выводит список сделок.
Редактирование сделки | crm.deal.edit | Позволяет создать новую, либо редактировать существующую сделку.
Просмотр сделки | crm.deal.show | Осуществляет вывод детального описания сделки.
Панель инструментов | crm.deal.menu | Позволяет настроить верхнее меню сущности.

Действия

Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Дела (комплексный компонент) | crm.activity.calendar.list | Выводит список записей календаря.
Список задач | crm.activity.task.list | Выводит список задач.
Список звонков/встреч | crm.activity.calendar.list | Выводит список записей календаря.

Счета

Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Счета (комплексный компонент) | crm.invoice | Позволяет работать со счетами в CRM.
Список счетов | crm.invoice.list | Выводит список счетов.
Редактирование счета | crm.invoice.edit | Добавляет новый, или позволяет редактировать параметры имеющегося счёта.
Просмотр счета | crm.invoice.show | Выводит детальное описание счёта.
Панель инструментов | crm.invoice.menu | Позволяет настроить контентное меню сущности.
Просмотр счета в формате HTML/PDF* | crm.invoice.payment | Просмотр счета в формате HTML/PDF.
* отмечены системные компоненты (не описываются)

Товары

Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Товары (комплексный компонент) | crm.product | Позволяет управлять товарами сделок CRM.
Список товаров | crm.product.list | Выводит список товаров системы CRM.
Список разделов | crm.product.section.list | Позволяет управлять списком разделов выбранного каталога.
Редактирование товара | crm.product.edit | Позволяет редактировать существующий, либо добавить новый товар.
Просмотр товара | crm.product.show | Выводит детальное описание товара.
Туллбар | crm.product.menu | Позволяет настроить контентное меню для работы с каталогами и товарами.

Дополнительно

Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Просмотр событий | crm.event.view | Выводит список действий, произведенных над сущностями системы CRM.
Отчеты (комплексный компонент) | crm.report | Составляет отчеты по работе в CRM.
Просмотр событий счета | crm.invoice.events | Выводит список действий, произведенных над счетами системы CRM.
* отмечены системные компоненты (не описываются)


Основные методы работы

Несколько базовых примеров работы. Примеры даны для лидов, но по аналогии можно работать с другими сущностями CRM.

Добавление лида.

if (\Bitrix\Main\Loader::includeModule('crm'))
{
    $entity = new CCrmLead;
    $fields = array(
        'TITLE' => 'Test'
    );
    echo $entity->add($fields);
}

Изменение, удаление лида

<?php
if (\Bitrix\Main\Loader::includeModule('crm'))
{
    $entity = new CCrmLead(true);//true - проверять права на доступ
    $fields = array(
        'TITLE' => 'Test'
    );
    $entity->update(1, $fields);

    $entity->delete(1);
}

Операции выборки. Принципы работы практически аналогичны выборке в инфоблоках [image].

<?php
if (\Bitrix\Main\Loader::includeModule('crm'))
{
    CCrmLead::GetListEx(
                $arOrder = array(),
                $arFilter = array(),
                $arGroupBy = false,
                $arNavStartParams = false,
                $arSelectFields = array());
}

По умолчанию при выборке проверяются права. Чтобы отменить проверку в фильтре надо передать CHECK_PERMISSIONS => 'N'.

Добавление простого товара. Простой товар - это товар, привязанный к сущности в обход каталога товаров. Он не будет сохранён отдельно в базе.

<?php
if (\Bitrix\Main\Loader::includeModule('crm'))
{
    $rows = array();
    $rows[] = array(
        'PRODUCT_NAME' => 'Страховка', 'QUANTITY' => 2,   'PRICE' => 300,
        'MEASURE_CODE' => 796
    );
    $rows[] = array(
        'PRODUCT_NAME' => 'Выезд менеджера', 'QUANTITY' => 1,  'PRICE' => 100,
        'MEASURE_CODE' => 796
    );
    CCrmProductRow::SaveRows('D', 10, $rows);//привязываем к сделке
    CCrmProductRow::SaveRows('L', 8, $rows);//к лиду
    CCrmProductRow::SaveRows('Q', 1, $rows);//к предложению
    //для счетов несколько иначе - при обновлении или добавлении  указываем отдельным полем
    CCrmInvoice::add(array(
        'ORDER_TOPIC' => 'Новый счет',
        'PRODUCT_ROWS' => $rows
    ));
}

Добавление товара в каталог

<?php
if (\Bitrix\Main\Loader::includeModule('crm'))
{
    $pid = CCrmProduct::add(array(
        'NAME' => 'Товар в базе',
        'QUANTITY' => 1,
        'PRICE' => 100,
        'MEASURE_CODE' => 796,
        'CURRENCY_ID' => 'RUB',
    ));
    if ($pid)
    {
        $rows = array();
        $rows[] = array(
            'PRODUCT_ID' => $pid,
            'QUANTITY' => 1,
        );
        CCrmProductRow::SaveRows('D', 10, $rows);
    }
}

Получение CODE измерения.

<?php
if (\Bitrix\Main\Loader::includeModule('crm'))
{
    //получение списка измерений
    \Bitrix\Crm\Measure::getMeasures();
    //получение одного измерения по умолчанию
    \Bitrix\Crm\Measure::getDefaultMeasure();
    //вернется массив массивов вида:
    /*
            [ID] => 1
            [CODE] => 6
            [IS_DEFAULT] =>
            [SYMBOL] => м
    */
}

Получение кодов справочных сущностей справочника

<?php
if (\Bitrix\Main\Loader::includeModule('crm'))  {
    $fields = array(
        'TYPE_ID' => CCrmActivityType::Call, //тип самого дела, может быть: Meeting, Call, Task, Email (константы класса)
        'OWNER_TYPE_ID' => CCrmOwnerType::Deal, //тип основной сущности, к которой привязывается дело,
                                                //может быть Deal, Lead, Contact, Company (константы класса)
        'OWNER_ID' => 10, //ID основной сущности
        'SUBJECT' => 'Телефонный разговор исходящий',
        'START_TIME' => $date,
        'END_TIME' => $date,
        'COMPLETED' => 'Y', //флаг завершенности дела
        'RESPONSIBLE_ID' => 1, //ответственный
        'PRIORITY' => CCrmActivityPriority::Medium, //приоритет, может быть None, Low, Medium, High (константы класса)
        'DESCRIPTION' => 'Описание',
        'DIRECTION' => CCrmActivityDirection::Outgoing, //актуально для типов дел, где может быть направление
                                                        //(входящий или исходящий - телефон или email),
                                                        //может быть Outgoing, Incoming (константы класса)
        'BINDINGS' => array(
            array(
                'OWNER_TYPE_ID' => CCrmOwnerType::Deal,
                'OWNER_ID' => 666
            )
        ), //массив дополнительных связей - например, звонок привязан к сделке (основная привязка),
           // но еще относится к контакту - с КЕМ звонок.

        'ORIGIN_ID' => 'XYZ_1' //некий внешний идентификатор, опционально
    );

    CCrmActivity::Add($fields, true);
}


CRM в ядре D7

Список классов модуля CRM в ядре D7.

Класс, пространство имён | Описание
Activity | Пространство имён содержит классы для работы с делами в CRM.
Automation | Пространство имён cодержит классы для автоматизации продаж в CRM.
BankDetailTable | Класс предназначен для работы с банковскими реквизитами.
Binding | Пространство имён классов для множественных привязок сущностей CRM.
CallList | Подпространство имён содержит классы для работы со звонками.
Category | Пространство имён классов для работы с Направлениями.
Color | Пространство имён классов для хранения цветовых схем стадий Сделки, статусов Лида и Предложения в CRM.
CommunicationType | класс для работы с типами связей.
CompanyAddress | Класс для хранения адресов Компаний.
Config | Пространство имён классов для хранения пользовательских настроек в контексте определенной сущности.
ContactAddress | Класс для хранения адресов Контактов.
Conversion | Пространство имён классов для конвертации сущностей CRM.
Entity | Пространство имён содержит классы для работы с сущностями.
EntityAddress | Класс для хранения адресов сущностей.
EntityBankDetail | Класс для работы с банковскими реквизитами.
EntityRequisite | Класс для работы с реквизитами сущности.
Entry | Пространство имён содержит классы для хранения отдельных записей.
Integration | Пространство имён классов для для взаимодействия с другими модулями - интеграции.
Integrity | Пространство имён содержит классы для контроля, поиска, отслеживания и объединения дубликатов.
InvoiceTable | Класс предназначен для работы с таблицей счетов.
Kanban | Пространство имён содержит классы для работы с канбаном.
LeadAddress | Класс для хранения адресов Лидов.
Merger | Пространство имён классов, используемых при управлении дубликатами, при конвертации и для объединения полей сущностей.
PresetTable | Класс ORM для работы с шаблонами реквизитов CRM.
Preview | Пространство имён классов, используемых при формировании "богатых ссылок" на сущности CRM.
Requisite | Пространство имён классов, используемых для конвертации реквизитов из сущностей.
RequisiteAddress | Класс для хранения адресов реквизитов.
RequisiteTable | Класс для работы с реквизитами сущностей.
Restriction | Пространство имён содержит классы для работы с ограничениями.
Settings | Пространство имён классов и методов для выполнения различных неосновных настроек системы CRM.
Statistics | Пространство имён классов, используемых для сбора данных для построения аналитических отчетов.
Synchronization | Пространство имён классов, используемых для синхронизации наборов пользовательских полей между различными типами сущностей.
Widget | Виджеты, используемые для построения аналитических отчётов.


CRM-формы и Виджет на сайт

Внимание! Виджет работает на любом сайте, даже если он собран не на "1С-Битрикс: Управление сайтом". Но на сайте сделанном на "1С-Битрикс: Управление сайтом" нужно быть внимательным с версией Главного модуля. Требуется не ниже 19.0.0.

Примеры работы с виджетом на сайте

Добавление своего канала и кнопки

BX.addCustomEvent(document, "b24-sitebutton-load", function (e, instance){
    instance.buttons.add({
      'id': 'my-mail',
      'href': 'mailto: andrey@bitrix.ru',
      'title': 'Email me',
      'target': '_self',
      'sort': 1000,
      'icon': 'http://sparkysite.ru/medium/mails/mails01/mmail01.png',
      'onclick': function() {console.log('button my-mail clicked!!!');},
    });
});
То же самое, с jQuery

$( document ).on( "b24-sitebutton-load", function (e, instance){
    instance.buttons.add({
      'id': 'my-mail',
      'href': 'mailto: andrey@bitrix.ru',
      'title': 'Email me',
      'target': '_self',
      'sort': 1000,
      'icon': 'http://sparkysite.ru/medium/mails/mails01/mmail01.png',
      'onclick': function() {console.log('button my-mail clicked!!!');},
    });
});

Изменение заголовков панелей форм

BX.addCustomEvent(document, "b24-sitebutton-load-widget-crmform", function (e, widget){
    widget.caption = 'Заголовок формы';
});
BX.addCustomEvent(document, "b24-sitebutton-load-widget-callback", function (e, widget){
    widget.caption = 'Заголовок звонка';
});
То же самое, с jQuery

$( document ).on( "b24-sitebutton-load-widget-crmform", function (e, widget){
    widget.caption = 'Заголовок формы';
});
$( document ).on( "b24-sitebutton-load-widget-callback", function (e, widget){
    widget.caption = 'Заголовок звонка';
});

Передача предустановленных значений в CRM-форму

BX.addCustomEvent(document, "b24-sitebutton-form-init", function (e, form){
      form.fields = {
         'values': {
            'LEAD_PHONE': '+71111111111',
            'LEAD_NAME': 'Андрей'
         }
      };
});
То же самое, с jQuery

$( document ).on( "b24-sitebutton-form-init", function (e, form){
      form.fields = {
         'values': {
            'LEAD_PHONE': '+71111111111',
            'LEAD_NAME': 'Андрей'
         }
      };
});

Своё приветствие через события

BX.addCustomEvent(document, "b24-sitebutton-load", function (e, instance){
   instance.hello.setConditions([{
      'icon': 'http://crm.bitrix24.com/upload/main/76d/52b.jpg',
      'name': 'Виктория',
      'text': 'Привет! Нужна помощь?',
      'page': '',
      'delay': 1
   }]);
});
То же самое, с jQuery

$( document ).on( "b24-sitebutton-load", function (e, instance){
   instance.hello.setConditions([{
      'icon': 'http://crm.bitrix24.com/upload/main/76d/52b.jpg',
      'name': 'Виктория',
      'text': 'Привет! Нужна помощь?',
      'page': '',
      'delay': 1
   }]);
});


Константы

Константа | Проверяется | С версии
ADMIN_SECTION | CCrmWebDavHelper::SaveEmailAttachment | 12.0.4
BX_UTF | CCrmExternalSaleProxy::RequestToString | 11.5.0
CRM_ERROR_LOG | CCrmExternalSaleImport::AddMessage2Log | 11.5.0
LANG_CHARSET | CCrmActivityEmailSender::TrySendEmail | 12.5.9


События

Дела

Событие | Вызывается | Метод | С версии
OnActivityAdd | при добавлении дела к сущности. | CCrmActivity::Add | 12.0.2
OnActivityDelete | при удалении дела. | CCrmActivity::Delete | 12.0.2
OnActivityUpdate | при изменении дела. | CCrmActivity::Update | 12.0.2
OnBeforeActivityDelete | перед удалением дела. | CCrmActivity::Delete | 12.0.2

Каталог товаров

Событие | Вызывается | Метод | С версии
OnBeforeCrmCatalogDelete | перед удалением каталога товаров crm. | CCrmCatalog::Delete | 11.5.0
OnCrmCatalogDelete | при удалении каталога товаров CRM. | OnCrmCatalogDelete | 11.5.0

Почтовый шаблон

Событие | Вызывается | Метод | С версии
OnBeforeMailTemplateDelete | перед удалением почтового шаблона. | CCrmMailTemplate::Delete | 12.5.0
OnMailTemplateAdd | при добавлении почтового шаблона. | CCrmMailTemplate::Add | 12.5.0
OnMailTemplateDelete | при удалении почтового шаблона. | CCrmMailTemplate::Delete | 12.5.0
OnMailTemplateUpdate | при изменении почтового шаблона. | CCrmMailTemplate::Update | 12.5.0

Товары

Событие | Вызывается | Метод | С версии
OnBeforeCrmProductDelete | перед удалением товара crm. | CCrmProduct::Delete | 11.5.0
OnCrmProductDelete | при удалении товара CRM. | CCrmProduct::Delete | 11.5.0
OnAfterCrmProductUpdate | после обвноления товара CRM. | CCrmProduct::Update | 11.5.0

Компании

Событие | Вызывается | Метод | С версии
OnAfterCrmCompanyAdd | после добавления компании. | CCrmCompany::Add | 10.0.1
OnAfterCrmCompanyUpdate | после изменения компании. | CCrmCompany::Update | 10.0.1
OnBeforeCrmCompanyDelete | перед удалением компании. | CCrmCompany::Delete | 10.0.1
OnBeforeCrmCompanyAdd | перед добавлением компании | CCrmCompany::Add | 10.0.1
OnBeforeCrmCompanyUpdate | перед изменением компании | CCrmCompany::Update | 10.0.1
OnAfterCrmCompanyDelete | после удаления компании. | CCrmCompany::Delete | 10.0.1
OnAfterExternalCrmCompanyAdd | после добавления внешней компании. | CCrmCompany::Add | 10.0.1

Контакты

Событие | Вызывается | Метод | С версии
OnAfterCrmContactAdd | после добавления контакта. | CCrmContact::Add | 10.0.1
OnAfterCrmContactUpdate | после изменения контакта. | CCrmContact::Update | 10.0.1
OnBeforeCrmContactDelete | перед удалением контакта. | CCrmContact::Delete | 10.0.1
OnBeforeCrmContactAdd | перед добавлением контакта. | CCrmContact::Add | 10.0.1
OnBeforeCrmContactUpdate | перед изменением контакта. | CCrmContact::Update | 10.0.1
OnAfterExternalCrmContactAdd | после добавления внешнего контакта. | CCrmContact::Add | 10.0.1
OnAfterCrmContactDelete | после удаления контакта. | CCrmContact::Delete | 10.0.1

Сделки

Событие | Вызывается | Метод | С версии
OnAfterCrmDealAdd | после добавления сделки. | CCrmDeal::Add | 10.0.1
OnAfterCrmDealUpdate | после изменения сделки. | CCrmDeal::Update | 10.0.1
OnBeforeCrmDealDelete | перед удалением сделки. | CCrmDeal::Delete | 10.0.1
OnBeforeCrmDealAdd | перед добавлением сделки. | CCrmDeal::Add | 10.0.1
OnBeforeCrmDealUpdate | перед изменением сделки. | CCrmDeal::Update | 10.0.1
OnAfterCrmDealDelete | после удаления сделки. | CCrmDeal::Delete | 10.0.1
OnAfterExternalCrmDealAdd | после добавления внешней сделки. | CCrmDeal::Add | 10.0.1
OnAfterCrmDealProductRowsSave | после добавления товара в сделку. | CCrmDeal::SaveProductRows | 10.0.1

Лиды

Событие | Вызывается | Метод | С версии
OnAfterCrmLeadAdd | после добавления лида. | CCrmLead::Add | 10.0.0
OnAfterCrmLeadUpdate | после изменения лида. | CCrmLead::Update | 10.0.0
OnBeforeCrmLeadDelete | перед удалением лида. | CCrmLead::Delete | 10.0.0
OnBeforeCrmLeadAdd | перед добавлением лида. | CCrmLead::Add | 10.0.0
OnBeforeCrmLeadUpdate | перед изменением лида. | CCrmLead::Update | 10.0.0
OnAfterCrmLeadDelete | после удалениея лида. | CCrmLead::Delete | 10.0.0
OnAfterExternalCrmLeadAdd | после добавления внешнего лида. | CCrmLead::Add | 10.0.0
OnAfterCrmLeadProductRowsSave | после добавления товара в лид. | CCrmLead::SaveProductRows | 10.0.0

Коммерческие предложения

Событие | Вызывается | Метод | С версии
OnBeforeCrmQuoteAdd | перед добавлением коммерческого предложения | CCrmQuote::Add |
OnAfterCrmQuoteAdd | после добавления коммерческого предложения | CCrmQuote::Add |
OnBeforeCrmQuoteUpdate | перед обновлением коммерческого предложения | CCrmQuote::Update |
OnAfterCrmQuoteUpdate | после обновления коммерческого предложения | CCrmQuote::Update |
OnBeforeCrmQuoteDelete | перед удалением коммерческого предложения | CCrmQuote::Delete |
OnAfterCrmQuoteDelete | после удаления коммерческого предложения | CCrmQuote::Delete |
OnBeforeCrmQuoteNumberSet | перед присвоением номера коммерческому предложению | CCrmQuote::SetQuoteNumber |
OnAfterCrmQuoteProductRowsSave | после добавления товара в коммерческое предложение | CCrmQuote::SaveProductRows |

Счета

Событие | Вызывается | Метод | С версии
OnBeforeCrmInvoiceUpdate | перед обновлением счёта | CCrmInvoice::Add |
OnBeforeCrmInvoiceAdd | перед добавлением счёта | CCrmInvoice::Add |
OnBeforeCrmInvoiceDelete | перед удалением счёта | CCrmInvoice::Delete |
OnAfterCrmInvoiceDelete | после удаления счёта | CCrmInvoice::Delete |
OnBeforeCrmInvoiceSetStatus | перед установкой статуса счёта | CCrmInvoice::SetStatus |
OnAfterCrmInvoiceSetStatus | после установки статуса счёта | CCrmInvoice::SetStatus |

Корзина

Событие | Вызывается | Метод | С версии
OnAfterMoveToRecycleBin | после перемещения документа в корзину | BaseController::fireAfterMoveToBinEvent |
OnAfterRecoverFromRecycleBin | после восстановления документа из корзины | BaseController::fireAfterRecoverEvent |
OnAfterEraseFromRecycleBin | после очистки корзины | BaseController::fireAfterEraseEvent |

Другие события

Событие | Вызывается | Метод | С версии
OnGetEntityTypes | после построения списка типов сущностей. | CCrmStatus::GetEntityTypes | 11.5.0
OnAfterCrmAddEvent | после добавления события. | CCrmEvent::Add | 10.0.6
OnGetActivityProviders | при получении списка активных провайдеров | ProviderManager::getProviders |
OnBeforeCrmAddEvent | перед добавлением события. | CCrmEvent::Add | 10.0.6
OnBeforeCrmEventDelete | перед удалением события. | CCrmEvent::Delete | 10.0.6
OnBeforeCrmEventDeleteByElement | перед удалением всех событий, связанных с конкретной сущностью. | CCrmEvent::DeleteByElement | 10.0.6
*OnCrmStatusGetList | при запросе CCrmStatus::GetStatus | OnCrmStatusGetList | 12.5.7
* используется для переопределения статусов в базе данных. Рекомендуется не использовать.


Классы

Классы

Класс | Описание | С версии
CCrmActivity | Класс для работы с Моими Делами. | 12.0.2


CCRMActivity

Методы класса

Метод | Описание | С версии
Add | Метод добавляет Дело. |
SaveCommunications | Метод сохраняет связи Дела. |


Add

CRM>Классы>CCRMActivity>Add

CCRMActivity::Add

Описание и параметры

integer
CCrmActivity::Add(
array arFields,
bool checkPerms = true,
bool regEvent = true,
array options
);

Метод служит для добавления нового Дела. Метод статический.

Параметры вызова

Параметр | Описание | С версии
arFields Массив параметров Дела, содержит следующие поля:
  • TYPE_ID - числовой идентификатор типа дела.
    В классе-справочнике \CCrmActivityType описаны 4 стандартных типа дела, которые были ранее (Встреча, Звонок, Задача, Email). Для новых дел необходимо проставлять тип \CCrmActivityType::Custom.
  • PROVIDER_ID - строковый идентификатор провайдера.
    ID зарегистрированного провайдера. Должен состоять из названия модуля и сущности, например VOXIMPLANT_CALL.
  • PROVIDER_TYPE_ID - cтроковый идентификатор типа дела провайдера.
    Идентификатор типа дела в рамках провайдера дела. (Когда один провайдер генерирует свои подтипы дел).
  • BINDINGS - массив привязки к сущностям CRM.
    Должна быть как минимум одна привязка к сущности CRM.
    $arFields['BINDINGS'][] = array(
   'OWNER_ID' => $crmEntity['ENTITY_ID'],
   'OWNER_TYPE_ID' => $crmEntity['ENTITY_TYPE']
);
  • ASSOCIATED_ENTITY_ID - ID сущности, которое порождает дело (если есть). Число.
    Например, для дел типа Задача - здесь хранится ID задачи.
  • SUBJECT - тема (Название) дела.
    "Исходящий звонок с Владимиром".
  • COMPLETED - флаг завершенности дела (Y/N).
    Используется, когда дело имеет понятие "дело выполнено", "дело не выполнено".
  • RESPONSIBLE_ID - ID ответственного пользователя.
    ID пользователя, который назначен ответственным за выполение дела.
  • PRIORITY - числовой идентификатор приоритета дела.
    Значение берется из класса-справочника \CCrmActivityPriority. В новом планировщике останется только пометка "Важное дело", поэтому имеет смысл использовать, либо \CCrmActivityPriority::Medium либо \CCrmActivityPriority::High.
  • NOTIFY_TYPE - числовой идентификатор типа напоминания.
    Значения берутся из \CCrmActivityNotifyType. Минуты, часы, дни.
  • NOTIFY_VALUE - числовое значение напоминания.
    За сколько минут (часов, дней) необходимо напомнить о деле.
  • DESCRIPTION - описание, текст.
    Поле "Описание дела".
  • DESCRIPTION_TYPE - тип описания.
    Значения из справочника \CCrmContentType (PlainText, BBCode, Html).
  • DIRECTION - направление.
    Справочник \CCrmActivityDirection. Бывают входящие и исходящие дела.
  • LOCATION - место проведения, текст.
    На данный момент используется в деле типа Встреча.
  • START_TIME - дата начала дела (datetime).
  • END_TIME - дата завершения дела (datetime).
    Устанавливается для дел с продолжительностью выполнения.
  • STORAGE_TYPE_ID - тип хранилища для вложений.
    Хранилище по умолчанию CCrmActivity::GetDefaultStorageTypeID().
  • STORAGE_ELEMENT_IDS - массив ID вложений.
    Массив с ID объектов указанного типа хранилища.
  • PARENT_ID - ID дела-родителя.
    На данный момент используется в типе дела Email. Будет использовано для построения цепочки дел.
  • AUTHOR_ID - ID cоздателя.
    ID пользователя, создавшего дело.
  • ORIGINATOR_ID - идентификатор внешней информационной базы.
    Используется для связи с внешними сущностями (1C).
  • ORIGIN_ID - идентификатор сущности во внешней информационной базе.
    Используется для связи с внешними сущностями (1C, Voximplant).
  • PROVIDER_PARAMS - массив параметров провайдера.
    Зарезервированное текстовое поле для параметров провайдера. Принимает только массив.
  • PROVIDER_DATA - данные провайдера в произвольном виде (longtext).
    Зарезервированное текстовое поле для данных провайдера.
  • RESULT_VALUE - число (формат 18.4).
    Коэффициент "важности" дела, для расчета коммуникационной нагрузки. У каждого типа дел может быть свой. Например, для звонков - продолжительность звонка.
  • RESULT_SUM - число (формат 18.4).
    Сумма вырученных денег.
  • RESULT_CURRENCY_ID - строка (3 символа).
    Код валюты вырученных денег.
checkPerms | Параметр проверяет права на Дело. Может принимать значения true или false.
regEvent | Параметр указывает, регистрировать ли Дело в Истории CRM. Может принимать значения true или false.
options Массив дополнительных параметров, содержит следующие поля:
  • SKIP_CALENDAR_EVENT - не добавлять запись в Календарь.
    true или false.
  • REGISTER_SONET_EVENT - создавать запись в Живой ленте.
    true или false.
с версии 12.0.7

Возвращаемые значения

Возвращает идентификатор ID созданного Дела.

Примеры использования

$ID = CCrmActivity::Add($arFields, false, true, array('REGISTER_SONET_EVENT' => true));
if($ID > 0)
{
   CCrmActivity::SaveCommunications($ID, $arComms, $arFields, true, false);
}


SaveCommunications

CRM>Классы>CCRMActivity>SaveCommunications (доступен с 12.0.2)

CCRMActivity::SaveCommunications

array
CCrmActivity::SaveCommunications(
integer ID,
array arComms,
array arFields,
bool registerEvents = true,
bool checkPerms = true,
);

Метод служит для сохранения связей Дела. Метод статический.

Параметры функции

Параметр | Описание
ID | Идентификатор Дела.
arComms Массив коммуникаций Дела (email компании, номер телефона).
$arComms = array(
   array(
      'ID' => 0,
      'TYPE' => 'PHONE',
      'VALUE' => $params['PHONE_NUMBER'],
      'ENTITY_ID' => $crmEntity['ENTITY_ID'],
      'ENTITY_TYPE_ID' => $crmEntity['ENTITY_TYPE']
   )
);
arFields | Массив параметров Дела.
registerEvents | Параметр указывает, регистрировать ли Дело в Истории CRM. Может принимать значения true или false.
checkPerms | Параметр проверяет права на Дело. Может принимать значения true или false.

Возвращаемое значение

Метод возвращает массив связей Дела.


Highload-блоки

Модуль Highload-блоки - это модуль для работы с данными в условиях высоких нагрузок. Каждый highload-блок - это быстрый справочник без поддержки иерархии и с ограниченной поддержкой свойств. Highload-блоки могут обращаться к базе данных в том числе и через HandlerSocket и работать с большими объёмами данных. Они хранят элементы в своих таблицах и используют свои индексы.

Подробнее ознакомиться с принципами работы модуля вы можете в курсе [image].

Важно! Нельзя вызывать highloadblock до обработчика пользовательских свойств.


Highload-блоки в ядре D7

Список классов модуля Highload-блоки в ядре D7

Класс | Описание
DataManager | Класс для работы с данными highload-блоков.
HighloadBlockLangTable | Класс для работы с таблицей языкозависимых параметров highload-блоков.
HighloadBlockRightsTable | Класс для работы с таблицей прав к highload-блокам.
HighloadBlockTable | Класс для работы с таблицей highload-блоков.


Классы

  • CIBlockPropertyDirectory


CIBlockPropertyDirectory

Методы класса

Метод | Описание | С версии
createHighloadTableName | Метод генерирует название таблицы. | 15.0.3


createHighloadTableName

Highload-блоки>Классы>CIBlockPropertyDirectory>createHighloadTableName (доступен с 15.0.3)

CIBlockPropertyDirectory::createHighloadTableName

string CIBlockPropertyDirectory::createHighloadTableName(
 string name
 );

Метод генерирует название таблицы на основе названия сущности name и константы класса TABLE_PREFIX.

Параметры вызова

Параметр | Описание
name | Название сущности (highload-блока).

Возвращаемое значение

Метод возвращает название таблицы в базе данных.


GetPublicEditHTML

Highload-блоки>Классы>CIBlockPropertyDirectory>GetPublicEditHTML (доступен с 16.5.0)

CIBlockPropertyDirectory::GetPublicEditHTML

string CIBlockPropertyDirectory::GetPublicEditHTML(
 array property,
 array value,
 array control
 );

Метод должен вернуть HTML отображения элемента управления для редактирования значений свойства в публичной части сайта. Метод статический.

Параметры вызова

Параметр | Описание
property | Метаданные свойства. См. Свойства элементов инфоблока .
value Значение свойства. Массив вида:
array(
"VALUE" => значение,
"DESCRIPTION" => описание,
);
control Имена элементов управления для заполнения значения свойства и его описания. Массив вида:
array(
"VALUE" => html безопасное имя для значения,
"DESCRIPTION" => html безопасное имя для описания,
"FORM_NAME" => имя формы в которую будет встроен элемент управления.
);

Возвращаемое значение

Строка.


js библиотека

Описание JS-библиотеки Bitrix Framework и используемых им сторонних библиотек.


Введение

Введение

В данном разделе представлено описание Javascript-библиотеки Bitrix Framework

Документация по данной библиотеке предполагает уверенные знания разработчика в JavaScript.

Javascript-библиотека Битрикс очень разнообразна. Основным (главным) классом является класс BX. Также к услугам разработчика представлено достаточно большое количество расширений. Например, расширение по работе с датами. К сожалению, не все расширения описаны в документации, но мы постоянно работаем над этим и количество описанных расширений растет.

Для подключения библиотеки предусмотрен серверный метод

CJSCore::Init (
       [array $arExtensions]
)

Метод подключает ядро, стили и языковые сообщения библиотеки.

Параметры функции

Параметр | Описание
$arExtensions | Массив требуемых расширений библиотеки. Необязательный.

К примеру, код подключения ядра и двух расширений:

CJSCore::Init(array('ajax', 'window'))

Использование своего кода

JavaScript-код пишется в отдельном js-файле шаблона сайта, js-файле шаблона компонента, или отдельно расположенном js-файле, подключаемом программно (подробнее о подключении JS-кода можно прочитать в курсе [image]). Любой код с использованием библиотеки должен быть расположен внутри метода BX.ready(). К примеру:

BX.ready(function(){
    //здесь ваш код
});

Это позволит запуститься вашему коду только когда DOM-структура будет полностью загружена и сформирована.

Для дальнейшей простой работы с BX надо уяснить для себя два простых правила:

  • Все методы библиотеки работают только с конкретным элементом DOM-структуры. При работе в других фреймворках вы привыкли задавать селектор, и с возвращаемыми объектами сразу производить какие-то действия (к примеру, $(‘input).remove()). В BX такого нет, в BX нужно сначала получить элемент, или массив элементов, и произвести действие с каждым отдельно. Ссылка на конкретный элемент DOM-структуры можно получить методом BX(‘атрибут id DOM-элемента’);
  • Большинство методов работает по парному принципу - первым параметром идет элемент, вторым (и далее) параметром - некие данные, которые применяются к указанному элементу (к примеру, BX.setOpacity). Оставшаяся часть методов работает по формату BX.метод(элемент) (к примеру, BX.focus).

В качестве закрепления информации приведем код для удаления всех тегов input в административной части сайта:

BX.ready(function(){
    var fields = BX.findChild(BX('bx-admin-prefix'), {tag: 'input'}, true, true);
    fields.forEach(function(element){
        BX(element).remove();
    });
});

Смотрите также

  • JS-библиотека: типовые ошибки и советы


Сторонние библиотеки

Кроме собственной JS-библиотеки в Bitrix Framework используются включённые в продукт сторонние прориентарные библиотеки:

amCharts

Библиотека [image] для построения различных графиков, лицензия на которую включена 1С-Битрикс любой редакции.

Подключение библиотеки amCharts осуществляется стандартным способом:

CJSCore::Init(['amcharts']);

Подключать библиотеку необходимо в зависимости от типа графика:

amcharts - Базовая библиотека
amcharts_funnel – Воронка, пирамида Маслоу
amcharts_gauge – Диаграмма в виде спидометра
amcharts_pie – Круговая диаграмма
amcharts_radar – Радарная диаграмма
amcharts_serial – Обычные графики
amcharts_xy – График XY

MaskedInput

Библиотека для указания масок ввода, альтернатива jquery.maskedinput.

<?php

CJSCore::Init(['masked_input']);
?>

<input type="text" id="phone" placeholder="Укажите ваш телефон" />

<script>
    BX.ready(function() {
        var result = new BX.MaskedInput({
            mask: '+7 999 999 99 99', // устанавливаем маску
            input: BX('phone'),
            placeholder: '_' // символ замены +7 ___ ___ __ __
        });

        result.setValue('9000000000'); // устанавливаем значение
    });
</script>

PhoneNumber

Для масок телефонного номера используйте библиотеку phone_number.

<?php

CJSCore::Init(['phone_number']);
?>

<span id="flag"></span>
<input type="text" id="number" placeholder="Укажите ваш телефон" />

<script>
    BX.ready(function() {
        new BX.PhoneNumber.Input({
            node: BX('number'),
            flagNode: BX('flag'), //
            flagSize: 16, // Размер флага [16, 24, 32]
            defaultCountry: 'ru', // Страна по-умолчанию
            onChange: function(e) {
              // вызывается при изменении значения
            }
        });
    });
</script>


Ядро библиотеки

Метод | Описание | С версии
BX | Функция для сокращения примитивных действий. |
BX.extend | Функция для реализации ООП. |
BX.message | Доступ к языковым сообщениям. |
BX.bitrix_sessid | Для получения текущего идентификатора сессии. |


BX

mixed
BX(
 mixed param
);

Функция для сокращения примитивных действий. Действие зависит от типа параметра param:

  • Строка: функция вернет ссылку на узел DOM-структуры с идентификатором param. (Действие будет аналогично document.getElementById, но экономит ресурсы.)
  • Ссылка на узел DOM-структуры: функция вернет ссылку без изменений.
  • Функция: функция будет установлена в качестве обработчика псевдо-события BX.ready.


BX.extend

void
BX.extend(
 object child,
 object parent
);

Функция для реализации ООП в Javascript [image].


BX.message

string
BX.message(
 string param
);
void
BX.message(
 object param
);

Функция обеспечивает доступ к языковым сообщениям. Если параметр param – строка, то будет возвращено языковое сообщение с идентификатором param. В противном случае параметр интерпретируется как объект вида {идентификатор: языковое сообщение, идентификатор: языковое сообщение}; языковые сообщения добавляются к текущим (перезаписывая существующие).

Примечание: помимо языковых сообщений доступно несколько серверных констант типа текущего языка или текущего пользователя.


BX.bitrix_sessid

string
BX.bitrix_sessid(
);

Получение текущего идентификатора сессии. Аналогично BX.message(‘bitrix_sessid’).


Позиционирование

Функция | Описание | С версии
BX.GetWindowInnerSize | Получение текущего просматриваемого размера окна.
BX.GetWindowScrollPos | Получение текущей позиции прокрутки страницы.
BX.GetWindowScrollSize | Получение текущего размера страницы.
BX.GetWindowSize | Объединение всех трех вышеперечисленных в один вызов.
Object
BX.pos(
 DOMNode node,
 bool bRelative
);

Получение абсолютной позиции элемента на экране.

Возвращает объект с ключами top, left, width, bottom, right, height.

Если указать bRelative=true, то будут считаться относительно ближайшего родителя с абсолютным или относительным позиционированием.

Примечание: Может некорректно работать для элементов с фиксированной позицией (position: fixed) или для их дочерних элементов.


Типы данных

Несколько функций для определения типа данных переменной собраны в объекте BX.type:

Функция | Определяет | С версии
BX.type.isString | является ли аргумент строкой. |
BX.type.isNotEmptyString | является ли аргумент непустой строкой |
BX.type.isBoolean | является ли аргумент булевой переменной |
BX.type.isNumber | является ли аргумент числом |
BX.type.isFunction | является ли аргумент функцией |
BX.type.isDomNode | является ли аргумент узлом DOM-структуры |
BX.type.isElementNode | является ли аргумент элементом DOM-структуры (например, не document) |
BX.type.isArray | является ли аргумент массивом |
BX.type.isDate | является ли аргумент экземпляром класса Date. |


Браузеры

Все функции возвращают Boolean и не принимают ничего (кроме BX.browser.isPropertySupported)

Функция | Описание
BX.browser.IsIE | Является ли текущий браузер Internet Explorer’ом
BX.browser.IsIE6 | Является ли текущий браузер Internet Explorer’ом версии 6.
BX.browser.IsIE7 | Является ли текущий браузер Internet Explorer’ом версии 7.
BX.browser.IsIE8 | Является ли текущий браузер Internet Explorer’ом версии 8.
BX.browser.IsIE9 | Является ли текущий браузер Internet Explorer’ом версии 9 и выше.
BX.browser.IsIE10 | Является ли текущий браузер Internet Explorer’ом версии 10 и выше.
BX.browser.IsIE11 | Является ли текущий браузер Internet Explorer’ом версии 11.
BX.browser.DetectIeVersion | Возращает версию IE (целое число).
BX.browser.IsOpera | Является ли текущий браузер Oper'ой
BX.browser.IsFirefox | Является ли текущий браузер Firefox.
BX.browser.IsMobile | Является ли текущий браузер браузером мобильного устройства.
BX.browser.IsSafari | Является ли текущий браузер Safari
BX.browser.IsChrome | Является ли текущий браузер Chrom’ом
BX.browser.IsMac | Является ли операционная система MacOS
BX.browser.IsIOS | Является ли операционная система IOS
BX.browser.IsAndroid | Является ли операционная система Android
BX.browser.IsDoctype | Проверка на quirks mode
BX.browser.SupportLocalStorage | Можно ли использовать локальное хранилище (включая проверку на подключение core_ls)
BX.browser.isPropertySupported | Проверка поддержки CSS3-свойств в браузере (transform, transition и др).


Управление DOM-структурой

Метод | Описание | С версии
BX.create | Создание узла DOM-структуры.
BX.adjust | Изменяет свойства узла DOM-структуры.
BX.addClass/BX.removeClass | Добавляет/удаляет узлу CSS-класс
BX.findChild, BX.findChildren, BX.findParent, BX.findNextSibling, BX.findPreviousSibling | Пакет функций поиска узлов в DOM-структуре, подходящих по заданным параметрам.
BX.toggleClass | Переключает наличие/отсутствие CSS-класса у узла DOM или осуществляет ротацию CSS-классов по списку.
BX.hasClass | Проверяет наличие CSS-класса у узла DOM.
BX.style | Получает или устанавливает текущее значение CSS-стиля узла DOM
BX.remove | Удаляет узел DOM-структуры.
BX.cleanNode | Очищает узла DOM-структуры от всех дочерних элементов.
BX.show(DOMNode node)/BX.hide(DOMNode node) | Показать/скрыть узел.
BX.focus | Устанавливает фокус на элементе.
BX.isNodeHidden | Определяет, скрыт ли указанный элемент DOM.
BX.scrollToNode | Прокручивает окно к позиции указанного элемента в DOM-структуре.
BX.setOpacity | Устанавливает уровень прозрачности элемента веб-страницы.
BX.setUnselectable/BX.setSelectable | Функции выключают / включают возможность пользовательского выделения внутри передаваемого элемента.
BX.width/BX.height | Возвращает (или задает) ширину, высоту элемента DOM.
BX.selectUtils.* | Работа со списками (select).
BX.toggle(DOMNode node) | Показывает, скрывает элемент DOM.
BX.insertAfter(node, dstNode) Вставляет ноду сразу после целевой.
Параметры:
  • node - новая нода
  • dstNode - целевая нода
BX.prepend(node, dstNode) Помещает ноду в начало содержимого целевой.
Параметры:
  • node - новая нода
  • dstNode - целевая нода
BX.append(node, dstNode) Помещает ноду в конец содержимого целевой.
Параметры:
  • node - новая нода
  • dstNode - целевая нода
BX.insertBefore(node, dstNode) | Для вставки до соответствующей ноды.


BX.create

Описание и параметры

DOMNode
BX.create(
 tag[,
 data[,
 context]]
);
или
DOMNode
BX.create(
 data[,
 context]
);

Создание узла DOM-структуры. Допускает при создании узла "подвеску" на него каких-то событий.

Параметры функции

Параметр | Описание
tag | Строка с tagName узла. Если он не указан (первый параметр - объект), то имя тэга должно содержаться в свойстве tag описательного объекта data.
data Описательный объект, может иметь следующие поля:
  • tag: имя_тэга_узла,
  • props: дополнительные свойства, например, className,
  • style: стили узла,
  • events: обработчики событий узла,
  • attrs: для основных полей,
  • dataset: перечень data-атрибутов,
  • children: массив дочерних узлов, необязательный
  • text: текстовое содержимое узла,
  • html: HTML-содержимое узла

Примечание: Параметры text, html и children не совместимы между собой.
context | Ссылка на контекст, в котором должен быть создан узел, необязательный.

Возвращаемое значение

Функция вернет ссылку на созданный узел.

Примеры использования

BX.create('input', {'attrs':{'readonly':'readonly'}, props{...}});

Метод незаменим, когда при создании новой DOM-структуры надо на элементы сразу добавлять события:

var completeAction = function(){
   console.log(BX.proxy_context);
};

BX.ready(function(){
   BX.insertAfter(BX.create('span', {
      attrs: {
         className: 'task-view-button'
      },
      dataset: {
         aaa: 123
      },
      events: {
         click: BX.proxy(completeAction, this)
      },
      text: 'Завершить'
   }), completeButton);
});


BX.adjust

Формат описания тот же, что и в BX.create. Но без tag.
DOMNode
BX.adjust(
 DOMNode node,
 object data
);

Функция позволяет изменить свойства узла node.

Параметры функции

Параметр Описание
data Описательный объект, может иметь следующие поля:
  • node: ссылка на изменяемый узел,
  • props: дополнительные свойства, например, className,
  • style: стили узла,
  • events: обработчики событий узла,
  • attrs: для основных полей (это единственный способ задать data-* атрибуты),
  • children: массив дочерних узлов, необязательный
  • text: текстовое содержимое узла,
  • html: HTML-содержимое узла

Примечание: Последние 3 параметра не совместимы между собой.


BX.addClass/BX.removeClass

DOMNode
BX.addClass(
 DOMNode node,
 string className
);

Функция добавляет узлу node CSS-класс className, если он такового не имеет.

DOMNode
BX.removeClass(
 DOMNode node,
 string className
);

Функция добавляет/удаляет узлу node CSS-класс className.


BX.focus

BX.focus(
 DOMNode node
);

Устанавливает фокус на элементе.

Параметры функции

Параметр | Описание
DOMNode node | Нода


BX.isNodeHidden

BX.isNodeHidden(
 DOMNode node
);

Определяет, скрыт ли указанный элемент DOM.

Параметры функции

Параметр | Описание
DOMNode node | Нода


BX.scrollToNode

BX.scrollToNode(
 DOMNode node
);

Прокручивает окно к позиции указанного элемента в DOM-структуре.

Параметры функции

Параметр | Описание
DOMNode node | Нода


BX.selectUtils.*

Работа со списками (select).

Метод | Описание
BX.selectUtils.addNewOption Добавляет в существующий список новое значение.Добавляет в существующий список новое значение. Параметры:
Параметр | Описание
DOMNode node | элемент DOM
string value | значение элемента
string name | название элемента
boolean sort | сортировать после добавления (по умолчанию false)
boolean unique | проверять на уникальность (по умолчанию true)
BX.selectUtils.deleteOption(DOMNode node, string value) | Удаляет из указанного списка значение с указанным значением.
BX.selectUtils.deleteSelectedOptions(DOMNode node) | Удаляет из указанного списка все выделенные значения.
BX.selectUtils.deleteAllOptions(DOMNode node) | Удаляет из указанного списка все значения.
BX.selectUtils.sortSelect(DOMNode node) | Сортирует указанный список.
BX.selectUtils.selectAllOptions(DOMNode node) | Выделяет все значения указанного списка.
BX.selectUtils.selectOption(DOMNode node, string value) | Выделяет указанное значение указанного списка.
BX.selectUtils.moveOptionsUp(DOMNode node) | Перемещает выделенные значения указанного списка на одну позицию вверх.
BX.selectUtils.moveOptionsDown(DOMNode node) | Перемещает выделенные значения указанного списка на одну позицию вниз.


BX.setOpacity

BX.setOpacity(
 DOMNode node,
 integer percentage
);

Метод устанавливает уровень прозрачности элемента веб-страницы.

Параметры функции

Параметр | Описание
DOMNode node | Нода
integer percentage | Процент прозрачности


BX.setUnselectable/BX.setSelectable

Функции выключают / включают возможность пользовательского выделения внутри передаваемого элемента.

Примеры использования

Запретить выделить мышкой элемент с id='adm-title'.

BX.setUnselectable(BX('adm-title'));


BX.toggleClass

DOMNode
BX.toggleClass(
 DOMNode node,
 string|array className
);

Функция переключает наличие/отсутствие CSS-класса className у узла node или производит ротацию CSS-классов, если className – массив.

Примеры

BX.ready(function(){
    BX.bind(BX("test"), "click", function() {
        BX.toggleClass(BX("test"), ["arrowUp", "arrowDown"]);
    });
})


BX.width/BX.height

Возвращает (или задает) ширину, высоту элемента DOM. Первым параметром передаётся элемент DOM. Если не передавать второй параметр (целое число), то вернется значение ширины или высоты. Если передать - значение задается.

Примеры использования

BX.height(BX('adm-title'));
BX.height(BX('adm-title'), 1000);


BX.hasClass

boolean
BX.hasClass(
 DOMNode node,
 string className
);

Функция проверяет, есть ли уже у узла node CSS-класс className.


BX.style

string|DOMNode
BX.style(
 DOMNode node,
 string property[,
 string value]
);

Функция позволяет получить текущее значение стиля property узла node или установить его в значение value. Свойство property указывается в CSS-нотации (например, 'margin-right')

Пример

BX.style(document.body, 'padding', '200px 100px');
alert(BX.style(document.body, 'padding-top')); //200px


BX.remove

null
BX.remove(
 DOMNode node
);

Функция удаляет узел DOM-структуры.


BX.cleanNode

DOMNode|null
BX.cleanNode(
 DOMNode node[,
 bool bSuicide]
);

Функция очищает узел DOM-структуры от всех дочерних элементов. Если вторым параметром передать true, сам узел также будет удален.


Функции поиска

Функционал устарел. Используйте стандартные методы .querySelectorAll и .querySelector.

Описание

Array|DOMNode
BX.findChild(
 DOMNode obj,
 Object params,
 bool recursive
 get_all
);
array|DOMNode
BX.findChildren(
 DOMNode obj,
 Object params,
 bool recursive
);
DOMNode
BX.findParent(
 DOMNode obj,
 Object params,
);
DOMNode
BX.findNextSibling(
 DOMNode obj,
 Object params,
);
DOMNode
BX.findPreviousSibling(
 DOMNode obj,
 Object params,
);

Функции поиска узлов DOM-структуры по набору параметров.

Примечание: BX.findChildren(obj, params, recursive) - синоним BX.findChild(obj, params, recursive, true).

Параметры функции

Параметр | Описание
DOMNode obj | Объект поиска
params Формат объекта, описывающего параметры поиска:
  • tagName|tag: имя тэга требуемого узла,
  • className|class: CSS-класс, который должен содержать требуемый узел,
  • attribute: {attribute: value, attribute: value} | attribute | [attribute, attribute....], - либо объект со списком и конкретными значениями атрибутов, либо атрибут или массив атрибутов, которые должны присутствовать в требуемом узле
  • property: {prop: value, prop: value} | prop | [prop, prop] - либо объект со свойств и конкретными значениями свойств, либо свойство или массив свойств, которые должны присутствовать в требуемом узле

Примечание: Вместо набора параметров можно указать фильтрующую функцию, которая будет вызываться для каждого проверяемого узла DOM-структуры. Функция должна вернуть true или false.
recursive | показывает, что нужно искать не только непосредственно в дочерних элементах узла, а во всем поддереве. По умолчанию – false (только в дочерних).
get_all | вернуть все найденные элементы в виде массива.

Примеры использования

var body = BX.findParent(BX("bx-panel"), {"tag" : "body"});
console.log(body);
obSelect = BX.findChild(BX("menu"), {
        "tag" : "li",
        "class" : "select"
    },
    true
);
obNotEmptyListItem = BX.findChild(
    BX("menu"),
    function(el) {
        return el.tagName.toUpperCase() == 'LI' && !!el.firstChild
    },
    true
);

Пример-аналог $.each: находим всех пасынков id BX(this._id + '_placeholder') с классом crm-qpe-field, применяем к ним некие действия.

var fields = BX.findChild(BX(this._id + '_placeholder'), {class: 'crm-qpe-field'}, true, true);
fields.forEach(function(element){
   console.log(element.getAttribute('name'));
});

На jquery это примерно так:

$.each($( '#' + this ._id + '_placeholder .crm-qpe-field'), function(i, e){
   console.log($(e).attr('name'));
});


Обработка событий

Метод | Описание | С версии
BX.ready | Добавляет обработчик события «DOM-структура доступна для записи». |
BX.bind | Установливает функцию в качестве обработчика события. |
BX.unbind | Снимает обработчик события. |
BX.unbindAll | Снимает все зарегистрированные обработчики событий. |
BX.proxy/BX.delegate | Функции, генерирующие «функцию-делегата». |
BX.denyEvent/BX.allowEvent | Позволяют временно отключить и включить обработку конкретного события в конкретном элементе. |
BX.bindDelegate | Устанавливает обработчик события на дочерние элементы узла, удовлетворяющие заданным условиям. |
BX.fireEvent | Метод эмулирует событие на элементе DOM.. |


BX.ready

void
BX.ready(
 Function handler
);

Функция добавляет обработчик события DOM-структура доступна для записи. Более короткий вариант – BX(Function handler).

Пример

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("События");
   CJSCore::Init();
?>
<a href="http://1c-bitrix.ru" class="css_bind" data-param="HELLO" >click Me</a>
<div class="css_bind" data-param="HELLO2">click Me2</div>

<script>
BX.ready(function(){
   var param1 = ' global Hello';
   BX.bindDelegate(
      document.body, 'click', {className: 'css_bind' },
      function(e){
         if(!e)
            e = window.event;

         alert(this.getAttribute('data-param')+param1);
         return BX.PreventDefault(e);
      }
   );
});
</script>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>


BX.bind

void
BX.bind(
Object|DOMNode el,
String event,
Function handler
);

Функция устанавливает функцию handler в качестве обработчика события event элемента el.

Примечание

Использование BX.delegate (или BX.proxy) предпочтительнее. Это позволит:

  1. делать BX.unbind
  2. не плодить код, а вешать один и тот же обработчик на несколько элементов.

Примеры использования

BX.bind(BX('test'), 'click', function() {alert('click!')})

Получить непосредственно элемент, по которому кликнули.

_hadleMoreButtonClickHandler: function(e)
{
   alert(BX.proxy_context.innerHTML);
}

BX.bind(BX('test'), 'click', BX.delegate(this._hadleMoreButtonClickHandler, this));


BX.unbind

void
BX.unbind(
    DOMNode node,
    string eventName,
    Function callback
);

Функция снимает обработчик handler события event элемента el.

Параметры функции

Параметр | Описание
node | Целевой узел события.
eventName | Имя события, например, click.
callback | обработчик события.


BX.bindDelegate

Описание и параметры

Function
BX.bindDelegate(
   DOMNode node,
   String eventName,
   Object isTarget,
   Function handler
);

Функция устанавливает обработчик handler события eventName на дочерние элементы узла node, удовлетворяющих условиям isTarget. Нюансом метода является независимость от изменений содержимого node: физически обработчик вешается на сам узел node и принимает событие в момент его всплывания от дочерних элементов.

Параметры функции

Параметр | Описание
node | Родительский узел
eventName | Имя события
isTarget | Описание дочерних узлов в формате, аналогичном используемому в функциях поиска
handler | Обработчик события

Возвращаемое значение

Ссылка на реально устанавливаемый обработчик события, которую можно использовать, например, для BX.unbind.

Примеры использования

<style>#my_node td {padding: 2px; height: 30px; width: 30px; text-align: center;}</style>
<table id="my_node" cellpadding="2" cellspacing="0" border="1">
    <tr><td></td><td></td><td></td></tr>
    <tr><td></td><td></td><td></td></tr>
    <tr><td></td><td></td><td></td></tr>
</table>
<script>
var sign = 'x';
BX.bindDelegate(
    BX('my_node'),
    'click',
    {
        tagName: 'TD'
    },
    function()
    {
        this.innerHTML = sign;
        sign = sign == 'x' ? 'o' : 'x';
    }
);
</script>


BX.fireEvent

BX.fireEvent(
 DOMNode node,
 string event
);

Метод эмулирует событие на элементе DOM.

Примечание: Использование метода специфическое и требуется только в некоторых случаях. К примеру, есть метод обработки события "клик" в сторонней библиотеке, но подвешен на другой обработчик. Можно уже в своем коде сделать вызов этого метода, чтобы сэмулировать клик по элементу, который "слушает" сторонний метод.

Параметры функции

Параметр | Описание
DOMNode node | Нода
string event | Событие.


BX.unbindAll

void
ClassName::MethodName(
 [el]
);

Функция снимает все зарегистрированные обработчики событий с элемента el (или вообще все зарегистрированные обработчики событий, если параметр отсутствует).


BX.proxy/BX.delegate

Описание

Function
BX.proxy(
 Function func,
 Object context
);
Function
BX.delegate(
 Function func,
 Object context
);

Две родственных функции, генерирующих «функцию-делегата», которая будет вызывать требуемую функцию в нужном контексте. Это может использоваться, например, для назначения метода какого-либо объекта в качестве обработчика события с сохранением контекста объекта.

Отличие между функциями в том, что BX.proxy при повторном вызове с теми же параметрами вернет не новую функцию-делегата, а ссылку на сгенерированную до этого функцию, что может быть полезно, например, если требуется отменить конкретный обработчик события.

Примечание: BX.delegate - аналог jQuery.proxy [image].

Примеры использования

Код для получения элемента, по которому был произведен клик:

_hadleMoreButtonClickHandler: function(e)
{
   alert(BX.proxy_context.innerHTML);
}

BX.bind(BX('test'), 'click', BX.delegate(this._hadleMoreButtonClickHandler, this));
<script type="text/javascript">
function MyClass()
{
    this.prop = 1;
    BX.bind(BX('link'), 'click', BX.proxy(this.handler, this));
}

MyClass.prototype.handler = function()
{
    alert(this.prop);
    BX.unbind(BX('link'), 'click', BX.proxy(this.handler, this));
}

BX.ready(function(){ new MyClass(); });
</script>
<a href="javascript:void(0)" id="link">Click Me</a>

function MyClass(){}
MyClass.prototype.handler = function(){}

var ob = new MyClass();
alert(BX.delegate(ob.handler, ob) == BX.delegate(ob.handler, ob)); // false
alert(BX.proxy(ob.handler, ob) == BX.proxy(ob.handler, ob)); // true

Также приведем более практический пример, демонстрирующий передачу контекста исполнения при делегировании. Представим, что вызывается анонимная функция в следующем контексте:

My.prototype.test = function(d)
{
    console.log(d);
};
My.prototype.send = function()
{
    BX.ajax.get(this._ajaxPage, post, function(data){
        this.test(data);
    });
};

Достаточно стандартная ситуация, когда после ajax-запроса мы совершаем какие-то действия с данными. Однако при исполнении приведенного кода строка this.test(data); приведет к ошибке (т.к. в данном контексте this будет ссылаться на саму анонимную функцию). Для сохранения прозрачности кода достаточно обернуть вызов анонимной функции в BX.delegate:

My.prototype.test = function(d)
{
    console.log(d);
};
My.prototype.send = function()
{
    BX.ajax.get(this._ajaxPage, post, BX.delegate(function(data){
        this.test(data);
    }, this));
};

На этот раз строка this.test(data) выполнится без ошибок и обратится к методу вашего класса My.


BX.denyEvent/BX.allowEvent

void
BX.denyEvent(
 DOMNode element,
 string event
);
void
BX.allowEvent(
 DOMNode element,
 string event
);

Два метода, позволяющих временно отключить и включить обработку конкретного события в конкретном элементе. Пока что отключаются только обработчики, назначенные через element['on' + event].


Кастомные события

Описание и методы

Библиотека позволяет генерировать свои собственные события и отслеживать их возникновение при помощи обработчиков. Для этого применяются следующие методы.

Метод | Описание | С версии
BX.addCustomEvent | Назначает обработчик кастомному событию. |
BX.removeCustomEvent | Удаляет обработчик кастомного события. |
BX.onCustomEvent | Вызывает все обработчики события для объекта. |
BX.PULL.extendWatch | Продление подписки на тег. (Работает в модуле Push and Pull) | 14.0

Примеры

function Animal(name, diet)
{
    this.name = name;
    this.diet = diet == 'carnivore' ? 'carnivore' : 'herbivore';
}

Animal.prototype.Hungry = function()
{
    if(this.diet == 'carnivore')
        this.Hunt();
    else
        this.Pasture();
}

Animal.prototype.Hunt = function()
{
    BX.addCustomEvent('onAnimalPasture', BX.proxy(function(prey){
        console.log(this.name + ' catches ' + prey.name);
        this.Eat(prey.name);
    }, this));
}

Animal.prototype.Pasture = function()
{
    this.Eat('grass');
    BX.onCustomEvent(this, 'onAnimalPasture', [this]);
}

Animal.prototype.Eat = function(food)
{
    console.log(this.name + ' eats ' + food);
}

var wolf = new Animal('wolf', 'carnivore'),
    deer = new Animal('deer', 'herbivore');

wolf.Hungry();
deer.Hungry();


BX.addCustomEvent

JS библиотека>Ядро библиотеки>Кастомные события>BX.addCustomEvent

Кастомные события::BX.addCustomEvent

Описание

Функция BX.addCustomEvent

Функция подразумевает два варианта входных параметров.

void
BX.addCustomEvent(
 Object eventObject,
 string eventName,
 Function eventHandler
);
void
BX.addCustomEvent(
 string eventName,
 Function eventHandler
);

Функция назначает обработчик eventHandler кастомному событию с именем eventName, возникающем в объекте eventObject. Если eventObject не указан (короткий вызов), то обработчик будет вызываться при каждом вызове события с таким именем в любом объекте.

Получение списка всех событий в системе

При работе с кастомными событиями возникает резонный вопрос - как получить полный список событий, который присутствует в системе (актуально для готовых шаблонов, административной части, и Битрикс24-коробки) ?

Данную задачу можно решить следующим образом - в файле /bitrix/js/main/core/core.js находим:

BX.onCustomEvent(eventObject, eventName, arEventParams, secureParams);

Вставим в его исполнение логирование:

console.log(eventName, arEventParams);

После этого при совершении различных действий на клиенте (клики, push-информации, открытии popup) в лог будут писаться коды событий. Вам останется подобрать нужное.

Примечание: не забудьте удалить в ядре строчку логирования после сбора необходимой информации.

Примеры использования

Как добавить свои шрифты в визуальный редактор

На событии GetFontFamilyList добавить нужные шрифты в массив. Тогда они начнут выводиться в списке шрифтов в редакторе.

BX.addCustomEvent('GetFontFamilyList', BX.delegate(function (fontlist) {
    fontlist.push({value: 'RobotoThin', name: 'RobotoThin'});
    fontlist.push({value: 'RobotoLight', name: 'RobotoLight'});
    fontlist.push({value: 'RobotoRegular', name: 'RobotoRegular'});
    fontlist.push({value: 'RobotoBlack', name: 'RobotoBlack'});

    for(var key in userFonts) {
        fontList.push({value: userFonts[key], name: userFonts[key]})
    }
}));

Как зафиксировать обновление счетчика

Для этого нужно добавить обработчик события:

BX.addCustomEvent("onPullEvent-main", BX.delegate(function(command,params){
   if (command == 'user_counter' && params[BX.message('SITE_ID')] && params[BX.message('SITE_ID')]['__НАЗВАНИЕ_ВАШЕГО_СЧЕТЧИКА__'])
   {
      // вызвать код для обновления счетчика
      // в params[BX.message('SITE_ID')]['__НАЗВАНИЕ_ВАШЕГО_СЧЕТЧИКА__'] будет новое значение счетчика
   }
}, this));

Для мобильной версии:

BX.addCustomEvent("onPull-main", BX.delegate(function(data){
   if (data.command == 'user_counter' && data.params[BX.message('SITE_ID')] && data.params[BX.message('SITE_ID')]['__НАЗВАНИЕ_ВАШЕГО_СЧЕТЧИКА__'])
      {
      // вызвать код для обновления счетчика
      // в data.params[BX.message('SITE_ID')]['__НАЗВАНИЕ_ВАШЕГО_СЧЕТЧИКА__'] будет новое значение счетчика
   }
}, this));

Работа с модулем Push and Pull

Ловушка для страниц десктопной версии (все события кроме событий online):

BX.addCustomEvent("onPullEvent-moduleName", BX.delegate(function(command,params){
   console.log('Events of moduleName', command, params);
}, this));

Ловушка для страниц мобильной версии (все события кроме событий online):

BX.addCustomEvent("onPull-moduleName", BX.delegate(function(data){
    console.log('Events of moduleName', data.command, data.params);
}, this));

Примечание: не забывайте сменить в примере "moduleName" на имя вашего модуля.

Пример кода для работы с PHP классами модуля (Pull, Pull Shared, Pull Watch):

BX.addCustomEvent("onPullEvent-main", function(module_id,command,params) {
    if (command == 'check')
    {
        console.log('Command from module MAIN - its work!');
    }
});

В примере иы подписываемся на событие получение команд (onPullEvent-moduleName), moduleName это название вашего модуля, например main, в функции получаем command, params которые мы указали при отправке команды из PHP, обрабатываем свои команды с учетом вашей логики.

Если ваша логика требует сбора всех событий, то формат немного отличается: (доступно на любой версии pull)

Ловушка для страниц десктопной версии (все события кроме событий online):

BX.addCustomEvent("onPullEvent", BX.delegate(function(module_id,command,params){
   console.log(module_id, command, params);
}, this));

Ловушка для страниц мобильной версии (все события кроме событий online):

BX.addCustomEvent("onPull", BX.delegate(function(data){
    console.log(data.module_id, data.command, data.params);
}, this));

Пример кода для работы с PHP классами модуля (Pull, Pull Shared, Pull Watch):

BX.addCustomEvent("onPullEvent", function(module_id,command,params) {
    if (module_id == "test" && command == 'check')
    {
        console.log('Work!');
    }
});

В примере мы подписываемся на событие получение команд (onPullEvent), в функции получаем module_id, command, params которые мы указали при отправке команды из PHP, обрабатываем свои команды с учетом вашей логики.

Примечания:
  • Для получения данных об онлайне используйте событие [link=888232]onPullOnlineEvent[/link]
  • Лучше использовать обработчики событий для конкретных модулей, вместо обработчика на все события. Такой формат будет более производителен.


BX.removeCustomEvent

JS библиотека>Ядро библиотеки>Кастомные события>BX.removeCustomEvent

Кастомные события::BX.removeCustomEvent

Функция допускает два варианта входных параметров.

void
BX.removeCustomEvent(
 Object eventObject,
 string eventName,
 Function eventHandler
);
void
BX.removeCustomEvent(
 string eventName,
 Function eventHandler
);

Функция удаляет обработчик eventHandler кастомного события с именем eventName.


BX.onCustomEvent

JS библиотека>Ядро библиотеки>Кастомные события>BX.onCustomEvent

Кастомные события::BX.onCustomEvent

Функция позволяет два варианта входных параметров.

void
BX.onCustomEvent(
 Object eventObject,
 string eventName[,
 Array arEventParams]
);
void
BX.onCustomEvent(
 string eventName[,
 Array arEventParams]
);

Функция вызывает все обработчики события eventName для объекта eventObject, а также, все глобальные обработчики (назначенные без указания объекта). Если не указан объект, в котором возникает событие, то будут вызваны только глобальные обработчики. Обработчик будет выполнен в контексте объекта, в котором возникло событие. Значения из массива arEventParams будут переданы в качестве входных параметров обработчика..


Утилиты

Метод | Описание | С версии
BX.toggle | Присваивает параметру param значение из списка.
BX.evalGlobal | Выполнение скрипта в глобальном контексте.
processHTML | Разбор строки HTML с вставками js.
BX.namespace | Создает пространство имен в глобальной объекте BX.
BX.showWait/BX.closeWait | Отображает или скрывает визуализатор загрузки
BX.loadCSS | Загружает и применяет CSS-файл.
BX.loadScript | Загружает и выполняет скрипт.
BX.util | Сборник функций-утилит.
BX.util.hex2rgb(
 color // #fdf9e5 => {r=253, g=249, b=229}
);

Выделяет из описания цвета в формате #RRGGBB числовые значения его цветовых составляющих.

Примеры использования
console.log(BX.util.hex2rgb('#EEBBFF'))
ответ
Object { r=238, g=187, b=255}
BX.getCookie | Возвращает значение cookie с именем name. | 16.5.3
BX.setCookie | Устанавливает cookie. | 16.5.3
BX.Recorder | Класс для записи и кодирования звука. | 16.5.8
BX.parseJSON | Возвращает переданную строку как JSON-объект.


BX.toggle

mixed
BX.toggle(
 mixed param
 array values
);

Функция присваивает параметру param следующее значение из списка, задаваемого values. Если param ссылочного типа, то значение будет присвоено по ссылке.


BX.evalGlobal

void
BX.evalGlobal(
 string script
);

Выполнение скрипта в глобальном контексте.


BX.processHTML

object
BX.processHTML(
 string HTML
);

Разбор строки HTML с вставками js. Результат будет представлять собой объект:

{
   HTML: очищенный HTML,
   SCRIPT: [
      {
         JS: строка скрипта или имя внешнего файла,
         isInternal: true|false – является ли запись готовым скриптом или внешним файлом
      }
    ],
   STYLE: [
    массив подключаемых в коде внешних стилей.
   ]
}

Необходим для работы аяксового расширения.


BX.getCookie

result_type
BX.getCookie(
 name
);

Возвращает значение cookie с именем name.

Параметры функции

Параметр | Описание
name | Имя

Примеры использования

document.cookie = 'test=123456';
BX.getCookie('test'); // вернет - 123456


BX.namespace

object BX.namespace(
 string namespace
)

Создает пространство имен в глобальной объекте BX. Если пространство имен уже существует функция ничего не делает.

Параметры функции

Параметр | Описание
namespace | Название создаваемого пространства имён.

Возвращаемое значение

Возвращает ссылку на последний элемент цепочки имен.

Примеры использования

BX.namespace("MyCompany.Module.NewsForm");
Создаст объект MyCompany в глобальном объекте BX следующего вида:

BX.MyCompany = {
    Module: {
        NewsForm: {
        }
    }
}


BX.parseJSON

BX.parseJSON(
 string data,
 context
);

Возвращает переданную строку как JSON-объект.

Примечание: В случае ошибки парсинга строки будет вызвано событие onParseJSONFailure.

Параметры функции

Параметр | Описание
string data | Строка
context | Необязательный. В случае ошибки (и вызова onParseJSONFailure) вторым параметром обработчику будет передан данный контекст.

Примеры использования

BX.parseJSON('{test: 123}');
Object {test: 123}


BX.Recorder

BX.Recorder(
  stream,
  options
);

Класс для записи и кодирования звука.

Параметры конструктора

Параметр | Описание
stream | Объект типа MediaStream. Поток, звук из которого будет записан.
options | Объект с параметрами кодирования. Поля объекта: type - mime-тип формата, в который должна быть кодирована запись. список допустимых параметров можно получить вызовом BX.Recorder.isTypeSupported.
Методы | Описание | С версии
BX.Recorder.isSupported | Возвращает true, если запись звука поддерживается в браузере. |
BX.Recorder.isTypeSupported(type) | Параметр type - string. Возвращает true, если класс поддерживает запись звука в формате type. На текущий момент поддерживается только формат audio/mp3 |
BX.Recorder.prototype.start() | Начать запись и кодирование звука. |
BX.Recorder.prototype.stop() | Остановить запись и кодирование звука |
BX.Recorder.prototype.dispose() | Деструктор объекта |

Примечание. Для получения результатов записи и кодирование приложение скрипт должен подписаться на событие stop. В данном событии будет возвращен объект Blob с записью.


BX.setCookie

result_type
BX.setCookie(
 name,
 value,
 array options
);

Установка Cookie.

Параметры функции

Параметр | Описание
name | Имя
value | Значение (строка)
options Ключи
  • expires - основной, указывается в секундах (через сколько запись cookie будет удалена). Если указать любое отрицательно число, то запись будет удалена сразу.
  • path - путь в домена сайта, для которых будет работать данная запись cookie.
  • secure - если передать true, то cookie будет работать только на https сайте.

Примеры использования

Установка куки на сутки:

BX.setCookie('test', '123456', {expires: 86400});


BX.showWait/BX.closeWait

void
BX.showWait(
 [DOMNode node|string node]
);
void
BX.closeWait(
 [DOMNode node|string node]
);

Функции отображает или скрывает визуализатор загрузки. Если указан параметр node, то визуализатор будет спозиционирован по правому верхнему углу указанного элемента. В качестве значения параметра можно передать как ссылку на элемент, так и его id.


BX.loadCSS

DOMNode|array
BX.loadCSS(
 string|array css[,
 DOMDocument document]
);

Функция загружает CSS-файл (или массив CSS-файлов) и применяет их к текущему или указанному документу.

Параметры функции

Параметр | Описание
css | css-файл или массив css-файлов.
DOMDocument document | Документ, к которому нужно применить выбранный файл.

Возвращаемое значение

Функция вернет ссылку на ссылку на объект LINK(или массив ссылок).


BX.loadScript

Загрузить и выполнить скрипт или серию скриптов. Скрипты будут загружены средствами DOM, без XMLHttpRequest.

void
BX.loadScript(
 string|array script[,
 function callback[
 DOMDocument doc]]
);

Функция загрузит и выполнит скрипт или серию скриптов. Скрипты будут загружены средствами DOM, без XMLHttpRequest. Если передан массив скриптов и обработчик, то обработчик будет вызван после загрузки всех скриптов

Параметры функции

Параметр | Описание
script | Исполняемый скрипт
callback | Обработчик
DOMDocument doc |


BX.util

Сборник функций-утилит.

Функция | Описание | С версии
BX.util.array_values()
BX.util.array_keys()
BX.util.array_merge()
BX.util.array_unique()
BX.util.in_array()
BX.util.array_search()
BX.util.trim()
BX.util.htmlspecialchars()
BX.util.htmlspecialcharsback()
BX.utill.preg_quote()
BX.util.str_pad()
BX.util.strip_tags()
 Аналоги функций PHP.
BX.util.urlencode() | Кодирует посредством encodeURIComponent, что приводит к некорректной декодировке на сайтах не в UTF. Для корректного приема закодированных таким образом данных на сервере можно выполнить функцию CUtil::JSPostUnescape, которая декодирует глобальные массивы $_GET, $_POST и $_REQUEST.
Array
BX.util.deleteFromArray(
 array arr,
 int index
);
 Удаление элемента из массива с последующим сдвигом ключей.
Array
BX.util.insertIntoArray(
 array arr,
 int index
);
 Вставка элемента в массив с последующим сдвигом ключей.
BX.util.popup(
 string url,
 int width,
 int height
);
 Показ попапа, спозиционированного по центру.


AJAX расширение

Список методов

Метод | Описание | С версии
BX.ajax | Низкоуровневая функция для отправки аяксовых запросов. |
BX.ajax.Setup | Устанавливает значения по умолчанию для параметров аяксовых запросов. |
BX.ajax.get | Простая отправка GET-запроса и передача результата обработчику . |
BX.ajax.post | Простая отправка POST-запроса и передача результата обработчику. |
BX.ajax.insertToNode | Запрашивает данные по указанному адресу и вставляет ответ в указанный контейнер. |
BX.ajax.load | Загружает очередь ресурсов и вызывает обработчик. |
BX.ajax.loadJSON | Загружает json-объект из заданного url и передаёт его обработчику. |
BX.ajax.loadScriptAjax | Загружает и выполняет скрипт или серию скриптов. |
BX.ajax.runAction | Метод для запуска аякс-действий в модуле. |
BX.ajax.runComponentAction | Метод для запуска аякс-действий в компоненте. |

Примеры

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("AJAX");
   CJSCore::Init(array('ajax'));
   $sidAjax = 'testAjax';
if(isset($_REQUEST['ajax_form']) && $_REQUEST['ajax_form'] == $sidAjax){
   $GLOBALS['APPLICATION']->RestartBuffer();
   echo CUtil::PhpToJSObject(array(
            'RESULT' => 'HELLO',
            'ERROR' => ''
   ));
   die();
}

?>
<div class="group">
   <div id="block"></div >
   <div id="process">wait ... </div >
</div>
<script>
   window.BXDEBUG = true;
function DEMOLoad(){
   BX.hide(BX("block"));
   BX.show(BX("process"));
   BX.ajax.loadJSON(
      '<?=$APPLICATION->GetCurPage()?>?ajax_form=<?=$sidAjax?>',
      DEMOResponse
   );
}
function DEMOResponse (data){
   BX.debug('AJAX-DEMOResponse ', data);
   BX("block").innerHTML = data.RESULT;
   BX.show(BX("block"));
   BX.hide(BX("process"));

   BX.onCustomEvent(
      BX(BX("block")),
      'DEMOUpdate'
   );
}

BX.ready(function(){
   /*
   BX.addCustomEvent(BX("block"), 'DEMOUpdate', function(){
      window.location.href = window.location.href;
   });
   */
   BX.hide(BX("block"));
   BX.hide(BX("process"));

    BX.bindDelegate(
      document.body, 'click', {className: 'css_ajax' },
      function(e){
         if(!e)
            e = window.event;

         DEMOLoad();
         return BX.PreventDefault(e);
      }
   );

});

</script>
<div class="css_ajax">click Me</div>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>


BX.ajax

XMLHttpRequest BX.ajax(
     object params
);

Низкоуровневая функция для отправки аяксовых запросов. Формат объекта params:

{
      url: URL запроса
      method: GET|POST
      data: POST-данные для отправки (строка или объект)
      dataType: html|json|script – данные какого типа предполагаются в ответе
      timeout: 60 – таймаут запроса в секундах
      async: true|false – должен ли запрос быть асинхронным или нет
      processData: true|false – нужно ли сразу обрабатывать данные?
      scriptsRunFirst: false|true – нужно ли выполнять все найденные скрипты перед тем, как отдавать сожеримое обработчику или только те, в тэге которых присутствует атрибут bxrunfirst
      emulateOnload: true|false – нужно ли эмулировать событие window.onload для загруженных скриптов
      start: true|false – отправить ли запрос сразу или он будет запущен вручную
      cache: true|false – в случае значения false к параметру URL будет добавляться случайный кусок, чтобы избежать браузерного кэширования
      onsuccess: функция-обработчик результата
      onfailure: функция-обработчик ошибки
}

Функция возвращает ссылку на объект XMLHttpRequest, при помощи которого осуществляется запрос. В случае успеха запроса будет вызван обработчик onsuccess. В качестве параметра будет результат запроса. Если параметр processData установлен в true, то обработка будет в зависимости от типа данных:

  • html: результат будет очищен от js-кода. Код будет выполнен после передачи данных обработчику. Перед передачей будут выполнены все скрипты с атрибутом bxrunfirst, или все скрипты, если параметр scriptsRunFirst установлен в true;
  • script: полученный результат будет передан обработчику и выполнен. Что раньше – определяется параметром scriptsRunFirst
  • json: результат будет интерпретирован как описание объекта в формате json. Обработчик получит объект.

Если подключена библиотека для работы с localStorage (core_ls), то помимо перечисленных параметров можно использовать указать параметры:

  • lsId – строковой идентификатор для передачи данных запроса между различными вкладками;
  • lsTimeout – время жизни данных запроса
  • lsForce - false|true

Эти параметры предназначены для интерфейсов, постоянно опрашивающих сервер с целью получения каких-либо данных. В этом случае данные запроса будут сохраняться в localStorage, и если в любой вкладке текущего браузера будет сделан запрос с тем же самым lsId, то вместо совершения запроса обработчик получит данные, сохраненные в localStorage. Соответственно, lsTimeout должен быть чуть меньше интервала отправки запросов. Параметр lsForce позволяет принудительно отправить запрос в обход проверки наличия данных в localStorage и обновить это данные.


BX.ajax.Setup

 void
BX.ajax.Setup(
 object config
);

Функция позволяет установить значения по умолчанию для параметров аяксового запроса.


BX.ajax.get

Функция допускает два варианта входных параметров.

XMLHttpRequest
BX.ajax.get(
 string url,
 string|object data,
 function callback
);
XMLHttpRequest
BX.ajax.get(
 string url,
 function callback
);

Отправка GET-запроса и передача результата обработчику callback.

Параметры функции

Параметр | Описание
url | Адрес
data | Строка или ассоциативный массив GET-параметров запроса (которые можно просто указать в адресе)
callback | Обработчик


BX.ajax.post

XMLHttpRequest
BX.ajax.post(
 string url,
 string|object data,
 function callback
);

Простая отправка POST-запроса и передача результата обработчику callback.

Параметры функции

Параметр | Описание
url | Адрес
data | Строка или ассоциативный массив POST-данных запроса
callback | Обработчик


BX.ajax.runAction

BX.ajax.runAction(action[, config])

BX.ajax.runAction - это метод для запуска аякс-действий в модуле, который возвращает BX.Promise. Если был просрочен csrf-токен, то он сам попробует его восстановить (выполняется только одна попытка) и повторить запрос. Если от сервера пришёл ответ, в котором status не равен success, то promis'y выполняется reject.

Параметры

Параметр | Описание | С версии
action {string} | Действие, которое необходимо запустить. Например, disk.folder.get.
config {Object} Параметры:
  • data {Object|FormData} - объект с данными, которые будут посланы в теле запроса. Аналогично BX.ajax.
  • json {Object} - объект с данными, которые будут переданы в теле запроса. При этом при отправке будет проставлен contentType: application/json, а контроллеры смогут получить доступ к оригинальному JSON'y, что позволит удобнее работать с числами и пустыми значениями.
  • navigation {Object} - объект постраничной навигации.
    • page {number} - номер страницы. Отсчет начинается с 1.
    • size {number} - размер страницы (от 1 до 50). По умолчанию 20.
  • analyticsLabel {string|Object} - необязательный параметр используется, как пометка хитов для аналитики.
  • method {string} - необязательный. По умолчанию, POST.

Пример

BX.ajax.runAction('disk.folder.get', {
    data: {
        folderId: 1
    },
    analyticsLabel: {
        viewMode: 'grid',
        filterState: 'closed'
    }
}).then(function (response) {
    console.log(response);
    /**
    {
        "status": "success",
        "data": {
            "ID": 1,
            ...
        },
        "errors": []
    }
    **/
}, function (response) {
    //сюда будут приходить все ответы, у которых status !== 'success'
    console.log(response);
    /**
    {
        "status": "error",
        "errors": [...]
    }
    **/
});


BX.ajax.runComponentAction

BX.ajax.runComponentAction(component, action[, config])

BX.ajax.runComponentAction - это метод для запуска аякс-действий в компоненте, который возвращает BX.Promise. Если был просрочен csrf-токен, то он сам попробует его восстановить (выполняется только одна попытка) и повторить запрос. Если от сервера пришёл ответ, в котором status не равен success, то promis'y выполняется reject.

Параметры

Параметр | Описание | С версии
component {string} | Полное имя компонента, куда шлём запрос. Например, bitrix:main.post.form или vendor:example.
action {string} | Действие, которое необходимо запустить. Например, greet.
config {Object} Параметры:
  • mode {string} Допустимое значение либо class, либо ajax:
    class - запуск действия внутри class.php,
    ajax - запуск действия внутри ajax.php
  • data {Object|FormData} Объект с данными, которые будут посланы в теле запроса. Как в BX.ajax.
  • json {Object} - объект с данными, которые будут переданы в теле запроса. При этом при отправке будет проставлен contentType: application/json, а контроллеры смогут получить доступ к оригинальному JSON'y, что позволит удобнее работать с числами и пустыми значениями.
  • navigation {Object} - объект постраничной навигации.
    • page {number} - номер страницы. Отсчет начинается с 1.
  • signedParameters {string} Необязательный. Это строка с подписанными параметрами. Генерируется методом getSignedParameters()
  • analyticsLabel {string|Object} Необязательный параметр используется, как пометка хитов для аналитики.
  • method {string} Необязательный. По умолчанию, POST.

Пример

Представим, мы делаем аякс-запрос на компонент vendor:example из примера. И вызываем там действие greet.

BX.ajax.runComponentAction('vendor:example', 'greet', {
    mode: 'class', //это означает, что мы хотим вызывать действие из class.php
    data: {
        person: 'Hero!' //данные будут автоматически замаплены на параметры метода
    },
    analyticsLabel: {
        viewMode: 'grid',
        filterState: 'closed'
    }
}).then(function (response) {
    console.log(response);
    /**
    {
        "status": "success",
        "data": "Hi Hero!",
        "errors": []
    }
    **/
}, function (response) {
    //сюда будут приходить все ответы, у которых status !== 'success'
    console.log(response);
    /**
    {
        "status": "error",
        "errors": [...]
    }
    **/
});

Дополнительно

  • Контроллеры [image] в курсе "Разработчик Bitrix Framework".


BX.ajax.insertToNode

XMLHttpRequest
BX.ajax.insertToNode(
 string url,
 string|DOMNode node
);

Функция запрашивает url и вставляет результат в контейнер node.

Параметры функции

Параметр | Описание
url | Адрес
node | Если node – строка, то параметр будет интерпретирован как идентификатор контейнера.


BX.ajax.load

void
BX.ajax.load(
 array arObjects[,
 function finish_callback]
);

Функция загружает очередь ресурсов и вызвает обработчик callback. Описание очереди представляет собой массив объектов такого вида:.

{
    url: URL ресурса
    type: html|script|json|css – тип ресурса
    callback: обработчик загрузки данного ресурса (не будет вызван для типа css)
}

Для каждого ресурса (кроме css) будет вызван свой обработчик, если задан. По завершении всей очереди будет вызван обработчик finish_callback (без параметров)


BX.ajax.loadJSON

XMLHttpRequest
BX.ajax.loadJSON(
 string url,
 function callback[,
 function callback_failure]
);

или:

XMLHttpRequest
BX.ajax.loadJSON(
 string url,
 object data,
 function callback[,
 function callback_failure]
);

Функция загружает json-объект из заданного url и передает его обработчику callback.

Параметры функции

Параметр | Описание
url | Адрес
data | GET-данные запроса
callback | Обработчик
callback_failure | обработчик ошибочной ситуации


BX.ajax.loadScriptAjax

XMLHttpRequest
BX.ajax.loadScriptAjax(
 string|array script[,
 function callback]
);

Функция загружает и выполняет скрипт или серию скриптов. Скрипты будут загружены средствами XMLHttpRequest и выполнены. Обработчик callback будет вызван после каждой загрузки, если передана массив скриптов.

Параметры функции

Параметр | Описание
script | Исполняемый скрипт
callback | Обработчик


События

Вызываются два вида кастомных событий. Объект – XMLHttpRequest, возвращаемый методом BX.ajax.

Событие | Описание | С версии
onAjaxSuccess | Аналогично дополнительной обработке onsuccess. |
onAjaxFailure | Аналогично дополнительной обработке onfailure. |


Управление пользовательскими настройками

Управление пользовательскими настройками (класс CUserOption). Сохранение изменений настроек осуществляется по следующему принципу:

  • Изменения сохраняется и накапливаются в cookie.
  • Если в течение 5 секунд не произошла перезагрузка страницы, то данные отсылаются ajax'ом специальному обработчику, сохраняющему их на сервере.
  • В противном случае при первом хите на сервер приходят данные изменений, записанные в cookie, которые сохраняются обработчиком.
Таким образом, клиентское приложение может считать сохранение настроек мгновенным и не требующим контроля.
Метод | Описание | С версии
BX.userOptions.save | Сохраняет значения пользовательской настройки. |
BX.userOptions.del | Удаляет значения пользовательской настройки. |


BX.userOptions.save

JS библиотека>AJAX расширение>Управление пользовательскими настройками>BX.userOptions.save

Управление пользовательскими настройками::BX.userOptions.save

BX.userOptions.save(
 sCategory,
 sName,
 sValName,
 sVal,
 bCommon
);

Функция сохраняет значения пользовательской настройки.

Параметры функции

Параметр | Описание
sCategory |
sName |
sValName |
sVal |
bCommon |


BX.userOptions.del

JS библиотека>AJAX расширение>Управление пользовательскими настройками>BX.userOptions.del

Управление пользовательскими настройками::BX.userOptions.del

BX.userOptions.del(
 sCategory,
 sName,
 bCommon,
 callback
);

Функция удаляет значения пользовательской настройки.

Параметры функции

Параметр | Описание
sCategory |
sName |
bCommon |
callback |


Runtime

  • Runtime.loadExtension


Runtime.loadExtension

Runtime.loadExtension(name: string|Array): Promise<{[key: string]: any} | Function | null>

Позволяет выполнить отложенное подключение экстеншна [image] на страницу. Может оказаться полезным, когда функционал показывается на странице не сразу, а, например, в открывшемся pop-up, табе и т. п.

Функция Runtime.loadExtension возвращает промис, в значение которого передаются все экспорты подключаемого экстеншна.

Например, если подключить расширение main.loader, то в значении промиса будет ссылка на объект {Loader: Function}.

import {Runtime} from 'main.core';

Runtime.loadExtension('main.loader').then((exports) => {
    console.log(exports); // {Loader: Function}

    const {Loader} = exports;
    const loader = new Loader();

    loader.show();
});

Если экстеншн уже подключен на страницу, то функция Runtime.loadExtension вернет сразу решенный промис с ссылкой на объект экспортов (т. е. повторное подключение не произойдёт).


SidePanel - Слайдер

Javascript-расширение sidepanel позволяет использовать на странице интерфейс боковой панели. (Далее в документации слайдер и sidepanel - синонимы).


Принцип работы

Подключение на PHP-странице

\CJSCore::init("sidepanel");

Использование в JavaScript

Все JavaScript-классы слайдера находятся в namespace'е BX.SidePanel. Для доступа к API слайдера используется объект-синглтон BX.SidePanel.Instance.

BX.SidePanel.Instance.open("/mypage.php"); //Открыть в слайдере страницу mypage.php

Принцип работы

Слайдер - это боковая панель, которая умеет открывать страницы сайта в iframe'е, а также отображать произвольное содержимое внутри себя. Применение iframe'а позволяет использовать готовые компоненты, работающие на обычных страницах сайта.

Слайдер выезжает справа налево, занимая все пространство сверху донизу. Для корректной работы интерфейса отключается скроллинг страницы и добавляется padding-right (равный ширине отключенного скролла) для всего содержимого.

Во время открытия показывается лоадер, который исчезает, как только содержимое боковой панели загружено. Слайдер не уничтожается после закрытия. Если открыть слайдер заново, он появится мгновенно с тем же контентом. Кеширование закрытого слайдера можно отменить опцией cacheable=false.

Из слайдера можно открыть другой слайдер. В этом случае новым слайдер появится поверх предыдущего. На всем жизненном цикле работы слайдера (открытие, загрузка, закрытие, удаление) происходят соответствующие события. Эти события генерируются как в родительском окне, так и в iframe'е.

Открытие слайдера происходит двумя способами:

  • С помощью вызова метода BX.SidePanel.Instance.open().
  • Через нажатие на обычную ссылку на странице. Этот метод требует предварительной регистрации правил с шаблонами ссылок


Обработка нажатий ссылок

Метод BX.SidePanel.Instance.bindAnchors задает правила обработки ссылок на странице. В момент нажатия на ссылку, слайдер сравнивает адрес в атрибуте href c зарегистрированными шаблонами. В случае совпадения, соответствующая страница открывается в iframe'е слайдера.

BX.SidePanel.Instance.bindAnchors({
   rules:
   [
        {
            condition: [
                "/company/personal/user/(\\d+)/tasks/task/view/(\\d+)/",
                "/workgroups/group/(\\d+)/tasks/task/view/(\\d+)/",
                "/extranet/contacts/personal/user/(\\d+)/tasks/task/view/(\\d+)/"
            ],
            loader: "tasks:view-loader",

            //Игноривать ссылки, содержащие следующие параметры в Query String
            stopParameters: [
                "PAGEN_(\\d+)",
                "MID"
            ]
        },
        {
            condition: [
                "/company/personal/user/(\\d+)/tasks/task/edit/0/",
                "/workgroups/group/(\\d+)/tasks/task/edit/0/",
                "/extranet/contacts/personal/user/(\\d+)/tasks/task/edit/0/"
            ],
            loader: "tasks:new-loader"
        },
        {
            condition: [
                new RegExp("/crm/lead/details/[0-9]+/", "i")
            ],
            loader: "crm:entity-details-loader"
        },
        {
            condition: [
                "/company/personal/user/(\\d+)/groups/create/"
            ],
            loader: "intranet:group-create-loader",

            //Опции, с которыми откроется слайдер
            options: {
                width: 1200
            }
        },
        {
            condition: [
                /\/online\/\?(IM_DIALOG|IM_HISTORY)=([a-zA-Z0-9_|]+)/i
            ],

            //Собственный обработчик нажатия на ссылку.
            //Вместо слайдера откроется мессенджер
            handler: function(event, link)
            {
                if (!window.BXIM)
                {
                    return;
                }

                var type = link.matches[1];
                var id = link.matches[2];

                if (type === "IM_HISTORY")
                {
                    BXIM.openHistory(id);
                }
                else
                {
                    BXIM.openMessenger(id);
                }

                event.preventDefault();
            }
        }
   ]
});

BX.SidePanel.Instance.bindAnchors можно вызвать несколько раз. Новые правила будут добавлены к существующим.

Если требуется обрабатывать ссылки на всех страницах сайта, вызов BX.SidePanel.Instance.bindAnchors необходимо перенести в шаблон сайта.

Ссылки внутри iframe'а анализируются по тем же правилам, что и в родительской странице.

Ссылки с data-атрибутом data-slider-ignore-autobinding не обрабатываются.

По соображениям безопасности ссылки на другой домен не открываются в слайдере, однако, это поведение можно отменить опцией allowCrossDomain=true.

Обработка ссылок в мобильных браузерах не производится, отменить это можно опцией mobileFriendly=true.

В параметре options можно указать опции, с которыми откроется слайдер.

Слайдер открывается при совпадении шаблона ссылки и адреса в атрибуте href. Это поведение по умолчанию можно переопределить, указав в опции handler свою функцию-обработчик.


Работа страницы в iframe'е

Если в iframe'е слайдера открыть обычную страницу сайта, то она покажется вместе с общим дизайном (меню, шапка, подвал). Для этого режима необходимо адаптировать вывод компонента. При открытии страницы слайдер всегда добавляет в адрес параметр IFRAME=Y. По этому параметру можно понять, что страница открылась в iframe'е и изменить итоговую верстку.

В упрощенном виде адаптация под слайдер выглядит так:

<?

if (isset($_REQUEST["IFRAME"]) && $_REQUEST["IFRAME"] === "Y")
{
    $APPLICATION->RestartBuffer(); //сбрасываем весь вывод
    ?>
    <!DOCTYPE html>
    <html>
    <head>
        <?$APPLICATION->ShowHead(); ?>
    </head>
    <body>
        <?
            //Контент компонента
        ?>
    </body>
    </html><?
}
else
{
    //Контент компонента
}
?>

Чтобы не дублировать код, желательно использовать компонент-обертку [image].

//class.php
<?
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true)
{
    die();
}

class SliderWrapperComponent extends \CBitrixComponent
{
    public function executeComponent()
    {
        /** @var CMain $APPLICATION */
        global $APPLICATION;
        $APPLICATION->RestartBuffer();

        if (!isset($this->arParams['COMPONENT_PARAMS']) || !is_array($this->arParams['COMPONENT_PARAMS']))
        {
            $this->arParams['COMPONENT_PARAMS'] = array();
        }
        $this->arParams['COMPONENT_PARAMS']['IFRAME'] = true;

        $this->includeComponentTemplate();

        require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php');
        exit;
    }
}

//template.php
<?
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true)
{
    die();
}

CJSCore::Init("sidepanel");
?>
<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript">
        // Prevent loading page without header and footer
        if(window == window.top)
        {
            window.location = "<?=CUtil::JSEscape($APPLICATION->GetCurPageParam('', array('IFRAME'))); ?>";
        }
    </script>
    <?$APPLICATION->ShowHead();?>
</head>
<body class="disk-slider-body">

    <div class="disk-slider-title"><? $APPLICATION->ShowTitle(); ?></div>

    <div class="disk-slider-workarea">
        <div class="disk-slider-sidebar"><? $APPLICATION->ShowViewContent("sidebar"); ?></div>
        <div class="disk-slider-content">
            <?
            $APPLICATION->IncludeComponent(
                $arParams['COMPONENT_NAME'],
                $arParams['COMPONENT_TEMPLATE_NAME'],
                $arParams['COMPONENT_PARAMS']
            );
            ?>
        </div>
    </div>
</body>
</html>
<?
//page.php - страница комплексного компонента
if (isset($_REQUEST['IFRAME']) && $_REQUEST['IFRAME'] == 'Y')
{
    $APPLICATION->IncludeComponent(
        'mycompany:slider.wrapper',
        '',
        array(
            'COMPONENT_NAME' => 'mycompany:mycomponent',
            'COMPONENT_TEMPLATE_NAME' => '',
            'COMPONENT_PARAMS' => $componentParameters,
        )
    );
}
else
{
    $APPLICATION->IncludeComponent(
        'mycompany:mycomponent',
        '',
        $componentParameters
    );
}

Установите контейнеру компонента минимальную ширину (min-width). На малых разрешениях в слайдере появится горизонтальный скроллинг. Это предотвратит "наезд" элементов дизайна друг на друга.

Ссылки внутри iframe'а обрабатываются по тем же правилам BX.SidePanel.Instance.bindAnchors, что и на родительской странице. Если по нажатию ссылки правила не совпали, переход будет осуществлен обычным образом - в iframe загрузится страница вместе с дизайном шаблона сайта. Для подобных ссылок можно либо указать атрибут target="_top" (ссылка откроется в родительском окне), либо добавить параметр IFRAME=Y для открытия страницы, адаптированной под слайдер.

$APPLICATION->ShowHead() подключит в iframe'е стили шаблона сайта (template_styles.css) и стили компонента. Стили шаблона сайта (как правило, это CSS-селектор body {}) могут повлиять на внешний вид содержимого.

Названия CSS-классов дополнительных элементов оформления (заголовок, сайдбар) должны иметь уникальные названия и не пересекаться с названиями CSS-классов шаблона сайта.

Внутри iframe'а к слайдеру можно обращаться так же как и в родительской странице через BX.SidePanel.Instance. Этот подход требует на странице iframe'а подключить слайдер CJSCore::Init("sidepanel").


Sidepanel с произвольным содержимым

Кроме открытия страницы в iframe'е, слайдер может отобразить произвольный контент. Для этого в параметре contentCallback необходимо указать функцию, которая с помощью промиса загрузит в слайдер содержимое.

BX.SidePanel.Instance.open("crm:activity-view", {
    contentCallback: function(slider) {

        //Callback должен вернуть промис или HTML (строка или DOM-элемент)
        return new Promise(function(resolve, reject) {
            //Эмуляция асинхронной операции. Здесь может быть ajax-запрос
            setTimeout(function() {

                //Разрешаем промис передав ему содержимое слайдера (строка или DOM-элемент)
                resolve("content<br>".repeat(100));

            }, 1000);
        });
    }
});


Кастомизация sidepanel

Показ слайдера абстрагирован от шаблона сайта, на котором он показывается. Для конкретного шаблона сайта можно изменить параметры появления слайдера, а также настроить конфликтующие элементы дизайна. Для этого необходимо создать JavaScript-класс, наследующий BX.SidePanel.Slider и переопределить соответствующие методы.

(function() {

"use strict";

BX.namespace("BX.MyModule.Slider");

BX.MyModule.Slider = function(url, options)
{
    BX.SidePanel.Slider.apply(this, arguments);
};

BX.MyModule.Slider.prototype =
{
    __proto__: BX.SidePanel.Slider.prototype,
    constructor: BX.MyModule.Slider,

    /**
     * @public
     * @returns {void}
     */
    applyHacks: function()
    {
        //Код, настраивающий конфликтующие элементы дизайна
        //Метод вызывается до отключения скроллинга страницы
    },

    /**
     * @public
     * @returns {void}
     */
    applyPostHacks: function()
    {
        //Код, настраивающий конфликтующие элементы дизайна
        //Метод вызывается после отключения скроллинга страницы
    },

    /**
     * @public
     * @returns {void}
     */
    resetHacks: function()
    {
        //Метод для сброса настроек, которые были сделаны в applyHacks
    },

    /**
     * @public
     * @returns {void}
     */
    resetPostHacks: function()
    {
        //Метод для сброса настроек, которые были сделаны в applyPostHacks
    },

    /**
     * @public
     * @returns {number}
     */
    getTopBoundary: function()
    {
        //Определяет верхнюю границу (координату) слайдера
        return 0;
    },

    /**
     * @public
     * @returns {number}
     */
    getLeftBoundary: function()
    {
        //Определяет левую границу (координату) слайдера
        return 200;
    },

    /**
     * @public
     * @returns {number}
     */
    getRightBoundary: function()
    {
        //Определяет правую границу (координату) слайдера
        return 0;
    }
};

})();

Далее необходимо зарегистрировать созданный класс.

BX.SidePanel.Manager.registerSliderClass("BX.MyModule.Slider");


Лоадеры

Лоадер представляет собой svg-файл, который показывается во время загрузки содержимого слайдера. Для задания лоадера необходимо указать либо полный путь к файлу:

BX.SidePanel.Instance.open("/mypage.php", {
    loader: "/images/my-loader.svg"
});

либо идентификатор вида moduleId:loaderId

BX.SidePanel.Instance.open("/mypage.php", {
    loader: "landing:list" //это превратится в путь /bitrix/images/landing/slider/list.svg
});


BX.SidePanel.Instance

Класс - основной программный интерфейс для работы со слайдером. Является объектом-синглтоном.

Метод BX.SidePanel.Instance.open

BX.SidePanel.Instance.open(
   url[,
   options]
)

Метод открывает в слайдере страницу с указанным адресом в параметре url. Возвращает true, если слайдер успешно открылся, иначе false.

Параметры

Параметр | Описание | Тип
url | Адрес страницы, которая будет открыта в iframe'е слайдера. Для слайдеров со своим контентом (указана опция contentCallback) в этом параметре указывается уникальный идентификатор. | string
options Коллекция опций слайдера. Все настройки являются необязательными.
  • contentCallback {function(BX.SidePanel.Slider)} - Функция-callback, загружающая в слайдер произвольное содержимое. В первом аргументе принимает объект слайдера (экземпляр класса BX.SidePanel.Slider). Callback должен внутри себя:
    • Создать и вернуть промис (new Promise(function(resolve, reject) {})).
    • Разрешить его (resolve(content)) с содержимым слайдера с содержимым слайдера (строка или DOM-элемент).
    • В случае ошибки сообщить об этом (reject(error)).
  • width {number} - Максимальная ширина слайдера.
  • cacheable {boolean} - Кешировать слайдер после закрытия. Если указано false, при закрытии слайдер будет автоматически уничтожен. По умолчанию true.
  • autoFocus {boolean} - При открытии слайдера происходит автоматическая фокусировка на iframe'е. Это поведение можно отменить, если указать false.
  • allowChangeHistory {boolean} - Менять адрес страницы на адрес открытого слайдера. По умолчанию true.
  • allowChangeTitle {true|false|null} - Менять заголовок страницы на заголовок открытого слайдера. По умолчанию null. При не установленном значении (null), название страницы будет меняться, если у слайдера явно задан заголовок (опция title) или разрешена смена адреса страницы (allowChangeHistory).
  • Title {string} - Заголовок страницы. Если не указан, значение берется из document.title.
  • requestMethod {string} - Если параметр равен post, то в iframe'е слайдера страница загрузится HTTP-методом POST. Это может понадобится для передачи большого объема данных, так как HTTP-метод GET может привести к ошибке 414 Request-URI Too Large.
  • requestParams {object} - POST-параметры передаваемые в запросе. Имеет смысл только при requestMethod="post".
  • loader {string} - Идентификатор лоадера вида moduleId:loaderId или путь к svg-файлу.
  • data {object} - Произвольный набор своих данных для слайдера, с которыми можно работать (чтение/запись/удаление) на всем жизненном цикле.
  • label {object} - Опция задает настройки для внешнего вида лейбла ("этикетки") слайдера. Объект вида:
    label: {
    text: "Моя этикетка",
    color: "#FFFFFF", //цвет текста
    bgColor: "#2FC6F6", //цвет фона
    opacity: 80 //прозрачность фона
}
  • animationDuration {number} - Время анимации открытия/закрытия слайдера в миллисекундах.
  • events {object.} - Коллекция обработчиков событий.
 Object

Примеры использования

Пример слайдера со своим содержимым и данными.

BX.SidePanel.Instance.open("crm:activity-view", {

  //Пробрасываем свои данные в слайдер
  data: {
     minRepeats: 30,
     maxRepeats: 100,
     repeatString: "=========="
  },

  contentCallback: function(slider) {

     var promise = new BX.Promise();

     //Эмуляция асинхронной операции (как правило, это ajax)
     setTimeout(function() {
        //Читаем свои данные
        var minRepeats = slider.getData().get("minRepeats");
        var maxRepeats = slider.getData().get("maxRepeats");
        var repeatString = slider.getData().get("repeatString");

        var repeats = Math.floor(Math.random() * (maxRepeats - minRepeats) + minRepeats);
        slider.getData().set("repeats", repeats); //Записываем новые данные

        var result =
           "minRepeats: " + minRepeats + "
" +
           "maxRepeats: " + maxRepeats + "
" +
           "repeats: " + repeats + "

" +
           (repeatString + "
").repeat(repeats)
        ;

        promise.fulfill(result);

     }, 1000);

     return promise;
  },
  animationDuration: 100,
  width: 600,
  events: {
     onLoad: function(event) {
        var slider = event.getSlider();
        console.log(slider.getData().get("repeats")); //Читаем записанные данные
     }
  }
});

Открытие слайдера HTTP-методом POST.

BX.SidePanel.Instance.open("/mypage.php", {
     requestMethod: "post",
     requestParams: { // post-параметры
        action: "load",
        ids: [1, 2, 3],
        dictionary: {
           one: 1,
           two: 2
      }
   }
});

Метод BX.SidePanel.Instance.bindAnchors(anchors)

BX.SidePanel.Instance.bindAnchors(
   anchors
)

Метод регистрирует правила обработки нажатия ссылок на странице.

Параметры

Метод Описание Тип
anchors Настройки механизма обработки нажатия ссылок.
  • rules {Array} - Массив правил. Каждое правило - объект со следующими ключами:
    • condition {string[]|RegExp[]} - Массив шаблонов (регулярных выражений) ссылок. Обязательный параметр.
    • options {Object} - Коллекция опций, с которыми откроется слайдер. См. BX.SidePanel.Instance.open.
    • stopParameters {string[]} - Массив запрещенных параметров. Если адрес содержит хотя бы один из этих параметров, ссылка обработана не будет. Необязательный параметр.
    • handler {function(event, link)} - Функция-обработчик нажатия на ссылку. С помощью этого параметра можно переопределить поведение по умолчанию (открытие слайдера). Необязательный параметр.
      • event {MouseEvent} - Объект события нажатия на ссылку
      • link - Объект с данными ссылки:
        • href - Адрес ссылки.
        • target - Значение атрибута target.
        • anchor - DOM-объект ссылки (тег <a>).
        • matches - Массив с совпадениями групп регулярного выражения.
    • validate {function(link)} - Функция проверки корректности ссылки. Если возвращает false, ссылка обработана не будет. Необязательный параметр.
      • link - объект с данными ссылки.
    • allowCrossDomain {boolean} Разрешить открывать ссылки с внешних сайтов. По умолчанию false.
    • mobileFriendly {boolean} Обрабатывать ссылки в мобильных браузерах. По умолчанию false.
 Object

Другие методы класса

Метод Описание С версии
BX.SidePanel.Instance.isOpen()
 Возвращает true, если слайдер отображается на экране.
BX.SidePanel.Instance.close([immediately=false])
 Закрывает текущий слайдер на странице.
immediately {boolean}Закрыть слайдер мгновенно, без анимации.
BX.SidePanel.Instance.closeAll([immediately=false])
 Закрывает все слайдеры на странице.
immediately {boolean} Закрыть слайдеры мгновенно, без анимации.
BX.SidePanel.Instance.destroy(url)
 Уничтожает слайдер на странице.
url {string} Адрес страницы или идентификатор удаляемого слайдера.
BX.SidePanel.Instance.reload()
 Перегружает текущий открытый слайдер.
BX.SidePanel.Instance.getTopSlider()
 Возвращает текущий открытый слайдер (экземпляр класса [BX.SidePanel.Slider).
BX.SidePanel.Instance.getSlider(url)
 Возвращает слайдер (экземпляр класса BX.SidePanel.Slider) по указанному адресу или идентификатору.
url {string} - Адрес страницы или идентификатор слайдера.
BX.SidePanel.Instance.getSliderByWindow(window)
 Возвращает слайдер (экземпляр класса BX.SidePanel.Slider) по окну iframe'а.
window {Window} - Объект окна iframe'а.
BX.SidePanel.Instance.getOpenSliders()
 Возвращает список всех открытых слайдеров (массив экземпляров класса BX.SidePanel.Slider).
BX.SidePanel.Instance.getLastOpenSlider()
 Возвращает закрытый слайдер (экземпляр класса BX.SidePanel.Slider). Object


BX.SidePanel.Slider

Класс представления конкретного слайдера. Работа с объектами этого класса в основном происходит в обработчиках событий.

Метод Описание С версии
slider.open()
 Открывает слайдер.
slider.close(
   [immediately=false]
)
 Закрывает слайдер. Параметр immediately {boolean} - Закрыть слайдер мгновенно, без анимации.
slider.destroy()
 Уничтожает слайдер на странице.
slider.isDestroyed()
 Возвращает true, если слайдер был уничтожен.
slider.getUrl()
 Возвращает адрес слайдера или его идентификатор.
slider.focus()
 Ставит фокус на iframe'е слайдера.
slider.isOpen()
 Возвращает true, если слайдер открыт
slider.getData()
 Возвращает экземпляр класса BX.SidePanel.Dictionary с коллекцией данных слайдера.
slider.getZindex()
 Возвращает z-index слайдера.
slider.getFrame()
 Возвращает ссылку на iframe.
slider.getFrameWindow()
 Возвращает ссылку на окно (window) iframe'а.
slider.getWindow()
 Аналогичен getFrameWindow(), но в случае слайдера с произвольным контентом вернет ссылку на родительское окно.
slider.isCacheable()
 Возвращает false, если слайдер будет уничтожен после закрытия.
slider.showLoader()
 Показывает лоадер слайдера.
slider.closeLoader()
 Скрывает лоадер слайдера.
.


BX.SidePanel.Dictionary

Класс-коллекция для хранения произвольных данных слайдера.

Метод Описание С версии
dictionary.set(
   key,
   value
)
 Устанавливает для ключа key значение value.
dictionary.get(
   key
)
 Получает значение ключа key.
dictionary.delete(
   key
)
 Удаляет данные ключа key.
dictionary.has(
   key
)
 Возвращает true, если для ключа key установлены данные.
dictionary.clear()
 Удаляет все данные коллекции.
dictionary.entries()
 Возвращает всю коллекцию данных.


Открыть компонент в слайдере

Когда необходимо открыть страницу внутри слайдера без iframe, то можно сделать так:

BX.SidePanel.Instance.open("widget:example-item", {
    contentCallback: function (slider) {
        return new Promise(function(resolve, reject) {
            BX.ajax.runAction('example.item.view', {
                data: {
                    id: 2208
                }
            }).then(function(response) {
                resolve({ html: response.data.html });
            });
        });
    },
    animationDuration: 100,
    width: 370
});

Обратите внимание, что действие example.item.view, должно возвращать тип ответа \Bitrix\Main\Engine\Response\Component [image].


События

Общие принципы

На всем жизненном цикле слайдера (открытие-загрузка-закрытие-уничтожение) генерируются события. События посылаются как в родительское окно, так и в iframe. Если слайдер с произвольным содержимым, события генерируются только в родительском окне.

Существует два варианта подписки на события.

  • Глобальная подписка.
     BX.addCustomEvent("SidePanel.Slider:onOpen", function(event) {
      console.log(event.getSlider()); //получить объект слайдера
    });
    • На родительской странице данное событие будет генерироваться для всех слайдеров. Для определения конкретного слайдера в обработчике можно использовать метод getUrl() или getData().
    • Если обработчик назначен внутри iframe'а, он будет выполнен только в рамках конкретного слайдера.
    • Для назначения обработчика используется полное название события.
  • Подписка на события конкретного слайдера.
     BX.SidePanel.Instance.open("/crm/button/edit/10/", {
       events: {
          onLoad: function(event) {
             console.log("onLoad");
          }
       }
    });
    • Обработчик события выполнится только для указанного слайдера.
    • Для назначения обработчика используется короткое название события.

Пример

Пример назначения обработчика в BX.SidePanel.Instance.bindAnchors.

BX.SidePanel.Instance.bindAnchors({
       rules: [
          {
             condition: [
                "/crm/button/edit/(\d+)/"
             ],
             options: {
                cacheable: false,
                width: 900,
                events: {
                   onLoad: function(event) {
                      console.log("onLoad");
                   }
                }
             }
          }
       ]
    });

В первом аргументе обработчики получают объект события типа BX.SidePanel.Event.

BX.addCustomEvent("SidePanel.Slider:onCloseComplete", function(event) {
   console.log(event.getSlider()); //получить объект слайдера
});


Список событий

Событие | Описание | С версии
SidePanel.Slider:onOpen | Вызывается перед началом открытия слайдера. Есть возможность отменить открытие.
SidePanel.Slider:onOpenComplete | Вызывается, когда слайдер полностью "выехал" на странице. Контент слайдера может быть еще не загружен к этому моменту.
SidePanel.Slider:onLoad | Вызывается, когда контент слайдера загружен.
SidePanel.Slider:onClose Вызывается перед закрытием слайдера. Есть возможность отменить закрытие. Пример отмены закрытия^
BX.addCustomEvent("SidePanel.Slider:onClose", function(event) {
   if (event.getSlider().getUrl() === "calendar:settings") //для глобальных обработчиков проверяем свой слайдер
   {
      event.denyAction();
   }
});
SidePanel.Slider:onCloseComplete | Вызывается, когда слайдер полностью закрылся.
SidePanel.Slider:onCloseByEsc | Вызывается перед закрытием слайдера по клавише Escape. Есть возможность отменить закрытие. Событие происходит до onClose.
SidePanel.Slider:onDestroy | Вызывается перед уничтожением слайдера.
SidePanel.Slider:onFrameFocus | Вызывается при любом фокусе на iframe-странице.


BX.SidePanel.Event

Класс представляет объект события.

Метод Описание С версии
event.allowAction()
 Разрешает выполнить действие по умолчанию.
event.denyAction()
 Запрещает выполнить действие по умолчанию.
event.isActionAllowed()
 Возаращает true, если разрешено выполнить действие по умолчанию, иначе false.
event.getSlider()
 Возвращает объект слайдера (экземпляр класса BX.SidePanel.Slider), у которого происходит событие.
event.getName()
 Возвращает короткое название события.
event.getFullName()
 Возвращает полное название события.


Передача данных между слайдерами

Между слайдерами можно передавать произвольные данные. Для отправки данных используются методы postMessage, postMessageAll и postMessageTop. Для приема сообщений - событие onMessage.

Событие SidePanel.Slider:onMessage

Вызывается, когда в слайдер приходит сообщение из другого слайдера. В первый аргумент обработчика приходит объект события типа BX.SidePanel.MessageEvent

Методы отправки данных

Метод Описание С версии
BX.SidePanel.Instance.postMessage(
   source,
   eventId,
   data
)
 Отсылает сообщение (данные) в предыдущий слайдер и родительскую страницу.
BX.SidePanel.Instance.postMessageAll(
   source,
   eventId,
   data
)
 Отсылает сообщение (данные) во все слайдеры и в родительскую страницу.
BX.SidePanel.Instance.postMessageTop(
   source,
   eventId,
   data
)
 Отсылает сообщение (данные) только в родительскую страницу.

Параметры

Параметры | Описание | Тип
source | Идентификатор слайдера-отправителя данных. Ссылка на слайдер (экземпляр класса BX.SidePanel.Slider) или идентификатор слайдера. В случае iframe'а может быть ссылка на окно (window). | string|window|BX.SidePanel.Slider
eventId | Идентификатор события. Используется для того, чтобы отличить события разных слайдеров в обработчике onMessage. | string
data | Данные для передачи в другой слайдер. | object

Примеры

Пример передачи данных из iframe'а в предыдущий слайдер.

BX.SidePanel.Instance.postMessage(window, "my-event-id", { title: "1234" });

Пример получения данных.

BX.SidePanel.Instance.open("/mypage.php", {
    events: {
        onMessage: function(event) {
            console.log(
                "onMessage",
                "sender", event.getSender().getUrl(),
                "slider", event.getSlider().getUrl(),
                "data", event.getData()
            );
        }
    }
});

Класс

Класс | Описание | С версии
Класс BX.SidePanel.MessageEvent | Класс представляет сообщение, которое слайдеры посылают друг другу. |


BX.SidePanel.MessageEvent

Класс представляет сообщение, которое слайдеры посылают друг другу.

Метод | Описание | С версии
message.getSlider() | Возвращает объект слайдера (экземпляр класса BX.SidePanel.Slider), которому послали данные. |
message.getSender() | Возвращает объект слайдера (экземпляр класса BX.SidePanel.Slider), который послал данные. |
message.getData() | Возвращает присланные данные. |
message.getEventId() | Возвращает идентификатор события. |
message.getName() | Возвращает короткое название события. |
message.getFullName() | Возвращает полное название события. |


Автоперевод и транслитерация

Используется расширение translit (core_translit.js), которое предназначено для приведения введенных пользователем данных для использования при построении человеко-понятных URL (ЧПУ).

Внимание! Для работы внешнего сервиса перевода нужно получить ключ доступа [image] и указать его на странице настроек главного модуля.

Функция | Описание
BX.translit | Транслитерация строки.
BX.IExternalTranslator | Служебный базовый класс внешних переводчиков.
BX.CYandexTranslator(
 String str,
 Object params
)
 Класс для работы с сервисом Яндекс.Перевод.
BX.correctText | Метод корректирует ошибочную расскладку в тексте (только для русской локализации).


BX.translit

void|string
BX.translit(
 String str,
 Object params
);

Функция производит транслитерацию строки.

Параметры функции

Параметр Описание
str
params Возможные ключи объекта params:
  • max_len - максимальная длина результирующей строки;
  • change_case - к какому регистру приводить строку: L – к нижнему, U – к верхнему, false – не менять регистр;
  • replace_space - строка, на которую заменяются пробелы;
  • replace_other - строка, на которую заменяются остальные небуквенноцифровые символы;
  • delete_repeat_replace - флаг, удалять ли повторяющиеся небуквенноцифровые замены;
  • use_google - использовать ли внешний сервис для перевода строки перед транслитерацией. По умолчанию false.

    Параметр получил название из-за того, что раньше использовался сервис перевода Google.Translate. Поскольку сервис уже закрыт, то используется сервис Яндекс.Перевода. Имя параметра осталось для сохранения совместимости.

Помимо этого можно указать параметр callback, которому будет передан результат обработки. Если параметр use_google установлен в true, то callback обязателен.

Возвращаемое значение

Функция вернет транслитерированную строку (или ничего, если транслитерирование отложено параметром use_google.)


Административная оконная библиотека

Расширение window (core_window.js). Данный вид окон используется в для работы административных интерфейсов. Для публичных интерфейсов следует использовать расширение popup.


Классы расширения

Функция | Описание
BX.CWindow | Базовый класс окна. Напрямую не используется.
BX.CWindowDialog | Базовый класс диалога (с блокировкой кликов вне диалога). Напрямую не используется.
BX.CWindowFloat | Базовый класс «плавающих окон». Напрямую не используется.
new BX.CDialog | Стандартный модальный диалог с оформлением и затенением
BX.CAdminDialog | Диалог для открытия административных форм в публичке.
BX.CDebugDialog | Служебный диалог для отображения дебаговой информации.
BX.CEditorDialog | Служебный диалог для отображения визуального редактора
BX.CMenu | Класс меню.
BX.COpener | Базовый класс сущностей «открыватель меню».
BX.CMenuOpener BX.CMenuOpenerItem BX.CPageOpener | Служебные классы, обрабатывающие публичные элементы интерфейса Эрмитаж.


Менеджер окон

BX.WindowManager.Get(
);

Возвращаемое значение

Возвращает ссылку на объект текущего открытого или текущего загружаемого (если сейчас идет загрузка) окна.


Методы класса диалога

Функция | Описание
new BX.CDialog | Конструктор
Show | Отображает окно диалога, если оно уже готово, или начинает загрузку, если указан content_url
SetTitle(text) | Устанавливает содержимое строки заголовка окна.
SetHead(html) | Устанавливает содержимое подзаголовка окна.
SetButtons(buttons) Задаёт кнопки окна. Параметр buttons может представлять собой:
  • Непосредственно HTML-код кнопок
  • Массив описательных объектов (см. описание параметров конструктора)
  • Стандартные кнопки (свойства прототипа окна): btnSave, btnCancel, btnClose
Get() | Получение ссылки на контейнер окна.
GetContent() | Получение ссылки на контейнер контента окна.
zIndex | Свойство, содержащее z-index окна.


new BX.CDialog

JS библиотека>Административная оконная библиотека>BX.CDialog >new BX.CDialog

BX.CDialog ::new BX.CDialog

new BX.CDialog(
 params
);

Конструктор.

Параметры функции

{
    (
        title: 'dialog title',
        head: 'head block html',
        content: 'dialog content',
        icon: 'head icon classname or filename'
    )
    или
    (
        content_url: url to content load
            loaded content scripts can use BX.WindowManager.Get() to get access to the current window object
    )

    height: window_height_in_pixels,
    width: window_width_in_pixels,

    draggable: true|false,
    resizable: true|false,

    min_height: min_window_height_in_pixels, // useless if resizable = false
    min_width: min_window_width_in_pixels, // useless if resizable = false

    buttons: [
        'html_code',
        BX.CDialog.prototype.btnSave, BX.CDialog.prototype.btnCancel, BX.CDialog.prototype.btnClose,
        {
    title: заголовок кнопки,
    name: имя кнопки,
    id: id кнопки,
    action: function () {
        this.Close();
    },
    onclick: "BX.WindowManager.Get().Close()"
},
new CWindowButton({
    title: заголовок кнопки,
    name: имя кнопки,
    id: id кнопки,
    action: function () {
        this.Close();
    },
    onclick: "BX.WindowManager.Get().Close()"
})
    ]
}
Параметр | Описание
title | Название диалога
head | html код заголовка
content | Контент диалога
content_url | URL для загрузки контента. Загружаемые скрипты могут использовать BX.WindowManager.Get для получения доступа к объекту текущего окна. Параметр может использоваться вместо первых трёх.
content_post | POST-данные, которые нужно передать для формирования контента. Необязательный параметр.
height | Высота диалога в пикселях
width | Ширина диалога в пикселях
draggable | (true|false) Разрешение на использование drag&drop
resizable | (true|false) Разрешение на изменение размеров окна
min_height | Минимальная высота диалога в пикселях. false - при запрете на изменение размера.
min_width | Минимальная ширина диалога в пикселях. false - при запрете на изменение размера.
buttons Массив, элементами которого являются описания кнопок. Описание каждой кнопки может быть HTML-кодом кнопки, может быть экземпляром класса BX.CWindowButton или объектом со следующими параметрами:.
{
    title - заголовок кнопки,
    name - имя кнопки,
    id - id кнопки,
    action - обработчик нажатия на кнопку
}
Кроме того, есть стандартные кнопки:
  • BX.CDialog.prototype.btnSave - кнопка Сохранить
  • BX.CDialog.prototype.btnCancel - кнопка Отменить
  • BX.CDialog.prototype.btnClose - Кнопка Закрыть


Серверная часть

JS библиотека>Административная оконная библиотека>BX.CDialog >Серверная часть

BX.CDialog ::Серверная часть

string $APPLICATION->
GetPopupLink(
 array $arUrl
);

Метод выдает строку, содержащую javascript-вызов, для отображения окна. Входной параметр:

$arUrl = array(
"URL"=> 'url to open'
"PARAMS"=> array(
"width" => 'width in pixels',
"height" => 'height in pixels',
"resizable" => true|false

),
"POST" => 'POST data to send while window opening'
),

Примечание:

  • Параметр resizable специально переименован (ранее был resize), потому что, старый параметр (который теперь игнорируется) был установлен для всех админских окон.
  • Для загружаемых окон размеры сохраняются в пользовательские настройки, поэтому, передаваемые параметры ширины/высоты – значения «по умолчанию».

Класс CJSPopup для форматирования окна диалога имеет особенности:

  • Свойство jsPopup класса теперь содержит строку 'BX.WindowManager.Get()'.
  • Соответственно, добавление к нему любых суффиксов категорически не приветствуется, так как породит ошибки.


Анимация

Описание и методы

Класс BX.easing позволяет создавать анимацию на странице. Анимация в контексте веб-страницы - это изменение стиля DOM-элемента.

Перед использованием методов класса BX.easing необходимо подключить расширение core_fx.js.

CJSCore::Init(array("fx"));
Метод | Описание | С версии
BX.easing | Конструктор. | 12.5
BX.easing.prototype.animate | Запускает анимацию. | 12.5
BX.easing.prototype.animateProgress | Редко используемый метод. Запускает анимацию, но на каждой итерации вместо функции-обработчика step, вызывается функция-обработчик progress. | 12.5
BX.easing.prototype.stop(completed) | Останавливает анимацию на текущем шаге. Если completed=true, то дополнительно выполнится функция-обработчик окончания анимации. | 12.5
Анимационные функции | Функции, которые позволяют делать различного вида плавные анимации. | 12.5

Пример использования

var banner = BX("my-banner");
var easing = new BX.easing({
    duration : 500,
    start : { height : 0, opacity : 0 },
    finish : { height : 100, opacity: 100 },
    transition : BX.easing.transitions.quart,
    step : function(state){
        banner.style.height = state.height + "px";
        banner.style.opacity = state.opacity/100;
    },
    complete : function() {
        banner.style.display = "none";
    }
});
easing.animate();


BX.easing

Описание и параметры

BX.easing(
options
);

Функция-конструктор.

Параметры функции

Параметр options может содержать следующие настройки:

options = {
    duration : длительность анимации в миллисекундах, по умолчанию 1000ms
    start : стартовый набор значений
    finish : конечный набор значений
    transition : функция-анимации, по умолчанию линейная
    step : функция-обработчик каждой итерации анимации
    complete : функция-обработчик, которая выполнится после окончания анимации
    delay: задержка между итерациями анимации в миллисекундах, по умолчанию 13ms
    progress : функция-обработчик каждой итерации анимации, вызывается только при использовании animateProgress (см. описание ниже)
}

Стартовый и конечный набор значений содержат значения, которые будут изменяться в процессе анимации. Например, если мы хотим плавно показать баннер на странице (высота и прозрачность изменяется от 0 до 100), то в options указываем следующее:

start : { height : 0,  opacity : 0 },
finish : { height : 100, opacity : 100 }

Функция-обработчик step на каждой итерации анимации будет получать Javascript-объект с текущими значениями height и opacity.

Возвращаемое значение

Возвращает объект класса BX.easing.

Примеры использования

var banner = BX("my-banner");
var easing = new BX.easing({
    duration : 500,
    start : { height : 0, opacity : 0 },
    finish : { height : 100, opacity: 100 },
    transition : BX.easing.transitions.quart,
    step : function(state){
        banner.style.height = state.height + "px";
        banner.style.opacity = state.opacity/100;
    },
    complete : function() {
        banner.style.display = "none";
    }
});
easing.animate();


BX.easing.prototype.animateProgress

Редко используемый метод. Также как и метод animate запускает анимацию, но на каждой итерации вместо функции-обработчика step, вызывается функция-обработчик progress. Не использует наборы значений start и finish. Обработчику progress на каждой итерации передается значение, которое меняется от 0 в начале анимации до 1 в конце.

var button = BX("my-button");
var leftMax = 100;
var opacityMin = 0;
var easing = new BX.easing({
{
    duration : 4000,
    transition : BX.easing.makeEaseOut(BX.easing.transitions.quart),
    progress : function(progress)
    {
        button.style.left =  Math.round(leftMax * progress) + "px";
        button.style.opacity =  (100 + Math.round((opacityMin - 100) * progress)) / 100;
    },
    complete : function()
    {
        button.style.background = "green";
    }
});
easing.animateProgress();


Анимационные функции

EaseIn-функции

Стандартно BX.easing поддерживает 9 видов функций (линейная, квадратная, кубическая и др.), которые позволяют делать различного вида плавные анимации:

  • BX.easing.transitions.linear
  • BX.easing.transitions.quad
  • BX.easing.transitions.cubic
  • BX.easing.transitions.quart
  • BX.easing.transitions.quint
  • BX.easing.transitions.bounce
  • BX.easing.transitions.elastic
  • BX.easing.transitions.back
  • BX.easing.transitions.circ

Наглядно посмотреть как работает анимация этих функций можно здесь [image].

EaseOut и EaseInOut-фунции

Следующие два статических метода переобразуют easeIn-функцию в easeOut-функцию и easeInOut-функцию соответственно. Таким образом BX.easing стандартно поддерживает 27 видов анимаций.

BX.easing.makeEaseInOut(easingFunction)
BX.easing.makeEaseOut(easingFunction)

Можно определить и свою собственную функцию:

(new BX.easing({
    duration : 1200,
    start:{opacity: 0},
    finish:{opacity: 100},
    transition: function(progress) {
        return Math.abs(Math.sin(3 * Math.PI * progress / 2));
    },
    step : function(state){
        node.style.background = 'rgba(242,245,220,'+(state.opacity/100)+')'
    },
    complete: function()
    {
        node.style.background = '#f2f5dc';
    }
})).animate();

Здесь progress и возвращаемое значение функции - это состояние анимации от 0 до 1.


Валюты

Описание и список функций

BX.Currency – библиотека для форматирования цен с учетом текущего языка на js.

Идет в составе модуля валют (currency).

Для подключения библиотеки используется следующий код:

if (\Bitrix\Main\Loader::includeModule('currency'))
{
    CJSCore::Init(['currency']);
}

Функция | Описание | С версии
BX.Currency.clean | Стирает форматы всех валют. |
BX.Currency.clearCurrency | Удаляет формат (если он есть). |
BX.Currency.currencyFormat | Форматирует цену. |
BX.Currency.getCurrencyFormat | Возвращает формат валюты. |
BX.Currency.loadCurrencyFormat | Асинхронная загрузка формата. | 19.0.100
BX.Currency.setCurrencies | Задаёт форматы нескольких валют сразу. |
BX.Currency.setCurrencyFormat | Задаёт формат конкретной валюты. |

Форматирование цены

<script type="text/javascript">
var price = 141.56,
    currency = 'USD';

item.innerHTML = BX.Currency.currencyFormat(price, currency, true); // вставка отформатированной цены с применением шаблона вывода

item2.innerHTML = BX.Currency.currencyFormat(price, currency, false); // вставка отформатированной величины цены без использования шаблона

</script>
/*
Результат
item содержит строку $141.56
item2 содержит строку 141.56 (без символа валюты и всего остального, находящегося в шаблоне)
*/

Перед вызовом форматирования необходимо либо явно задать форматы требуемых валют:

<?
$currencies = []; // загружаем все валюты, какие есть
$currencyIterator = \Bitrix\Currency\CurrencyTable::getList([
    'select' => ['CURRENCY']
]);
while ($currency = $currencyIterator->fetch())
{
    $currencyFormat = \CCurrencyLang::GetFormatDescription($currency['CURRENCY']);
    $currencies[] = [
        'CURRENCY' => $currency['CURRENCY'],
        'FORMAT' => [
            'FORMAT_STRING' => $currencyFormat['FORMAT_STRING'],
            'DEC_POINT' => $currencyFormat['DEC_POINT'],
            'THOUSANDS_SEP' => $currencyFormat['THOUSANDS_SEP'],
            'DECIMALS' => $currencyFormat['DECIMALS'],
            'THOUSANDS_VARIANT' => $currencyFormat['THOUSANDS_VARIANT'],
            'HIDE_ZERO' => $currencyFormat['HIDE_ZERO']
        ]
    ];
}
?>
<script type="text/javascript">
BX.Currency.setCurrencies(<?=CUtil::PhpToJSObject($currencies, false, true, true);?>);
</script>

либо асинхронно загрузить их (currency 19.0.100 и выше ):

<script type="text/javascript">
BX.Currency.loadCurrencyFormat('USD').then(function()
{
    item.innerHTML = BX.Currency.currencyFormat(123, 'USD', true);
});
</script>

При использовании второго способа вы должны сами контролировать процесс загрузки и не использовать метод форматирования до успешной подгрузки данных.

Описание формата (поля объекта) почти полностью соответствует данным, возвращаемым методом CCurrencyLang::GetFormatDescription (нет ключа THOUSANDS_VARIANT).


BX.Currency.clean

JS библиотека>Валюты>BX.Currency.clean

Валюты::BX.Currency.clean

BX.Currency.clean(
);

Функция стирает форматы всех валют.

Параметры функции

Без параметров.

Возвращаемое значение

Нет.


BX.Currency.clearCurrency

JS библиотека>Валюты>BX.Currency.clearCurrency

Валюты::BX.Currency.clearCurrency

BX.Currency.clearCurrency(
currency
);

Функция удаляет формат (если он есть).

Параметры функции

Параметр | Описание | Тип
currency | Код валюты. | string

Возвращаемое значение

Нет.


BX.Currency.currencyFormat

JS библиотека>Валюты>BX.Currency.currencyFormat

Валюты::BX.Currency.currencyFormat

BX.Currency.currencyFormat(
price, currency, useTemplate
);

Функция форматирует цену.

Параметры функции

Параметр | Описание | Тип
price | Значение цены. | string, int, float
currency | Код валюты. | string
useTemplate Использовать ли шаблон. Доступные значения:
  • false – выводить только значение цены;
  • true – выводить полностью отформатированную цену.
 bool

Возвращаемое значение

Строка.

Примеры:

<?
CJSCore::Init(array('currency'));

$currencyFormat = CCurrencyLang::GetFormatDescription('RUB');
?>
<script type="text/javascript">
BX.Currency.setCurrencyFormat('RUB', <? echo CUtil::PhpToJSObject($currencyFormat, false, true); ?>);
var formatRub = BX.Currency.currencyFormat(121.50, 'RUB', true);
alert(formatRub);
</script>


BX.Currency.getCurrencyFormat

JS библиотека>Валюты>BX.Currency.getCurrencyFormat

Валюты::BX.Currency.getCurrencyFormat

BX.Currency.getCurrencyFormat(
currency
);

Функция возвращает формат валюты.

Параметры функции

Параметр | Описание | Тип
currency | Код валюты. | string

Возвращаемое значение

Возвращает object (если найден формат) или false.


BX.Currency.loadCurrencyFormat

JS библиотека>Валюты>BX.Currency.loadCurrencyFormat (доступно с 19.0.100)

Валюты::BX.Currency.loadCurrencyFormat

BX.Currency.loadCurrencyFormat(
currency
);

Асинхронная загрузка формата.

Параметры функции

Параметр | Описание | Тип
currency | Код валюты. | string

Возвращаемое значение

Promise.


BX.Currency.setCurrencies

JS библиотека>Валюты>BX.Currency.setCurrencies

Валюты::BX.Currency.setCurrencies

BX.Currency.setCurrencies(
currencies, replace
);

Функция задаёт форматы нескольких валют сразу.

Параметры функции

Параметр | Описание | Тип
currencies Список валют с форматами. Каждый элемент массива – объект с двумя полями:
  • CURRENCY – код валюты;
  • FORMAT – описание формата.
 array
replace | Переписывать ли формат, если уже задан. | bool

Возвращаемое значение

Нет.


BX.Currency.setCurrencyFormat

JS библиотека>Валюты>BX.Currency.setCurrencyFormat

Валюты::BX.Currency.setCurrencyFormat

BX.Currency.setCurrencyFormat(
currency, format, replace
);

Функция задаёт формат конкретной валюты.

Параметры функции

Параметр | Описание | Тип
currency | Код валюты. | string
format | Описание формата. | object
replace | Переписывать ли формат, если уже задан. | bool

Возвращаемое значение

Нет.

Примеры:

<?
CJSCore::Init(array('currency'));

$currencyFormat = CCurrencyLang::GetFormatDescription('RUB');
?>
<script type="text/javascript">
BX.Currency.setCurrencyFormat('RUB', <? echo CUtil::PhpToJSObject($currencyFormat, false, true); ?>);
var formatRub = BX.Currency.currencyFormat(121.50, 'RUB', true);
alert(formatRub);
</script>


JS библиотека>Валюты>BX.Currency.Core (доступно с 20.100.0)

Валюты::BX.Currency.Core

Расширение ES6 для работы с валютами и их форматами.

BX.Currency.Core

Методы

Метод | Описание | С версии
BX.Currency.Core.getCurrencyList(): CurrencyItem[] | Статический метод. Возвращает внутренний список валют.
BX.Currency.Core.setCurrencyFormat(currency: string, format, replace: boolean): void Статический метод. Задаёт формат конкретной валюты. Параметры:
  • currency - код валюты;
  • format - формат валюты в виде CCurrencyLang::GetFormatDescription();
  • replace - перезаписать формат, если уже задан.
BX.Currency.Core.setCurrencies(currencies: [], replace: boolean) Статический метод. Задаёт форматы нескольких валют сразу. Параметры:
  • currencies - список валют с форматами. Каждый элемент массива – объект с двумя полями:
    • CURRENCY - код валюты;
    • FORMAT - описание формата в виде CCurrencyLang::GetFormatDescription().
  • replace - перезаписать формат, если уже задан.
BX.Currency.Core.getCurrencyFormat(currency: string) Статический метод. Возвращает формат валюты. Параметры:
  • currency - код валюты.
BX.Currency.Core.getCurrencyIndex(currency: string): number Статический метод. Возвращает расположение валюты во внутреннем списке валют. Параметры:
  • currency - код валюты.
BX.Currency.Core.clearCurrency(currency: string): number Статический метод. Удаляет формат валюты по коду из внутреннего списка (если он есть). Параметры:
  • currency - код валюты.
BX.Currency.Core.clean() | Статический метод. Очищает внутренний список.
BX.Currency.Core.currencyFormat(price: number, currency: string, useTemplate: boolean) Статический метод. Форматирует цену. Параметры:
  • price - значение цены;
  • currency - код валюты;
  • useTemplate - использовать ли шаблон. Доступные значения:
    • false - выводить только значение цены;
    • true - выводить полностью отформатированную цену.
BX.Currency.Core.loadCurrencyFormat(currency) Статический метод. Асинхронная загрузка формата. Параметры:
  • currency - код валюты.

Пример

example.js
import {CurrencyCore} from 'currency.currency-core';

export class Example
{
    constructor(currencyId: string)
    {
        this.currencyFormat = CurrencyCore.loadCurrencyFormat(currencyId);
    }
}


События визуального редактора

Событие | Описание | С версии
OnIframeBeforeGetValue | Позволяет модифицировать содержимое получаемое из визредактора. | 17.5.1


Компонент фильтра

JS-библиотека landing.uifilterconverter

Служит для преобразования условий отбора элементов источника в фильтр блока.

Должна быть подключена в шаблоне компонента формы:

\Bitrix\Main\UI\Extension::load('landing.uifilterconverter');

Содержит класс UiFilterConverter. Методы:

Конструктор класса

UiFilterConverter(
 {filterId: 'ИД_фильтра'}
)
Параметры | Тип | Описание | С версии
filterId | объект | Содержит ИД_фильтра (тот, что инициализировал main.uni.filter) |

UiFilterConverter.getFilter

Возвращает фильтр из main.ui.filter, преобразованный в формат блока.


Остальные расширения

Расширение | Описание
core_admin.js core_admin_interface.js core_admin_login.js | Служебные расширения, предназначенные для работы интерфейса панели управления.
core_access.js | Служебное расширение, обрабатывающее диалог выбора прав доступа.
core_autosave | Служебное расширение для работы системы автосохранения.
core_dd | Служебное расширение для работы приема файлов через drag&drop.
core_finder core_tags | Служебные расширения для некоторых интерфейсов модуля поиска.
core_timer | Служебное расширение для визуализации частей интерфейса модуля учета рабочего времени.
core_tooltip | Служебное расширение для визуализации частей интерфейса модуля соцсети
core_image | Старый диалог показа картинок. Вытеснен core_viewer и скоро будет удален. Использовать категорически не рекомендуется.


Плеер

Описание и методы

Скрипт лежит в папке компонента bitrix:player /bitrix/components/bitrix/player/js/fileman_player.js. Его надо подключать вручную на текущий момент.

Объект BX.Fileman.PlayerManager предоставляет доступ к плеерам на странице.

Метод Описание С версии
BX.Fileman.PlayerManager.getPlayerById(
   playerId
)
 Основной метод. Возвращает объект по его ID.
BX.Fileman.Player()
 Создаёт объект для каждого плеера на странице.
BX.Fileman.Player(
   id,
  params
)
 Метод - конструктор, создает новый экземпляр Описание params лучше на данный момент смотреть в исходниках, параметры не финализированы.

API объекта плеера

var player = BX.Fileman.PlayerManager.getPlayerById(playerId); // получили объект плеера
Метод | Описание | С версии
player.isPlaying() | Возвращает true, если идёт воспроизведение |
player.isEnded() | Возвращает true, если воспроизведение остановилось после проигрывания файла целиком. |
player.isReady() | Возвращает true, если плеер до конца инициализирован. |
player.getElement() | Возвращает html-ноду плеера |
player.createElement() | Если плеер вставлен в документ, возвращает ноду (см getElement). Если ноды нет, то создаёт её, но не вставляет в документ. |
player.setSource(source) | Устанавливает трек плеера. Лучше передавать объект вида { src: 'путь к файлу', type: 'mime-type'}. |
player.getSource() | Возвращает текущий трек. |
player.mute() | Выключает звук плеера. |
player.play() | Запускает воспроизведение |
player.pause() | Останавливает воспроизведение |


События

Глобальная подписка

На события можно подписаться глобально

BX.addCustomEvent('PlayerManager.Player:onAfterInit', function(player)
{
    // player - объект BX.Fileman.Player
});

Список событий

Событие | Вызывается | С версии
PlayerManager.Player:onCreate | при создании экземпляра плеера |
PlayerManager.Player:onBeforeInit | перед инициализацией |
PlayerManager.Player:onAfterInit | после инициализации |
PlayerManager.Player:onSetSource | после установки истчника через setSource() |
PlayerManager.Player:onKeyDown | после нажатия на клавиатуру, если плеер в фокусе |
PlayerManager.Player:onPlay | после начала воспроизведения |
PlayerManager.Player:onPause | после остановки воспроизведения |
PlayerManager.Player:onClick | при клике на ноду плеера |
PlayerManager.Player:onError | при возникновении ошибки (любой). Сама ошибка никуда на данный момент не приходит. |
PlayerManager.Player:onEnded | после достижения конца трека |

Подписка на конкретный экземпляр плеера - редкий случай.

BX.addCustomEvent(player, 'eventName', function(player, eventName){
    // player - объект BX.Fileman.Player
    // eventName - имя события
})

Список событий для конкретного экземпляра

СОбытие | Вызывается | С версии
Player:onCreate | при создании экземпляра плеера |
Player:onBeforeInit | перед инициализацией |
Player:onAfterInit | после инициализации |
Player:onSetSource | после установки источника через setSource() |
Player:onKeyDown | после нажатия на клавиатуру, если плеер в фокусе |
Player:onPlay | после начала воспроизведения |
Player:onPause | после остановки воспроизведения |
Player:onClick | при клике на ноду плеера |
Player:onError | при возникновении любой ошибки. Сама ошибка никуда на данный момент не приходит. |
Player:onEnded | после достижения конца трека |


Публичная оконная библиотека

Используется расширение popup (core_popup.js). Данный вид окон используется для работы публичный интерфейсов. Для административных интерфейсов (в т.ч. и для административных интерфейсов в публичной части) следует использовать расширение window.

Пример

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("PopUp");
   CJSCore::Init(array("popup"));
?>
<div id="hideBlock" style="display:none;">
   <h1>Hello</h1>
   <p>text</p>
</div>
<script>
   window.BXDEBUG = true;
BX.ready(function(){
   var oPopup = new BX.PopupWindow('call_feedback', window.body, {
      autoHide : true,
      offsetTop : 1,
      offsetLeft : 0,
      lightShadow : true,
      closeIcon : true,
      closeByEsc : true,
      overlay: {
         backgroundColor: 'red', opacity: '80'
      }
   });
   oPopup.setContent(BX('hideBlock'));
   BX.bindDelegate(
      document.body, 'click', {className: 'css_popup' },
         BX.proxy(function(e){
            if(!e)
               e = window.event;
            oPopup.show();
            return BX.PreventDefault(e);
         }, oPopup)
   );

});
</script>
<div class="css_popup">click Me</div>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>


BX.PopupWindowManager

BX.PopupWindowManager - обертка над BX.PopupWindow. Имеет две особенности в использовании:

  • Повторный вызов метода create - вернет уже существующий объект.
  • Открытие диалога, автоматически закрывает другой открытый диалог, созданный через BX.PopupWindowManager.
Метод | Описание | С версии
create(uniquePopupId, bindElement, params) | Создает диалог. Точно также как и BX.PopupMenu. |
isPopupExists(uniquePopupId) | Проверяет существование диалога. |
getCurrentPopup() | Получает текущий диалог. |

Пример

var popup = BX.PopupWindowManager.create("popup-message", null, {
    content: "Hello World!",
    darkMode: true,
    autoHide: true
});

popup.show();


Публичный диалог показа файлов

Диалог работает только с файлами, которые размещены на корпоративном портале. Вьювер открывается на элементах, содержащих атрибуты data-viewer и data-viewer-group-by (см. /bitrix/js/ui/viewer.js). Чтобы viewer работал, нужно подключить его:

CJSCore::Init([ 'ui.viewer' ]);

Итоговый код выглядит примерно так:

<? CJSCode::Init([ 'ui.viewer' ]); ?>
<button
   class="ui-btn ui-btn-link"
   data-viewer="null"
   data-object-id="1234"
   data-viewer-type="document"
   data-src="/disk/downloadFile/1234/?&ncc=1&filename=ИмяФайла.pdf"
   data-title="ИмяФайла.pdf"
   data-actions='[{"type":"download"}]'
>ОТКРЫТЬ ФАЙЛ

Где:
1234 - ID файла на диске
ИмяФайла.pdf - название файла во вьювере.

Пример

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Просмотр изображений");
   CJSCore::Init(Array("viewer"));
?>
   <div id="db-items" >
      <span class="feed-com-img-wrap" style="width:548px;">
         <img
            onload="this.parentNode.className='feed-com-img-wrap';"
            src="http://www.1c-bitrix.ru.images.1c-bitrix-cdn.ru/upload/iblock/28b/box_cms_125_143x158.jpg"
            data-bx-viewer="image"
            data-bx-title="CMS"
            data-bx-src="http://www.1c-bitrix.ru/images/gr/bus125_2/02.jpg"
            data-bx-download="http://www.1c-bitrix.ru/images/gr/bus125_2/02.jpg"
            data-bx-width="548"
            data-bx-height="346"
         />
      </span>
      <span class="feed-com-img-wrap" style="width:548px;">
         <img
            onload="this.parentNode.className='feed-com-img-wrap';"
            src="http://www.1c-bitrix.ru.images.1c-bitrix-cdn.ru/upload/iblock/d5b/box_cp_125_143x158.jpg"
            data-bx-viewer="image"
            data-bx-title="KP"
            data-bx-src="http://www.1c-bitrix.ru/images/new/cp11/meeting/podg.png"
            data-bx-download="http://www.1c-bitrix.ru/images/new/cp11/meeting/podg.png"
            data-bx-width="548"
            data-bx-height="346"
         />
      </span>
   </div>
<script>
BX.ready(function(){
   var obImageView = BX.viewElementBind(
      'db-items',
      {showTitle: true, lockScroll: false},
      function(node){
         return BX.type.isElementNode(node) && (node.getAttribute('data-bx-viewer') || node.getAttribute('data-bx-image'));
      }
   );
});
</script>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>


Работа с буфером обмена

Для работы с буфером обмена используется расширение clipboard

Для подключения библиотеки используется следующий код:

CJSCore::Init (
   array('clipboard')
)

Функция | Описание
BX.clipboard.bindCopyClick | Копирование содержимого node-элемента в буфер обмена при нажатии.


BX.clipboard.bindCopyClick

JS библиотека>Работа с буфером обмена>BX.clipboard.bindCopyClick

Работа с буфером обмена::BX.clipboard.bindCopyClick

void
BX.clipboard.bindCopyClick(
 DOMNode YourNode,
 Object params
);

Функция производит копирование текста в буфер обмена при нажатии на определенный элемент DOM.

Параметры функции

Параметр | Описание
YourNode | Элемент, при нажатии на который будет производиться копирование
params Массив параметров. Возможные ключи объекта params:
  • text - ссылка на объект, из которого будет производиться копирование;
  • showButtonIfNotSupported - флаг вывода сообщений, если метод копирования в буфер не поддерживается (по умолчанию - false);
  • popup [image] - объект настроек всплывающего окна с информацией о результате копирования;

Пример использования

BX.clipboard.bindCopyClick(
    BX('copy_button'),
    {
        text: BX('copy_text')
    }
);

При нажатии на элемент BX('copy_button') произойдет копирование в буфер содержимого (текста) контейнера BX('copy_text') (контейнер может быть в том числе элементом ввода формы).


Работа с локальным хранилищем

Описание и функции

Для работы с локальным хранилищем используется расширение ls (core_ls.js)

localStorage работает во всех современных браузерах. IE поддерживает его начиная с версии 8. Для IE7 существует методика эмуляции поведения, аналогичного localStorage. Все эти методы объединены в единый интерфейс BX.localStorage.

Примечание:, подключение расширения дает возможность использовать дополнительные параметры lsId, lsTimeout и lsForce в BX.ajax.

Функция | Описание
BX.localStorage.set | Установка значения элемента хранилища.
BX.localStorage.get | Получение значения элемента хранилища.
BX.onGlobalCustomEvent | Функция выполняет обработчики кастомного события eventName во всех открытых вкладках сайта.

События

Событие | Описание
BX.onLocalStorageSet | При установке элемента хранилища.
BX.onLocalStorageRemove | При удалении элемента хранилища.
BX.onLocalStorageChange | При изменении элемента хранилища (включая добавление и удаление)


BX.localStorage.set

 void
BX.localStorage.set(
 String key,
 String|Object value[,
 Number ttl]
);

Функция устанавливает значения элемента хранилища.

Параметры функции

Параметр | Описание
String key | Ключ элемента хранилища
String|Object value | Значение элемента хранилища (строка или объект)
Number ttl | Время жизни элемента хранилища в секундах (по умолчанию 60)


BX.localStorage.get

Object|String
BX.localStorage.get(
 String key
);

Функция позволяет получить значения элемента хранилища. Если элемента хранилища нет или его время жизни истекло, то вернется null.

Параметры функции

Параметр | Описание
String key | Ключ элемента хранилища


BX.onGlobalCustomEvent

void
BX.onGlobalCustomEvent(
 String eventName,
 Array arEventParams[,
 Boolean bSkipSelf = false]
);

Функция выполняет обработчики кастомного события eventName (BX.addCustomEvent/BX.onCustomEvent) во всех вкладках браузера

Параметры функции

Параметр | Описание
eventName | Название события
arEventParams | Массив параметров события
bSkipSelf | Позволяет пропустить обработчики текущей вкладки, в которой был вызов. По умолчанию false


Работа с форматами даты и календарь

Для этого используется расширение date (core_date.js)

Функция | Описание
BX.date.format | Перенос в JavaScript функции FormatDate.
BX.date.convertBitrixFormat | Конвертирует строку описания формата вида DD.MM.YYYY в формат PHP-функции date, принимаемый функцией BX.date.format.
BX.calendar | Вывод календаря с указанными параметрами


BX.date.format

String
BX.date.format(
 String format,
 Number|Date timestamp,
 Number|Date now,
 Boolean utc
);

Перенос в JavaScript функции FormatDate.

Параметры функции

Параметр | Описание
format | Описание формата даты
timestamp | Дата-время в виде UNIX timestamp или объекта Date. Тип данных Date | Number
now | Текущие дата-время в виде UNIX timestamp или объекта Date (нужно для некоторых вариантов полей формата, опирающихся на текущее время).
utc | Флаг "переданы даты в UTC"


BX.date.convertBitrixFormat

String
ClassName::MethodName(
 String format
);

Конвертирует строку описания формата вида DD.MM.YYYY в формат PHP-функции date [image], принимаемый функцией BX.date.format. Аналог CDatabase::DateFormatToPHP.

Параметры функции

Параметр | Описание
format | Формат даты


BX.calendar

Object
BX.calendar(
 Object params
);

Показать календарь с указанными параметрами.

Параметры функции

Параметр | Описание
node | Ссылка на узел DOM, около которого нужно показать календарь.
value | Начальное значение календаря в формате сайта. Если не указано, то значение берется из поля field.
field | Ссылка на узел DOM, соответствующий элементу формы, из которого будет браться и в который будет записываться значение.
form | Форма, в которой будет искаться поле field, если указана строка.
callback | Обработчик выбора даты. может вернуть false, чтобы запретить закрытие календаря.
callback_after | Дополнительный обработчик, вызываемый после выбора даты.
bTime | Включать ли контрол выбора времени.
bHideTime | Скрывать ли включенный контрол выбора времени по умолчанию. Если указано начальное значение календаря, то факт наличия или отсутствия в нем времени перекроет этот параметр.
currentTime | Текущее время (значение по умолчанию).
weekStart | Первый день недели. По умолчанию будет взят из настроек сайта/языка.

Пример

<input type="text" value="03.02.2015" name="date" onclick="BX.calendar({node: this, field: this, bTime: false});">


Регистрация своих расширений

Описание и параметры

CJSCore::RegisterExt(
    "my_extension",
    array(
        "js" => "/path/to/js/my_ext.js",
        "css" => "/path/to/css/my_ext.css",
        "lang" => "/path/to/lang/".LANGUAGE_ID. "/lang.php",
        "rel" => Array("ajax", "popup", "ls"),
        "skip_core" => false | true,
    )
);

Функция регистрирует собственные расширения.

Параметры функции

Параметр | Описание
my_extension | имя расширения
Array Массив параметров расширения:
  • js - Путь до файла расширения;
  • css - Путь до файла css расширения;
  • lang - Путь до языкового файла расширения;
  • rel - Список "зависимостей". При подключении собственного расширения зависимости будут подключены автоматически.
  • skip_core - При подключении расширения не требуется подключение core.js.

Примеры использования

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Свои расширения");

   CJSCore::RegisterExt("db_js_demo", Array(
      "js" =>    "/script_demo.js",
      "lang" =>   "/lang_js.php",
      "rel" =>   array('jquery')
   ));
   CJSCore::Init(array("db_js_demo"));
?>
<div id="hideBlock" style="display:none;">
   <h1>Hello</h1>
   <p>text</p>
</div>
<script>
   window.BXDEBUG = true;
BX.ready(function(){
   BX.PREFIXName('HELLO');
   //BX.PREFIXName.testJQ('#demo');
});
</script>
<p id="demo">click Me</p>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>


События

Пространство имён содержит функции и классы для работы с событиями.


Event.BaseEvent

Класс-конструктор объекта события.

import {Event} from 'main.core';

const event = new Event.BaseEvent({
    data: {
        item1: '...',
        item2: '...',
    },
});

this.emit('BX.UI.Button:click', event);

Event.BaseEvent.preventDefault

Event.BaseEvent.preventDefault()

Отменяет действие по умолчанию для события.

Event.BaseEvent.isDefaultPrevented

Event.BaseEvent.isDefaultPrevented(): boolean

Проверяет была ли отмена действия по умолчанию в обработчике события.

Event.BaseEvent.isTrusted

Event.BaseEvent.isTrusted: boolean

Указывает на то, кем было отправлено событие.

Если true, то событие было отправлено объектом наследником класса Event.EventEmitter.
Если false, то событие было отправлено глобально, с помощью статического метода .emit


Event.bind

Event.bind(target: Element, event: string, handler: (event: Event) => void, options?: listenerOptions)

Добавляет обработчик указанного события, который будет вызваться всякий раз при возникновении события. В качестве третьего параметра функция может принимать объект определяющий свойства обработчика события.

const listenerOptions = {
    capture?: boolean,
    once?: boolean,
    passive?: boolean,
}

import {Event} from 'main.core';

const button = document.querySelector('.ui-btn');

Event.bind(button, 'click', (event) => {
    // ...
});

Добавление неблокирующего обработчика.

import {Event} from 'main.core';

Event.bind(window, 'scroll', scrollHandler, {passive: true});

Такой обработчик не будет блокировать выполнение действия по умолчанию. В данном случае перерисовка страницы при прокрутке будет происходить сразу, не дожидаясь выполнения обработчика. Все вызовы event.preventDefault() в таком обработчике игнорируются.


Event.bindOnce

Event.bindOnce(target: Element, event: string, handler: (event: Event) => void, options?: listenerOptions)

Добавляет обработчик указанного события, который будет вызван только один раз.

import {Event} from 'main.core';

const button = document.querySelector('.ui-btn');

Event.bindOnce(button, 'click', (event) => {
    // ...
});


Event.EventEmitter

Описание

Класс реализует интерфейс EventEmitter'а для работы с кастомными событиями.

import {Event} from 'main.core';

// Отправка событий в классе наследнике
class Button extends Event.EventEmitter
{
    constructor()
    {
        super();
        // Отправка события BX.MyModule.MyClass:ready
        this.emit('BX.UI.Button:ready');
    }

    render()
    {
        // Отправка события BX.MyModule.MyClass:beforeRender
        this.emit('BX.UI.Button:beforeRender');
        // ...
        // Отправка события BX.MyModule.MyClass:render
        this.emit('BX.UI.Button:render');
    }

    onClick()
    {
        const event = new Event.BaseEvent({data: {...}});
        // Отправка события BX.MyModule.MyClass:render
        this.emit('BX.UI.Button:click', event);
    }
}

Подписка на события объекта

const button = new Button();

button
    .subscribe('BX.UI.Button:ready', (event) => {
        console.log('Button is ready', event);
    })
    .subscribe('BX.UI.Button:render', (event) => {
        console.log('Button is rendered', event);
    })
    .subscribe('BX.UI.Button:click', (event) => {
        console.log('Button is clicked', event);
    });

Глобальная подписка на события всех объектов

Event.EventEmitter
    .subscribe('BX.UI.Button:ready', (event) => {
        console.log('Button is ready', event);
    })
    .subscribe('BX.UI.Button:render', (event) => {
        console.log('Button is rendered', event);
    })
    .subscribe('BX.UI.Button:click', (event) => {
        console.log('Button is clicked', event);
    });

Глобальная отправка событий

Event.EventEmitter
    .emit('BX.UI.Button:click');

Будут вызваны все обработчики события BX.UI.Button:click.

Event.EventEmitter.subscribe

Event.EventEmitter.subscribe(event: any, listener: (event: BaseEvent) => void): EventEmitter

Добавляет обработчик указанного события. В качестве первого параметра в обработчик передается объект типа BaseEvent.

import {Event} from 'main.core';

class Button extends Event.EventEmitter {}

const emitter = new Button();

emitter.subscribe('BX.UI.Button:click', (event) => {
    // ...
});

Event.EventEmitter.subscribeOnce

Event.EventEmitter.subscribeOnce(event: any, listener: (event: BaseEvent) => void): EventEmitter

Добавляет обработчик указанного события, который будет вызван только один раз.

import {Event} from 'main.core';

class Button extends Event.EventEmitter {}

const emitter = new Button();

emitter.subscribeOnce('BX.UI.Button:click', (event) => {
    // ...
});

Event.EventEmitter.unsubscribe

Event.EventEmitter.unsubscribe(event: any, listener: Function) => void): EventEmitter

Удаляет обработчик события.

import {Event} from 'main.core';

class Button extends Event.EventEmitter {}

const emitter = new Button();

emitter.subscribeOnce('BX.UI.Button:click', clickHandler);

Event.EventEmitter.emit

Event.EventEmitter.emit(eventName: any, event?: BaseEvent | {[key: string]: any}): EventEmitter

Отправляет событие.

import {Event} from 'main.core';

// Отправка событий в классе наследнике
class Button extends Event.EventEmitter
{
    constructor()
    {
        super();
        // Отправка события BX.MyModule.MyClass:ready
        this.emit('BX.UI.Button:ready');
    }

    // ...
}

Event.EventEmitter.emitAsync

Event.EventEmitter.emitAsync(eventName: any, event?: BaseEvent | {[key: string]: any}): Promise

Отправляет событие и возвращает Promise, который будет решен, когда решатся все промисы возвращенные из обработчиков события или отклонен, когда хотя бы один из возвращенных промисов будет отклонен.

Обратите внимание, что промис решается со значением типа Array, содержащим значения промисов вернувшихся из обработчиков. Порядок значений соответствует порядку подписки обработчиков, а не порядку решения промисов.

Также, обратите внимание на то, что из синхронных обработчиков не обязательно возвразать промис, можно просто вернуть значение любого типа. Либо вообще ничего не возвращать.

import {Event} from 'main.core';

class Button extends Event.EventEmitter {}

const button = new Button();

button.subscribe('click', () => {
    return new Promise((resolve) => {
        setTimeout(() => {
            resolve('value 1');
        }, 1000);
    });
});

button.subscribe('click', () => {
    return 'value 2';
});

button
    .emitAsync('click')
    .then((results) => {
        console.log(result[0]); // => 'value 1'
        console.log(result[1]); // => 'value 2'
    });

Event.EventEmitter.setMaxListeners

Event.EventEmitter.setMaxListeners(count: number): EventEmitter

Устанавливает максимальное количество обработчиков для каждого события. По умолчанию 10. Если количество обработчиков превысит максимальное количество, то в консоль будет выведено предупреждение.

import {Event} from 'main.core';

class Button extends Event.EventEmitter {}

const emitter = new Button();

emitter.setMaxListeners(2);

emitter
    .subscribe('BX.UI.Button:click', () => {})
    .subscribe('BX.UI.Button:click', () => {})
    .subscribe('BX.UI.Button:click', () => {});

// => Possible BX.Event.EventEmitter memory leak detected. 3 BX.UI.Button:click listeners added. Use emitter.setMaxListeners() to increase limit

Event.EventEmitter.getMaxListeners

Event.EventEmitter.getMaxListeners(): Number

Возвращает текущий лимит на количество обработчиков для каждого события.

Event.EventEmitter.getListeners

Event.EventEmitter.getListeners(eventName: any): Set | null

Возвращает список обработчиков указанного события.


Event.ready

Event.ready(() => void)

Добавляет обработчик, который будет выполнен после загрузки страницы. Если страница уже была загружена, то обработчик будет выполнен немедленно.

import {Event} from 'main.core';

Event.ready(() => {
    console.log('Page loaded!');
});


Event.unbind

Event.unbind(target: Element, event: string, handler: (event: Event) => void, options?: listenerOptions)

Удаляет указанный обработчик события. В качестве третьего параметра необходимо передать параметры, с которыми был добавлен обработчик. Если обработчик был добавлен без параметров, то параметры передавать не нужно.

import {Event} from 'main.core';

const button = document.querySelector('.ui-btn');

Event.unbind(button, 'click', eventHandler);


Event.unbindAll

Event.unbindAll(target: any, event?: string)

Удаляет все обработчики указанного события.

import {Event} from 'main.core';

const button = document.querySelector('.ui-btn');

Event.unbindAll(button, 'click');


Push and Pull

Описание

Модуль позволяет организовать транспорт для отправки мгновенных команд. Реализация данного функционала в виде отдельного модуля позволяет любому модулю (в том числе и модулям сторонних разработчиков) используя API отправлять мгновенные нотификации и сообщения клиентам.

Подключение модуля:

if (!CModule::IncludeModule('pull'))
   return false;

Так же необходимо зарегистрировать зависимость на модуль Push and Pull. Регистрация обработчика зависимости:

RegisterModuleDependences("pull", "OnGetDependentModule", "your_module", "CYourModulePullSchema", "OnGetDependentModule" );

События и push-уведомления они отправляются на серверы рассылки в эпилоге страницы. Если вы отправляете события в ajax-обработчиках, вам необходимо использовать CMain::FinalActions() в финале обработчика.

Примеры

Пример кода класса

class CYourModulePullSchema
{
    public static function OnGetDependentModule()
    {
        return Array(
            'MODULE_ID' => "your_module",
            'USE' => Array("PUBLIC_SECTION")
     );
     }
}

Для работы с командами, отправленными из PHP необходимо в вёрстке использовать следующие JS код:

Ловушка для страниц десктопной версии (все события кроме событий online):

BX.addCustomEvent("onPullEvent-moduleName", BX.delegate(function(command,params){
   console.log('Events of moduleName', command, params);
}, this));

Ловушка для страниц мобильной версии (все события кроме событий online):

BX.addCustomEvent("onPull-moduleName", BX.delegate(function(data){
    console.log('Events of moduleName', data.command, data.params);
}, this));

Примечание: не забывайте сменить в примере "moduleName" на имя вашего модуля.

Пример кода для работы с PHP классами модуля (Pull, Pull Shared, Pull Watch):

BX.addCustomEvent("onPullEvent-main", function(module_id,command,params) {
    if (command == 'check')
    {
        console.log('Command from module MAIN - its work!');
    }
});

В примере иы подписываемся на событие получение команд (onPullEvent-moduleName), moduleName это название вашего модуля, например main, в функции получаем command, params которые мы указали при отправке команды из PHP, обрабатываем свои команды с учетом вашей логики.

Если ваша логика требует сбора всех событий, то формат немного отличается: (доступно на любой версии pull)

Ловушка для страниц десктопной версии (все события кроме событий online):

BX.addCustomEvent("onPullEvent", BX.delegate(function(module_id,command,params){
   console.log(module_id, command, params);
}, this));

Ловушка для страниц мобильной версии (все события кроме событий online):

BX.addCustomEvent("onPull", BX.delegate(function(data){
    console.log(data.module_id, data.command, data.params);
}, this));

Пример кода для работы с PHP классами модуля (Pull, Pull Shared, Pull Watch):

BX.addCustomEvent("onPullEvent", function(module_id,command,params) {
    if (module_id == "test" && command == 'check')
    {
        console.log('Work!');
    }
});

В примере мы подписываемся на событие получение команд (onPullEvent), в функции получаем module_id, command, params которые мы указали при отправке команды из PHP, обрабатываем свои команды с учетом вашей логики.

Примечания:
  • Для получения данных об онлайне используйте событие [link=888232]onPullOnlineEvent[/link]
  • Лучше использовать обработчики событий для конкретных модулей, вместо обработчика на все события. Такой формат будет более производителен.


Push and Pull в ядре D7

Список классов модуля Push and Pull в ядре D7.

Класс | Описание | С версии
PushTable | Таблица, содержащая описание мобильных устройств, для дальнейшей отправки по ней push-уведомлений. |


Классы

PHP классы

Класс | Описание | С версии
CPullStack | Отправка данных. | 11.5.0
CPullWatch | Отправка данных подписанным пользователям. | 11.5.0
CPullOptions | Проверка, включена ли данная опция в настройках. | 11.5.0
CPushManager | Отправка пуш уведомления. | 11.5.0

JS методы

Класс | Описание | С версии
BX.addCustomEvent | "Ловушка" на JS. |
BX.PULL.extendWatch | Продление подписки. | 14.0.0
BX.PULL.subscribe | Подписка на события модуля Push&Pull. | 18.5.0

Примечание. Все остальные классы, которые вы можете видеть с помощью модуля LiveAPI [image] являются служебными, не описываются и не рекомендуются к использованию.


BX.PULL.extendWatch

BX.PULL.extendWatch - JS метод.

Продление подписки на тег. После вызова метода, он автоматически будет продлевать данную подписку, пока пользователь находится на странице.

BX.PULL.extendWatch('tag');
Ниже вы сможете скачать пример компонента, который работает с самым сложным методом, методом подписок.

Параметры

Параметр | Описание
tag | Тег который вы хотите продлить, для успешного продления пользователь должен быть подписан.

Пример [image] компонента, который работает с самым сложным методом подписок.


BX.PULL.subscribe

Описание и параметры

BX.PULL.subscribe - JS метод.

Подписка на события модуля Push&Pull. Для подписки есть три формата [image], вы можете выбрать для себя подходящий в зависимости от ваших задач.

Параметры

Параметр | Описание
type | Тип подписки ([dw]Server, Client, Online[/dw][di]Здесь имеется ввиду константы: BX.PullClient.SubscriptionType.Server, BX.PullClient.SubscriptionType.Client, BX.PullClient.SubscriptionType.Online[/di]) - можно не указывать, по умолчанию будет тип Server.
moduleId | Модуль отправивший команду.
command | Команда на которую осуществляется подписка
callback | Функция обработчик

Примеры использования

Подписка на все события модуля.

BX.PULL.subscribe({
   moduleId: 'exampleModule',
   callback: function (data) {
      if (command == 'exampleCommandOne')   {
         doSomething();
      }
      else if (command == 'exampleCommandTwo')
      {
         doSomething2();
      }
   }.bind(this)
});

Подписка на одну команду

BX.PULL.subscribe({
    type: BX.PullClient.SubscriptionType.Server,
    moduleId: 'im',
    command: 'messageChat',
    callback: function (params, extra, command) {
        console.warn('Receive message:', params.message.text)
    }.bind(this)
});

Подписка на множество команд с помощью функции маршрутизатора

BX.PULL.subscribe({
    type: BX.PullClient.SubscriptionType.Server,
    moduleId: 'im',
    callback: function (data) {
        if (data.command == 'messageAdd')
        {
            this.doSomething();
        }
    }.bind(this)
});

Подписка с помощью класса маршрутизации

BX.PULL.subscribe(new CommandHandler(options));


CPullOptions

Класс Описание С версии
GetNginxStatus Проверка, включен ли сервер очередей, нужен если логика вашего приложения требует только мгновенных оповещений (например, вызов абонента в Online ATC)

Пример вызова:

CPullOptions::GetNginxStatus()
GetPushStatus Проверка, включена ли данная опция в настройках, если включена вы можете отправлять Push уведомления.

Пример вызова:

CPullOptions::GetPushStatus()


CPullStack

Проверка, включен ли сервер очередей, нужен если логика вашего приложения требует только мгновенных оповещений (например вызов абонента в Online ATC)

CPullOptions::GetNginxStatus()
Метод | Описание | С версии
AddByUser | Метод отправляет сообщения определенному пользователю. |
AddByUsers | Метод отправляет сообщения группе пользователей. | 16.0.0
AddShared | Метод производит отправку данных всем пользователям (в общий канал Сервера очередей). | 12.5.5


AddByUser

Push and Pull>Классы>CPullStack>AddByUser (11.5.0)

CPullStack::AddByUser

CPullStack::AddByUser(
   $recipientId, Array(
       'module_id' => 'test',
       'command' => 'check',
       'params' => Array(),
   )
);

Метод отправляет сообщения определенному пользователю. Метод статический.

Параметры

Параметр | Описание | С версии
recipientId | Получатель сообщения |
module_id | Модуль который отправляет команду |
command | Команда которая будет обработана в JS |
params | Любой набор данных, который будет обработан в JS |

Если нужно отправить команду множеству получателей, то приходится выполнять метод в цикле. В таких случаях лучше использовать CPullStack::AddByUsers в которой первый параметр - массив пользователей.


AddByUsers

Push and Pull>Классы>CPullStack>AddByUsers (16.0.0)

CPullStack::AddByUsers

Описание и сигнатура

CPullStack::AddByUsers(
   $arrayUserId, Array(
      'module_id' => 'im',
      'command' => 'ping',
      'params' => Array(
         'message' => 'test'
   ),
));

Метод отправляет сообщения группе пользователей. Метод статический.

Метод за один раз выбирает все каналы пользователей, и пакетами по N сообщений отправляет за раз. (Количество отправляемых сообщений зависит от настройки модуля [image] Push&Pull ).

Метод может отправлять push-уведомления на мобильные телефоны не отправляя для этого уведомления в мессенджер. Для этого нужно в массив параметров добавить ключ push с параметрами push-уведомления (для примера, таким образом ходят push-уведомления о новых сообщениях в чате).

Параметры

Параметр | Описание | С версии
UserId | Массив получателей сообщения |
module_id | Модуль который отправляет команду |
command | Команда которая будет обработана в JS |
params | Любой набор данных, который будет обработан в JS |

Пример

$users = [1,2,3];
\Bitrix\Pull\Push::add($users, Array(
                    'module_id' => 'some',
                    'push' => Array(
                        'message' => $pushText,
                        'expiry' => 0,
                        'send_immediately' => 'Y' // если не нужно чтобы проходил фильтр, надо Y
                    )
                ));

Рекомендуется использовать для решения задачи специальные уведомления. Они смогут дать возможность пользователю управлять что он хочет получать уведомление или push. Пример кода:

if (CModule::IncludeModule('im'))
{
    \CIMNotify::Add([
        "TO_USER_ID" => $USER->GetId(),
        "FROM_USER_ID" => 0,
        "NOTIFY_TYPE" => IM_NOTIFY_SYSTEM,
        "NOTIFY_MODULE" => "intranet",
        "NOTIFY_EVENT" => "security_otp",
        "NOTIFY_MESSAGE" => "Совершена попытка входа в Ваш аккаунт через Мобильное устройство iPhone с IP 95.55.202.217 (Россия).[br][br]Код подтверждения входа: [b]722665[/b].[br][br] Используйте этот код для входа в ваш Битрикс24. Никому не передавайте его и не вводите на других сайтах![br][br]Если Вы не запрашивали код, срочно смените пароль в настройках.",
        "PUSH_MESSAGE" => "Код подтверждения входа: 722665. Если Вы не запрашивали код, срочно смените пароль в настройках.",
   "PUSH_IMPORTANT" => "N",
    ]);
}


AddShared

Push and Pull>Классы>CPullStack>AddShared (12.5.5)

CPullStack::AddShared

CPullStack::AddShared(
   Array(
      'module_id' => 'test',
      'command' => 'check',
      'params' => Array(),
   )
);

Метод производит отправку данных всем пользователям (в общий канал Сервера очередей). Метод статический.

Параметры

Параметр | Описание | С версии
module_id | Модуль который отправляет команду |
command | Команда которая будет обработана в JS |
params | Любой набор данных, который будет обработан в JS |

Примечания:
  • Вызов этого метода в конфигурации без сервера очередей не приведет к отправке сообщений, так как общий канал есть только у сервера очередей.
  • ОСОБОЕ ВНИМАНИЕ: данный метод отправляет данные всем пользователям, передавать там секретные данные нельзя: их увидят все.


CPullWatch

Класс осуществляет отправку данных подписанным пользователям.

ВНИМАНИЕ: в целях безопасности, пользователи не имеют возможности подписыватся на канал через JS, что бы, например, не читать чужую закрытую статью и т.д. Поэтому в теге подписки нельзя использовать параметры из $_GET, $_POST, $_REQUEST, чтобы злоумышленник не смог подписаться на контент который ему запрещен.

Метод | Описание | С версии
Add | Подписка на команды. |
Delete | Удаление подписки. | 12.5.5
AddToStack | Отправка данных подписанным пользователям. |
GetUserList | Получение списка пользователей, подписанных на определённый тег. |


Add

Push and Pull>Классы>CPullWatch>Add (11.5.0)

CPullWatch::Add

CPullWatch::Add(
 $userId,
 $tag
);

Метод осуществляет подписку на команды. Метод статический.

Примечание: Подписка действует 30 минут. По истечению этого времени пользователь отписывается от получения команд. Продлить можно повторным вызовом команды или с помощью JS API.

Параметры

Параметр | Описание | С версии
userId | пользователь которого необходимо подписать |
tag | идентификатор подписки |


AddToStack

Push and Pull>Классы>CPullWatch>AddToStack (11.5.0)

CPullWatch::AddToStack

CPullWatch::AddToStack(
 $tag, Array(
  'module_id' => 'test',
    'command' => 'check',
    'params' => Array(),
 )
);

Метод отправляет данные подписанным пользователям. Метод статический.

Параметры

Параметр | Описание | С версии
tag | Идентификатор подписки |
module_id | Модуль который отправляет команду |
command | Команда которая будет обработана в JS |
params | Любой набор данных, который будет обработан в JS |


Delete

Push and Pull>Классы>CPullWatch>Delete (12.5.5)

CPullWatch::Delete

CPullWatch::Delete(
 $userId,
 $tag
);

Удаление подписки. Метод статический.

Параметры

Параметр | Описание | С версии
userId | Пользователь которого отписываем. |
tag | Идентификатор подписки (если не указать, пользователь будет отписан от всех подписок). |


GetUserList

Push and Pull>Классы>CPullWatch>GetUserList (с версии 11.5.0)

CPullWatch::GetUserList

CPullWatch::GetUserList(
 $tag
);

Метод возвращает массив пользователей, которые подписаны на TAG. Метод статический.

Параметры функции

Параметр | Описание
TAG | Тег, по которому производится выборка пользователей.


CPushManager

Описание и параметры

Класс отвечает за отправку Push уведомлений на телефон

Проверка, включена ли данная опция в настройках, если включена, то вы можете отправлять Push уведомления:

CPullOptions::GetPushStatus()

Если пользователь онлайн, то сообщение сначала попадает в таблицу рассылки на 15 секунд (в зависимости от типа выполнения агентов на сайте, время ожидания может быть выше), а после отправляется. Если пользователь офлайн, то сообщение будет отправлено сразу.

$CPushManager = new CPushManager();
$CPushManager->AddQueue(Array(
   'USER_ID' => 1,
   'MESSAGE' => 'Тестовое сообщение',
   'TAG' => 'IM_MESS_1',
   'SUB_TAG' => 'IM_MESS'
));

Параметры

Параметр | Описание | С версии
USER_ID | Пользователь которому отправляем пуш сообщение |
MESSAGE | Текст сообщения (максимум 255 символов). |
TAG | Необязательный. Нужен если необходимо будет их удалить перед отправкой. |
SUB_TAG | Необязательный. Нужен если необходимо будет их удалить перед отправкой. |

Так же возможна передача ключа SEND_IMMEDIATELY = Y для отправки сообщения без задержки, если это требует ваша логика.

Внимание: пользователь должен быть подписан на Push уведомления, это происходит автоматически после входа на портал через мобильное приложение.

Удаление Push уведомления

Удаление Push уведомления по основному тегу

CPushManager:: DeleteFromQueueByTag($userId, $tag);

Удаление Push уведомления по дополнительному тегу

CPushManager:: DeleteFromQueueBySubTag($userId, $subTag);

Внимание: удаление возможно только если Push уведомление еще не отправилось пользователю.


События модуля Push and Pull

Метод | Описание | С версии
[link=888232]onPullOnlineEvent[/link] | Событие для получения данных об онлайне. | 14.1.0

Cобытия и push-уведомления отправляются на серверы рассылки в эпилоге страницы. Если вы отправляете события в ajax-обработчиках, вам обязательно необходимо использовать CMain::FinalActions() в финале обработчика.

Примечание: если в объекте события будет найден объект времени \Main\Type\DateTime [image], клиент от сервера Push & Pull получит дату в формате ATOM.


Для разработчиков

Модуль предназначен для реализации функционала Wikipedia (коллективной работы над контентом страницы).

Перед использованием модуля необходимо проверить установлен ли он и подключить его при помощи конструкции:

<?    if(CModule::IncludeModule("wiki")){
//здесь можно использовать функции и классы модуля
}
?>

Модуль включает в себя следующие Компоненты 2.0:

Компоненты модуля
Название | Имя в пространстве имен bitrix | Описание
Комплексный Wiki компонент | wiki | Комплексный компонент позволяет вести полнофункциональную работу с Wiki.
Меню | wiki.menu | Выводит меню команд.
Страница | wiki.show | Выводит основную страницу Wiki.
Редактирование | wiki.edit | Выводит форму редактирования страницы.
Категории | wiki.categories | Выводит список категорий.
История | wiki.history | Выводит историю изменений страницы.
Обсуждения | wiki.discussion | Выводит обсуждение по статье.
Сравнение версий | wiki.history.diff | Выводит тексты версий для сравнения.


Классы модуля

Класс | Описание | С версии
CWiki | Класс для работы с Wiki. | 9.5.1
CWikiParser | Класс обрабатывающий вики разметку в странице. | 9.5.1
CWikiSecurity | Класс защищающий wiki-страницу от потенциально опасных элементов. | 9.5.1
CWikiSocnet | Класс интеграции с модулем «Социальная сеть». | 9.5.1
CWikiDiff | Класс сравнения wiki-страниц. | 9.5.3
CWikiUtils | Класс дополнительных функций. | 9.5.1


CWiki

CWiki - Класс для работы c Wiki.

Методы класса

Метод | Описание | С версии
GetElementById | Получает Wiki-страницу по идентификатору. |
GetElementByName | Получает Wiki-страницу по названию. |
Add | Добавляет новую Wiki-страницу. |
Update | Изменяет существующую Wiki-страницу. |
Rename | Переименовывает Wiki-страницу. |
Delete | Удаляет существующую Wiki-страницу. |
GetDefaultPage | Получает Wiki-страницу по-умолчанию. |
SetDefaultPage | Устанавливает Wiki-страницу по-умолчанию. |
Recover | Восстанавливает страницу из истории. |
UpdateHistory | Добавляет страницу в историю. |
GetCategory | Получает список категорий. |
UpdateCategory | Обновляет привязки страницы к категориям. |
AddImage | Добавляет изображение к Wiki-странице. |
DeleteImage | Удаляет изображение из Wiki-страницы. |


Add

Wiki>Классы>CWiki>Add (9.5.1)

CWiki::Add

int
CWiki::Add(
 array arFields
);

Метод добавляет новую Wiki-страницу. Нестатический метод.

Параметры метода

Параметр | Описание
arFields | CIBlock::Add

Смотрите также

  • CWiki::Update

Примеры использования

<?

// Добавим Wiki-страницу в инфо.блок с идентификатором 2

$arFields = array(
    'ACTIVE' => 'Y',
    'IBLOCK_ID' => 2,
    'DETAIL_TEXT_TYPE' => 'html',
    'DETAIL_TEXT' => '<br/><h2>Тестовая страница</h2><br/>',
    'NAME' => 'Тестовая страница'
);
$CWiki = new CWiki();
if (!($ID = $CWiki->Add($arFields)))
    echo 'Ошибка. Страница не создана.';
?>


AddImage

Wiki>Классы>CWiki>AddImage (9.5.1)

CWiki::AddImage

int
CWiki::AddImage(
 int ID,
 int IBLOCK_ID,
 array arImage
);

Метод привязывает изображение к Wiki-странице. Нестатический метод.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор Wiki-страницы. До версии 10.0.0 назывался ELEMENT_ID. |
IBLOCK_ID | Идентификатор Инфо.блока |
arImage | Массив свойств изображения |

Смотрите также

  • CWiki::DeleteImage

Примеры использования

<?

// привяжем изображение к странице с идентификатором 13 из инфо.блока с идентификатором 2
$ID = 13;
$IBLOCK_ID = 2;

if (CFile::IsImage($_FILES['FILE_ID']['name']))
{
    $CWiki = new CWiki();
    $CWiki->AddImage($ID, $IBLOCK_ID, $_FILES['FILE_ID']);
}
?>


Delete

Wiki>Классы>CWiki>Delete (9.5.1)

CWiki::Delete

bool
CWiki::Delete(
 int ID,
 int IBLOCK_ID,
);

Метод удаляет Wiki-страницу. Нестатический метод.

Параметры метода

Параметр | Описание
ID | Идентификатор Wiki-страницы
IBLOCK_ID | Идентификатор Инфо.блока. До версии 10.0.0 назывался BLOCK_ID.

Примеры использования

<?
// Удалим Wiki-страницу с идентификатором 13 в инфо.блоке с идентификатором 2
$ID = 13;
$IBLOCK_ID = 2;

$CWiki = new CWiki();
if (!$CWiki->Delete($ID, $IBLOCK_ID))
    echo 'Ошибка. Страница не удалена.';
?>


DeleteImage

Wiki>Классы>CWiki>DeleteImage (9.5.1)

CWiki::DeleteImage

void
CWiki::DeleteImage(
 int IMAGE_ID,
 int ID,
 int IBLOCK_ID
);

Удаляет изображение из Wiki-страницы. Нестатический метод.

Параметры метода

Параметр | Описание | С версии
IMAGE_ID | Идентификатор изображения. |
ID | Идентификатор Wiki-страницы. До версии 10.0.0 назывался ELEMENT_ID |
IBLOCK_ID | Идентификатор Инфоблока. |

Смотрите также

  • CWiki::AddImage

Примеры использования

<?

// Удалим изображение с идентификатором 5 из страницы с идентификатором 13 из инфо.блока с идентификатором 2
$IMAGE_ID = 5;
$ID = 13;
$IBLOCK_ID = 2;

$CWiki = new CWiki();
$CWiki->DeleteImage($IMAGE_ID, $ID, $IBLOCK_ID);
?>


GetCategory

Wiki>Классы>CWiki>GetCategory (9.5.1)

CWiki::GetCategory

Описание и параметры

array
CWiki::GetCategory(
 string NAME,
 int IBLOCK_ID
);

Метод возвращает массив категорий Wiki-страницы. Нестатический метод.

Параметры метода

Параметр | Описание | С версии
NAME | Наименование Wiki-страницы. До версии 9.5.3 назывался ID. |
IBLOCK_ID | Идентификатор Инфоблока. До версии 10.0.0 назывался BLOCK_ID. |

Возвращаемое значение

Возвращается массив категорий, содержащих поля со значениями:

Параметр | Описание
NAME | наименование категории
TITLE | наименование категории для подсказки
LINK | ссылка на категорию
IS_RED | является ли ссылка красной (т.е. страница категории не создана)

Примеры использования

<?

// Получим категории для страницы "Тестовая страница" инфо.блока с идентификатором 2
$NAME = 'Тестовая страница';
$IBLOCK_ID = 2;

$arCategory = CWiki::GetCategory($NAME, $IBLOCK_ID);
?>


GetDefaultPage

Wiki>Классы>CWiki>GetDefaultPage (9.5.1)

CWiki::GetDefaultPage

string
CWiki::GetDefaultPage(
 int IBLOCK_ID
);

Метод возвращает Wiki-страницу по-умолчанию. Нестатический метод.

Параметры метода

Параметр | Описание
IBLOCK_ID | Идентификатор Инфоблока. До версии 10.0.0 назвался BLOCK_ID.

Смотрите также

  • CWiki::SetDefaultPage

Примеры использования

<?

// Получим страницу по-умолчанию инфо.блока с идентификатором 2
$IBLOCK_ID = 2;

$NAME = CWiki::GetDefaultPage($IBLOCK_ID);
if (strlen($NAME) <= 0)
    echo 'Ошибка. Страница по-умолчанию не установлена.';

?>


GetElementById

Wiki>Классы>CWiki>GetElementById (9.5.1)

CWiki::GetElementById

Описание и параметры

array
CWiki::GetElementById(
 int ID,
 array arFilter
);

Возвращает Wiki-страницу по фильтру arFilter. Статический метод.

Параметры метода

Параметр | Описание
ID | Идентификатор Wiki-страницы
arFilter | GetList

Возвращаемое значение

Возвращается массив, содержащий поля со значениями:
Параметр | Описание
NAME | наименование страницы
DETAIL_TEXT_TYPE | тип содержимого страницы
DETAIL_TEXT | текст содержимого страницы
IMAGES | массив изображений страницы
SECTIONS | массив категорий страницы
TAGS | массив тэгов страницы

Смотрите также

  • CWiki::GetElementByName
  • CWiki::GetCategory
  • CWikiParser::Parse
  • CWikiSecurity::clear

Примеры использования

<?

// Получим Wiki-страницу с идентификатором 13 инфо.блока с идентификатором 2
$ID = 13;
$arFilter = array(
    'ACTIVE' => 'Y',
    'CHECK_PERMISSIONS' => 'N',
    'IBLOCK_ID' => 2
);
$arElement = CWiki::GetElementById($ID, $arFilter);
if ($arElement == false)
    echo 'Страница не найдена.';

?>


GetElementByName

Wiki>Классы>CWiki>GetElementByName (9.5.1)

CWiki::GetElementByName

Описание и параметры

result_type
CWiki::GetElementByName(
 string NAME,
 array arFilter,
 arComponentParams = array()
);

Возвращает Wiki-страницу по фильтру arFilter. Статический метод.

Параметры метода

Параметр | Описание | С версии
NAME | Название Wiki-страницы |
arFilter | GetList |
arComponentParams | Необязательный. | 12.0.1

Возвращаемое значение

Возвращается массив, содержащий поля со значениями:
Параметр | Описание
NAME | наименование страницы
DETAIL_TEXT_TYPE | тип содержимого страницы
DETAIL_TEXT | текст содержимого страницыы
IMAGES | массив изображений страницы
SECTIONS | массив категорий страницы
TAGS | массив тэгов страницы

Смотрите также

  • CWiki::GetElementById
  • CWiki::GetCategory
  • CWikiParser::Parse
  • CWikiSecurity::clear

Примеры использования

<?

// Получим Wiki-страницу с названием "Тестовая страница" инфо.блока с идентификатором 2

$NAME = 'Тестовая страница';
$arFilter = array(
    'ACTIVE' => 'Y',
    'CHECK_PERMISSIONS' => 'N',
    'IBLOCK_ID' => 2
);
$arElement = CWiki::GetElementByName($NAME, $arFilter);
if ($arElement == false)
    echo 'Страница не найдена.';

?>


Recover

Wiki>Классы>CWiki>Recover (9.5.1)

CWiki::Recover

Описание и параметры

bool
CWiki::Recover(
 int HISTORY_ID,
 int ID,
 int IBLOCK_ID
);

Метод восстанавливает Wiki-страницу из истории. Нестатический метод.

Параметры метода

Параметр | Описание
HISTORY_ID | Идентификатор записи истории
ID | Идентификатор Wiki-страницы
IBLOCK_ID | Идентификатор Инфо.блока

Смотрите также

  • CWiki::UpdateHistory

Примеры использования

<?

// Восстановим страницу с идентификатором 13 из инфо.блока с идентификатором 2 по записи в истории 26
$HISTORY_ID = 26;
$ID = 13;
$IBLOCK_ID = 2;

$CWiki = new CWiki();
if (!$CWiki->Recover($HISTORY_ID, $ID, $IBLOCK_ID))
    echo 'Ошибка. Страница не восстановлена.';
?>


Rename

Wiki>Классы>CWiki>Rename (9.5.1)

CWiki::Rename

Описание и параметры

bool
CWiki::Rename(
 int ID,
 array arFields,
 bUpdateSearch=true
);

Метод изменяет Wiki-страницу, добавляет запись в историю и обслуживает привязки к категориям. Нестатический метод.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор Wiki-страницы |
arFields | CIBlock::Update |
UpdateSearch | Необязательный. | 12.0.1

Смотрите также

  • CWiki::Update

Примеры использования

<?

// Переименуем Wiki-страницу с идентификатором 13 в инфо.блоке с идентификатором 2
$ID = 13;
$arFields = array(
    'IBLOCK_ID' => 2,
    'NAME' => 'Измененная тестовая страница'
);
$CWiki = new CWiki();
if (!$CWiki->Rename($ID, $arFields))
    echo 'Ошибка. Страница не переименована.';
?>


SetDefaultPage

Wiki>Классы>CWiki>SetDefaultPage (9.5.1)

CWiki::SetDefaultPage

Описание и параметры

bool
CWiki::SetDefaultPage(
 int IBLOCK_ID,
 string NAME
);

Метод устанавливает Wiki-страницу по-умолчанию. Нестатический метод.

Параметры метода

Параметр | Описание
IBLOCK_ID | Идентификатор Инфоблока. До версии 10.0.0 назывался BLOCK_ID.
NAME | Наименование страницы

Смотрите также

  • CWiki::GetDefaultPage

Примеры использования

<?

// Установим страницу "Тестовая страница" страницей по-умолчанию инфо.блока с идентификатором 2
$IBLOCK_ID = 2;
$NAME = 'Тестовая страница';

if (!CWiki::SetDefaultPage($IBLOCK_ID, $NAME))
    echo 'Ошибка. Страница по-умолчанию не установлена.';
?>


Update

Wiki>Классы>CWiki>Update (9.5.1)

CWiki::Update

Описание и параметры

bool
CWiki::Update(
 int ID,
 array arFields
);

Метод изменяет Wiki-страницу, добавляет запись в историю и обслуживает привязки к категориям. Нестатический метод.

Параметры метода

Параметр | Описание
ID | Идентификатор Wiki-страницы
arFields | CIBlock::Update

Смотрите также

  • CWiki::Add
  • CWiki::UpdateCategory
  • CWiki::UpdateHistory

Примеры использования

<?

// Обновим Wiki-страницу с идентификатором 13 в инфо.блоке с идентификатором 2
$ID = 13;
$arFields = array(
    'IBLOCK_ID' => 2,
    'DETAIL_TEXT_TYPE' => 'html',
    'DETAIL_TEXT' => '<br/><h2>Измененная тестовая страница</h2><br/>'
);
$CWiki = new CWiki();
if (!$CWiki->Update($ID, $arFields))
    echo 'Ошибка. Страница не изменена.';
?>


UpdateCategory

Wiki>Классы>CWiki>UpdateCategory (9.5.1)

CWiki::UpdateCategory

Описание и параметры

void
CWiki::UpdateCategory(
 int ID,
 int IBLOCK_ID,
 array arCats
);

Метод обновляет привязки Wiki-страницы к категориям. Нестатический метод.

Параметры метода

Параметр | Описание
ID | Идентификатор Wiki-страницы
IBLOCK_ID | Идентификатор Инфо.блока
arCats | Массив наименований категорий страницы

Смотрите также

  • CWiki::GetCategory

Примеры использования

<?

// Обновим категории страницы с идентификатором 13 из инфоблока с идентификатором 2
$arCats = array('Категория 1', 'Категория 2');
$ID = 13;
$IBLOCK_ID = 2;

$CWiki = new CWiki();
$CWiki->UpdateCategory($ID, $IBLOCK_ID, $arCats);
?>


UpdateHistory

Wiki>Классы>CWiki>UpdateHistory (9.5.1)

CWiki::UpdateHistory

Описание и параметры

bool
CWiki::UpdateHistory(
   $ID,
   $IBLOCK_ID,
   $modifyComment=false);

Метод создает запись в истории на основе Wiki-страницы. Нестатический метод.

Параметры метода

Параметр | Описание | С версии
ID | Идентификатор Wiki-страницы |
IBLOCK_ID | Идентификатор Инфоблока |
modifyComment | Необязательный. | 12.0.1

Смотрите также

  • CWiki::Recover

Примеры использования

<?

// Создадим новую запись в истории страницы с идентификатором 13 инфо.блока с идентификатором 2
$ID = 13;
$IBLOCK_ID = 2;

$CWiki = new CWiki();
if (!$CWiki->UpdateHistory($ID, $IBLOCK_ID))
    echo 'Ошибка. Запись истории не создана.';
?>


CWikiParser

CWikiParser - Класс обрабатывающий вики-разметку в странице.

Методы класса

Метод | Описание | С версии
Parse | Обрабатывает содержимое Wiki-страницы перед отображение. |
parseBeforeSave | Обрабатывает содержимое Wiki-страницы перед сохранением. |
parseForSearch | Обрабатывает содержимое Wiki-страницы для модуля «Поиск». |


Parse

Wiki>Классы>CWikiParser>Parse (9.5.1)

CWikiParser::Parse

Описание и параметры

string
CWikiParser::Parse(
 string text,
 type = 'text',
 arFile = array(),
 arParams = array());

Метод обрабатывает содержимое Wiki-страницы. Нестатический метод.

Параметры метода

Параметр | Описание | С версии | До версии
text | Содержимое Wiki-страницы |  |
type | Тип содержимого Wiki-страницы (html|text). Необязательный. |  |
arFile | Массив изображений. Необязательный. | 9.5.4 |
siteDir | Путь до папки. Необязательный. | 11.5.1 | 12.0.1
arParams | Массив параметров. Необязательный. | 12.0.1 |

Возвращаемое значение

Возвращает обработанную Wiki-страницу, без Wiki-разметки.

Смотрите также

  • CWikiSecurity::clear

Примеры использования

<?

// Обработаем содержимое страницы "Тестовая страница" инфо.блока с идентификатором 2
$IBLOCK_ID = 2;
$NAME = 'Тестовая страница';
$arFilter = array(
    'ACTIVE' => 'Y',
    'CHECK_PERMISSIONS' => 'N',
    'IBLOCK_ID' => $IBLOCK_ID
);
$arElement = CWiki::GetElementByName($NAME, $arFilter);

$CWikiParser = new CWikiParser();
echo $CWikiParser->Parse($arElement['~DETAIL_TEXT'], $arElement['DETAIL_TEXT_TYPE'], $arElement['IMAGES']);
?>


parseBeforeSave

Wiki>Классы>CWikiParser>parseBeforeSave (9.5.1)

CWikiParser::parseBeforeSave

string
CWikiParser::parseBeforeSave(
 string text,
 array &arCat
);

Метод обрабатывает содержимое Wiki-страницы перед сохранением. Нестатический метод.

Параметры метода

Параметр | Описание
text | Содержимое Wiki-страницы
arCat | Массив будет заполнен категориями, указанными в тексте страницы

Примеры использования

<?

$IBLOCK_ID = 2;
$NAME = 'Тестовая страница';
$arFilter = array(
    'ACTIVE' => 'Y',
    'CHECK_PERMISSIONS' => 'N',
    'IBLOCK_ID' => $IBLOCK_ID
);
$arElement = CWiki::GetElementByName($NAME, $arFilter);
$arCat = array();

$CWikiParser = new CWikiParser();
echo $CWikiParser->parseBeforeSave($arElement['~DETAIL_TEXT'], $arCat);

?>


parseForSearch

Wiki>Классы>CWikiParser>parseForSearch (9.5.1)

CWikiParser::parseForSearch

string
CWikiParser::parseForSearch(
 string text
);

Метод обрабатывает содержимое Wiki-страницы перед сохранением. Нестатический метод.

Параметры метода

Параметр | Описание
text | Содержимое Wiki-страницы


CWikiSecurity

CWikiSecurity - Класс защищающий вики-страницу от потенциально опасных элементов. Динамичный метод.

Методы класса

Метод | Описание | С версии
clear | Очищает содержимое Wiki-страницы перед отображением. |


clear

Wiki>Классы>CWikiSecurity>clear (9.5.1)

CWikiSecurity::clear

string
CWikiSecurity::clear(
 string &str
);

Метод обрабатывает содержимое Wiki-страницы.

Параметры метода

Параметр | Описание
str | Содержимое Wiki-страницы

Смотрите также

  • CWikiParser::Parse

Примеры использования

<?

$IBLOCK_ID = 2;
$NAME = 'Тестовая страница';
$arFilter = array(
    'ACTIVE' => 'Y',
    'CHECK_PERMISSIONS' => 'N',
    'IBLOCK_ID' => $IBLOCK_ID
);
$arElement = CWiki::GetElementByName($NAME, $arFilter);

$CWikiSecurity = new CWikiSecurity ();
$CWikiSecurity->clear($arElement['~DETAIL_TEXT']);
echo $arElement['~DETAIL_TEXT'];
?>


CWikiSocnet

CWikiSocnet - Класс интеграции с модулем «Социальная сеть».

Методы класса

Метод | Описание | С версии
Init | Инициализирует интеграцию. |
EnableSocnet | Активирует/деактивирует интеграцию. |
IsEnabledSocnet | Проверяет активирована ли интеграция. |
IsSocNet | Проверяет находится ли модуль в режиме интеграции. |


EnableSocnet

Wiki>Классы>CWikiSocnet>EnableSocnet (9.5.1)

CWikiSocnet::EnableSocnet

void
CWikiSocnet::EnableSocnet(
 bool bActive
);

Метод инициализирует интеграцию. Нестатический метод.

Параметры метода

Параметр | Описание
bActive | true – включает интеграцию, false – отключает интеграцию


Init

Wiki>Классы>CWikiSocnet>Init (9.5.1)

CWikiSocnet::Init

bool
CWikiSocnet::Init(
 int SOCNET_GROUP_ID,
 int IBLOCK_ID
);

Метод инициализирует интеграцию. Статический метод.

Параметры метода

Параметр | Описание
SOCNET_GROUP_ID | Идентификатор рабочей группы соц. сети
IBLOCK_ID | Идентификатор инфо.блока

Примеры использования

<?
// Инициализируем интеграцию
$SOCNET_GROUP_ID = 14;
$IBLOCK_ID = 3;

if (!CWikiSocnet::Init($SOCNET_GROUP_ID, $IBLOCK_ID))
    echo 'Ошибка. Не удалось инициализировать интеграцию.';
?>


IsEnabledSocnet

Wiki>Классы>CWikiSocnet>IsEnabledSocnet (9.5.1)

CWikiSocnet::IsEnabledSocnet

bool
CWikiSocnet::IsEnabledSocnet(
);

Метод проверяет включена ли интеграция. Статический метод.


IsSocNet

Wiki>Классы>CWikiSocnet>IsSocNet (9.5.1)

CWikiSocnet::IsSocNet

bool
CWikiSocnet::IsSocNet();

Метод проверяет находится ли модуль в режиме интеграции. Статический метод.


CWikiDiff

CWikiDiff - Класс сравнения вики-страниц.

Методы класса

Метод | Описание | С версии
getDiff | Сравнивает две страницы. |


getDiff

Wiki>Классы>CWikiDiff>getDiff (9.5.3)

CWikiDiff::getDiff

string
CWikiDiff::getDiff(
 string X,
 string Y
);

Метод сравнивает две страницы. Статический метод.

Параметры метода

Параметр | Описание
X | Страница исходная.
Y | Страница, с которой сравниваем.


CWikiUtils

CWikiUtils - Класс дополнительных функций.

Методы класса

Метод | Описание | С версии
getRightsLink | Возвращает массив ссылок для меню. |
IsReadable | Проверяет доступ пользователя на чтение. |
IsWriteable | Проверяет доступ пользователя на запись. |
IsDeleteable | Проверяет доступ пользователя на удаление. |
IsAllowHTML | Проверяет доступность пользователю использования визуального редактора. |
CheckAccess | Проверяет доступ пользователя. | 9.5.3
CheckServicePage | Проверяет является ли запрашиваемая страница сервисной. |
IsCategoryPage | Проверяет является ли запрашиваемая страница категорией. |


CheckAccess

Wiki>Классы>CWikiUtils>CheckAccess (9.5.3)

CWikiUtils::CheckAccess

bool
CWikiUtils::CheckAccess(
 string access
);

Метод проверяет доступ пользователя. Статический метод.

Параметры метода

Параметр | Описание
access | Тип проверяемого доступа (view, write, delete)

Смотрите также

  • CWikiUtils::isReadable
  • CWikiUtils::isWriteable
  • CWikiUtils::IsDeleteable
  • CWikiUtils::isAllowHTML


CheckServicePage

Wiki>Классы>CWikiUtils>CheckServicePage (9.5.1)

CWikiUtils::CheckServicePage

string
CWikiUtils::CheckServicePage(
 string NAME,
 string &SERVICE_NAME
);

Метод проверяет, является ли запрашиваемая страница сервисной. Статический метод.

Параметры метода

Параметр | Описание
NAME | Наименование страницы. До версии 10.0.0 назывался ELEMENT_NAME
SERVICE_NAME | Наименование сервисной страницы

Смотрите также

  • CWikiUtils::IsCategoryPage


getRightsLink

Wiki>Классы>CWikiUtils>getRightsLink (9.5.1)

CWikiUtils::getRightsLink

array
CWikiUtils::getRightsLink(
 array arPage
);

Возвращает массив ссылок для меню. Статический метод.

Параметры метода

Параметр | Описание
arPage | Массив условий формирования

Возвращаемое значение

Возвращается массив ссылок, содержащих поля со значениями:

Параметр | Описание
NAME | наименование ссылки
TITLE | наименование ссылки для подсказки
LINK | ссылка на страницу
CURRENT | является ли эта ссылка текущей
ID | идентификатор ссылки
IS_RED | является ли ссылка красной

Примеры использования

<?
// выведем меню страницы редактирования Wiki-страницы
$arPage = array('article', 'edit');
$arMenu = CWikiUtils::getRightsLinks($arPage);
?>
<?
// выведем меню страницы история
$arPage = array('article', 'history');
$arMenu = CWikiUtils::getRightsLinks($arPage);
?>
<?
// выведем меню страницы просмотра версии страницы
$arPage = array('article', 'history_diff');
$arMenu = CWikiUtils::getRightsLinks($arPage);
?>


IsAllowHTML

Wiki>Классы>CWikiUtils>IsAllowHTML (9.5.1)

CWikiUtils::IsAllowHTML

bool
CWikiUtils::IsAllowHTML();

Метод проверяет права пользователя на использование визуального редактора. Статический метод.

Смотрите также

  • CWikiUtils::isReadable
  • CWikiUtils::isWriteable
  • CWikiUtils::IsDeleteable
  • CWikiUtils::CheckAccess


IsCategoryPage

Wiki>Классы>CWikiUtils>IsCategoryPage (9.5.1)

CWikiUtils::IsCategoryPage

bool
CWikiUtils::IsCategoryPage(
 string NAME,
 string &CATEGORY_NAME
);

Метод проверяет, является ли запрашиваемая страница страницей категории. Статический метод.

Параметры метода

Параметр | Описание
NAME | Наименование страницы. До версии 10.0.0 назывался ELEMENT_NAME.
CATEGORY_NAME | Наименование категории

Смотрите также

  • CWikiUtils::CheckServicePage


IsDeleteable

Wiki>Классы>CWikiUtils>IsDeleteable (9.5.1)

CWikiUtils::IsDeleteable

bool
CWikiUtils::IsDeleteable();

Метод проверяет доступ пользователя на удаление. Статический метод.

Смотрите также

  • CWikiUtils::isReadable
  • CWikiUtils::isWriteable
  • CWikiUtils::isAllowHTML
  • CWikiUtils::CheckAccess


IsReadable

Wiki>Классы>CWikiUtils>IsReadable (9.5.1)

CWikiUtils::IsReadable

bool
CWikiUtils::IsReadable();

Метод проверяет доступ пользователя на чтение. Статический метод.

Смотрите также

  • CWikiUtils::isWriteable
  • CWikiUtils::isDeleteable
  • CWikiUtils::isAllowHTML
  • CWikiUtils::CheckAccess


IsWriteable

Wiki>Классы>CWikiUtils>IsWriteable (9.5.1)

CWikiUtils::IsWriteable

bool
CWikiUtils::IsWriteable();

Метод проверяет доступ пользователя на запись. Статический метод.

Смотрите также

  • CWikiUtils::isReadable
  • CWikiUtils::isDeleteable
  • CWikiUtils::isAllowHTML
  • CWikiUtils::CheckAccess